GRINS-0.8.0
|
Evaluates the Beer-Lambert Law at a given point in space. More...
#include <absorption_coeff.h>
Public Member Functions | |
AbsorptionCoeff (SharedPtr< Chemistry > &chem, SharedPtr< HITRAN > &hitran, libMesh::Real nu_min, libMesh::Real nu_max, libMesh::Real desired_nu, const std::string &species, libMesh::Real thermo_pressure) | |
virtual libMesh::Real | operator() (const libMesh::FEMContext &context, const libMesh::Point &qp_xyz, const libMesh::Real t) |
Calculate the absorption coefficient at a quadratue point. More... | |
virtual void | operator() (const libMesh::FEMContext &context, const libMesh::Point &p, const libMesh::Real time, libMesh::DenseVector< libMesh::Real > &output) |
Not used. More... | |
virtual void | derivatives (libMesh::FEMContext &context, const libMesh::Point &qp_xyz, const libMesh::Real &JxW, const unsigned int qoi_index, const libMesh::Real time) |
Calculate the derivative of the absorption coefficient at a QP with respect to all state variables. More... | |
virtual libMesh::UniquePtr< libMesh::FEMFunctionBase< libMesh::Real > > | clone () const |
Not used. More... | |
Protected Member Functions | |
libMesh::Real | kv (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Absorption coefficient [cm^-1]. More... | |
libMesh::Real | d_kv_dT (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Absorption coefficient temperature derivative. More... | |
libMesh::Real | d_kv_dP (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Absorption coefficient pressure derivative. More... | |
libMesh::Real | d_kv_dY (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Absorption coefficient mass fraction derivative. More... | |
libMesh::Real | Sw (libMesh::Real T, libMesh::Real P, unsigned int i) |
Linestrength [cm^-2 atm^-1]. More... | |
libMesh::Real | dS_dT (libMesh::Real T, libMesh::Real P, unsigned int i) |
Linestrength temperature derivative. More... | |
libMesh::Real | dS_dP (libMesh::Real T, libMesh::Real P, unsigned int i) |
Linestrength pressure derivative. More... | |
libMesh::Real | nu_D (libMesh::Real T, libMesh::Real P, unsigned int i) |
Doppler broadening [cm^-1]. More... | |
libMesh::Real | d_nuD_dT (libMesh::Real T, libMesh::Real P, unsigned int i) |
Doppler broadening temperature derivative. More... | |
libMesh::Real | d_nuD_dP (libMesh::Real T, unsigned int i) |
Doppler broadening pressure derivative. More... | |
libMesh::Real | nu_C (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Collisional broadening [cm^-1]. More... | |
libMesh::Real | d_nuC_dT (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Collisional broadening temperature derivative. More... | |
libMesh::Real | d_nuC_dP (libMesh::Real T, std::vector< libMesh::Real > Y, unsigned int i) |
Collisional broadening pressure derivative. More... | |
libMesh::Real | d_nuC_dY (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Collisional broadening mass fraction derivative. More... | |
libMesh::Real | voigt (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Calculate the Voigt profile [cm^-1]. More... | |
libMesh::Real | d_voigt_dT (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Voigt profile temperature derivative. More... | |
libMesh::Real | d_voigt_dP (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Voigt profile pressure derivative. More... | |
libMesh::Real | d_voigt_dY (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Voigt profile mass fraction derivative. More... | |
void | init_voigt () |
Initialize the coeff matrix for calculating the Voigt profile. More... | |
libMesh::Real | voigt_a (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Voigt a parameter. More... | |
libMesh::Real | d_voigt_a_dT (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Voigt a parameter temperature derivative. More... | |
libMesh::Real | d_voigt_a_dP (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Voigt a parameter pressure derivative. More... | |
libMesh::Real | d_voigt_a_dY (libMesh::Real T, libMesh::Real P, std::vector< libMesh::Real > Y, unsigned int i) |
Voigt a parameter mass fraction derivative. More... | |
libMesh::Real | voigt_w (libMesh::Real T, libMesh::Real P, unsigned int i) |
Voigt w parameter. More... | |
libMesh::Real | d_voigt_w_dT (libMesh::Real T, libMesh::Real P, unsigned int i) |
Voigt w parameter temperature derivative. More... | |
libMesh::Real | d_voigt_w_dP (libMesh::Real T, libMesh::Real P, unsigned int i) |
Voigt w parameter pressure derivative. More... | |
libMesh::Real | get_nu (libMesh::Real P, unsigned int i) |
Pressure shift of linecenter wavenumber. More... | |
libMesh::Real | d_nu_dP (unsigned int i) |
Derivative of pressure-shifted linecenter wavenumber. More... | |
libMesh::Real | dX_dY (std::vector< libMesh::Real > Y) |
Mole fraction derivative with respect to mass fraction. More... | |
libMesh::Real | dQ_dT (libMesh::Real T, unsigned int iso) |
Partition Function derivative (finite difference) More... | |
AbsorptionCoeff () | |
User should not call empty constructor. More... | |
Protected Attributes | |
SharedPtr< Chemistry > | _chemistry |
Antioch/Cantera object. More... | |
SharedPtr< HITRAN > | _hitran |
HITRAN. More... | |
libMesh::Real | _nu |
Desired wavenumber [cm^-1]. More... | |
PrimitiveTempFEVariables & | _T_var |
PressureFEVariable & | _P_var |
SpeciesMassFractionsVariable & | _Y_var |
libMesh::Real | _T0 |
Reference temperature [K]. More... | |
libMesh::Real | _Pref |
Reference pressure [atm]. More... | |
libMesh::Real | _rad_coeff |
Second radiation coefficient [cm K]. More... | |
unsigned int | _min_index |
Index of minimum wavenumber. More... | |
unsigned int | _max_index |
Index of maximum wavenumber. More... | |
libMesh::Real | _thermo_pressure |
Thermodynamic Pressure [atm]. More... | |
bool | _calc_thermo_pressure |
Flag for whether Thermodynamic Pressure is calculated or constant. More... | |
unsigned int | _species_idx |
Index for the species of interest. More... | |
std::vector< std::vector< libMesh::Real > > | _voigt_coeffs |
2D coefficient matrix for approximating the Voigt profile More... | |
Evaluates the Beer-Lambert Law at a given point in space.
It is intended to be used with the IntegratedFunction class for QoI evaluation.
We use the differential form for calculating the absorbance
This class calculates the spectral absorption coefficient, denoted above as , which is passed back to IntegratedFunction::element_qoi() to evaluate the integral Beer-Lambert law
This class operates internally in [cm], [K], and [atm] since those are the base units used in the HITRAN data. In addition, the coefficients used in calculating the Voigt profile require these units to be used.
However, values given to the physics class(es) must be in standard SI units [m] and [Pa].
A chemistry library (Antioch or Cantera) is also required.
Definition at line 63 of file absorption_coeff.h.
GRINS::AbsorptionCoeff< Chemistry >::AbsorptionCoeff | ( | SharedPtr< Chemistry > & | chem, |
SharedPtr< HITRAN > & | hitran, | ||
libMesh::Real | nu_min, | ||
libMesh::Real | nu_max, | ||
libMesh::Real | desired_nu, | ||
const std::string & | species, | ||
libMesh::Real | thermo_pressure | ||
) |
chem | AntiochChemistry or CanteraMixture object |
hitran | A HITRAN object |
nu_min | The minimum wavenumber to use in calculating , inclusive |
nu_max | The maximum wavenumber to use in calculating , inclusive |
desired_nu | Wavenumber at which to calculate the absorption, [ ] |
species | The string representing the species of interest (much match species given in input file) |
termo_pressure | The thermodynamic pressure (in [Pa]), or -1.0 if non-constant |
Definition at line 50 of file absorption_coeff.C.
References GRINS::AbsorptionCoeff< Chemistry >::_calc_thermo_pressure, GRINS::AbsorptionCoeff< Chemistry >::_chemistry, GRINS::AbsorptionCoeff< Chemistry >::_hitran, GRINS::AbsorptionCoeff< Chemistry >::_max_index, GRINS::AbsorptionCoeff< Chemistry >::_min_index, GRINS::AbsorptionCoeff< Chemistry >::_species_idx, GRINS::AbsorptionCoeff< Chemistry >::_thermo_pressure, and GRINS::AbsorptionCoeff< Chemistry >::init_voigt().
|
protected |
User should not call empty constructor.
|
virtual |
Not used.
Definition at line 237 of file absorption_coeff.C.
|
protected |
Absorption coefficient pressure derivative.
Definition at line 274 of file absorption_coeff.C.
References GRINS::Constants::atmosphere_Pa.
|
protected |
Absorption coefficient temperature derivative.
Definition at line 260 of file absorption_coeff.C.
References GRINS::Constants::atmosphere_Pa.
|
protected |
Absorption coefficient mass fraction derivative.
Definition at line 288 of file absorption_coeff.C.
References GRINS::Constants::atmosphere_Pa.
|
protected |
Derivative of pressure-shifted linecenter wavenumber.
Definition at line 724 of file absorption_coeff.C.
References GRINS::Constants::atmosphere_Pa.
|
protected |
Collisional broadening pressure derivative.
Definition at line 452 of file absorption_coeff.C.
References GRINS::Constants::atmosphere_Pa.
|
protected |
Collisional broadening temperature derivative.
Definition at line 439 of file absorption_coeff.C.
References GRINS::Constants::atmosphere_Pa.
|
protected |
Collisional broadening mass fraction derivative.
Definition at line 465 of file absorption_coeff.C.
References GRINS::Constants::atmosphere_Pa.
|
protected |
Doppler broadening pressure derivative.
Definition at line 413 of file absorption_coeff.C.
References GRINS::Constants::Avogadro, GRINS::Constants::Boltzmann, and GRINS::Constants::c_vacuum.
|
protected |
Doppler broadening temperature derivative.
Definition at line 401 of file absorption_coeff.C.
References GRINS::Constants::Avogadro, GRINS::Constants::Boltzmann, and GRINS::Constants::c_vacuum.
|
protected |
Voigt a parameter pressure derivative.
Definition at line 665 of file absorption_coeff.C.
|
protected |
Voigt a parameter temperature derivative.
Definition at line 654 of file absorption_coeff.C.
|
protected |
Voigt a parameter mass fraction derivative.
Definition at line 676 of file absorption_coeff.C.
|
protected |
Voigt profile pressure derivative.
Definition at line 548 of file absorption_coeff.C.
References GRINS::Constants::pi.
|
protected |
Voigt profile temperature derivative.
Definition at line 508 of file absorption_coeff.C.
References GRINS::Constants::pi.
|
protected |
Voigt profile mass fraction derivative.
Definition at line 588 of file absorption_coeff.C.
References GRINS::Constants::pi.
|
protected |
Voigt w parameter pressure derivative.
Definition at line 704 of file absorption_coeff.C.
|
protected |
Voigt w parameter temperature derivative.
Definition at line 694 of file absorption_coeff.C.
|
virtual |
Calculate the derivative of the absorption coefficient at a QP with respect to all state variables.
Implements GRINS::FEMFunctionAndDerivativeBase< libMesh::Real >.
Definition at line 165 of file absorption_coeff.C.
|
protected |
Partition Function derivative (finite difference)
Definition at line 744 of file absorption_coeff.C.
|
protected |
Linestrength pressure derivative.
Definition at line 366 of file absorption_coeff.C.
References GRINS::Constants::atmosphere_Pa, and GRINS::Constants::Boltzmann.
|
protected |
Linestrength temperature derivative.
Definition at line 339 of file absorption_coeff.C.
References GRINS::Constants::atmosphere_Pa, and GRINS::Constants::Boltzmann.
|
protected |
Mole fraction derivative with respect to mass fraction.
Definition at line 732 of file absorption_coeff.C.
|
protected |
Pressure shift of linecenter wavenumber.
Definition at line 715 of file absorption_coeff.C.
References GRINS::Constants::atmosphere_Pa.
|
protected |
Initialize the coeff matrix for calculating the Voigt profile.
Definition at line 621 of file absorption_coeff.C.
Referenced by GRINS::AbsorptionCoeff< Chemistry >::AbsorptionCoeff().
|
protected |
Absorption coefficient [cm^-1].
Definition at line 244 of file absorption_coeff.C.
References GRINS::Constants::atmosphere_Pa.
|
protected |
Collisional broadening [cm^-1].
Definition at line 426 of file absorption_coeff.C.
References GRINS::Constants::atmosphere_Pa.
|
protected |
Doppler broadening [cm^-1].
Definition at line 389 of file absorption_coeff.C.
References GRINS::Constants::Avogadro, GRINS::Constants::Boltzmann, and GRINS::Constants::c_vacuum.
|
virtual |
Calculate the absorption coefficient at a quadratue point.
Definition at line 124 of file absorption_coeff.C.
|
virtual |
Not used.
Definition at line 156 of file absorption_coeff.C.
|
protected |
Linestrength [cm^-2 atm^-1].
Definition at line 303 of file absorption_coeff.C.
References GRINS::Constants::atmosphere_Pa, and GRINS::Constants::Boltzmann.
|
protected |
Calculate the Voigt profile [cm^-1].
See reference:
Implementation of an efficient analytical approximation to the Voigt function for photoemission lineshape analysis
McLean A, Mitchell C, Swanston D
Journal of Electron Spectroscopy and Related Phenomena 1994 vol: 69 (2) pp: 125-132
Definition at line 477 of file absorption_coeff.C.
References GRINS::Constants::pi.
|
protected |
Voigt a parameter.
Definition at line 645 of file absorption_coeff.C.
|
protected |
Voigt w parameter.
Definition at line 685 of file absorption_coeff.C.
|
protected |
Flag for whether Thermodynamic Pressure is calculated or constant.
Definition at line 133 of file absorption_coeff.h.
Referenced by GRINS::AbsorptionCoeff< Chemistry >::AbsorptionCoeff().
|
protected |
Antioch/Cantera object.
Definition at line 102 of file absorption_coeff.h.
Referenced by GRINS::AbsorptionCoeff< Chemistry >::AbsorptionCoeff().
|
protected |
Definition at line 105 of file absorption_coeff.h.
Referenced by GRINS::AbsorptionCoeff< Chemistry >::AbsorptionCoeff().
|
protected |
Index of maximum wavenumber.
Definition at line 127 of file absorption_coeff.h.
Referenced by GRINS::AbsorptionCoeff< Chemistry >::AbsorptionCoeff().
|
protected |
Index of minimum wavenumber.
Definition at line 124 of file absorption_coeff.h.
Referenced by GRINS::AbsorptionCoeff< Chemistry >::AbsorptionCoeff().
|
protected |
Desired wavenumber [cm^-1].
Definition at line 108 of file absorption_coeff.h.
|
protected |
Definition at line 111 of file absorption_coeff.h.
|
protected |
Reference pressure [atm].
Definition at line 118 of file absorption_coeff.h.
|
protected |
Second radiation coefficient [cm K].
Definition at line 121 of file absorption_coeff.h.
|
protected |
Index for the species of interest.
Definition at line 136 of file absorption_coeff.h.
Referenced by GRINS::AbsorptionCoeff< Chemistry >::AbsorptionCoeff().
|
protected |
Reference temperature [K].
Definition at line 115 of file absorption_coeff.h.
|
protected |
Definition at line 110 of file absorption_coeff.h.
|
protected |
Thermodynamic Pressure [atm].
Definition at line 130 of file absorption_coeff.h.
Referenced by GRINS::AbsorptionCoeff< Chemistry >::AbsorptionCoeff().
|
protected |
2D coefficient matrix for approximating the Voigt profile
Definition at line 139 of file absorption_coeff.h.
|
protected |
Definition at line 112 of file absorption_coeff.h.