00001 /* This file is part of Cloudy and is copyright (C)1978-2007 by Gary J. Ferland 00002 * For conditions of distribution and use see copyright notice in license.txt */ 00003 /*H2_Read_Cosmicray_distribution read distribution function for H2 population following cosmic ray collisional excitation 00004 void H2_Read_Cosmicray_distribution(void); */ 00005 00009 /* >> chng 05 jul 15, TE, H2g = sum (v=0, J=0,1) */ 00010 /* >>chng 05 jul 29, to 0.5 eV, this goes up to J=8 for v=0 */ 00011 /* >>chng 05 aug 03, slight upward change in energy to include the J=8 level, 00012 * also give energy in waveumbers for simplicity (punch h2 levels give energy in ryd) */ 00013 /*#define ENERGY_H2_STAR (0.5/EVRYD/WAVNRYD)*/ 00014 /* energy of v=0, J=8 is 4051.73, J=9 is 5001.97 00015 * v=1, J=0 is 4161.14 */ 00016 #define ENERGY_H2_STAR (4100.) 00017 00024 double H2_He_coll(int init, int final, double temp); 00025 00031 long int H2_He_coll_init(char FILE_NAME_IN[] ); 00032 00036 void H2_ReadEnergies( long int nelec ); 00037 00041 void H2_ReadDissprob( long int nelec ); 00042 00046 void H2_ReadCollRates( long int nColl ); 00047 00051 void H2_ReadTransprob( long int nelec ); 00052 00054 void H2_Read_hminus_distribution(void); 00055 00057 void mole_H2_form( void ); 00058 00060 void mole_H2_LTE( void ); 00061 00064 void H2_Solomon_rate( void ); 00065 00067 void H2_gs_rates( void ); 00068 00071 void H2_zero_pops_too_low( void ); 00072 00073 #define CR_PRINT false 00074 #define CR_X 1 00075 #define CR_VIB 15 00076 #define CR_J 10 00077 #define CR_EXIT 3 00078 00083 #define N_X_COLLIDER 6 00084 00086 #define VIB_COLLID 3 00087 00089 #define nTE_HMINUS 7 00090 00091 /* these vars are private for H2 but uses same style as all other header files - 00092 * the EXTERN is extern in all except cddefines */ 00093 00095 EXTERN long int nEner_H2_ground; 00096 00097 EXTERN double ***H2_populations; 00098 EXTERN double ***H2_rad_rate_out; 00099 00101 EXTERN double **pops_per_vib; 00102 00104 EXTERN double H2_renorm_chemistry, 00105 H2_sum_excit_elec_den; 00106 00108 EXTERN float **H2_X_colden; 00109 00111 EXTERN double **H2_X_rate_from_elec_excited; 00112 00114 EXTERN double **H2_X_rate_to_elec_excited; 00115 00117 EXTERN float **H2_X_coll_rate; 00118 00120 EXTERN float **H2_X_colden_LTE; 00121 00123 EXTERN long int nLevels_per_elec[N_H2_ELEC]; 00124 00126 EXTERN double pops_per_elec[N_H2_ELEC]; 00127 00129 EXTERN double ***energy_wn; 00130 00133 EXTERN float ******CollRateFit; 00134 00136 EXTERN float ***H2_dissprob; 00137 EXTERN float ***H2_disske; 00138 EXTERN float *****H2_CollRate; 00139 00141 EXTERN double ***H2_old_populations; 00142 EXTERN double ***H2_Boltzmann; 00143 EXTERN double ***H2_populations_LTE; 00145 EXTERN float ***H2_stat; 00147 EXTERN int ***H2_lgOrtho; 00148 00149 EXTERN long int nzoneAsEval , iterationAsEval; 00150 00151 EXTERN int **H2_ipPhoto; 00152 /*EXTERN float **H2_col_rate_in_old; 00153 EXTERN float **H2_col_rate_out_old;*/ 00154 EXTERN double **H2_col_rate_in; 00155 EXTERN double **H2_col_rate_out; 00156 EXTERN double **H2_rad_rate_in; 00157 EXTERN float *H2_X_source; 00158 EXTERN float *H2_X_sink; 00159 00162 EXTERN float ***H2_X_grain_formation_distribution; 00163 00166 EXTERN float **H2_X_formation; 00167 00169 EXTERN float **H2_X_Hmin_back; 00170 00172 EXTERN float **H2_coll_dissoc_rate_coef; 00173 00175 EXTERN float **H2_coll_dissoc_rate_coef_H2; 00176 00178 EXTERN double H2_den_s , H2_den_g; 00179 00181 EXTERN float ***H2_X_hminus_formation_distribution; 00182 00184 EXTERN float *H2_Xenergies; 00185 EXTERN long int *H2_ipX_ener_sort; 00186 EXTERN long int *ipVib_H2_energy_sort; 00187 EXTERN long int *ipRot_H2_energy_sort; 00188 EXTERN long int **ipEnergySort; 00189 00192 EXTERN long int nXLevelsMatrix; 00193 00195 EXTERN float ******H2_SaveLine; 00196 00199 EXTERN int ******lgH2_line_exists; 00200 00202 EXTERN long int nH2_pops; 00203 EXTERN long int nH2_zone; 00204 00206 EXTERN long int nzone_nlevel_set; 00207 00211 EXTERN long int nCallH2_this_iteration; 00212 00214 extern int H2_nRot_add_ortho_para[N_H2_ELEC]; 00215 00216 extern double H2_DissocEnergies[N_H2_ELEC]; 00217 00219 extern float H2_te_hminus[nTE_HMINUS];