/home66/gary/public_html/cloudy/c08_branch/source/ion_phosi.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 /*IonPhosi derive ionization balance for phosphorus */
00004 #include "cddefines.h"
00005 #include "dense.h"
00006 #include "ionbal.h"
00007 
00008 void IonPhosi(void)
00009 {
00010         const int NDIM = ipPHOSPHORUS+1;
00011 
00012         static const double dicoef[2][NDIM] = {
00013                 {1.62e-3,1.09e-2,3.35e-2,3.14e-2,1.27e-2,1.47e-2,1.34e-2,2.38e-2,
00014                  3.19e-2,7.13e-2,.08,.0796,.0134,.402,0.},
00015                 {0.,1.20e-2,6.59e-2,6.89e-2,.187,.129,1.04,1.12,1.40,1.00,.555,
00016                  1.63,.304,.298,0.}
00017         };
00018         static const double dite[2][NDIM] = {
00019                 {1.25e5,1.92e5,1.89e5,1.68e5,1.38e5,1.80e6,6.90e5,5.84e5,5.17e5,
00020                  6.66e5,6.00e5,5.09e5,2.91e5,2.41e7,0.},
00021                 {0.,1.80e4,1.59e5,8.04e4,1.71e5,1.75e6,2.15e6,2.59e6,2.91e6,2.32e6,
00022                  2.41e6,6.37e6,1.04e6,4.67e6,0.}
00023         };
00024         static const double aa[NDIM] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00025         static const double bb[NDIM] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00026         static const double cc[NDIM] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00027         static const double dd[NDIM] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00028         static const double ff[NDIM] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00029         static const double ditcrt[NDIM] = {2.2e4,1.2e4,1.4e4,1.5e4,1.4e4,2.9e5,
00030           1.3e5,1.1e5,9.0e4,9.0e4,9.0e4,8.3e4,6.0e4,5.0e6,1e20};
00031 
00032         DEBUG_ENTRY( "IonPhosi()" );
00033 
00034         /* phosphorus nelem=15
00035          * data from sulphus
00036          *
00037          *  rec from +13 14 15 from Arnauld et al 85  */
00038         /* Pequignot and Aldrovandi Ast Ap 161, 169. */
00039 
00040         if( !dense.lgElmtOn[ipPHOSPHORUS] )
00041         {
00042                 return;
00043         }
00044 
00045         ion_zero(ipPHOSPHORUS);
00046 
00047         ion_photo(ipPHOSPHORUS,false);
00048 
00049         /* find collisional ionization rates */
00050         ion_collis(ipPHOSPHORUS);
00051 
00052         /* get recombination coefficients */
00053         ion_recomb(false,(const double*)dicoef,(const double*)dite,ditcrt,aa,bb,cc,dd,ff,ipPHOSPHORUS);
00054 
00055         /* solve for ionization balance */
00056         ion_solver(ipPHOSPHORUS,false);
00057         return;
00058 }

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