74 if( ipLoEnr >=
rfield.nflux || ipLoEnr >= ipHiEnr )
85 ASSERT( ipLoEnr >= 0 && ipHiEnr >= 0 );
98 RateInducRecCool = 0.;
107 opac.OpacStack[i-ipLoEnr+ipOpac-1];
113 prod = phisig*
rfield.ContBoltz[i-1];
114 RateInducRec += prod;
116 RateInducRecCool += prod*(
rfield.anu[i-1] - emin);
122 for( i=ipLoEnr; i < limit; i++ )
126 phisig =
rfield.SummedCon[i]*
opac.OpacStack[i-ipLoEnr+ipOpac];
132 prod = phisig*
rfield.ContBoltz[i];
134 RateInducRec += prod;
136 RateInducRecCool += prod*(
rfield.anu[i] - emin);
153 for( i=ilo-1; i < iup; i++ )
155 phisig =
rfield.SummedCon[i]*
opac.OpacStack[i-ipLoEnr+ipOpac];
161 prod = phisig*
rfield.ContBoltz[i];
162 RateInducRec += prod;
164 RateInducRecCool += prod*(
rfield.anu[i] - emin);
182 if(
rfield.lgInducProcess )
184 *rcool = RateInducRecCool*
EN1RYD;
185 *ainduc = RateInducRec;
208 fprintf(
ioQQQ,
" GammaPrtShells nz\t%.2f \t%.2li %.2li ",
214 for( ns=0; ns <
Heavy.nsShells[nelem][ion]; ++ns )
216 sum +=
ionbal.PhotoRate_Shell[nelem][ion][ns][0];
218 fprintf(
ioQQQ,
"\ttot\t%.2e", sum);
220 for( ns=0; ns <
Heavy.nsShells[nelem][ion]; ++ns )
222 fprintf(
ioQQQ,
"\t%.2e",
ionbal.PhotoRate_Shell[nelem][ion][ns][0] );
225 if( (ns==(
Heavy.nsShells[nelem][ion]-1) ||
opac.lgRedoStatic) )
228 iplow =
opac.ipElement[nelem][ion][ns][0];
229 iphi =
opac.ipElement[nelem][ion][ns][1];
230 ipop =
opac.ipElement[nelem][ion][ns][2];
234 ionbal.PhotoRate_Shell[nelem][ion][ns][0] =
237 &phoHeat)*
ionbal.lgPhotoIoniz_On;
277 if( ipLoEnr >=
rfield.nflux || ipLoEnr >= ipHiEnr )
282 fprintf( ioFILE,
" GammaPrt %.2f from ",
fnzone);
284 fprintf( ioFILE,
" to ");
286 fprintf( ioFILE,
"R rates >");
287 fprintf( ioFILE,
PrintEfmt(
"%9.2e",threshold));
288 fprintf( ioFILE,
" of total=");
289 fprintf( ioFILE,
PrintEfmt(
"%9.2e",total));
290 fprintf( ioFILE,
" (frac inc, otslin, otscon, ConInterOut, outlin ConOTS_local_OTS_rate ) chL, C\n");
292 if( threshold <= 0. || total <= 0. )
305 opac.OpacStack[i-k+ipOpac];
306 if( phisig > threshold || phisig < 0.)
311 fprintf( ioFILE,
"[%5ld]" , i );
313 fprintf( ioFILE,
PrintEfmt(
"%9.2e",phisig/total));
314 fprintf( ioFILE,
"%5.2f%5.2f%5.2f%5.2f%5.2f%5.2f %4.4s %4.4s %.2e \n",
324 opac.OpacStack[i-k+ipOpac]);
327 for( i=k; i < j; i++ )
329 phisig =
rfield.SummedCon[i]*
opac.OpacStack[i-k+ipOpac];
330 if( phisig > threshold || phisig < 0.)
336 fprintf( ioFILE,
"%5ld", i );
338 fprintf(ioFILE,
PrintEfmt(
"%9.2e",phisig/total));
339 fprintf( ioFILE,
"%5.2f%5.2f%5.2f%5.2f%5.2f%5.2f %4.4s %4.4s %.2e \n",
348 opac.OpacStack[i-k+ipOpac]);
390 if( ipLoEnr >=
rfield.nflux || ipLoEnr >= ipHiEnr)
404 eauger =
rfield.anu[ipLoEnr-1]*yield1;
412 ipOffset = ipOpac - ipLoEnr;
419 phisig = (
rfield.flux[0][ipLoEnr-1] +
rfield.otslin[ipLoEnr-1]+
426 for( i=ipLoEnr; i < limit; i++ )
428 phisig =
rfield.SummedCon[i]*
opac.OpacStack[i+ipOffset];
447 for( i=ilo-1; i < iup; i++ )
450 phisig =
rfield.SummedCon[i]*
opac.OpacStack[i+ipOffset];
485 long int nshell , ns;
490 nshell =
Heavy.nsShells[nelem][ion];
493 fprintf(ioFILE ,
"GammaPrtRate: %li %li",ion , nelem );
494 for( ns=nshell-1; ns>=0; --ns )
496 fprintf(ioFILE ,
" %.2e" ,
ionbal.PhotoRate_Shell[nelem][ion][ns][0]);
501 fprintf(ioFILE ,
"\n");
504 opac.ipElement[nelem][ion][ns][0],
505 opac.ipElement[nelem][ion][ns][1],
506 opac.ipElement[nelem][ion][ns][2],
510 ionbal.PhotoRate_Shell[nelem][ion][ns][0],
512 ionbal.PhotoRate_Shell[nelem][ion][ns][0]*0.05);
515 fprintf(ioFILE ,
"\n");
sys_float SDIV(sys_float x)
#define DEBUG_ENTRY(funcname)
void GammaPrt(long int ipLoEnr, long int ipHiEnr, long int ipOpac, FILE *ioFILE, double total, double threshold)
void GammaPrtRate(FILE *ioFILE, long int ion, long int nelem, bool lgPRT)
double GammaK(long int ipLoEnr, long int ipHiEnr, long int ipOpac, double yield1, t_phoHeat *photoHeat)
void GammaPrtShells(long nelem, long ion)
double GammaBn(long int ipLoEnr, long int ipHiEnr, long int ipOpac, double thresh, double *ainduc, double *rcool, t_phoHeat *photoHeat)
UNUSED const double EN1RYD
t_secondaries secondaries