32 for (
long nelem=
ipHYDROGEN; nelem < nelem1; ++nelem)
40 for(
long nelem=nelem1+1; nelem<
LIMELM; ++nelem)
42 for(
long ion=0; ion<=nelem; ++ion )
79 double DR_reverse = 0.;
82 long indexIP =
iso_sp[ipISO][nelem].
fb[level].ipIsoLevNIonCon-1;
84 double OccNumBB = 1./(exp(
iso_sp[ipISO][nelem].fb[level].xIsoLevNIonRyd /
phycon.
te_ryd ) - 1. );
85 double RelOccNum =
MIN2( 1., OccNum / OccNumBB );
88 DR_reverse =
iso_sp[ipISO][nelem].
fb[level].DielecRecomb * RelOccNum /
89 iso_sp[ipISO][nelem].
fb[level].PopLTE;
93 iso_sp[ipISO][nelem].
fb[level].RateLevel2Cont =
iso_sp[ipISO][nelem].
fb[level].gamnc +
99 iso_sp[ipISO][nelem].
fb[level].RateCont2Level = (
105 iso_sp[ipISO][nelem].
fb[level].DielecRecomb +
108 iso_sp[ipISO][nelem].
fb[level].RecomInducRate*
iso_sp[ipISO][nelem].
fb[level].PopLTE +
117 ASSERT(
iso_sp[ipISO][nelem].fb[level].DielecRecomb >= 0. );
118 ASSERT(
iso_sp[ipISO][nelem].fb[level].RecomInducRate >= 0. );
120 ASSERT(
iso_sp[ipISO][nelem].fb[level].ColIoniz >= 0. );
121 ASSERT(
iso_sp[ipISO][nelem].fb[level].RateCont2Level >= 0. );
125 iso_sp[ipISO][nelem].
fb[level].RateCont2Level *=
175 fprintf(
ioQQQ,
" iso_ionize_recombine iso=%2ld Z=%2ld Level2Cont[0] %10.2e RateRecomTot %10.2e xIonSimple %10.2e\n",
#define DEBUG_ENTRY(funcname)
double ** RR_rate_coef_used
double RateIonizTot(long nelem, long ion)
multi_arr< extra_tr, 2 > ex
t_iso_sp iso_sp[NISO][LIMELM]
void iso_charge_transfer_update(long nelem1)
void iso_ionize_recombine(long ipISO, long int nelem)
t_secondaries secondaries
double CharExcRecTo[NCX][LIMELM][LIMELM+1]
double CharExcIonOf[NCX][LIMELM][LIMELM+1]
double CharExcRecTotal[NCX]
double CharExcIonTotal[NCX]
double xIonDense[LIMELM][LIMELM+1]
realnum * OccNumbContEmitOut
realnum * OccNumbIncidCont