25 #ifndef GRINS_HITRAN_H
26 #define GRINS_HITRAN_H
34 #include "libmesh/libmesh.h"
69 HITRAN(
const std::string & data_file,
const std::string & partition_function_file,
70 libMesh::Real T_min, libMesh::Real T_max, libMesh::Real T_step);
76 libMesh::Real
nu0(
unsigned int index);
79 libMesh::Real
sw(
unsigned int index);
82 libMesh::Real
gamma_air(
unsigned int index);
88 libMesh::Real
elower(
unsigned int index);
91 libMesh::Real
n_air(
unsigned int index);
94 libMesh::Real
delta_air(
unsigned int index);
120 std::vector<libMesh::Real>
_qT0;
124 std::vector<libMesh::Real>
_nu;
125 std::vector<libMesh::Real>
_sw;
129 std::vector<libMesh::Real>
_n;
133 std::vector<std::vector<libMesh::Real>>
_qT;
142 libMesh::Real
interpolate_values(
int index_r, libMesh::Real T_star,
const std::vector<libMesh::Real> & y)
const;
150 #endif // GRINS_HITRAN_H
libMesh::Real interpolate_values(int index_r, libMesh::Real T_star, const std::vector< libMesh::Real > &y) const
Linear interpolation helper function.
std::vector< libMesh::Real > _nu
libMesh::Real elower(unsigned int index)
Lower state energy of transition [ ].
unsigned int get_data_size()
Return the data size.
libMesh::Real partition_function(libMesh::Real T, unsigned int iso)
int _data_size
Size of spectroscopic data.
libMesh::Real nu0(unsigned int index)
Linecenter wavenumber [ ].
std::vector< libMesh::Real > _sw
unsigned int isotopologue(unsigned int index)
Isotopologue ID.
std::vector< libMesh::Real > _gamma_air
std::vector< libMesh::Real > _gamma_self
libMesh::Real partition_function_derivative(libMesh::Real T, unsigned int iso)
Finite difference derivative for partition function.
std::vector< libMesh::Real > _n
libMesh::Real delta_air(unsigned int index)
Air pressure-induced line shift [ ].
libMesh::Real get_partition_function_value(libMesh::Real T, unsigned int iso)
Search through the partition function data to get value for given temperature.
libMesh::Real n_air(unsigned int index)
Temperature coefficient [].
HITRAN()
User should not call empty constructor.
libMesh::Real _T0
Reference temperature (296K)
libMesh::Real gamma_self(unsigned int index)
Self-broadening half-wdith [ ].
std::vector< libMesh::Real > _delta_air
std::vector< unsigned int > _isotop
int _q_size
Size of partition function data.
std::vector< std::vector< libMesh::Real > > _qT
Vector for partition function values for all isotopologues.
int T_index(libMesh::Real T)
Find the index into _T corresponding to the given temperature.
libMesh::Real sw(unsigned int index)
Linestrength [ ].
std::vector< libMesh::Real > _elower
libMesh::Real gamma_air(unsigned int index)
Air-broadening half-width [ ].
std::vector< libMesh::Real > _qT0