#include "cddefines.h"
#include "atmdat.h"
#include "conv.h"
#include "dense.h"
#include "helike.h"
#include "helike_cs.h"
#include "hydro_vs_rates.h"
#include "iso.h"
#include "lines_service.h"
#include "opacity.h"
#include "phycon.h"
#include "physconst.h"
#include "rfield.h"
#include "taulines.h"
#include "thirdparty.h"
#include "trace.h"
Go to the source code of this file.
Data Structures | |
class | my_Integrand_S62 |
class | my_Integrand_VF01_E |
class | my_Integrand_VF01_alpha |
Defines | |
#define | chLine_LENGTH 1000 |
Functions | |
STATIC double | S62_Therm_ave_coll_str (double proj_energy_overKT, long nelem, long Collider, double deltaE, double osc_strength, double temp, double stat_weight, double I_energy_eV) |
STATIC double | collision_strength_VF01 (long ipISO, long nelem, long n, long l, long lp, long s, long Collider, double ColliderCharge, double temp, double velOrEner, bool lgParamIsRedVel) |
STATIC double | L_mix_integrand_VF01 (long n, long l, long lp, double bmax, double red_vel, double an, double ColliderCharge, double alpha) |
STATIC double | StarkCollTransProb_VF01 (long int n, long int l, long int lp, double alpha, double deltaPhi) |
void | HeCollidSetup (void) |
realnum | HeCSInterp (long int nelem, long int ipHi, long int ipLo, long int Collider) |
realnum | AtomCSInterp (long int nelem, long int ipHi, long int ipLo, realnum *factor1, const char **where, long int Collider) |
realnum | IonCSInterp (long nelem, long ipHi, long ipLo, realnum *factor1, const char **where, long Collider) |
double | CS_l_mixing_S62 (long ipISO, long nelem, long ipLo, long ipHi, double temp, long Collider) |
double | CS_l_mixing_PS64 (long nelem, double tau, double target_charge, long n, long l, double gHi, long Collider) |
double | CS_l_mixing_VF01 (long int ipISO, long int nelem, long int n, long int l, long int lp, long int s, double temp, long int Collider) |
STATIC double | StarkCollTransProb_VF01 (long n, long l, long lp, double alpha, double deltaPhi) |
Variables | |
static const double | ColliderMass [4] = {ELECTRON_MASS/PROTON_MASS, 1.0, 4.0, 4.0} |
static const double | ColliderCharge [4] = {1.0, 1.0, 1.0, 2.0} |
#define chLine_LENGTH 1000 |
Referenced by FillGFF(), GetStandardHeLines(), HeCollidSetup(), HelikeTransProbSetup(), and iso_recomb_setup().
realnum AtomCSInterp | ( | long int | nelem, | |
long int | ipHi, | |||
long int | ipLo, | |||
realnum * | factor, | |||
const char ** | where, | |||
long int | Collider | |||
) |
AtomCSInterp do the atom
nelem | ||
ipHi | ||
ipLo | ||
*factor | ||
**where | ||
Collider |
Definition at line 302 of file helike_cs.cpp.
References t_phycon::alogte, ASSERT, t_iso::CSTemp, DEBUG_ENTRY, t_iso::HeCS, ipELECTRON, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHE_LIKE, ipHELIUM, iso, t_iso::lgColl_excite, t_iso::lgColl_l_mixing, t_iso::nCollapsed_max, t_iso::nCS, t_iso::numLevels_max, phycon, StatesElemNEW, and TotalInsanity().
Referenced by HeCSInterp().
STATIC double collision_strength_VF01 | ( | long | ipISO, | |
long | nelem, | |||
long | n, | |||
long | l, | |||
long | lp, | |||
long | s, | |||
long | Collider, | |||
double | ColliderCharge, | |||
double | temp, | |||
double | velOrEner, | |||
bool | lgParamIsRedVel | |||
) |
Definition at line 1242 of file helike_cs.cpp.
References my_Integrand_VF01_alpha::an, ASSERT, ATOMIC_MASS_UNIT, t_dense::AtomicWeight, my_Integrand_VF01_alpha::bmax, BOHR_RADIUS_CM, BOLTZMANN, my_Integrand_VF01_alpha::ColliderCharge, ColliderMass, ConvCrossSect2CollStr(), cross_section(), DEBUG_ENTRY, dense, t_dense::eden, ELEM_CHARGE_ESU, EN1RYD, H_BAR, ipH_LIKE, ipHE_LIKE, iso, my_Integrand_VF01_alpha::l, LIMELM, my_Integrand_VF01_alpha::lp, MAX2, my_Integrand_VF01_alpha::n, PI, PI2, POW2, POW3, PROTON_MASS, t_iso::QuantumNumbers2Index, my_Integrand_VF01_alpha::red_vel, SMALLFLOAT, StatesElemNEW, Integrator< Integrand, Method >::sum(), TotalInsanity(), and t_iso::xIsoLevNIonRyd.
Referenced by CS_l_mixing_VF01(), and my_Integrand_VF01_E::operator()().
double CS_l_mixing_PS64 | ( | long | nelem, | |
double | tau, | |||
double | target_charge, | |||
long | n, | |||
long | l, | |||
double | gHi, | |||
long | Collider | |||
) |
Definition at line 1072 of file helike_cs.cpp.
References ASSERT, ATOMIC_MASS_UNIT, t_dense::AtomicWeight, BIGDOUBLE, COLL_CONST, ColliderCharge, ColliderMass, DEBUG_ENTRY, dense, t_dense::eden, ELECTRON_MASS, H_BAR, MIN2, phycon, pow(), POW2, SMALLFLOAT, t_phycon::sqrte, and t_phycon::te.
Referenced by HydroCSInterp(), and IonCSInterp().
double CS_l_mixing_S62 | ( | long | ipISO, | |
long | nelem, | |||
long | ipLo, | |||
long | ipHi, | |||
double | temp, | |||
long | Collider | |||
) |
Definition at line 917 of file helike_cs.cpp.
References ASSERT, my_Integrand_S62::Collider, DEBUG_ENTRY, my_Integrand_S62::deltaE, EN1EV, EVRYD, my_Integrand_S62::I_energy_eV, iso, my_Integrand_S62::nelem, my_Integrand_S62::osc_strength, POW2, my_Integrand_S62::stat_weight, StatesElemNEW, Integrator< Integrand, Method >::sum(), my_Integrand_S62::temp, TRANS_PROB_CONST, Transitions, WAVNRYD, and t_iso::xIsoLevNIonRyd.
Referenced by IonCSInterp().
double CS_l_mixing_VF01 | ( | long int | ipISO, | |
long int | nelem, | |||
long int | n, | |||
long int | l, | |||
long int | lp, | |||
long int | s, | |||
double | temp, | |||
long int | Collider | |||
) |
CS_l_mixing_VF01 Collision treatment based on Vrinceanu and Flannery 2001
ipISO | ||
nelem | ||
n | ||
l | ||
lp | ||
s | ||
temp | ||
Collider |
Definition at line 1179 of file helike_cs.cpp.
References ASSERT, my_Integrand_VF01_E::Collider, ColliderCharge, my_Integrand_VF01_E::ColliderCharge, collision_strength_VF01(), DEBUG_ENTRY, dense, t_dense::eden, ipH_LIKE, my_Integrand_VF01_E::ipISO, iso, my_Integrand_VF01_E::l, t_iso::lgCS_therm_ave, my_Integrand_VF01_E::lgParamIsRedVel, my_Integrand_VF01_E::lp, my_Integrand_VF01_E::n, my_Integrand_VF01_E::nelem, my_Integrand_VF01_E::s, Integrator< Integrand, Method >::sum(), TE1RYD, and my_Integrand_VF01_E::temp.
Referenced by HydroCSInterp(), and IonCSInterp().
void HeCollidSetup | ( | void | ) |
HeCollidSetup read in helium collision data files
Definition at line 85 of file helike_cs.cpp.
References multi_arr< T, d, ALLOC, lgBC >::alloc(), ASSERT, cdEXIT, chLine_LENGTH, COLLISMAGIC, t_iso::CSTemp, DEBUG_ENTRY, dense, FFmtRead(), HE1CSARRAY, t_iso::HeCS, INPUT_LINE_LENGTH, ioQQQ, ipHe1s1S, ipHe2s3S, ipHE_LIKE, ipHELIUM, iso, t_dense::lgElmtOn, t_trace::lgTrace, LIMELM, t_iso::nCollapsed_max, t_iso::nCS, NISO, t_iso::numLevels_max, open_data(), read_whole_line(), multi_arr< T, d, ALLOC, lgBC >::reserve(), strchr_s(), trace, and multi_arr< T, d, ALLOC, lgBC >::zero().
Referenced by iso_create().
realnum HeCSInterp | ( | long int | nelem, | |
long int | ipHi, | |||
long int | ipLo, | |||
long int | Collider | |||
) |
HeCSInterp interpolate on He1 collision strengths
nelem | ||
ipHi | ||
ipLo | ||
Collider |
Definition at line 240 of file helike_cs.cpp.
References ASSERT, AtomCSInterp(), DEBUG_ENTRY, IonCSInterp(), ioQQQ, ipHE_LIKE, ipHELIUM, ipOXYGEN, iso, t_iso::lgColl_excite, t_iso::lgCS_Vriens, MAX2, S, and StatesElemNEW.
Referenced by AGN_He1_CS(), and iso_collide().
realnum IonCSInterp | ( | long | nelem, | |
long | ipHi, | |||
long | ipLo, | |||
realnum * | factor1, | |||
const char ** | where, | |||
long | Collider | |||
) |
Definition at line 642 of file helike_cs.cpp.
References ASSERT, CS_l_mixing_PS64(), CS_l_mixing_S62(), CS_l_mixing_VF01(), CS_VS80(), DEBUG_ENTRY, fixit(), g, ipELECTRON, ipHe1s1S, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHe2s1S, ipHe2s3S, ipHE_LIKE, ipHELIUM, iso, t_iso::lgColl_excite, t_iso::lgColl_l_mixing, t_iso::lgCS_Vriens, t_iso::lgCS_Vrinceanu, LIMELM, t_iso::n_HighestResolved_max, phycon, POW2, StatesElemNEW, t_phycon::te, TotalInsanity(), and Transitions.
Referenced by HeCSInterp().
STATIC double L_mix_integrand_VF01 | ( | long | n, | |
long | l, | |||
long | lp, | |||
double | bmax, | |||
double | red_vel, | |||
double | an, | |||
double | ColliderCharge, | |||
double | alpha | |||
) |
Definition at line 1393 of file helike_cs.cpp.
References ASSERT, DEBUG_ENTRY, PI, and StarkCollTransProb_VF01().
Referenced by my_Integrand_VF01_alpha::operator()().
STATIC double S62_Therm_ave_coll_str | ( | double | proj_energy_overKT, | |
long | nelem, | |||
long | Collider, | |||
double | deltaE, | |||
double | osc_strength, | |||
double | temp, | |||
double | stat_weight, | |||
double | I_energy_eV | |||
) |
Definition at line 962 of file helike_cs.cpp.
References ASSERT, ATOMIC_MASS_UNIT, t_dense::AtomicWeight, bessel_k0(), bessel_k1(), BOHR_RADIUS_CM, ColliderMass, ConvCrossSect2CollStr(), cross_section(), DEBUG_ENTRY, dense, EVDEGK, EVRYD, ipELECTRON, phycon, PI, pow(), POW2, and t_phycon::te.
Referenced by my_Integrand_S62::operator()().
STATIC double StarkCollTransProb_VF01 | ( | long | n, | |
long | l, | |||
long | lp, | |||
double | alpha, | |||
double | deltaPhi | |||
) |
Definition at line 1420 of file helike_cs.cpp.
References ASSERT, DEBUG_ENTRY, ellpk(), PI, and POW2.
STATIC double StarkCollTransProb_VF01 | ( | long int | n, | |
long int | l, | |||
long int | lp, | |||
double | alpha, | |||
double | deltaPhi | |||
) |
Referenced by L_mix_integrand_VF01().
const double ColliderCharge[4] = {1.0, 1.0, 1.0, 2.0} [static] |
Definition at line 83 of file helike_cs.cpp.
Referenced by CS_l_mixing_PS64(), and CS_l_mixing_VF01().
const double ColliderMass[4] = {ELECTRON_MASS/PROTON_MASS, 1.0, 4.0, 4.0} [static] |
Definition at line 82 of file helike_cs.cpp.
Referenced by collision_strength_VF01(), CS_l_mixing_PS64(), and S62_Therm_ave_coll_str().