cloudy  trunk
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ion_alumi.cpp
Go to the documentation of this file.
1 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and
2  * others. For conditions of distribution and use see copyright notice in license.txt */
3 /*IonAlumi ionization balance for aluminum */
4 #include "cddefines.h"
5 #include "trace.h"
6 #include "dense.h"
7 #include "ionbal.h"
8 
9 void IonAlumi(void)
10 {
11  const int NDIM = ipALUMINIUM+1;
12 
13  static const double dicoef[2][NDIM] = {
14  {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.},
15  {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}
16  };
17  static const double dite[2][NDIM] = {
18  {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},
19  {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}
20  };
21  static const double ditcrt[NDIM] = {8.0e3,7.0e3,1.2e5,7.0e4,6.5e4,5.5e4,
22  5.5e4,5.5e4,5.8e4,4.0e4,2.9e6,5.5e6,1e20};
23  static const double aa[NDIM] = {0.0219,0.7086,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
24  static const double bb[NDIM] = {-0.4528,-3.1083,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
25  static const double cc[NDIM] = {2.5427,7.0422,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
26  static const double dd[NDIM] = {-0.1678,0.5998,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
27  static const double ff[NDIM] = {0.2276,0.4194,0.1,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
28 
29  DEBUG_ENTRY( "IonAlumi()" );
30 
31  /* aluminium nelem=13*/
32 
33  /* rates from Shull and van Steenberg, Ap.J. Sup 48, 95.
34  * use silicon since not in shull + van steenberg */
35 
36  /* rec coef from Aldrovandi and Pequignot Revista Bras de Fisica 4, 491. */
37  /* Pequignot and Aldrovandi Ast Ap 161, 169. */
38 
39 
40  /* from Nussbaumer and Storey, Mg, Al, Si: n.b., al1 uses table 2(b) */
41 
42  if( !dense.lgElmtOn[ipALUMINIUM] )
43  {
44  return;
45  }
46 
48 
49  ion_photo(ipALUMINIUM,false);
50 
51  /* find collisional ionization rates */
53 
54  /* get recombination coefficients */
55  ion_recomb(false,(double*)dicoef,(double*)dite,ditcrt,aa,bb,cc,dd,ff,ipALUMINIUM);
56 
57  /* solve for ionization balance */
58  ion_solver(ipALUMINIUM,false);
59 
60  if( trace.lgTrace && trace.lgHeavyBug )
61  {
62  fprintf( ioQQQ, " IonAlumi returns; frac=" );
63  for( int i=0; i < 10; i++ )
64  {
65  fprintf( ioQQQ, "%10.3e", dense.xIonDense[ipALUMINIUM][i]/
67  }
68  fprintf( ioQQQ, "\n" );
69  }
70  return;
71 }

Generated for cloudy by doxygen 1.8.1.1