Go to the source code of this file.
Data Structures | |
struct | t_helike |
Defines | |
#define | printflag (0) |
#define | HE1CSARRAY 10 |
#define | TRANSPROBMAGIC (60725) |
#define | COLLISMAGIC (30915) |
#define | CASEABMAGIC (51214) |
#define | N_(A_) (iso.quant_desig[ipHE_LIKE][nelem][A_].n) |
#define | L_(A_) (iso.quant_desig[ipHE_LIKE][nelem][A_].l) |
#define | S_(A_) (iso.quant_desig[ipHE_LIKE][nelem][A_].s) |
#define | J_(A_) ( (A_>=ipHe2p3P0 && A_<=ipHe2p3P2) ? (A_-3):0 ) |
#define | IPRAD 0 |
#define | IPCOLLIS 1 |
Functions | |
void | HeLike (void) |
void | HeLikeLevel (long nelem) |
void | HeLikeError (long nelem) |
void | HeCreate (void) |
void | prt_He_like_DeparCoef (long int nelem) |
void | prt_He_like_Pops (long int nelem) |
void | He1Autoionize (void) |
void | AGN_He1_CS (FILE *ioPun) |
void | putError (long nelem, long ipHi, long ipLo, long whichData, float errorToPut) |
Variables | |
EXTERN long int | max_num_levels |
EXTERN long int | max_n |
EXTERN long **** | QuantumNumbers2Index |
EXTERN struct t_helike | helike |
#define CASEABMAGIC (51214) |
the magic number for the table of He1 case A and B emissivities, YYMMDD
Definition at line 24 of file helike.h.
Referenced by GetStandardHeLines().
#define COLLISMAGIC (30915) |
the magic number for the table of He1 effective collision strengths, YYMMDD
Definition at line 22 of file helike.h.
Referenced by HeCreate().
#define HE1CSARRAY 10 |
temperatures at which CS for He1 are stored
Definition at line 18 of file helike.h.
Referenced by HeCreate().
#define IPCOLLIS 1 |
#define IPRAD 0 |
these static variables were moved from helike.c so that helikelevel.c could see them.
Definition at line 78 of file helike.h.
Referenced by ForbiddenAuls(), he_1trans(), HeCreate(), HeLikeError(), HeLikeLevel(), HeRecom(), and lines_helium().
#define L_ | ( | A_ | ) | (iso.quant_desig[ipHE_LIKE][nelem][A_].l) |
Definition at line 28 of file helike.h.
Referenced by cross_section(), DGEMM(), ForbiddenAuls(), HeCollid(), HeCreate(), HeLikeError(), HeRecom(), and printCustomAs().
#define N_ | ( | A_ | ) | (iso.quant_desig[ipHE_LIKE][nelem][A_].n) |
these macros are just an easy way to return the quantum numbers of a given level.
Definition at line 27 of file helike.h.
Referenced by cross_section(), ForbiddenAuls(), he_1trans(), HeCollid(), HeCreate(), HeLikeError(), HeLikeLevel(), HeRecom(), and printCustomAs().
#define printflag (0) |
Set this flag to one of the following values 0 don't print 1 print As 2 print only forbidden As 3 print Es 4 print threshold photoionization cross-sections 5 print radiative recombination coefficients. 6 print photoionization cross-section grids.
#define S_ | ( | A_ | ) | (iso.quant_desig[ipHE_LIKE][nelem][A_].s) |
Definition at line 29 of file helike.h.
Referenced by cross_section(), ForbiddenAuls(), HeCollid(), HeCreate(), HeRecom(), and printCustomAs().
#define TRANSPROBMAGIC (60725) |
the magic number for the table of He-like transition probabilities, YYMMDD
Definition at line 20 of file helike.h.
Referenced by HelikeTransProbSetup().
void AGN_He1_CS | ( | FILE * | ioPun | ) |
routine to punch table needed for AGN3 - collision strengths of HeI
*ioPun |
Definition at line 456 of file helike.cpp.
References DEBUG_ENTRY, DEBUG_EXIT, HeCSInterp(), ipELECTRON, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHe2s3S, ipHe3d1D, ipHe3d3D, ipHe3p3P, ipHe3s3S, phycon, t_phycon::te, and tfidle().
Referenced by PunchDo().
void He1Autoionize | ( | void | ) |
Calculate "EnergyWN" for 4 autoionizing levels of each "turned-on" element.
Definition at line 423 of file helike.cpp.
References dense, EmLine::EnergyWN, He1AutoLines, ipHELIUM, t_dense::lgElmtOn, and LIMELM.
void HeCreate | ( | void | ) |
create he-like series
Statistical weights, Line and level energies, and
transition probabilities are calculated in this loop.
Allowed decay conversion probabilities. See Robbins68b, Table 1.
These are not used by the code. They're simply calculated for
output, (so Ryan can make unbelieveably pretty tables.)
Definition at line 563 of file helike_create.cpp.
References abscf(), t_phycon::alogte, ASSERT, EmLine::Aul, t_helike::BranchRatio, t_helike::CascadeProb, cdEXIT(), chDataPath, t_elementnames::chElementSym, chLevel, chLine_LENGTH, COLL_CONST, COLLISMAGIC, EmLine::ColOvTot, EmLine::cool, t_helike::cs_elec_power, t_helike::cs_heplus, t_helike::cs_heplus_power, t_helike::cs_prot_power, t_helike::cs_proton, t_helike::CSTemp, EmLine::dampXvel, DEBUG_ENTRY, DEBUG_EXIT, defect(), dense, DoFSMixing(), EionWN, elementnames, EmisLines, EN1RYD, EmLine::EnergyErg, EmLine::EnergyK, EmLine::EnergyWN, t_helike::Error, t_helike::ErrorFactor, EthRyd, t_iso::ExtraLymanLines, FFmtRead(), FILENAME_PATH_LENGTH_2, GetGF(), EmLine::gf, EmLine::gHi, EmLine::gLo, HE1CSARRAY, He1Energies, he_1trans(), he_assign(), he_energy(), EmLine::heat, t_helike::HeCS, HeCSInterp(), helike, HeLikeError(), HelikeRecombSetup(), HelikeTransProbSetup(), HeRecom(), HydroEinstA(), INPUT_LINE_LENGTH, EmLine::IonStg, ioQQQ, EmLine::ipCont, ipCRDW, ipELECTRON, ipHe1s1S, ipHe2p1P, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHe2s1S, ipHe2s3S, ipHE_LIKE, ipHELIUM, ipIRON, ipOXYGEN, ipPRD, IPRAD, t_iso::ipResoRedist, EmLine::iRedisFun, iso, J_, Elevels::l, L_, t_helike::lgCompileRecomb, lgDataPathSet, t_dense::lgElmtOn, t_helike::lgFSM, t_trace::lgHeBug, t_helike::lgHugeCaseB, t_iso::lgInd2nu_On, t_helike::lgNoRecombInterp, t_helike::lgRandErrGen, t_helike::lgSetBenjamin, t_trace::lgTrace, t_helike::Lifetime, LIMELM, MALLOC, MAX2, MAX3, max_n, max_num_levels, MIN2, Elevels::n, N_, t_iso::n_HighestResolved_max, t_iso::nCollapsed_max, t_helike::nCS, EmLine::nelem, NHE1LEVELS, t_iso::nLyman, NTEMP, t_iso::numLevels_max, EmLine::opacity, path_not_set(), EmLine::Pdest, EmLine::Pelec_esc, EmLine::Pesc, phycon, PI4, t_iso::Pop2Ion, EmLine::PopHi, EmLine::PopLo, EmLine::PopOpc, POW2, printCustomAs(), EmLine::pump, putError(), t_helike::qTot2TripS, t_iso::quant_desig, QuantumNumbers2Index, t_helike::RadEffec, RefIndex(), RYD_INF, Elevels::s, S_, sexp(), t_helike::SigmaAtot, t_helike::SigmaCascadeProb, t_helike::SigmaRadEffec, t_iso::SmallA, t_iso::stat, t_phycon::te, TE1RYD, tfidle(), trace, WAVNRYD, EmLine::WLAng, EmLine::xIntensity, and t_iso::xIsoLevNIonRyd.
Referenced by ContCreatePointers().
void HeLike | ( | void | ) |
He-like main routine to call HeLikeLevel and determine model he-like species atom level balance
Definition at line 130 of file helike.cpp.
References DEBUG_ENTRY, dense, EmisLines, t_dense::gas_phase, HeCollid(), helike, HeLikeError(), HeLikeLevel(), HeRecom(), t_dense::IonHigh, t_dense::IonLow, ipH1s, ipHe1s1S, ipHe2s3S, ipHE_LIKE, ipHELIUM, iso, iso_continuum_lower(), iso_ionize_recombine(), iso_photo(), t_dense::lgElmtOn, t_helike::lgRandErrGen, t_dense::lgSetIoniz, LIMELM, t_iso::nLyaLevel, t_iso::numLevels_max, nzone, t_iso::Pop2Ion, t_iso::pop_ion_ov_neut, EmLine::PopHi, EmLine::PopLo, EmLine::PopOpc, t_dense::SetIoniz, SMALLFLOAT, t_dense::xIonDense, and t_iso::xIonSimple.
Referenced by ConvBase().
void HeLikeError | ( | long | nelem | ) |
HeLikeError generate gaussian errors
nelem |
Definition at line 1098 of file helike_level.cpp.
References ASSERT, t_helike::Error, t_helike::ErrorFactor, helike, ipHe1s1S, ipHe2s3S, ipHE_LIKE, IPRAD, iso, L_, t_helike::lgHugeCaseB, MyGaussRand(), N_, t_iso::n_HighestResolved_max, t_iso::numLevels_max, and putError().
Referenced by HeCreate(), and HeLike().
void HeLikeLevel | ( | long | nelem | ) |
HeLikeLevel level populations
nelem |
Definition at line 31 of file helike_level.cpp.
References AMAT, amat, ASSERT, atmdat, EmLine::Aul, BIGDOUBLE, t_iso::Boltzmann, cdEXIT(), t_iso::chTypeAtomSet, t_iso::chTypeAtomUsed, t_iso::ColIoniz, t_ionbal::CollIonRate_Ground, EmLine::ColUL, ContNegative(), conv, t_secondaries::csupra, DEBUG_ENTRY, DEBUG_EXIT, dense, t_iso::DepartCoef, dynamics, E, t_dense::eden, t_dense::EdenHCorr, EmisLines, t_helike::ErrorFactor, findspecies(), fnzone, t_he::frac_he0dest_23S, t_he::frac_he0dest_23S_photo, t_iso::gamnc, getrf_wrapper(), getrs_wrapper(), EmLine::gHi, EmLine::gLo, t_atmdat::HCharExcRecTo, he, t_atmdat::HeCharExcRecTo, t_atmdat::HeCharExcRecTotal, helike, ionbal, t_dense::IonHigh, t_dense::IonLow, ioQQQ, ipCARBON, IPCOLLIS, ipH1s, ipHe1s1S, ipHe2p1P, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHe2s1S, ipHe2s3S, ipHE_LIKE, ipHELIUM, ipHYDROGEN, t_trace::ipIsoTrace, ipiv, IPRAD, iso, KillIfBelowPlasma, Elevels::l, t_dynamics::lgAdvection, t_iso::lgColl_excite, t_helike::lgCritDensLMix, t_helike::lgCS_Vriens, t_helike::lgFSM, t_trace::lgHeBug, t_iso::lgInd2nu_On, t_dynamics::lgISO, t_trace::lgIsoTraceFull, t_helike::lgRandErrGen, t_conv::lgSearch, t_helike::lgSetBenjamin, t_dense::lgSetIoniz, t_trace::lgTrace, t_helike::Lifetime, LIMELM, MALLOC, MAX2, max_n, max_num_levels, MIN2, Elevels::n, N_, t_iso::n_HighestResolved_local, t_iso::n_HighestResolved_max, t_iso::nCollapsed_local, t_iso::nCollapsed_max, t_iso::numLevels_local, t_iso::numLevels_max, t_he::nzone, nzone, EmLine::ots, PARALLEL, EmLine::Pdest, EmLine::Pelec_esc, EmLine::Pesc, phycon, t_iso::Pop2Ion, t_iso::pop_ion_ov_neut, EmLine::PopHi, EmLine::PopLo, t_iso::PopLTE, EmLine::PopOpc, t_helike::qTot2TripS, t_iso::quant_desig, QuantumNumbers2Index, t_dynamics::Rate, t_iso::RateCont2Level, t_ionbal::RateIonizTot, t_iso::RateLevel2Cont, t_ionbal::RateRecomTot, Elevels::s, SDIV(), secondaries, ShowMe(), SMALLDOUBLE, SMALLFLOAT, t_dynamics::Source, t_iso::stat, t_phycon::te, trace, t_iso::TwoNu_induc_dn, t_iso::TwoNu_induc_up, WAVNRYD, t_dense::xIonDense, t_iso::xIonSimple, and z.
Referenced by HeLike().
void prt_He_like_DeparCoef | ( | long int | nelem | ) |
routine to print departure coefficients for he-like species
nelem |
Definition at line 506 of file helike.cpp.
References ASSERT, t_elementnames::chElementSym, t_iso::DepartCoef, elementnames, ioQQQ, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHE_LIKE, iso, Elevels::n, t_iso::n_HighestResolved_local, t_iso::nCollapsed_local, t_iso::numLevels_local, PrintEfmt(), t_iso::quant_desig, and QuantumNumbers2Index.
Referenced by PrtZone().
void prt_He_like_Pops | ( | long int | nelem | ) |
routine to print level pops for he-like species
nelem |
Definition at line 568 of file helike.cpp.
References ASSERT, t_elementnames::chElementSym, elementnames, ioQQQ, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHE_LIKE, iso, Elevels::n, t_iso::n_HighestResolved_local, t_iso::nCollapsed_local, t_iso::numLevels_local, t_iso::Pop2Ion, PrintEfmt(), t_iso::quant_desig, and QuantumNumbers2Index.
Referenced by PrtZone().
void putError | ( | long | nelem, | |
long | ipHi, | |||
long | ipLo, | |||
long | whichData, | |||
float | errorToPut | |||
) |
put an error bar on a piece of data, to be used with Gaussian random noise gen
nelem | ||
ipHi | ||
ipLo | ||
whichData | ||
errorToPu |
all of these are initialized in zero
Referenced by AtomCSInterp(), CS_l_mixing_PS64(), CS_l_mixing_VF01(), CS_VS80(), He_cross_section(), He_RRCoef_Te(), HeCollid(), HeCreate(), HeCSInterp(), HeLike(), HeLikeError(), HeLikeLevel(), HelikeRecombSetup(), HeRecom(), IonCSInterp(), iso_create(), lines_helium(), ParseAtomHeLike(), ParseCompile(), PrtComment(), putError(), SanityCheckBegin(), and zero().
EXTERN long int max_n |
EXTERN long int max_num_levels |
this becomes the most number of levels in any member of the he-like iso sequence
Definition at line 83 of file helike.h.
Referenced by HeCreate(), and HeLikeLevel().
EXTERN long**** QuantumNumbers2Index |
This array does the reverse of iso.quant_desig[ipHE_LIKE] Since separate j levels within a triplet term are only resolved in the case of 2tripP, allocating memory for a j dimension is unwarranted. Instead QuantumNumbers2Index[nelem][2][1][1] will point to 2^3P2, with 2^3P0 and 2^3P1 easily accessed by subtracting 2 and 1 respectively from the returned index.
Definition at line 90 of file helike.h.
Referenced by collision_strength_VF01(), DoFSMixing(), he_1trans(), he_assign(), HeCreate(), HeLikeLevel(), printCustomAs(), prt_He_like_DeparCoef(), and prt_He_like_Pops().