21 long int numb_coll_trans = 0;
24 fprintf(
ioQQQ,
"%s set collision rates\n",
label.c_str());
44 H2_coll_dissoc_rate_coef[iVibHi][iRotHi] =
57 for(
long ipLo=0; ipLo<ipHi; ++ipLo )
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 ,
124 ( ( nColl==0 || nColl==1 ) &&
127 double ediff =
states[ipHi].energy().WN() -
states[ipLo].energy().WN();
150 {-9.9265 , -0.1048 , 0.456 },
151 {-8.281 , -0.1303 , 0.4931 },
152 {-10.0357, -0.0243 , 0.67 },
153 {-8.6213 , -0.1004 , 0.5291 },
154 {-9.2719 , -0.0001 , 1.0391 }
159 ediff =
MAX2(100., ediff );
164 gbarcoll[nColl][0] + gbarcoll[nColl][1] *
165 pow(ediff,gbarcoll[nColl][2]) );
181 strcpy( chPath,
path.c_str() );
183 strcat( chPath, chFilename );
189 fprintf(
ioQQQ,
" H2_CollidRateRead could not read first line of %s\n", chFilename );
194 long n1 = atoi( chLine );
195 if( n1 != magic_expect )
197 fprintf(
ioQQQ,
" H2_CollidRateRead: the version of %s is not the current version.\n", chFilename );
198 fprintf(
ioQQQ,
" I expected to find the number %li and got %li instead.\n", magic_expect, n1 );
199 fprintf(
ioQQQ,
"Here is the line image:\n==%s==\n", chLine );
215 long iVibHi = (long)
FFmtRead( chLine, &i, strlen(chLine), &lgEOL );
216 long iRotHi = (long)
FFmtRead( chLine, &i, strlen(chLine), &lgEOL );
217 long iVibLo = (long)
FFmtRead( chLine, &i, strlen(chLine), &lgEOL );
218 long iRotLo = (long)
FFmtRead( chLine, &i, strlen(chLine), &lgEOL );
219 ASSERT( iRotHi >= 0 && iVibHi >= 0 && iRotLo >= 0 && iVibLo >=0 );
228 ( 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)
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)
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