Cloudy
Spectral Synthesis Code for Astrophysics
|
#include <dense.h>
Public Member Functions | |
t_dense () | |
void | SetGasPhaseDensity (const long nelem, const realnum density) |
realnum | xMolecules (long nelem) |
void | updateXMolecules () |
void | zero () |
void | comment (t_warnings &) |
const char * | chName () const |
Public Member Functions inherited from module | |
module () | |
virtual | ~module () |
Private Attributes | |
realnum | m_xMolecules [LIMELM] |
variables dealing with pressure across model
|
inline |
References AtomicWeight, density_low_limit, ionMole, lgElmtOn, lgElmtSetOff, lgIonChiantiOn, lgIonStoutOn, lgSetIoniz, LIMELM, max(), maxWN, NULL, SMALLFLOAT, and zero().
|
inlinevirtual |
Implements module.
|
inlinevirtual |
Implements module.
void t_dense::SetGasPhaseDensity | ( | const long | nelem, |
const realnum | density | ||
) |
References density(), deut, gas_phase, ipHYDROGEN, t_deuterium::lgElmtOn, and SetGasPhaseDeuterium().
Referenced by AbundancesSet(), AbundChange(), IterRestart(), ParseCommands(), ParseDLaw(), ParseFluc(), ParseGlobule(), ParseHDEN(), SaveLineData(), ScaleAllDensities(), and zero().
void t_dense::updateXMolecules | ( | ) |
References m_xMolecules, and total_molecule_elems().
Referenced by IterRestart(), mole_return_cached_species(), and ScaleAllDensities().
|
inline |
References m_xMolecules.
Referenced by get_total_abundance_ions(), HomogeneousSource(), lgElemsConserved(), and PrintRates().
|
virtual |
Implements module.
References dense, eden, HCorrFac, ipHYDROGEN, LIMELM, m_xMolecules, SetGasPhaseDensity(), xIonDense, xMassDensity0, xMassTotal, and xNucleiTotal.
Referenced by t_dense().
realnum t_dense::AbundanceLimit |
this is lower limit to abundance of element that will be include in the calculation, default is zero, set with command ELEMENT LIMIT OFF XXX command
Referenced by AbundancesSet(), InitDefaultsPreparse(), and ParseElement().
vector of atomic weights for all elements, set in zerologic
Referenced by AbundancesSet(), ColliderList::ColliderList(), CoolDima(), CoolHyperfine(), GetHelikeCollisionStrength(), GrainChrgTransferRates(), GrainCollHeating(), GrainElecEmis1(), GrainElecRecomb1(), diatomics::H2_PunchLineStuff(), H_Einstein_A(), hydro_vs_coll_str(), iso_collide(), iso_get_collision_strength(), iso_multiplet_opacities_one(), iso_satellite_update(), iso_state_lifetime(), MeanMassOfElement(), mie_read_form(), mie_read_opc(), mole_h2_grain_form(), mole_h_reactions(), t_hydro_tbl::p_RM(), pah1_fun(), pah2_fun(), pah3_fun(), PresTotCurrent(), PrtLinePres(), radius_increment(), reduced_amu(), rfield_opac_alloc(), ritoa(), RT_line_all(), RT_line_all_escape(), RT_tau_inc(), RT_tau_init(), SaveLineStuff(), setXtraRatesFe2(), setXtraRatesO1(), states_nelemfill(), SumDensities(), and t_dense().
double t_dense::cdsqte |
cdsqte is eden/sqrte times 8.629e-6 - this multiplies the collision strength to produce the deexcitation rate coefficient, s-1 8.629e-6 is COLL_CONST
Referenced by atom_level2(), ConvRate2CS(), CoolHyperfine(), EdenChange(), emit_frac(), H21_cm_pops(), LineConvRate2CS(), lines(), setCollRate::operator()(), and tfidle().
realnum t_dense::cfirst |
Referenced by AbundancesSet(), AbundChange(), ParseFluc(), and zoneDensity().
char t_dense::chDenseLaw[5] |
label describing the density law for current calculation 'DLW2' is dense_tabden interpolated table
Referenced by AgeCheck(), ConvFail(), ConvInitSolution(), ConvPresTempEdenIoniz(), InitDefaultsPreparse(), iter_end_check(), ParseCommands(), ParseConstant(), ParseDLaw(), ParseDynaWind(), ParseFluc(), ParseGlobule(), ParseHDEN(), ParseTLaw(), PresTotCurrent(), prt_smooth_predictions(), PrtComment(), PrtFinal(), radius_first(), radius_next(), PresMode::set(), zoneDensity(), and ZoneStart().
realnum t_dense::csecnd |
Referenced by AbundancesSet(), AbundChange(), ParseFluc(), and zoneDensity().
realnum t_dense::den0 |
Referenced by ParseHDEN(), and zoneDensity().
double t_dense::density_low_limit |
lowest allowed density for any ion = if density falls below this then set to zero in ion_trim
Referenced by ion_trim(), ion_trim2(), ion_trim_from_set(), ion_widen(), iso_collide(), RT_tau_inc(), and t_dense().
double t_dense::DensityLaw[10] |
parameters set by the dlaw command, used by dense_fabden (maybe)
Referenced by dense_fabden(), dense_parametric_wind(), ParseDLaw(), and ParseTLaw().
realnum t_dense::DensityPower |
parameters dealing with hydrogen density scaling as power of radius DensityPower is power
Referenced by ParseCommands(), ParseHDEN(), and zoneDensity().
DepthTable t_dense::DLW |
Table data
Referenced by InitDefaultsPreparse(), ParseCommands(), ParseDLaw(), radius_first(), radius_next(), and zoneDensity().
double t_dense::eden |
electron density, units cm-3
Referenced by AGN_Hemis(), atmdat_3body(), cdEDEN_last(), collision_strength_VF01(), ContNegative(), ContSetIntensity(), ConvBase(), ConvEdenIoniz(), ConvFail(), ConvInitSolution(), ConvPresTempEdenIoniz(), CoolEvaluate(), CoolH2_GA08(), CoolHyperfine(), CS_l_mixing_PS64(), CS_l_mixing_PS64_expI(), DoSatelliteLines(), DumpLine(), DynaPunchTimeDep(), eden_sum(), EdenChange(), EdenError(), ElectronFractions(), find_solution(), fndstr(), GetHelikeCollisionStrength(), GetLineRec(), GrainChargeTemp(), GrainCollHeating(), GrainDrift(), GrainDrive(), GrainElecRecomb1(), GrainTemperature(), diatomics::H2_LevelPops(), diatomics::H2_X_sink_and_source(), HeatSum(), highen(), HydroLevel(), HyperfineCreate(), InitSimPostparse(), ion_recom_calculate(), ion_recomb(), ion_recombAGN(), IonHydro(), iso_collide(), iso_continuum_lower(), iso_cool(), iso_departure_coefficients(), iso_get_collision_strength(), iso_ionize_recombine(), iso_level(), iso_radiative_recomb(), iso_satellite_update(), iso_solve(), iter_end_check(), IterRestart(), IterStart(), lgCheckMonitors(), lgConvEden(), lgStatesConserved(), lines(), lines_continuum(), lines_helium(), lines_hydro(), map_do(), t_mean::MeanInc(), mole_effects(), diatomics::mole_H2_form(), mole_h_rate_diagnostics(), mole_h_reactions(), mole_solve(), my_Integrand_VF01_E< P >::my_Integrand_VF01_E(), OpacityAddTotal(), PresTotCurrent(), PrintRates(), PrtHeader(), PrtHydroTrace1a(), PrtZone(), radius_increment(), radius_next(), RT_DestProb(), RT_diffuse(), RT_iso_integrate_RRC(), RT_line_electron_scatter(), RT_LineWidth(), RT_OTS(), RT_stark(), RT_tau_inc(), RT_tau_init(), RTesc_lya(), Save_Line_RT(), save_opacity(), SaveDo(), SaveSpecial(), ScaleAllDensities(), SumDensities(), tfidle(), zero(), and ZoneStart().
double t_dense::eden_from_metals |
fraction of electron density due to ions rather than molecules and grains
Referenced by eden_sum(), and radius_next().
realnum t_dense::EdenExtra |
extra electron density, set with eden command
Referenced by ContSetIntensity(), eden_sum(), InitDefaultsPreparse(), and ParseEden().
realnum t_dense::EdenFraction |
option to set electron fraction, n_e/n_H
Referenced by eden_sum(), InitDefaultsPreparse(), and ParseSet().
double t_dense::EdenHCorr |
EdenHCorr is eden + hi * 1.7e-4, includes correction for H atom collisions, units cm-3
Referenced by ContSetIntensity(), EdenChange(), HydroLevel(), ColliderList::init(), ion_collis(), IonHydro(), iso_collide(), iso_cool(), iso_ionize_recombine(), iso_level(), IterRestart(), PrintRates(), PrtHydroTrace1a(), Save_Line_RT(), SaveDo(), SaveLineData(), and tfidle().
realnum t_dense::EdenHCorr_f |
Referenced by ContSetIntensity(), EdenChange(), IterRestart(), and tfidle().
double t_dense::EdenMax |
max and min eden over this iteration
Referenced by IterStart(), PrtComment(), and radius_increment().
double t_dense::EdenMin |
Referenced by IterStart(), and radius_increment().
realnum t_dense::EdenSet |
EdenSet electron density set with set eden command
Referenced by ContSetIntensity(), eden_sum(), InitDefaultsPreparse(), and ParseSet().
double t_dense::edensqte |
edensqte is eden/sqrte
Referenced by EdenChange(), and tfidle().
double t_dense::EdenTrue |
this is the true eden as set in eden_sum, we will try to converge eden to this
Referenced by ContSetIntensity(), ConvBase(), ConvEdenIoniz(), ConvFail(), CoolEvaluate(), eden_sum(), EdenError(), ElectronFractions(), ion_trim2(), iter_end_check(), IterRestart(), lgConvEden(), lgNetEdenSrcSmall(), lines_grains(), radius_increment(), RT_OTS(), and SaveDo().
realnum t_dense::flcPhase |
Referenced by AbundancesSet(), AbundChange(), InitDefaultsPreparse(), ParseFluc(), and zoneDensity().
realnum t_dense::flong |
parameters for the density fluctuations command
Referenced by AbundChange(), InitDefaultsPreparse(), ParseFluc(), radius_first(), radius_next(), and zoneDensity().
dense.gas_phase is the total gas phase abundances, including anything within molecules, but not including grains
Referenced by AbundancesPrt(), AbundancesSet(), AbundChange(), check_co_ion_converge(), ChemImportance(), conorm(), ContRate(), ContSetIntensity(), ConvBase(), ConvFail(), ConvInitSolution(), ConvPresTempEdenIoniz(), ConvTempEdenIoniz(), CoolEvaluate(), CoolH2_GA08(), DynaIonize(), DynaPunchTimeDep(), DynaSaveLast(), eden_sum(), ElectronFractions(), get_total_abundance_ions(), GrainChargeTemp(), GrainDrive(), GrainsInit(), GrainTemperature(), GrainUpdateRadius1(), GrnStdDpth(), GrnVryDpth(), diatomics::H2_PunchDo(), HeatSum(), highen(), HomogeneousSource(), ion_trim(), ion_trim2(), ion_trim_validate(), ion_wrapper(), IonHelium(), IonNelem(), iso_cool(), iter_end_check(), IterStart(), lgElemsConserved(), lines_general(), logPressureState(), t_mole_global::make_species(), map_do(), t_mean::MeanInc(), mole_effects(), diatomics::mole_H2_form(), mole_h2_grain_form(), mole_h_fixup(), mole_ion_trim(), mole_return_cached_species(), mole_update_limiting_reactants(), OpacityAddTotal(), ParseCommands(), ParseDLaw(), ParseFluc(), ParseGlobule(), ParseHDEN(), PressureChange(), PrintRates(), PrtComment(), PrtFinal(), PrtZone(), radius_first(), radius_increment(), radius_next(), RT_continuum(), RT_OTS_PrtRate(), RT_tau_init(), save_opacity(), SaveDo(), SaveSpecial(), ScaleAllDensities(), scalingDensity(), SecIoniz(), SetGasPhaseDensity(), GroupMap::setup(), SumDensities(), and zoneDensity().
realnum t_dense::HCorrFac |
this is scale factor that multiplies the correction factor for neutral hydrogen collisions, def 1, changed with set command
Referenced by EdenChange(), ParseSet(), tfidle(), and zero().
long int t_dense::IonHigh[LIMELM+1] |
Referenced by ChargTranPun(), clean_up(), ContSetIntensity(), ConvBase(), CoolEvaluate(), DynaIonize(), fill_array(), find_solution(), get_total_abundance_ions(), GrainChargeTemp(), HeatSum(), ion_collis(), ion_CX(), ion_photo(), ion_recomb(), ion_recombAGN(), ion_solver(), ion_trim(), ion_trim2(), ion_trim_from_set(), ion_trim_init(), ion_trim_invalidate(), ion_trim_small(), ion_trim_untrim(), ion_trim_validate(), ion_widen(), iso_collapsed_update(), iso_level(), iso_multiplet_opacities(), iso_rad_rec_cooling_discrete(), iso_solve(), iso_update_rates(), IterRestart(), IterStart(), lgTrivialSolution(), lines_general(), lines_hydro(), mole_eval_dynamic_balance(), mole_ion_trim(), ParseElement(), PresTotCurrent(), PrintRates(), PrtLinePres(), PrtZone(), t_ionbal::RateIonizTot(), renorm_solution(), RT_diffuse(), RT_iso_integrate_RRC(), RT_line_all(), RT_line_all_escape(), RT_line_driving(), RT_OTS(), RT_OTS_Update(), RT_tau_inc(), and SecIoniz().
long int t_dense::IonLow[LIMELM+1] |
indices for lowest stage of ionization of the elements on C scale, lowest is 0 for atom, -1 if element turned off, the first stage of ionization with positive abundance is [IonLow] where 0 is the atom, the highest stage of ionization with positive abundance is [IonHigh], NB NB so loops should be ion=IonLow, ion<=IonHigh
Referenced by ChargTranPun(), clean_up(), ContSetIntensity(), ConvBase(), CoolEvaluate(), DynaIonize(), fill_array(), find_solution(), get_total_abundance_ions(), GrainChargeTemp(), HeatSum(), ion_collis(), ion_CX(), ion_photo(), ion_recomb(), ion_recombAGN(), ion_solver(), ion_trim(), ion_trim2(), ion_trim_from_set(), ion_trim_init(), ion_trim_invalidate(), ion_trim_small(), ion_trim_untrim(), ion_trim_validate(), ion_widen(), iso_collapsed_update(), iso_level(), iso_multiplet_opacities(), iso_solve(), iso_update_rates(), IterRestart(), IterStart(), lgTrivialSolution(), lines_general(), mole_eval_dynamic_balance(), mole_ion_trim(), PresTotCurrent(), renorm_solution(), RT_diffuse(), and SecIoniz().
Referenced by t_mole_local::set_ion_locations(), and t_dense().
options on set atomic data command
Referenced by InitDefaultsPreparse().
bool t_dense::lgDenFlucOn |
set true when density fluctuations are turned on
Referenced by AbundancesSet(), AbundChange(), InitDefaultsPreparse(), ParseFluc(), PrtZone(), and radius_next().
bool t_dense::lgDenFlucRadius |
set false when fluctuations are over col den rather than radius, set with column options on fluctuations command
Referenced by AbundChange(), InitDefaultsPreparse(), ParseFluc(), and zoneDensity().
bool t_dense::lgDenseInitConstant |
Referenced by ConvInitSolution(), InitDefaultsPreparse(), and ParseConstant().
bool t_dense::lgEdenBad |
flags set when bad electron density is detected
Referenced by ConvInitSolution(), and PrtComment().
bool t_dense::lgElmtOn[LIMELM] |
Indicate whether an element is enabled. set true in init_coreload.cpp and is set false with the "element off" command. In SetAbundances if can be reset so that an element that was disabled on the first model in a core load is not later enabled all elements heavier than H are turned off when an abundances .abn file is read - each element occurring in that file is turned on
Referenced by AbundancesPrt(), AbundancesSet(), AbundChange(), Badnell_rec_init(), t_gaunt::brems_sum_ions(), cdColm(), check_co_ion_converge(), ChemImportance(), ContCreatePointers(), ContRate(), ContSetIntensity(), ConvBase(), ConvIterCheck(), CoolEvaluate(), CoolHyperfine(), DoSatelliteLines(), DynaCreateArrays(), DynaIonize(), DynaNewStep(), DynaSaveLast(), DynaStartZone(), GammaPrtRate(), GammaPrtShells(), GrainChargeTemp(), GrainChrgTransferRates(), GrainCollHeating(), GrainElecEmis1(), GrainElecRecomb1(), GrainRateDr(), HeatSum(), init_struc(), InitCoreloadPostparse(), InitSimPostparse(), ion_photo(), ion_recombAGN(), ion_trim_init(), ion_wrapper(), IonHelium(), IonNelem(), iso_allocate(), iso_assign_quantum_numbers(), iso_collapsed_update(), iso_cool(), iso_create(), iso_multiplet_opacities(), iso_recomb_alloc(), iso_recomb_setup(), iso_satellite(), iso_satellite_update(), iso_solve(), iso_update_rates(), iso_zero(), iter_end_check(), IterRestart(), IterStart(), lgCheckMonitors(), lgElemsConserved(), lgNetEdenSrcSmall(), lgStatesConserved(), lines(), lines_continuum(), lines_helium(), lines_hydro(), lines_iron_Ka(), map_do(), t_mean::MeanIon(), mole_create_react(), mole_eval_sources(), mole_h_rate_diagnostics(), mole_ion_trim(), mole_update_limiting_reactants(), OpacityAddTotal(), OpacityCreateAll(), OpacityValenceRescale(), parse_species_label(), ParseAbundances(), ParseCompile(), ParseElement(), prt_smooth_predictions(), PrtAllTau(), PrtColumns(), PrtComment(), PrtFinal(), PrtMeanIon(), prtmet(), PrtZone(), radius_increment(), radius_next(), RT_diffuse(), RT_line_all(), RT_line_all_escape(), RT_OTS(), RT_stark(), RT_tau_inc(), RT_tau_init(), RT_tau_reset(), SanityCheckBegin(), save_opacity(), SaveDo(), SaveLineData(), SaveLineStuff(), SaveSpeciesLines(), ScaleAllDensities(), SecIoniz(), states_nelemfill(), SumDensities(), t_dense(), UpdateRecomZ0(), and t_mesh::ValidateEdges().
bool t_dense::lgElmtSetOff[LIMELM] |
true is element is explicitly turned off, overrides turning on any element in *.abn file
Referenced by ParseAbundances(), ParseElement(), and t_dense().
which ions have chianti enabled?
Referenced by CoolDima(), CoolEvaluate(), RT_line_all(), states_nelemfill(), and t_dense().
which ions have stout enabled?
Referenced by CoolDima(), CoolEvaluate(), RT_line_all(), states_nelemfill(), and t_dense().
bool t_dense::lgPressureVaryTime |
Referenced by ConvInitSolution(), InitDefaultsPreparse(), and ParseConstant().
bool t_dense::lgSetIoniz[LIMELM] |
will we solve for ionization (false) or specify it with element ionization cmnd true
Referenced by ion_trim_from_set(), ion_trim_init(), ion_widen(), IonHelium(), IonHydro(), iso_level(), lgTrivialSolution(), ParseElement(), PrtComment(), and t_dense().
dense.xMolecules density of elements locked in molecules, this is included in gas_phase
Referenced by updateXMolecules(), xMolecules(), and zero().
Maximum wavenumber in chianti
Referenced by CoolDima(), RT_line_all(), states_nelemfill(), and t_dense().
long int t_dense::nzEdenBad |
zone where bad electron density was detected
Referenced by ConvInitSolution(), PrtComment(), and radius_increment().
realnum t_dense::pden |
total number of particles per cubic centimeter
Referenced by ConvInitSolution(), IterStart(), PresTotCurrent(), radius_first(), radius_increment(), SaveDo(), and SumDensities().
double t_dense::PressureVaryTimeIndex |
Referenced by ConvInitSolution(), InitDefaultsPreparse(), and ParseConstant().
double t_dense::PressureVaryTimeTimescale |
Referenced by ConvInitSolution(), InitDefaultsPreparse(), and ParseConstant().
realnum t_dense::rscale |
Referenced by ParseHDEN(), and zoneDensity().
dense.SetIoniz the ionization fractions that are set when lgSetIoniz set true, gas phase abundance is this times total abundance Ionization fraction for [nelem][ion]
Referenced by ion_trim_from_set(), IonHelium(), IonHydro(), lgTrivialSolution(), and ParseElement().
double t_dense::SqrtEden |
square root of electron density, set in tfidle
Referenced by EdenChange(), GrainDrift(), and tfidle().
realnum t_dense::wmole |
mean AMU per particle
Referenced by dense_parametric_wind(), PrtFinal(), radius_first(), radius_increment(), and SumDensities().
dense.xIonDense[nelem][i] is density of ith ionization stage (cm^-3), [nelem][0] is atom, [][1]) the first ion nelem = 0 for H, 1 for he, etc
Referenced by AbundancesSet(), AbundChange(), AGN_Hemis(), atom_level2(), t_gaunt::brems_sum_ions(), ChargTranSumHeat(), check_co_ion_converge(), ContSetIntensity(), ConvBase(), ConvInitSolution(), CoolDima(), CoolEvaluate(), CoolH2_GA08(), CoolHyperfine(), CS_l_mixing_PS64(), CS_l_mixing_PS64_expI(), dBaseAbund(), DoSatelliteLines(), DynaIonize(), eden_sum(), EdenChange(), ElectronFractions(), fill_array(), find_solution(), get_total_abundance_ions(), GetLineRec(), GrainChargeTemp(), GrainCollHeating(), GrainDrift(), GrainElecEmis1(), GrainElecRecomb1(), GrainMakeDiffuse(), GrnStdDpth(), GrnVryDpth(), diatomics::H2_X_coll_rate_evaluate(), HeatSum(), highen(), HomogeneousSource(), HydroLevel(), HyperfineCreate(), ColliderList::init(), ion_photo(), ion_recomb(), ion_trim(), ion_trim2(), ion_trim_init(), ion_trim_small(), ion_trim_validate(), ion_widen(), ion_wrapper(), IonHelium(), IonHydro(), IonNelem(), iso_charge_transfer_update(), iso_continuum_lower(), iso_cool(), iso_departure_coefficients(), iso_level(), iso_renorm(), iso_satellite_update(), iso_solve(), iso_zero(), iter_end_check(), IterRestart(), IterStart(), lgCheckMonitors(), lgElemsConserved(), lgNetEdenSrcSmall(), lgStatesConserved(), lgTrivialSolution(), lines(), lines_continuum(), lines_helium(), lines_hydro(), lines_molecules(), MakeCS(), map_do(), t_mean::MeanInc(), mole_effects(), diatomics::mole_H2_form(), mole_h_fixup(), mole_h_rate_diagnostics(), mole_ion_trim(), mole_solve(), my_Integrand_VF01_E< P >::my_Integrand_VF01_E(), OpacityAdd1Element(), OpacityAddTotal(), PresTotCurrent(), PrintRates(), prt_trans_opc_debug(), PrtZone(), radius_first(), radius_increment(), radius_next(), RT_continuum(), RT_diffuse(), RT_iso_integrate_RRC(), RT_line_all(), RT_OTS(), RT_OTS_PrtRate(), RT_tau_inc(), SanityCheckBegin(), save_opacity(), SaveDo(), SaveHeat(), SaveLineData(), ScaleIonDensities(), SecIoniz(), t_mole_local::set_ion_locations(), setXtraRatesO1(), store_new_densities(), SumDensities(), tfidle(), UpdateUTAs(), and zero().
realnum t_dense::xMassDensity |
xMassDensity grams per cc
Referenced by ConvInitSolution(), DynaIonize(), DynaPrtZone(), GravitationalPressure(), Magnetic_evaluate(), PressureChange(), PresTotCurrent(), PrtFinal(), radius_first(), radius_increment(), radius_next(), SaveDo(), SaveSpecial(), scalingDensity(), PresMode::set(), and SumDensities().
realnum t_dense::xMassDensity0 |
WJH: fiducial value that corresponds to hden set in init file, this is used for setting the mass-flux in dynamic models
Referenced by DynaFlux(), SumDensities(), and zero().
realnum t_dense::xMassTotal |
total mass in grams PER 4 pi rinner^2
Referenced by GravitationalPressure(), iter_end_check(), IterStart(), PrtFinal(), radius_increment(), and zero().
realnum t_dense::xNucleiTotal |
total number of nuclei, set in PressureTotal
Referenced by ConvBase(), dBaseTrim(), iso_continuum_lower(), iso_cool(), lgConvEden(), RT_tau_init(), SumDensities(), and zero().