54 sp->
fb[ipHi].ColIoniz =
127 {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0},
128 {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0} };
147 " iso_collide called %s nelem %li - no reeval Boltz fac, LTE dens\n",
158 " iso_collide called %s nelem %li - will reeval Boltz fac, LTE dens\n",
187 sp->
st[ipLo].Boltzmann() =
189 sp->
st[ipLo].ConBoltz() =
201 sp->
fb[ipLo].PopLTE =
202 sp->
st[ipLo].g() / sp->
st[ipLo].ConBoltz() * ConvLTEPOP;
207 sp->
fb[ipLo].PopLTE = 0.;
213 if( sp->
fb[ipLo].PopLTE <= 0. )
231 for(
long ipLo=0; ipLo < ipHi; ipLo++ )
244 cs_temp =
HeCSInterp( nelem , ipHi , ipLo, ipCollider );
253 cs_temp *= ( sp->
trans(ipHi,ipLo).
Emis().
gf() / sp->
st[ipLo].g() ) /
267 double rateCoef = cs_temp *
278 rateCoef *= (8./3.)*(log(
double(
N_(ipHi)))+2.);
290 rateCoef *= (2./3.)*(log(
double(
N_(ipHi)))+2.);
302 if(
N_(ipHi) <= 5 &&
N_(ipLo) <= 2 )
312 fprintf(
ioQQQ,
" iso_collide: %s Z=%li de-excitation rates coefficients\n",
iso_ctrl.
chISO[ipISO], nelem + 1 );
314 for(
long ipHi=1; ipHi < upper_limit; ipHi++ )
316 fprintf(
ioQQQ,
" %li\t", ipHi );
317 for(
long ipLo=0; ipLo < ipHi; ipLo++ )
322 fprintf(
ioQQQ,
"\n" );
325 fprintf(
ioQQQ,
" iso_collide: %s Z=%li collisional ionization coefficients\n",
iso_ctrl.
chISO[ipISO], nelem + 1 );
326 for(
long ipHi=0; ipHi < upper_limit; ipHi++ )
330 fprintf(
ioQQQ,
"\n" );
332 fprintf(
ioQQQ,
" iso_collide: %s Z=%li continuum boltzmann factor\n",
iso_ctrl.
chISO[ipISO], nelem + 1 );
333 for(
long ipHi=0; ipHi < upper_limit; ipHi++ )
337 fprintf(
ioQQQ,
"\n" );
339 fprintf(
ioQQQ,
" iso_collide: %s Z=%li continuum boltzmann factor\n",
iso_ctrl.
chISO[ipISO], nelem + 1 );
340 for(
long ipHi=0; ipHi < upper_limit; ipHi++ )
344 fprintf(
ioQQQ,
"\n" );
356 sp->
fb[ipLo].ColIoniz = 0.;
361 if(
N_(ipLo)==2 &&
N_(ipHi)==2 )