#include "cddefines.h"
#include "trace.h"
#include "rt.h"
#include "path.h"
#include "physconst.h"
#include "hydro_bauman.h"
#include "iso.h"
#include "helike.h"
#include "thermal.h"
#include "helike_recom.h"
#include "thirdparty.h"
#include "dense.h"
#include "phycon.h"
#include "opacity.h"
#include "ionbal.h"
#include "atmdat.h"
Go to the source code of this file.
Functions | |
STATIC double | TempInterp (double *TempArray, double *ValueArray, long NumElements) |
STATIC double | He_RRCoef_Te (long nelem, long n) |
STATIC double | Recomb_Seaton59 (long nelem, double temp, long n) |
STATIC double | ExponentialInt (double v) |
STATIC double | X1Int (double u) |
STATIC double | X2Int (double u) |
STATIC double | cross_section (double EgammaRyd) |
STATIC double | radrecomb (double temp, long nelem, long ipLo) |
STATIC double | RecomInt (double EE) |
double | He_cross_section (double EgammaRyd, long ipLevel, long nelem) |
void | HelikeRecombSetup (void) |
void | HeRecom (long nelem) |
double | HelikeCheckRecomb (long nelem, long level, double temperature) |
Variables | |
static double *** | RRCoef |
static double ** | TotalRecomb |
static double | TeRRCoef [N_HE_TE_RECOMB] |
static double | kTRyd |
static double | EthRyd |
static double | Xn_S59 |
static long int | ipLev |
static long int | globalZ |
double | PeachE [460] |
double | TripP [7][460] |
double | TripD [8][460] |
double | SingD [8][460] |
STATIC double cross_section | ( | double | EgammaRyd | ) |
Definition at line 1595 of file helike_recom.cpp.
References ASSERT, EthRyd, EVRYD, globalZ, H_photo_cs(), ipCARBON, ipHe1s1S, ipHELIUM, ipLev, L_, linint(), MAX2, N_, PeachE, POW2, POW3, S_, SingD, SMALLFLOAT, TripD, and TripP.
Referenced by collision_strength_VF01(), He_cross_section(), hydro_vs_coll_str(), S62_Therm_ave_coll_str(), and Yan_H2_CS().
STATIC double ExponentialInt | ( | double | v | ) |
Definition at line 2206 of file helike_recom.cpp.
References Xn_S59.
Referenced by Recomb_Seaton59().
double He_cross_section | ( | double | EgammaRyd, | |
long | ipLevel, | |||
long | nelem | |||
) |
He_cross_section returns cross section (cm^-2), given EgammaRyd, the photon energy in Ryd, ipLevel, the index of the level, 0 is ground, 3 within 2 3P, ipZ is charge, equal to 1 for Helium, this is a wrapper for cross_section
Definition at line 1538 of file helike_recom.cpp.
References ASSERT, cross_section(), EthRyd, globalZ, helike, ipHE_LIKE, ipHELIUM, ipLev, iso, t_helike::lgSetBenjamin, t_iso::nCollapsed_max, t_iso::numLevels_max, and t_iso::xIsoLevNIonRyd.
Referenced by Opacity_iso_photo_cs(), and RecomInt().
STATIC double He_RRCoef_Te | ( | long | nelem, | |
long | n | |||
) |
Definition at line 3216 of file helike_recom.cpp.
References ASSERT, DEBUG_ENTRY, DEBUG_EXIT, helike, ipHE_LIKE, iso, t_helike::lgNoRecombInterp, N_HE_TE_RECOMB, t_iso::nCollapsed_max, t_iso::numLevels_max, RRCoef, TempInterp(), TeRRCoef, and TotalRecomb.
Referenced by HelikeCheckRecomb(), and HeRecom().
double HelikeCheckRecomb | ( | long | nelem, | |
long | level, | |||
double | temperature | |||
) |
HelikeCheckRecomb - called by SanityCheck to confirm that recombination coef are ok, return value is relative error between new calculation of recom, and interp value
nelem | the chemical element, 1 for He | |
level | the level, 0 for ground | |
temperature | the temperature to be used |
Definition at line 3244 of file helike_recom.cpp.
References DEBUG_ENTRY, DEBUG_EXIT, EthRyd, He_RRCoef_Te(), ipHE_LIKE, iso, MAX2, phycon, radrecomb(), t_phycon::te, tfidle(), and t_iso::xIsoLevNIonRyd.
Referenced by SanityCheckBegin().
void HelikeRecombSetup | ( | void | ) |
HelikeRecombSetup
Establish radiative recombination rate coefficients - RRC
Definition at line 2235 of file helike_recom.cpp.
References ASSERT, cdEXIT(), chDataPath, chLine_LENGTH, dense, EthRyd, FFmtRead(), FILENAME_PATH_LENGTH_2, HE_LIKE_RREC_MAXN, HE_RREC_MAXN, helike, INPUT_LINE_LENGTH, ioQQQ, ipHe1s1S, ipHE_LIKE, ipHELIUM, ipLITHIUM, iso, t_helike::lgCompileRecomb, lgDataPathSet, t_dense::lgElmtOn, t_helike::lgNoRecombInterp, t_trace::lgTrace, LIMELM, MALLOC, MAX2, N_HE_TE_RECOMB, t_iso::n_HighestResolved_max, t_iso::nCollapsed_max, t_iso::numLevels_max, radrecomb(), Recomb_Seaton59(), RECOMBMAGIC, RRCoef, SumUpToThisN, TeRRCoef, TotalRecomb, trace, and t_iso::xIsoLevNIonRyd.
Referenced by HeCreate().
void HeRecom | ( | long | nelem | ) |
nelem | nelem on the c scale, He is 1 |
Definition at line 2621 of file helike_recom.cpp.
References ASSERT, t_helike::BranchRatio, t_helike::CascadeProb, cdEXIT(), t_iso::ConOpacRatio, DEBUG_ENTRY, DEBUG_EXIT, dense, t_ionbal::DR_Badnell_rate_coef, E, t_dense::eden, EN1RYD, t_helike::Error, t_helike::ErrorFactor, EthRyd, t_ADfA::H_rad_rec(), He_RRCoef_Te(), helike, Singleton< t_ADfA >::Inst(), ionbal, ioQQQ, ipHe1s1S, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHe2s3S, ipHE_LIKE, ipHELIUM, t_iso::ipIsoLevNIonCon, IPRAD, ipRecEsc, ipRecNetEsc, ipRecRad, iso, L_, t_opac::lgCaseB, t_helike::lgHugeCaseB, t_iso::lgLevelsLowered, t_helike::lgNoRecombInterp, t_helike::lgRandErrGen, t_helike::lgSetBenjamin, t_helike::lgTopoff, t_helike::Lifetime, LIMELM, MAX2, MIN2, N_, t_iso::nCollapsed_local, t_iso::nCollapsed_max, t_iso::numLevels_local, t_iso::numLevels_max, opac, t_opac::otsmin, phycon, t_helike::RadEffec, t_iso::RadRec_caseB, t_iso::RadRec_effec, radrecomb(), t_iso::RadRecomb, Recomb_Seaton59(), t_ionbal::RR_rate_coef_used, RT_recom_effic(), RYDLAM, S_, t_helike::SigmaAtot, t_helike::SigmaCascadeProb, t_helike::SigmaRadEffec, SumUpToThisN, t_phycon::te, wavelength, and t_iso::xIsoLevNIonRyd.
Referenced by HeCreate(), and HeLike().
STATIC double radrecomb | ( | double | temp, | |
long | nelem, | |||
long | ipLo | |||
) |
Definition at line 2067 of file helike_recom.cpp.
References EthRyd, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHE_LIKE, ipLev, iso, kTRyd, MAX2, MILNE_CONST, MIN2, qg32(), RecomInt(), SMALLDOUBLE, t_iso::stat, and TE1RYD.
Referenced by HelikeCheckRecomb(), HelikeRecombSetup(), and HeRecom().
STATIC double Recomb_Seaton59 | ( | long | nelem, | |
double | temp, | |||
long | n | |||
) |
Definition at line 2145 of file helike_recom.cpp.
References ExponentialInt(), qg32(), TE1RYD, X1Int(), X2Int(), and Xn_S59.
Referenced by HelikeRecombSetup(), and HeRecom().
STATIC double RecomInt | ( | double | EE | ) |
Definition at line 2132 of file helike_recom.cpp.
References EthRyd, He_cross_section(), ipLev, kTRyd, and x1.
Referenced by radrecomb().
static double TempInterp | ( | double * | TempArray, | |
double * | ValueArray, | |||
long | NumElements | |||
) |
Definition at line 3155 of file helike_recom.cpp.
References t_phycon::alogte, ASSERT, cdEXIT(), DEBUG_ENTRY, DEBUG_EXIT, hunt_bisect(), ioQQQ, lagrange(), max(), min(), phycon, and t_phycon::te.
Referenced by He_RRCoef_Te(), and lines_helium().
STATIC double X1Int | ( | double | u | ) |
Definition at line 2215 of file helike_recom.cpp.
References Xn_S59.
Referenced by Recomb_Seaton59().
STATIC double X2Int | ( | double | u | ) |
Definition at line 2225 of file helike_recom.cpp.
References Xn_S59.
Referenced by Recomb_Seaton59().
double EthRyd [static] |
Definition at line 81 of file helike_recom.cpp.
Referenced by cross_section(), He_cross_section(), HelikeCheckRecomb(), HelikeRecombSetup(), HeRecom(), radrecomb(), and RecomInt().
long int globalZ [static] |
Definition at line 82 of file helike_recom.cpp.
Referenced by cross_section(), and He_cross_section().
long int ipLev [static] |
Definition at line 82 of file helike_recom.cpp.
Referenced by cross_section(), He_cross_section(), radrecomb(), and RecomInt().
double kTRyd [static] |
double PeachE[460] |
double*** RRCoef [static] |
Definition at line 43 of file helike_recom.cpp.
Referenced by He_RRCoef_Te(), and HelikeRecombSetup().
double SingD[8][460] |
double TeRRCoef[N_HE_TE_RECOMB] [static] |
Definition at line 51 of file helike_recom.cpp.
Referenced by He_RRCoef_Te(), and HelikeRecombSetup().
double** TotalRecomb [static] |
Definition at line 45 of file helike_recom.cpp.
Referenced by He_RRCoef_Te(), and HelikeRecombSetup().
double TripD[8][460] |
double TripP[7][460] |
double Xn_S59 [static] |
Definition at line 81 of file helike_recom.cpp.
Referenced by ExponentialInt(), Recomb_Seaton59(), X1Int(), and X2Int().