39 static double gS2[5]={4.,4.,6.,2.,4.};
40 static double exS2[4]={14851.9,31.5,9640.8,48.6};
74 (*(*TauDummy).Hi()).g() = 0.;
135 double Cooling , CoolingDeriv;
136 atom_pop5(gS2,exS2,sii_cs4S32D3,sii_cs4S32D5,sii_cs4S32P1,sii_cs4S32P3,sii_cs2D32D5,
137 sii_cs2D32P1,sii_cs2D32P3,sii_cs2D52P1,sii_cs2D52P3,sii_cs2P12P3,
138 a21,a31,a41,a51,3.35e-7,a42,a52,a43,a53,
139 1.03e-6,p,
dense.xIonDense[
ipSULPHUR][1], &Cooling , &CoolingDeriv, 0.,0.,0.,0.);
153 thermal.dCooldT += CoolingDeriv;
162 double siii_cs3P03P1,
210 siii_cs3P01S0+siii_cs3P11S0+siii_cs3P21S0,siii_cs1D21S0,a21,a31,a32,
211 1.55e4,2.28e4,&pop2,
dense.xIonDense[
ipSULPHUR][2],0.,0.,0.)*2.22*3.15e-12;
237 static vector< pair<TransitionList::iterator,double> > S4Pump;
247 if( (*
TauLine2[i].Hi()).nelem() == 16 && (*
TauLine2[i].Hi()).IonStg() == 4 )
256 branch_ratio = 2./3.;
258 branch_ratio = 1./2.;
260 branch_ratio = 1./6.;
263 pair<TransitionList::iterator,double> pp2(
TauLine2.begin()+i, branch_ratio );
264 S4Pump.push_back( pp2 );
270 double pump_rate = 0.;
272 for( s4p=S4Pump.begin(); s4p != S4Pump.end(); ++s4p )
275 double branch_ratio = s4p->second;
276 pump_rate += (*t).Emis().pump()*branch_ratio;
279 (*t).WLAng , (*t).Emis().pump()*branch_ratio );
292 1.168 , 3.366 , 2.924 , 7.233 ,
338 double& sii_cs4S32D5,
339 double& sii_cs4S32P1,
340 double& sii_cs4S32P3,
341 double& sii_cs2D32D5,
342 double& sii_cs2D32P1,
343 double& sii_cs2D52P1,
344 double& sii_cs2D32P3,
345 double& sii_cs2D52P3,
346 double& sii_cs2P12P3,
360 telogn1 =
MAX2(3.5,telog);
361 telogn1 =
MIN2(telogn1,5.0);
367 sii_cs2D52P3 =
MIN2(5.82,a+b*telogn1+c*telogn1*telogn1);
368 sii_cs2D52P3 =
MAX2(3.87,sii_cs2D52P3);
374 sii_cs2D32P3 =
MIN2(3.38,a+b*telogn1+c*telogn1*telogn1);
375 sii_cs2D32P3 =
MAX2(2.24,sii_cs2D32P3);
381 sii_cs2D52P1 =
MIN2(2.46,a+b*telogn1+c*telogn1*telogn1);
382 sii_cs2D52P1 =
MAX2(1.64,sii_cs2D52P1);
388 sii_cs2D32P1 =
MIN2(2.14,a+b*telogn1+c*telogn1*telogn1);
389 sii_cs2D32P1 =
MAX2(1.42,sii_cs2D32P1);
395 sii_cs2P12P3 =
MIN2(3.07,a+b/telogn1+c/(telogn1*telogn1));
396 sii_cs2P12P3 =
MAX2(1.85,sii_cs2P12P3);
402 sii_cs2D32D5 =
MIN2(8.01,a+b/telogn1+c/(telogn1*telogn1));
403 sii_cs2D32D5 =
MAX2(4.79,sii_cs2D32D5);
409 sii_cs4S32P3 = a+b*pow(telogn1,c);
410 sii_cs4S32P3 =
MIN2(2.46,sii_cs4S32P3);
411 sii_cs4S32P3 =
MAX2(1.45,sii_cs4S32P3);
414 sii_cs4S32P1 = 0.5*sii_cs4S32P3;
420 sii_cs4S32D5 = a+b*pow(telogn1,c);
421 sii_cs4S32D5 =
MIN2(4.77,sii_cs4S32D5);
422 sii_cs4S32D5 =
MAX2(2.54,sii_cs4S32D5);
425 sii_cs4S32D3 = sii_cs4S32D5/1.5;
428 sii_cs4S34P =
MIN2(8.46,-4.9416304+47.01064/
phycon.alogte);
429 sii_cs4S34P =
MAX2(4.466,sii_cs4S34P);
435 double& siii_cs3P03P2,
436 double& siii_cs3P01D2,
437 double& siii_cs3P01S0,
438 double& siii_cs3P13P2,
439 double& siii_cs3P11D2,
440 double& siii_cs3P11S0,
441 double& siii_cs3P21D2,
442 double& siii_cs3P21S0,
443 double& siii_cs1D21S0,
445 double& siii_cs3P5S2)
458 siii_cs3P03P1 = 4.44;
459 siii_cs3P03P2 = 1.41;
460 siii_cs3P01D2 = 0.802;
461 siii_cs3P01S0 = 0.129;
462 siii_cs3P13P2 = 8.72;
463 siii_cs3P11D2 = 2.41;
464 siii_cs3P11S0 = 0.388;
465 siii_cs3P21D2 = 4.01;
466 siii_cs3P21S0 = 0.646;
467 siii_cs1D21S0 = 1.31;
469 else if(
phycon.te > 1e5 )
472 siii_cs3P03P2 = 1.24;
473 siii_cs3P01D2 = 0.664;
474 siii_cs3P01S0 = 0.136;
475 siii_cs3P13P2 = 5.13;
476 siii_cs3P11D2 = 1.99;
477 siii_cs3P11S0 = 0.407;
478 siii_cs3P21D2 = 3.32;
479 siii_cs3P21S0 = 0.679;
480 siii_cs1D21S0 = 1.84;
487 siii_cs3P01S0 = 0.109*
phycon.te02;
490 siii_cs3P11S0 = 0.327*
phycon.te02;
492 siii_cs3P21S0 = 0.545*
phycon.te02;
538 siii_cs3P5S2 = 9.392/
phycon.te10;
void atom_level2(const TransitionProxy &t)
void atom_level3(const TransitionProxy &t10, const TransitionProxy &t21, const TransitionProxy &t20)
double atom_pop3(double g1, double g2, double g3, double o12, double o13, double o23, double a21, double a31, double a32, double Tex12, double Tex23, realnum *pop2, double abund, double gam2, double r12, double r13)
void atom_pop5(const double g[], const double EnerWN[], double cs12, double cs13, double cs14, double cs15, double cs23, double cs24, double cs25, double cs34, double cs35, double cs45, double a21, double a31, double a41, double a51, double a32, double a42, double a52, double a43, double a53, double a54, double p[], realnum abund, double *Cooling, double *CoolingDeriv, double pump01, double pump02, double pump03, double pump04)
void AtomSeqBeryllium(double cs12, double cs13, double cs23, const TransitionProxy &t, double a30)
void AtomSeqBoron(const TransitionProxy &t10, const TransitionProxy &t20, const TransitionProxy &t30, const TransitionProxy &t21, const TransitionProxy &t31, const TransitionProxy &t41, double cs40, double cs32, double cs42, double cs43, double pump_rate, const char *chLabel)
int dprintf(FILE *fp, const char *format,...)
bool fp_equal(sys_float x, sys_float y, int n=3)
NORETURN void TotalInsanity(void)
#define DEBUG_ENTRY(funcname)
TransitionProxy::iterator iterator
void CoolAdd(const char *chLabel, realnum lambda, double cool)
void siii_cs(double &siii_cs3P03P1, double &siii_cs3P03P2, double &siii_cs3P01D2, double &siii_cs3P01S0, double &siii_cs3P13P2, double &siii_cs3P11D2, double &siii_cs3P11S0, double &siii_cs3P21D2, double &siii_cs3P21S0, double &siii_cs1D21S0, double &siii_cs3P3D, double &siii_cs3P5S2)
void sii_cs(double &sii_cs4S32D3, double &sii_cs4S32D5, double &sii_cs4S32P1, double &sii_cs4S32P3, double &sii_cs2D32D5, double &sii_cs2D32P1, double &sii_cs2D52P1, double &sii_cs2D32P3, double &sii_cs2D52P3, double &sii_cs2P12P3, double &sii_cs4S34P)
void siv_cs(double &siv_cs2P12P3)
void sviii_cs(double &sviii_cs2P32P1)
TransitionList TauLine2("TauLine2", &AnonStates)
TransitionProxy::iterator TauDummy
TransitionList TauLines("TauLines", &AnonStates)
void LineConvRate2CS(const TransitionProxy &t, realnum rate)
void DumpLine(const TransitionProxy &t)
void PutCS(double cs, const TransitionProxy &t)