cloudy
trunk
|
Go to the source code of this file.
Typedefs | |
typedef multi_arr< transition, 6 > ::iterator | mt6i |
typedef multi_arr< transition, 6 > ::const_iterator | mt6ci |
Functions | |
double | H2_He_coll (int init, int final, double temp) |
long int | H2_He_coll_init (const char FILE_NAME_IN[]) |
void | H2_ReadEnergies (long int nelec) |
void | H2_ReadDissprob (long int nelec) |
void | H2_CollidRateEvalAll (void) |
void | H2_CollidRateRead (long int nColl) |
void | H2_ReadTransprob (long int nelec) |
void | H2_Read_hminus_distribution (void) |
void | mole_H2_form (void) |
void | mole_H2_LTE (void) |
void | H2_Solomon_rate (void) |
void | H2_gs_rates (void) |
void | H2_zero_pops_too_low (void) |
typedef multi_arr<transition,6>::const_iterator mt6ci |
typedef multi_arr<transition,6>::iterator mt6i |
void H2_CollidRateEvalAll | ( | void | ) |
H2_CollidRateEvalAll - set H2 collision rates
Definition at line 212 of file mole_h2_coll.cpp.
References ASSERT, cdEXIT, DEBUG_ENTRY, energy_wn, H2_coll_dissoc_rate_coef, H2_coll_dissoc_rate_coef_H2, H2_CollidRateEvalOne(), H2_CollRate, H2_DissocEnergies, H2_ipX_ener_sort, H2Lines, ioQQQ, ipRot_H2_energy_sort, ipVib_H2_energy_sort, t_mole::lgColl_deexec_Calc, t_mole::lgColl_dissoc_coll, t_mole::lgH2_ortho_para_coll_on, MAX2, mole, N_X_COLLIDER, t_mole::nH2_TRACE, t_mole::nH2_trace_full, nLevels_per_elec, phycon, POW2, PRT_COLL, SDIV(), sexp(), t_phycon::te, and t_phycon::te_wn.
Referenced by H2_LevelPops().
void H2_CollidRateRead | ( | long int | nColl | ) |
read collision rates
nColl |
Definition at line 401 of file mole_h2_coll.cpp.
References COmole_rate_s::a, ASSERT, cdEXIT, CollRateFit, DEBUG_ENTRY, energy_wn, FILENAME_PATH_LENGTH_2, h2, H2_He_coll_init(), ioQQQ, t_h2::lgH2_H_coll_07, t_mole::lgH2_He_ORNL, mole, N_X_COLLIDER, t_h2::nRot_hi, open_data(), read_whole_line(), and VIB_COLLID.
Referenced by H2_Create().
void H2_gs_rates | ( | void | ) |
H2_gs_rates evaluate rates between ground and star states of H2 for use in chemistry
Definition at line 147 of file mole_h2_etc.cpp.
References DEBUG_ENTRY, h2, H2_den_g, H2_dissprob, t_hmi::H2_H2g_to_H2s_rate_BigH2, H2_ipX_ener_sort, H2_populations, H2_rad_rate_out, H2Lines, hmi, ipRot_H2_energy_sort, ipVib_H2_energy_sort, t_h2::Jlowest, lgH2_line_exists, MAX2, mole, t_mole::n_h2_elec_states, nEner_H2_ground, t_h2::nRot_hi, t_h2::nVib_hi, and SDIV().
Referenced by H2_LevelPops().
double H2_He_coll | ( | int | init, |
int | final, | ||
double | temp | ||
) |
H2_He_coll Interpolate the rate coefficeints The range of the temperature is between 2K - 1e8K
init | |
final | |
temp |
Definition at line 664 of file mole_h2_coll.cpp.
References b2, DEBUG_ENTRY, H2_He_coll_fit_par, ioQQQ, lgDefn_H2He_coll, MIN2, phycon, and t_phycon::te.
Referenced by H2_CollidRateEvalOne().
long int H2_He_coll_init | ( | const char | FILE_NAME_IN[] | ) |
H2_He_coll_init receives the name of the file that contrains the fitting coefficeints of all transitions and read into 3d vectors. It outputs 'test.out' to test the arrays return value is magic number
FILE_NAME_IN[] |
Definition at line 554 of file mole_h2_coll.cpp.
References cdEXIT, DEBUG_ENTRY, H2_He_coll_fit_par, INPUT_LINE_LENGTH, lgDefn_H2He_coll, MALLOC, N_H2_HE_FIT_PAR, nLevels_per_elec, open_data(), and read_whole_line().
Referenced by H2_CollidRateRead().
void H2_Read_hminus_distribution | ( | void | ) |
H2_Read_hminus_distribution read distribution function for H2 population following formation from H minus
Definition at line 925 of file mole_h2_io.cpp.
References ASSERT, BadRead(), cdEXIT, DEBUG_ENTRY, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, H2_te_hminus, H2_X_hminus_formation_distribution, H2HMINUS_PRT, INPUT_LINE_LENGTH, ioQQQ, t_h2::Jlowest, t_h2::nRot_hi, nTE_HMINUS, t_h2::nVib_hi, open_data(), and read_whole_line().
Referenced by H2_Create().
void H2_ReadDissprob | ( | long int | nelec | ) |
read dissociation probabilities and kinetic energies for all electronic levels
nelec |
Definition at line 828 of file mole_h2_io.cpp.
References COmole_rate_s::a, ASSERT, COmole_rate_s::b, BadRead(), cdEXIT, DEBUG_ENTRY, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, H2_disske, H2_dissprob, INPUT_LINE_LENGTH, ioQQQ, t_h2::Jlowest, N_H2_ELEC, t_h2::nRot_hi, t_h2::nVib_hi, open_data(), and read_whole_line().
Referenced by H2_Create().
void H2_ReadEnergies | ( | long int | nelec | ) |
read energies for all electronic levels
nelec |
Definition at line 732 of file mole_h2_io.cpp.
References ASSERT, BadRead(), cdEXIT, DEBUG_ENTRY, energy_wn, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, INPUT_LINE_LENGTH, ioQQQ, t_h2::Jlowest, N_H2_ELEC, nLevels_per_elec, t_h2::nRot_hi, t_h2::nVib_hi, open_data(), and read_whole_line().
Referenced by H2_Create().
void H2_ReadTransprob | ( | long int | nelec | ) |
read transition probabilities
nelec |
Definition at line 495 of file mole_h2_io.cpp.
References AddLine2Stack(), ASSERT, BadRead(), cdEXIT, DEBUG_ENTRY, energy_wn, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, H2Lines, INPUT_LINE_LENGTH, ioQQQ, lgH2_line_exists, N_H2_ELEC, t_h2::nRot_hi, t_h2::nVib_hi, open_data(), read_whole_line(), and ShowMe().
Referenced by H2_Create().
void H2_Solomon_rate | ( | void | ) |
H2_Solomon_rate find rates between H2s and H2g and other levels, for use in the chemistry
Definition at line 25 of file mole_h2_etc.cpp.
References DEBUG_ENTRY, ENERGY_H2_STAR, energy_wn, h2, H2_den_g, H2_den_s, H2_dissprob, t_hmi::H2_H2g_to_H2s_rate_BigH2, H2_populations, H2_rad_rate_out, t_hmi::H2_Solomon_dissoc_rate_BigH2_H2g, t_hmi::H2_Solomon_dissoc_rate_BigH2_H2s, t_hmi::H2_Solomon_elec_decay_H2g, t_hmi::H2_Solomon_elec_decay_H2s, H2_sum_excit_elec_den, t_hmi::H2_total, H2Lines, hmi, t_h2::Jlowest, lgH2_line_exists, mole, t_mole::n_h2_elec_states, t_h2::nRot_hi, t_h2::nVib_hi, SDIV(), and SMALLFLOAT.
Referenced by H2_LevelPops().
void H2_zero_pops_too_low | ( | void | ) |
H2_zero_pops_too_low - zero out some H2 variables if we decide not to compute the full sim, called by H2_LevelPops
Definition at line 217 of file mole_h2_etc.cpp.
References DEBUG_ENTRY, t_hmi::deriv_HeatH2Dexc_BigH2, h2, t_hmi::H2_H2g_to_H2s_rate_BigH2, H2_old_populations, t_hmi::H2_photodissoc_BigH2_H2g, t_hmi::H2_photodissoc_BigH2_H2s, H2_populations, H2_populations_LTE, t_hmi::H2_Solomon_dissoc_rate_BigH2_H2g, t_hmi::H2_Solomon_dissoc_rate_BigH2_H2s, t_hmi::H2_total, H2Lines, t_hmi::HeatH2Dexc_BigH2, t_hmi::HeatH2Dish_BigH2, hmi, t_h2::Jlowest, lgH2_line_exists, mole, t_mole::n_h2_elec_states, t_h2::nRot_hi, t_h2::nVib_hi, pops_per_elec, and pops_per_vib.
Referenced by H2_LevelPops().
void mole_H2_form | ( | void | ) |
mole_H2_form find state specific rates grains and H- form H2
Definition at line 13 of file mole_h2_form.cpp.
References t_phycon::alogte, ASSERT, t_hmi::assoc_detach, t_hmi::bh2h2p, t_gv::bin, DEBUG_ENTRY, dense, ENERGY_H2_STAR, energy_wn, gv, h2, t_hmi::H2_forms_grains, t_hmi::H2_forms_hminus, H2_te_hminus, H2_X_formation, H2_X_grain_formation_distribution, H2_X_Hmin_back, H2_X_hminus_formation_distribution, t_hmi::H2star_forms_grains, t_hmi::H2star_forms_hminus, hmi, t_hmi::Hmolec, ipHYDROGEN, ipMH2p, ipMHm, t_h2::Jlowest, GrainBin::matType, t_gv::nBin, t_h2::nRot_hi, nTE_HMINUS, t_h2::nVib_hi, phycon, GrainBin::rate_h2_form_grains_used, t_gv::which_H2distr, and t_dense::xIonDense.
Referenced by H2_LevelPops().
void mole_H2_LTE | ( | void | ) |
mole_H2_LTE sets Boltzmann factors and LTE unit population of large H2 molecular
Definition at line 313 of file mole_h2_etc.cpp.
References ASSERT, DEBUG_ENTRY, energy_wn, fp_equal(), h2, H2_Boltzmann, H2_populations_LTE, H2_stat, ioQQQ, t_h2::Jlowest, mole, t_mole::n_h2_elec_states, t_mole::nH2_TRACE, t_mole::nH2_trace_full, t_h2::nRot_hi, t_h2::nVib_hi, phycon, sexp(), t_phycon::te, and t_phycon::te_wn.
Referenced by H2_LevelPops().
EXTERN char chH2ColliderLabels[N_X_COLLIDER][chN_X_COLLIDER] |
Definition at line 92 of file h2_priv.h.
Referenced by H2_init_coreload(), and H2_ParsePunch().
const int chN_X_COLLIDER = 10 |
this is the actual rate, cm^3 s^-1, for each collider CollRate[coll_type][vib_up][rot_up][vib_lo][rot_lo]
Definition at line 142 of file h2_priv.h.
Referenced by H2_CollidRateEvalOne(), H2_CollidRateRead(), and H2_Create().
const double ENERGY_H2_STAR = 4100. |
this is the energy, above which levels are considered to be H2*, and below which they are H2 - it is converted from eV into wavenumbers since energy scale energy_wn[][][] is in these terms
Definition at line 20 of file h2_priv.h.
Referenced by H2_Create(), H2_LevelPops(), H2_Solomon_rate(), and mole_H2_form().
energy in wavenumbers
Definition at line 138 of file h2_priv.h.
Referenced by cdH2_Line(), EH2_eval(), H2_CollidRateEvalAll(), H2_CollidRateEvalOne(), H2_CollidRateRead(), H2_Cooling(), H2_Create(), H2_Level_low_matrix(), H2_LevelPops(), H2_PunchDo(), H2_ReadEnergies(), H2_ReadTransprob(), H2_Solomon_rate(), H2_vib_dist(), mole_H2_form(), and mole_H2_LTE().
Definition at line 151 of file h2_priv.h.
Referenced by H2_Cooling(), H2_Create(), H2_Level_low_matrix(), H2_LevelPops(), H2_X_coll_rate_evaluate(), and mole_H2_LTE().
Definition at line 163 of file h2_priv.h.
Referenced by H2_Create(), H2_LevelPops(), and H2_PunchDo().
Definition at line 164 of file h2_priv.h.
Referenced by H2_Create(), H2_LevelPops(), and H2_PunchDo().
save rate coef (cm3 s-1) for collisional dissociation
Definition at line 181 of file h2_priv.h.
Referenced by H2_CollidRateEvalAll(), H2_Create(), and H2_X_coll_rate_evaluate().
save rate coef (cm3 s-1) for collisional dissociation with H2g and H2s
Definition at line 184 of file h2_priv.h.
Referenced by H2_CollidRateEvalAll(), H2_Create(), H2_LevelPops(), and H2_X_coll_rate_evaluate().
Definition at line 147 of file h2_priv.h.
Referenced by H2_CollidRateEvalAll(), H2_CollidRateEvalOne(), H2_Cooling(), H2_Create(), H2_LevelPops(), H2_PunchDo(), and H2_X_coll_rate_evaluate().
EXTERN double H2_den_g |
Definition at line 187 of file h2_priv.h.
Referenced by H2_gs_rates(), H2_LevelPops(), and H2_Solomon_rate().
EXTERN double H2_den_s |
density of H2s and H2g during current iteration
Definition at line 187 of file h2_priv.h.
Referenced by H2_LevelPops(), and H2_Solomon_rate().
Definition at line 146 of file h2_priv.h.
Referenced by H2_Cooling(), H2_Create(), and H2_ReadDissprob().
double H2_DissocEnergies[N_H2_ELEC] |
Definition at line 72 of file mole_h2.cpp.
Referenced by EH2_eval(), H2_CollidRateEvalAll(), H2_Create(), H2_vib_dist(), and H2_X_coll_rate_evaluate().
these will mostly become xxx[elec][vib][rot]
Definition at line 145 of file h2_priv.h.
Referenced by H2_Cooling(), H2_Create(), H2_gs_rates(), H2_LevelPops(), H2_ReadDissprob(), and H2_Solomon_rate().
these are energies and indices for levels within X , a vector of sorted energies
Definition at line 194 of file h2_priv.h.
Referenced by H2_Create(), H2_Level_low_matrix(), and H2_LevelPops().
Definition at line 160 of file h2_priv.h.
Referenced by H2_Create(), and H2_X_coll_rate_evaluate().
EXTERN long int* H2_ipX_ener_sort |
Definition at line 197 of file h2_priv.h.
Referenced by H2_CollidRateEvalAll(), H2_Cooling(), H2_Create(), H2_gs_rates(), H2_Level_low_matrix(), H2_LevelPops(), H2_PunchDo(), and H2_X_coll_rate_evaluate().
this is true if state is para, false if ortho
Definition at line 156 of file h2_priv.h.
Referenced by cdH2_Line(), H2_CollidRateEvalOne(), H2_Create(), H2_Level_low_matrix(), H2_LevelPops(), and H2_PunchDo().
int H2_nRot_add_ortho_para[N_H2_ELEC] |
the remainder can't be EXTERN since init to values in h2.c
Definition at line 64 of file mole_h2.cpp.
Referenced by H2_Create().
these will mostly become xxx[elec][vib][rot]
Definition at line 150 of file h2_priv.h.
Referenced by H2_Create(), H2_LevelPops(), H2_PunchDo(), and H2_zero_pops_too_low().
Definition at line 106 of file h2_priv.h.
Referenced by H2_Colden(), H2_Cooling(), H2_Create(), H2_gs_rates(), H2_Level_low_matrix(), H2_LevelPops(), H2_Prt_Zone(), H2_PunchDo(), H2_Solomon_rate(), and H2_zero_pops_too_low().
Definition at line 152 of file h2_priv.h.
Referenced by H2_Colden(), H2_Create(), H2_LevelPops(), H2_PunchDo(), H2_zero_pops_too_low(), and mole_H2_LTE().
Definition at line 165 of file h2_priv.h.
Referenced by H2_Create(), H2_LevelPops(), and H2_PunchDo().
Definition at line 107 of file h2_priv.h.
Referenced by H2_Create(), H2_gs_rates(), H2_LevelPops(), H2_PunchDo(), and H2_Solomon_rate().
EXTERN double H2_renorm_chemistry |
the renorm factor for this H2 to the chemistry - should be unity
Definition at line 113 of file h2_priv.h.
Referenced by H2_Cooling(), H2_LevelPops(), H2_PunchDo(), and H2_RT_tau_inc().
this is array of accumulated line intensities, used for punch he lines command
Definition at line 207 of file h2_priv.h.
Referenced by cdH2_Line(), H2_Create(), H2_LinesAdd(), H2_PunchDo(), and H2_Reset().
this is total statistical weight, including nuclear spin
Definition at line 154 of file h2_priv.h.
Referenced by H2_Cooling(), H2_Create(), H2_Level_low_matrix(), H2_LevelPops(), H2_PunchDo(), H2_X_coll_rate_evaluate(), and mole_H2_LTE().
EXTERN double H2_sum_excit_elec_den |
Definition at line 113 of file h2_priv.h.
Referenced by H2_LevelPops(), and H2_Solomon_rate().
realnum H2_te_hminus[nTE_HMINUS] |
temperature where H- distribution are set
Definition at line 54 of file mole_h2.cpp.
Referenced by H2_Read_hminus_distribution(), and mole_H2_form().
column density within X only vib and rot
Definition at line 117 of file h2_priv.h.
Referenced by cdH2_colden(), H2_Colden(), H2_Create(), H2_Prt_column_density(), and H2_PunchDo().
LTE column density within X only vib and rot
Definition at line 129 of file h2_priv.h.
Referenced by H2_Colden(), H2_Create(), and H2_PunchDo().
rate [s-1} for collisions from ihi to ilo
Definition at line 126 of file h2_priv.h.
Referenced by H2_Create(), H2_Level_low_matrix(), H2_LevelPops(), and H2_X_coll_rate_evaluate().
formation into specific states within X only vib and rot, includes both H- and H2 routes
Definition at line 175 of file h2_priv.h.
Referenced by H2_Create(), H2_X_coll_rate_evaluate(), and mole_H2_form().
distribution function for formation on grain surfaces, vib, rot, last dim is grain type
Definition at line 171 of file h2_priv.h.
Referenced by H2_Create(), and mole_H2_form().
backwards destruction of v,J levels due to the H- route
Definition at line 178 of file h2_priv.h.
Referenced by H2_Create(), H2_X_coll_rate_evaluate(), and mole_H2_form().
vib, rot, last dim is temperature
Definition at line 190 of file h2_priv.h.
Referenced by H2_Create(), H2_Read_hminus_distribution(), and mole_H2_form().
rates [cm-3 s-1] from elec excited states into X only vib and rot
Definition at line 120 of file h2_priv.h.
Referenced by H2_Create(), H2_Level_low_matrix(), and H2_LevelPops().
rates [s-1] to elec excited states from X only vib and rot
Definition at line 123 of file h2_priv.h.
Referenced by H2_Create(), H2_Level_low_matrix(), and H2_LevelPops().
Definition at line 167 of file h2_priv.h.
Referenced by H2_Create(), H2_Level_low_matrix(), H2_LevelPops(), and H2_X_coll_rate_evaluate().
Definition at line 166 of file h2_priv.h.
Referenced by H2_Create(), H2_Level_low_matrix(), H2_LevelPops(), and H2_X_coll_rate_evaluate().
EXTERN long int * ipElec_H2_energy_sort |
Definition at line 198 of file h2_priv.h.
Referenced by H2_Create().
Definition at line 200 of file h2_priv.h.
Referenced by H2_Create().
EXTERN long int* ipRot_H2_energy_sort |
Definition at line 199 of file h2_priv.h.
Referenced by H2_CollidRateEvalAll(), H2_Cooling(), H2_Create(), H2_gs_rates(), H2_Level_low_matrix(), H2_LevelPops(), H2_PunchDo(), and H2_X_coll_rate_evaluate().
EXTERN long int* ipVib_H2_energy_sort |
Definition at line 198 of file h2_priv.h.
Referenced by H2_CollidRateEvalAll(), H2_Cooling(), H2_Create(), H2_gs_rates(), H2_Level_low_matrix(), H2_LevelPops(), H2_PunchDo(), and H2_X_coll_rate_evaluate().
EXTERN long int iterationAsEval |
Definition at line 158 of file h2_priv.h.
Referenced by H2_Level_low_matrix(), H2_Reset(), and H2_Zero().
fully defined array saying whether (true) or not (false) a radiative decay is defined by the standard emission line structure
Definition at line 211 of file h2_priv.h.
Referenced by cdH2_Line(), H2_Accel(), H2_ContPoint(), H2_Create(), H2_gs_rates(), H2_Level_low_matrix(), H2_LevelPops(), H2_LinesAdd(), H2_LineZero(), H2_PunchDo(), H2_RadPress(), H2_ReadTransprob(), H2_RT_diffuse(), H2_RT_OTS(), H2_RT_tau_inc(), H2_RT_tau_reset(), H2_RTMake(), H2_Solomon_rate(), and H2_zero_pops_too_low().
const int N_X_COLLIDER = 5 |
the number of different types of colliders
Definition at line 88 of file h2_priv.h.
Referenced by H2_CollidRateEvalAll(), H2_CollidRateEvalOne(), H2_CollidRateRead(), H2_Cooling(), H2_Create(), H2_ParsePunch(), H2_PunchDo(), and H2_X_coll_rate_evaluate().
EXTERN long int nCallH2_this_iteration |
the number of times the H2 molecules has been called in this iteration. For the very first call we will use lte for the level H2_populations, for later calls use the last solution
Definition at line 223 of file h2_priv.h.
Referenced by H2_Cooling(), H2_LevelPops(), H2_Reset(), H2_RT_tau_inc(), and H2_Zero().
EXTERN long int nEner_H2_ground |
number of levels in H2g
Definition at line 104 of file h2_priv.h.
Referenced by H2_Create(), and H2_gs_rates().
EXTERN long int nH2_energies |
EXTERN long int nH2_pops |
counters used by H2_itrzn to find number of calls of h2 per zone
Definition at line 214 of file h2_priv.h.
Referenced by H2_itrzn(), H2_LevelPops(), H2_Reset(), and H2_Zero().
EXTERN long int nH2_zone |
Definition at line 215 of file h2_priv.h.
Referenced by H2_itrzn(), H2_LevelPops(), H2_Reset(), and H2_Zero().
the number of ro-vib levels in each elec state
Definition at line 132 of file h2_priv.h.
Referenced by H2_CollidRateEvalAll(), H2_Cooling(), H2_Create(), H2_He_coll_init(), H2_Level_low_matrix(), H2_LevelPops(), H2_PunchDo(), H2_ReadEnergies(), and H2_X_coll_rate_evaluate().
const int nTE_HMINUS = 7 |
the number of temperature points in the data file
Definition at line 98 of file h2_priv.h.
Referenced by H2_Create(), H2_Read_hminus_distribution(), and mole_H2_form().
EXTERN long int nXLevelsMatrix |
number of levels within X which are done with matrix solver, set with atom h2 matrix command
Definition at line 204 of file h2_priv.h.
Referenced by H2_Create(), H2_Level_low_matrix(), H2_LevelPops(), H2_Zero(), and ParseAtomH2().
EXTERN long int nzone_nlevel_set |
this is used to establish zone number for evaluation of number of levels in matrix
Definition at line 218 of file h2_priv.h.
Referenced by H2_LevelPops(), H2_Reset(), and H2_Zero().
EXTERN long int nzoneAsEval |
Definition at line 158 of file h2_priv.h.
Referenced by H2_Level_low_matrix(), H2_Reset(), and H2_Zero().
the total population in each elec state
Definition at line 135 of file h2_priv.h.
Referenced by H2_LevelPops(), H2_PunchDo(), and H2_zero_pops_too_low().
total population in each vib state
Definition at line 110 of file h2_priv.h.
Referenced by H2_Create(), H2_LevelPops(), H2_Prt_column_density(), H2_Prt_Zone(), and H2_zero_pops_too_low().
const int VIB_COLLID = 3 |
this is the highest vib state that has collision data
Definition at line 95 of file h2_priv.h.
Referenced by H2_CollidRateRead(), H2_Cooling(), and H2_Create().