23 long int i, nelem, ipHi, ipLo;
34 fprintf(
ioQQQ,
" lines_hydro called\n" );
42 " start H -like iso sequence ");
45 " total collisional cooling due to all hydrogen lines ");
48 " total collisional heating due to all hydrogen lines ");
51 " total collisional cooling due to all HeII lines ");
54 " total collisional heating due to all HeII lines ");
63 "collisionally excited La cooling ");
66 " collisionally de-excited La heating ");
69 " cooling due to n>2 Lyman lines ");
72 " heating due to n>2 Lyman lines ");
75 " cooling due to n>3 Balmer lines ");
78 " heating due to n>3 Balmer lines ");
81 " cooling due to higher Paschen lines ");
84 " heating due to higher Paschen lines ");
97 "Lyaa contribution from suprathermal secondaries from ground ");
103 linadd(pump,4861,
"Pump",
'r',
104 "part of Hbeta formed by continuum pumping");
107 "collision ionization cooling of hydrogen ");
110 " this is the heating due to 3-body recombination ");
113 "collision ionization cooling of He+ ");
116 " this is the heating due to 3-body recombination onto He+");
120 " Stark broadening contribution to line ");
124 " Stark broadening contribution to line ");
128 "Stark broadening contribution to line ");
132 " Stark broadening contribution to line ");
140 "Stark broadening part of line");
148 " portion of line lost due to absorp by background opacity ");
152 "Ha destroyed by background opacity");
159 "portion of line lost due to absorb by background opacity");
165 "portion of line lost due to absorb by background opacity");
170 "portion of line lost due to absorb by background opacity");
174 "Ly-alpha destroyed by overlap with FeII " );
177 " simple high-density case b intensity of Ly-alpha, no two photon ");
203 "Case B H-beta computed from Q(H) and specified covering factor");
218 "Ly-alpha from Q(H), high-dens lim, specified covering factor" );
222 for( nelem=ipISO; nelem <
LIMELM; nelem++ )
230 for( ipLo=0; ipLo < ipHi; ipLo++ )
238 iso_sp[ipISO][nelem].
st[ipHi].Pop()*
253 for( nelem=0; nelem <
LIMELM; nelem++ )
264 index_of_nHi_P = ipHi;
269 for( ipLo=0; ipLo < ipHi; ipLo++ )
282 if( ipHi == index_of_nHi_P && ipLo == index_of_nLo_S )
307 lindst(hbetab, -4861 ,
"CaBo",
309 " this is old case b based on Ferland (1980) PASP ");
323 " old prediction of He II 1640, Case B at low densities");
327 em = 2.52e-20/(pow(
phycon.
te,1.05881));
330 lindst(em,-4686,
"CaBo", 1,
'i',
false,
331 " old prediction of He II 4686, Case B at low densities");
337 for(nelem=0; nelem<
HS_NZ; ++nelem )
344 for( nelem=0; nelem <
LIMELM; nelem++ )
351 if( nelem <
HS_NZ && (nelem<2 || nelem>4) )
354 for( iCase=0; iCase<2; ++iCase )
356 char chAB[2]={
'A',
'B'};
368 double case_b_Intensity;
369 long int ipCHi , ipCLo;
381 if( case_b_Intensity<=0. )
384 case_b_Intensity = 0.;
389 if( iCase==0 && ipLo==1 )
403 chLab[3] = chAB[iCase];
414 else if( ipCLo == 2 )
419 else if( ipCLo == 1 || ipCLo == 0 )
431 " case a or case b from Hummer & Storey tables" );
442 chIonLbl(chLabel, nelem+1, nelem+1-ipISO);
448 linadd( tnu->AulTotal * tnu->E2nu *
EN1RYD * (*tnu->Pop),
450 " two photon continuum ");
452 linadd( tnu->induc_dn * tnu->E2nu *
EN1RYD * (*tnu->Pop),
454 " induced two photon emission ");
472 for( ipHi=ipLo+1; ipHi < nLoop; ipHi++ )
479 if( ipHi==1 && ipLo==0 )
486 "predicted line, all processes included");
497 "predicted line, all processes included");
505 fprintf(
ioQQQ,
" lines_hydro returns\n" );
double atmdat_HS_caseB(long int iHi, long int iLo, long int iZ, double TempIn, double DenIn, char chCase)
#define DEBUG_ENTRY(funcname)
double & xIntensity() const
realnum & Pelec_esc() const
realnum EnergyErg() const
EmissionList::reference Emis() const
TransitionProxy trans(const long ipHi, const long ipLo)
long int n_HighestResolved_max
vector< two_photon > TwoNu
multi_arr< long, 3 > QuantumNumbers2Index
t_iso_sp iso_sp[NISO][LIMELM]
long int StuffComment(const char *chComment)
void linadd(double xInten, realnum wavelength, const char *chLab, char chInfo, const char *chComment)
void lindst(double xInten, realnum wavelength, const char *chLab, long int ipnt, char chInfo, bool lgOutToo, const char *chComment)
UNUSED const double EN1RYD
t_secondaries secondaries
bool lgHCaseBOK[2][HS_NZ]
realnum WaveLengthCaseB[8][25][24]
long int IonHigh[LIMELM+1]
double xIonDense[LIMELM][LIMELM+1]
realnum H_ion_frac_collis
void PutLine(const TransitionProxy &t, const char *chComment, const char *chLabelTemp)
void GenerateTransitionConfiguration(const TransitionProxy &t, char *chComment)
void chIonLbl(char *chIonLbl_v, const TransitionProxy &t)