21 long int numb_coll_trans = 0;
24 fprintf(
ioQQQ,
"%s set collision rates\n",
label.c_str());
57 for(
long ipLo=0; ipLo<ipHi; ++ipLo )
69 ipHi , ipLo , nColl,
phycon.te );
87 H2_CollRate[0][1][0][0][0] *= (
realnum)(exp(-(3900-170.5)*(1./
phycon.te - 1./100.)));
88 H2_CollRate[0][3][0][0][0] *= (
realnum)(exp(-(3900-1015.1)*(1./
phycon.te - 1./100.)));
89 H2_CollRate[0][2][0][1][0] *= (
realnum)(exp(-(3900-339.3)*(1./
phycon.te - 1./100.)));
95 " collision rates updated for new temp, number of trans is %li\n",
105 long iVibHi,
long iRotHi,
long iVibLo,
107 long iRotLo,
long ipHi ,
long ipLo ,
123 double ediff =
states[ipHi].energy().WN() -
states[ipLo].energy().WN();
146 {-9.9265 , -0.1048 , 0.456 },
147 {-8.281 , -0.1303 , 0.4931 },
148 {-10.0357, -0.0243 , 0.67 },
149 {-8.6213 , -0.1004 , 0.5291 },
150 {-9.2719 , -0.0001 , 1.0391 }
155 ediff =
MAX2(100., ediff );
160 gbarcoll[nColl][0] + gbarcoll[nColl][1] *
161 pow(ediff,gbarcoll[nColl][2]) );
173 const char* chFilename =
coll_source[nColl].filename.c_str();
177 strcpy( chPath,
path.c_str() );
178 strcat( chPath,
input.chDelimiter );
179 strcat( chPath, chFilename );
185 fprintf(
ioQQQ,
" H2_CollidRateRead could not read first line of %s\n", chFilename );
190 long n1 = atoi( chLine );
191 if( n1 != magic_expect )
193 fprintf(
ioQQQ,
" H2_CollidRateRead: the version of %s is not the current version.\n", chFilename );
194 fprintf(
ioQQQ,
" I expected to find the number %li and got %li instead.\n", magic_expect, n1 );
195 fprintf(
ioQQQ,
"Here is the line image:\n==%s==\n", chLine );
211 long iVibHi = (long)
FFmtRead( chLine, &i, strlen(chLine), &lgEOL );
212 long iRotHi = (long)
FFmtRead( chLine, &i, strlen(chLine), &lgEOL );
213 long iVibLo = (long)
FFmtRead( chLine, &i, strlen(chLine), &lgEOL );
214 long iRotLo = (long)
FFmtRead( chLine, &i, strlen(chLine), &lgEOL );
215 ASSERT( iRotHi >= 0 && iVibHi >= 0 && iRotLo >= 0 && iVibLo >=0 );
224 ( iVibHi == iVibLo && iRotHi == iRotLo ) )
double InterpCollRate(const CollRateCoeffArray &rate_table, const long &ipHi, const long &ipLo, const double &ftemp)
void ReadCollisionRateTable(CollRateCoeffArray &coll_rate_table, FILE *io, FunctPtr GetIndices, long nMolLevs, long nTemps, long nTrans)
const int FILENAME_PATH_LENGTH_2
sys_float sexp(sys_float x)
const int INPUT_LINE_LENGTH
double FFmtRead(const char *chCard, long int *ipnt, long int last, bool *lgEOL)
char * read_whole_line(char *chLine, int nChar, FILE *ioIN)
#define DEBUG_ENTRY(funcname)
multi_arr< bool, 3 > H2_lgOrtho
void H2_CollidRateEvalAll(void)
void GetIndices(long &ipHi, long &ipLo, const char *chLine, long &i) const
t_coll_source coll_source[N_X_COLLIDER]
multi_arr< realnum, 2 > H2_coll_dissoc_rate_coef
realnum H2_CollidRateEvalOne(long iVibHi, long iRotHi, long iVibLo, long iRotLo, long ipHi, long ipLo, long nColl, double temp_K)
valarray< long > ipVib_H2_energy_sort
multi_arr< realnum, 3 > CollRateErrFac
double H2_DissocEnergies[N_ELEC]
vector< CollRateCoeffArray > RateCoefTable
valarray< long > ipRot_H2_energy_sort
multi_arr< realnum, 3 > CollRateCoeff
bool lgH2_ortho_para_coll_on
multi_arr< realnum, 2 > H2_coll_dissoc_rate_coef_H2
valarray< long > nRot_hi[N_ELEC]
long int nLevels_per_elec[N_ELEC]
void H2_CollidRateRead(long int nColl)
multi_arr< long int, 3 > ipEnergySort
void swap(count_ptr< T > &a, count_ptr< T > &b)
FILE * open_data(const char *fname, const char *mode, access_scheme scheme)
STATIC realnum GbarRateCoeff(long nColl, double ediff)