cloudy trunk
Loading...
Searching...
No Matches
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
10
13void ion_recom_calculate( void );
14
18void ion_trim(
19 long int nelem );
20
22void ion_zero(long int nelem);
23
28 long nelem);
29
34void ion_solver(long int nelem, bool lgPrintIt);
35
36#if 0
42void ion_solver(long int nelem1, long int nelem2, bool lgPrintIt);
43#endif
44
49void ion_photo(
50 long int nelem ,
51 bool lgPrintIt );
52
54void ion_CX(long nelem );
55
57void ion_recomb(bool,long);
58
60void ion_recombAGN( FILE * io );
61
63void ion_wrapper( long nelem );
64
68void Badnell_rec_init( void );
69
70/* routines to do heavy element ionization balance */
71void IonNelem(bool lgPrintIt, long int nelem);
72void IonHelium( void );
73
75#define NSHELLS 7
76
79{
80public:
88 double trimhi,
89
93
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
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
225
226 int
229
232
235 bool lgSupDie[2];
236
240
243
245 long int ilt,
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
266double 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
277extern t_ionbal ionbal;
278
279#endif /* IONBAL_H_ */
const int LIMELM
Definition cddefines.h:258
float realnum
Definition cddefines.h:103
double *** CollIonRate_Ground
Definition ionbal.h:120
double ** RR_rate_coef_used
Definition ionbal.h:212
bool lgCompRecoil
Definition ionbal.h:149
double elecsrc[LIMELM]
Definition ionbal.h:251
double CompHeating_Max
Definition ionbal.h:190
bool lgRecom_Badnell_print
Definition ionbal.h:209
double CompRecoilHeatLocal
Definition ionbal.h:152
bool lgSupDie[2]
Definition ionbal.h:235
double ** RateRecomIso
Definition ionbal.h:201
double ** RR_Verner_rate_coef
Definition ionbal.h:215
double ** CompRecoilHeatRate
Definition ionbal.h:164
double ** CompRecoilIonRateSave
Definition ionbal.h:161
long int ilthn
Definition ionbal.h:247
double ** UTA_ionize_rate
Definition ionbal.h:170
realnum guess_noise
Definition ionbal.h:231
realnum CotaRate[LIMELM]
Definition ionbal.h:242
bool lgInnerShellLine_on
Definition ionbal.h:175
double **** PhotoRate_Shell
Definition ionbal.h:111
bool lgTrimhiOn
Definition ionbal.h:95
long int ** ipCompRecoil
Definition ionbal.h:155
bool lgNoCota
Definition ionbal.h:239
realnum ** GrainDestr
Definition ionbal.h:224
double ** RateRecomTot
Definition ionbal.h:198
long int ifail
Definition ionbal.h:249
double CosRayHeatThermalElectrons
Definition ionbal.h:131
double *** RateIoniz
Definition ionbal.h:184
double ExtraHeatRate
Definition ionbal.h:134
double trimhi
Definition ionbal.h:88
double ** UTA_heat_rate
Definition ionbal.h:172
double xNeutronHeatRate
Definition ionbal.h:138
bool lgPhotoIoniz_On
Definition ionbal.h:116
double RateIonizTot(long nelem, long ion)
Definition ionbal.h:254
double elecsnk[LIMELM]
Definition ionbal.h:251
long int ihthn
Definition ionbal.h:248
double ** CX_recomb_rate_used
Definition ionbal.h:206
long int iltln
Definition ionbal.h:246
realnum ** GrainCreat
Definition ionbal.h:223
double ** RR_Badnell_rate_coef
Definition ionbal.h:204
int lgGrainIonRecom
Definition ionbal.h:228
double trimlo
Definition ionbal.h:92
bool lgInnerShell_Kisielius
Definition ionbal.h:177
long int ilt
Definition ionbal.h:245
double PairProducPhotoRate[3]
Definition ionbal.h:141
bool lgInnerShell_Gu06
Definition ionbal.h:180
long int nCompRecoilElec[LIMELM]
Definition ionbal.h:188
double ** DR_Badnell_rate_coef
Definition ionbal.h:205
double ** CompRecoilHeatRateSave
Definition ionbal.h:167
double ** CompRecoilIonRate
Definition ionbal.h:158
double CosRayIonRate
Definition ionbal.h:123
double DR_mean_scale[LIMELM]
Definition ionbal.h:220
double CosRayHeatNeutralParticles
Definition ionbal.h:127
t_dense dense
Definition dense.cpp:24
t_ionbal ionbal
Definition ionbal.cpp:5
void ion_recombAGN(FILE *io)
void Badnell_rec_init(void)
void ion_recom_calculate(void)
void ion_solver(long int nelem, bool lgPrintIt)
void ion_trim(long int nelem)
Definition ion_trim.cpp:21
void ion_CX(long nelem)
Definition ion_cx.cpp:14
void ion_recomb(bool, long)
void ion_zero(long int nelem)
Definition ion_zero.cpp:8
void ion_collis(long nelem)
void IonHelium(void)
void IonNelem(bool lgPrintIt, long int nelem)
Definition ion_nelem.cpp:12
void ion_wrapper(long nelem)
void ion_photo(long int nelem, bool lgPrintIt)
Definition ion_photo.cpp:26
bool lgOH_ChargeTransferDominant(void)
long int IonHigh[LIMELM+1]
Definition dense.h:120