| cloudy
    trunk
    | 
#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"
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) | 
| 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} | 
| STATIC double collision_strength_VF01 | ( | long | ipISO, | 
| double | velOrEner, | ||
| const my_Integrand_VF01_E< P > & | vf | ||
| ) | 
Definition at line 2173 of file helike_cs.cpp.
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 | 
Definition at line 1546 of file helike_cs.cpp.
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_therm_ave, S, Integrator< Integrand, Method >::sum(), integrate::Romberg< T >::sum(), and integrate::Romberg< T >::update().

| 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 | ||
| ) | 
Definition at line 1382 of file helike_cs.cpp.
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, | 
| double | tau, | ||
| double | target_charge, | ||
| long | n, | ||
| long | l, | ||
| double | g, | ||
| long | lp, | ||
| double | deltaE_eV, | ||
| long | Collider | ||
| ) | 
Definition at line 1189 of file helike_cs.cpp.
References ASSERT, ColliderCharge, DEBUG_ENTRY, dense, e1(), t_dense::eden, ipHE_LIKE, iso_ctrl, t_isoCTRL::lgCS_B72, t_isoCTRL::lgCS_PSdeg, MAX2, min(), MIN2, phycon, pow(), pow2(), 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 | ||
| ) | 
Definition at line 1016 of file helike_cs.cpp.
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 | 
Definition at line 1656 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 2084 of file helike_cs.cpp.
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
Definition at line 1675 of file helike_cs.cpp.
Referenced by GetHelikeCollisionStrength(), and GetHlikeCollisionStrength().
| STATIC double CSIntegral_QG32 | ( | const my_Integrand_VF01_alpha< P > & | func, | 
| double | alphamin_int, | ||
| double | alphamax_int | ||
| ) | 
Definition at line 2099 of file helike_cs.cpp.
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 | ||
| ) | 
Definition at line 2114 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().

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

| 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 | ||
| ) | 
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 | 
Definition at line 433 of file helike_cs.cpp.
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_VS80(), DEBUG_ENTRY, dense, t_dense::eden, EXIT_FAILURE, exp10(), t_iso_sp::fb, fixit, fprintf(), HeCSTableInterp(), ioQQQ, ipELECTRON, ipHE_LIKE, ipHELIUM, iso_ctrl, iso_sp, t_isoCTRL::lgColl_l_mixing, t_isoCTRL::lgCS_None, t_isoCTRL::lgCS_PS64, t_isoCTRL::lgCS_PSClassic, t_isoCTRL::lgCS_Seaton, t_isoCTRL::lgCS_VOS12, t_isoCTRL::lgCS_VOS12QM, 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_resolved().

| void HeCollidSetup | ( | void | ) | 
HeCollidSetup read in helium collision data files
Definition at line 240 of file helike_cs.cpp.
References multi_arr< T, d, ALLOC, lgBC >::alloc(), ASSERT, cdEXIT, chLine_LENGTH, COLLISMAGIC, CSTemp, DEBUG_ENTRY, EXIT_FAILURE, FFmtRead(), fprintf(), ioQQQ, ipHE_LIKE, ipHELIUM, iso_sp, t_trace::lgTrace, t_iso_sp::nCollapsed_max, t_iso_sp::numLevels_max, open_data(), read_whole_line(), multi_arr< T, d, ALLOC, lgBC >::reserve(), strchr_s(), and trace.
Referenced by iso_create().

| realnum HeCSInterp | ( | long | nelem, | 
| long | ipHi, | ||
| long | ipLo, | ||
| long | Collider | ||
| ) | 
Definition at line 389 of file helike_cs.cpp.
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 | ||
| ) | 
Definition at line 929 of file helike_cs.cpp.
References t_phycon::alogte, ASSERT, CSTemp, DEBUG_ENTRY, fixit, ipELECTRON, ipHe2p3P0, ipHE_LIKE, ipHELIUM, iso_sp, phycon, and t_iso_sp::QuantumNumbers2Index.
Referenced by GetHelikeCollisionStrength().
| 
 | inline | 
Definition at line 46 of file helike_cs.cpp.
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(), and my_Integrand_VF01_E< P >::my_Integrand_VF01_E().
| STATIC double S62BesselInvert | ( | double | zOverB2 | ) | 
Definition at line 1060 of file helike_cs.cpp.
References ASSERT, DEBUG_ENTRY, and exp10().
Referenced by my_Integrand_S62::operator()().

| 
 | static | 
Definition at line 44 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 24 of file helike_cs.cpp.
Referenced by HeCollidSetup(), and HeCSTableInterp().
array of collision strengths read from data file...this is interpolated upon.
Definition at line 26 of file helike_cs.cpp.
 1.8.5
 1.8.5