30 for (
long nelem=
ipHYDROGEN; nelem < nelem1; ++nelem)
38 for(
long nelem=nelem1+1; nelem<
LIMELM; ++nelem)
40 for(
long ion=0; ion<=nelem; ++ion )
71 fixit(
"must apply error to iso.gamnc");
77 double DR_reverse = 0.;
80 long indexIP =
iso_sp[ipISO][nelem].
fb[level].ipIsoLevNIonCon-1;
82 double OccNumBB = 1./(exp(
iso_sp[ipISO][nelem].fb[level].xIsoLevNIonRyd /
phycon.
te_ryd ) - 1. );
83 double RelOccNum =
MIN2( 1., OccNum / OccNumBB );
86 DR_reverse =
iso_sp[ipISO][nelem].
fb[level].DielecRecomb * RelOccNum /
87 iso_sp[ipISO][nelem].
fb[level].PopLTE;
91 iso_sp[ipISO][nelem].
fb[level].RateLevel2Cont =
iso_sp[ipISO][nelem].
fb[level].gamnc +
97 iso_sp[ipISO][nelem].
fb[level].RateCont2Level = (
103 iso_sp[ipISO][nelem].
fb[level].DielecRecomb +
106 iso_sp[ipISO][nelem].
fb[level].RecomInducRate*
iso_sp[ipISO][nelem].
fb[level].PopLTE +
115 ASSERT(
iso_sp[ipISO][nelem].fb[level].DielecRecomb >= 0. );
116 ASSERT(
iso_sp[ipISO][nelem].fb[level].RecomInducRate >= 0. );
118 ASSERT(
iso_sp[ipISO][nelem].fb[level].ColIoniz >= 0. );
119 ASSERT(
iso_sp[ipISO][nelem].fb[level].RateCont2Level >= 0. );
123 iso_sp[ipISO][nelem].
fb[level].RateCont2Level *=
173 fprintf(
ioQQQ,
" iso_ionize_recombine iso=%2ld Z=%2ld Level2Cont[0] %10.2e RateRecomTot %10.2e xIonSimple %10.2e\n",
realnum * OccNumbContEmitOut
t_iso_sp iso_sp[NISO][LIMELM]
double xIonDense[LIMELM][LIMELM+1]
double CharExcRecTotal[NCX]
double CharExcIonTotal[NCX]
void iso_charge_transfer_update(long nelem)
realnum * OccNumbIncidCont
multi_arr< extra_tr, 2 > ex
#define DEBUG_ENTRY(funcname)
double RateIonizTot(long nelem, long ion) const
int fprintf(const Output &stream, const char *format,...)
t_secondaries secondaries
double CharExcIonOf[NCX][LIMELM][LIMELM+1]
double CharExcRecTo[NCX][LIMELM][LIMELM+1]
void iso_ionize_recombine(long ipISO, long nelem)
double ** RR_rate_coef_used