56 else throw std::runtime_error(
"Bad mode, see method instruction for valid arguments");
58 if (abs_species.
nelem() not_eq abs_lines_per_species.
nelem())
59 throw std::runtime_error(
"Bad size of input species+lines");
62 lm_hitran_2017::read(abs_hitran_relmat_data, lines, basedir, linemixinglimit, fmin, fmax, stot, intmode);
63 std::for_each(lines.begin(), lines.end(), [](
auto& band){band.sort_by_frequency();});
74 abs_lines_per_species[
i].resize(0);
79 if (used[k])
continue;
87 (lines[k].AllLines().front().
F0() <= uf and lines[k].AllLines().back().
F0() >= lf)) {
89 abs_lines_per_species[
i].push_back(lines[k]);
104 const Numeric& rtp_temperature,
108 if (jacobian_quantities.
nelem())
109 throw std::runtime_error(
"Cannot support any Jacobian at this time");
110 if (abs_species.
nelem() not_eq abs_lines_per_species.
nelem())
111 throw std::runtime_error(
"Bad size of input species+lines");
112 if (abs_species.
nelem() not_eq rtp_vmr.
nelem())
113 throw std::runtime_error(
"Bad size of input species+vmrs");
118 auto& specs = abs_species[
i];
119 for (
auto& spec: specs) {
121 vmrs[1] = rtp_vmr[
i];
124 vmrs[2] = rtp_vmr[
i];
128 vmrs[0] = 1 - vmrs[1] - vmrs[2];
131 if (abs_lines_per_species[
i].
nelem() and
134 propmat_clearsky[
i].Kjj() +=
lm_hitran_2017::compute(abs_hitran_relmat_data, abs_lines_per_species[
i], rtp_pressure, rtp_temperature, vmrs, f_grid, partition_functions);
INDEX Index
The type to use for all integer numbers and indices.
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.
ModeOfLineMixing
Class that controls ReadFromLineMixingStream output.
Index nelem() const
Number of elements.
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.
Index Species() const
Molecular species index.
Namespace and functions to deal with HITRAN linemixing.
Index nelem() const
Returns the number of elements.
const Array< SpeciesRecord > species_data
Species Data.
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.
Stuff related to the propagation matrix.
QuantumIdentifier::QType Isotopologue
A tag group can consist of the sum of several of these.
NUMERIC Numeric
The type to use for all floating point numbers.
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.
Vector compute(const Numeric p, const Numeric t, const Numeric xco2, const Numeric xh2o, const ConstVectorView invcm_grid, const Numeric stotmax, const calctype type)
This can be used to make arrays out of anything.
Index nelem(const Lines &l)
Number of lines.
Auxiliary data for isotopologues.