Cloudy
Spectral Synthesis Code for Astrophysics
Loading...
Searching...
No Matches
atmdat.h File Reference
#include "container_classes.h"
#include "module.h"
#include "h2_priv.h"
Include dependency graph for atmdat.h:

Go to the source code of this file.

Classes

class  CollRateCoeffArray
 
class  CollSplinesArray
 
struct  StoutColls
 
class  StoutCollArray
 
struct  t_atmdat
 
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
 

Functions

void LoadIsotopes ()
 
double atmdat_2phot_shapefunction (double EbyE2nu, long ipISO, long nelem)
 
void atmdat_readin (void)
 
void atmdat_STOUT_readin (long intNS, const string &chFileName)
 
void atmdat_CHIANTI_readin (long intNS, const string &chFileName)
 
void atmdat_LAMDA_readin (long intNS, const string &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)
 
string db_comment_tran_levels (const string &clo="", const string &chi="")
 

Variables

multi_arr< double, 4 > HS_He1_Xsectn
 
multi_arr< double, 4 > HS_He1_Energy
 
multi_arr< vector< double >, 4 > OP_Helike_Xsectn
 
multi_arr< vector< double >, 4 > OP_Helike_Energy
 
multi_arr< long, 4 > OP_Helike_NumPts
 
t_atmdat atmdat
 

Macro Definition Documentation

◆ HS_NZ

#define HS_NZ   8

number of elements that can be read in

Referenced by atmdat_HS_caseB(), IterStart(), lines_hydro(), and read_Hummer_Storey().

◆ NHCSTE

#define NHCSTE   8

number of temperature points in h_coll_str arrays

Referenced by HCSAR_interp(), and t_ADfA::t_ADfA().

◆ NHSDIM

#define NHSDIM   15

used for following vectors

Referenced by read_Hummer_Storey().

◆ NLINEHS

#define NLINEHS   300

dimension of array with lines

Referenced by atmdat_HS_caseB(), and read_Hummer_Storey().

◆ NUM_HS98_DATA_POINTS

#define NUM_HS98_DATA_POINTS   811

Typedef Documentation

◆ FunctPtr

typedef Funct* FunctPtr

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

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

References atmdat, da(), DEBUG_ENTRY, dense, fprintf(), ionbal, ioQQQ, LIMELM, MAX2, MIN2, MIN3, phycon, save, and trace.

Referenced by ConvBase().

Here is the call graph for this function:

◆ atmdat_CHIANTI_readin()

◆ 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

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), ioQQQ, powpq(), and sexp().

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

References HS_He1_Energy, HS_He1_Xsectn, OP_Helike_Energy, OP_Helike_NumPts, and OP_Helike_Xsectn.

◆ 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'

References ASSERT, atmdat, cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, exp10(), fp_equal(), HS_NZ, NLINEHS, x1, and x2.

Referenced by lines_hydro().

Here is the call graph for this function:

◆ atmdat_LAMDA_readin()

void atmdat_LAMDA_readin ( long intNS,
const string & 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

References DEBUG_ENTRY, fprintf(), and ioQQQ.

Referenced by atmdat_readin(), and RT_diffuse().

Here is the call graph for this function:

◆ atmdat_readin()

◆ atmdat_STOUT_readin()

◆ 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

References atmdat, conv, DEBUG_ENTRY, fp_equal(), HCTIon(), HCTRecom(), hmrate4(), ipALUMINIUM, ipARGON, ipCARBON, ipCHLORINE, ipHELIUM, ipHYDROGEN, ipIRON, ipLITHIUM, ipMAGNESIUM, ipMANGANESE, ipNEON, ipNICKEL, ipNITROGEN, ipOXYGEN, ipPHOSPHORUS, ipPOTASSIUM, ipSILICON, ipSODIUM, ipSULPHUR, ipTITANIUM, LIMELM, MIN2, mole_global, phycon, pow(), SDIV(), and sexp().

Referenced by ChargTranPun(), and ConvBase().

Here is the call graph for this function:

◆ ChargTranPun()

void ChargTranPun ( FILE * ipPnunit,
char * chSave )

save charge transfer rate coefficients

Parameters
ipPnunit
chSave

References abund, ASSERT, atmdat, cdEXIT, ChargTranEval(), DEBUG_ENTRY, dense, elementnames, EXIT_FAILURE, fprintf(), HCTIon(), HCTRecom(), Heavy, ion_trim_untrim(), ioQQQ, ipHELIUM, ipHYDROGEN, LIMELM, phycon, and TempChange().

Referenced by SaveDo().

Here is the call graph for this function:

◆ ChargTranSumHeat()

double ChargTranSumHeat ( void )

sum up the charge transfer heating

Returns

References ASSERT, atmdat, CTIonData, CTRecombData, DEBUG_ENTRY, dense, fixit, fprintf(), FRAC, ioQQQ, ipH1s, ipH_LIKE, ipHELIUM, ipHYDROGEN, ipLITHIUM, iso_sp, lgCTDataDefined, LIMELM, MAX2, MIN2, and thermal.

Referenced by ConvBase().

Here is the call graph for this function:

◆ CHIANTI_Upsilon()

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

CHIANTI_Upsilon converts Chianti collision splines to collision strengths

References ASSERT, AtmolCollSplines, dBaseSpecies, DEBUG_ENTRY, DEBUGSTATE, exp10(), fprintf(), ioQQQ, linint(), splint(), and TotalInsanity().

Referenced by ChiantiCollRate(), and SaveDo().

Here is the call graph for this function:

◆ db_comment_tran_levels()

string db_comment_tran_levels ( const string & clo = "",
const string & chi = "" )
inline

◆ InterpCollRate()

double InterpCollRate ( const CollRateCoeffArray & rate_table,
const long & ipHi,
const long & ipLo,
const double & ftemp )

References ASSERT, CollRateCoeffArray::collrates, DEBUG_ENTRY, isnan, linint(), and CollRateCoeffArray::temps.

Referenced by diatomics::H2_CollidRateEvalOne(), and LeidenCollRate().

Here is the call graph for this function:

◆ LoadIsotopes()

void LoadIsotopes ( )

LoadIsotopes read in the nuclear isotope data and allocate space

References abund, ASSERT, cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, FFmtRead(), fprintf(), ioQQQ, open_data(), and read_whole_line().

Referenced by cloudy(), and grid_do().

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

◆ HS_He1_Energy

multi_arr<double,4> HS_He1_Energy
extern

◆ HS_He1_Xsectn

multi_arr<double,4> HS_He1_Xsectn
extern

◆ OP_Helike_Energy

multi_arr<vector<double>,4> OP_Helike_Energy
extern

◆ OP_Helike_NumPts

multi_arr<long,4> OP_Helike_NumPts
extern

◆ OP_Helike_Xsectn

multi_arr<vector<double>,4> OP_Helike_Xsectn
extern