hitran2refr  Richard J. Mathar, J. Opt. A: Pure Appl. Opt. 9 (2007) 470
Classes | Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions | Static Private Attributes | List of all members
Air Class Reference
Collaboration diagram for Air:
Collaboration graph

Classes

struct  compon
 

Public Member Functions

 Air (const double temp, const double press)
 
 Air (const double temp, const double press, const double relhum, const double co2, const double o2, const double h2o, const double o3, const bool useV, const string dir, int fcount, char *argv[])
 
 ~Air ()
 
void Qsum ()
 
complex< double > suscep (const double lambda)
 
double magn (const double useV)
 
double ppmCO2 () const
 
double Pa (double &mols, const bool excludh2o) const
 
int hash2o (const int molecNo) const
 

Public Attributes

double T
 
double Panom
 
struct componmix
 
int mixcnt
 

Static Public Attributes

static bool scale_p
 

Private Member Functions

void scaledry (const bool useV)
 
void scale (const bool useV, const set< int > excl)
 

Static Private Attributes

static const double volrel []
 
static const char * nam []
 

Constructor & Destructor Documentation

◆ Air() [1/2]

Air::Air ( const double  temp,
const double  press 
)

Default Ctor.

Parameters
[in]temp
[in]press

◆ Air() [2/2]

Air::Air ( const double  temp,
const double  press,
const double  relhum,
const double  co2,
const double  o2,
const double  h2o,
const double  o3,
const bool  useV,
const string  dir,
int  fcount,
char *  argv[] 
)

Constructor with files defining constituents.

Parameters
[in]temp
[in]press
[in]relhum
[in]co2
[in]h2o
[in]useV
[in]dir
[in]fcount
[in]

◆ ~Air()

Air::~Air ( )

Member Function Documentation

◆ hash2o()

int Air::hash2o ( const int  molecNo) const

Check if water is in the molecular list.

Parameters
[in]molecNothe HITRAN molecular number to search for. Chose 1 for water, for example.
Returns
the index (position) of water in the line list. -1 if absent.

◆ magn()

double Air::magn ( const double  useV)

Compute the magnetic susceptibility.

Parameters
[in]useVif true, use virials in the equation of state
See also

◆ Pa()

double Air::Pa ( double &  mols,
const bool  excludh2o 
) const

Compute the total (external) pressure.

Parameters
[in]excludh2oif true, any contribution of H2O is ignored (skipped, implicitly zero)
Returns
pressure [Pa]

◆ ppmCO2()

double Air::ppmCO2 ( ) const

Return the volume fraction (roughly 370) of carbon dioxide if it was in the list of molecules included. Otherwise return zero.

Returns
CO2 volume fraction in ppmv

◆ Qsum()

void Air::Qsum ( )

◆ scale()

void Air::scale ( const bool  useV,
const set< int >  excl 
)
private
Parameters
[in]useVif true, use virials in the equation of state, else ideal gas law
[in]excllist of HITRAN molecular numbers excluded from re-scaling
Since
2008-03-19

◆ scaledry()

void Air::scaledry ( const bool  useV)
private
Parameters
[in]useVif true, use virials in the equation of state, else ideal gas law

◆ suscep()

complex< double > Air::suscep ( const double  lambda)

Member Data Documentation

◆ mix

struct compon* Air::mix

The array of the molecular constitutents

◆ mixcnt

int Air::mixcnt

Number (count) of constituents in the mix array

◆ nam

const char * Air::nam
staticprivate
Initial value:
= {
"H2O","CO2","O3","N2O","CO","CH4","O2","NO","SO2","NO2",
"NH3","HNO3","OH","HF","HCl","HBr","HI","ClO","OCS","H2CO",
"HOCl","N2","HCN","CH3Cl","H2O2","C2H2","C2H6","PH3","COF2","SF6",
"H2S","HCOOH","HO2","O","ClONO2","NO+","HOBr","C2H4","CH3OH","",
"","","","","","","","","","",
"","","","","","","","","","",
"","","","","","","","","","",
"","","","","","","","","","",
"","","","","","","","","","",
"","","","","","","","","","Ne",
"Kr","Ar","H2","He"}

Standard molecule denominations sorted in HITRAN order

◆ Panom

double Air::Panom

pressure [Pa]. Total nominal pressure

◆ scale_p

bool Air::scale_p
static

flag: if true, adjust the densities of the molecules in the dry portion to get the full Air::Panom if all partial pressures are added

◆ T

double Air::T

temperature [K]

◆ volrel

const double Air::volrel
staticprivate
Initial value:
= {
0.,3.7e-4,1.e-7,3.0e-7,1.0e-7,1.6e-6,0.20983,5.e-10,5.e-10,1.e-9,
4.e-7, 0., 3.9e-13, 0.,0.,0.,0.,0.,0.,0.,
0.,0.781, 0.,0.,0.,0.,0.,0.,0.,0.,
0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
0.,0.,0.,0.,0.,0.,0.,0.,0.,1.8e-5,
1.e-6,9.34e-3,5.e-7,5.2e-6
}

Mixing ratios of the standard air, all between 0 and 1, ordered along the HITRAN molecule numbers but shifted by one index to start with the C/C++ 0-based notation: index 0 = H2O, 1=CO2, 2=O3, 3=N2O, 4=CO, 5=CH4, 6=O2, 7=NO, 8=SO2, 9=NO2, 10=NH3, 11=HNO3 (already in NO2), 12=OH, 21=N2, ATOMS_OFFSET-1=Ne, Kr, Ar, H2, He