11#include "matpack_complex.h"
36 EquivalentLines(
const ComplexMatrix& W,
const Vector& pop,
const Vector& dip)
noexcept;
73 Species::Species
spec{Species::Species::Bath};
81 spec(inspec),
scaling(LineShapeTemperatureModel::T0, 0, 0, 0, 0),
82 beta(LineShapeTemperatureModel::T0, 0, 0, 0, 0),
83 lambda(LineShapeTemperatureModel::T0, 0, 0, 0, 0),
86 [[nodiscard]] Numeric
Q(
const Rational J,
89 const Numeric energy)
const;
91 [[nodiscard]] Numeric
Omega(
const Numeric T,
93 const Numeric other_mass,
94 const Numeric energy_x,
95 const Numeric energy_xm2)
const;
101 constexpr bool operator==(Species::Species species)
const noexcept {
102 return species ==
spec;
134 return band_id.part_of(
id);
137 [[nodiscard]] Index
pos(Species::Species spec)
const;
139 [[nodiscard]] Index
size() const noexcept {
return data.size(); }
153 return * (begin() + i);
158 return * (begin() + i);
170 EcsReturn(ComplexVector&& abs_, ArrayOfComplexVector&& dabs_,
bool error_) noexcept :
193 const Numeric this_vmr,
196 const Vector& f_grid,
207 const Tensor4& tempdata,
208 const Vector& temperatures,
237 const Numeric frenorm,
242 const Index broadener);
270 const Vector& temperatures,
275 const bool rosenkranz_adaptation,
290 const Vector& temperatures,
292 const Vector& pressures);
Declarations required for the calculation of absorption coefficients.
Index nelem() const ARTS_NOEXCEPT
#define ARTS_ASSERT(condition,...)
Implementation of gridded fields.
Constains various line scaling functions.
EquivalentLines eigenvalue_adaptation_of_relmat(const ComplexMatrix &W, const Vector &pop, const Vector &dip, const AbsorptionLines &band, const Numeric frenorm, const Numeric T, const Numeric P, const Numeric QT, const Numeric QT0, const Index broadener)
Adapts the relaxation matrix eigenvalues to a form where they represent additions towards the three R...
void ecs_eigenvalue_adaptation(AbsorptionLines &band, const Vector &temperatures, const ErrorCorrectedSuddenData &ecs_data, const Numeric P0, const Index ord, const bool robust, const bool rosenkranz_adaptation, const Verbosity &verbosity)
EcsReturn ecs_absorption(const Numeric T, const Numeric H, const Numeric P, const Numeric this_vmr, const Vector &vmrs, const ErrorCorrectedSuddenData &ecs_data, const Vector &f_grid, const Zeeman::Polarization zeeman_polarization, const AbsorptionLines &band, const ArrayOfRetrievalQuantity &jacobian_quantities)
Index band_eigenvalue_adaptation(AbsorptionLines &band, const Tensor4 &tempdata, const Vector &temperatures, const Numeric P0, const Index ord)
Adapts the band to the temperature data.
Tensor5 ecs_eigenvalue_adaptation_test(const AbsorptionLines &band, const Vector &temperatures, const ErrorCorrectedSuddenData &ecs_data, const Vector &pressures)
std::function< Numeric(const Rational)> EnergyFunction
Polarization
Zeeman polarization selection.
ArrayOfComplexVector dabs
EcsReturn(EcsReturn &&) noexcept=default
Contains recomputed equivalent lines (sorting is unknown)
void sort_by_frequency(Vector &f, const ArrayOfIndex &sorting)
EquivalentLines(Index n=0) noexcept
friend std::ostream & operator<<(std::ostream &os, const EquivalentLines &eqv)
Rovibrational line mixing data following the ideas of Collisional Effects On Molecular Spectra by J.
friend std::istream & operator>>(std::istream &is, ErrorCorrectedSuddenData &rbd)
bool operator==(const QuantumIdentifier &band_id) const noexcept
friend std::ostream & operator<<(std::ostream &os, const ErrorCorrectedSuddenData &rbd)
ArrayOfSpeciesErrorCorrectedSuddenData data
Data of species data The program is considered ill-formed if data does not contain a Bath-species,...
Index size() const noexcept
Index pos(Species::Species spec) const
const SpeciesErrorCorrectedSuddenData & operator[](Species::Species spec) const
ErrorCorrectedSuddenData(QuantumIdentifier qid={}) noexcept
friend std::ostream & operator<<(std::ostream &os, const MapOfErrorCorrectedSuddenData &m)
ErrorCorrectedSuddenData & operator[](Index i) ARTS_NOEXCEPT
const ErrorCorrectedSuddenData & operator[](Index i) const ARTS_NOEXCEPT
ErrorCorrectedSuddenData & operator[](const QuantumIdentifier &id)
Contains the population distribution and dipole.
ArrayOfIndex sort(const AbsorptionLines &band) noexcept
LineShapeModelParameters collisional_distance
friend std::istream & operator>>(std::istream &is, SpeciesErrorCorrectedSuddenData &srbd)
constexpr SpeciesErrorCorrectedSuddenData(Species::Species inspec=Species::Species::Bath) noexcept
LineShapeModelParameters lambda
LineShapeModelParameters beta
Numeric Omega(const Numeric T, const Numeric T0, const Numeric other_mass, const Numeric energy_x, const Numeric energy_xm2) const
LineShapeModelParameters scaling
constexpr bool operator==(Species::Species species) const noexcept
Numeric Q(const Rational J, const Numeric T, const Numeric T0, const Numeric energy) const
friend std::ostream & operator<<(std::ostream &os, const SpeciesErrorCorrectedSuddenData &srbd)
Coefficients and temperature model for SingleSpeciesModel.
A logical struct for global quantum numbers with species identifiers.
Headers and class definition of Zeeman modeling.