Cloudy
Spectral Synthesis Code for Astrophysics
|
#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"
#include "parser.h"
Classes | |
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 () |
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, long ipISO, double tau, double target_charge, long n, long l, double g, long lp, double deltaE_eV, long Collider, bool lgPSM20) |
double | CS_l_mixing_PS64 (long nelem, long ipISO, 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) |
double | CSresolver (long ipISO, long nHi, long lHi, long sHi, long nLo, long lLo, long sLo, long n_HighestResolved) |
Variables | |
const unsigned int | NCSTEMP = 9U |
realnum | CSTemp [NCSTEMP] |
map< QNPair, array< realnum, NCSTEMP > > | 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 | ||
) |
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 |
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_VOS_thermal, S, Integrator< Integrand, Method >::sum(), integrate::Romberg< T >::sum(), and integrate::Romberg< T >::update().
double CS_l_mixing_PS64 | ( | long | nelem, |
long | ipISO, | ||
double | tau, | ||
double | target_charge, | ||
long | n, | ||
long | l, | ||
double | gLo, | ||
long | lp, | ||
double | deltaE_eV, | ||
long | Collider | ||
) |
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, |
long | ipISO, | ||
double | tau, | ||
double | target_charge, | ||
long | n, | ||
long | l, | ||
double | g, | ||
long | lp, | ||
double | deltaE_eV, | ||
long | Collider, | ||
bool | lgPSM20 | ||
) |
References ASSERT, ColliderCharge, DEBUG_ENTRY, dense, e1(), t_dense::eden, igamc(), ipHE_LIKE, iso_ctrl, t_isoCTRL::lgCS_B72, t_isoCTRL::lgCS_PSdeg, MAX2, min(), MIN2, phycon, pow(), pow2(), pow3(), 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 | ||
) |
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 |
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
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
Referenced by GetHelikeCollisionStrength(), and GetHlikeCollisionStrength().
STATIC double CSIntegral_QG32 | ( | const my_Integrand_VF01_alpha< P > & | func, |
double | alphamin_int, | ||
double | alphamax_int | ||
) |
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 | ||
) |
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 | ||
) |
References iso_ctrl, t_isoCTRL::lgCS_VOS12QM, integrate::Romberg< T >::sum(), and integrate::Romberg< T >::update().
Referenced by collision_strength_VF01().
double CSresolver | ( | long | ipISO, |
long | nHi, | ||
long | lHi, | ||
long | sHi, | ||
long | nLo, | ||
long | lLo, | ||
long | sLo, | ||
long | nHighestResolved | ||
) |
CSresolver - this function averages collapsed-to-collapsed collision strengths into collapsed-to-resolved and resolved-to-resolved
ipISO | |
nHi | |
lHi | |
sHi | |
nLo | |
lLo | |
sLo |
References ASSERT, DEBUG_ENTRY, ipDOUBLET, ipH_LIKE, ipHE_LIKE, ipSINGLET, ipTRIPLET, pow2(), S, and TotalInsanity().
Referenced by GetHelikeCollisionStrength(), and GetHlikeCollisionStrength().
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 |
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_ThermAve_PR78(), CS_VS80(), CSresolver(), DEBUG_ENTRY, dense, t_dense::eden, EXIT_FAILURE, exp10(), t_iso_sp::fb, fprintf(), HeCSTableInterp(), hydro_Fujimoto_deexcit(), hydro_Lebedev_deexcit(), hydro_vanRegemorter_deexcit(), ioQQQ, ipELECTRON, ipHE_LIKE, ipHELIUM, ipIRON, iso_ctrl, iso_sp, t_isoCTRL::lgColl_l_mixing, t_isoCTRL::lgCS_Fujim, t_isoCTRL::lgCS_Lebedev, t_isoCTRL::lgCS_None, t_isoCTRL::lgCS_PS64, t_isoCTRL::lgCS_PSClassic, t_isoCTRL::lgCS_PSM20, t_isoCTRL::lgCS_Seaton, t_isoCTRL::lgCS_VOS12, t_isoCTRL::lgCS_VOS12QM, t_isoCTRL::lgCS_vrgm, 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().
void HeCollidSetup | ( | void | ) |
HeCollidSetup read in helium collision data files
References cdEXIT, DataParser::checkEOL(), DataParser::checkMagic(), COLLISMAGIC, CSTemp, DEBUG_ENTRY, DataParser::errorAbort(), ES_NONE, EXIT_FAILURE, getL(), DataParser::getline(), DataParser::getToken(), HeCS, ipHE_LIKE, ipHELIUM, iso_sp, and NCSTEMP.
Referenced by iso_create().
realnum HeCSInterp | ( | long | nelem, |
long | ipHi, | ||
long | ipLo, | ||
long | Collider | ||
) |
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 | ||
) |
References t_phycon::alogte, ASSERT, CSTemp, DEBUG_ENTRY, HeCS, ipELECTRON, ipHE_LIKE, ipHELIUM, iso_sp, linint(), NCSTEMP, and phycon.
Referenced by GetHelikeCollisionStrength().
double reduced_amu | ( | long | nelem, |
long | Collider | ||
) |
reduced_amu - Calculate reduced mass in AMU
nelen | [in] element index (0 for H) |
Collider[in] | collision partner |
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(), hydro_vanRegemorter_deexcit(), and my_Integrand_VF01_E< P >::my_Integrand_VF01_E().
STATIC double S62BesselInvert | ( | double | zOverB2 | ) |
References ASSERT, DEBUG_ENTRY, and exp10().
Referenced by my_Integrand_S62::operator()().
|
static |
Referenced by CS_l_mixing_PS64(), CS_l_mixing_PS64_expI(), and CS_l_mixing_VOS12().
Referenced by HeCollidSetup(), and HeCSTableInterp().
array of collision strengths read from data file...this is interpolated upon.
Referenced by HeCollidSetup(), and HeCSTableInterp().
const unsigned int NCSTEMP = 9U |
vector of temperatures corresponding to collision strengths stuffed into HeCS.
Referenced by HeCollidSetup(), and HeCSTableInterp().