/home66/gary/public_html/cloudy/c08_branch/source/ion_sodiu.cpp

Go to the documentation of this file.
00001 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and
00002  * others.  For conditions of distribution and use see copyright notice in license.txt */
00003 /*IonSodiu ionization balance for sodium */
00004 #include "cddefines.h"
00005 #include "trace.h"
00006 #include "dense.h"
00007 #include "ionbal.h"
00008 
00009 void IonSodiu(void)
00010 {
00011         const int NDIM = ipSODIUM+1;
00012 
00013         static const double dicoef[2][NDIM] = {
00014                 {1.0e-3,2.6e-3,6.0e-3,1.1e-2,8.0e-3,1.0e-2,3.2e-2,1.2e-2,2.2e-1,1.8e-1,0.},
00015                 {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}
00016         };
00017         static const double dite[2][NDIM] = {
00018                 {3.6e5,3.8e5,3.4e5,3.0e5,2.7e5,2.8e5,3.2e5,1.9e5,1.2e7,1.3e7,0.},
00019                 {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}
00020         };
00021         static const double ditcrt[NDIM] = {0.,1.3e5,4.4e5,7.2e4,2.8e5,4.0e5,
00022           1.3e6,1.6e6,1.9e6,3.4e4,0.};
00023         static const double aa[NDIM] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00024         static const double bb[NDIM] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00025         static const double cc[NDIM] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00026         static const double dd[NDIM] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00027         static const double ff[NDIM] = {0.1,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00028 
00029         DEBUG_ENTRY( "IonSodiu()" );
00030 
00031         /* sodium nelem=11
00032          *
00033          * rates taken from Mg Shull and van Steenberg, Ap.J. Sup 48, 95. */
00034 
00035         /* from Aldrovandi and Pequignot Revista Brasileira de Fisica, 4, 491, */
00036         /* Pequignot and Aldrovandi Ast Ap 161, 169. */
00037 
00038         if( !dense.lgElmtOn[ipSODIUM] )
00039         {
00040                 return;
00041         }
00042 
00043         ion_zero(ipSODIUM);
00044 
00045         ion_photo(ipSODIUM,false);
00046 
00047         /* find collisional ionization rates */
00048         ion_collis(ipSODIUM);
00049 
00050         /* get recombination coefficients */
00051         ion_recomb(false,(const double*)dicoef,(const double*)dite,ditcrt,aa,bb,cc,dd,ff,ipSODIUM);
00052 
00053         /* solve for ionization balance */
00054         ion_solver(ipSODIUM,false);
00055 
00056         if( trace.lgTrace && trace.lgHeavyBug )
00057         {
00058                 fprintf( ioQQQ, "     IonSodiu returns; frac=" );
00059                 for( int i=0; i < 10; i++ )
00060                 {
00061                         fprintf( ioQQQ, "%10.3e", dense.xIonDense[ipSODIUM][i]/
00062                           dense.gas_phase[ipSODIUM] );
00063                 }
00064                 fprintf( ioQQQ, "\n" );
00065         }
00066         return;
00067 }

Generated on Mon Feb 16 12:01:17 2009 for cloudy by  doxygen 1.4.7