cloudy trunk
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
atmdat.h File Reference
#include "h2_priv.h"
Include dependency graph for atmdat.h:

Go to the source code of this file.

Data Structures

struct  t_atmdat
 
class  t_ADfA
 
class  Funct
 
class  FunctLAMDA
 
class  FunctDiatoms
 

Macros

#define NHSDIM   15
 
#define NLINEHS   300
 
#define HS_NZ   8
 
#define NHCSTE   8
 
#define NUM_HS98_DATA_POINTS   811
 

Typedefs

typedef FunctFunctPtr
 

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
 

Macro Definition Documentation

◆ HS_NZ

#define HS_NZ   8

number of elements that can be read in

Definition at line 125 of file atmdat.h.

◆ NHCSTE

#define NHCSTE   8

number of temperature points in h_coll_str arrays

Definition at line 126 of file atmdat.h.

◆ NHSDIM

#define NHSDIM   15

used for following vectors

Definition at line 123 of file atmdat.h.

◆ NLINEHS

#define NLINEHS   300

dimension of array with lines

Definition at line 124 of file atmdat.h.

◆ NUM_HS98_DATA_POINTS

#define NUM_HS98_DATA_POINTS   811

Definition at line 127 of file atmdat.h.

Typedef Documentation

◆ FunctPtr

typedef Funct* FunctPtr

Definition at line 408 of file atmdat.h.

Enumeration Type Documentation

◆ phfit_version

Enumerator
PHFIT_UNDEF 
PHFIT95 
PHFIT96 

Definition at line 276 of file atmdat.h.

Function Documentation

◆ atmdat_2phot_shapefunction()

double atmdat_2phot_shapefunction ( double  EbyE2nu,
long  ipISO,
long  nelem 
)

atmdat_2phot_shapefunction two photon emission function for all atomic and ionic species

Parameters
EbyE2nu
ipISO
nelem

Definition at line 234 of file atmdat_2photon.cpp.

References ASSERT, DEBUG_ENTRY, He2NuEnergies, He2NuShapeFunc, He2NuShapeFuncY2, Hydro2NuEnergies, Hydro2NuShapeFunc, Hydro2NuShapeFuncY2, ipH_LIKE, ipHE_LIKE, lgSplinesSet, NCRS_H, NCRS_HE, and splint().

Referenced by ContCreatePointers(), and TwoPhotonSetup().

Here is the call graph for this function:

◆ atmdat_3body()

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, MAX2, MIN2, MIN3, t_atmdat::nsbig, phycon, save, t_phycon::te, and trace.

Referenced by ConvBase().

Here is the call graph for this function:

◆ atmdat_CHIANTI_readin()

void atmdat_CHIANTI_readin ( long  intNS,
char *  chFileName 
)

◆ atmdat_dielrec_fe()

double atmdat_dielrec_fe ( long int  ion,
double  t 
)

atmdat_dielrec_fe Dielectronic recombination rates for Fe from Arnaud & Raymond 1992

Parameters
ion
t

Definition at line 9 of file atmdat_dielrec_fe.cpp.

References cdEXIT, DEBUG_ENTRY, EVRYD, EXIT_FAILURE, ioQQQ, sexp(), and TE1RYD.

Referenced by ion_recom_calculate().

Here is the call graph for this function:

◆ atmdat_H_phot_cs()

void atmdat_H_phot_cs ( void  )

this initializes the arrays containing the fitting coefficients, called by OpacityCreateAll, done once per coreload

◆ atmdat_HS_caseB()

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.

Parameters
iHithe principal quantum numbers, .
iLoupper and lower levels in any order
iZcharge of ion, only 1 and 2 for now
TempIntemperature, must lie within the range of the table, which depends on the ion charge, and is 500 - 30,000K for hydrogen
DenInthe density and must lie within the range of the table
chCasecase - '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, x1, and x2.

Referenced by DrvCaseBHS(), and lines_hydro().

Here is the call graph for this function:

◆ atmdat_LAMDA_readin()

