46 ion = (*t.
Hi()).IonStg();
47 nelem = (*t.
Hi()).nelem();
50 AbunxIon =
dense.xIonDense[nelem-1][ion-1];
56 boltz =
rfield.ContBoltz[ip-1];
75 if( omega*AbunxIon < 1e-30 || r < 1e-25 )
78 (*t.
Lo()).Pop() = AbunxIon;
88 atoms.PopLevels[0] = AbunxIon;
89 atoms.PopLevels[1] = 0.;
90 atoms.DepLTELevels[0] = 1.;
91 atoms.DepLTELevels[1] = 0.;
111 ASSERT( g1 > 0. && g2 > 0. );
114 col21 =
dense.cdsqte*omega;
116 col12 = col21/g1*boltz;
128 r = (a21 + col21 + ri21)/rate12;
131 pfs2 = AbunxIon/(r + 1.);
132 atoms.PopLevels[1] = pfs2;
133 (*t.
Hi()).Pop() = pfs2;
137 atoms.PopLevels[0] = pfs1;
141 (*t.
Lo()).Pop() =
atoms.PopLevels[0];
146 atoms.DepLTELevels[0] = 1.;
147 if( boltz > 1e-20 &&
atoms.PopLevels[1] > 1e-20 )
156 atoms.DepLTELevels[1] = 0.;
185 coolng = t.
EnergyErg()*AbunxIon*col12*(a21 + ri21)/(a21 + col21 + ri21 + rate12);
void atom_level2(const TransitionProxy &t)
sys_float sexp(sys_float x)
#define DEBUG_ENTRY(funcname)
realnum & col_str() const
double & ColOvTot() const
double & xIntensity() const
realnum & Pelec_esc() const
CollisionProxy Coll() const
realnum EnergyErg() const
qList::iterator Lo() const
qList::iterator Hi() const
EmissionList::reference Emis() const
void CoolAdd(const char *chLabel, realnum lambda, double cool)
void chIonLbl(char *chIonLbl_v, const TransitionProxy &t)