ARTS
2.0.49
|
Declarations required for the calculation of absorption coefficients. More...
#include <stdexcept>
#include "matpackI.h"
#include "array.h"
#include "mystring.h"
#include "make_array.h"
#include "messages.h"
Go to the source code of this file.
Classes | |
class | LineshapeRecord |
Lineshape related information. More... | |
class | LineshapeNormRecord |
Lineshape related normalization function information. More... | |
class | LineshapeSpec |
Lineshape related specification like which lineshape to use, the normalizationfactor, and the cutoff. More... | |
class | IsotopeRecord |
Contains the lookup data for one isotope. More... | |
class | SpeciesRecord |
Contains the lookup data for one species. More... | |
class | LineRecord |
Spectral line catalog data. More... | |
class | SpecIsoMap |
Typedefs | |
typedef void(* | lsf_type) (Vector &, Vector &, Numeric, Numeric, Numeric, VectorView, const Index) |
The type that is used to store pointers to lineshape functions. More... | |
typedef void(* | lsnf_type) (Vector &, Numeric, VectorView, const Numeric, const Index) |
The type that is used to store pointers to lineshape normalization functions. More... | |
typedef Array< LineshapeSpec > | ArrayOfLineshapeSpec |
Holds a list of lineshape specifications: function, normalization, cutoff. More... | |
typedef Array< LineRecord > | ArrayOfLineRecord |
Holds a list of spectral line data. More... | |
typedef Array< Array< LineRecord > > | ArrayOfArrayOfLineRecord |
Holds a lists of spectral line data for each tag group. More... | |
Functions | |
ostream & | operator<< (ostream &os, const LineshapeSpec &lsspec) |
ostream & | operator<< (ostream &os, const LineRecord &lr) |
Output operator for LineRecord. More... | |
void | define_species_map () |
Define the species data map. More... | |
void | write_lines_to_stream (ostream &os, const ArrayOfLineRecord &abs_lines) |
void | xsec_species (MatrixView xsec, ConstVectorView f_mono, ConstVectorView abs_p, ConstVectorView abs_t, ConstVectorView h2o_abs, ConstVectorView vmr, const ArrayOfLineRecord &abs_lines, const Index ind_ls, const Index ind_lsn, const Numeric cutoff, const Verbosity &verbosity) |
Calculate line absorption cross sections for one tag group. More... | |
Numeric | wavenumber_to_joule (Numeric e) |
A little helper function to convert energy from units of wavenumber (cm^-1) to Joule (J). More... | |
void | refr_index_BoudourisDryAir (Vector &refr_index, ConstVectorView abs_p, ConstVectorView abs_t) |
Calculates the refractive index for dry air at microwave frequncies following Boudouris 1963. More... | |
void | refr_index_Boudouris (Vector &refr_index, ConstVectorView abs_p, ConstVectorView abs_t, ConstVectorView h2o_abs) |
Calculates the refractive index at microwave frequncies following Boudouris 1963. More... | |
void | convHitranIERF (Numeric &mdf, const Index &df) |
void | convHitranIERSH (Numeric &mdh, const Index &dh) |
void | convMytranIER (Numeric &mdh, const Index &dh) |
Declarations required for the calculation of absorption coefficients.
This is the file from arts-1-0, back-ported to arts-1-1.
Definition in file absorption.h.
typedef Array< Array<LineRecord> > ArrayOfArrayOfLineRecord |
Holds a lists of spectral line data for each tag group.
Dimensions: (tag_groups.nelem()) (number of lines for this tag)
Definition at line 1196 of file absorption.h.
typedef Array<LineRecord> ArrayOfLineRecord |
Holds a list of spectral line data.
Definition at line 1191 of file absorption.h.
typedef Array<LineshapeSpec> ArrayOfLineshapeSpec |
Holds a list of lineshape specifications: function, normalization, cutoff.
Definition at line 175 of file absorption.h.
The type that is used to store pointers to lineshape functions.
Definition at line 40 of file absorption.h.
typedef void(* lsnf_type) (Vector &, Numeric, VectorView, const Numeric, const Index) |
The type that is used to store pointers to lineshape normalization functions.
Definition at line 85 of file absorption.h.
Definition at line 2867 of file absorption.cc.
Referenced by LineRecord::ReadFromHitran2004Stream(), and LineRecord::ReadFromHitranStream().
Definition at line 2914 of file absorption.cc.
Referenced by LineRecord::ReadFromHitran2004Stream(), and LineRecord::ReadFromHitranStream().
Definition at line 2973 of file absorption.cc.
Referenced by LineRecord::ReadFromMytran2Stream().
void define_species_map | ( | ) |
Define the species data map.
Define the species data map.
Definition at line 70 of file absorption.cc.
References species_data, and SpeciesMap.
Referenced by main().
ostream& operator<< | ( | ostream & | os, |
const LineRecord & | lr | ||
) |
Output operator for LineRecord.
The result should look like a catalogue line.
Definition at line 80 of file absorption.cc.
References LineRecord::A(), LineRecord::Agam(), LineRecord::Aux(), LineRecord::dAgam(), LineRecord::Delta_CO2(), LineRecord::Delta_H2(), LineRecord::Delta_H2O(), LineRecord::Delta_He(), LineRecord::Delta_N2(), LineRecord::Delta_O2(), LineRecord::dF(), LineRecord::dI0(), LineRecord::dNair(), LineRecord::dNself(), LineRecord::dPsf(), LineRecord::dSgam(), LineRecord::Elow(), LineRecord::F(), LineRecord::G_lower(), LineRecord::G_upper(), LineRecord::Gam_N_CO2(), LineRecord::Gam_N_H2(), LineRecord::Gam_N_H2O(), LineRecord::Gam_N_He(), LineRecord::Gam_N_N2(), LineRecord::Gam_N_O2(), LineRecord::Gam_N_self(), LineRecord::Gamma_CO2(), LineRecord::Gamma_H2(), LineRecord::Gamma_H2O(), LineRecord::Gamma_He(), LineRecord::Gamma_N2(), LineRecord::Gamma_O2(), LineRecord::Gamma_self(), LineRecord::I0(), LineRecord::Nair(), LineRecord::Name(), LineRecord::Naux(), LineRecord::Nself(), precision, LineRecord::Psf(), LineRecord::Sgam(), LineRecord::Tgam(), LineRecord::Ti0(), and LineRecord::Version().
ostream& operator<< | ( | ostream & | os, |
const LineshapeSpec & | lsspec | ||
) |
Definition at line 3034 of file absorption.cc.
void refr_index_Boudouris | ( | Vector & | refr_index, |
ConstVectorView | abs_p, | ||
ConstVectorView | abs_t, | ||
ConstVectorView | abs_h2o | ||
) |
Calculates the refractive index at microwave frequncies following Boudouris 1963.
The expression is also found in Chapter 5 of the Janssen book.
refr_index | refractive index |
abs_p | absorption pressure grid |
abs_t | temperatures at abs_p |
abs_h2o | H2O vmr at abs_p |
Definition at line 2808 of file absorption.cc.
References ConstVectorView::nelem(), and Vector::resize().
void refr_index_BoudourisDryAir | ( | Vector & | refr_index, |
ConstVectorView | abs_p, | ||
ConstVectorView | abs_t | ||
) |
Calculates the refractive index for dry air at microwave frequncies following Boudouris 1963.
The expression is also found in Chapter 5 of the Janssen book.
The atmosphere is assumed to have no water vapour.
refr_index | refractive index |
abs_p | absorption pressure grid |
abs_t | temperatures at abs_p |
Definition at line 2776 of file absorption.cc.
References ConstVectorView::nelem(), and Vector::resize().
A little helper function to convert energy from units of wavenumber (cm^-1) to Joule (J).
This is used when reading HITRAN or JPL catalogue files, which have the lower state energy in cm^-1.
e | Energy in cm^-1. |
Definition at line 2845 of file absorption.cc.
References PLANCK_CONST, and SPEED_OF_LIGHT.
Referenced by linesElowToJoule(), LineRecord::ReadFromHitran2004Stream(), LineRecord::ReadFromHitranStream(), LineRecord::ReadFromJplStream(), and LineRecord::ReadFromMytran2Stream().
void write_lines_to_stream | ( | ostream & | os, |
const ArrayOfLineRecord & | abs_lines | ||
) |
void xsec_species | ( | MatrixView | xsec, |
ConstVectorView | f_grid, | ||
ConstVectorView | abs_p, | ||
ConstVectorView | abs_t, | ||
ConstVectorView | abs_h2o_orig, | ||
ConstVectorView | vmr, | ||
const ArrayOfLineRecord & | abs_lines, | ||
const Index | ind_ls, | ||
const Index | ind_lsn, | ||
const Numeric | cutoff, | ||
const Verbosity & | verbosity | ||
) |
Calculate line absorption cross sections for one tag group.
All lines in the line list must belong to the same species. This must be ensured by abs_lines_per_speciesCreateFromLines, so it is only verified with assert. Also, the input vectors abs_p, and abs_t must all have the same dimension.
This is mainly a copy of abs_species which is removed now, with the difference that the vmrs are removed from the absorption coefficient calculation. (the vmr is still used for the self broadening)
Continua are not handled by this function, you have to call xsec_continuum_tag for those.
xsec | Cross section of one tag group. This is now the true absorption cross section in units of m^2. |
f_grid | Frequency grid. |
abs_p | Pressure grid. |
abs_t | Temperatures associated with abs_p. |
abs_h2o_orig | Total volume mixing ratio of water vapor. |
vmr | Volume mixing ratio of the calculated species. |
abs_lines | The spectroscopic line list. |
ind_ls | Index to lineshape function. |
ind_lsn | Index to lineshape norm. |
cutoff | Lineshape cutoff. |
Changed from pseudo cross sections to true cross sections
Definition at line 2240 of file absorption.cc.
References IsotopeRecord::Abundance(), LineRecord::Agam(), arts_omp_get_max_threads(), arts_omp_get_thread_num(), arts_omp_in_parallel(), LineRecord::Aux(), AVOGADROS_NUMB, BOLTZMAN_CONST, IsotopeRecord::CalculatePartitionFctRatio(), CREATE_OUT0, LineRecord::Elow(), exit_or_rethrow(), LineRecord::F(), fac(), LineRecord::I0(), is_sorted(), LineRecord::IsotopeData(), joker, lineshape_data, lineshape_norm_data, IsotopeRecord::Mass(), LineRecord::Nair(), LineRecord::Naux(), ConstMatrixView::ncols(), Array< base >::nelem(), ConstVectorView::nelem(), ConstMatrixView::nrows(), LineRecord::Nself(), PLANCK_CONST, LineRecord::Psf(), LineRecord::Sgam(), SPEED_OF_LIGHT, LineRecord::Tgam(), and LineRecord::Ti0().
Referenced by abs_xsec_per_speciesAddLines().