Cloudy
Spectral Synthesis Code for Astrophysics
Loading...
Searching...
No Matches
helike_cs.cpp File Reference
#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"
Include dependency graph for helike_cs.cpp:

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}
 

Function Documentation

◆ collision_strength_VF01()

◆ CS_l_mixing()

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 )
inline

◆ CS_l_mixing_PS64()

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 )

◆ CS_l_mixing_PS64_expI()

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 )

◆ CS_l_mixing_S62()

STATIC double CS_l_mixing_S62 ( double deltaE_eV,
double IP_Ryd_ground,
long gLo,
double Aul,
long nelem,
long Collider,
double temp )

◆ CS_l_mixing_VF01()

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

Parameters
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().

Here is the call graph for this function:

◆ CS_l_mixing_VOS12()

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().

Here is the call graph for this function:

◆ CS_l_mixing_VOS12QM()

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().

Here is the call graph for this function:

◆ CSIntegral_QG32()

template<class P>
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().

Here is the call graph for this function:

◆ CSIntegral_Romberg()

template<class P>
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().

◆ CSIntegral_Romberg_alpha()

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 )

References CSIntegral_Romberg_alpha(), iso_ctrl, and STATIC.

Referenced by collision_strength_VF01(), and CSIntegral_Romberg_alpha().

Here is the call graph for this function:

◆ CSresolver()

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

Parameters
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().

Here is the call graph for this function:

◆ GetHelikeCollisionStrength()

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

Parameters
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().

Here is the call graph for this function:

◆ HeCollidSetup()

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().

Here is the call graph for this function:

◆ HeCSInterp()

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().

Here is the call graph for this function:

◆ HeCSTableInterp()

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().

Here is the call graph for this function:

◆ reduced_amu()

double reduced_amu ( long nelem,
long Collider )

reduced_amu - Calculate reduced mass in AMU

Parameters
nelen[in] element index (0 for H)
Collider[in]collision partner
Returns
reduced mass

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().

◆ S62BesselInvert()

STATIC double S62BesselInvert ( double zOverB2)

References ASSERT, DEBUG_ENTRY, exp10(), and STATIC.

Referenced by my_Integrand_S62::operator()().

Here is the call graph for this function:

Variable Documentation

◆ ColliderCharge

const double ColliderCharge[4] = {1.0, 1.0, 1.0, 2.0}
static

◆ CSTemp

realnum CSTemp[NCSTEMP]

Referenced by HeCollidSetup(), and HeCSTableInterp().

◆ HeCS

map<QNPair, array<realnum,NCSTEMP> > HeCS

array of collision strengths read from data file...this is interpolated upon.

Referenced by HeCollidSetup(), and HeCSTableInterp().

◆ NCSTEMP

const unsigned int NCSTEMP = 9U

vector of temperatures corresponding to collision strengths stuffed into HeCS.

Referenced by HeCollidSetup(), and HeCSTableInterp().