72 void GetIndices(
long& ipHi,
long& ipLo,
const char* chLine,
long& i )
const;
73 void CalcPhotoionizationRate(
void);
74 double (*photoion_opacity_fun)(
double energy );
75 long OpacityCreate(
double *stack );
76 double GetHeatRate(
const diss_tran& tran );
77 double GetDissociationRate(
const diss_tran& tran );
78 double MolDissocOpacity(
const diss_tran& tran,
const double& Mol_Ene );
79 double Cont_Diss_Heat_Rate(
void );
80 void Mol_Photo_Diss_Rates(
void );
81 void Read_Mol_Diss_cross_sections(
void);
82 void SolveExcitedElectronicLevels(
void);
83 void SolveSomeGroundElectronicLevels(
void);
84 double GetExcitedElecDensity(
void);
85 realnum GetXColden(
long iVib,
long iRot );
87 long int getLine(
long iElecHi,
long iVibHi,
long iRotHi,
long iElecLo,
long iVibLo,
long iRotLo,
double *relint,
double *absint );
90 realnum H2_CollidRateEvalOne(
long iVibHi,
long iRotHi,
long iVibLo,
long iRotLo,
long ipHi,
long ipLo,
long nColl,
double temp_K );
92 void H2_Calc_Average_Rates(
void );
94 void H2_X_sink_and_source(
void );
97 void H2_X_coll_rate_evaluate(
void );
101 void H2_Level_low_matrix(
realnum abundance );
107 void H2_ReadEnergies();
108 void H2_ReadEnergies(
long int nelec, vector<int>&
n, vector<int>&
v, vector<int>&J, vector<double>& eWN );
113 void H2_ReadDissprob(
long int nelec );
116 void H2_CollidRateEvalAll(
void );
121 void H2_CollidRateRead(
long int nColl );
129 void H2_Read_hminus_distribution(
void);
132 void mole_H2_form(
void );
135 void mole_H2_LTE(
void );
139 void H2_Solomon_rate(
void );
142 double gs_rate(
void );
146 void H2_zero_pops_too_low(
void );
152 void H2_ContPoint(
void );
158 double H2_Accel(
void);
161 void H2_RT_OTS(
void );
164 double H2_RadPress(
void);
167 void H2_LinesAdd(
void);
170 void H2_Reset(
void );
173 double H2_InterEnergy(
void);
178 void H2_Colden(
const char *chLabel );
181 void H2_Cooling(
void);
187 void H2_Punch_line_data(
196 void H2_PunchLineStuff( FILE * io ,
realnum xLimit ,
long index);
199 void H2_RT_diffuse(
void);
203 void H2_RTMake(
void );
206 void H2_RT_tau_inc(
void);
209 void H2_Prt_Zone(
void);
212 void H2_PrtDepartCoef(
void);
215 void H2_LineZero(
void );
218 void H2_RT_tau_reset(
void );
221 void H2_LevelPops(
bool &lgPopsConverged,
double &old_value,
double &new_value );
229 void H2_PunchDo( FILE* io ,
char chJOB[] ,
const char chTime[] ,
long int ipPun );
232 void H2_Prt_line_tau(
void);
235 void H2_ParseSave(
Parser &p ,
239 double H2_itrzn(
void );
245 void H2_Prt_column_density( FILE *ioMEAN );
247 void set_numLevelsMatrix(
long numLevels );
249 void H2_ReadDissocEnergies(
void );
319 double ortho_density,
328 double ortho_colden ,
418 explicit diatomics(
const string& a,
const double& e_star,
const double*
const abund,
double (*fun)(
double) ) : trans(a, &states), ENERGY_H2_STAR (e_star), dense_total(abund)
425 for( j = 0; j < a.size(); ++
j )
426 label[j] =
toupper( label[j] );
428 for( j = a.size(); j < 4; ++
j )
438 lgColl_deexec_Calc =
true;
439 lgColl_dissoc_coll =
true;
444 lgH2_grain_deexcitation =
false;
447 lgH2_NOISECOSMIC =
false;
449 lgH2_ortho_para_coll_on =
true;
456 lgH2_H_coll_07 =
true;
459 lgH2_ORH2_ORNL =
true;
460 lgH2_PAH2_ORNL =
true;
471 photo_heat_soft = 0.;
472 photo_heat_hard = 0.;
473 photodissoc_BigH2_H2s = 0.;
474 photodissoc_BigH2_H2g = 0.;
475 photoion_opacity_fun = fun;
476 Solomon_dissoc_rate_s = 0.;
477 Solomon_dissoc_rate_g = 0.;
479 rate_grain_op_conserve = 0.;
480 rate_grain_J1_to_J0 = 0.;
482 Average_collH2_deexcit = 0.;
483 Average_collH_deexcit = 0.;
484 Average_collH2_excit = 0.;
485 Average_collH_excit = 0.;
486 Average_collH_dissoc_g = 0.;
487 Average_collH_dissoc_s = 0.;
488 Average_collH2_dissoc_g = 0.;
489 Average_collH2_dissoc_s = 0.;
499 ortho_para_older = 0.;
500 ortho_para_current = 0.;
512 n_trace_iterations = 2;
522 nElecLevelOutput = 1;
539 iteration_evaluated = -1;
542 nzone_nlevel_set = -1;
545 nzone_nlevel_set = 0;
553 H2_to_H_limit = 1e-8;
554 iterationAsEval = -1;
556 strcpy( chH2ColliderLabels[0] ,
"H0" );
557 strcpy( chH2ColliderLabels[1] ,
"He" );
558 strcpy( chH2ColliderLabels[2] ,
"H2 o" );
559 strcpy( chH2ColliderLabels[3] ,
"H2 p" );
560 strcpy( chH2ColliderLabels[4] ,
"H+" );
multi_arr< double, 2 > H2_rad_rate_in
multi_arr< double, 2 > H2_col_rate_out
multi_arr< realnum, 3 > H2_dissprob
const double ENERGY_H2_STAR
double Average_collH2_excit
long ip_photo_opac_thresh
multi_arr< double, 2 > pops_per_vib
multi_arr< realnum, 2 > H2_coll_dissoc_rate_coef_H2
double Cont_Dissoc_Rate_H2g
valarray< long > ipVib_H2_energy_sort
vector< CollRateCoeffArray > RateCoefTable
double rate_grain_op_conserve
multi_arr< realnum, 2 > H2_coll_dissoc_rate_coef
double Average_collH2_dissoc_g
double Average_collH2_deexcit
multi_arr< realnum, 3 > CollRateErrFac
multi_arr< realnum, 2 > H2_X_formation
const realnum H2_logte_hminus[nTE_HMINUS]
double Yan_H2_CS(double energy_ryd)
double Solomon_dissoc_rate_g
multi_arr< realnum, 3 > CollRateCoeff
const double *const dense_total
multi_arr< realnum, 3 > H2_stat
valarray< realnum > H2_X_sink
vector< diss_tran > Diss_Trans
long int iteration_evaluated
multi_arr< double, 3 > Cont_Dissoc_Rate
multi_arr< long int, 3 > ipEnergySort
multi_arr< double, 3 > H2_old_populations
bool lgH2_ortho_para_coll_on
double Average_collH2_dissoc_s
multi_arr< realnum, 3 > H2_disske
diss_tran(diss_level a, diss_level b)
vector< double > energies
multi_arr< realnum, 3 > H2_X_hminus_formation_distribution
double photodissoc_BigH2_H2s
multi_arr< double, 3 > H2_populations_LTE
double Average_collH_deexcit
long int nCall_this_iteration
multi_arr< realnum, 2 > H2_X_colden_LTE
double photodissoc_BigH2_H2g
multi_arr< bool, 2 > lgH2_radiative
multi_arr< realnum, 2 > H2_X_Hmin_back
long ip_photo_opac_offset
multi_arr< realnum, 6 > H2_SaveLine
multi_arr< double, 3 > H2_rad_rate_out
valarray< long > ipElec_H2_energy_sort
multi_arr< realnum, 3 > H2_X_grain_formation_distribution
double rate_grain_J1_to_J0
diatomics(const string &a, const double &e_star, const double *const abund, double(*fun)(double))
vector< double > stat_levn
bool lgH2_grain_deexcitation
multi_arr< double, 2 > H2_X_rate_to_elec_excited
multi_arr< double, 2 > H2_X_rate_from_elec_excited
double Average_collH_excit
double Solomon_dissoc_rate_s
multi_arr< long int, 2 > ipTransitionSort
double Cont_Dissoc_Rate_H2s
double Solomon_elec_decay_g
TransitionList::iterator rad_end
double Solomon_elec_decay_s
double H2_renorm_chemistry
double Average_collH_dissoc_g
valarray< long > ipRot_H2_energy_sort
valarray< realnum > H2_X_source
long int nzone_nlevel_set
double Average_collH_dissoc_s
multi_arr< double, 3 > H2_Boltzmann
double MolDissocCrossSection(const diss_tran &tran, const double &Mol_Ene)
multi_arr< realnum, 2 > H2_X_coll_rate
vector< double > xsections
multi_arr< double, 2 > H2_col_rate_in
multi_arr< realnum, 2 > H2_X_colden
multi_arr< int, 2 > H2_ipPhoto
multi_arr< bool, 3 > H2_lgOrtho