void atmdat_LAMDA_readin ( long  intNS,
char *  chFileName 
)

◆ atmdat_outer_shell()

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

Parameters
[in]izatomic number from 1 to 30
[in]innumber of electrons from 1 to iz
[out]*imaxnumber of the outer shell
[out]*ig0statistical weight of (iz,in) ground state
[out]*ig1statistical weight of (iz,in-1) ground state
Author
Dima Verner

Definition at line 8 of file atmdat_outer_shell.cpp.

References DEBUG_ENTRY, and ioQQQ.

Referenced by atmdat_readin(), and RT_diffuse().

◆ atmdat_readin()

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, TransitionList::Emis(), TransitionProxy::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(), 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().

Here is the call graph for this function:

◆ atmdat_STOUT_readin()

void atmdat_STOUT_readin ( long  intNS,
char *  chFileName 
)

◆ ChargTranEval()

void ChargTranEval ( void  )

atmdat fill in the CharExcIonOf[ipHYDROGEN] and Rec arrays with Kingdon's fitted CT with H,

Todo:
1 update ct to Kimura et al. (1996)
Todo:
1 above rate not intended for very low temperatures - find ref for low-T rate, probably is 1e-9 like above
Todo:
0 these should be values at 1e5 K
Todo:
2 not currently used - include as deexcitation process

Definition at line 44 of file atmdat_char_tran.cpp.

References t_phycon::alnte, atmdat, t_atmdat::CharExcIonOf, t_atmdat::CharExcRecTo, conv, DEBUG_ENTRY, fp_equal(), t_atmdat::HCharExcRecTo_N0_2D, HCTIon(), HCTRecom(), HMRATE, ipALUMINIUM, ipARGON, ipCARBON, ipCHLORINE, ipHELIUM, ipHYDROGEN, 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, 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().

Here is the call graph for this function:

◆ ChargTranPun()

void ChargTranPun ( FILE *  ipPnunit,
char *  chSave 
)

◆ ChargTranSumHeat()

double ChargTranSumHeat ( void  )

◆ CHIANTI_Upsilon()

double CHIANTI_Upsilon ( long  ipSpecies,
long  ipCollider,
long  ipHi,
long  ipLo,
double  ftemp 
)

CHIANTI_Upsilon converts Chianti collision splines to collision strengths

Definition at line 690 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, t_CollSplinesArray::ScalingParam, t_CollSplinesArray::SplineSecDer, and TotalInsanity().

Referenced by ChiantiCollRate(), and SaveDo().

Here is the call graph for this function:

◆ InterpCollRate()

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

Here is the call graph for this function:

◆ ReadCollisionRateTable()

void ReadCollisionRateTable ( CollRateCoeffArray coll_rate_table,
FILE *  io,
FunctPtr  GetIndices,
long  nMolLevs,
long  nTemps = -1,
long  nTrans = -1 
)

Variable Documentation

◆ atmdat

t_atmdat atmdat
extern

◆ HS_He1_Energy

double**** HS_He1_Energy
extern

Definition at line 9 of file atmdat.cpp.

Referenced by GetHS98CrossSection(), and read_SH98_He1_cross_sections().

◆ HS_He1_Xsectn

double**** HS_He1_Xsectn
extern

Definition at line 8 of file atmdat.cpp.

Referenced by GetHS98CrossSection(), and read_SH98_He1_cross_sections().

◆ OP_Helike_Energy

double***** OP_Helike_Energy
extern

Definition at line 11 of file atmdat.cpp.

Referenced by cross_section(), and read_Helike_cross_sections().

◆ OP_Helike_NumPts

long**** OP_Helike_NumPts
extern

Definition at line 12 of file atmdat.cpp.

Referenced by cross_section(), and read_Helike_cross_sections().

◆ OP_Helike_Xsectn

double***** OP_Helike_Xsectn
extern

Definition at line 10 of file atmdat.cpp.

Referenced by cross_section(), and read_Helike_cross_sections().