cloudy trunk
|
00001 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and 00002 * others. For conditions of distribution and use see copyright notice in license.txt */ 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 realnum 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 00283 realnum rheph2hpheh, 00284 heph2heh2p; 00285 00287 realnum hmin_ct_firstions; 00288 00290 double exphmi, 00296 rel_pop_LTE_Hmin, 00299 rel_pop_LTE_H2s; 00302 double rel_pop_LTE_H2p, 00305 rel_pop_LTE_H2g, 00307 rel_pop_LTE_H3p, 00309 H2g_LTE_bigH2, 00310 H2s_LTE_bigH2; 00311 00313 bool lgLeiden_Keep_ipMH2s; 00314 bool lgLeidenCRHack; 00315 00318 double assoc_detach_backwards_grnd, 00319 assoc_detach_backwards_exct, 00320 bh2h22hh2, 00321 h3phmh2hh, 00322 h3phm2h2, 00323 h32h2, 00324 eh3_h2h, 00325 h3ph2hp, 00326 h2sh, 00327 CR_reac_H2g, 00328 CR_reac_H2s, 00329 h2phmh2h, 00330 hehph2h3phe, 00331 h2ph3p, 00332 h2sh2g, 00333 h2h22hh2, 00334 h2sh2sh2g2h, 00335 h2sh2sh2s2h, 00336 H2_photoionize_rate , 00337 H2_photo_heat_soft , 00338 H2_photo_heat_hard , 00339 rh2h2p , 00340 eh2hh , 00341 h2ge2h, 00342 h2se2h, 00343 h2hph3p, 00344 bh2dis, 00345 radasc, 00346 h3ph2p, 00347 h3petc, 00349 H2_rate_create; 00350 00351 } hmi; 00352 00354 enum { 00355 ipMH, 00356 ipMHp, 00357 ipMHm, 00358 ipMH2g, 00359 ipMH2p, 00360 ipMH3p, 00361 ipMH2s, 00362 ipMHeHp 00363 }; 00364 00365 00366 #endif /* _HMI_H_ */