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 _H2_PRIV_H_ 00005 #define _H2_PRIV_H_ 00006 00007 /*H2_Read_Cosmicray_distribution read distribution function for H2 population following cosmic ray collisional excitation 00008 void H2_Read_Cosmicray_distribution(void); */ 00009 00013 /* >> chng 05 jul 15, TE, H2g = sum (v=0, J=0,1) */ 00014 /* >>chng 05 jul 29, to 0.5 eV, this goes up to J=8 for v=0 */ 00015 /* >>chng 05 aug 03, slight upward change in energy to include the J=8 level, 00016 * also give energy in waveumbers for simplicity (punch h2 levels give energy in ryd) */ 00017 /*#define ENERGY_H2_STAR (0.5/EVRYD/WAVNRYD)*/ 00018 /* energy of v=0, J=8 is 4051.73, J=9 is 5001.97 00019 * v=1, J=0 is 4161.14 */ 00020 const double ENERGY_H2_STAR = 4100.; 00021 00028 double H2_He_coll(int init, int final, double temp); 00029 00035 long int H2_He_coll_init(const char FILE_NAME_IN[]); 00036 00040 void H2_ReadEnergies( long int nelec ); 00041 00045 void H2_ReadDissprob( long int nelec ); 00046 00048 void H2_CollidRateEvalAll( void ); 00049 00053 void H2_CollidRateRead( long int nColl ); 00054 00058 void H2_ReadTransprob( long int nelec ); 00059 00061 void H2_Read_hminus_distribution(void); 00062 00064 void mole_H2_form( void ); 00065 00067 void mole_H2_LTE( void ); 00068 00071 void H2_Solomon_rate( void ); 00072 00074 void H2_gs_rates( void ); 00075 00078 void H2_zero_pops_too_low( void ); 00079 00080 const bool CR_PRINT = false; 00081 const int CR_X = 1; 00082 const int CR_VIB = 15; 00083 const int CR_J = 10; 00084 const int CR_EXIT = 3; 00085 00088 const int N_X_COLLIDER = 5; 00089 00091 const int chN_X_COLLIDER = 10; 00092 EXTERN char chH2ColliderLabels[N_X_COLLIDER][chN_X_COLLIDER]; 00093 00095 const int VIB_COLLID = 3; 00096 00098 const int nTE_HMINUS = 7; 00099 00100 /* these vars are private for H2 but uses same style as all other header files - 00101 * the EXTERN is extern in all except cddefines */ 00102 00104 EXTERN long int nEner_H2_ground; 00105 00106 EXTERN multi_arr<double,3> H2_populations; 00107 EXTERN multi_arr<double,3> H2_rad_rate_out; 00108 00110 EXTERN multi_arr<double,2> pops_per_vib; 00111 00113 EXTERN double H2_renorm_chemistry, 00114 H2_sum_excit_elec_den; 00115 00117 EXTERN multi_arr<realnum,2> H2_X_colden; 00118 00120 EXTERN multi_arr<double,2> H2_X_rate_from_elec_excited; 00121 00123 EXTERN multi_arr<double,2> H2_X_rate_to_elec_excited; 00124 00126 EXTERN multi_arr<realnum,2> H2_X_coll_rate; 00127 00129 EXTERN multi_arr<realnum,2> H2_X_colden_LTE; 00130 00132 EXTERN long int nLevels_per_elec[N_H2_ELEC]; 00133 00135 EXTERN double pops_per_elec[N_H2_ELEC]; 00136 00138 EXTERN multi_arr<double,3> energy_wn; 00139 00142 EXTERN multi_arr<realnum,6> CollRateFit; 00143 00145 EXTERN multi_arr<realnum,3> H2_dissprob; 00146 EXTERN multi_arr<realnum,3> H2_disske; 00147 EXTERN multi_arr<realnum,5> H2_CollRate; 00148 00150 EXTERN multi_arr<double,3> H2_old_populations; 00151 EXTERN multi_arr<double,3> H2_Boltzmann; 00152 EXTERN multi_arr<double,3> H2_populations_LTE; 00154 EXTERN multi_arr<realnum,3> H2_stat; 00156 EXTERN multi_arr<bool,3> H2_lgOrtho; 00157 00158 EXTERN long int nzoneAsEval , iterationAsEval; 00159 00160 EXTERN multi_arr<int,2> H2_ipPhoto; 00161 /*EXTERN realnum **H2_col_rate_in_old; 00162 EXTERN realnum **H2_col_rate_out_old;*/ 00163 EXTERN multi_arr<double,2> H2_col_rate_in; 00164 EXTERN multi_arr<double,2> H2_col_rate_out; 00165 EXTERN multi_arr<double,2> H2_rad_rate_in; 00166 EXTERN realnum *H2_X_source; 00167 EXTERN realnum *H2_X_sink; 00168 00171 EXTERN multi_arr<realnum,3> H2_X_grain_formation_distribution; 00172 00175 EXTERN multi_arr<realnum,2> H2_X_formation; 00176 00178 EXTERN multi_arr<realnum,2> H2_X_Hmin_back; 00179 00181 EXTERN multi_arr<realnum,2> H2_coll_dissoc_rate_coef; 00182 00184 EXTERN multi_arr<realnum,2> H2_coll_dissoc_rate_coef_H2; 00185 00187 EXTERN double H2_den_s , H2_den_g; 00188 00190 EXTERN multi_arr<realnum,3> H2_X_hminus_formation_distribution; 00191 00194 EXTERN realnum *H2_energies; 00196 EXTERN long int nH2_energies; 00197 EXTERN long int *H2_ipX_ener_sort; 00198 EXTERN long int *ipVib_H2_energy_sort, *ipElec_H2_energy_sort; 00199 EXTERN long int *ipRot_H2_energy_sort; 00200 EXTERN multi_arr<long int,3> ipEnergySort; 00201 00204 EXTERN long int nXLevelsMatrix; 00205 00207 EXTERN multi_arr<realnum,6> H2_SaveLine; 00208 00211 EXTERN multi_arr<bool,6> lgH2_line_exists; 00212 00214 EXTERN long int nH2_pops; 00215 EXTERN long int nH2_zone; 00216 00218 EXTERN long int nzone_nlevel_set; 00219 00223 EXTERN long int nCallH2_this_iteration; 00224 00226 extern int H2_nRot_add_ortho_para[N_H2_ELEC]; 00227 00228 extern double H2_DissocEnergies[N_H2_ELEC]; 00229 00231 extern realnum H2_te_hminus[nTE_HMINUS]; 00232 00233 typedef multi_arr<transition,6>::iterator mt6i; 00234 typedef multi_arr<transition,6>::const_iterator mt6ci; 00235 00236 #endif /* _H2_PRIV_H_ */