Cloudy
Spectral Synthesis Code for Astrophysics
|
#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 |
t_ionbal () | |
Public Member Functions inherited from module | |
module () | |
virtual | ~module () |
class for vars dealing with ionization balance
|
inline |
References ipHYDROGEN, LIMELM, and nCompRecoilElec.
void t_ionbal::alloc | ( | ) |
References multi_arr< T, d, ALLOC, lgBC >::alloc(), multi_arr< T, d, ALLOC, lgBC >::clone(), CollIonRate_Ground, CompRecoilHeatRate, CompRecoilHeatRateSave, CompRecoilIonRate, CompRecoilIonRateSave, CX_recomb_rate_used, DR_Badnell_rate_coef, DR_Badnell_suppress_fact, ExcitationGround, multi_arr< T, d, ALLOC, lgBC >::invalidate(), ipCompRecoil, LIMELM, 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, UTA_heat_rate, and UTA_ionize_rate.
Referenced by zero().
|
inlinevirtual |
Implements module.
|
virtual |
Implements module.
References t_warnings::bangin(), t_warnings::caunin(), CompHeating_Max, ifail, and t_warnings::notein().
double t_ionbal::RateIonizTot | ( | long | nelem, |
long | ion | ||
) | const |
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.
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, PhotoRate_Shell, RateRecomTot, trimhi, trimlo, UTA_heat_rate, and UTA_ionize_rate.
multi_arr<double,3> 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]
Referenced by alloc(), fill_array(), HeatSum(), ion_collis(), iso_collide(), iso_level(), PrintRates(), and zero().
double t_ionbal::CompHeating_Max |
Referenced by comment(), and lines_general().
double t_ionbal::CompRecoilHeatLocal |
the local heating due to Compton recoil ionization
Referenced by HeatSum(), lines_general(), and PrtZone().
multi_arr<double,2> t_ionbal::CompRecoilHeatRate |
heating rate due to bound electron ionization by Compton scattering
Referenced by alloc(), HeatSum(), highen(), ion_photo(), iso_photo(), IterRestart(), IterStart(), and zero().
multi_arr<double,2> t_ionbal::CompRecoilHeatRateSave |
save heating rate due to bound electron ionization by Compton scattering
Referenced by alloc(), IterRestart(), and IterStart().
multi_arr<double,2> t_ionbal::CompRecoilIonRate |
rate of bound electron ionization by Compton scattering
Referenced by alloc(), diatomics::CalcPhotoionizationRate(), highen(), ion_photo(), iso_photo(), IterRestart(), IterStart(), and zero().
multi_arr<double,2> t_ionbal::CompRecoilIonRateSave |
save rate of bound electron ionization by Compton scattering
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
Referenced by HeatSum(), highen(), and SecIoniz().
double t_ionbal::CosRayHeatThermalElectrons |
double t_ionbal::CosRayIonRate |
cosmic ray ionization rate
Referenced by ContSetIntensity(), highen(), ParseCosmicRays(), and SecIoniz().
the actual rates
Referenced by atmdat_3body(), ion_recomb(), PrintRates(), PrtHydroTrace1a(), and zero().
multi_arr<double,2> t_ionbal::CX_recomb_rate_used |
Referenced by alloc(), ion_CX(), and ion_recomb().
multi_arr<double,2> t_ionbal::DR_Badnell_rate_coef |
Referenced by alloc(), ion_recom_calculate(), ion_recomb(), iso_radiative_recomb(), and PrintRates().
multi_arr<double,2> t_ionbal::DR_Badnell_suppress_fact |
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
Referenced by InitDefaultsPreparse(), ion_recom_calculate(), and ParseSet().
double t_ionbal::elecsnk[LIMELM] |
Referenced by fill_array(), get_total_abundance_ions(), and lgNetEdenSrcSmall().
double t_ionbal::elecsrc[LIMELM] |
Referenced by fill_array(), get_total_abundance_ions(), and lgNetEdenSrcSmall().
multi_arr<double,2> t_ionbal::ExcitationGround |
total excitation rate of ground level
Referenced by alloc(), atom_level2(), CoolHyperfine(), CoolZero(), dBase_solve(), and zero().
double t_ionbal::ExtraHeatRate |
realnum t_ionbal::guess_noise |
log normal noise for guess, zero by default, turned on with noise option
Referenced by Badnell_rec_init(), ParseSet(), and zero().
long int t_ionbal::ifail |
Referenced by comment(), da(), IterStart(), and zero().
long int t_ionbal::ihthn |
Referenced by da(), IterStart(), and zero().
long int t_ionbal::ilt |
these are error flags for three-body recombination
Referenced by da(), IterStart(), and zero().
long int t_ionbal::ilthn |
Referenced by da(), IterStart(), and zero().
long int t_ionbal::iltln |
Referenced by da(), IterStart(), and zero().
multi_arr<long,2> t_ionbal::ipCompRecoil |
array indices for continuum offset of Compton recoil ionization threshold
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
Referenced by ContSetIntensity(), highen(), ParseDont(), and zero().
bool t_ionbal::lgDRsup |
logical flag for disabling dielectronic recombination
Referenced by ion_recom_calculate(), ParseSet(), and zero().
int t_ionbal::lgGrainIonRecom |
grecon usually true, set to 0 with no grain neutralization command
Referenced by fill_array(), GrainChargeTemp(), ParseDont(), and zero().
bool t_ionbal::lgNewTrim |
enable revised ion-trimming approach
Referenced by ConvBase(), ParseSet(), and zero().
bool t_ionbal::lgNoCota |
following all for 3-body recombination lgNoCota flag set with no three body recombination
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
Referenced by diatomics::CalcPhotoionizationRate(), GammaPrtShells(), ion_photo(), iso_photo(), ParseDont(), and zero().
bool t_ionbal::lgRecom_Badnell_print |
option to print rates then exit
Referenced by ion_recom_calculate(), and zero().
bool t_ionbal::lgTrimhiOn |
option to turn off upward ionization trimming, with set trim upper off
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
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
Referenced by highen(), OpacityAddTotal(), and t_ionbal().
double t_ionbal::PairProducPhotoRate[3] |
ionization and heating due to pair production
Referenced by HeatSum(), highen(), lines_general(), and SecIoniz().
multi_arr<double,4> 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]
Referenced by alloc(), fill_array(), GammaPrtRate(), GammaPrtShells(), HeatSum(), ion_photo(), ion_solver(), iso_photo(), lines(), PrintRates(), SaveDo(), SecIoniz(), and zero().
multi_arr<double,3> t_ionbal::RateIoniz |
stage-to-stage ionization rates (s-1), all processes dimensions [nelem][from_ion][to_ion]
Referenced by alloc(), fill_array(), HydroLevel(), iso_ionize_recombine(), iso_level(), iso_set_ion_rates(), PrintRates(), and RateIonizTot().
multi_arr<double,2> t_ionbal::RateRecomIso |
total recombination rate (s-1) for isosequences
Referenced by alloc(), ion_recomb(), iso_ionize_recombine(), iso_level(), iso_set_ion_rates(), and iso_update_rates().
multi_arr<double,2> t_ionbal::RateRecomTot |
total recombination rate (s-1) all processes
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().
multi_arr<double,2> t_ionbal::RR_Badnell_rate_coef |
rate coefficients [cm3 s-1] for Badnell DR recombination
Referenced by alloc(), ion_recom_calculate(), and ion_recomb().
multi_arr<double,2> t_ionbal::RR_rate_coef_used |
radiative recombination rate coefficient (cm3 s-1) used by code
Referenced by alloc(), CoolEvaluate(), ion_recom_calculate(), ion_recomb(), IonHelium(), iso_ionize_recombine(), and PrintRates().
multi_arr<double,2> t_ionbal::RR_Verner_rate_coef |
radiative recombination rate coefficient returned from Dima Verner's routine
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
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
Referenced by ion_trim(), ion_trim2(), mole_ion_trim(), ParseSet(), and zero().
multi_arr<double,2> t_ionbal::UTA_heat_rate |
inner shell UTA heating rate
Referenced by alloc(), HeatSum(), UpdateUTAs(), and zero().
multi_arr<double,2> t_ionbal::UTA_ionize_rate |
inner shell UTA ionization rate, includes autoionization probability
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
Referenced by HeatSum(), highen(), and SecIoniz().