ARTS 2.5.4 (git: 31ce4f0e)
LineShape::Model Class Reference

Main line shape model class. More...

#include <lineshapemodel.h>

Public Member Functions

 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...
 
Modeloperator= (const Model &m)=default
 Copy and equals. More...
 
Modeloperator= (Model &&m)=default
 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::size_t nspecies) const noexcept
 The Model is good to use. More...
 
Output GetParams (Numeric T, Numeric T0, Numeric P, const ConstVectorView &vmrs) const noexcept
 Compute all shape parameters. More...
 
Output GetParams (Numeric T, Numeric T0, Numeric P, size_t k) 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, const Vector &vmrs, Jacobian::Line 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...
 
SingleSpeciesModeloperator[] (Index i)
 Get a SingleSpeciesModel. More...
 
const SingleSpeciesModeloperator[] (Index i) const
 Get a SingleSpeciesModel. More...
 
auto begin ()
 
auto end ()
 
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 Remove (Index i, ArrayOfSpecies &specs)
 
void SetLineMixingModel (SingleSpeciesModel x)
 Sets the same line mixing model to all species. More...
 
std::pair< bool, bool > Match (const Model &other) const noexcept
 
bifstreamread (bifstream &bif)
 Binary read for Model. More...
 
bofstreamwrite (bofstream &bof) const
 Binary write for Model. More...
 

Private Attributes

std::vector< SingleSpeciesModelmdata
 

Friends

std::istream & from_linefunctiondata (std::istream &data, Type &type, bool &self, bool &bath, Model &m, ArrayOfSpecies &species)
 
std::istream & from_artscat4 (std::istream &is, Type &type, bool &self, bool &bath, Model &m, ArrayOfSpecies &species, const QuantumIdentifier &qid)
 
std::ostream & operator<< (std::ostream &, const Model &)
 
std::istream & operator>> (std::istream &, Model &)
 

Detailed Description

Main line shape model class.

Computes the line shape parameters for a given atmosphere

Definition at line 589 of file lineshapemodel.h.

Constructor & Destructor Documentation

◆ Model() [1/6]

LineShape::Model::Model ( Index  n = 0)
inlinenoexcept

Default init just sets the size.

Definition at line 595 of file lineshapemodel.h.

◆ Model() [2/6]

LineShape::Model::Model ( const std::vector< SingleSpeciesModel > &  assm)
inlineexplicitnoexcept

Init from copying a vector.

Definition at line 598 of file lineshapemodel.h.

◆ Model() [3/6]

LineShape::Model::Model ( const Model m)
inlinenoexcept

Init from copying itself.

Definition at line 601 of file lineshapemodel.h.

◆ Model() [4/6]

LineShape::Model::Model ( std::vector< SingleSpeciesModel > &&  assm)
inlineexplicitnoexcept

Init from moving a vector.

Definition at line 604 of file lineshapemodel.h.

◆ Model() [5/6]

LineShape::Model::Model ( Model &&  m)
inlinenoexcept

Init from moving a itself.

Definition at line 607 of file lineshapemodel.h.

◆ Model() [6/6]

LineShape::Model::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.

Parameters
[in]sgamSelf pressure broadening coefficient
[in]nselfSelf pressure broadening exponent
[in]agamAir pressure broadening coefficient
[in]nairAir pressure broadening exponent
[in]psfAll pressure shifting coefficient
[in]interpThe interpolation variable for AER type line mixing

Definition at line 977 of file lineshapemodel.cc.

Member Function Documentation

◆ begin()

auto LineShape::Model::begin ( )
inline

Definition at line 845 of file lineshapemodel.h.

◆ Data() [1/2]

◆ Data() [2/2]

std::vector< SingleSpeciesModel > & LineShape::Model::Data ( )
inlinenoexcept

The line shape model data reference.

Definition at line 852 of file lineshapemodel.h.

◆ end()

auto LineShape::Model::end ( )
inline

Definition at line 846 of file lineshapemodel.h.

◆ GetInternalDeriv()

Numeric LineShape::Model::GetInternalDeriv ( Numeric  T,
Numeric  T0,
Numeric  P,
Index  pos,
const Vector vmrs,
Jacobian::Line  deriv 
) const
noexcept

Derivative of GetParams(...) wrt Coefficient.

Parameters
[in]TThe temperature
[in]T0The temperature used to derive the coefficients
[in]PThe pressure
[in]posPosition of species in mspecies
[in]vmrsThe VMR vector as derived by this.vmrs()
[in]derivThe derivative
Returns
Derivative of GetParams(...) wrt Coefficient

Definition at line 1268 of file lineshapemodel.cc.

◆ GetParams() [1/2]

Output LineShape::Model::GetParams ( Numeric  T,
Numeric  T0,
Numeric  P,
const ConstVectorView vmrs 
) const
noexcept

Compute all shape parameters.

Parameters
[in]TThe temperature
[in]T0The temperature used to derive the coefficients
[in]PThe pressure
[in]vmrsThe VMR vector as derived by this.vmrs()
Returns
Shape parameters

Definition at line 1211 of file lineshapemodel.cc.

◆ GetParams() [2/2]

Output LineShape::Model::GetParams ( Numeric  T,
Numeric  T0,
Numeric  P,
size_t  k 
) const
noexcept

Compute all shape parameters.

Parameters
[in]TThe temperature
[in]T0The temperature used to derive the coefficients
[in]PThe pressure
[in]kThe position of the single species shape parameters
Returns
Shape parameters

