cloudy
trunk
|
#include "cddefines.h"
#include "dense.h"
#include "helike.h"
#include "helike_cs.h"
#include "hydro_vs_rates.h"
#include "iso.h"
#include "phycon.h"
#include "thirdparty.h"
#include "thirdparty_quadpack.h"
#include "trace.h"
#include "freebound.h"
#include "lines_service.h"
#include "integrate.h"
#include "vectorize.h"
#include "hydroeinsta.h"
Go to the source code of this file.
Data Structures | |
class | my_Integrand_VF01_E< P > |
class | my_Integrand_VF01_E< P > |
class | my_Integrand_VF01_E_log< P > |
class | my_Integrand_S62 |
Functions | |
STATIC realnum | HeCSTableInterp (long nelem, long Collider, long nHi, long lHi, long sHi, long jHi, long nLo, long lLo, long sLo, long jLo) |
STATIC double | CS_l_mixing_S62 (double deltaE_eV, double IP_Ryd_ground, long gLo, double Aul, long nelem, long Collider, double temp) |
template<class P > | |
STATIC double | collision_strength_VF01 (long ipISO, double velOrEner, const my_Integrand_VF01_E< P > &vf) |
double | reduced_amu (long nelem, long Collider) |
void | HeCollidSetup (void) |
realnum | HeCSInterp (long nelem, long ipHi, long ipLo, long Collider) |
realnum | GetHelikeCollisionStrength (long nelem, long Collider, long nHi, long lHi, long sHi, long jHi, long gHi, double IP_Ryd_Hi, long nLo, long lLo, long sLo, long jLo, long gLo, double IP_Ryd_Lo, double Aul, double tauLo, double EnerWN, double EnerErg, const char **where) |
STATIC double | S62BesselInvert (double zOverB2) |
double | CS_l_mixing_PS64_expI (long nelem, double tau, double target_charge, long n, long l, double g, long lp, double deltaE_eV, long Collider) |
double | CS_l_mixing_PS64 (long nelem, double tau, double target_charge, long n, long l, double gLo, long lp, double deltaE_eV, long Collider) |
template<class P > | |
double | CS_l_mixing (long ipISO, long nelem, long n, long l, long lp, long s, long gLo, double tauLo, double IP_Ryd_Hi, double IP_Ryd_Lo, double temp, long Collider) |
double | CS_l_mixing_VF01 (long ipISO, long nelem, long n, long l, long lp, long s, long gLo, double tauLo, double IP_Ryd_Hi, double IP_Ryd_Lo, double temp, long Collider) |
double | CS_l_mixing_VOS12QM (long ipISO, long nelem, long n, long l, long lp, long s, long gLo, double tauLo, double IP_Ryd_Hi, double IP_Ryd_Lo, double temp, long Collider) |
double | CS_l_mixing_VOS12 (long n, long l, long lp, long nelem, double gLo, long Ztarget, long Collider, double sqrte) |
template<class P > | |
STATIC double | CSIntegral_QG32 (const my_Integrand_VF01_alpha< P > &func, double alphamin_int, double alphamax_int) |
template<class P > | |
STATIC double | CSIntegral_Romberg (long ipISO, const my_Integrand_VF01_beta< P > &func, double alphamin_int, double alphamax_int, double eps) |
template<class P > | |
STATIC double | CSIntegral_Romberg_alpha (long ipISO, const my_Integrand_VF01_alpha< P > &func, double alphamin_int, double alphamax_int, double eps) |
Variables | |
vector< double > | CSTemp |
multi_arr< realnum, 3 > | HeCS |
static const double | ColliderCharge [4] = {1.0, 1.0, 1.0, 2.0} |
STATIC double collision_strength_VF01 | ( | long | ipISO, |
double | velOrEner, | ||
const my_Integrand_VF01_E< P > & | vf | ||
) |
Definition at line 2167 of file helike_cs.cpp.
References ASSERT, ConvCrossSect2CollStr(), cross_section(), CSIntegral_QG32(), CSIntegral_Romberg(), CSIntegral_Romberg_alpha(), DEBUG_ENTRY, dense, dqags_(), t_dense::eden, fprintf(), ioQQQ, iso_ctrl, t_isoCTRL::lgCS_VOS12QM, t_isoCTRL::lgCS_Vrinceanu, MAX2, POW2, pow2(), SDIV(), and SMALLFLOAT.
|
inline |
Definition at line 1540 of file helike_cs.cpp.
References ASSERT, DEBUG_ENTRY, integrate::Romberg< T >::error(), integrate::Romberg< T >::evals(), fprintf(), ioQQQ, ipH_LIKE, iso_ctrl, t_isoCTRL::lgCS_Seaton, t_isoCTRL::lgCS_therm_ave, S, Integrator< Integrand, Method >::sum(), integrate::Romberg< T >::sum(), and integrate::Romberg< T >::update().
double CS_l_mixing_PS64 | ( | long | nelem, |
double | tau, | ||
double | target_charge, | ||
long | n, | ||
long | l, | ||
double | gLo, | ||
long | lp, | ||
double | deltaE_eV, | ||
long | Collider | ||
) |
Definition at line 1376 of file helike_cs.cpp.
References ASSERT, BIGDOUBLE, ColliderCharge, DEBUG_ENTRY, dense, t_dense::eden, ipHE_LIKE, iso_ctrl, t_isoCTRL::lgCS_B72, t_isoCTRL::lgCS_PSdeg, MAX2, MIN2, phycon, POW2, pow2(), powpq(), reduced_amu(), SMALLFLOAT, t_phycon::sqrte, t_phycon::te, and t_dense::xIonDense.
Referenced by GetHelikeCollisionStrength(), and GetHlikeCollisionStrength().
double CS_l_mixing_PS64_expI | ( | long | nelem, |
double | tau, | ||
double | target_charge, | ||
long | n, | ||
long | l, | ||
double | g, | ||
long | lp, | ||
double | deltaE_eV, | ||
long | Collider | ||
) |
Definition at line 1183 of file helike_cs.cpp.
References ASSERT, ColliderCharge, DEBUG_ENTRY, dense, e1(), t_dense::eden, ipHE_LIKE, iso_ctrl, t_isoCTRL::lgCS_B72, t_isoCTRL::lgCS_PSdeg, MAX2, min(), MIN2, phycon, pow2(), powpq(), reduced_amu(), SMALLFLOAT, t_phycon::sqrte, t_phycon::te, and t_dense::xIonDense.
Referenced by GetHelikeCollisionStrength(), and GetHlikeCollisionStrength().
STATIC double CS_l_mixing_S62 | ( | double | deltaE_eV, |
double | IP_Ryd_ground, | ||
long | gLo, | ||
double | Aul, | ||
long | nelem, | ||
long | Collider, | ||
double | temp | ||
) |
Definition at line 1010 of file helike_cs.cpp.
References ASSERT, colliders, ConvCrossSect2CollStr(), DEBUG_ENTRY, ipELECTRON, iso_ctrl, ColliderList::list, phycon, POW2, reduced_amu(), t_isoCTRL::SmallA, VecIntegrator< Integrand, Method >::sum(), and t_phycon::te.
Referenced by GetHelikeCollisionStrength().
double CS_l_mixing_VF01 | ( | long | ipISO, |
long | nelem, | ||
long | n, | ||
long | l, | ||
long | lp, | ||
long | s, | ||
long | gLo, | ||
double | tauLo, | ||
double | IP_Ryd_Hi, | ||
double | IP_Ryd_Lo, | ||
double | temp, | ||
long | Collider | ||
) |
CS_l_mixing_VF01 Collision treatment based on Vrinceanu and Flannery 2001
ipISO | |
nelem | |
n | |
l | |
lp | |
s | |
gLo | |
tauLo | |
IP_Ryd_Hi | |
IP_Ryd_Lo | |
temp | |
Collider |
Definition at line 1650 of file helike_cs.cpp.
Referenced by GetHelikeCollisionStrength(), and GetHlikeCollisionStrength().
double CS_l_mixing_VOS12 | ( | long | n, |
long | l, | ||
long | lp, | ||
long | nelem, | ||
double | gLo, | ||
long | Ztarget, | ||
long | Collider, | ||
double | sqrte | ||
) |
CS_l_mixing_VOS12 Collision treatment based on Vrinceanu Onofrio & Sadeghpour 2012 http://adsabs.harvard.edu/abs/2012ApJ...747...56V
Definition at line 2078 of file helike_cs.cpp.
References ColliderCharge, powpq(), and reduced_amu().
Referenced by GetHelikeCollisionStrength(), and GetHlikeCollisionStrength().
double CS_l_mixing_VOS12QM | ( | long | ipISO, |
long | nelem, | ||
long | n, | ||
long | l, | ||
long | lp, | ||
long | s, | ||
long | gLo, | ||
double | tauLo, | ||
double | IP_Ryd_Hi, | ||
double | IP_Ryd_Lo, | ||
double | temp, | ||
long | Collider | ||
) |
CS_l_mixing_VOS12 Collision treatment based on Vrinceanu Onofrio & Sadeghpour 2012 corresponding to quantal treatment: equation (2) http://adsabs.harvard.edu/abs/2012ApJ...747...56V
Definition at line 1669 of file helike_cs.cpp.
Referenced by GetHelikeCollisionStrength(), and GetHlikeCollisionStrength().
STATIC double CSIntegral_QG32 | ( | const my_Integrand_VF01_alpha< P > & | func, |
double | alphamin_int, | ||
double | alphamax_int | ||
) |
Definition at line 2093 of file helike_cs.cpp.
References Gaussian32, and Integrator< Integrand, Method >::sum().
Referenced by collision_strength_VF01().
STATIC double CSIntegral_Romberg | ( | long | ipISO, |
const my_Integrand_VF01_beta< P > & | func, | ||
double | alphamin_int, | ||
double | alphamax_int, | ||
double | eps | ||
) |
Definition at line 2108 of file helike_cs.cpp.
References iso_ctrl, t_isoCTRL::lgCS_VOS12QM, integrate::Romberg< T >::sum(), and integrate::Romberg< T >::update().
Referenced by collision_strength_VF01().
STATIC double CSIntegral_Romberg_alpha | ( | long | ipISO, |
const my_Integrand_VF01_alpha< P > & | func, | ||
double | alphamin_int, | ||
double | alphamax_int, | ||
double | eps | ||
) |
Definition at line 2138 of file helike_cs.cpp.
References iso_ctrl, t_isoCTRL::lgCS_VOS12QM, integrate::Romberg< T >::sum(), and integrate::Romberg< T >::update().
Referenced by collision_strength_VF01().
realnum GetHelikeCollisionStrength | ( | long | nelem, |
long | Collider, | ||
long | nHi, | ||
long | lHi, | ||
long | sHi, | ||
long | jHi, | ||
long | gHi, | ||
double | IP_Ryd_Hi, | ||
long | nLo, | ||
long | lLo, | ||
long | sLo, | ||
long | jLo, | ||
long | gLo, | ||
double | IP_Ryd_Lo, | ||
double | Aul, | ||
double | tauLo, | ||
double | EnerWN, | ||
double | EnerErg, | ||
const char ** | where | ||
) |
GetHelikeCollisionStrength calculate collision strengths for any transition of He-like iso sequence
nelem | |
ipCollider | |
nHi | |
lHi | |
sHi | |
jHi | |
gHi | |
IP_Ryd_Hi | |
nLo | |
lLo | |
sLo | |
jLo | |
gLo | |
IP_Ryd_Lo | |
Aul | |
tauLo | |
EnerWN | |
EnerErg | |
where |
Definition at line 434 of file helike_cs.cpp.
References ASSERT, t_dense::AtomicWeight, cdEXIT, colliders, CS_l_mixing_PS64(), CS_l_mixing_PS64_expI(), CS_l_mixing_S62(), CS_l_mixing_VF01(), CS_l_mixing_VOS12(), CS_l_mixing_VOS12QM(), CS_VS80(), DEBUG_ENTRY, dense, t_dense::eden, EXIT_FAILURE, exp10(), t_iso_sp::fb, fixit, fprintf(), HeCSTableInterp(), HydroEinstA(), ioQQQ, ipELECTRON, ipHE_LIKE, ipHELIUM, iso_ctrl, iso_sp, t_isoCTRL::lgColl_l_mixing, t_isoCTRL::lgCS_None, t_isoCTRL::lgCS_PS64, t_isoCTRL::lgCS_PSClassic, t_isoCTRL::lgCS_Seaton, t_isoCTRL::lgCS_VOS12, t_isoCTRL::lgCS_VOS12QM, t_isoCTRL::lgCS_Vriens, t_isoCTRL::lgCS_Vrinceanu, ColliderList::list, MAX2, t_isoCTRL::nCS_new, phycon, POW2, powpq(), t_phycon::sqrte, t_phycon::te, and TotalInsanity().
Referenced by HeCSInterp(), and iso_get_collision_strength_resolved().
void HeCollidSetup | ( | void | ) |
HeCollidSetup read in helium collision data files
Definition at line 241 of file helike_cs.cpp.
References multi_arr< T, d, ALLOC, lgBC >::alloc(), ASSERT, cdEXIT, chLine_LENGTH, COLLISMAGIC, CSTemp, DEBUG_ENTRY, EXIT_FAILURE, FFmtRead(), fprintf(), ioQQQ, ipHE_LIKE, ipHELIUM, iso_sp, t_trace::lgTrace, t_iso_sp::nCollapsed_max, t_iso_sp::numLevels_max, open_data(), read_whole_line(), multi_arr< T, d, ALLOC, lgBC >::reserve(), strchr_s(), and trace.
Referenced by iso_create().
realnum HeCSInterp | ( | long | nelem, |
long | ipHi, | ||
long | ipLo, | ||
long | Collider | ||
) |
Definition at line 390 of file helike_cs.cpp.
References ASSERT, EmissionProxy::Aul(), DEBUG_ENTRY, TransitionProxy::Emis(), TransitionProxy::EnergyErg(), TransitionProxy::EnergyWN(), t_iso_sp::fb, GetHelikeCollisionStrength(), ipHE_LIKE, ipHELIUM, iso_ctrl, iso_sp, t_isoCTRL::lgColl_excite, t_isoCTRL::lgColl_l_mixing, LIMELM, t_iso_sp::st, and t_iso_sp::trans().
Referenced by AGN_He1_CS().
STATIC realnum HeCSTableInterp | ( | long | nelem, |
long | Collider, | ||
long | nHi, | ||
long | lHi, | ||
long | sHi, | ||
long | jHi, | ||
long | nLo, | ||
long | lLo, | ||
long | sLo, | ||
long | jLo | ||
) |
Definition at line 923 of file helike_cs.cpp.
References t_phycon::alogte, ASSERT, CSTemp, DEBUG_ENTRY, fixit, ipELECTRON, ipHe2p3P0, ipHE_LIKE, ipHELIUM, iso_sp, phycon, and t_iso_sp::QuantumNumbers2Index.
Referenced by GetHelikeCollisionStrength().
|
inline |
Definition at line 47 of file helike_cs.cpp.
References t_dense::AtomicWeight, my_Integrand_VF01_E< P >::Collider, colliders, dense, ColliderList::list, and my_Integrand_VF01_E< P >::nelem.
Referenced by CS_l_mixing_PS64(), CS_l_mixing_PS64_expI(), CS_l_mixing_S62(), CS_l_mixing_VOS12(), and my_Integrand_VF01_E< P >::my_Integrand_VF01_E().
STATIC double S62BesselInvert | ( | double | zOverB2 | ) |
Definition at line 1054 of file helike_cs.cpp.
References ASSERT, DEBUG_ENTRY, and exp10().
Referenced by my_Integrand_S62::operator()().
|
static |
Definition at line 45 of file helike_cs.cpp.
Referenced by CS_l_mixing_PS64(), CS_l_mixing_PS64_expI(), and CS_l_mixing_VOS12().
vector<double> CSTemp |
vector of temperatures corresponding to collision strengths stuffed into HeCS.
Definition at line 25 of file helike_cs.cpp.
Referenced by HeCollidSetup(), and HeCSTableInterp().
array of collision strengths read from data file...this is interpolated upon.
Definition at line 27 of file helike_cs.cpp.