Go to the source code of this file.
Data Structures | |
struct | t_iso |
Defines | |
#define | HE1CSARRAY 10 |
#define | KILL_BELOW_PLASMA(E_) ( (rfield.lgPlasNu && ((E_)<rfield.plsfrq) ) ? 0.:1. ) |
#define | NUM_DR_TEMPS 19 |
#define | N_(A_) (StatesElemNEW[nelem][nelem-ipISO][A_].n) |
#define | L_(A_) (StatesElemNEW[nelem][nelem-ipISO][A_].l) |
#define | S_(A_) (StatesElemNEW[nelem][nelem-ipISO][A_].S) |
#define | J_(A_) (StatesElemNEW[nelem][nelem-ipISO][A_].j) |
#define | IPRAD 0 |
#define | IPCOLLIS 1 |
#define | RREC_MAXN 40 |
#define | LIKE_RREC_MAXN(A_) ( A_ == ipHELIUM ? 40 : 20 ) |
#define | N_ISO_TE_RECOMB 41 |
#define | SumUpToThisN 1000 |
#define | RECOMBMAGIC (90521) |
Functions | |
void | iso_cascade (long ipISO, long nelem) |
void | iso_charge_transfer_update (void) |
void | iso_collapsed_bnl_print (long ipISO, long nelem) |
void | iso_collapsed_bnl_set (long ipISO, long nelem) |
void | iso_collapsed_Aul_update (long ipISO, long nelem) |
void | iso_collapsed_lifetimes_update (long ipISO, long nelem) |
void | iso_collide (long ipISO, long nelem) |
void | iso_collisional_ionization (long ipISO, long nelem) |
void | iso_continuum_lower (long ipISO, long nelem) |
void | iso_cool (long ipISO, long nelem) |
void | iso_create (void) |
double | iso_cross_section (double ERyd, double EthRyd, long n, long l, long S, long globalZ, long globalISO) |
void | iso_departure_coefficients (long ipISO, long nelem) |
double | iso_dielec_recomb_rate (long ipISO, long nelem, long ipLo) |
void | iso_drive (void) |
void | iso_error_generation (long ipISO, long nelem) |
long | iso_get_total_num_levels (long ipISO, long nmaxResolved, long numCollapsed) |
void | IonHydro (void) |
void | iso_ionize_recombine (long ipISO, long nelem) |
void | iso_level (const long ipISO, const long nelem) |
void | iso_photo (long ipISO, long nelem) |
void | iso_prt_pops (long ipISO, long nelem, bool lgPrtDeparCoef) |
void | iso_put_error (long ipISO, long nelem, long ipHi, long ipLo, long whichData, realnum errorOpt, realnum errorPess) |
void | iso_radiative_recomb (long ipISO, long nelem) |
void | iso_radiative_recomb_effective (long ipISO, long nelem) |
double | iso_recomb_check (long ipISO, long nelem, long level, double temperature) |
void | iso_recomb_auxiliary_free (void) |
void | iso_recomb_malloc (void) |
void | iso_recomb_setup (long ipISO) |
double | iso_RRCoef_Te (long ipISO, long nelem, long n) |
void | iso_satellite_update (void) |
double | iso_state_lifetime (long ipISO, long nelem, long n, long l) |
void | iso_solve (long ipISO, long nelem) |
void | iso_suprathermal (long ipISO, long nelem) |
void | iso_update_num_levels (long ipISO, long nelem) |
void | iso_update_rates (long ipISO, long nelem) |
Variables | |
EXTERN long int | max_num_levels |
EXTERN struct t_iso | iso |
Definition in file iso.h.
#define HE1CSARRAY 10 |
temperatures at which CS for He1 are stored
Definition at line 12 of file iso.h.
Referenced by HeCollidSetup().
#define IPCOLLIS 1 |
Definition at line 27 of file iso.h.
Referenced by iso_collide(), iso_collisional_ionization(), and iso_level().
#define IPRAD 0 |
Definition at line 26 of file iso.h.
Referenced by ForbiddenAuls(), he_1trans(), helike_transprob(), hydro_transprob(), iso_cascade(), iso_error_generation(), iso_ionize_recombine(), iso_level(), iso_put_recomb_error(), iso_radiative_recomb(), iso_radiative_recomb_effective(), and lines_helium().
#define J_ | ( | A_ | ) | (StatesElemNEW[nelem][nelem-ipISO][A_].j) |
#define KILL_BELOW_PLASMA | ( | E_ | ) | ( (rfield.lgPlasNu && ((E_)<rfield.plsfrq) ) ? 0.:1. ) |
This macro is used to zero any radiative process with photon energy below the plasma frequency. The energy must be in Rydbergs!
Definition at line 16 of file iso.h.
Referenced by iso_level().
#define L_ | ( | A_ | ) | (StatesElemNEW[nelem][nelem-ipISO][A_].l) |
Definition at line 22 of file iso.h.
Referenced by Badnell_rec_init(), DGEMM(), ForbiddenAuls(), helike_energy(), helike_transprob(), hydro_transprob(), HydroCSInterp(), iso_cascade(), iso_collapsed_Aul_update(), iso_put_recomb_error(), iso_radiative_recomb_effective(), iso_radrecomb_from_cross_section(), Opacity_iso_photo_cs(), and SanityCheckBegin().
#define LIKE_RREC_MAXN | ( | A_ | ) | ( A_ == ipHELIUM ? 40 : 20 ) |
Ions of the sequences will go up to this n, h-like He will get same as iso roots.
Definition at line 38 of file iso.h.
Referenced by iso_recomb_malloc(), iso_recomb_setup(), and ParseCompile().
#define N_ | ( | A_ | ) | (StatesElemNEW[nelem][nelem-ipISO][A_].n) |
these macros are just an easy way to return the quantum numbers of a given level.
Definition at line 21 of file iso.h.
Referenced by ForbiddenAuls(), t_ADfA::h_coll_str(), he_1trans(), helike_energy(), helike_transprob(), hydro_transprob(), HydroCSInterp(), iso_cascade(), iso_collide(), iso_collisional_ionization(), iso_create(), iso_level(), iso_radiative_recomb(), iso_radiative_recomb_effective(), iso_radrecomb_from_cross_section(), lines_hydro(), Opacity_iso_photo_cs(), RT_tau_init(), and SanityCheckBegin().
#define N_ISO_TE_RECOMB 41 |
Definition at line 40 of file iso.h.
Referenced by iso_recomb_malloc(), iso_recomb_setup(), and iso_RRCoef_Te().
#define NUM_DR_TEMPS 19 |
Definition at line 18 of file iso.h.
Referenced by iso_allocate(), and iso_dielec_recomb_rate().
#define RECOMBMAGIC (90521) |
the magic number for the table of recombination coefficients, YYMMDD
Definition at line 46 of file iso.h.
Referenced by iso_recomb_setup().
#define RREC_MAXN 40 |
this is the number of levels used with the atom xx-like levels large command
Definition at line 35 of file iso.h.
Referenced by iso_recomb_malloc(), iso_recomb_setup(), ParseAtomISO(), and ParseCompile().
#define S_ | ( | A_ | ) | (StatesElemNEW[nelem][nelem-ipISO][A_].S) |
Definition at line 23 of file iso.h.
Referenced by Badnell_rec_init(), ForbiddenAuls(), helike_energy(), helike_transprob(), iso_cascade(), iso_put_recomb_error(), iso_radiative_recomb_effective(), iso_radrecomb_from_cross_section(), and Opacity_iso_photo_cs().
#define SumUpToThisN 1000 |
This is the n to go up to when calculating total recombination. Any change here will not be reflected in total recomb until "compile xxlike" is run
Definition at line 44 of file iso.h.
Referenced by iso_radiative_recomb(), and iso_recomb_setup().
void IonHydro | ( | void | ) |
IonHydro this controls hydrogen atomic and molecular crosstalk
Definition at line 187 of file iso_solve.cpp.
References conv, DEBUG_ENTRY, dense, t_conv::EdenErrorAllowed, fnzone, t_dense::gas_phase, h2, H2_LevelPops(), t_hmi::H2_rate_destroy, H2_RTMake(), t_hmi::H2_Solomon_dissoc_rate_BD96_H2g, t_hmi::H2_Solomon_dissoc_rate_BigH2_H2g, t_hmi::H2_Solomon_dissoc_rate_TH85_H2g, t_hmi::H2_Solomon_dissoc_rate_used_H2g, t_hmi::H2_total, hmi, hmole(), t_hmi::Hmolec, ion_solver(), ioQQQ, ipH1s, ipH_LIKE, ipHYDROGEN, ipMH, ipMH2g, ipMHp, t_hmi::lgBigH2_evaluated, t_hmi::lgH2_Chemistry_BigH2, t_h2::lgH2ON, t_dense::lgSetIoniz, N_H_MOLEC, t_hmi::nProton, SDIV(), t_dense::SetIoniz, SMALLFLOAT, StatesElemNEW, and t_dense::xIonDense.
Referenced by ion_wrapper().
void iso_cascade | ( | long | ipISO, | |
long | nelem | |||
) |
iso_cascade - calculate cascade probabilities, branching ratios, and associated errors
ipISO | ||
nelem |
Cascade probabilities are as defined in Robbins 68, generalized here for cascade probability for any iso sequence. >>refer He triplets Robbins, R.R. 1968, ApJ 151, 497R >>refer He triplets Robbins, R.R. 1968a, ApJ 151, 511R
Definition at line 1242 of file iso_create.cpp.
References ASSERT, t_iso::BranchRatio, t_iso::CascadeProb, DEBUG_ENTRY, t_iso::Error, ioQQQ, ipH_LIKE, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHE_LIKE, ipHELIUM, IPRAD, iso, L_, t_opac::lgCaseB, t_iso::lgRandErrGen, MALLOC, N_, t_iso::n_HighestResolved_max, t_iso::nCollapsed_max, t_iso::numLevels_max, opac, pow(), S, S_, t_iso::SigmaAtot, t_iso::SigmaCascadeProb, t_iso::SmallA, StatesElemNEW, and Transitions.
Referenced by iso_create(), and iso_update_rates().
void iso_charge_transfer_update | ( | void | ) |
iso_charge_transfer_update - update rate coefficients for CT of H and He with everything else
Definition at line 17 of file iso_ionize_recombine.cpp.
References atmdat, DEBUG_ENTRY, dense, t_atmdat::HCharExcIonOf, t_atmdat::HCharExcIonTotal, t_atmdat::HCharExcRecTo, t_atmdat::HCharExcRecTotal, t_atmdat::HeCharExcIonOf, t_atmdat::HeCharExcIonTotal, t_atmdat::HeCharExcRecTo, t_atmdat::HeCharExcRecTotal, ionbal, ipHELIUM, ipHYDROGEN, ipLITHIUM, ipOXYGEN, t_ionbal::lgHO_ct_chem, LIMELM, and t_dense::xIonDense.
Referenced by iso_drive().
void iso_collapsed_Aul_update | ( | long | ipISO, | |
long | nelem | |||
) |
iso_collapsed_Aul_update - update decays from collapsed levels
ipISO | ||
nelem |
Definition at line 1908 of file iso_create.cpp.
References ASSERT, t_iso::bnl_effective, t_iso::CachedAs, DEBUG_ENTRY, ipH_LIKE, ipHE_LIKE, iso, L_, t_iso::n_HighestResolved_max, t_iso::nCollapsed_max, t_iso::numLevels_max, t_iso::QuantumNumbers2Index, StatesElemNEW, TotalInsanity(), and Transitions.
Referenced by iso_update_rates(), and iso_zero().
void iso_collapsed_bnl_print | ( | long | ipISO, | |
long | nelem | |||
) |
iso_collapsed_bnl_print - print departure coefficients for collapsed levels
ipISO | ||
nelem |
Definition at line 1862 of file iso_create.cpp.
References t_iso::bnl_effective, t_elementnames::chElementSym, t_iso::chISO, DEBUG_ENTRY, elementnames, ioQQQ, ipH_LIKE, ipHE_LIKE, iso, t_iso::n_HighestResolved_max, and t_iso::nCollapsed_max.
void iso_collapsed_bnl_set | ( | long | ipISO, | |
long | nelem | |||
) |
iso_collapsed_bnl_set - set departure coefficients for collapsed levels
ipISO | ||
nelem |
these are just sanity checks, the interpolated value should be between values at interpolation points
Definition at line 1667 of file iso_create.cpp.
References ASSERT, t_iso::bnl_effective, DEBUG_ENTRY, dense, t_dense::eden, hunt_bisect(), ipH_LIKE, ipHE_LIKE, ipHELIUM, ipHYDROGEN, iso, MAX2, MAX4, MIN2, MIN4, t_iso::n_HighestResolved_max, t_iso::nCollapsed_max, phycon, t_phycon::te, and TotalInsanity().
Referenced by iso_update_rates(), and iso_zero().
void iso_collapsed_lifetimes_update | ( | long | ipISO, | |
long | nelem | |||
) |
iso_collapsed_lifetimes_update - update lifetimes of collapsed levels
ipISO | ||
nelem |
Definition at line 1955 of file iso_create.cpp.
References ASSERT, DEBUG_ENTRY, iso, t_iso::nCollapsed_max, t_iso::numLevels_max, PI4, t_iso::SmallA, SMALLFLOAT, StatesElemNEW, and Transitions.
Referenced by iso_update_rates(), and iso_zero().
void iso_collide | ( | long | ipISO, | |
long | nelem | |||
) |
iso_collide - calculate collision data for ipISO, nelem
ipISO | ||
nelem |
Definition at line 116 of file iso_collide.cpp.
References t_rfield::anu, ASSERT, ATOMIC_MASS_UNIT, t_dense::AtomicWeight, BIGDOUBLE, t_iso::Boltzmann, t_iso::chISO, t_iso::ColIoniz, COLL_CONST, ColliderMass, t_ionbal::CollIonRate_Ground, conv, DEBUG_ENTRY, dense, t_dense::density_low_limit, dsexp(), t_dense::EdenHCorr, ELECTRON_MASS, EN1RYD, fixit(), fp_equal(), Heavy, HeCSInterp(), HION_LTE_POP, HydroCSInterp(), ionbal, ioQQQ, ipALPHA, IPCOLLIS, ipELECTRON, ipH_LIKE, ipHE_LIKE, ipHE_PLUS, t_Heavy::ipHeavy, ipHELIUM, ipHYDROGEN, t_trace::ipIsoTrace, ipPROTON, iso, iso_collisional_ionization(), iso_put_error(), iso_suprathermal(), t_opac::lgCaseB_HummerStorey, t_iso::lgColl_excite, t_iso::lgColl_l_mixing, t_trace::lgHBug, t_trace::lgHeBug, t_trace::lgIsoTraceFull, t_iso::lgMustReeval, t_iso::lgPopLTE_OK, t_iso::lgRandErrGen, t_trace::lgTrace, LIMELM, MAX_DENSITY, MAX_POP_LTE, MIN2, N_, t_iso::n_HighestResolved_max, NISO, t_iso::nLyaLevel, t_conv::nTotalIoniz, t_iso::numLevels_max, opac, phycon, t_iso::PopLTE, pow(), PrintEfmt, rfield, sexp(), SMALLDOUBLE, t_phycon::sqrte, t_iso::stat_ion, StatesElemNEW, t_phycon::te, t_phycon::te32, t_phycon::te_ryd, TotalInsanity(), trace, Transitions, t_dense::xIonDense, and t_iso::xIsoLevNIonRyd.
Referenced by iso_update_rates(), and SaveLineData().
void iso_collisional_ionization | ( | long | ipISO, | |
long | nelem | |||
) |
iso_collisional_ionization - calculate collisional ionization rate for ipISO, nelem
ipISO | ||
nelem |
Definition at line 24 of file iso_collide.cpp.
References ASSERT, t_iso::ColIoniz, DEBUG_ENTRY, Hion_coll_ioniz_ratecoef(), hydro_vs_ioniz(), Singleton< T >::Inst(), IPCOLLIS, iso, iso_put_error(), t_iso::lgColl_ionize, t_iso::lgLevelsLowered, N_, NISO, t_iso::numLevels_max, phycon, t_phycon::te, and t_iso::xIsoLevNIonRyd.
Referenced by iso_collide().
void iso_continuum_lower | ( | long | ipISO, | |
long | nelem | |||
) |
iso_continuum_lower - limit max prin. quan. no. due to continuum lowering processes
ipISO | ||
nelem |
Definition at line 12 of file iso_continuum_lower.cpp.
References ASSERT, conv, dense, t_dense::eden, ioQQQ, ipHELIUM, ipHYDROGEN, iso, iso_get_total_num_levels(), t_trace::lgHBug, t_trace::lgHeBug, t_iso::lgLevelsEverLowered, t_iso::lgLevelsLowered, t_iso::lgMustReeval, t_trace::lgTrace, LIMELM, MAX2, MAX_DENSITY, MIN2, MIN3, t_iso::n_HighestResolved_local, t_iso::n_HighestResolved_max, t_iso::nCollapsed_local, t_iso::nCollapsed_max, t_iso::nLyman, t_iso::nLyman_malloc, t_conv::nTotalIoniz, t_iso::numLevels_local, t_iso::numLevels_max, phycon, pow(), t_phycon::te, trace, t_dense::xIonDense, and t_dense::xNucleiTotal.
Referenced by iso_update_rates().
void iso_cool | ( | long | ipISO, | |
long | nelem | |||
) |
iso_cool compute net heating/cooling due to hydrogenc atom species
ipISO | the isoelectronic sequence, 0 for H | |
nelem | is element, so 0 for H itself |
Referenced by CoolEvaluate().
void iso_create | ( | void | ) |
iso_create create storage space data for iso sequences, 1 one time per coreload
Definition at line 39 of file iso_create.cpp.
References abscf(), AddLine2Stack(), AddState2Stack(), ASSERT, DEBUG_ENTRY, dense, DoFSMixing(), transition::Emis, EN1RYD, EVRYD, ExtraLymanLines, FillExtraLymanLine(), GetGF(), HeCollidSetup(), helike_energy(), helike_transprob(), HelikeTransProbSetup(), transition::Hi, hydro_transprob(), Singleton< T >::Inst(), ipH1s, ipH2p, ipH2s, ipH3d, ipH3p, ipH3s, ipH_LIKE, ipHe1s1S, ipHe2s3S, ipHE_LIKE, ipHELIUM, t_iso::ipLyaRedist, t_iso::ipResoRedist, t_iso::ipSubRedist, iso, iso_allocate(), iso_assign_quantum_numbers(), iso_cascade(), iso_recomb_auxiliary_free(), iso_recomb_malloc(), iso_recomb_setup(), iso_satellite(), iso_satellite_update(), iso_zero(), transition::Junk(), t_dense::lgElmtOn, t_iso::lgFSM, LIMELM, transition::Lo, N_, t_iso::n_HighestResolved_max, NISO, t_iso::nLyaLevel, t_iso::nLyman_malloc, t_iso::numLevels_max, t_iso::pestrk, PI4, pow(), POW2, RefIndex(), RYD_INF, t_iso::SmallA, SMALLFLOAT, t_iso::stat_ion, StatesElemNEW, t_iso::strkar, TauDummy, TE1RYD, TotalInsanity(), Transitions, WAVNRYD, and t_iso::xIsoLevNIonRyd.
Referenced by ContCreatePointers().
double iso_cross_section | ( | double | ERyd, | |
double | EthRyd, | |||
long | n, | |||
long | l, | |||
long | S, | |||
long | globalZ, | |||
long | globalISO | |||
) |
iso_cross_section get cross section for a particular level of an iso sequence ion
ERyd | ||
EthRyd | ||
n | ||
l | ||
S | ||
Z | ||
ipISO |
Definition at line 133 of file iso_radiative_recomb.cpp.
References cross_section(), DEBUG_ENTRY, H_cross_section(), He_cross_section(), ipH_LIKE, ipHE_LIKE, and TotalInsanity().
Referenced by iso_recomb_integrand().
void iso_departure_coefficients | ( | long | ipISO, | |
long | nelem | |||
) |
iso_departure_coefficients - calculate departure coefficients
ipISO | ||
nelem |
Definition at line 449 of file iso_solve.cpp.
References DEBUG_ENTRY, dense, t_iso::DepartCoef, t_dense::eden, iso, t_iso::numLevels_local, t_iso::numLevels_max, t_iso::PopLTE, safe_div(), SMALLFLOAT, StatesElemNEW, and t_dense::xIonDense.
Referenced by iso_solve().
double iso_dielec_recomb_rate | ( | long | ipISO, | |
long | nelem, | |||
long | ipLo | |||
) |
iso_dielec_recomb_rate - get state-specific dielectronic recombination rate
ipISO | ||
nelem | ||
ipLo |
Definition at line 1125 of file iso_radiative_recomb.cpp.
References t_phycon::alogte, ASSERT, DEBUG_ENTRY, t_iso::DielecRecombVsTemp, hunt_bisect(), ipHe1s1S, ipHE_LIKE, iso, t_iso::lgDielRecom, NUM_DR_TEMPS, t_iso::numLevels_max, phycon, and pow().
Referenced by iso_radiative_recomb().
void iso_drive | ( | void | ) |
iso_drive updates rates and solves level populations for all isoelectronic atoms and ions
Definition at line 27 of file iso_solve.cpp.
References conv, DEBUG_ENTRY, ipH_LIKE, iso_charge_transfer_update(), iso_solve(), iso_update_rates(), LIMELM, NISO, and t_conv::nTotalIoniz.
Referenced by ConvBase().
void iso_error_generation | ( | long | ipISO, | |
long | nelem | |||
) |
iso_error_generation generate gaussian errors
ipISO | ||
nelem |
Definition at line 39 of file iso_error.cpp.
References ASSERT, DEBUG_ENTRY, t_iso::Error, t_iso::ErrorFactor, IPRAD, iso, t_iso::lgErrGenDone, MyGaussRand(), and t_iso::numLevels_max.
Referenced by iso_update_rates().
long iso_get_total_num_levels | ( | long | ipISO, | |
long | nmaxResolved, | |||
long | numCollapsed | |||
) |
iso_get_total_num_levels - get total number of levels with the given number of resolved and collapsed
ipISO | ||
nmaxResolved | ||
numCollapsed |
Definition at line 1613 of file iso_create.cpp.
References DEBUG_ENTRY, ipH_LIKE, ipHE_LIKE, and TotalInsanity().
Referenced by iso_continuum_lower(), iso_recomb_malloc(), and iso_update_num_levels().
void iso_ionize_recombine | ( | long | ipISO, | |
long | nelem | |||
) |
iso_ionize_recombine evaluate state specific creation and destruction processes
ipISO | ||
nelem |
Referenced by iso_update_rates().
void iso_level | ( | const long | ipISO, | |
const long | nelem | |||
) |
iso_level solve for iso-sequence ionization balance
ipISO | ||
nelem |
Referenced by iso_solve().
void iso_photo | ( | long | ipISO, | |
long | nelem | |||
) |
iso_photo do photoionization rates for element nelem on the ipISO isoelectronic sequence
ipISO | ||
nelem |
Referenced by iso_update_rates().
void iso_prt_pops | ( | long | ipISO, | |
long | nelem, | |||
bool | lgPrtDeparCoef | |||
) |
iso_prt_pops routine to print level pops or departure coefficients for iso sequences
ipISO | ||
nelem | ||
lgPrtDeparCoef |
Definition at line 472 of file iso_solve.cpp.
References ASSERT, t_elementnames::chElementSym, t_iso::chISO, DEBUG_ENTRY, elementnames, ioQQQ, ipH_LIKE, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHE_LIKE, iso, ITEM_TO_PRINT, t_iso::n_HighestResolved_local, t_iso::nCollapsed_local, NISO, t_iso::numLevels_local, t_iso::QuantumNumbers2Index, and StatesElemNEW.
Referenced by PrtZone().
void iso_put_error | ( | long | ipISO, | |
long | nelem, | |||
long | ipHi, | |||
long | ipLo, | |||
long | whichData, | |||
realnum | errorOpt, | |||
realnum | errorPess | |||
) |
iso_put_error put an error bar on a piece of data, to be used with Gaussian random noise gen
ipISO | ||
nelem | ||
ipHi | ||
ipLo | ||
whichData | ||
errorOpt | ||
errorPess |
Referenced by ForbiddenAuls(), he_1trans(), helike_transprob(), hydro_transprob(), iso_collide(), iso_collisional_ionization(), iso_put_recomb_error(), and iso_radiative_recomb().
void iso_radiative_recomb | ( | long | ipISO, | |
long | nelem | |||
) |
iso_radiative_recomb - get rad recomb rate coefficients for iso sequences.
ipISO | ||
nelem |
Definition at line 150 of file iso_radiative_recomb.cpp.
References ASSERT, cdEXIT, t_elementnames::chElementSym, t_iso::chISO, t_iso::ConOpacRatio, conv, cosmology, DEBUG_ENTRY, t_iso::DielecRecomb, t_ionbal::DR_Badnell_rate_coef, dynamics, elementnames, t_iso::Error, t_iso::ErrorFactor, fp_equal(), fudge(), Singleton< T >::Inst(), ionbal, ioQQQ, t_save::ioRecom, ipH1s, ipHELIUM, t_iso::ipIsoLevNIonCon, t_trace::ipIsoTrace, IPRAD, ipRecEsc, ipRecNetEsc, ipRecRad, iso, iso_dielec_recomb_rate(), iso_put_error(), iso_put_recomb_error(), iso_radrecomb_from_cross_section(), iso_RRCoef_Te(), iteration, t_opac::lgCaseB, t_iso::lgDielRecom, t_cosmology::lgDo, t_trace::lgHBug, t_trace::lgHeBug, t_save::lgioRecom, t_trace::lgIsoTraceFull, t_iso::lgLevelsLowered, t_iso::lgMustReeval, t_iso::lgNoRecombInterp, t_iso::lgRandErrGen, t_iso::lgTopoff, t_trace::lgTrace, LIMELM, MAX2, MIN2, MyGaussRand(), N_, t_iso::n_HighestResolved_local, t_dynamics::n_initial_relax, t_iso::nCollapsed_local, t_iso::nCollapsed_max, NHYDRO_MAX_LEVEL, NISO, t_conv::nTotalIoniz, t_iso::numLevels_local, t_iso::numLevels_max, opac, phycon, PrintEfmt, t_iso::RadRec_caseB, t_iso::RadRec_effec, t_iso::RadRecomb, Recomb_Seaton59(), RT_recom_effic(), save, ShowMe(), SumUpToThisN, t_opac::TauAbsGeo, t_phycon::te, and trace.
Referenced by iso_update_rates().
void iso_radiative_recomb_effective | ( | long | ipISO, | |
long | nelem | |||
) |
iso_radiative_recomb_effective - get effective recomb rate coefficients into each level (including indirect)
ipISO | ||
nelem |
Definition at line 578 of file iso_radiative_recomb.cpp.
References ASSERT, t_iso::BranchRatio, t_iso::CascadeProb, DEBUG_ENTRY, dprintf(), EN1RYD, t_iso::Error, ioQQQ, IPRAD, ipRecRad, iso, L_, t_iso::lgRandErrGen, MAX2, N_, t_iso::numLevels_local, t_iso::numLevels_max, phycon, pow(), prt_wl(), t_iso::RadEffec, t_iso::RadRecomb, RYDLAM, S_, t_iso::SigmaAtot, t_iso::SigmaCascadeProb, t_iso::SigmaRadEffec, StatesElemNEW, t_phycon::te, wavelength, and t_iso::xIsoLevNIonRyd.
Referenced by iso_update_rates().
void iso_recomb_auxiliary_free | ( | void | ) |
iso_recomb_auxiliary_free - free up some auxiliary space associated with iso recombination tables.
Definition at line 801 of file iso_radiative_recomb.cpp.
References DEBUG_ENTRY, NISO, and NumLevRecomb.
Referenced by iso_create().
double iso_recomb_check | ( | long | ipISO, | |
long | nelem, | |||
long | level, | |||
double | temperature | |||
) |
iso_recomb_check - called by SanityCheck to confirm that recombination coef are ok, return value is relative error between new calculation of recom, and interp value
ipISO | ||
nelem | the chemical element, 1 for He | |
level | the level, 0 for ground | |
temperature | the temperature to be used |
Definition at line 710 of file iso_radiative_recomb.cpp.
References DEBUG_ENTRY, iso_radrecomb_from_cross_section(), iso_RRCoef_Te(), MAX2, phycon, t_phycon::te, and TempChange().
Referenced by SanityCheckBegin().
void iso_recomb_malloc | ( | void | ) |
iso_recomb_malloc - malloc space needed for iso recombination tables.
Definition at line 741 of file iso_radiative_recomb.cpp.
References DEBUG_ENTRY, dense, iso, iso_get_total_num_levels(), t_dense::lgElmtOn, LIKE_RREC_MAXN, LIMELM, MALLOC, MAX2, N_ISO_TE_RECOMB, NISO, t_iso::numLevels_max, NumLevRecomb, RRCoef, RREC_MAXN, TeRRCoef, and TotalRecomb.
Referenced by iso_create().
void iso_recomb_setup | ( | long | ipISO | ) |
iso_recomb_setup - read in or compile iso recombination tables.
ipISO |
Establish radiative recombination rate coefficients - RRC
Definition at line 814 of file iso_radiative_recomb.cpp.
References AS_LOCAL_ONLY, ASSERT, cdEXIT, t_elementnames::chElementSym, t_iso::chISO, chLine_LENGTH, DEBUG_ENTRY, dense, elementnames, FFmtRead(), INPUT_LINE_LENGTH, Singleton< T >::Inst(), ioQQQ, ipHe1s1S, iso, iso_radrecomb_from_cross_section(), t_iso::lgCompileRecomb, t_dense::lgElmtOn, t_iso::lgNoRecombInterp, t_trace::lgTrace, LIKE_RREC_MAXN, LIMELM, t_iso::n_HighestResolved_max, N_ISO_TE_RECOMB, t_iso::nCollapsed_max, NHYDRO_MAX_LEVEL, NISO, t_iso::numLevels_max, NumLevRecomb, open_data(), pow(), read_whole_line(), Recomb_Seaton59(), RECOMBMAGIC, RRCoef, RREC_MAXN, SumUpToThisN, TeRRCoef, TotalRecomb, and trace.
Referenced by iso_create().
double iso_RRCoef_Te | ( | long | ipISO, | |
long | nelem, | |||
long | n | |||
) |
iso_RRCoef_Te - interpolate iso recomb coeff as function of temperature
ipISO | ||
nelem | ||
n |
Definition at line 684 of file iso_radiative_recomb.cpp.
References ASSERT, DEBUG_ENTRY, iso, t_iso::lgNoRecombInterp, N_ISO_TE_RECOMB, t_iso::nCollapsed_max, t_iso::numLevels_max, pow(), RRCoef, TempInterp(), TeRRCoef, and TotalRecomb.
Referenced by iso_radiative_recomb(), and iso_recomb_check().
void iso_satellite_update | ( | void | ) |
iso_satellite_update - update iso satellite line information
Definition at line 1524 of file iso_create.cpp.
References abscf(), ATOMIC_MASS_UNIT, t_dense::AtomicWeight, DEBUG_ENTRY, dense, t_iso::DielecRecomb, dsexp(), t_dense::eden, ELECTRON_MASS, ERG1CM, GetGF(), HION_LTE_POP, ipHE_LIKE, iso, t_iso::lgDielRecom, t_dense::lgElmtOn, LIMELM, max(), MAX2, NISO, t_iso::numLevels_max, phycon, PI4, pow(), SatelliteLines, t_iso::SmallA, SMALLDOUBLE, SMALLFLOAT, t_iso::stat_ion, t_phycon::te32, t_phycon::te_ryd, t_dense::xIonDense, and t_iso::xIsoLevNIonRyd.
Referenced by iso_create(), and lines().
void iso_solve | ( | long | ipISO, | |
long | nelem | |||
) |
iso_solve - main routine to call iso_level and determine iso level balances
ipISO |
Definition at line 131 of file iso_solve.cpp.
References ASSERT, DEBUG_ENTRY, dense, t_dense::gas_phase, HydroLevel(), t_dense::IonHigh, t_dense::IonLow, ipH_LIKE, iso, iso_departure_coefficients(), iso_level(), t_dense::lgElmtOn, t_dense::lgSetIoniz, t_iso::nLyaLevel, t_iso::numLevels_max, t_dense::SetIoniz, t_iso::SmallA, StatesElemNEW, Transitions, t_dense::xIonDense, and t_iso::xIonSimple.
Referenced by iso_drive().
double iso_state_lifetime | ( | long | ipISO, | |
long | nelem, | |||
long | n, | |||
long | l | |||
) |
Definition at line 1198 of file iso_create.cpp.
References ASSERT, ATOMIC_MASS_UNIT, t_dense::AtomicWeight, DEBUG_ENTRY, dense, ELECTRON_MASS, FINE_STRUCTURE, H_BAR, ipHE_LIKE, M, pow(), POW2, POW4, SPEEDLIGHT, and Z.
Referenced by FillExtraLymanLine(), and SanityCheckBegin().
void iso_suprathermal | ( | long | ipISO, | |
long | nelem | |||
) |
iso_suprathermal - calculate secondary excitation by suprathermal electrons for iso sequences
ipISO | ||
nelem |
Definition at line 78 of file iso_collide.cpp.
References ASSERT, DEBUG_ENTRY, t_secondaries::Hx12, ipH2p, ipH_LIKE, ipHYDROGEN, iso, LIMELM, NISO, t_iso::numLevels_max, secondaries, Transitions, and t_secondaries::x12tot.
Referenced by iso_collide().
void iso_update_num_levels | ( | long | ipISO, | |
long | nelem | |||
) |
iso_update_num_levels - update level informations for iso sequences
ipISO | ||
nelem |
Definition at line 1636 of file iso_create.cpp.
References ASSERT, cdEXIT, DEBUG_ENTRY, ioQQQ, iso, iso_get_total_num_levels(), MAX2, max_num_levels, t_iso::n_HighestResolved_local, t_iso::n_HighestResolved_max, t_iso::nCollapsed_local, t_iso::nCollapsed_max, t_iso::numLevels_local, t_iso::numLevels_malloc, and t_iso::numLevels_max.
Referenced by InitCoreload(), InitCoreloadPostparse(), InitSimPostparse(), ParseAtomISO(), and ParseCompile().
void iso_update_rates | ( | long | ipISO, | |
long | nelem | |||
) |
iso_update_rates routine to set up iso rates, level balance is done elsewhere
ipISO | ||
nelem |
Definition at line 53 of file iso_solve.cpp.
References conv, DEBUG_ENTRY, dense, hydro, t_dense::IonHigh, t_dense::IonLow, ipH_LIKE, ipHELIUM, ipHYDROGEN, iso, iso_cascade(), iso_collapsed_Aul_update(), iso_collapsed_bnl_set(), iso_collapsed_lifetimes_update(), iso_collide(), iso_continuum_lower(), iso_error_generation(), iso_ionize_recombine(), iso_photo(), iso_radiative_recomb(), iso_radiative_recomb_effective(), t_iso::lgContinuumLoweringEnabled, t_dense::lgElmtOn, t_iso::lgErrGenDone, t_iso::lgRandErrGen, t_opac::lgRedoStatic, t_conv::nTotalIoniz, t_iso::numLevels_local, nzone, opac, PumpSave, Transitions, and t_hydro::xLymanPumpingScaleFactor.
Referenced by iso_drive().
Referenced by atmdat_2phot_rate(), atmdat_readin(), AtomCSInterp(), Badnell_rec_init(), chkCaHeps(), collision_strength_VF01(), ContCreatePointers(), ContRate(), ContSetIntensity(), ConvBase(), ConvIterCheck(), CoolEvaluate(), cross_section(), CS_l_mixing_S62(), CS_l_mixing_VF01(), CS_ThermAve_PR78(), CS_VS80(), DoFSMixing(), DoSatelliteLines(), DynaCreateArrays(), DynaIonize(), DynaNewStep(), DynaSaveLast(), DynaStartZone(), FillExtraLymanLine(), ForbiddenAuls(), GrainRateDr(), he_1trans(), HeCollidSetup(), HeCSInterp(), helike_energy(), helike_quantum_defect(), helike_transprob(), hmole_reactions(), hmole_step(), hydro_transprob(), hydro_vs_coll_str(), hydro_vs_deexcit(), HydroCSInterp(), HydroLevel(), HydroRecCool(), HydroRenorm(), InitCoreload(), InitCoreloadPostparse(), InitSimPostparse(), ion_trim(), IonCSInterp(), IonHelium(), IonMagne(), IonOxyge(), ipShells(), iso_allocate(), iso_assign_quantum_numbers(), iso_cascade(), iso_collapsed_Aul_update(), iso_collapsed_bnl_print(), iso_collapsed_bnl_set(), iso_collapsed_lifetimes_update(), iso_collide(), iso_collisional_ionization(), iso_continuum_lower(), iso_cool(), iso_create(), iso_departure_coefficients(), iso_dielec_recomb_rate(), iso_error_generation(), iso_ionize_recombine(), iso_level(), iso_photo(), iso_prt_pops(), iso_put_error(), iso_put_recomb_error(), iso_radiative_recomb(), iso_radiative_recomb_effective(), iso_radrecomb_from_cross_section(), iso_recomb_malloc(), iso_recomb_setup(), iso_RRCoef_Te(), iso_satellite(), iso_satellite_update(), iso_solve(), iso_suprathermal(), iso_update_num_levels(), iso_update_rates(), iso_zero(), IterRestart(), IterStart(), lgCheckMonitors(), lines(), lines_continuum(), lines_general(), lines_helium(), lines_hydro(), Opacity_iso_photo_cs(), OpacityAdd1Element(), OpacityAddTotal(), OpacityCreateAll(), ParseAtomISO(), ParseCompile(), ParseElement(), ParsePrint(), ParseSet(), PresTotCurrent(), PrintRates(), PrtAllTau(), PrtComment(), PrtContinuum(), PrtFinal(), PrtHeader(), PrtHydroTrace1(), PrtHydroTrace1a(), PrtLinePres(), prtmet(), PrtZone(), radius_first(), radius_increment(), radius_next(), RT_continuum(), RT_diffuse(), RT_line_all(), RT_line_driving(), RT_OTS(), RT_stark(), RT_tau_inc(), RT_tau_init(), RT_tau_reset(), SanityCheckBegin(), save_opacity(), SaveDo(), SaveLineData(), SaveLineStuff(), SaveSpecial(), state_get_put(), store_new_densities(), tfidle(), and zero().
EXTERN long int max_num_levels |
Definition at line 9 of file iso.h.
Referenced by InitCoreload(), and iso_update_num_levels().