Definition at line 1226 of file lineshapemodel.cc.

◆ GetTemperatureDerivs()

Output LineShape::Model::GetTemperatureDerivs ( Numeric  T,
Numeric  T0,
Numeric  P,
ConstVectorView  vmrs 
) const
noexcept

Derivative of GetParams(...) wrt T.

Parameters
[in]TThe temperature
[in]T0The temperature used to derive the coefficients
[in]PThe pressure
[in]vmrsThe VMR vector as derived by this.vmrs()
Returns
Derivative of GetParams(...) wrt T

Definition at line 1241 of file lineshapemodel.cc.

◆ GetVMRDerivs()

Output LineShape::Model::GetVMRDerivs ( Numeric  T,
Numeric  T0,
Numeric  P,
const Index  pos 
) const
noexcept

Derivative of GetParams(...) wrt VMR.

Parameters
[in]TThe temperature
[in]T0The temperature used to derive the coefficients
[in]PThe pressure
[in]posPosition of species in mspecies
Returns
Derivative of GetParams(...) wrt VMR

Definition at line 1256 of file lineshapemodel.cc.

◆ Match()

std::pair< bool, bool > LineShape::Model::Match ( const Model other) const
noexcept

Definition at line 1319 of file lineshapemodel.cc.

References Absorption::nelem().

◆ nelem()

Index LineShape::Model::nelem ( ) const
inline

Number of species in Model.

Definition at line 810 of file lineshapemodel.h.

◆ OK()

bool LineShape::Model::OK ( Type  type,
bool  self,
bool  bath,
const std::size_t  nspecies 
) const
noexcept

The Model is good to use.

Returns
true/false

Definition at line 1071 of file lineshapemodel.cc.

◆ operator=() [1/2]

Model & LineShape::Model::operator= ( const Model m)
default

Copy and equals.

◆ operator=() [2/2]

Model & LineShape::Model::operator= ( Model &&  m)
default

Move and equals.

◆ operator[]() [1/2]

SingleSpeciesModel & LineShape::Model::operator[] ( Index  i)
inline

Get a SingleSpeciesModel.

Parameters
[in]iPosition in mdata
Returns
reference to SingleSpeciesModel

Definition at line 836 of file lineshapemodel.h.

◆ operator[]() [2/2]

const SingleSpeciesModel & LineShape::Model::operator[] ( Index  i) const
inline

Get a SingleSpeciesModel.

Parameters
[in]iPosition in mdata
Returns
reference to SingleSpeciesModel

Definition at line 843 of file lineshapemodel.h.

◆ read()

bifstream & LineShape::Model::read ( bifstream bif)

Binary read for Model.

Definition at line 1333 of file lineshapemodel.cc.

References mdata.

Referenced by Absorption::SingleLine::read().

◆ Remove() [1/2]

void LineShape::Model::Remove ( Index  i,
ArrayOfSpecies specs 
)

Definition at line 1306 of file lineshapemodel.cc.

References mdata.

◆ Remove() [2/2]

void LineShape::Model::Remove ( Index  i,
ArrayOfSpeciesTag specs 
)

Remove species and data at position.

Uses standard algorithm "erase" to remove, see it for behavior when an error occurs

Parameters
[in]iIndex of position to remove

Definition at line 1301 of file lineshapemodel.cc.

References mdata.

Referenced by LineShape::from_artscat4().

◆ reserve()

void LineShape::Model::reserve ( Index  n)
inline

Reserve function for Model.

Just reserves, does nothing with the new data

Parameters
[in]nNew reserves of mspecies and mdata

Definition at line 829 of file lineshapemodel.h.

◆ resize()

void LineShape::Model::resize ( Index  n)
inline

Resize function for Model.

Just resizes, does nothing with the new data

Parameters
[in]nNew size of mspecies and mdata

Definition at line 821 of file lineshapemodel.h.

◆ SetLineMixingModel()

void LineShape::Model::SetLineMixingModel ( SingleSpeciesModel  x)

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

Parameters
[in]xModel containing new line mixing data

Definition at line 1311 of file lineshapemodel.cc.

References mdata.

Referenced by Absorption::ReadFromArtscat5Stream(), and Absorption::SingleLine::SetLineMixing2SecondOrderData().

◆ size()

Index LineShape::Model::size ( ) const
inline

Number of species in Model.

Definition at line 813 of file lineshapemodel.h.

◆ write()

bofstream & LineShape::Model::write ( bofstream bof) const

Binary write for Model.

Definition at line 1339 of file lineshapemodel.cc.

References mdata.

Referenced by Absorption::SingleLine::write().

Friends And Related Function Documentation

◆ from_artscat4

std::istream & from_artscat4 ( std::istream &  is,
Type &  type,
bool &  self,
bool &  bath,
Model m,
ArrayOfSpecies species,
const QuantumIdentifier qid 
)
friend

◆ from_linefunctiondata

std::istream & from_linefunctiondata ( std::istream &  data,
Type &  type,
bool &  self,
bool &  bath,
Model m,
ArrayOfSpecies species 
)
friend

◆ operator<<

std::ostream & operator<< ( std::ostream &  os,
const Model m 
)
friend

Definition at line 544 of file lineshapemodel.cc.

◆ operator>>

std::istream & operator>> ( std::istream &  is,
Model m 
)
friend

Definition at line 549 of file lineshapemodel.cc.

Member Data Documentation

◆ mdata

std::vector<SingleSpeciesModel> LineShape::Model::mdata
private

The documentation for this class was generated from the following files: