/home66/gary/public_html/cloudy/c08_branch/source/ion_alumi.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 /*IonAlumi ionization balance for aluminum */
00004 #include "cddefines.h"
00005 #include "trace.h"
00006 #include "dense.h"
00007 #include "ionbal.h"
00008 
00009 void IonAlumi(void)
00010 {
00011         const int NDIM = ipALUMINIUM+1;
00012 
00013         static const double dicoef[2][NDIM] = {
00014                 {5.5e-3,6.0e-3,7.5e-3,5.6e-3,1.2e-2,1.9e-2,1.6e-2,1.7e-2,4.4e-2,1.7e-2,3.0e-1,3.4e-0,0.},
00015                 {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}
00016         };
00017         static const double dite[2][NDIM] = {
00018                 {9.0e4,7.5e4,8.5e5,5.0e5,4.4e5,3.8e5,3.4e5,3.4e5,3.9e5,2.3e5,1.6e7,1.7e7,1e20},
00019                 {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}
00020         };
00021         static const double ditcrt[NDIM] = {8.0e3,7.0e3,1.2e5,7.0e4,6.5e4,5.5e4,
00022           5.5e4,5.5e4,5.8e4,4.0e4,2.9e6,5.5e6,1e20};
00023         static const double aa[NDIM] = {0.0219,0.7086,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00024         static const double bb[NDIM] = {-0.4528,-3.1083,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00025         static const double cc[NDIM] = {2.5427,7.0422,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00026         static const double dd[NDIM] = {-0.1678,0.5998,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00027         static const double ff[NDIM] = {0.2276,0.4194,0.1,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00028 
00029         DEBUG_ENTRY( "IonAlumi()" );
00030 
00031         /* aluminium nelem=13*/
00032 
00033         /* rates from Shull and van Steenberg, Ap.J. Sup 48, 95.
00034          * use silicon since not in shull + van steenberg */
00035 
00036         /* rec coef from Aldrovandi and Pequignot Revista Bras de Fisica 4, 491. */
00037         /* Pequignot and Aldrovandi Ast Ap 161, 169. */
00038 
00039 
00040         /* from Nussbaumer and Storey, Mg, Al, Si: n.b., al1 uses table 2(b) */
00041 
00042         if( !dense.lgElmtOn[ipALUMINIUM] )
00043         {
00044                 return;
00045         }
00046 
00047         ion_zero(ipALUMINIUM);
00048 
00049         ion_photo(ipALUMINIUM,false);
00050 
00051         /* find collisional ionization rates */
00052         ion_collis(ipALUMINIUM);
00053 
00054         /* get recombination coefficients */
00055         ion_recomb(false,(double*)dicoef,(double*)dite,ditcrt,aa,bb,cc,dd,ff,ipALUMINIUM);
00056 
00057         /* solve for ionization balance */
00058         ion_solver(ipALUMINIUM,false);
00059 
00060         if( trace.lgTrace && trace.lgHeavyBug )
00061         {
00062                 fprintf( ioQQQ, "     IonAlumi returns; frac=" );
00063                 for( int i=0; i < 10; i++ )
00064                 {
00065                         fprintf( ioQQQ, "%10.3e", dense.xIonDense[ipALUMINIUM][i]/
00066                           dense.gas_phase[ipALUMINIUM] );
00067                 }
00068                 fprintf( ioQQQ, "\n" );
00069         }
00070         return;
00071 }

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