cloudy  trunk
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Data Structures | Functions | Variables
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 dependency graph for helike_cs.cpp:

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}
 

Function Documentation

template<class P >
STATIC double collision_strength_VF01 ( long  ipISO,
double  velOrEner,
const my_Integrand_VF01_E< P > &  vf 
)
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
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 
)
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 
)
STATIC double CS_l_mixing_S62 ( double  deltaE_eV,
double  IP_Ryd_ground,
long  gLo,
double  Aul,
long  nelem,
long  Collider,
double  temp 
)
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

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

Here is the call graph for this function:

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

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

Here is the call graph for this function:

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

Here is the call graph for this function:

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 
)

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

Here is the call graph for this function:

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 
)
void HeCollidSetup ( void  )
realnum HeCSInterp ( long  nelem,
long  ipHi,
long  ipLo,
long  Collider 
)
STATIC realnum HeCSTableInterp ( long  nelem,
long  Collider,
long  nHi,
long  lHi,
long  sHi,
long  jHi,
long  nLo,
long  lLo,
long  sLo,
long  jLo 
)
double reduced_amu ( long  nelem,
long  Collider 
)
inline
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()().

Here is the call graph for this function:

Variable Documentation

const double ColliderCharge[4] = {1.0, 1.0, 1.0, 2.0}
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().

multi_arr<realnum,3> HeCS

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

Definition at line 27 of file helike_cs.cpp.