cloudy  trunk
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ionbal.h
Go to the documentation of this file.
1 /* This file is part of Cloudy and is copyright (C)1978-2013 by Gary J. Ferland and
2  * others. For conditions of distribution and use see copyright notice in license.txt */
3 
4 #ifndef IONBAL_H_
5 #define IONBAL_H_
6 
7 #include "dense.h"
8 
9 bool lgOH_ChargeTransferDominant( void );
10 
13 void ion_recom_calculate( void );
14 
18 void ion_trim(
19  long int nelem );
20 
22 void ion_zero(long int nelem);
23 
27 void ion_collis(
28  long nelem);
29 
34 void ion_solver(long int nelem, bool lgPrintIt);
35 
36 #if 0
37 
42 void ion_solver(long int nelem1, long int nelem2, bool lgPrintIt);
43 #endif
44 
49 void ion_photo(
50  long int nelem ,
51  bool lgPrintIt );
52 
54 void ion_CX(long nelem );
55 
57 void ion_recomb(bool,long);
58 
60 void ion_recombAGN( FILE * io );
61 
63 void ion_wrapper( long nelem );
64 
68 void Badnell_rec_init( void );
69 
70 /* routines to do heavy element ionization balance */
71 void IonNelem(bool lgPrintIt, long int nelem);
72 void IonHelium( void );
73 
75 #define NSHELLS 7
76 
78 class t_ionbal
79 {
80 public:
88  double trimhi,
89 
92  trimlo;
93 
95  bool lgTrimhiOn;
96 
97  /* ==============================================================
98  * all following deals with ionization processes */
99 
111  double ****PhotoRate_Shell;
112 
117 
121 
124 
128 
132 
135 
139 
142 
143  /* ==============================================================
144  * following deal with Compton recoil ionization of bound electrons */
145 
150 
153 
155  long int **ipCompRecoil;
156 
159 
162 
165 
168 
170  double **UTA_ionize_rate;
172  double **UTA_heat_rate;
173 
181 
184  double ***RateIoniz;
185 
189 
191  /* ==============================================================
192  * end Compton recoil ionization of bound electrons */
193 
194  /* ==============================================================
195  * all following deals with recombination */
196 
198  double **RateRecomTot;
199 
201  double **RateRecomIso;
202 
207 
210 
213 
216 
221 
224  **GrainDestr;
225 
226  int
229 
232 
235  bool lgSupDie[2];
236 
239  bool lgNoCota;
240 
243 
245  long int ilt,
246  iltln,
247  ilthn,
248  ihthn,
249  ifail;
250 
252 
253  // find the total ionization rate (including multiple-electron processes)
254  double RateIonizTot( long nelem, long ion )
255  {
256  double sum = 0.;
257 
258  for( long ion_to=ion+1; ion_to<=dense.IonHigh[nelem]; ion_to++ )
259  sum += RateIoniz[nelem][ion][ion_to];
260 
261  return sum;
262  }
263 };
264 
265 #if 0
266 double t_ionbal::RateIonizTot(long nelem, long ion)
267 {
268  double sum = 0.;
269 
270  for( long ion_to=ion+1; ion_to<=dense.IonHigh[nelem]; ion_to++ )
271  sum += t_ionbal::RateIoniz[nelem][ion][ion_to];
272 
273  return sum;
274 }
275 #endif
276 
277 extern t_ionbal ionbal;
278 
279 #endif /* IONBAL_H_ */
void ion_trim(long int nelem)
Definition: ion_trim.cpp:21
double RateIonizTot(long nelem, long ion)
Definition: ionbal.h:254
double ** DR_Badnell_rate_coef
Definition: ionbal.h:204
double ** RR_Badnell_rate_coef
Definition: ionbal.h:204
bool lgTrimhiOn
Definition: ionbal.h:95
long int nCompRecoilElec[LIMELM]
Definition: ionbal.h:188
realnum ** GrainDestr
Definition: ionbal.h:223
double ** UTA_heat_rate
Definition: ionbal.h:172
double ** CompRecoilIonRate
Definition: ionbal.h:158
double ** CompRecoilHeatRate
Definition: ionbal.h:164
double CosRayHeatNeutralParticles
Definition: ionbal.h:127
double ** RR_Verner_rate_coef
Definition: ionbal.h:215
long int ilthn
Definition: ionbal.h:245
bool lgPhotoIoniz_On
Definition: ionbal.h:116
void ion_solver(long int nelem, bool lgPrintIt)
Definition: ion_solver.cpp:62
double elecsrc[LIMELM]
Definition: ionbal.h:251
double ** CompRecoilIonRateSave
Definition: ionbal.h:161
t_dense dense
Definition: dense.cpp:24
double trimhi
Definition: ionbal.h:88
void ion_recombAGN(FILE *io)
Definition: ion_recomb.cpp:218
double CosRayIonRate
Definition: ionbal.h:123
bool lgRecom_Badnell_print
Definition: ionbal.h:209
void IonNelem(bool lgPrintIt, long int nelem)
Definition: ion_nelem.cpp:12
double ** RateRecomIso
Definition: ionbal.h:201
double CompHeating_Max
Definition: ionbal.h:190
long int ifail
Definition: ionbal.h:245
double ExtraHeatRate
Definition: ionbal.h:134
double ** RateRecomTot
Definition: ionbal.h:198
void ion_zero(long int nelem)
Definition: ion_zero.cpp:8
void Badnell_rec_init(void)
t_ionbal ionbal
Definition: ionbal.cpp:5
double CosRayHeatThermalElectrons
Definition: ionbal.h:131
double xNeutronHeatRate
Definition: ionbal.h:138
void ion_photo(long int nelem, bool lgPrintIt)
Definition: ion_photo.cpp:26
realnum guess_noise
Definition: ionbal.h:231
bool lgOH_ChargeTransferDominant(void)
Definition: ion_solver.cpp:370
double DR_mean_scale[LIMELM]
Definition: ionbal.h:220
double ** UTA_ionize_rate
Definition: ionbal.h:170
long int IonHigh[LIMELM+1]
Definition: dense.h:120
bool lgInnerShellLine_on
Definition: ionbal.h:175
float realnum
Definition: cddefines.h:107
void ion_CX(long nelem)
Definition: ion_cx.cpp:14
void ion_recom_calculate(void)
void ion_collis(long int nelem)
Definition: ion_collis.cpp:13
void ion_recomb(bool lgPrintIt, long int nelem)
Definition: ion_recomb.cpp:22
realnum ** GrainCreat
Definition: ionbal.h:223
double ** CompRecoilHeatRateSave
Definition: ionbal.h:167
double **** PhotoRate_Shell
Definition: ionbal.h:111
double *** CollIonRate_Ground
Definition: ionbal.h:120
int lgGrainIonRecom
Definition: ionbal.h:228
double ** CX_recomb_rate_used
Definition: ionbal.h:204
double CompRecoilHeatLocal
Definition: ionbal.h:152
const int LIMELM
Definition: cddefines.h:262
double elecsnk[LIMELM]
Definition: ionbal.h:251
double *** RateIoniz
Definition: ionbal.h:184
bool lgSupDie[2]
Definition: ionbal.h:235
bool lgCompRecoil
Definition: ionbal.h:149
void IonHelium(void)
Definition: ion_helium.cpp:12
void ion_wrapper(long nelem)
double trimlo
Definition: ionbal.h:88
bool lgInnerShell_Kisielius
Definition: ionbal.h:177
bool lgNoCota
Definition: ionbal.h:239
double PairProducPhotoRate[3]
Definition: ionbal.h:141
long int ilt
Definition: ionbal.h:245
long int ihthn
Definition: ionbal.h:245
realnum CotaRate[LIMELM]
Definition: ionbal.h:242
long int iltln
Definition: ionbal.h:245
double ** RR_rate_coef_used
Definition: ionbal.h:212
bool lgInnerShell_Gu06
Definition: ionbal.h:180
long int ** ipCompRecoil
Definition: ionbal.h:155