Go to the documentation of this file.
50 if (mode ==
"VP") intmode = lm_hitran_2017::ModeOfLineMixing::VP;
51 else if (mode ==
"VP_Y") intmode = lm_hitran_2017::ModeOfLineMixing::VP_Y;
52 else if (mode ==
"SDVP") intmode = lm_hitran_2017::ModeOfLineMixing::SDVP;
53 else if (mode ==
"SDVP_Y") intmode = lm_hitran_2017::ModeOfLineMixing::SDVP_Y;
54 else if (mode ==
"FullW") intmode = lm_hitran_2017::ModeOfLineMixing::FullW;
56 else throw std::runtime_error(
"Bad mode, see method instruction for valid arguments");
59 throw std::runtime_error(
"Bad size of input species+lines");
63 std::for_each(lines.begin(), lines.end(), [](
auto& band){band.sort_by_frequency();});
79 if (used[k])
continue;
87 (lines[k].AllLines().front().
F0() <= uf and lines[k].AllLines().back().
F0() >= lf)) {
109 throw std::runtime_error(
"Cannot support any Jacobian at this time");
111 throw std::runtime_error(
"Bad size of input species+lines");
113 throw std::runtime_error(
"Bad size of input species+vmrs");
119 for (
auto& spec: specs) {
133 abs_lines_per_species[i].front().Population() == Absorption::PopulationType::ByHITRANRosenkranzRelmat))
ArrayOfRetrievalQuantity jacobian_quantities(Workspace &ws) noexcept
HitranRelaxationMatrixData abs_hitran_relmat_data(Workspace &ws) noexcept
ModeOfLineMixing
Class that controls ReadFromLineMixingStream output.
ArrayOfArrayOfAbsorptionLines abs_lines_per_species(Workspace &ws) noexcept
Vector rtp_vmr(Workspace &ws) noexcept
QuantumIdentifier::QType Index LowerQuantumNumbers Species
void read(HitranRelaxationMatrixData &hitran, ArrayOfAbsorptionLines &bands, const String &basedir, const Numeric linemixinglimit, const Numeric fmin, const Numeric fmax, const Numeric stot, const ModeOfLineMixing mode)
Read from HITRAN online line mixing file.
const Array< SpeciesRecord > species_data
Species Data.
Auxiliary data for isotopologues.
This can be used to make arrays out of anything.
A tag group can consist of the sum of several of these.
Index nelem(const Lines &l)
Number of lines.
ArrayOfArrayOfSpeciesTag abs_species(Workspace &ws) noexcept
NUMERIC Numeric
The type to use for all floating point numbers.
Vector f_grid(Workspace &ws) noexcept
Stuff related to the propagation matrix.
Numeric rtp_pressure(Workspace &ws) noexcept
void abs_hitran_relmat_dataReadHitranRelmatDataAndLines(HitranRelaxationMatrixData &abs_hitran_relmat_data, ArrayOfArrayOfAbsorptionLines &abs_lines_per_species, const ArrayOfArrayOfSpeciesTag &abs_species, const String &basedir, const Numeric &linemixinglimit, const Numeric &fmin, const Numeric &fmax, const Numeric &stot, const String &mode, const Verbosity &)
WORKSPACE METHOD: abs_hitran_relmat_dataReadHitranRelmatDataAndLines.
void propmat_clearskyAddHitranLineMixingLines(ArrayOfPropagationMatrix &propmat_clearsky, const HitranRelaxationMatrixData &abs_hitran_relmat_data, const ArrayOfArrayOfAbsorptionLines &abs_lines_per_species, const Vector &f_grid, const ArrayOfArrayOfSpeciesTag &abs_species, const ArrayOfRetrievalQuantity &jacobian_quantities, const SpeciesAuxData &partition_functions, const Numeric &rtp_pressure, const Numeric &rtp_temperature, const Vector &rtp_vmr, const Verbosity &)
WORKSPACE METHOD: propmat_clearskyAddHitranLineMixingLines.
QuantumIdentifier::QType Isotopologue
Numeric rtp_temperature(Workspace &ws) noexcept
SpeciesAuxData partition_functions(Workspace &ws) noexcept
Vector compute(const Numeric p, const Numeric t, const Numeric xco2, const Numeric xh2o, const ConstVectorView invcm_grid, const Numeric stotmax, const calctype type)
INDEX Index
The type to use for all integer numbers and indices.
ArrayOfPropagationMatrix propmat_clearsky(Workspace &ws) noexcept
Index nelem() const
Number of elements.
Vector vmrs(const ConstVectorView &atmospheric_vmrs, const ArrayOfArrayOfSpeciesTag &atmospheric_species, const QuantumIdentifier &self, const ArrayOfSpeciesTag &lineshape_species, bool self_in_list, bool bath_in_list, Type type)
Returns a VMR vector for this model's main calculations.
Namespace and functions to deal with HITRAN linemixing.