00001
00002
00003
00004 #ifndef HMI_H_
00005 #define HMI_H_
00006
00008 void hmole(void);
00009
00011 void hmole_reactions(void);
00012
00014 void hmole_init(void);
00015
00019 double hmirat(double te);
00020
00025 void hmole_step(int *nFixup, double *error);
00026
00028 EXTERN struct t_hmi {
00029
00031 realnum Hmolec[N_H_MOLEC];
00032 int nProton[N_H_MOLEC];
00033 int nElectron[N_H_MOLEC];
00034
00036 double H2_BigH2_H2g_av;
00037 double H2_BigH2_H2s_av;
00038
00040 double H2_chem_BigH2_H2g;
00041 double H2_chem_BigH2_H2s;
00042
00044 char chLab[N_H_MOLEC][5];
00045
00047 double assoc_detach;
00048
00050 double bh2h2p;
00051
00054 double rate_grain_h2_J1_to_J0,
00055 rate_grain_h2_op_conserve;
00056
00058 realnum H2_total;
00059 realnum H2_total_BigH2;
00060 realnum H2s_BigH2;
00061 realnum H2g_BigH2;
00062
00063
00065 double H2_rate_destroy;
00066
00068 double Average_A;
00069 double h2s_sp_decay;
00070
00072 double Average_collH2_deexcit;
00073 double Average_collH_deexcit;
00074 double Average_collH2_excit;
00075 double Average_collH_excit;
00076
00078 double Average_collH2s_dissoc;
00079 double Average_collH2g_dissoc;
00080
00082 double hmihet,
00083 hmitot,
00084 hmicol;
00085
00087 realnum H2Opacity;
00088
00091 double hmidep,
00092 h2dep,
00093 h2pdep,
00094 h3pdep;
00095
00097 double h2plus_heat;
00098
00100 double HMinus_photo_rate;
00101
00102 realnum
00104 HeatH2DexcMax,
00106 CoolH2DexcMax,
00107 h2dfrc,
00108 h2dtot,
00110 h2line_cool_frac;
00111
00112 double HMinus_induc_rec_cooling,
00113 HMinus_induc_rec_rate,
00114 HMinus_photo_heat,
00115 hminus_rad_attach;
00116
00117 long int iheh1,
00118 iheh2;
00119
00121 realnum rh2dis;
00122
00124 realnum HalphaHmin;
00125
00127 realnum BiggestH2;
00128
00131 realnum UV_Cont_rel2_Habing_TH85_face,
00132 UV_Cont_rel2_Habing_TH85_depth,
00134 UV_Cont_rel2_Habing_spec_depth;
00135
00141 realnum UV_Cont_rel2_Draine_DB96_face ,
00142 UV_Cont_rel2_Draine_DB96_depth;
00143
00145 double H2_H2g_to_H2s_rate_TH85;
00146
00148 double H2_H2g_to_H2s_rate_BHT90;
00149
00151 double H2_H2g_to_H2s_rate_BD96;
00152
00154 double H2_H2g_to_H2s_rate_ELWERT;
00155
00157 double H2_H2g_to_H2s_rate_BigH2;
00158
00160 double H2_H2g_to_H2s_rate_used;
00161
00163 double H2_Solomon_dissoc_rate_used_H2g;
00164 double H2_Solomon_dissoc_rate_BigH2_H2g;
00165 double H2_Solomon_dissoc_rate_TH85_H2g;
00166 double H2_Solomon_dissoc_rate_BHT90_H2g;
00167 double H2_Solomon_dissoc_rate_BD96_H2g;
00168 double H2_Solomon_dissoc_rate_ELWERT_H2g;
00169
00170 double H2_Solomon_dissoc_rate_used_H2s;
00171 double H2_Solomon_dissoc_rate_BigH2_H2s;
00172 double H2_Solomon_dissoc_rate_TH85_H2s;
00173 double H2_Solomon_dissoc_rate_BHT90_H2s;
00174 double H2_Solomon_dissoc_rate_BD96_H2s;
00175 double H2_Solomon_dissoc_rate_ELWERT_H2s;
00176
00181 double H2_photodissoc_used_H2g;
00182 double H2_photodissoc_used_H2s;
00183 double H2_photodissoc_BigH2_H2s;
00184 double H2_photodissoc_BigH2_H2g;
00185 double H2_photodissoc_ELWERT_H2g;
00186 double H2_photodissoc_ELWERT_H2s;
00187 double H2_photodissoc_TH85;
00188 double H2_photodissoc_BHT90;
00189
00191 double H2_Solomon_elec_decay_H2g ,
00192 H2_Solomon_elec_decay_H2s;
00193
00196 double H2_tripletdissoc_H2s,
00197 H2_tripletdissoc_H2g;
00198
00201 bool lgBigH2_evaluated;
00202
00204 long int iphmin;
00205
00207 realnum h2pmax;
00208
00211 realnum Tad;
00212
00213 double
00214
00216 HeatH2Dish_used,
00217 HeatH2Dish_BigH2,
00218 HeatH2Dish_TH85,
00219 HeatH2Dish_BD96 ,
00220 HeatH2Dish_BHT90,
00221 HeatH2Dish_ELWERT ,
00222
00225 HeatH2Dexc_used,
00226 HeatH2Dexc_BigH2,
00227 HeatH2Dexc_TH85,
00228 HeatH2Dexc_BD96,
00229 HeatH2Dexc_BHT90,
00230 HeatH2Dexc_ELWERT;
00231
00233 realnum
00234 deriv_HeatH2Dexc_used,
00235 deriv_HeatH2Dexc_BigH2 ,
00236 deriv_HeatH2Dexc_TH85 ,
00237 deriv_HeatH2Dexc_BD96 ,
00238 deriv_HeatH2Dexc_BHT90 ,
00239 deriv_HeatH2Dexc_ELWERT;
00240
00243 double H2_forms_grains ,
00244 H2_forms_hminus,
00245 H2star_forms_grains,
00246 H2star_forms_hminus;
00247
00250 bool lgH2_Thermal_BigH2,
00254 lgH2_Chemistry_BigH2;
00255
00257 bool lgNoH2Mole;
00258
00261 char chH2_small_model_type;
00262
00264 char chGrainFormPump;
00265
00267 char chJura;
00268
00271 realnum ScaleJura;
00272
00274 double rate_h2_form_grains_set;
00275
00278 double H2_frac_abund_set;
00279
00281 double H2_formation_scale;
00282
00286 realnum rheph2hpheh,
00287 heph2heh2p;
00288
00290 realnum hmin_ct_firstions;
00291
00293 double exphmi,
00299 rel_pop_LTE_Hmin,
00302 rel_pop_LTE_H2s;
00305 double rel_pop_LTE_H2p,
00308 rel_pop_LTE_H2g,
00310 rel_pop_LTE_H3p,
00312 H2g_LTE_bigH2,
00313 H2s_LTE_bigH2;
00314
00316 bool lgLeiden_Keep_ipMH2s;
00317 bool lgLeidenCRHack;
00318
00321 double assoc_detach_backwards_grnd,
00322 assoc_detach_backwards_exct,
00323 bh2h22hh2,
00324 h3phmh2hh,
00325 h3phm2h2,
00326 h32h2,
00327 eh3_h2h,
00328 h3ph2hp,
00329 h2sh,
00330 CR_reac_H2g,
00331 CR_reac_H2s,
00332 h2phmh2h,
00333 hehph2h3phe,
00334 h2ph3p,
00335 h2sh2g,
00336 h2h22hh2,
00337 h2sh2sh2g2h,
00338 h2sh2sh2s2h,
00339 H2_photoionize_rate ,
00340 H2_photo_heat_soft ,
00341 H2_photo_heat_hard ,
00342 rh2h2p ,
00343 eh2hh ,
00344 h2ge2h,
00345 h2se2h,
00346 h2hph3p,
00347 bh2dis,
00348 radasc,
00349 h3ph2p,
00350 h3petc,
00352 H2_rate_create;
00353
00354 } hmi;
00355
00357 enum {
00358 ipMH,
00359 ipMHp,
00360 ipMHm,
00361 ipMH2g,
00362 ipMH2p,
00363 ipMH3p,
00364 ipMH2s,
00365 ipMHeHp
00366 };
00367
00368
00369 #endif