30 ASSERT( chStat ==
's' || chStat ==
'v' );
32 ipOffset = ipOpac - ipLowLim;
41 if( abundance <= 0. || (chStat==
's' && !
opac.lgRedoStatic) )
49 for( i=ipLowLim-1; i < limit; i++ )
51 opac.opacity_abs[i] +=
opac.OpacStack[i+ipOffset]*abundance;
56 for( i=ipLowLim-1; i < limit; i++ )
58 opac.OpacStatic[i] +=
opac.OpacStack[i+ipOffset]*abundance;
93 ASSERT( chStat ==
'v' || chStat ==
's' );
97 if( abundance <= 0. || (chStat==
's' && !
opac.lgRedoStatic) )
102 k = ipOpac - ipLowEnergy;
105 if( (DepartCoef > 1e-35 &&
rfield.lgInducProcess) &&
hydro.lgHInducImp )
110 double DepartCoefInv = 1./DepartCoef;
114 for( i=ipLowEnergy-1; i < iup; i++ )
116 opac.opacity_abs[i] +=
opac.OpacStack[i+k]*abundance*
117 MAX2(0. , 1.-
rfield.ContBoltz[i]*DepartCoefInv);
123 for( i=ipLowEnergy-1; i < iup; i++ )
125 opac.OpacStatic[i] +=
opac.OpacStack[i+k]*abundance*
126 MAX2(0. , 1.-
rfield.ContBoltz[i]*DepartCoefInv);
140 for( i=ipLowEnergy-1; i < iup; i++ )
142 opac.opacity_abs[i] +=
opac.OpacStack[i+k]*abundance;
147 for( i=ipLowEnergy-1; i < iup; i++ )
149 opac.OpacStatic[i] +=
opac.OpacStack[i+k]*abundance;