#include "cddefines.h"
#include "atmdat.h"
#include "conv.h"
#include "dense.h"
#include "opacity.h"
#include "elementnames.h"
#include "h2.h"
#include "helike.h"
#include "helike_cs.h"
#include "hmi.h"
#include "mole.h"
#include "hydrogenic.h"
#include "ionbal.h"
#include "iso.h"
#include "phycon.h"
#include "rfield.h"
#include "secondaries.h"
#include "taulines.h"
#include "thermal.h"
#include "trace.h"
Go to the source code of this file.
Defines | |
#define | ITEM_TO_PRINT(A_) ( lgPrtDeparCoef ? iso_sp[ipISO][nelem].fb[A_].DepartCoef : iso_sp[ipISO][nelem].st[A_].Pop() ) |
Functions | |
void | iso_collapsed_update (void) |
void | iso_update_rates (void) |
void | iso_solve (long ipISO, long nelem, double &maxerr) |
void | IonHydro (void) |
void | iso_renorm (long nelem, long ipISO, double &renorm) |
void | iso_departure_coefficients (long ipISO, long nelem) |
void | iso_prt_pops (long ipISO, long nelem, bool lgPrtDeparCoef) |
void | AGN_He1_CS (FILE *ioPun) |
#define ITEM_TO_PRINT | ( | A_ | ) | ( lgPrtDeparCoef ? iso_sp[ipISO][nelem].fb[A_].DepartCoef : iso_sp[ipISO][nelem].st[A_].Pop() ) |
Referenced by iso_prt_pops().
void AGN_He1_CS | ( | FILE * | ioPun | ) |
AGN_He1_CS routine to save table needed for AGN3 - collision strengths of HeI
*ioPun |
Definition at line 464 of file iso_solve.cpp.
References DEBUG_ENTRY, HeCSInterp(), ipELECTRON, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHe2s3S, ipHe3d1D, ipHe3d3D, ipHe3p3P, ipHe3s3S, phycon, t_phycon::te, and TempChange().
Referenced by SaveDo().
void IonHydro | ( | ) |
IonHydro this controls hydrogen atomic and molecular crosstalk
Definition at line 149 of file iso_solve.cpp.
References atmdat, TransitionProxy::Coll(), colliders, CollisionProxy::ColUL(), t_secondaries::csupra, DEBUG_ENTRY, dense, t_dense::eden, t_dense::EdenHCorr, t_iso_sp::fb, findspecieslocal(), fixit(), fnzone, t_hmi::H2_Solomon_dissoc_rate_BD96_H2g, t_hmi::H2_Solomon_dissoc_rate_TH85_H2g, t_hmi::H2_Solomon_dissoc_rate_used_H2g, t_hmi::H2_total, t_hydro::H_ion_frac_collis, t_hydro::H_ion_frac_photo, t_atmdat::HCharExcIonTotal, t_atmdat::HIonFrac, hmi, hydro, ion_solver(), ioQQQ, ipH1s, ipH2p, ipH_LIKE, ipHYDROGEN, iso_renorm(), iso_sp, t_hydro::lgHiPop2, t_dense::lgSetIoniz, t_trace::lgTrace, MAX2, t_hydro::pop2mx, PrintE82(), t_secondaries::sec2total, secondaries, t_dense::SetIoniz, SMALLDOUBLE, SMALLFLOAT, t_iso_sp::st, trace, t_iso_sp::trans(), and t_dense::xIonDense.
Referenced by ion_wrapper().
void iso_collapsed_update | ( | void | ) |
Definition at line 27 of file iso_solve.cpp.
References conv, dense, t_dense::IonHigh, t_dense::IonLow, ipH_LIKE, ipHELIUM, ipHYDROGEN, iso_cascade(), iso_collapsed_Aul_update(), iso_collapsed_bnl_set(), iso_collapsed_lifetimes_update(), t_dense::lgElmtOn, MIN2, NISO, and t_conv::nTotalIoniz.
Referenced by ConvBase().
void iso_departure_coefficients | ( | long | ipISO, | |
long | nelem | |||
) |
iso_departure_coefficients - calculate departure coefficients
ipISO | ||
nelem |
Definition at line 363 of file iso_solve.cpp.
References DEBUG_ENTRY, dense, t_dense::eden, t_iso_sp::fb, iso_sp, t_iso_sp::numLevels_local, t_iso_sp::numLevels_max, safe_div(), SMALLFLOAT, and t_dense::xIonDense.
Referenced by ion_solver().
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 386 of file iso_solve.cpp.
References ASSERT, t_elementnames::chElementSym, t_isoCTRL::chISO, DEBUG_ENTRY, elementnames, ioQQQ, ipH_LIKE, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHE_LIKE, iso_ctrl, iso_sp, ITEM_TO_PRINT, t_iso_sp::nCollapsed_local, NISO, t_iso_sp::numLevels_local, t_iso_sp::QuantumNumbers2Index, and t_iso_sp::st.
Referenced by PrtZone().
void iso_renorm | ( | long | nelem, | |
long | ipISO, | |||
double & | renorm | |||
) |
iso_renorm - renormalize H-like so that it agrees with the ionization balance
Definition at line 272 of file iso_solve.cpp.
References ASSERT, conv, DEBUG_ENTRY, dense, TransitionProxy::Emis(), fp_equal(), t_conv::IonizErrorAllowed, ioQQQ, iso_ctrl, iso_sp, t_conv::lgConvIoniz(), t_iso_sp::numLevels_local, EmissionProxy::PopOpc(), t_conv::setConvIonizFail(), t_isoCTRL::SmallA, SMALLFLOAT, t_iso_sp::st, t_iso_sp::trans(), and t_dense::xIonDense.
Referenced by ConvBase(), IonHydro(), iso_level(), lgTrivialSolution(), ScaleIonDensities(), and store_new_densities().
void iso_solve | ( | long | ipISO, | |
long | nelem, | |||
double & | maxerr | |||
) |
iso_solve - main routine to call iso_level and determine iso level balances
ipISO |
Definition at line 102 of file iso_solve.cpp.
References ASSERT, DEBUG_ENTRY, dense, TransitionProxy::Emis(), HydroLevel(), t_dense::IonHigh, t_dense::IonLow, ipH_LIKE, iso_ctrl, iso_level(), iso_sp, t_dense::lgElmtOn, t_isoCTRL::nLyaLevel, t_iso_sp::numLevels_max, EmissionProxy::PopOpc(), t_isoCTRL::SmallA, t_iso_sp::st, and t_iso_sp::trans().
Referenced by ion_solver().
void iso_update_rates | ( | void | ) |
iso_update_rates routine to set up iso rates, level balance is done elsewhere
Definition at line 51 of file iso_solve.cpp.
References ASSERT, CalcTwoPhotonRates(), conv, dense, ionbal, t_dense::IonHigh, t_dense::IonLow, ipH_LIKE, ipHE_LIKE, ipHYDROGEN, iso_collide(), iso_continuum_lower(), iso_ctrl, iso_error_generation(), iso_ionize_recombine(), iso_photo(), iso_radiative_recomb(), iso_radiative_recomb_effective(), iso_sp, t_isoCTRL::lgContinuumLoweringEnabled, t_dense::lgElmtOn, t_iso_sp::lgErrGenDone, t_isoCTRL::lgInd2nu_On, t_rfield::lgInducProcess, t_isoCTRL::lgRandErrGen, LIMELM, MIN2, NISO, t_conv::nPres2Ioniz, t_conv::nTotalIoniz, nzone, t_ionbal::RateRecomIso, t_ionbal::RateRecomTot, rfield, and t_iso_sp::TwoNu.
Referenced by ConvBase().