Cloudy
Spectral Synthesis Code for Astrophysics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
t_ionbal Class Reference

#include <ionbal.h>

Inheritance diagram for t_ionbal:
Collaboration diagram for t_ionbal:

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 ()
 

Public Attributes

double trimhi
 
double trimlo
 
bool lgTrimhiOn
 
bool lgTrimloOn
 
bool lgNewTrim
 
multi_arr< double, 4 > PhotoRate_Shell
 
bool lgPhotoIoniz_On
 
multi_arr< double, 3 > CollIonRate_Ground
 
multi_arr< double, 2 > ExcitationGround
 
double CosRayIonRate
 
double CosRayHeatNeutralParticles
 
double CosRayHeatThermalElectrons
 
double ExtraHeatRate
 
double xNeutronHeatRate
 
double PairProducPhotoRate [3]
 
bool lgCompRecoil
 
double CompRecoilHeatLocal
 
multi_arr< long, 2 > ipCompRecoil
 
multi_arr< double, 2 > CompRecoilIonRate
 
multi_arr< double, 2 > CompRecoilIonRateSave
 
multi_arr< double, 2 > CompRecoilHeatRate
 
multi_arr< double, 2 > CompRecoilHeatRateSave
 
multi_arr< double, 2 > UTA_ionize_rate
 
multi_arr< double, 2 > UTA_heat_rate
 
multi_arr< double, 3 > RateIoniz
 
long int nCompRecoilElec [LIMELM]
 
double CompHeating_Max
 
multi_arr< double, 2 > RateRecomTot
 
multi_arr< double, 2 > RateRecomIso
 
multi_arr< double, 2 > RR_Badnell_rate_coef
 
multi_arr< double, 2 > DR_Badnell_rate_coef
 
multi_arr< double, 2 > CX_recomb_rate_used
 
multi_arr< double, 2 > DR_Badnell_suppress_fact
 
bool lgRecom_Badnell_print
 
multi_arr< double, 2 > RR_rate_coef_used
 
multi_arr< double, 2 > RR_Verner_rate_coef
 
double DR_mean_scale [LIMELM]
 
int lgGrainIonRecom
 
realnum guess_noise
 
bool lgDRsup
 
bool lgNoCota
 
realnum CotaRate [LIMELM]
 
long int ilt
 
long int iltln
 
long int ilthn
 
long int ihthn
 
long int ifail
 
double elecsrc [LIMELM]
 
double elecsnk [LIMELM]
 

Detailed Description

class for vars dealing with ionization balance

Constructor & Destructor Documentation

t_ionbal::t_ionbal ( )
inline

References ipHYDROGEN, LIMELM, and nCompRecoilElec.

Member Function Documentation

const char* t_ionbal::chName ( ) const
inlinevirtual

Implements module.

void t_ionbal::comment ( t_warnings w)
virtual

Implements module.

References t_warnings::bangin(), t_warnings::caunin(), CompHeating_Max, ifail, and t_warnings::notein().

Here is the call graph for this function:

double t_ionbal::RateIonizTot ( long  nelem,
long  ion 
) const

Member Data Documentation

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

cosmic ray heating of thermal electrons - must multiply by electron density to obtain erg cm-3 s-1

Referenced by HeatSum(), and highen().

double t_ionbal::CosRayIonRate

cosmic ray ionization rate

Referenced by ContSetIntensity(), highen(), ParseCosmicRays(), and SecIoniz().

realnum t_ionbal::CotaRate[LIMELM]

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
multi_arr<double,2> t_ionbal::DR_Badnell_suppress_fact
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]
double t_ionbal::elecsrc[LIMELM]
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

local heating rate due to some "extra" process

Referenced by HeatSum(), and highen().

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::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().


The documentation for this class was generated from the following files: