helike.h File Reference

This graph shows which files directly or indirectly include this file:

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 Documentation

#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

Definition at line 79 of file helike.h.

Referenced by HeCSInterp(), and HeLikeLevel().

#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 J_ ( A_   )     ( (A_>=ipHe2p3P0 && A_<=ipHe2p3P2) ? (A_-3):0 )

Definition at line 30 of file helike.h.

Referenced by DGEMM(), DGER(), DGETF2(), DGETRF(), DTRSM(), and HeCreate().

#define L_ ( A_   )     (iso.quant_desig[ipHE_LIKE][nelem][A_].l)

#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. 

Out files are "Helike___.txt" with the blank being, respectively, "As","fAs","Es","ThPCS","RR", and "PCSgrid."

Definition at line 15 of file helike.h.

#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().


Function Documentation

void AGN_He1_CS ( FILE *  ioPun  ) 

routine to punch table needed for AGN3 - collision strengths of HeI

Parameters:
*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().

Here is the call graph for this function:

void He1Autoionize ( void   ) 

Calculate "EnergyWN" for 4 autoionizing levels of each "turned-on" element.

Todo:
2 say where these come from...and do something with them!

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.)

Todo:
2 this is part of the induce 2nu problem, which must be fixed for both he and h sequences.

Todo:
2 - this structure is currently only used for helium itself... stuff numbers in for other elements, or drop the [nelem] dimension off of helike.HeCS

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().

Here is the call graph for this function:

void HeLike ( void   ) 

He-like main routine to call HeLikeLevel and determine model he-like species atom level balance

Todo:
2 remove this when this routine really controls helium itself

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().

Here is the call graph for this function:

void HeLikeError ( long  nelem  ) 

HeLikeError generate gaussian errors

Parameters:
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().

Here is the call graph for this function:

void HeLikeLevel ( long  nelem  ) 

HeLikeLevel level populations

Parameters:
nelem 

Todo:
2 Can't be used for helium sequence because suprathermals rate has not been split up into individual levels for helium sequence. So Secondaries structure must be extended to include helium levels before the below code can be implemented. This is not a pressing correction because total suprathermal is already included for the sequence, but this should not be put off for too long because it should not be too difficult to do correctly.

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().

Here is the call graph for this function:

void prt_He_like_DeparCoef ( long int  nelem  ) 

routine to print departure coefficients for he-like species

Parameters:
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().

Here is the call graph for this function:

void prt_He_like_Pops ( long int  nelem  ) 

routine to print level pops for he-like species

Parameters:
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().

Here is the call graph for this function:

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

Parameters:
nelem 
ipHi 
ipLo 
whichData 
errorToPu 


Variable Documentation

EXTERN struct t_helike helike

EXTERN long int max_n

Definition at line 83 of file helike.h.

Referenced by HeCreate(), and HeLikeLevel().

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().


Generated for cloudy by doxygen 1.5.9