Cloudy
Spectral Synthesis Code for Astrophysics
|
#include "cddefines.h"
#include "dense.h"
#include "phycon.h"
#include "iso.h"
#include "helike_cs.h"
#include "hydro_vs_rates.h"
#include "thirdparty.h"
#include "lines_service.h"
#include "integrate.h"
Functions | |
double | get_iso_statw (const long ipISO, const long n) |
STATIC double | hydro_vs_coll_str (long nHi, long gHi, double IP_Ryd_Hi, long nLo, long gLo, double IP_Ryd_Lo, double Aul, long nelem, long Collider, double energy) |
STATIC double | expe1 (double x) |
double | CS_VS80 (long ipISO, long nHi, double IP_Ryd_Hi, long nLo, double IP_Ryd_Lo, double Aul, long nelem, long Collider, double temp) |
double | hydro_vs_coll_recomb (double ionization_energy_Ryd, double Te, double stat_level, double stat_ion) |
double | hydro_vs_ioniz (double ionization_energy_Ryd, double Te) |
double | Hion_coll_ioniz_ratecoef (long int ipISO, long int nelem, long int n, double ionization_energy_Ryd, double Te) |
double | hydro_vs_deexcit (long nHi, long gHi, double IP_Ryd_Hi, long nLo, long gLo, double IP_Ryd_Lo, double Aul) |
double | hydro_Fujimoto_deexcit (long ipISO, long nHi, long nLo, double Aul, double ip_Ryd_Hi, double ip_Ryd_Lo) |
double | hydro_Lebedev_deexcit (long ipISO, long nelem, long nHi, long nLo, double IP_Ryd_Lo) |
double | hydro_vanRegemorter_deexcit (const long ipISO, const long nelem, const long nHi, const long lHi, const long lLo, const double EnerWN, const double deltaE_eV, const double Aul, const long ipCollider) |
double | CS_ThermAve_PR78 (long ipISO, long nelem, long nHi, long nLo, double deltaE, double temp) |
double | Therm_ave_coll_str_int_PR78 (double EOverKT) |
double | C2_PR78 (double x, double y) |
double | CS_PercivalRichards78 (double Ebar) |
Variables | |
long | global_ipISO |
long | global_nelem |
long | global_nHi |
long | global_nLo |
double | kTRyd |
double | global_deltaE |
|
inline |
C2_PR78
x | |
y |
References pow2().
Referenced by CS_PercivalRichards78().
double CS_PercivalRichards78 | ( | double | Ebar | ) |
CS_PercivalRichards78 calculates collision strength from Percival & Richards (1978) MNRAS 183, 329
Ebar |
References ASSERT, C2_PR78(), cross_section(), DEBUG_ENTRY, get_iso_statw(), global_deltaE, global_ipISO, global_nelem, global_nHi, global_nLo, h2, pow2(), pow3(), and powi().
Referenced by CS_ThermAve_PR78(), and Therm_ave_coll_str_int_PR78().
double CS_ThermAve_PR78 | ( | long | ipISO, |
long | nelem, | ||
long | nHi, | ||
long | nLo, | ||
double | deltaE, | ||
double | temp | ||
) |
CS_ThermAve_PR78 - Calculate thermal averaged Percival and Richard excitation rates
ipISO | [in] iso-sequence (0 for H-like, 1 for He-like) |
nelem | [in] element (0 for H) |
nHi | [in] upper level principal quantum number |
deltaE[in] | energy difference between levels, in Rydberg |
temp | [in] gas temparature |
References CS_PercivalRichards78(), DEBUG_ENTRY, global_deltaE, global_ipISO, global_nelem, global_nHi, global_nLo, iso_ctrl, kTRyd, t_isoCTRL::lgCS_therm_ave, qg32(), and Therm_ave_coll_str_int_PR78().
Referenced by GetHelikeCollisionStrength(), and GetHlikeCollisionStrength().
double CS_VS80 | ( | long | ipISO, |
long | nHi, | ||
double | IP_Ryd_Hi, | ||
long | nLo, | ||
double | IP_Ryd_Lo, | ||
double | Aul, | ||
long | nelem, | ||
long | Collider, | ||
double | temp | ||
) |
VS80 stands for Vriens and Smeets 1980
This routine calculates thermally-averaged collision strengths.
ipISO | |
nHi | |
IP_Ryd_Hi | |
nLo | |
IP_Ryd_Lo | |
Aul | |
nelem | |
Collider | |
temp |
References ASSERT, get_iso_statw(), hydro_vs_coll_str(), hydro_vs_deexcit(), ipELECTRON, iso_ctrl, t_isoCTRL::lgCollStrenThermAver, and Integrator< Integrand, Method >::sum().
Referenced by GetHelikeCollisionStrength(), and GetHlikeCollisionStrength().
STATIC double expe1 | ( | double | x | ) |
References e1().
Referenced by hydro_Fujimoto_deexcit(), and hydro_Lebedev_deexcit().
|
inline |
References ipDOUBLET, ipH_LIKE, ipHE_LIKE, ipSINGLET, ipTRIPLET, pow2(), and TotalInsanity().
Referenced by CS_PercivalRichards78(), CS_VS80(), hydro_Fujimoto_deexcit(), hydro_Lebedev_deexcit(), and hydro_vanRegemorter_deexcit().
double Hion_coll_ioniz_ratecoef | ( | long int | ipISO, |
long int | nelem, | ||
long int | n, | ||
double | ionization_energy_Ryd, | ||
double | temperature | ||
) |
Hion_coll_ioniz_ratecoef calculate hydrogenic ionization rates for all n, and Z
ipISO | the isoelectronic sequence |
nelem | element, >=1 since only used for ions nelem = 1 is helium the least possible charge |
n | principal quantum number, > 1 since only used for excited states |
ionization_energy_Ryd | |
temperature |
References ASSERT, DEBUG_ENTRY, dsexp(), e1(), e2(), expn(), MAX2, MIN2, and powi().
Referenced by iso_collisional_ionization().
double hydro_Fujimoto_deexcit | ( | long | ipISO, |
long | nHi, | ||
long | nLo, | ||
double | Aul, | ||
double | ip_Ryd_Hi, | ||
double | ip_Ryd_Lo | ||
) |
hydro_Fujimoto_deexcit - Collisional de-excitation rates from original equation (6-12) from Fujimoto (1978) IPPJ-AM-8, Institute of Plasma Physics, Nagoya University, Nagoya.
ipISO | [in] iso-sequence (0 for H-like, 1 for He-like) |
nHi | [in] upper level principal quantum number |
lHi | [in] upper level orbital angular momentum |
Aul | [in] Einstein A for transition between levels |
ip_Ryd_Hi[in] | upper level ionization potential, in Rydberg |
ip_Ryd_Lo[in] | lower level ionization potential, in Rydberg |
References ASSERT, DEBUG_ENTRY, expe1(), get_iso_statw(), phycon, POW2, pow2(), powpq(), t_phycon::sqrte, and t_phycon::te.
Referenced by GetHelikeCollisionStrength(), and GetHlikeCollisionStrength().
double hydro_Lebedev_deexcit | ( | long | ipISO, |
long | nelem, | ||
long | nHi, | ||
long | nLo, | ||
double | IP_Ryd_Lo | ||
) |
hydro_vs_deexcit generate hydrogenic collisional ionization rate coefficients for quantum number n
nelem | |
ipISO | |
nHi | |
nLo | |
IP_Ryd_Lo |
References ASSERT, DEBUG_ENTRY, expe1(), get_iso_statw(), phycon, pow2(), pow3(), t_phycon::sqrte, and t_phycon::te.
Referenced by GetHelikeCollisionStrength(), and GetHlikeCollisionStrength().
double hydro_vanRegemorter_deexcit | ( | long | ipISO, |
const long | nelem, | ||
const long | nHi, | ||
const long | lHi, | ||
const long | lLo, | ||
const double | EnerWN, | ||
const double | deltaE_eV, | ||
const double | Aul, | ||
const long | ipCollider | ||
) |
hydro_vanRegemorter_deexcit - Collisional deexcitation rates according to Van Regemorter, ApJ 136 (1962) 906
ipISO | [in] iso-sequence (0 for H-like, 1 for He-like) |
nelem | [in] element (0 for H) |
nHi | [in] upper level principal quantum number |
lHi | [in] upper level orbital angular momentum |
lLo | [in] lower level orbital angular momentum |
EnerWN | [in] energy difference between levels, in wavenumbers |
deltaE_eV | [in] energy difference between levels, in eV |
Aul | [in] Einstein A for transition between levels |
ipCollider[in] | collider type |
References a1, DEBUG_ENTRY, e1(), exp10(), get_iso_statw(), ipHELIUM, ipHYDROGEN, linint(), phycon, pow3(), powpq(), reduced_amu(), t_phycon::sqrte, and t_phycon::te.
Referenced by GetHelikeCollisionStrength(), and GetHlikeCollisionStrength().
double hydro_vs_coll_recomb | ( | double | ionization_energy_Ryd, |
double | Te, | ||
double | stat_level, | ||
double | stat_ion | ||
) |
hydro_vs_ioniz generate hydrogenic collisional ionization rate coefficients
ionization_energy_Ryd | |
Te | |
stat_level | |
stat_ion |
References ASSERT, DEBUG_ENTRY, pow(), and pow3().
STATIC double hydro_vs_coll_str | ( | long | nHi, |
long | gHi, | ||
double | IP_Ryd_Hi, | ||
long | nLo, | ||
long | gLo, | ||
double | IP_Ryd_Lo, | ||
double | Aul, | ||
long | nelem, | ||
long | Collider, | ||
double | energy | ||
) |
References ASSERT, t_dense::AtomicWeight, colliders, ConvCrossSect2CollStr(), cross_section(), DEBUG_ENTRY, dense, GetGF(), ipELECTRON, ColliderList::list, MAX2, POW2, pow3(), powpq(), and safe_div().
Referenced by CS_VS80().
double hydro_vs_deexcit | ( | long | nHi, |
long | gHi, | ||
double | IP_Ryd_Hi, | ||
long | nLo, | ||
long | gLo, | ||
double | IP_Ryd_Lo, | ||
double | Aul | ||
) |
hydro_vs_deexcit generate hydrogenic collisional ionization rate coefficients for quantum number n
nHi | |
gHi | |
IP_Ryd_Hi | |
nLo | |
gLo | |
IP_Ryd_Lo | |
Aul |
References ASSERT, DEBUG_ENTRY, GetGF(), phycon, pow3(), powpq(), safe_div(), t_phycon::sqrte, and t_phycon::te.
Referenced by CS_VS80().
double hydro_vs_ioniz | ( | double | ionization_energy_Ryd, |
double | Te | ||
) |
hydro_vs_ioniz generate hydrogenic collisional ionization rate coefficients
ionization_energy_Ryd | |
Te |
References ASSERT, DEBUG_ENTRY, dsexp(), pow(), and powpq().
Referenced by iso_collisional_ionization().
double Therm_ave_coll_str_int_PR78 | ( | double | EOverKT | ) |
Therm_ave_coll_str_int_PR78 The integrand for calculating the thermal average of collision strengths
EOverKT |
References CS_PercivalRichards78(), DEBUG_ENTRY, and kTRyd.
Referenced by CS_ThermAve_PR78().
double global_deltaE |
Referenced by CS_PercivalRichards78(), and CS_ThermAve_PR78().
long global_ipISO |
Referenced by CS_PercivalRichards78(), and CS_ThermAve_PR78().
long global_nelem |
Referenced by CS_PercivalRichards78(), and CS_ThermAve_PR78().
long global_nHi |
Referenced by CS_PercivalRichards78(), and CS_ThermAve_PR78().
long global_nLo |
Referenced by CS_PercivalRichards78(), and CS_ThermAve_PR78().
double kTRyd |
Referenced by CS_ThermAve_PR78(), and Therm_ave_coll_str_int_PR78().