17 long int numb_coll_trans = 0;
40 H2_coll_dissoc_rate_coef[iVibHi][iRotHi] =
53 for(
long ipLo=0; ipLo<ipHi; ++ipLo )
71 fixit(
"test that this does not matter with new rate table interpolation");
84 H2_CollRate[0][1][0][0][0] *= (
realnum)(exp(-(3900-170.5)*(1./
phycon.
te - 1./100.)));
85 H2_CollRate[0][3][0][0][0] *= (
realnum)(exp(-(3900-1015.1)*(1./
phycon.
te - 1./100.)));
86 H2_CollRate[0][2][0][1][0] *= (
realnum)(exp(-(3900-339.3)*(1./
phycon.
te - 1./100.)));
92 " collision rates updated for new temp, number of trans is %li\n",
102 long iVibHi,
long iRotHi,
long iVibLo,
104 long iRotLo,
long ipHi ,
long ipLo ,
120 double ediff =
states[ipHi].energy().WN() -
states[ipLo].energy().WN();
143 {-9.9265 , -0.1048 , 0.456 },
144 {-8.281 , -0.1303 , 0.4931 },
145 {-10.0357, -0.0243 , 0.67 },
146 {-8.6213 , -0.1004 , 0.5291 },
147 {-9.2719 , -0.0001 , 1.0391 }
152 ediff =
MAX2(100., ediff );
157 gbarcoll[nColl][0] + gbarcoll[nColl][1] *
158 pow(ediff,gbarcoll[nColl][2]) );
174 strcpy( chPath,
path.c_str() );
176 strcat( chPath, chFilename );
182 fprintf(
ioQQQ,
" H2_CollidRateRead could not read first line of %s\n", chFilename );
187 long n1 = atoi( chLine );
188 if( n1 != magic_expect )
190 fprintf(
ioQQQ,
" H2_CollidRateRead: the version of %s is not the current version.\n", chFilename );
191 fprintf(
ioQQQ,
" I expected to find the number %li and got %li instead.\n", magic_expect, n1 );
192 fprintf(
ioQQQ,
"Here is the line image:\n==%s==\n", chLine );
208 long iVibHi = (long)
FFmtRead( chLine, &i, strlen(chLine), &
lgEOL );
209 long iRotHi = (long)
FFmtRead( chLine, &i, strlen(chLine), &
lgEOL );
210 long iVibLo = (long)
FFmtRead( chLine, &i, strlen(chLine), &
lgEOL );
211 long iRotLo = (long)
FFmtRead( chLine, &i, strlen(chLine), &
lgEOL );
212 ASSERT( iRotHi >= 0 && iVibHi >= 0 && iRotLo >= 0 && iVibLo >=0 );
221 ( iVibHi == iVibLo && iRotHi == iRotLo ) )
FILE * open_data(const char *fname, const char *mode, access_scheme scheme)
double H2_DissocEnergies[N_ELEC]
const int FILENAME_PATH_LENGTH_2
t_coll_source coll_source[N_X_COLLIDER]
multi_arr< realnum, 2 > H2_coll_dissoc_rate_coef_H2
valarray< long > ipVib_H2_energy_sort
realnum H2_CollidRateEvalOne(long iVibHi, long iRotHi, long iVibLo, long iRotLo, long ipHi, long ipLo, long nColl, double temp_K)
void H2_CollidRateRead(long int nColl)
vector< CollRateCoeffArray > RateCoefTable
sys_float sexp(sys_float x)
multi_arr< realnum, 2 > H2_coll_dissoc_rate_coef
void GetIndices(long &ipHi, long &ipLo, const char *chLine, long &i) const
multi_arr< realnum, 3 > CollRateErrFac
multi_arr< realnum, 3 > CollRateCoeff
multi_arr< long int, 3 > ipEnergySort
bool lgH2_ortho_para_coll_on
void H2_CollidRateEvalAll(void)
STATIC realnum GbarRateCoeff(long nColl, double ediff)
void swap(count_ptr< T > &a, count_ptr< T > &b)
double energy(const genericState &gs)
long int nLevels_per_elec[N_ELEC]
double InterpCollRate(const CollRateCoeffArray &rate_table, const long &ipHi, const long &ipLo, const double &ftemp)
const int INPUT_LINE_LENGTH
#define DEBUG_ENTRY(funcname)
int fprintf(const Output &stream, const char *format,...)
valarray< long > nRot_hi[N_ELEC]
valarray< long > ipRot_H2_energy_sort
char * read_whole_line(char *chLine, int nChar, FILE *ioIN)
void ReadCollisionRateTable(CollRateCoeffArray &coll_rate_table, FILE *io, FunctPtr GetIndices, long nMolLevs, long nTemps, long nTrans)
double FFmtRead(const char *chCard, long int *ipnt, long int last, bool *lgEOL)
multi_arr< bool, 3 > H2_lgOrtho