cloudy
trunk
|
#include <ionbal.h>
Public Member Functions | |
void | alloc () |
const char * | chName () const |
void | zero () |
void | comment (t_warnings &) |
double | RateIonizTot (long nelem, long ion) const |
Public Member Functions inherited from module | |
module () | |
virtual | ~module () |
void t_ionbal::alloc | ( | ) |
Definition at line 10 of file ionbal.cpp.
References multi_arr< T, d, ALLOC, lgBC >::alloc(), CollIonRate_Ground, CompRecoilHeatRate, CompRecoilHeatRateSave, CompRecoilIonRate, CompRecoilIonRateSave, CX_recomb_rate_used, DR_Badnell_rate_coef, DR_Badnell_suppress_fact, ExcitationGround, ipCompRecoil, LIMELM, MALLOC, NISO, NSHELLS, PhotoRate_Shell, RateIoniz, RateRecomIso, RateRecomTot, multi_arr< T, d, ALLOC, lgBC >::reserve(), RR_Badnell_rate_coef, RR_rate_coef_used, RR_Verner_rate_coef, set_NaN(), UTA_heat_rate, and UTA_ionize_rate.
Referenced by allocate().
|
inlinevirtual |
|
virtual |
Implements module.
Definition at line 188 of file ionbal.cpp.
References t_warnings::bangin(), t_warnings::caunin(), CompHeating_Max, ifail, INPUT_LINE_LENGTH, and t_warnings::notein().
double t_ionbal::RateIonizTot | ( | long | nelem, |
long | ion | ||
) | const |
Definition at line 224 of file ionbal.cpp.
References dense, t_dense::IonHigh, and RateIoniz.
Referenced by ConvBase(), find_solution(), HomogeneousSource(), HydroLevel(), IonHelium(), iso_ionize_recombine(), iso_level(), mole_solve(), PrintRates(), renorm_solution(), and SaveDo().
|
virtual |
Implements module.
Definition at line 131 of file ionbal.cpp.
References CollIonRate_Ground, CompRecoilHeatRate, CompRecoilIonRate, CotaRate, ExcitationGround, guess_noise, ifail, ihthn, ilt, ilthn, iltln, lgCompRecoil, lgDRsup, lgGrainIonRecom, lgNewTrim, lgNoCota, lgPhotoIoniz_On, lgRecom_Badnell_print, lgTrimhiOn, lgTrimloOn, LIMELM, NSHELLS, PhotoRate_Shell, RateRecomTot, trimhi, trimlo, UTA_heat_rate, and UTA_ionize_rate.
double*** t_ionbal::CollIonRate_Ground |
collisional ionization rate for CollidRate[nelem][ion][0], s-1 cooling, erg/s in CollidRate[nelem][ion][1] [LIMELM][LIMELM][2]
Definition at line 121 of file ionbal.h.
Referenced by alloc(), fill_array(), HeatSum(), ion_collis(), iso_collide(), iso_level(), PrintRates(), and zero().
double t_ionbal::CompHeating_Max |
Definition at line 186 of file ionbal.h.
Referenced by comment(), and lines_general().
double t_ionbal::CompRecoilHeatLocal |
the local heating due to Compton recoil ionization
Definition at line 156 of file ionbal.h.
Referenced by HeatSum(), lines_general(), and PrtZone().
double** t_ionbal::CompRecoilHeatRate |
heating rate due to bound electron ionization by Compton scattering
Definition at line 168 of file ionbal.h.
Referenced by alloc(), HeatSum(), highen(), ion_photo(), iso_photo(), IterRestart(), IterStart(), and zero().
double** t_ionbal::CompRecoilHeatRateSave |
save heating rate due to bound electron ionization by Compton scattering
Definition at line 171 of file ionbal.h.
Referenced by alloc(), IterRestart(), and IterStart().
double** t_ionbal::CompRecoilIonRate |
rate of bound electron ionization by Compton scattering
Definition at line 162 of file ionbal.h.
Referenced by alloc(), diatomics::CalcPhotoionizationRate(), highen(), ion_photo(), iso_photo(), IterRestart(), IterStart(), and zero().
double** t_ionbal::CompRecoilIonRateSave |
save rate of bound electron ionization by Compton scattering
Definition at line 165 of file ionbal.h.
Referenced by alloc(), IterRestart(), and IterStart().
double t_ionbal::CosRayHeatNeutralParticles |
cosmic ray heating rate - erg s-1 - must multiply by density of absorbers - neutral hydrogen to get volume rate
Definition at line 131 of file ionbal.h.
Referenced by HeatSum(), highen(), and SecIoniz().
double t_ionbal::CosRayHeatThermalElectrons |
double t_ionbal::CosRayIonRate |
cosmic ray ionization rate
Definition at line 127 of file ionbal.h.
Referenced by ContSetIntensity(), highen(), ParseCosmicRays(), and SecIoniz().
the actual rates
Definition at line 239 of file ionbal.h.
Referenced by atmdat_3body(), ion_recomb(), PrintRates(), PrtHydroTrace1a(), and zero().
double ** t_ionbal::CX_recomb_rate_used |
Definition at line 200 of file ionbal.h.
Referenced by alloc(), ion_CX(), and ion_recomb().
double ** t_ionbal::DR_Badnell_rate_coef |
Definition at line 200 of file ionbal.h.
Referenced by alloc(), ion_recom_calculate(), ion_recomb(), iso_radiative_recomb(), and PrintRates().
multi_arr<double,2> t_ionbal::DR_Badnell_suppress_fact |
Definition at line 204 of file ionbal.h.
Referenced by alloc(), ion_recom_calculate(), and iso_radiative_recomb().
double t_ionbal::DR_mean_scale[LIMELM] |
scale factors for guesses of the DR rates, for ions with no data set with SET DIELECTRONIC RECOMBINATION KLUDGE SCALE command
Definition at line 218 of file ionbal.h.
Referenced by InitDefaultsPreparse(), ion_recom_calculate(), and ParseSet().
double t_ionbal::elecsnk[LIMELM] |
Definition at line 248 of file ionbal.h.
Referenced by fill_array(), get_total_abundance_ions(), and lgNetEdenSrcSmall().
double t_ionbal::elecsrc[LIMELM] |
Definition at line 248 of file ionbal.h.
Referenced by fill_array(), get_total_abundance_ions(), and lgNetEdenSrcSmall().
double** t_ionbal::ExcitationGround |
total excitation rate of ground level
Definition at line 124 of file ionbal.h.
Referenced by alloc(), atom_level2(), CoolHyperfine(), CoolZero(), dBase_solve(), and zero().
double t_ionbal::ExtraHeatRate |
realnum** t_ionbal::GrainCreat |
realnum t_ionbal::guess_noise |
log normal noise for guess, zero by default, turned on with noise option
Definition at line 229 of file ionbal.h.
Referenced by Badnell_rec_init(), ParseSet(), and zero().
long int t_ionbal::ifail |
long int t_ionbal::ihthn |
Definition at line 242 of file ionbal.h.
Referenced by da(), IterStart(), and zero().
long int t_ionbal::ilt |
these are error flags for three-body recombination
Definition at line 242 of file ionbal.h.
Referenced by da(), IterStart(), and zero().
long int t_ionbal::ilthn |
Definition at line 242 of file ionbal.h.
Referenced by da(), IterStart(), and zero().
long int t_ionbal::iltln |
Definition at line 242 of file ionbal.h.
Referenced by da(), IterStart(), and zero().
long int** t_ionbal::ipCompRecoil |
array indices for continuum offset of Compton recoil ionization threshold
Definition at line 159 of file ionbal.h.
Referenced by alloc(), ContCreatePointers(), ContSetIntensity(), highen(), and OpacityAddTotal().
bool t_ionbal::lgCompRecoil |
flag saying that Compton recoil ionization of bound electrons is enabled, set false with no recoil ionization command
Definition at line 153 of file ionbal.h.
Referenced by ContSetIntensity(), highen(), ParseDont(), and zero().
bool t_ionbal::lgDRsup |
logical flag for disabling dielectronic recombination
Definition at line 232 of file ionbal.h.
Referenced by ion_recom_calculate(), ParseSet(), and zero().
int t_ionbal::lgGrainIonRecom |
grecon usually true, set to 0 with no grain neutralization command
Definition at line 226 of file ionbal.h.
Referenced by fill_array(), GrainChargeTemp(), ParseDont(), and zero().
bool t_ionbal::lgNewTrim |
enable revised ion-trimming approach
Definition at line 96 of file ionbal.h.
Referenced by ConvBase(), ParseSet(), and zero().
bool t_ionbal::lgNoCota |
following all for 3-body recombination lgNoCota flag set with no three body recombination
Definition at line 236 of file ionbal.h.
Referenced by atmdat_3body(), ParseDont(), and zero().
bool t_ionbal::lgPhotoIoniz_On |
set to 1 in zero, so have no effect, set to 0 with 'no photoionization' command, kills photoionization of everything
Definition at line 117 of file ionbal.h.
Referenced by diatomics::CalcPhotoionizationRate(), GammaPrtShells(), ion_photo(), iso_photo(), ParseDont(), and zero().
bool t_ionbal::lgRecom_Badnell_print |
option to print rates then exit
Definition at line 207 of file ionbal.h.
Referenced by ion_recom_calculate(), and zero().
bool t_ionbal::lgTrimhiOn |
option to turn off upward ionization trimming, with set trim upper off
Definition at line 90 of file ionbal.h.
Referenced by ion_trim(), ion_trim2(), ion_trim_from_set(), ion_trim_init(), ion_trim_small(), mole_ion_trim(), ParseSet(), and zero().
bool t_ionbal::lgTrimloOn |
option to turn off upward ionization trimming, with set trim upper off
Definition at line 93 of file ionbal.h.
Referenced by ion_trim(), ion_trim2(), ion_trim_from_set(), ion_trim_init(), mole_ion_trim(), ParseSet(), and zero().
long int t_ionbal::nCompRecoilElec[LIMELM] |
number of valence electrons that can participate - multiplies since electron rate
Definition at line 184 of file ionbal.h.
Referenced by highen(), InitCoreload(), and OpacityAddTotal().
double t_ionbal::PairProducPhotoRate[3] |
ionization and heating due to pair production
Definition at line 145 of file ionbal.h.
Referenced by HeatSum(), highen(), lines_general(), and SecIoniz().
double**** t_ionbal::PhotoRate_Shell |
store photoionization rates for all shells of all elements first dim is nelem, the atomic number of element on the c scale, H is 0. second dim is stage of ionization, on the c scale, atom is 0. third dim is shell number, K shell is 0, valence shell depends on ion, up to 7 last dim: 0 is photo rate (s-1) 1 is low energy heating 2 is high energy (secondary-capable) total heating both will be multiplied by ion abundance to get vol rates some special last pairs - [x][0][10][0] pair production in highen
[LIMELM][LIMELM][7][3]
Definition at line 112 of file ionbal.h.
Referenced by alloc(), fill_array(), GammaPrtRate(), GammaPrtShells(), HeatSum(), ion_photo(), ion_solver(), iso_photo(), lines(), PrintRates(), SaveDo(), SecIoniz(), and zero().
double*** t_ionbal::RateIoniz |
stage-to-stage ionization rates (s-1), all processes dimensions [nelem][from_ion][to_ion]
Definition at line 180 of file ionbal.h.
Referenced by alloc(), fill_array(), HydroLevel(), iso_ionize_recombine(), iso_level(), iso_set_ion_rates(), PrintRates(), and RateIonizTot().
double** t_ionbal::RateRecomIso |
total recombination rate (s-1) for isosequences
Definition at line 197 of file ionbal.h.
Referenced by alloc(), ion_recomb(), iso_ionize_recombine(), iso_level(), iso_set_ion_rates(), and iso_update_rates().
double** t_ionbal::RateRecomTot |
total recombination rate (s-1) all processes
Definition at line 194 of file ionbal.h.
Referenced by alloc(), fill_array(), find_solution(), HomogeneousSource(), HydroLevel(), ion_recomb(), ion_recombAGN(), ion_solver(), IonHelium(), iso_level(), iso_update_rates(), mole_solve(), PrintRates(), renorm_solution(), SaveDo(), and zero().
double** t_ionbal::RR_Badnell_rate_coef |
rate coefficients [cm3 s-1] for Badnell DR recombination
Definition at line 200 of file ionbal.h.
Referenced by alloc(), ion_recom_calculate(), and ion_recomb().
double** t_ionbal::RR_rate_coef_used |
radiative recombination rate coefficient (cm3 s-1) used by code
Definition at line 210 of file ionbal.h.
Referenced by alloc(), CoolEvaluate(), ion_recom_calculate(), ion_recomb(), IonHelium(), iso_ionize_recombine(), and PrintRates().
double** t_ionbal::RR_Verner_rate_coef |
radiative recombination rate coefficient returned from Dima Verner's routine
Definition at line 213 of file ionbal.h.
Referenced by alloc(), ion_recom_calculate(), and ion_recomb().
double t_ionbal::trimhi |
limits for highest and lowest stages of ionization in ion_trim, these are set with command "set trim xx" where xx is log of upper and lower ionization fractions. if only one number then both are set to it. These variables are used in trimStages to adjust the range of ionization.
limit to fractional abundance of high stage of ionization, set to 1e-6 in zero.c
Definition at line 83 of file ionbal.h.
Referenced by ion_trim(), ion_trim2(), mole_ion_trim(), ParseSet(), and zero().
double t_ionbal::trimlo |
limit to fractional abundance of low stage of ionization, set to 1e-10 in zero.c
Definition at line 83 of file ionbal.h.
Referenced by ion_trim(), ion_trim2(), mole_ion_trim(), ParseSet(), and zero().
double** t_ionbal::UTA_heat_rate |
double** t_ionbal::UTA_ionize_rate |
inner shell UTA ionization rate, includes autoionization probability
Definition at line 174 of file ionbal.h.
Referenced by alloc(), fill_array(), PrintRates(), UpdateUTAs(), and zero().
double t_ionbal::xNeutronHeatRate |
heating erg s-1 due to fast neutrons - energy flux times cross section but does not include density
Definition at line 142 of file ionbal.h.
Referenced by HeatSum(), highen(), and SecIoniz().