Cloudy
Spectral Synthesis Code for Astrophysics
|
#include "cddefines.h"
#include "atmdat.h"
#include "conv.h"
#include "elementnames.h"
#include "helike_cs.h"
#include "hmi.h"
#include "hydrogenic.h"
#include "ionbal.h"
#include "iso.h"
#include "helike.h"
#include "phycon.h"
#include "rfield.h"
#include "secondaries.h"
#include "thermal.h"
#include "trace.h"
#include "mole.h"
#include "freebound.h"
#include "two_photon.h"
#include "dense.h"
Macros | |
#define | ITEM_TO_PRINT(A_) ( lgPrtDeparCoef ? iso_sp[ipISO][nelem].st[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].st[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 |
References DEBUG_ENTRY, fprintf(), 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
References atmdat, qList::Boltzmann(), t_atmdat::CharExcIonTotal, TransitionProxy::Coll(), colliders, CollisionProxy::ColUL(), t_secondaries::csupra, DEBUG_ENTRY, dense, t_dense::eden, t_dense::EdenHCorr, t_iso_sp::fb, findspecieslocal(), fixit, fnzone, fprintf(), 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::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 | ) |
References conv, dense, t_dense::IonHigh, t_dense::IonLow, ipH_LIKE, ipHELIUM, ipHYDROGEN, iso_cascade(), 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 |
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, t_iso_sp::st, 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 |
References ASSERT, t_elementnames::chElementSym, t_isoCTRL::chISO, DEBUG_ENTRY, elementnames, fprintf(), 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, pow2(), t_iso_sp::QN2Index(), 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
References ASSERT, conv, DEBUG_ENTRY, dense, TransitionProxy::Emis(), fp_equal(), fprintf(), 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 clean_up(), ConvBase(), IonHydro(), iso_level(), lgTrivialSolution(), and ScaleIonDensities().
void iso_solve | ( | long | ipISO, |
long | nelem, | ||
double & | maxerr | ||
) |
iso_solve - main routine to call iso_level and determine iso level balances
ipISO |
References ASSERT, EmissionProxy::Aul(), DEBUG_ENTRY, dense, t_dense::eden, TransitionProxy::Emis(), t_iso_sp::fb, fprintf(), HydroLevel(), t_dense::IonHigh, t_dense::IonLow, ioQQQ, ipRecRad, iso_ctrl, iso_level(), iso_sp, t_dense::lgElmtOn, EmissionProxy::mult_opac(), t_iso_sp::nCollapsed_max, t_isoCTRL::nLyaLevel, t_iso_sp::numLevels_max, phycon, EmissionProxy::PopOpc(), pow2(), S, t_isoCTRL::SmallA, t_iso_sp::st, t_phycon::te, t_iso_sp::trans(), and t_dense::xIonDense.
Referenced by ConvBase(), and ion_solver().
void iso_update_rates | ( | void | ) |
iso_update_rates routine to set up iso rates, level balance is done elsewhere
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().