ARTS
2.3.1285(git:92a29ea9-dirty)
|
Main line shape model class. More...
#include <linefunctiondata.h>
Public Member Functions | |
Model () noexcept | |
Model (Numeric sgam, Numeric nself, Numeric agam, Numeric nair, Numeric psf, std::array< Numeric, nmaxInterpModels > interp={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}) noexcept | |
Model (const SingleSpeciesModel &bath, Type type) noexcept | |
Model (Type type, bool self, bool bath, const ArrayOfSpeciesTag &species, const std::vector< SingleSpeciesModel > &ssms) | |
bool | same_broadening_species (const Model &other) const noexcept |
Vector | vmrs (const ConstVectorView &atmospheric_vmrs, const ArrayOfArrayOfSpeciesTag &atmospheric_species, const QuantumIdentifier &self) const |
Index | this_species (const Index &self_species) const noexcept |
Index | this_species (const QuantumIdentifier &self) const noexcept |
LSPC (G0, P) LSPC(G2 | |
P | LSPC (D0, P) LSPC(D2 |
P P | LSPC (ETA, 1) LSPC(FVC |
P P P | LSPC (Y, P) LSPC(G |
P P P P *P | LSPC (DV, P *P) LSPC(G0 |
P P P P *P P | LSPC (G2, P) LSPC(D0 |
P P P P *P P P | LSPC (D2, P) LSPC(ETA |
P P P P *P P P | LSPC (FVC, P) LSPC(Y |
P P P P *P P P P | LSPC (G, P *P) LSPC(DV |
LSPC (G0, P) LSPC(G2 | |
P | LSPC (D0, P) LSPC(D2 |
P P | LSPC (ETA, 1) LSPC(FVC |
P P P | LSPC (Y, P) LSPC(G |
P P P P *P | LSPC (DV, P *P) LSPDC(G0 |
P P P P *P P | LSPDC (G0, _dX0, P) LSPDC(G0 |
P P P P *P P P | LSPDC (G0, _dX2, P) LSPDC(G2 |
P P P P *P P P P | LSPDC (G2, _dX0, P) LSPDC(G2 |
P P P P *P P P P P | LSPDC (G2, _dX2, P) LSPDC(D0 |
P P P P *P P P P P P | LSPDC (D0, _dX0, P) LSPDC(D0 |
P P P P *P P P P P P P | LSPDC (D0, _dX2, P) LSPDC(D2 |
P P P P *P P P P P P P P | LSPDC (D2, _dX0, P) LSPDC(D2 |
P P P P *P P P P P P P P P | LSPDC (D2, _dX2, P) LSPDC(ETA |
P P P P *P P P P P P P P P | LSPDC (ETA, _dX0, 1) LSPDC(ETA |
P P P P *P P P P P P P P P | LSPDC (ETA, _dX2, 1) LSPDC(FVC |
P P P P *P P P P P P P P P P | LSPDC (FVC, _dX0, P) LSPDC(FVC |
P P P P *P P P P P P P P P P P | LSPDC (FVC, _dX2, P) LSPDC(Y |
P P P P *P P P P P P P P P P P P | LSPDC (Y, _dX0, P) LSPDC(Y |
P P P P *P P P P P P P P P P P P P | LSPDC (Y, _dX2, P) LSPDC(G |
P P P P *P P P P P P P P P P P P P P *P | LSPDC (G, _dX0, P *P) LSPDC(G |
P P P P *P P P P P P P P P P P P P P *P P *P | LSPDC (G, _dX2, P *P) LSPDC(DV |
P P P P *P P P P P P P P P P P P P P *P P *P P *P | LSPDC (DV, _dX0, P *P) LSPDC(DV |
P P P P *P P P P P P P P P P P P P P *P P *P P *P P *P | LSPDC (DV, _dX2, P *P) Output GetParams(Numeric T |
Output | GetTemperatureDerivs (Numeric T, Numeric T0, Numeric P, const Vector &vmrs) const |
Output | GetVMRDerivs (Numeric T, Numeric T0, Numeric P, const Index pos) const noexcept |
Numeric | GetInternalDeriv (Numeric T, Numeric T0, Numeric P, Index pos, const Vector &vmrs, JacPropMatType deriv) const |
Index | nelem () const |
void | resize (Index n) |
void | reserve (Index n) |
Type | ModelType () const noexcept |
bool | Self () const noexcept |
bool | Bath () const noexcept |
const std::vector< SingleSpeciesModel > & | Data () const noexcept |
const ArrayOfSpeciesTag & | Species () const noexcept |
std::vector< SingleSpeciesModel > & | Data () noexcept |
void | Set (const ModelParameters ¶m, const String &spec, const Variable var) |
ModelParameters | Get (const String &spec, const Variable var) const |
void | Remove (Index i) |
void | SetLineMixingModel (SingleSpeciesModel x) |
Model (Index n=0) noexcept | |
Default init just sets the size. More... | |
Model (const std::vector< SingleSpeciesModel > &assm) noexcept | |
Init from copying a vector. More... | |
Model (const Model &m) noexcept | |
Init from copying itself. More... | |
Model (std::vector< SingleSpeciesModel > &&assm) noexcept | |
Init from moving a vector. More... | |
Model (Model &&m) noexcept | |
Init from moving a itself. More... | |
Model & | operator= (const Model &m) |
Copy and equals. More... | |
Model & | operator= (Model &&m) |
Move and equals. More... | |
Model (Numeric sgam, Numeric nself, Numeric agam, Numeric nair, Numeric psf, std::array< Numeric, 12 > aer_interp={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}) noexcept | |
Standard HITRAN init. More... | |
bool | OK (Type type, bool self, bool bath, const std::vector< SpeciesTag > &species) const noexcept |
The Model is good to use. More... | |
Output | GetParams (Numeric T, Numeric T0, Numeric P, ConstVectorView vmrs) const noexcept |
Compute all shape parameters. More... | |
Output | GetTemperatureDerivs (Numeric T, Numeric T0, Numeric P, ConstVectorView vmrs) const noexcept |
Derivative of GetParams(...) wrt T. More... | |
Output | GetVMRDerivs (Numeric T, Numeric T0, Numeric P, const Index pos) const noexcept |
Derivative of GetParams(...) wrt VMR. More... | |
Numeric | GetInternalDeriv (Numeric T, Numeric T0, Numeric P, Index pos, ConstVectorView vmrs, JacPropMatType deriv) const noexcept |
Derivative of GetParams(...) wrt Coefficient. More... | |
Index | nelem () const |
Number of species in Model. More... | |
Index | size () const |
Number of species in Model. More... | |
void | resize (Index n) |
Resize function for Model. More... | |
void | reserve (Index n) |
Reserve function for Model. More... | |
SingleSpeciesModel & | operator[] (Index i) |
Get a SingleSpeciesModel. More... | |
const SingleSpeciesModel & | operator[] (Index i) const |
Get a SingleSpeciesModel. More... | |
const std::vector< SingleSpeciesModel > & | Data () const noexcept |
The line shape model data. More... | |
std::vector< SingleSpeciesModel > & | Data () noexcept |
The line shape model data reference. More... | |
void | Remove (Index i, ArrayOfSpeciesTag &specs) |
Remove species and data at position. More... | |
void | SetLineMixingModel (SingleSpeciesModel x) |
Sets the same line mixing model to all species. More... | |
bool | Match (const Model &other) const noexcept |
bifstream & | read (bifstream &bif) |
Binary read for Model. More... | |
bofstream & | write (bofstream &bof) const |
Binary write for Model. More... | |
Public Attributes | |
P P P P *P | _dT0 |
P P P P *P P | _dX1 |
P P P P *P P P | _dT0 |
P P P P *P P P P | _dX1 |
P P P P *P P P P P | _dT0 |
P P P P *P P P P P P | _dX1 |
P P P P *P P P P P P P | _dT0 |
P P P P *P P P P P P P P | _dX1 |
P P P P *P P P P P P P P P | _dT0 |
P P P P *P P P P P P P P P | _dX1 |
P P P P *P P P P P P P P P P | _dX1 |
P P P P *P P P P P P P P P P P | _dT0 |
P P P P *P P P P P P P P P P P P | _dX1 |
P P P P *P P P P P P P P P P P P P | _dT0 |
P P P P *P P P P P P P P P P P P P P *P | _dX1 |
P P P P *P P P P P P P P P P P P P P *P P *P | _dT0 |
P P P P *P P P P P P P P P P P P P P *P P *P P *P | _dX1 |
P P P P *P P P P P P P P P P P P P P *P P *P P *P P *P Numeric | T0 |
P P P P *P P P P P P P P P P P P P P *P P *P P *P P *P Numeric Numeric | P |
P P P P *P P P P P P P P P P P P P P *P P *P P *P P *P Numeric Numeric const Vector &vmrs | const |
Private Member Functions | |
bool | OK () const noexcept |
Private Attributes | |
Type | mtype |
bool | mself |
bool | mbath |
ArrayOfSpeciesTag | mspecies |
std::vector< SingleSpeciesModel > | mdata |
Friends | |
std::istream & | operator>> (std::istream &is, Model &m) |
std::ostream & | operator<< (std::ostream &os, const Model &m) |
std::istream & | from_artscat4 (std::istream &is, Model &lsc, const QuantumIdentifier &qid) |
std::istream & | from_linefunctiondata (std::istream &data, Model &lsc) |
std::istream & | from_linefunctiondata (std::istream &data, Type &type, bool &self, bool &bath, Model &m, ArrayOfSpeciesTag &species) |
std::istream & | from_artscat4 (std::istream &is, Type &type, bool &self, bool &bath, Model &m, ArrayOfSpeciesTag &species, const QuantumIdentifier &qid) |
Main line shape model class.
Computes the line shape parameters for a given atmosphere
Definition at line 576 of file linefunctiondata.h.
|
inlinenoexcept |
Definition at line 596 of file linefunctiondata.h.
|
inlinenoexcept |
Definition at line 600 of file linefunctiondata.h.
References LineShape::D0, LineShape::G0, interp(), LineShape::T1, LineShape::T5, and LineShape::VP.
|
inlinenoexcept |
Definition at line 612 of file linefunctiondata.h.
|
inline |
Definition at line 615 of file linefunctiondata.h.
|
inlinenoexcept |
Default init just sets the size.
Definition at line 978 of file lineshapemodel.h.
|
inlineexplicitnoexcept |
Init from copying a vector.
Definition at line 981 of file lineshapemodel.h.
Init from copying itself.
Definition at line 984 of file lineshapemodel.h.
|
inlineexplicitnoexcept |
Init from moving a vector.
Definition at line 987 of file lineshapemodel.h.
|
inlinenoexcept |
Init from moving a itself.
Definition at line 990 of file lineshapemodel.h.
|
inlinenoexcept |
Standard HITRAN init.
[in] | sgam | Self pressure broadening coefficient |
[in] | nself | Self pressure broadening exponent |
[in] | agam | Air pressure broadening coefficient |
[in] | nair | Air pressure broadening exponent |
[in] | psf | All pressure shifting coefficient |
[in] | interp | The interpolation variable for AER type line mixing |
Definition at line 1007 of file lineshapemodel.h.
References LineShape::LM_AER, LineShape::T1, and LineShape::T5.
|
inlinenoexcept |
Definition at line 803 of file linefunctiondata.h.
|
inlinenoexcept |
Definition at line 804 of file linefunctiondata.h.
Referenced by LineShape::ModelShape2MetaData(), Absorption::SingleLine::SetLineMixing2AER(), LineShape::LegacyPressureBroadeningData::vector2modelpb(), and LineShape::vmrs().
|
inlinenoexcept |
Definition at line 807 of file linefunctiondata.h.
References linalg::var().
|
inlinenoexcept |
The line shape model data.
Definition at line 1345 of file lineshapemodel.h.
|
inlinenoexcept |
The line shape model data reference.
Definition at line 1348 of file lineshapemodel.h.
|
inline |
Definition at line 811 of file linefunctiondata.h.
References i, Absorption::nelem(), and SpeciesTag::Species().
|
inline |
Definition at line 768 of file linefunctiondata.h.
References LineShape::G0, and RETURNINTERNALDERIVATIVE.
|
inlinenoexcept |
Derivative of GetParams(...) wrt Coefficient.
[in] | T | The temperature |
[in] | T0 | The temperature used to derive the coefficients |
[in] | P | The pressure |
[in] | pos | Position of species in mspecies |
[in] | vmrs | The VMR vector as derived by this.vmrs() |
[in] | deriv | The derivative |
Definition at line 1274 of file lineshapemodel.h.
References LineShape::D0, LineShape::D2, LineShape::FVC, LineShape::G0, LineShape::G2, and RETURNINTERNALDERIVATIVE.
|
inlinenoexcept |
Compute all shape parameters.
[in] | T | The temperature |
[in] | T0 | The temperature used to derive the coefficients |
[in] | P | The pressure |
[in] | vmrs | The VMR vector as derived by this.vmrs() |
Definition at line 1202 of file lineshapemodel.h.
References LineShape::D0, LineShape::D2, LineShape::DV, LineShape::ETA, LineShape::FVC, LineShape::G, LineShape::G0, LineShape::G2, and LineShape::Y.
|
inline |
Definition at line 754 of file linefunctiondata.h.
|
inlinenoexcept |
Derivative of GetParams(...) wrt T.
[in] | T | The temperature |
[in] | T0 | The temperature used to derive the coefficients |
[in] | P | The pressure |
[in] | vmrs | The VMR vector as derived by this.vmrs() |
Definition at line 1226 of file lineshapemodel.h.
|
inlinenoexcept |
Definition at line 761 of file linefunctiondata.h.
References LineShape::T0.
|
inlinenoexcept |
Derivative of GetParams(...) wrt VMR.
[in] | T | The temperature |
[in] | T0 | The temperature used to derive the coefficients |
[in] | P | The pressure |
[in] | pos | Position of species in mspecies |
Definition at line 1250 of file lineshapemodel.h.
P P P P* P P P P P P P P P P P P P P* P P* P P* P P* P LineShape::Model::LSPDC | ( | DV | , |
_dX2 | , | ||
P * | P | ||
) |
Definition at line 1380 of file lineshapemodel.h.
References data, LineShape::from_artscat4(), and LineShape::from_linefunctiondata().
|
inlinenoexcept |
Definition at line 801 of file linefunctiondata.h.
|
inline |
Definition at line 792 of file linefunctiondata.h.
References Array< base >::nelem().
Referenced by Absorption::SingleLine::LineShapeElems(), LineShape::operator<<(), LineShape::operator>>(), Set(), and Absorption::SingleLine::SingleLine().
|
inline |
Number of species in Model.
Definition at line 1308 of file lineshapemodel.h.
|
inlineprivatenoexcept |
Definition at line 584 of file linefunctiondata.h.
References n.
|
inlinenoexcept |
The Model is good to use.
Definition at line 1049 of file lineshapemodel.h.
References n.
Move and equals.
Definition at line 996 of file lineshapemodel.h.
|
inline |
Get a SingleSpeciesModel.
[in] | i | Position in mdata |
Definition at line 1334 of file lineshapemodel.h.
|
inline |
Get a SingleSpeciesModel.
[in] | i | Position in mdata |
Definition at line 1341 of file lineshapemodel.h.
Binary read for Model.
Definition at line 1403 of file lineshapemodel.h.
Referenced by Absorption::SingleLine::read().
|
inline |
Definition at line 834 of file linefunctiondata.h.
References Absorption::nelem().
|
inline |
Remove species and data at position.
Uses standard algorithm "erase" to remove, see it for behavior when an error occurs
[in] | i | Index of position to remove |
Definition at line 1357 of file lineshapemodel.h.
|
inline |
Definition at line 794 of file linefunctiondata.h.
References data, LineShape::from_artscat4(), LineShape::from_linefunctiondata(), LineShape::operator<<(), and LineShape::operator>>().
|
inline |
Reserve function for Model.
Just reserves, does nothing with the new data
[in] | n | New reserves of mspecies and mdata |
Definition at line 1327 of file lineshapemodel.h.
|
inline |
Definition at line 793 of file linefunctiondata.h.
|
inline |
Resize function for Model.
Just resizes, does nothing with the new data
[in] | n | New size of mspecies and mdata |
Definition at line 1319 of file lineshapemodel.h.
Definition at line 623 of file linefunctiondata.h.
References i, Array< base >::nelem(), and Species.
|
inlinenoexcept |
Definition at line 802 of file linefunctiondata.h.
void LineShape::Model::Set | ( | const ModelParameters & | param, |
const String & | spec, | ||
const Variable | var | ||
) |
Definition at line 393 of file linefunctiondata.cc.
References i, mbath, mdata, mself, mspecies, nelem(), and SpeciesTag::Species().
|
inline |
Definition at line 841 of file linefunctiondata.h.
References data, LineShape::from_artscat4(), LineShape::from_linefunctiondata(), LineShape::from_linemixingdata(), LineShape::from_pressurebroadeningdata(), LineShape::SingleSpeciesModel::Interp(), and LineShape::LM_AER.
Referenced by Absorption::SingleLine::SetLineMixing2SecondOrderData().
|
inline |
Sets the same line mixing model to all species.
Looks at x and sets it Y, G and DV values to all the Y, G, and DV values in this
If LM_AER is used, Interp data is written over as well otherwise it remains untouched
[in] | x | Model containing new line mixing data |
Definition at line 1372 of file lineshapemodel.h.
|
inline |
Number of species in Model.
Definition at line 1311 of file lineshapemodel.h.
|
inlinenoexcept |
Definition at line 805 of file linefunctiondata.h.
Definition at line 686 of file linefunctiondata.h.
References i, Absorption::nelem(), and Species.
|
inlinenoexcept |
Definition at line 695 of file linefunctiondata.h.
References LineShape::D0, LineShape::D2, LineShape::DV, LineShape::ETA, LineShape::FVC, LineShape::G, LineShape::G0, LineShape::G2, LSPC, Species, and LineShape::Y.
|
inline |
Definition at line 639 of file linefunctiondata.h.
References LineShape::DP, i, Array< base >::nelem(), ConstVectorView::nelem(), Species, and ConstVectorView::sum().
Binary write for Model.
Definition at line 1410 of file lineshapemodel.h.
References LineShape::D0, LineShape::D2, data, LineShape::DPL, LineShape::DV, LineShape::ETA, LineShape::from_artscat4(), LineShape::from_linefunctiondata(), LineShape::from_linemixingdata(), LineShape::from_pressurebroadeningdata(), LineShape::FVC, LineShape::G, LineShape::G0, LineShape::G2, LineShape::LegacyLineFunctionData::linemixingtag2variablesvector(), LineShape::LegacyLineFunctionData::lineshapetag2variablesvector(), LineShape::LM_AER, LineShape::MetaData2ModelShape(), LineShape::ModelMetaDataArray(), LineShape::ModelShape2MetaData(), LineShape::None, LineShape::operator<<(), LineShape::operator>>(), LineShape::T0, LineShape::T1, LineShape::T2, LineShape::T3, LineShape::T4, LineShape::T5, LineShape::LegacyLineFunctionData::temperaturemodel2legacynelem(), and LineShape::Y.
Referenced by Absorption::SingleLine::write().
|
friend |
|
friend |
|
friend |
|
friend |
Definition at line 858 of file linefunctiondata.h.
|
friend |
Definition at line 871 of file linefunctiondata.h.
Definition at line 736 of file linefunctiondata.h.
Definition at line 740 of file linefunctiondata.h.
Definition at line 742 of file linefunctiondata.h.
Definition at line 743 of file linefunctiondata.h.
Definition at line 744 of file linefunctiondata.h.
Definition at line 740 of file linefunctiondata.h.
Definition at line 741 of file linefunctiondata.h.
Definition at line 742 of file linefunctiondata.h.
Definition at line 743 of file linefunctiondata.h.
Definition at line 744 of file linefunctiondata.h.
|
private |
Definition at line 580 of file linefunctiondata.h.
Referenced by LineShape::from_artscat4(), LineShape::from_linefunctiondata(), LineShape::operator<<(), LineShape::operator>>(), and Set().
|
private |
Definition at line 582 of file linefunctiondata.h.
Referenced by LineShape::from_artscat4(), LineShape::from_linefunctiondata(), LineShape::operator<<(), operator=(), LineShape::operator>>(), and Set().
|
private |
Definition at line 579 of file linefunctiondata.h.
Referenced by LineShape::from_artscat4(), LineShape::from_linefunctiondata(), LineShape::operator<<(), LineShape::operator>>(), and Set().
|
private |
Definition at line 581 of file linefunctiondata.h.
Referenced by LineShape::from_artscat4(), LineShape::from_linefunctiondata(), LineShape::operator<<(), LineShape::operator>>(), and Set().
|
private |
Definition at line 578 of file linefunctiondata.h.
Referenced by LineShape::from_artscat4(), LineShape::from_linefunctiondata(), LineShape::operator<<(), and LineShape::operator>>().
Definition at line 747 of file linefunctiondata.h.
Definition at line 747 of file linefunctiondata.h.