#include "h2_priv.h"
Go to the source code of this file.
Data Structures | |
struct | t_atmdat |
class | t_ADfA |
class | Funct |
class | FunctLAMDA |
class | FunctDiatoms |
Defines | |
#define | NHSDIM 15 |
#define | NLINEHS 300 |
#define | HS_NZ 8 |
#define | NHCSTE 8 |
#define | NUM_HS98_DATA_POINTS 811 |
Typedefs | |
typedef Funct * | FunctPtr |
Enumerations | |
enum | phfit_version { PHFIT_UNDEF, PHFIT95, PHFIT96 } |
Functions | |
double | atmdat_2phot_shapefunction (double EbyE2nu, long ipISO, long nelem) |
void | atmdat_readin (void) |
void | atmdat_STOUT_readin (long intNS, char *chFileName) |
void | atmdat_CHIANTI_readin (long intNS, char *chFileName) |
void | atmdat_LAMDA_readin (long intNS, char *chFileName) |
void | atmdat_outer_shell (long int iz, long int in, long int *imax, long int *ig0, long int *ig1) |
void | ChargTranEval (void) |
double | ChargTranSumHeat (void) |
void | ChargTranPun (FILE *ipPnunit, char *chSave) |
double | CHIANTI_Upsilon (long, long, long, long, double) |
double | atmdat_dielrec_fe (long int ion, double t) |
void | atmdat_H_phot_cs (void) |
void | atmdat_3body (void) |
double | atmdat_HS_caseB (long int iHi, long int iLo, long int iZ, double TempIn, double DenIn, char chCase) |
void | ReadCollisionRateTable (CollRateCoeffArray &coll_rate_table, FILE *io, FunctPtr GetIndices, long nMolLevs, long nTemps=-1, long nTrans=-1) |
double | InterpCollRate (const CollRateCoeffArray &rate_table, const long &ipHi, const long &ipLo, const double &ftemp) |
Variables | |
double **** | HS_He1_Xsectn |
double **** | HS_He1_Energy |
double ***** | OP_Helike_Xsectn |
double ***** | OP_Helike_Energy |
long **** | OP_Helike_NumPts |
t_atmdat | atmdat |
#define HS_NZ 8 |
number of elements that can be read in
Definition at line 125 of file atmdat.h.
Referenced by atmdat_HS_caseB(), atmdat_readin(), IterStart(), and lines_hydro().
#define NHCSTE 8 |
number of temperature points in h_coll_str arrays
Definition at line 126 of file atmdat.h.
Referenced by HCSAR_interp().
#define NHSDIM 15 |
#define NLINEHS 300 |
dimension of array with lines
Definition at line 124 of file atmdat.h.
Referenced by atmdat_HS_caseB(), and atmdat_readin().
#define NUM_HS98_DATA_POINTS 811 |
Definition at line 127 of file atmdat.h.
Referenced by GetHS98CrossSection(), and read_SH98_He1_cross_sections().
enum phfit_version |
double atmdat_2phot_shapefunction | ( | double | EbyE2nu, | |
long | ipISO, | |||
long | nelem | |||
) |
atmdat_2phot_shapefunction two photon emission function for all atomic and ionic species
EbyE2nu | ||
ipISO | ||
nelem |
Definition at line 234 of file atmdat_2photon.cpp.
Referenced by ContCreatePointers(), and TwoPhotonSetup().
void atmdat_3body | ( | void | ) |
atmdat_3body derive three-body recombination coefficients
Definition at line 52 of file atmdat_3body.cpp.
References atmdat, t_ionbal::CotaRate, da(), DEBUG_ENTRY, dense, t_dense::eden, ionbal, ioQQQ, t_save::ioRecom, t_save::lgioRecom, t_ionbal::lgNoCota, t_trace::lgTrace, t_trace::lgTrace3Bod, LIMELM, MIN2, MIN3, t_atmdat::nsbig, phycon, save, t_phycon::te, and trace.
Referenced by ConvBase().
void atmdat_CHIANTI_readin | ( | long | intNS, | |
char * | chFileName | |||
) |
atmdat_CHIANTI_readin read in data from CHIANTI database files
intNS | ||
chFileName |
Definition at line 595 of file atmdat_chianti.cpp.
References ASSERT, atmdat, AtmolCollSplines, BIGDOUBLE, cdEXIT, t_CollSplinesArray::collspline, dBaseSpecies, dBaseStates, dBaseTrans, DEBUG_ENTRY, DEBUGSTATE, ENERGY_MIN_WN, t_CollSplinesArray::EnergyDiff, EXIT_FAILURE, FILENAME_PATH_LENGTH_2, fixit(), g, GetGF(), t_CollSplinesArray::intTranType, ioQQQ, ipdBaseTrans, ipELECTRON, ipNCOLLIDER, ipPROTON, t_atmdat::lgChiantiExp, t_atmdat::lgChiantiPrint, t_species::lgLAMDA, t_species::lgLTE, t_species::lgMolecular, t_trace::lgTrace, MALLOC, max(), MAX2, t_species::maxWN, min(), MIN3, mode_r, t_atmdat::nChiantiMaxLevels, t_atmdat::nChiantiMaxLevelsFe, nMatch(), t_CollSplinesArray::nSplinePts, t_species::numLevels_local, t_species::numLevels_max, open_data(), RefIndex(), t_CollSplinesArray::ScalingParam, spline(), t_CollSplinesArray::SplineSecDer, spsort(), STATIC_ASSERT, tolower(), TotalInsanity(), trace, and uncaps().
Referenced by database_readin().
double atmdat_dielrec_fe | ( | long int | ion, | |
double | t | |||
) |
atmdat_dielrec_fe Dielectronic recombination rates for Fe from Arnaud & Raymond 1992
ion | ||
t |
Definition at line 9 of file atmdat_dielrec_fe.cpp.
References cdEXIT, DEBUG_ENTRY, EVRYD, EXIT_FAILURE, ioQQQ, pow(), sexp(), and TE1RYD.
Referenced by ion_recom_calculate().
void atmdat_H_phot_cs | ( | void | ) |
this initializes the arrays containing the fitting coefficients, called by OpacityCreateAll, done once per coreload
double atmdat_HS_caseB | ( | long int | iHi, | |
long int | iLo, | |||
long int | iZ, | |||
double | TempIn, | |||
double | DenIn, | |||
char | chCase | |||
) |
general utility to read in line emissivities from the Storey & Hummer tables of case B emissivities.
iHi | the principal quantum numbers, . | |
iLo | upper and lower levels in any order | |
iZ | charge of ion, only 1 and 2 for now | |
TempIn | temperature, must lie within the range of the table, which depends on the ion charge, and is 500 - 30,000K for hydrogen | |
DenIn | the density and must lie within the range of the table | |
chCase | case - 'a' or 'b' |
Definition at line 7 of file atmdat_HS_caseb.cpp.
References ASSERT, atmdat, cdEXIT, DEBUG_ENTRY, t_atmdat::Density, t_atmdat::ElecTemp, t_atmdat::Emiss, EXIT_FAILURE, fp_equal(), HS_NZ, t_atmdat::ncut, t_atmdat::nDensity, NLINEHS, t_atmdat::ntemp, pow(), x1, and x2.
Referenced by DrvCaseBHS(), and lines_hydro().
void atmdat_LAMDA_readin | ( | long | intNS, | |
char * | chFileName | |||
) |
atmdat_LAMDA_readin read in data from LAMDA database files
intNS | ||
chFileName |
Definition at line 18 of file atmdat_lamda.cpp.
References ASSERT, AtmolCollRateCoeff, cdEXIT, dBaseSpecies, dBaseStates, dBaseTrans, DEBUG_ENTRY, DEBUGSTATE, t_rfield::emm, EXIT_FAILURE, FFmtRead(), FILENAME_PATH_LENGTH_2, t_species::fmolweight, g, GetGF(), ioQQQ, ipATOM_H, ipATOM_HE, ipdBaseTrans, ipELECTRON, ipH2, ipH2_ORTHO, ipH2_PARA, ipNCOLLIDER, isnan, t_species::lgLAMDA, t_species::lgLTE, t_species::lgMolecular, t_trace::lgTrace, MAX2, MIN2, nMatch(), t_species::numLevels_local, t_species::numLevels_max, open_data(), read_whole_line(), ReadCollisionRateTable(), RefIndex(), rfield, RYD_INF, SMALLFLOAT, T1CM, TotalInsanity(), and trace.
Referenced by database_readin().
void atmdat_outer_shell | ( | long int | iz, | |
long int | in, | |||
long int * | imax, | |||
long int * | ig0, | |||
long int * | ig1 | |||
) |
atmdat_outer_shell determine outer shell, and statistical weights of that and higher ion, for any ion written by Dima Verner
[in] | iz | atomic number from 1 to 30 |
[in] | in | number of electrons from 1 to iz |
[out] | *imax | number of the outer shell |
[out] | *ig0 | statistical weight of (iz,in) ground state |
[out] | *ig1 | statistical weight of (iz,in-1) ground state |
Definition at line 8 of file atmdat_outer_shell.cpp.
References DEBUG_ENTRY, and ioQQQ.
Referenced by atmdat_readin(), and RT_diffuse().
void atmdat_readin | ( | void | ) |
atmdat_readin read in some data files, but only if this is very first call
Definition at line 149 of file atmdat_readin.cpp.
References t_struc::AccelGravity, t_struc::AccelTotalOutward, AllTransitions, ASSERT, atmdat, atmdat_2phot_setSplineCoefs(), atmdat_outer_shell(), EmissionProxy::Aul(), EmissionProxy::AutoIonizFrac(), TransitionList::back(), TransitionList::begin(), cdEXIT, t_elementnames::chElementSym, t_struc::coolstr, cs1_flag_lev2, EmissionProxy::dampXvel(), database_readin(), DEBUG_ENTRY, t_struc::DenMass, t_struc::DenParticles, dense, t_atmdat::Density, t_struc::depth, t_struc::depth_last, dprintf(), t_struc::drad, t_struc::drad_last, t_struc::drad_x_fillfac, DynaCreateArrays(), t_struc::ednstr, eina(), t_atmdat::ElecTemp, elementnames, TransitionProxy::Emis(), TransitionList::Emis(), t_atmdat::Emiss, TransitionProxy::EnergyWN(), EXIT_FAILURE, EXIT_SUCCESS, f_cutoff, FeIICreate(), FFmtRead(), FILENAME_PATH_LENGTH_2, fixit(), fp_equal(), fp_equal_tol(), fudge(), t_MeweCoef::g, g, t_struc::gas_phase, t_struc::GasPressure, geometry, GetGF(), EmissionProxy::gf(), t_struc::H2_abund, t_struc::hden, t_struc::heatstr, Heavy, TransitionProxy::Hi(), t_struc::hiistr, t_struc::histr, HS_NZ, HyperfineCreate(), t_yield::init_yield(), InitTransition(), Singleton< t_yield >::Inst(), ionbal, ioQQQ, ipAL_LIKE, ipHYDROGEN, ipIRON, ipLI_LIKE, ipMG_LIKE, ipNA_LIKE, ipPRD, EmissionProxy::iRedisFun(), IS_L1_SHELL, IS_L2_SHELL, iso_sp, t_iterations::iter_malloc, iterations, t_atmdat::lgChiantiHybrid, t_atmdat::lgChiantiOn, t_dense::lgElmtOn, t_ionbal::lgInnerShell_Gu06, t_ionbal::lgInnerShell_Kisielius, t_atmdat::lgLamdaOn, t_atmdat::lgStoutHybrid, t_atmdat::lgStoutOn, t_trace::lgTrace, LIMELM, lines_setup(), TransitionProxy::Lo(), MALLOC, MAX2, MeweCoef, mole_global, t_struc::molecules, t_atmdat::ncut, t_atmdat::nDensity, t_geometry::nend, NHSDIM, nint(), NISO, nLevel1, NLINEHS, nSpecies, t_Heavy::nsShells, t_atmdat::ntemp, t_mole_global::num_calc, t_mole_global::num_total, t_iso_sp::numLevels_max, nUTA, nWindLine, t_struc::nzlim, t_struc::o3str, open_data(), PI4, TransitionList::pop_back(), pow(), t_struc::pres_radiation_lines_curr, t_struc::pressure, TransitionList::push_back(), read_Helike_cross_sections(), read_SH98_He1_cross_sections(), read_whole_line(), ReadBadnellAIData(), TransitionList::reserve(), TransitionList::resize(), TransitionList::size(), t_struc::StatesElem, strstr_s(), struc, TauLine2, TauLines, t_struc::testr, TotalInsanity(), trace, UTALines, t_struc::volstr, t_struc::windv, TransitionProxy::WLAng(), t_struc::xIonDense, and t_struc::xLyman_depth.
Referenced by cloudy(), DrvCaseBHS(), and ParseCompile().
void atmdat_STOUT_readin | ( | long | intNS, | |
char * | chFileName | |||
) |
atmdat_STOUT_readin read in data from STOUT database files
intNS | ||
chFileName |
Definition at line 17 of file atmdat_chianti.cpp.
References ASSERT, atmdat, cdEXIT, t_StoutColls::collstrs, dBaseSpecies, dBaseStates, dBaseTrans, DEBUG_ENTRY, DEBUGSTATE, ENERGY_MIN_WN, EXIT_FAILURE, FFmtRead(), FILENAME_PATH_LENGTH_2, g, GetGF(), ioQQQ, ipdBaseTrans, ipELECTRON, ipNCOLLIDER, ipPROTON, t_StoutColls::lgIsRate, t_species::lgLAMDA, t_species::lgLTE, t_species::lgMolecular, t_atmdat::lgStoutPrint, t_trace::lgTrace, MALLOC, MAX2, t_species::maxWN, MIN3, nMatch(), t_atmdat::nStoutMaxLevels, t_StoutColls::ntemps, t_species::numLevels_local, t_species::numLevels_max, open_data(), read_whole_line(), RefIndex(), StoutCollData, t_StoutColls::temps, trace, and uncaps().
Referenced by database_readin().
void ChargTranEval | ( | void | ) |
atmdat fill in the HCharExcIonOf and Rec arrays with Kingdon's fitted CT with H,
Definition at line 44 of file atmdat_char_tran.cpp.
References t_phycon::alnte, atmdat, conv, DEBUG_ENTRY, fp_equal(), t_atmdat::HCharExcIonOf, t_atmdat::HCharExcRecTo, t_atmdat::HCharExcRecTo_N0_2D, HCTIon(), HCTRecom(), t_atmdat::HeCharExcIonOf, t_atmdat::HeCharExcRecTo, HMRATE, ipALUMINIUM, ipARGON, ipCARBON, ipCHLORINE, ipHELIUM, ipIRON, ipLITHIUM, ipMAGNESIUM, ipMANGANESE, ipNEON, ipNICKEL, ipNITROGEN, ipOXYGEN, ipPHOSPHORUS, ipPOTASSIUM, ipSILICON, ipSODIUM, ipSULPHUR, ipTITANIUM, t_atmdat::lgCTOn, t_mole_global::lgLeidenHack, LIMELM, MIN2, mole_global, t_conv::nTotalIoniz, phycon, pow(), SDIV(), sexp(), t_phycon::sqrte, t_phycon::te, t_phycon::te01, t_phycon::te03, t_phycon::te05, t_phycon::te10, t_phycon::te20, t_phycon::te30, t_phycon::te_eV, and t_phycon::tesqrd.
Referenced by ChargTranPun(), and ConvBase().
void ChargTranPun | ( | FILE * | ipPnunit, | |
char * | chSave | |||
) |
save charge transfer rate coefficients
ipPnunit | ||
chSave |
Definition at line 1729 of file atmdat_char_tran.cpp.
References abund, atmdat, cdEXIT, ChargTranEval(), t_elementnames::chElementSym, t_elementnames::chIonStage, DEBUG_ENTRY, dense, elementnames, EXIT_FAILURE, t_atmdat::HCharExcIonOf, t_atmdat::HCharExcRecTo, HCTIon(), HCTRecom(), Heavy, t_atmdat::HeCharExcIonOf, t_atmdat::HeCharExcRecTo, t_dense::IonHigh, t_dense::IonLow, ioQQQ, ipHELIUM, t_abund::lgAGN, LIMELM, phycon, t_phycon::te, TempChange(), and t_Heavy::Valence_IP_Ryd.
Referenced by SaveDo().
double ChargTranSumHeat | ( | void | ) |
sum up the charge transfer heating
Definition at line 569 of file atmdat_char_tran.cpp.
References ASSERT, atmdat, CTIonData, CTRecombData, DEBUG_ENTRY, dense, EN1EV, fixit(), FRAC, t_atmdat::HCharCoolMax, t_atmdat::HCharExcIonOf, t_atmdat::HCharExcRecTo, t_atmdat::HCharHeatMax, t_atmdat::HCharHeatOn, t_atmdat::HeCharExcIonOf, t_atmdat::HeCharExcRecTo, t_thermal::htot, ioQQQ, ipH1s, ipH_LIKE, ipHELIUM, ipHYDROGEN, ipLITHIUM, iso_sp, lgCTDataDefined, LIMELM, MAX2, MIN2, t_iso_sp::st, thermal, and t_dense::xIonDense.
Referenced by ConvBase().
double CHIANTI_Upsilon | ( | long | , | |
long | , | |||
long | , | |||
long | , | |||
double | ||||
) |
CHIANTI_Upsilon converts Chianti collision splines to collision strengths
Definition at line 692 of file species2.cpp.
References ASSERT, AtmolCollSplines, t_CollSplinesArray::collspline, dBaseSpecies, DEBUG_ENTRY, DEBUGSTATE, t_CollSplinesArray::EnergyDiff, t_CollSplinesArray::intTranType, ioQQQ, linint(), t_CollSplinesArray::nSplinePts, pow(), t_CollSplinesArray::ScalingParam, t_CollSplinesArray::SplineSecDer, and TotalInsanity().
Referenced by ChiantiCollRate(), and SaveDo().
double InterpCollRate | ( | const CollRateCoeffArray & | rate_table, | |
const long & | ipHi, | |||
const long & | ipLo, | |||
const double & | ftemp | |||
) |
Definition at line 135 of file atmdat.cpp.
References ASSERT, t_CollRatesArray::collrates, DEBUG_ENTRY, isnan, linint(), and t_CollRatesArray::temps.
Referenced by diatomics::H2_CollidRateEvalOne(), and LeidenCollRate().
void ReadCollisionRateTable | ( | CollRateCoeffArray & | coll_rate_table, | |
FILE * | io, | |||
FunctPtr | GetIndices, | |||
long | nMolLevs, | |||
long | nTemps = -1 , |
|||
long | nTrans = -1 | |||
) |
Definition at line 14 of file atmdat.cpp.
References multi_arr< T, d, ALLOC, lgBC >::alloc(), ASSERT, t_CollRatesArray::collrates, DEBUG_ENTRY, FFmtRead(), INPUT_LINE_LENGTH, read_whole_line(), multi_arr< T, d, ALLOC, lgBC >::reserve(), multi_arr< T, d, ALLOC, lgBC >::size(), t_CollRatesArray::temps, and multi_arr< T, d, ALLOC, lgBC >::zero().
Referenced by atmdat_LAMDA_readin(), and diatomics::H2_CollidRateRead().
Definition at line 6 of file atmdat.cpp.
Referenced by atmdat_3body(), atmdat_CHIANTI_readin(), atmdat_HS_caseB(), atmdat_readin(), atmdat_STOUT_readin(), ChargTranEval(), ChargTranPun(), ChargTranSumHeat(), t_ADfA::coll_ion_wrapper(), CoolDima(), CoolEvaluate(), database_readin(), DatabasePrintReference(), dBase_solve(), fill_array(), GetStandardHeLines(), GrainChrgTransferRates(), HCTRecom(), InitDefaultsPreparse(), ion_CX(), ion_photo(), ion_recomb(), IonHydro(), iso_charge_transfer_update(), iso_level(), IterStart(), lgCheckMonitors(), lgOH_ChargeTransferDominant(), lines_helium(), lines_hydro(), lines_lv1_li_ne(), mole_eval_sources(), ParseAtom(), ParseCoronal(), ParseDont(), ParseSet(), PrintRates(), PrtComment(), PrtFinal(), states_nelemfill(), and zero().
double**** HS_He1_Energy |
Definition at line 9 of file atmdat.cpp.
Referenced by GetHS98CrossSection(), and read_SH98_He1_cross_sections().
double**** HS_He1_Xsectn |
Definition at line 8 of file atmdat.cpp.
Referenced by GetHS98CrossSection(), and read_SH98_He1_cross_sections().
double***** OP_Helike_Energy |
Definition at line 11 of file atmdat.cpp.
Referenced by cross_section(), and read_Helike_cross_sections().
long**** OP_Helike_NumPts |
Definition at line 12 of file atmdat.cpp.
Referenced by cross_section(), and read_Helike_cross_sections().
double***** OP_Helike_Xsectn |
Definition at line 10 of file atmdat.cpp.
Referenced by cross_section(), and read_Helike_cross_sections().