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

#include <dense.h>

Inheritance diagram for t_dense:
Collaboration diagram for t_dense:

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

Public Attributes

realnum gas_phase [LIMELM]
 
realnum AtomicWeight [LIMELM]
 
realnum xMassDensity
 
realnum xMassDensity0
 
realnum pden
 
realnum wmole
 
realnum xNucleiTotal
 
realnum xMassTotal
 
realnum HCorrFac
 
long int IonLow [LIMELM+1]
 
long int IonHigh [LIMELM+1]
 
double xIonDense [LIMELM][LIMELM+1]
 
molezoneionMole [LIMELM][LIMELM+1]
 
bool lgIonChiantiOn [LIMELM][LIMELM+1]
 
bool lgIonStoutOn [LIMELM][LIMELM+1]
 
double maxWN [LIMELM][LIMELM+1]
 
realnum AbundanceLimit
 
bool lgElmtOn [LIMELM]
 
bool lgElmtSetOff [LIMELM]
 
bool lgSetIoniz [LIMELM]
 
realnum SetIoniz [LIMELM][LIMELM+1]
 
char chDenseLaw [5]
 
bool lgDenseInitConstant
 
bool lgPressureVaryTime
 
double PressureVaryTimeTimescale
 
double PressureVaryTimeIndex
 
double DensityLaw [10]
 
bool lgAsChoose [LIMELM][LIMELM]
 
bool lgCSChoose [LIMELM][LIMELM]
 
DepthTable DLW
 
double eden
 
double EdenMax
 
double EdenMin
 
double density_low_limit
 
long int nzEdenBad
 
realnum EdenSet
 
realnum EdenExtra
 
realnum EdenFraction
 
double SqrtEden
 
double EdenHCorr
 
realnum EdenHCorr_f
 
double EdenTrue
 
double eden_from_metals
 
bool lgEdenBad
 
double edensqte
 
double cdsqte
 
realnum DensityPower
 
realnum rscale
 
realnum den0
 
bool lgDenFlucOn
 
bool lgDenFlucRadius
 
realnum flong
 
realnum cfirst
 
realnum csecnd
 
realnum flcPhase
 

Private Attributes

realnum m_xMolecules [LIMELM]
 

Detailed Description

variables dealing with pressure across model

Constructor & Destructor Documentation

t_dense::t_dense ( )
inline

References AtomicWeight, density_low_limit, ionMole, lgElmtOn, lgElmtSetOff, lgIonChiantiOn, lgIonStoutOn, lgSetIoniz, LIMELM, max(), maxWN, NULL, SMALLFLOAT, and zero().

Here is the call graph for this function:

Member Function Documentation

const char* t_dense::chName ( ) const
inlinevirtual

Implements module.

void t_dense::comment ( t_warnings )
inlinevirtual

Implements module.

void t_dense::SetGasPhaseDensity ( const long  nelem,
const realnum  density 
)
void t_dense::updateXMolecules ( )

References m_xMolecules, and total_molecule_elems().

Referenced by IterRestart(), mole_return_cached_species(), and ScaleAllDensities().

Here is the call graph for this function:

realnum t_dense::xMolecules ( long  nelem)
inline
void t_dense::zero ( void  )
virtual

Implements module.

References dense, eden, HCorrFac, ipHYDROGEN, LIMELM, m_xMolecules, SetGasPhaseDensity(), xIonDense, xMassDensity0, xMassTotal, and xNucleiTotal.

Referenced by t_dense().

Here is the call graph for this function:

Member Data Documentation

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

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

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
realnum t_dense::EdenHCorr_f
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
realnum t_dense::flong

parameters for the density fluctuations command

Referenced by AbundChange(), InitDefaultsPreparse(), ParseFluc(), radius_first(), radius_next(), and zoneDensity().

realnum t_dense::gas_phase[LIMELM]

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

molezone* t_dense::ionMole[LIMELM][LIMELM+1]
bool t_dense::lgAsChoose[LIMELM][LIMELM]

options on set atomic data command

Referenced by InitDefaultsPreparse().

bool t_dense::lgCSChoose[LIMELM][LIMELM]
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
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().

bool t_dense::lgIonChiantiOn[LIMELM][LIMELM+1]

which ions have chianti enabled?

Referenced by CoolDima(), CoolEvaluate(), RT_line_all(), states_nelemfill(), and t_dense().

bool t_dense::lgIonStoutOn[LIMELM][LIMELM+1]

which ions have stout enabled?

Referenced by CoolDima(), CoolEvaluate(), RT_line_all(), states_nelemfill(), and t_dense().

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

realnum t_dense::m_xMolecules[LIMELM]
private

dense.xMolecules density of elements locked in molecules, this is included in gas_phase

Referenced by updateXMolecules(), xMolecules(), and zero().

double t_dense::maxWN[LIMELM][LIMELM+1]

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
double t_dense::PressureVaryTimeTimescale
realnum t_dense::rscale

Referenced by ParseHDEN(), and zoneDensity().

realnum t_dense::SetIoniz[LIMELM][LIMELM+1]

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
double t_dense::xIonDense[LIMELM][LIMELM+1]

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


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