36 map<std::string,std::vector<TransitionProxy> >
blends;
41 bool lgDoChecks =
true;
47 bool lgDoChecks )
const
65 double PhotEmit =
Emis().
Aul()*Ptot*(*
Hi()).Pop();
82 bool lgTransStackLine =
true;
84 nonScatteredFraction);
102 return rad_deexcit/(deexcit_loss + rad_deexcit);
119 fprintf(
ioQQQ,
" GetLineRec called with incorrect wavelength.\n" );
120 fprintf(
ioQQQ,
" index, call and get wl are %5ld%5ld%5ld\n",
133 return( GetLineRec_v );
148 "%10.10s Te%.2e eden%.1e CS%.2e Aul%.1e Tex%.2e cool%.1e het%.1e conopc%.1e albdo%.2e\n",
161 "Tin%.1e Tout%.1e Esc%.1e eEsc%.1e DesP%.1e Pump%.1e OTS%.1e PopL,U %.1e %.1e PopOpc%.1e\n",
179 double OccupationNumberLine_v;
193 OccupationNumberLine_v = ( (*t.
Hi()).Pop() / (*t.
Hi()).g() ) /
199 OccupationNumberLine_v = 0.;
203 return( OccupationNumberLine_v );
215 if( (*t.
Hi()).Pop() * (*t.
Lo()).Pop() > 0. )
217 TexcLine_v = ( (*t.
Hi()).Pop() / (*t.
Hi()).g() )/( (*t.
Lo()).Pop() / (*t.
Lo()).g() );
218 TexcLine_v = log(TexcLine_v);
222 TexcLine_v = - t.
EnergyK() / TexcLine_v;
229 return( TexcLine_v );
242 if( (*t.
Hi()).nelem() <= 0 )
246 if( chIonLbl_v[0]==
'\0' )
251 chIonLbl_v =
chIonLbl( (*t.
Hi()).nelem(), (*t.
Hi()).IonStg() );
257 string chIonLbl(
const long& nelem,
const long& IonStg)
263 ASSERT( IonStg >= 1 && IonStg <= nelem + 1 );
279 if( (*
Hi()).nelem() < 1 && (*
Hi()).IonStg() < 1 )
285 chSpecies =
chIonLbl( (*
Hi()).nelem(), (*
Hi()).IonStg() );
288 chSpecies.resize(
NCHLAB-1,
' ' );
295 return chSpecies +
" " + chWavLen;
314 return (*t.
Lo()).chConfig() +
" - " + (*t.
Hi()).chConfig();
333 chLabel = chLabelTemp;
381 ASSERT( xIntensity_in>=0. );
382 linadd(xIntensity_in,t.
WLAng(),
"Inwd",
'i',chComment);
389 double radiative_branching;
390 enum { lgNEW =
true };
400 radiative_branching = AulEscp/sinkrate;
404 radiative_branching = 0.;
430 PutLine(t, chComment, chLabelTemp, extra_s);
435 const char *chComment)
437 const char *chLabelTemp = NULL;
440 PutLine(t, chComment, chLabelTemp, extra_s);
531 *g = (
realnum)(0.29*(log(1.0+1.0/y) - 0.4/
POW2(y + 1.0))/exp(y));
574 *g = (
realnum)(0.6 + 0.28*(log(1.0+1.0/y) - 0.4/
POW2(y + 1.0)));
592 ion = (*t.
Hi()).IonStg();
595 const double gfLimit = 1e-8;
602 else if( t.
Emis().
gf() >= gfLimit )
double TexcLine(const TransitionProxy &t)
void DumpLine(const TransitionProxy &t)
string chIonLbl(const TransitionProxy &t)
realnum EnergyErg() const
realnum & Pelec_esc() const
double emit_frac(const TransitionProxy &t)
string chLineLbl(const TransitionProxy &t)
char chIonStage[LIMELM+1][CHARS_ION_STAGE]
void lindst(double xEmiss, realnum wavelength, const char *chLab, long int ipnt, char chInfo, bool lgOutToo, const char *chComment)
bool fp_equal_tol(sys_float x, sys_float y, sys_float tol)
static t_version & Inst()
t_elementnames elementnames
double xIonDense[LIMELM][LIMELM+1]
ColliderList colliders(dense)
realnum & EnergyWN() const
void PutCS(double cs, const TransitionProxy &t)
double & xIntensity() const
EmissionList::reference Emis() const
LinSv * linadd(double xEmiss, realnum wavelength, const char *chLab, char chInfo, const char *chComment)
STATIC void gbar0(double ex, realnum *g)
string GenerateTransitionConfiguration(const TransitionProxy &t)
qList::iterator Hi() const
void setLo(int ipLo) const
STATIC void gbar1(double ex, realnum *g)
char chElementSym[LIMELM][CHARS_ELEMENT_SYM]
double GetLineRec(long int ip, long int lWl)
void PutLine(const TransitionProxy &t, const char *chComment, const char *chLabelTemp, const ExtraInten &extra)
void setHi(int ipHi) const
void sprt_wl(char *chString, realnum wl)
qList::iterator Lo() const
void EmLineZero(EmissionList::reference t)
double OccupationNumberLine(const TransitionProxy &t)
realnum Pesc_total() const
void CollisionJunk(const CollisionProxy &t)
realnum & col_str() const
realnum RecCoefCNO[4][NRECCOEFCNO]
CollisionProxy Coll() const
void outline(double nonScatteredFraction, bool lgDoChecks) const
#define DEBUG_ENTRY(funcname)
void outline_base(double dampXvel, double damp, bool lgTransStackLine, long int ip, double phots, realnum inwd, double nonScatteredFraction)
void TauZero(EmissionList::reference t)
int fprintf(const Output &stream, const char *format,...)
map< std::string, std::vector< TransitionProxy > > blends
double & ColOvTot() const
realnum & FracInwd() const
void LineConvRate2CS(const TransitionProxy &t, realnum rate)
void CollisionZero(const CollisionProxy &t)
double ColUL(const ColliderList &colls) const
void AddLine2Stack() const
void MakeCS(const TransitionProxy &t)
void outline_resonance() const