cloudy
trunk
|
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 /*IonFluor compute ionization balance for fluorine */ 00004 #include "cddefines.h" 00005 #include "dense.h" 00006 #include "ionbal.h" 00007 00008 void IonFluor(void) 00009 { 00010 const int NDIM = ipFLUORINE+1; 00011 00012 static const double dicoef[2][NDIM] = { 00013 {9.77e-4,2.65e-3,3.69e-3,1.12e-2,2.44e-2,3.02e-2,6.10e-3,2.52e-1,0.}, 00014 {.073,.242,1.01,.391,2.52,.445,.254,.304,0.} 00015 }; 00016 static const double dite[2][NDIM] = { 00017 {3.11e5,2.84e5,2.24e5,2.7e5,3.09e5,2.83e5,1.68e5,1.4e7,0.}, 00018 {2.06e5,3.07e5,2.94e5,5.50e5,9.91e5,1.73e6,6.13e5,1.80e6,0.} 00019 }; 00020 static const double ditcrt[NDIM] = {3.0e4,3.3e4,3.3e4,3.5e4,3.6e4,3.6e4,2.9e4,1.5e6,1e20}; 00021 static const double aa[NDIM] = {0.,0.0129,3.6781,-0.0254,-0.0141,19.9280,0.,0.,0.}; 00022 static const double bb[NDIM] = {0.,-0.1779,14.1481,5.5365,33.8479,235.0536,0.,0.,0.}; 00023 static const double cc[NDIM] = {0.,0.9353,17.1175,17.0727,43.1608,152.5096,0.,0.,0.}; 00024 static const double dd[NDIM] = {0.,-0.0682,-0.5017,-0.7225,-1.6072,9.1413,0.,0.,0.}; 00025 static const double ff[NDIM] = {0.,0.4516,0.2313,0.1702,0.1942,0.1282,0.,0.,0.}; 00026 00027 DEBUG_ENTRY( "IonFluor()" ); 00028 00029 /* fluorine, nelem=9 00030 * rec data from neon 00031 * 00032 * rates from Shull and van Steenberg, Ap.J. Sup 48, 95. */ 00033 00034 /* rec from +7, +8 fro Arnaud et al 85 */ 00035 /* Pequignot and Aldrovandi Ast Ap 161, 169. */ 00036 00037 if( !dense.lgElmtOn[ipFLUORINE] ) 00038 { 00039 return; 00040 } 00041 00042 ion_zero(ipFLUORINE); 00043 00044 ion_photo(ipFLUORINE,false); 00045 00046 /* find collisional ionization rates */ 00047 ion_collis(ipFLUORINE); 00048 00049 /* get recombination coefficients */ 00050 ion_recomb(false,(const double*)dicoef,(const double*)dite,ditcrt,aa,bb,cc,dd,ff,ipFLUORINE); 00051 00052 /* solve for ionization balance */ 00053 ion_solver(ipFLUORINE,false); 00054 return; 00055 }