Cloudy
Spectral Synthesis Code for Astrophysics
|
#include "cddefines.h"
#include "atmdat_adfa.h"
#include "dense.h"
#include "helike.h"
#include "helike_einsta.h"
#include "hydro_bauman.h"
#include "hydrogenic.h"
#include "hydroeinsta.h"
#include "hydro_tbl.h"
#include "iso.h"
#include "opacity.h"
#include "phycon.h"
#include "taulines.h"
#include "mole.h"
#include "freebound.h"
#include "lines_service.h"
#include "prt.h"
#include "save.h"
#include "rfield.h"
Functions | |
STATIC void | iso_zero (void) |
STATIC void | iso_allocate (void) |
STATIC void | iso_assign_quantum_numbers (void) |
STATIC void | FillExtraLymanLine (const TransitionList::iterator &t, long ipISO, long nelem, long nHi) |
STATIC void | iso_satellite (void) |
static vector< species > | isoSpecies (NISO) |
int | getL (char l) |
void | iso_setRedisFun (long ipISO, long nelem, long ipLo, long ipHi) |
void | iso_setOpacity (long ipISO, long nelem, long ipLo, long ipHi) |
double | hydro_energy (long nelem, long n, long l, long s, long j) |
void | iso_create () |
double | iso_state_lifetime (long ipISO, long nelem, long n, long l) |
void | iso_cascade (long ipISO, long nelem) |
void | iso_satellite_update (long nelem) |
long | iso_get_total_num_levels (long ipISO, long nmaxResolved, long numCollapsed) |
void | iso_update_num_levels (long ipISO, long nelem) |
Variables | |
static const char | chL [21] = {'S','P','D','F','G','H','I','K','L','M','N','O','Q','R','T','U','V','W','X','Y','Z'} |
STATIC void FillExtraLymanLine | ( | const TransitionList::iterator & | t, |
long | ipISO, | ||
long | nelem, | ||
long | nHi | ||
) |
References abscf(), DEBUG_ENTRY, energy(), t_iso_sp::fb, fprintf(), GetGF(), H_Einstein_A(), ioQQQ, ipH_LIKE, ipHELIUM, t_isoCTRL::ipResoRedist, iso_ctrl, iso_sp, iso_state_lifetime(), LEVEL_INACTIVE, t_isoCTRL::nLyaLevel, pow(), POW2, t_iso_sp::st, and wn2ang().
Referenced by iso_create().
int getL | ( | char | l | ) |
References chL, and toupper().
Referenced by HeCollidSetup().
double hydro_energy | ( | long | nelem, |
long | n, | ||
long | l, | ||
long | s, | ||
long | j | ||
) |
References ASSERT, DEBUG_ENTRY, t_iso_sp::energy_ioniz(), fprintf(), ioQQQ, ipH_LIKE, iso_sp, POW2, and QN2ind().
Referenced by iso_create(), and lines_hydro().
STATIC void iso_allocate | ( | void | ) |
References multi_arr< T, d, ALLOC, lgBC >::alloc(), AllTransitions, AnonStates, ASSERT, t_iso_sp::BranchRatio, t_iso_sp::CascadeProb, t_isoCTRL::chISO, DEBUG_ENTRY, dense, t_iso_sp::ex, ExtraLymanLines, t_iso_sp::fb, findspecies(), t_save::img_matrix, molecule::index, ipExtraLymanLines, ipH_LIKE, ipSatelliteLines, t_iso_sp::ipTrans, iso_ctrl, iso_sp, isoSpecies(), t_isoCTRL::lgDielRecom, t_dense::lgElmtOn, t_iso_sp::lgImgMatrix, t_iso_sp::lgPrtMatrix, LIMELM, makeChemical(), t_prt::matrix, mole, NISO, nLine, t_isoCTRL::nLyman, t_isoCTRL::nLyman_alloc, null_mole, t_iso_sp::numLevels_alloc, t_iso_sp::numLevels_local, t_iso_sp::numLevels_max, prt, multi_arr< T, d, ALLOC, lgBC >::reserve(), SatelliteLines, save, t_prt_matrix::species, t_mole_local::species, t_iso_sp::st, t_iso_sp::tr, and Transitions.
Referenced by iso_create().
STATIC void iso_assign_quantum_numbers | ( | void | ) |
References ASSERT, chL, DEBUG_ENTRY, dense, ipDOUBLET, ipH1s, ipH2p, ipH_LIKE, ipHE_LIKE, ipHELIUM, ipHYDROGEN, ipSINGLET, ipTRIPLET, iso_sp, t_dense::lgElmtOn, LIMELM, MIN2, t_iso_sp::n_HighestResolved_max, NISO, t_iso_sp::numLevels_max, POW2, S, t_iso_sp::st, and TotalInsanity().
Referenced by iso_create().
void iso_cascade | ( | long | ipISO, |
long | nelem | ||
) |
iso_cascade - calculate cascade probabilities, branching ratios, and associated errors
ipISO | |
nelem |
Cascade probabilities are as defined in Robbins 68, generalized here for cascade probability for any iso sequence. >>refer He triplets Robbins, R.R. 1968, ApJ 151, 497R >>refer He triplets Robbins, R.R. 1968a, ApJ 151, 511R
References ASSERT, EmissionProxy::Aul(), t_iso_sp::BranchRatio, t_iso_sp::CascadeProb, DEBUG_ENTRY, TransitionProxy::Emis(), t_iso_sp::ex, t_iso_sp::fb, fprintf(), ioQQQ, ipH_LIKE, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHE_LIKE, ipHELIUM, IPRAD, iso_ctrl, iso_sp, L_, t_opac::lgCaseB, t_isoCTRL::lgRandErrGen, N_, t_iso_sp::n_HighestResolved_max, t_iso_sp::nCollapsed_max, t_iso_sp::numLevels_max, opac, pow2(), S, S_, t_isoCTRL::SmallA, and t_iso_sp::trans().
Referenced by iso_collapsed_update(), and iso_create().
void iso_create | ( | void | ) |
iso_create create storage space data for iso sequences, 1 one time per coreload
References TransitionProxy::AddLine2Stack(), ASSERT, atmdat, EmissionProxy::Aul(), t_atmdat::chdBaseSources, EmissionProxy::dampXvel(), DEBUG_ENTRY, dense, TransitionProxy::Emis(), TransitionProxy::EnergyWN(), t_iso_sp::ex, ExtraLymanLines, t_iso_sp::fb, FillExtraLymanLine(), fprintf(), HeCollidSetup(), helike_energy(), helike_transprob(), HelikeTransProbSetup(), hydro_energy(), hydro_transprob(), Singleton< t_hydro_tbl >::Inst(), ioQQQ, TransitionProxy::ipEmis(), ipExtraLymanLines, ipH1s, ipH_LIKE, ipHE_LIKE, ipHYDROGEN, t_mesh::isEnergyBound(), iso_allocate(), iso_assign_quantum_numbers(), iso_cascade(), iso_ctrl, iso_init_energies(), iso_recomb_alloc(), iso_recomb_auxiliary_free(), iso_recomb_setup(), iso_satellite(), iso_satellite_update(), iso_setOpacity(), iso_setRedisFun(), iso_sp, iso_zero(), J_, L_, t_atmdat::lgdBaseSourceExists, t_dense::lgElmtOn, lgHydroAlloc, LIMELM, N_, NISO, t_isoCTRL::nLyman_alloc, t_iso_sp::numLevels_max, rfield, S_, t_isoCTRL::SmallA, SMALLFLOAT, t_iso_sp::st, t_isoCTRL::stat_ion, TotalInsanity(), t_iso_sp::trans(), TransitionProxy::WLAng(), t_hydro_tbl::wn(), and wn2ang().
Referenced by ContCreatePointers().
long iso_get_total_num_levels | ( | long | ipISO, |
long | nmaxResolved, | ||
long | numCollapsed | ||
) |
iso_get_total_num_levels - get total number of levels with the given number of resolved and collapsed
ipISO | |
nmaxResolved | |
numCollapsed |
References DEBUG_ENTRY, ipH_LIKE, ipHE_LIKE, and TotalInsanity().
Referenced by iso_continuum_lower(), iso_recomb_alloc(), and iso_update_num_levels().
STATIC void iso_satellite | ( | void | ) |
References ASSERT, DEBUG_ENTRY, dense, fixit, ipCRDW, ipHE_LIKE, ipSatelliteLines, iso_ctrl, iso_sp, t_isoCTRL::lgDielRecom, t_dense::lgElmtOn, LIMELM, NISO, t_iso_sp::numLevels_max, SatelliteLines, and t_iso_sp::st.
Referenced by iso_create().
void iso_satellite_update | ( | long | nelem | ) |
iso_satellite_update - update iso satellite line information
References abscf(), t_dense::AtomicWeight, DEBUG_ENTRY, dense, dsexp(), t_dense::eden, t_iso_sp::fb, GetGF(), ipHE_LIKE, ipSatelliteLines, iso_ctrl, iso_sp, t_isoCTRL::lgDielRecom, t_dense::lgElmtOn, max(), MIN2, NISO, t_iso_sp::numLevels_max, phycon, powpq(), SatelliteLines, t_isoCTRL::SmallA, SMALLDOUBLE, SMALLFLOAT, t_isoCTRL::stat_ion, t_phycon::te32, t_phycon::te_ryd, and t_dense::xIonDense.
Referenced by ion_solver(), iso_create(), and lines().
void iso_setOpacity | ( | long | ipISO, |
long | nelem, | ||
long | ipLo, | ||
long | ipHi | ||
) |
iso_setOpacity compute line opacity
ipISO | isoelectronic sequence |
nelem | element index |
ipLo | index to lower state |
ipHi | index to upper state |
References abscf(), ASSERT, TransitionProxy::Emis(), TransitionProxy::EnergyWN(), GetGF(), EmissionProxy::gf(), iso_ctrl, iso_sp, EmissionProxy::opacity(), t_isoCTRL::SmallA, and t_iso_sp::trans().
Referenced by iso_create().
void iso_setRedisFun | ( | long | ipISO, |
long | nelem, | ||
long | ipLo, | ||
long | ipHi | ||
) |
iso_setRedisFun assign the line redistribution function type
ipISO | isoelectronic sequence |
nelem | element index |
ipLo | index to lower state |
ipHi | index to upper state |
References TransitionProxy::Emis(), ipH_LIKE, ipHYDROGEN, ipLY_A, t_isoCTRL::ipLyaRedist, t_isoCTRL::ipResoRedist, t_isoCTRL::ipSubRedist, EmissionProxy::iRedisFun(), iso_ctrl, iso_sp, t_isoCTRL::nLyaLevel, and t_iso_sp::trans().
Referenced by iso_create().
double iso_state_lifetime | ( | long | ipISO, |
long | nelem, | ||
long | n, | ||
long | l | ||
) |
References ASSERT, t_dense::AtomicWeight, DEBUG_ENTRY, dense, ipHE_LIKE, pow(), POW2, pow2(), pow4(), and powi().
Referenced by FillExtraLymanLine(), and SanityCheckBegin().
void iso_update_num_levels | ( | long | ipISO, |
long | nelem | ||
) |
iso_update_num_levels - update level informations for iso sequences
ipISO | |
nelem |
References ASSERT, cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), ioQQQ, iso_get_total_num_levels(), iso_sp, MAX2, max_num_levels, t_iso_sp::n_HighestResolved_local, t_iso_sp::n_HighestResolved_max, t_iso_sp::nCollapsed_local, t_iso_sp::nCollapsed_max, t_iso_sp::numLevels_local, and t_iso_sp::numLevels_max.
Referenced by InitCoreloadPostparse(), InitSimPostparse(), iso_init(), ParseCompile(), and ParseDatabaseISO().
STATIC void iso_zero | ( | void | ) |
References DEBUG_ENTRY, dense, t_iso_sp::fb, t_hydro::HLineWidth, hydro, ipH_LIKE, ipHE_LIKE, ipHELIUM, ipHYDROGEN, iso_sp, t_dense::lgElmtOn, LIMELM, NISO, t_iso_sp::numLevels_max, t_iso_sp::st, and t_dense::xIonDense.
Referenced by iso_create().
Referenced by iso_allocate().
|
static |
Referenced by getL(), and iso_assign_quantum_numbers().