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_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, collision_strength_VF01(), ConvCrossSect2CollStr(), cross_section(), CSIntegral_QG32(), CSIntegral_Romberg(), CSIntegral_Romberg_alpha(), DEBUG_ENTRY, dense, dqags_(), fprintf(), ioQQQ, iso_ctrl, MAX2, POW2, pow2, SDIV(), SMALLFLOAT, and STATIC.
Referenced by collision_strength_VF01(), my_Integrand_VF01_E< P >::operator()(), and my_Integrand_VF01_E_log< P >::operator()().
|
inline |
References ASSERT, DEBUG_ENTRY, fprintf(), ioQQQ, ipH_LIKE, iso_ctrl, integrate::Romberg< T >::sum(), Integrator< Integrand, Method >::sum(), and integrate::Romberg< T >::update().
Referenced by CS_l_mixing_VF01(), and CS_l_mixing_VOS12QM().
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, ipHE_LIKE, iso_ctrl, MAX2, MIN2, phycon, POW2, pow2, powpq(), reduced_amu(), and SMALLFLOAT.
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(), igamc(), ipHE_LIKE, iso_ctrl, MAX2, min(), MIN2, phycon, pow(), pow2, pow3, powpq(), reduced_amu(), and SMALLFLOAT.
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, phycon, POW2, reduced_amu(), STATIC, and VecIntegrator< Integrand, Method >::sum().
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 |
References CS_l_mixing().
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
References CS_l_mixing().
Referenced by GetHelikeCollisionStrength(), and GetHlikeCollisionStrength().
STATIC double CSIntegral_QG32 | ( | const my_Integrand_VF01_alpha< P > & | func, |
double | alphamin_int, | ||
double | alphamax_int ) |
References Gaussian32, STATIC, 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, and STATIC.
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 CSIntegral_Romberg_alpha(), iso_ctrl, and STATIC.
Referenced by collision_strength_VF01(), and CSIntegral_Romberg_alpha().
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, 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, EXIT_FAILURE, exp10(), fprintf(), HeCSTableInterp(), hydro_Fujimoto_deexcit(), hydro_Lebedev_deexcit(), hydro_vanRegemorter_deexcit(), ioQQQ, ipELECTRON, ipHE_LIKE, ipHELIUM, ipIRON, iso_ctrl, iso_sp, MAX2, phycon, POW2, powpq(), 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, DEBUG_ENTRY, GetHelikeCollisionStrength(), ipHE_LIKE, ipHELIUM, iso_ctrl, iso_sp, and LIMELM.
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 ASSERT, CSTemp, DEBUG_ENTRY, HeCS, ipELECTRON, ipHE_LIKE, ipHELIUM, iso_sp, linint(), NCSTEMP, phycon, and STATIC.
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 my_Integrand_VF01_E< P >::Collider, colliders, dense, 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, exp10(), and STATIC.
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().