ARTS  2.4.0(git:4fb77825)
Absorption::Lines Class Reference

#include <absorptionlines.h>

Public Member Functions

 Lines (bool selfbroadening=false, bool bathbroadening=false, CutoffType cutoff=CutoffType::None, MirroringType mirroring=MirroringType::None, PopulationType population=PopulationType::ByLTE, NormalizationType normalization=NormalizationType::None, LineShape::Type lineshapetype=LineShape::Type::DP, Numeric T0=296, Numeric cutofffreq=-1, Numeric linemixinglimit=-1, const QuantumIdentifier &quantumidentity=QuantumIdentifier(), const std::vector< QuantumNumberType > &localquanta={}, const ArrayOfSpeciesTag &broadeningspecies={}, const std::vector< SingleLine > &lines={})
 Default initialization. More...
 
 Lines (bool selfbroadening, bool bathbroadening, size_t nlines, CutoffType cutoff, MirroringType mirroring, PopulationType population, NormalizationType normalization, LineShape::Type lineshapetype, Numeric T0, Numeric cutofffreq, Numeric linemixinglimit, const QuantumIdentifier &quantumidentity, const std::vector< QuantumNumberType > &localquanta, const ArrayOfSpeciesTag &broadeningspecies, const LineShape::Model &metamodel)
 XML-tag initialization. More...
 
void AppendSingleLine (SingleLine &&sl)
 Appends a single line to the absorption lines. More...
 
void AppendSingleLine (const SingleLine &sl)
 Appends a single line to the absorption lines. More...
 
bool MatchWithExternal (const SingleLineExternal &sle, const QuantumIdentifier &quantumidentity) const noexcept
 Checks if an external line matches this structure. More...
 
bool Match (const Lines &l) const noexcept
 Checks if another line list matches this structure. More...
 
void sort_by_frequency ()
 Sort inner line list by frequency. More...
 
void sort_by_einstein ()
 Sort inner line list by Einstein coefficient. More...
 
void truncate_global_quantum_numbers ()
 Removes all global quantum numbers. More...
 
String SpeciesName () const noexcept
 Species Name. More...
 
String UpperQuantumNumbers () const noexcept
 Upper quantum numbers string. More...
 
String LowerQuantumNumbers () const noexcept
 Lower quantum numbers string. More...
 
String LineShapeMetaData () const noexcept
 Meta data for the line shape if it exists. More...
 
Index Species () const noexcept
 Species Index. More...
 
Index Isotopologue () const noexcept
 Isotopologue Index. More...
 
Index NumLines () const noexcept
 Number of lines. More...
 
const std::vector< SingleLine > & AllLines () const noexcept
 Lines. More...
 
std::vector< SingleLine > & AllLines () noexcept
 Lines. More...
 
Index NumBroadeners () const noexcept
 Number of broadening species. More...
 
Index NumLocalQuanta () const noexcept
 Number of local quantum numbers. More...
 
void RemoveUnusedLocalQuantums ()
 Remove quantum numbers that are not used by even a single line. More...
 
void RemoveLocalQuantum (size_t)
 Remove quantum numbers at the given position from all lines. More...
 
Rational LowerQuantumNumber (size_t k, QuantumNumberType qnt) const noexcept
 Quantum number lower level. More...
 
Rational UpperQuantumNumber (size_t k, QuantumNumberType qnt) const noexcept
 Quantum number upper level. More...
 
RationalLowerQuantumNumber (size_t k, QuantumNumberType qnt) noexcept
 Quantum number lower level. More...
 
RationalUpperQuantumNumber (size_t k, QuantumNumberType qnt) noexcept
 Quantum number upper level. More...
 
Index ZeemanCount (size_t k, Zeeman::Polarization type) const noexcept
 Returns the number of Zeeman split lines. More...
 
Numeric ZeemanStrength (size_t k, Zeeman::Polarization type, Index i) const noexcept
 Returns the strength of a Zeeman split line. More...
 
Numeric ZeemanSplitting (size_t k, Zeeman::Polarization type, Index i) const noexcept
 Returns the splitting of a Zeeman split line. More...
 
void SetAutomaticZeeman () noexcept
 Set Zeeman effect for all lines that have the correct quantum numbers. More...
 
Numeric F0 (size_t k) const noexcept
 Central frequency. More...
 
NumericF0 (size_t k) noexcept
 Central frequency. More...
 
Numeric F_mean () const noexcept
 Mean frequency by weight of line strengt. More...
 
Numeric F_mean (const ConstVectorView wgts) const noexcept
 Mean frequency by weight of line strengt. More...
 
Numeric E0 (size_t k) const noexcept
 Lower level energy. More...
 
NumericE0 (size_t k) noexcept
 Lower level energy. More...
 
Numeric I0 (size_t k) const noexcept
 Reference line strength. More...
 
NumericI0 (size_t k) noexcept
 Reference line strength. More...
 
Numeric A (size_t k) const noexcept
 Einstein spontaneous emission. More...
 
NumericA (size_t k) noexcept
 Einstein spontaneous emission. More...
 
Numeric g_low (size_t k) const noexcept
 Lower level statistical weight. More...
 
Numericg_low (size_t k) noexcept
 Lower level statistical weight. More...
 
Numeric g_upp (size_t k) const noexcept
 Upper level statistical weight. More...
 
Numericg_upp (size_t k) noexcept
 Upper level statistical weight. More...
 
MirroringType Mirroring () const noexcept
 Returns mirroring style. More...
 
void Mirroring (MirroringType x) noexcept
 Returns mirroring style. More...
 
NormalizationType Normalization () const noexcept
 Returns normalization style. More...
 
void Normalization (NormalizationType x) noexcept
 Returns normalization style. More...
 
CutoffType Cutoff () const noexcept
 Returns cutoff style. More...
 
void Cutoff (CutoffType x) noexcept
 Sets cutoff style. More...
 
PopulationType Population () const noexcept
 Returns population style. More...
 
void Population (PopulationType x) noexcept
 Sets population style. More...
 
LineShape::Type LineShapeType () const noexcept
 Returns lineshapetype style. More...
 
void LineShapeType (LineShape::Type x) noexcept
 Sets lineshapetype style. More...
 
bool DoLineMixing (Numeric P) const noexcept
 Returns if the pressure should do line mixing. More...
 
LineShape::Output ShapeParameters (size_t k, Numeric T, Numeric P, const Vector &vmrs) const noexcept
 Line shape parameters. More...
 
LineShape::Output ShapeParameters_dT (size_t k, Numeric T, Numeric P, const Vector &vmrs) const noexcept
 Line shape parameters temperature derivatives. More...
 
Index LineShapePos (const Index &spec) const noexcept
 Position among broadening species or -1. More...
 
Index LineShapePos (const QuantumIdentifier &qid) const noexcept
 Position among broadening species or -1. More...
 
LineShape::Output ShapeParameters_dVMR (size_t k, Numeric T, Numeric P, const QuantumIdentifier &vmr_qid) const noexcept
 Line shape parameters vmr derivative. More...
 
Numeric ShapeParameter_dInternal (size_t k, Numeric T, Numeric P, const Vector &vmrs, const RetrievalQuantity &derivative) const noexcept
 Line shape parameter internal derivative. More...
 
Numeric CutoffFreq (size_t k) const noexcept
 Returns cutoff frequency or maximum value. More...
 
Numeric CutoffFreqMinus (size_t k, Numeric fmean) const noexcept
 Returns negative cutoff frequency or lowest value. More...
 
Numeric T0 () const noexcept
 Returns reference temperature. More...
 
void T0 (Numeric x) noexcept
 Sets reference temperature. More...
 
Numeric CutoffFreqValue () const noexcept
 Returns internal cutoff frequency value. More...
 
void CutoffFreqValue (Numeric x) noexcept
 Sets internal cutoff frequency value. More...
 
Numeric LinemixingLimit () const noexcept
 Returns line mixing limit. More...
 
void LinemixingLimit (Numeric x) noexcept
 Sets line mixing limit. More...
 
const std::vector< QuantumNumberType > & LocalQuanta () const noexcept
 Returns local quantum numbers. More...
 
std::vector< QuantumNumberType > & LocalQuanta () noexcept
 Returns local quantum numbers. More...
 
const ArrayOfSpeciesTagBroadeningSpecies () const noexcept
 Returns the broadening species. More...
 
ArrayOfSpeciesTagBroadeningSpecies () noexcept
 Returns the broadening species. More...
 
bool Self () const noexcept
 Returns self broadening status. More...
 
void Self (bool x) noexcept
 Returns self broadening status. More...
 
bool Bath () const noexcept
 Returns bath broadening status. More...
 
void Bath (bool x) noexcept
 Returns bath broadening status. More...
 
const QuantumIdentifierQuantumIdentity () const noexcept
 Returns identity status. More...
 
QuantumIdentifierQuantumIdentity () noexcept
 Returns identity status. More...
 
QuantumIdentifier QuantumIdentityOfLine (Index k) const noexcept
 Returns identity status. More...
 
String MetaData () const
 Returns a printable statement about the lines. More...
 
void RemoveLine (Index) noexcept
 Removes a single line. More...
 
SingleLine PopLine (Index) noexcept
 Pops a single line. More...
 
SingleLineLine (Index) noexcept
 Returns a single line. More...
 
const SingleLineLine (Index) const noexcept
 Returns a single line. More...
 
void ReverseLines () noexcept
 Reverses the order of the internal lines. More...
 
Numeric SpeciesMass () const noexcept
 Mass of the molecule. More...
 
Vector BroadeningSpeciesVMR (const ConstVectorView, const ArrayOfArrayOfSpeciesTag &) const
 Returns the VMRs of the broadening species. More...
 
Numeric SelfVMR (const ConstVectorView, const ArrayOfArrayOfSpeciesTag &) const
 Returns the VMR of the species. More...
 
bifstreamread (bifstream &is)
 Binary read for Lines. More...
 
bofstreamwrite (bofstream &os) const
 Binary write for Lines. More...
 
bool OK () const noexcept
 

Static Public Member Functions

static bool validIndexForMirroring (Index x) noexcept
 Checks if index is a valid mirroring. More...
 
static MirroringType string2Mirroring (const String &in) noexcept
 
static bool validIndexForNormalization (Index x) noexcept
 Checks if index is a valid normalization. More...
 
static NormalizationType string2Normalization (const String &in) noexcept
 
static bool validIndexForCutoff (Index x) noexcept
 Checks if index is a valid cutoff. More...
 
static CutoffType string2Cutoff (const String &in) noexcept
 
static bool validIndexForPopulation (Index x) noexcept
 Checks if index is a valid population. More...
 
static PopulationType string2Population (const String &in) noexcept
 
static bool validIndexForLineShapeType (Index x) noexcept
 Checks if index is a valid lineshapetype. More...
 
static LineShape::Type string2LineShapeType (const String &type) noexcept
 

Private Attributes

bool mselfbroadening
 Does the line broadening have self broadening. More...
 
bool mbathbroadening
 Does the line broadening have bath broadening. More...
 
CutoffType mcutoff
 cutoff type, by band or by line More...
 
MirroringType mmirroring
 Mirroring type. More...
 
PopulationType mpopulation
 Line population distribution. More...
 
NormalizationType mnormalization
 Line normalization type. More...
 
LineShape::Type mlineshapetype
 Type of line shape. More...
 
Numeric mT0
 Reference temperature for all parameters of the lines. More...
 
Numeric mcutofffreq
 cutoff frequency More...
 
Numeric mlinemixinglimit
 linemixing limit More...
 
QuantumIdentifier mquantumidentity
 Catalog ID. More...
 
std::vector< QuantumNumberTypemlocalquanta
 List of local quantum numbers, these must be defined. More...
 
ArrayOfSpeciesTag mbroadeningspecies
 A list of broadening species. More...
 
std::vector< SingleLinemlines
 A list of individual lines. More...
 

Detailed Description

Definition at line 547 of file absorptionlines.h.

Constructor & Destructor Documentation

◆ Lines() [1/2]

Absorption::Lines::Lines ( bool  selfbroadening = false,
bool  bathbroadening = false,
CutoffType  cutoff = CutoffType::None,
MirroringType  mirroring = MirroringType::None,
PopulationType  population = PopulationType::ByLTE,
NormalizationType  normalization = NormalizationType::None,
LineShape::Type  lineshapetype = LineShape::Type::DP,
Numeric  T0 = 296,
Numeric  cutofffreq = -1,
Numeric  linemixinglimit = -1,
const QuantumIdentifier quantumidentity = QuantumIdentifier(),
const std::vector< QuantumNumberType > &  localquanta = {},
const ArrayOfSpeciesTag broadeningspecies = {},
const std::vector< SingleLine > &  lines = {} 
)
inline

Default initialization.

Parameters
[in]selfbroadeningDo self broadening
[in]bathbroadeningDo bath broadening
[in]cutoffType of cutoff frequency
[in]mirroringType of mirroring
[in]populationType of line strengths distributions
[in]normalizationType of normalization
[in]lineshapetypeType of line shape
[in]T0Reference temperature
[in]cutofffreqCutoff frequency
[in]linemixinglimitLine mixing limit
[in]quantumidentityIdentity of global lines
[in]localquantaList of local quantum number(s)
[in]broadeningspeciesList of broadening species
[in]linesList of SingleLine(s)

Definition at line 609 of file absorptionlines.h.

◆ Lines() [2/2]

Absorption::Lines::Lines ( bool  selfbroadening,
bool  bathbroadening,
size_t  nlines,
CutoffType  cutoff,
MirroringType  mirroring,
PopulationType  population,
NormalizationType  normalization,
LineShape::Type  lineshapetype,
Numeric  T0,
Numeric  cutofffreq,
Numeric  linemixinglimit,
const QuantumIdentifier quantumidentity,
const std::vector< QuantumNumberType > &  localquanta,
const ArrayOfSpeciesTag broadeningspecies,
const LineShape::Model metamodel 
)
inline

XML-tag initialization.

Parameters
[in]selfbroadeningDo self broadening
[in]bathbroadeningDo bath broadening
[in]nlinesNumber of SingleLine(s) to initiate as empty
[in]cutoffType of cutoff frequency
[in]mirroringType of mirroring
[in]populationType of line strengths distributions
[in]normalizationType of normalization
[in]lineshapetypeType of line shape
[in]T0Reference temperature
[in]cutofffreqCutoff frequency
[in]linemixinglimitLine mixing limit
[in]quantumidentityIdentity of global lines
[in]localquantaList of local quantum number(s)
[in]broadeningspeciesList of broadening species
[in]metamodelA line shape model with defined shapes

Definition at line 656 of file absorptionlines.h.

Member Function Documentation

◆ A() [1/2]

Numeric Absorption::Lines::A ( size_t  k) const
inlinenoexcept

Einstein spontaneous emission.

Parameters
[in]kLine number (less than NumLines())
Returns
Einstein spontaneous emission

Definition at line 1038 of file absorptionlines.h.

Referenced by Linefunctions::set_cross_section_of_band().

◆ A() [2/2]

Numeric& Absorption::Lines::A ( size_t  k)
inlinenoexcept

Einstein spontaneous emission.

Parameters
[in]kLine number (less than NumLines())
Returns
Einstein spontaneous emission

Definition at line 1045 of file absorptionlines.h.

◆ AllLines() [1/2]

const std::vector<SingleLine>& Absorption::Lines::AllLines ( ) const
inlinenoexcept

Lines.

Definition at line 855 of file absorptionlines.h.

References mlines.

Referenced by Absorption::operator<<(), and Absorption::operator>>().

◆ AllLines() [2/2]

std::vector<SingleLine>& Absorption::Lines::AllLines ( )
inlinenoexcept

Lines.

Definition at line 858 of file absorptionlines.h.

References mlines.

◆ AppendSingleLine() [1/2]

void Absorption::Lines::AppendSingleLine ( const SingleLine sl)
inline

Appends a single line to the absorption lines.

Useful for reading undefined number of lines and setting their structures

Warning: caller must guarantee that the broadening species and the quantum numbers of both levels have the correct order and the correct size. Only the sizes can be and are tested.

Parameters
[in]slA single line

Definition at line 724 of file absorptionlines.h.

References Absorption::SingleLine::LineShapeElems(), Absorption::SingleLine::LowerQuantumElems(), mlines, NumLines(), NumLocalQuanta(), and Absorption::SingleLine::UpperQuantumElems().

◆ AppendSingleLine() [2/2]

void Absorption::Lines::AppendSingleLine ( SingleLine &&  sl)
inline

Appends a single line to the absorption lines.

Useful for reading undefined number of lines and setting their structures

Warning: caller must guarantee that the broadening species and the quantum numbers of both levels have the correct order and the correct size. Only the sizes can be and are tested.

Parameters
[in]slA single line

Definition at line 700 of file absorptionlines.h.

References mlines, NumLines(), and NumLocalQuanta().

◆ Bath() [1/2]

bool Absorption::Lines::Bath ( ) const
inlinenoexcept

Returns bath broadening status.

Definition at line 1371 of file absorptionlines.h.

References mbathbroadening.

Referenced by xml_write_to_stream().

◆ Bath() [2/2]

void Absorption::Lines::Bath ( bool  x)
inlinenoexcept

Returns bath broadening status.

Definition at line 1376 of file absorptionlines.h.

References mbathbroadening, and ARTS::Var::x().

◆ BroadeningSpecies() [1/2]

const ArrayOfSpeciesTag& Absorption::Lines::BroadeningSpecies ( ) const
inlinenoexcept

Returns the broadening species.

Definition at line 1351 of file absorptionlines.h.

References mbroadeningspecies.

Referenced by xml_write_to_stream().

◆ BroadeningSpecies() [2/2]

ArrayOfSpeciesTag& Absorption::Lines::BroadeningSpecies ( )
inlinenoexcept

Returns the broadening species.

Definition at line 1356 of file absorptionlines.h.

References mbroadeningspecies.

◆ BroadeningSpeciesVMR()

Vector Absorption::Lines::BroadeningSpeciesVMR ( const ConstVectorView  atm_vmrs,
const ArrayOfArrayOfSpeciesTag atm_spec 
) const

Returns the VMRs of the broadening species.

Parameters
[in]atm_vmrsAtmospheric VMRs
[in]atm_specAtmospheric Species
Returns
VMR list of the species

Definition at line 2730 of file absorptionlines.cc.

References Self, and LineShape::vmrs().

Referenced by xsec_species().

◆ Cutoff() [1/2]

CutoffType Absorption::Lines::Cutoff ( ) const
inlinenoexcept

Returns cutoff style.

Definition at line 1128 of file absorptionlines.h.

References mcutoff.

Referenced by Linefunctions::set_cross_section_of_band(), and xml_write_to_stream().

◆ Cutoff() [2/2]

void Absorption::Lines::Cutoff ( CutoffType  x)
inlinenoexcept

Sets cutoff style.

Definition at line 1131 of file absorptionlines.h.

References mcutoff, and ARTS::Var::x().

◆ CutoffFreq()

Numeric Absorption::Lines::CutoffFreq ( size_t  k) const
inlinenoexcept

Returns cutoff frequency or maximum value.

Parameters
[in]kLine number (less than NumLines())
Returns
Cutoff frequency or 0

Definition at line 1281 of file absorptionlines.h.

Referenced by Linefunctions::set_cross_section_of_band().

◆ CutoffFreqMinus()

Numeric Absorption::Lines::CutoffFreqMinus ( size_t  k,
Numeric  fmean 
) const
inlinenoexcept

Returns negative cutoff frequency or lowest value.

Parameters
[in]kLine number (less than NumLines())
Returns
Negative cutoff frequency or the lowest value

Definition at line 1298 of file absorptionlines.h.

Referenced by Linefunctions::set_cross_section_of_band().

◆ CutoffFreqValue() [1/2]

Numeric Absorption::Lines::CutoffFreqValue ( ) const
inlinenoexcept

Returns internal cutoff frequency value.

Definition at line 1321 of file absorptionlines.h.

References mcutofffreq.

Referenced by xml_write_to_stream().

◆ CutoffFreqValue() [2/2]

void Absorption::Lines::CutoffFreqValue ( Numeric  x)
inlinenoexcept

Sets internal cutoff frequency value.

Definition at line 1326 of file absorptionlines.h.

References mcutofffreq, and ARTS::Var::x().

◆ DoLineMixing()

bool Absorption::Lines::DoLineMixing ( Numeric  P) const
inlinenoexcept

Returns if the pressure should do line mixing.

Parameters
[in]PAtmospheric pressure
Returns
true if no limit or P less than limit

Definition at line 1212 of file absorptionlines.h.

◆ E0() [1/2]

Numeric Absorption::Lines::E0 ( size_t  k) const
inlinenoexcept

Lower level energy.

Parameters
[in]kLine number (less than NumLines())
Returns
Lower level energy

Definition at line 1010 of file absorptionlines.h.

◆ E0() [2/2]

Numeric& Absorption::Lines::E0 ( size_t  k)
inlinenoexcept

Lower level energy.

Parameters
[in]kLine number (less than NumLines())
Returns
Lower level energy

Definition at line 1017 of file absorptionlines.h.

◆ F0() [1/2]

Numeric Absorption::Lines::F0 ( size_t  k) const
inlinenoexcept

Central frequency.

Parameters
[in]kLine number (less than NumLines())
Returns
Central frequency

Definition at line 970 of file absorptionlines.h.

Referenced by Linefunctions::set_cross_section_of_band().

◆ F0() [2/2]

Numeric& Absorption::Lines::F0 ( size_t  k)
inlinenoexcept

Central frequency.

Parameters
[in]kLine number (less than NumLines())
Returns
Central frequency

Definition at line 977 of file absorptionlines.h.

◆ F_mean() [1/2]

Numeric Absorption::Lines::F_mean ( ) const
inlinenoexcept

Mean frequency by weight of line strengt.

Returns
Mean frequency

Definition at line 983 of file absorptionlines.h.

References mlines.

Referenced by Linefunctions::set_cross_section_of_band().

◆ F_mean() [2/2]

Numeric Absorption::Lines::F_mean ( const ConstVectorView  wgts) const
inlinenoexcept

Mean frequency by weight of line strengt.

Parameters
[in]wgtsWeight of averaging
Returns
Mean frequency

Definition at line 997 of file absorptionlines.h.

References mlines.

◆ g_low() [1/2]

Numeric Absorption::Lines::g_low ( size_t  k) const
inlinenoexcept

Lower level statistical weight.

Parameters
[in]kLine number (less than NumLines())
Returns
Lower level statistical weight

Definition at line 1052 of file absorptionlines.h.

Referenced by Linefunctions::set_cross_section_of_band().

◆ g_low() [2/2]

Numeric& Absorption::Lines::g_low ( size_t  k)
inlinenoexcept

Lower level statistical weight.

Parameters
[in]kLine number (less than NumLines())
Returns
Lower level statistical weight

Definition at line 1059 of file absorptionlines.h.

◆ g_upp() [1/2]

Numeric Absorption::Lines::g_upp ( size_t  k) const
inlinenoexcept

Upper level statistical weight.

Parameters
[in]kLine number (less than NumLines())
Returns
Upper level statistical weight

Definition at line 1066 of file absorptionlines.h.

Referenced by Linefunctions::set_cross_section_of_band().

◆ g_upp() [2/2]

Numeric& Absorption::Lines::g_upp ( size_t  k)
inlinenoexcept

Upper level statistical weight.

Parameters
[in]kLine number (less than NumLines())
Returns
Upper level statistical weight

Definition at line 1073 of file absorptionlines.h.

◆ I0() [1/2]

Numeric Absorption::Lines::I0 ( size_t  k) const
inlinenoexcept

Reference line strength.

Parameters
[in]kLine number (less than NumLines())
Returns
Reference line strength

Definition at line 1024 of file absorptionlines.h.

◆ I0() [2/2]

Numeric& Absorption::Lines::I0 ( size_t  k)
inlinenoexcept

Reference line strength.

Parameters
[in]kLine number (less than NumLines())
Returns
Reference line strength

Definition at line 1031 of file absorptionlines.h.

◆ Isotopologue()

◆ Line() [1/2]

const Absorption::SingleLine & Absorption::Lines::Line ( Index  i) const
noexcept

Returns a single line.

Definition at line 2715 of file absorptionlines.cc.

◆ Line() [2/2]

Absorption::SingleLine & Absorption::Lines::Line ( Index  i)
noexcept

Returns a single line.

Definition at line 2709 of file absorptionlines.cc.

Referenced by Linefunctions::set_cross_section_of_band().

◆ LinemixingLimit() [1/2]

Numeric Absorption::Lines::LinemixingLimit ( ) const
inlinenoexcept

Returns line mixing limit.

Definition at line 1331 of file absorptionlines.h.

References mlinemixinglimit.

Referenced by Linefunctions::set_cross_section_of_band(), and xml_write_to_stream().

◆ LinemixingLimit() [2/2]

void Absorption::Lines::LinemixingLimit ( Numeric  x)
inlinenoexcept

Sets line mixing limit.

Definition at line 1336 of file absorptionlines.h.

References mlinemixinglimit, and ARTS::Var::x().

◆ LineShapeMetaData()

String Absorption::Lines::LineShapeMetaData ( ) const
inlinenoexcept

Meta data for the line shape if it exists.

Definition at line 839 of file absorptionlines.h.

References mlines, LineShape::ModelShape2MetaData(), and NumLines().

Referenced by xml_write_to_stream().

◆ LineShapePos() [1/2]

Index Absorption::Lines::LineShapePos ( const Index spec) const
noexcept

Position among broadening species or -1.

Parameters
[in]Aspecies index that might be among the broadener species
Returns
Position among broadening species or -1

Definition at line 84 of file absorptionlines.cc.

References Species.

Referenced by LineShapePos().

◆ LineShapePos() [2/2]

Index Absorption::Lines::LineShapePos ( const QuantumIdentifier qid) const
inlinenoexcept

Position among broadening species or -1.

Parameters
[in]Anidentity that might be among the broadener species
Returns
Position among broadening species or -1

Definition at line 1248 of file absorptionlines.h.

References LineShapePos().

◆ LineShapeType() [1/2]

LineShape::Type Absorption::Lines::LineShapeType ( ) const
inlinenoexcept

Returns lineshapetype style.

Definition at line 1180 of file absorptionlines.h.

References mlineshapetype.

Referenced by Linefunctions::set_cross_section_of_band(), and xml_write_to_stream().

◆ LineShapeType() [2/2]

void Absorption::Lines::LineShapeType ( LineShape::Type  x)
inlinenoexcept

Sets lineshapetype style.

Definition at line 1183 of file absorptionlines.h.

References mlineshapetype, and ARTS::Var::x().

◆ LocalQuanta() [1/2]

const std::vector<QuantumNumberType>& Absorption::Lines::LocalQuanta ( ) const
inlinenoexcept

Returns local quantum numbers.

Definition at line 1341 of file absorptionlines.h.

References mlocalquanta.

Referenced by xml_write_to_stream().

◆ LocalQuanta() [2/2]

std::vector<QuantumNumberType>& Absorption::Lines::LocalQuanta ( )
inlinenoexcept

Returns local quantum numbers.

Definition at line 1346 of file absorptionlines.h.

References mlocalquanta.

◆ LowerQuantumNumber() [1/2]

Rational Absorption::Lines::LowerQuantumNumber ( size_t  k,
QuantumNumberType  qnt 
) const
noexcept

Quantum number lower level.

Parameters
[in]kLine number (less than NumLines())
[in]qntQuantum number type
Returns
Quantum number

Definition at line 40 of file absorptionlines.cc.

Referenced by Absorption::id_in_line(), Absorption::id_in_line_lower(), Absorption::line_in_id(), and Absorption::line_lower_in_id().

◆ LowerQuantumNumber() [2/2]

Rational & Absorption::Lines::LowerQuantumNumber ( size_t  k,
QuantumNumberType  qnt 
)
noexcept

Quantum number lower level.

Parameters
[in]kLine number (less than NumLines())
[in]qntQuantum number type
Returns
Quantum number

Definition at line 54 of file absorptionlines.cc.

◆ LowerQuantumNumbers()

String Absorption::Lines::LowerQuantumNumbers ( ) const
noexcept

Lower quantum numbers string.

Definition at line 2570 of file absorptionlines.cc.

Referenced by xml_write_to_stream().

◆ Match()

bool Absorption::Lines::Match ( const Lines l) const
inlinenoexcept

Checks if another line list matches this structure.

Parameters
[in]sleFull external lines
[in]quantumidentityExpected global quantum id of the line

Definition at line 779 of file absorptionlines.h.

References mbathbroadening, mbroadeningspecies, mcutoff, mcutofffreq, mlinemixinglimit, mlines, mlineshapetype, mlocalquanta, mmirroring, mnormalization, mpopulation, mquantumidentity, mselfbroadening, mT0, and NumLines().

◆ MatchWithExternal()

bool Absorption::Lines::MatchWithExternal ( const SingleLineExternal sle,
const QuantumIdentifier quantumidentity 
) const
inlinenoexcept

Checks if an external line matches this structure.

Parameters
[in]sleFull external lines
[in]quantumidentityExpected global quantum id of the line

Definition at line 741 of file absorptionlines.h.

References mbathbroadening, mbroadeningspecies, mcutoff, mcutofffreq, mlinemixinglimit, mlines, mlineshapetype, mmirroring, mnormalization, mpopulation, mquantumidentity, mselfbroadening, mT0, and NumLines().

◆ MetaData()

◆ Mirroring() [1/2]

MirroringType Absorption::Lines::Mirroring ( ) const
inlinenoexcept

Returns mirroring style.

Definition at line 1076 of file absorptionlines.h.

References mmirroring.

Referenced by Linefunctions::set_cross_section_of_band(), and xml_write_to_stream().

◆ Mirroring() [2/2]

void Absorption::Lines::Mirroring ( MirroringType  x)
inlinenoexcept

Returns mirroring style.

Definition at line 1079 of file absorptionlines.h.

References mmirroring, and ARTS::Var::x().

◆ Normalization() [1/2]

NormalizationType Absorption::Lines::Normalization ( ) const
inlinenoexcept

Returns normalization style.

Definition at line 1102 of file absorptionlines.h.

References mnormalization.

Referenced by Linefunctions::set_cross_section_of_band(), and xml_write_to_stream().

◆ Normalization() [2/2]

void Absorption::Lines::Normalization ( NormalizationType  x)
inlinenoexcept

Returns normalization style.

Definition at line 1105 of file absorptionlines.h.

References mnormalization, and ARTS::Var::x().

◆ NumBroadeners()

Index Absorption::Lines::NumBroadeners ( ) const
inlinenoexcept

Number of broadening species.

Definition at line 861 of file absorptionlines.h.

References mbroadeningspecies, and Array< base >::nelem().

◆ NumLines()

Index Absorption::Lines::NumLines ( ) const
inlinenoexcept

◆ NumLocalQuanta()

Index Absorption::Lines::NumLocalQuanta ( ) const
inlinenoexcept

Number of local quantum numbers.

Definition at line 864 of file absorptionlines.h.

References mlocalquanta.

Referenced by AppendSingleLine().

◆ OK()

bool Absorption::Lines::OK ( ) const
noexcept

Definition at line 3527 of file absorptionlines.cc.

◆ PopLine()

Absorption::SingleLine Absorption::Lines::PopLine ( Index  i)
noexcept

Pops a single line.

Definition at line 2693 of file absorptionlines.cc.

◆ Population() [1/2]

PopulationType Absorption::Lines::Population ( ) const
inlinenoexcept

Returns population style.

Definition at line 1152 of file absorptionlines.h.

References mpopulation.

Referenced by Linefunctions::set_cross_section_of_band(), and xml_write_to_stream().

◆ Population() [2/2]

void Absorption::Lines::Population ( PopulationType  x)
inlinenoexcept

Sets population style.

Definition at line 1155 of file absorptionlines.h.

References mpopulation, and ARTS::Var::x().

◆ QuantumIdentity() [1/2]

◆ QuantumIdentity() [2/2]

QuantumIdentifier& Absorption::Lines::QuantumIdentity ( )
inlinenoexcept

Returns identity status.

Definition at line 1386 of file absorptionlines.h.

References mquantumidentity.

◆ QuantumIdentityOfLine()

QuantumIdentifier Absorption::Lines::QuantumIdentityOfLine ( Index  k) const
inlinenoexcept

Returns identity status.

Definition at line 1391 of file absorptionlines.h.

◆ read()

bifstream& Absorption::Lines::read ( bifstream is)
inline

Binary read for Lines.

Definition at line 1438 of file absorptionlines.h.

References mlines.

◆ RemoveLine()

void Absorption::Lines::RemoveLine ( Index  i)
noexcept

Removes a single line.

Definition at line 2687 of file absorptionlines.cc.

◆ RemoveLocalQuantum()

void Absorption::Lines::RemoveLocalQuantum ( size_t  x)

Remove quantum numbers at the given position from all lines.

Definition at line 2669 of file absorptionlines.cc.

References ARTS::Var::x().

◆ RemoveUnusedLocalQuantums()

void Absorption::Lines::RemoveUnusedLocalQuantums ( )

Remove quantum numbers that are not used by even a single line.

Definition at line 2643 of file absorptionlines.cc.

◆ ReverseLines()

void Absorption::Lines::ReverseLines ( )
noexcept

Reverses the order of the internal lines.

Definition at line 2720 of file absorptionlines.cc.

◆ Self() [1/2]

bool Absorption::Lines::Self ( ) const
inlinenoexcept

Returns self broadening status.

Definition at line 1361 of file absorptionlines.h.

References mselfbroadening.

Referenced by xml_write_to_stream().

◆ Self() [2/2]

void Absorption::Lines::Self ( bool  x)
inlinenoexcept

Returns self broadening status.

Definition at line 1366 of file absorptionlines.h.

References mselfbroadening, and ARTS::Var::x().

◆ SelfVMR()

Numeric Absorption::Lines::SelfVMR ( const ConstVectorView  atm_vmrs,
const ArrayOfArrayOfSpeciesTag atm_spec 
) const

Returns the VMR of the species.

Parameters
[in]atm_vmrsAtmospheric VMRs
[in]atm_specAtmospheric Species
Returns
VMR of the species

Definition at line 2737 of file absorptionlines.cc.

References Array< base >::nelem(), ConstVectorView::nelem(), Absorption::nelem(), and Species.

◆ SetAutomaticZeeman()

void Absorption::Lines::SetAutomaticZeeman ( )
inlinenoexcept

Set Zeeman effect for all lines that have the correct quantum numbers.

Definition at line 960 of file absorptionlines.h.

References mlines, mlocalquanta, and mquantumidentity.

◆ ShapeParameter_dInternal()

Numeric Absorption::Lines::ShapeParameter_dInternal ( size_t  k,
Numeric  T,
Numeric  P,
const Vector vmrs,
const RetrievalQuantity derivative 
) const
noexcept

Line shape parameter internal derivative.

Parameters
[in]kLine number (less than NumLines())
[in]TAtmospheric temperature
[in]PAtmospheric pressure
[in]vmrsLine broadener's volume mixing ratio
[in]derivativeType of line shape derivative
Returns
Line shape parameter internal derivative

Definition at line 131 of file absorptionlines.cc.

Referenced by Linefunctions::apply_lineshapemodel_jacobian_scaling().

◆ ShapeParameters()

LineShape::Output Absorption::Lines::ShapeParameters ( size_t  k,
Numeric  T,
Numeric  P,
const Vector vmrs 
) const
noexcept

Line shape parameters.

Parameters
[in]kLine number (less than NumLines())
[in]TAtmospheric temperature
[in]PAtmospheric pressure
[in]vmrsLine broadener species's volume mixing ratio
Returns
Line shape parameters

Definition at line 68 of file absorptionlines.cc.

Referenced by Linefunctions::set_cross_section_of_band().

◆ ShapeParameters_dT()

LineShape::Output Absorption::Lines::ShapeParameters_dT ( size_t  k,
Numeric  T,
Numeric  P,
const Vector vmrs 
) const
noexcept

Line shape parameters temperature derivatives.

Parameters
[in]kLine number (less than NumLines())
[in]TAtmospheric temperature
[in]PAtmospheric pressure
[in]vmrsLine broadener's volume mixing ratio
Returns
Line shape parameters temperature derivatives

Definition at line 76 of file absorptionlines.cc.

Referenced by Linefunctions::set_cross_section_of_band().

◆ ShapeParameters_dVMR()

LineShape::Output Absorption::Lines::ShapeParameters_dVMR ( size_t  k,
Numeric  T,
Numeric  P,
const QuantumIdentifier vmr_qid 
) const
noexcept

Line shape parameters vmr derivative.

Parameters
[in]kLine number (less than NumLines())
[in]TAtmospheric temperature
[in]PAtmospheric pressure
[in]vmr_qidIdentity of species whose VMR derivative is requested
Returns
Line shape parameters vmr derivative

Definition at line 102 of file absorptionlines.cc.

Referenced by Linefunctions::set_cross_section_of_band().

◆ sort_by_einstein()

void Absorption::Lines::sort_by_einstein ( )
inline

Sort inner line list by Einstein coefficient.

Definition at line 819 of file absorptionlines.h.

References mlines.

◆ sort_by_frequency()

void Absorption::Lines::sort_by_frequency ( )
inline

Sort inner line list by frequency.

Definition at line 813 of file absorptionlines.h.

References mlines.

◆ Species()

◆ SpeciesMass()

Numeric Absorption::Lines::SpeciesMass ( ) const
noexcept

Mass of the molecule.

Definition at line 2725 of file absorptionlines.cc.

References Isotopologue, Species, and global_data::species_data.

Referenced by xsec_species().

◆ SpeciesName()

String Absorption::Lines::SpeciesName ( ) const
noexcept

◆ string2Cutoff()

static CutoffType Absorption::Lines::string2Cutoff ( const String in)
inlinestaticnoexcept
Returns
CutoffType if string is a CutoffType or -1 if not

Definition at line 1140 of file absorptionlines.h.

References Absorption::None.

◆ string2LineShapeType()

static LineShape::Type Absorption::Lines::string2LineShapeType ( const String type)
inlinestaticnoexcept
Returns
LineShape::Type if string is a LineShape::Type or -1 if not

Definition at line 1192 of file absorptionlines.h.

References LineShape::DP.

◆ string2Mirroring()

static MirroringType Absorption::Lines::string2Mirroring ( const String in)
inlinestaticnoexcept
Returns
MirroringType if string is a MirroringType or -1 if not

Definition at line 1088 of file absorptionlines.h.

References Absorption::None.

◆ string2Normalization()

static NormalizationType Absorption::Lines::string2Normalization ( const String in)
inlinestaticnoexcept
Returns
NormalizationType if string is a NormalizationType or -1 if not

Definition at line 1114 of file absorptionlines.h.

References Absorption::None.

◆ string2Population()

static PopulationType Absorption::Lines::string2Population ( const String in)
inlinestaticnoexcept
Returns
PopulationType if string is a PopulationType or -1 if not

Definition at line 1164 of file absorptionlines.h.

References Absorption::ByLTE.

◆ T0() [1/2]

Numeric Absorption::Lines::T0 ( ) const
inlinenoexcept

Returns reference temperature.

Definition at line 1311 of file absorptionlines.h.

References mT0.

Referenced by Linefunctions::set_cross_section_of_band(), xml_write_to_stream(), and xsec_species().

◆ T0() [2/2]

void Absorption::Lines::T0 ( Numeric  x)
inlinenoexcept

Sets reference temperature.

Definition at line 1316 of file absorptionlines.h.

References mT0, and ARTS::Var::x().

◆ truncate_global_quantum_numbers()

void Absorption::Lines::truncate_global_quantum_numbers ( )
inline

Removes all global quantum numbers.

Definition at line 825 of file absorptionlines.h.

References mquantumidentity, and QuantumIdentifier::SetTransition().

◆ UpperQuantumNumber() [1/2]

Rational Absorption::Lines::UpperQuantumNumber ( size_t  k,
QuantumNumberType  qnt 
) const
noexcept

Quantum number upper level.

Parameters
[in]kLine number (less than NumLines())
[in]qntQuantum number type
Returns
Quantum number

Definition at line 47 of file absorptionlines.cc.

Referenced by Absorption::id_in_line(), Absorption::id_in_line_upper(), Absorption::line_in_id(), and Absorption::line_upper_in_id().

◆ UpperQuantumNumber() [2/2]

Rational & Absorption::Lines::UpperQuantumNumber ( size_t  k,
QuantumNumberType  qnt 
)
noexcept

Quantum number upper level.

Parameters
[in]kLine number (less than NumLines())
[in]qntQuantum number type
Returns
Quantum number

Definition at line 61 of file absorptionlines.cc.

◆ UpperQuantumNumbers()

String Absorption::Lines::UpperQuantumNumbers ( ) const
noexcept

Upper quantum numbers string.

Definition at line 2560 of file absorptionlines.cc.

Referenced by xml_write_to_stream().

◆ validIndexForCutoff()

static bool Absorption::Lines::validIndexForCutoff ( Index  x)
inlinestaticnoexcept

Checks if index is a valid cutoff.

Definition at line 1134 of file absorptionlines.h.

References Absorption::None, stdarrayify(), ARTS::Var::x(), and ARTS::Var::y().

◆ validIndexForLineShapeType()

static bool Absorption::Lines::validIndexForLineShapeType ( Index  x)
inlinestaticnoexcept

Checks if index is a valid lineshapetype.

Definition at line 1186 of file absorptionlines.h.

References LineShape::DP, stdarrayify(), ARTS::Var::x(), and ARTS::Var::y().

◆ validIndexForMirroring()

static bool Absorption::Lines::validIndexForMirroring ( Index  x)
inlinestaticnoexcept

Checks if index is a valid mirroring.

Definition at line 1082 of file absorptionlines.h.

References Absorption::None, stdarrayify(), ARTS::Var::x(), and ARTS::Var::y().

◆ validIndexForNormalization()

static bool Absorption::Lines::validIndexForNormalization ( Index  x)
inlinestaticnoexcept

Checks if index is a valid normalization.

Definition at line 1108 of file absorptionlines.h.

References Absorption::None, stdarrayify(), ARTS::Var::x(), and ARTS::Var::y().

◆ validIndexForPopulation()

static bool Absorption::Lines::validIndexForPopulation ( Index  x)
inlinestaticnoexcept

Checks if index is a valid population.

Definition at line 1158 of file absorptionlines.h.

References Absorption::ByLTE, stdarrayify(), ARTS::Var::x(), and ARTS::Var::y().

◆ write()

bofstream& Absorption::Lines::write ( bofstream os) const
inline

Binary write for Lines.

Definition at line 1445 of file absorptionlines.h.

References mlines.

Referenced by xml_write_to_stream().

◆ ZeemanCount()

Index Absorption::Lines::ZeemanCount ( size_t  k,
Zeeman::Polarization  type 
) const
inlinenoexcept

Returns the number of Zeeman split lines.

Parameters
[in]kLine number (less than NumLines())
[in]typeType of Zeeman polarization

Definition at line 911 of file absorptionlines.h.

Referenced by Linefunctions::set_cross_section_of_band().

◆ ZeemanSplitting()

Numeric Absorption::Lines::ZeemanSplitting ( size_t  k,
Zeeman::Polarization  type,
Index  i 
) const
inlinenoexcept

Returns the splitting of a Zeeman split line.

Parameters
[in]kLine number (less than NumLines())
[in]typeType of Zeeman polarization
[in]iZeeman line count

Definition at line 947 of file absorptionlines.h.

Referenced by Linefunctions::set_cross_section_of_band().

◆ ZeemanStrength()

Numeric Absorption::Lines::ZeemanStrength ( size_t  k,
Zeeman::Polarization  type,
Index  i 
) const
inlinenoexcept

Returns the strength of a Zeeman split line.

Parameters
[in]kLine number (less than NumLines())
[in]typeType of Zeeman polarization
[in]iZeeman line count

Definition at line 929 of file absorptionlines.h.

Referenced by Linefunctions::set_cross_section_of_band().

Member Data Documentation

◆ mbathbroadening

bool Absorption::Lines::mbathbroadening
private

Does the line broadening have bath broadening.

Definition at line 553 of file absorptionlines.h.

Referenced by Bath(), Match(), and MatchWithExternal().

◆ mbroadeningspecies

ArrayOfSpeciesTag Absorption::Lines::mbroadeningspecies
private

A list of broadening species.

Definition at line 586 of file absorptionlines.h.

Referenced by BroadeningSpecies(), Match(), MatchWithExternal(), and NumBroadeners().

◆ mcutoff

CutoffType Absorption::Lines::mcutoff
private

cutoff type, by band or by line

Definition at line 556 of file absorptionlines.h.

Referenced by Cutoff(), Match(), and MatchWithExternal().

◆ mcutofffreq

Numeric Absorption::Lines::mcutofffreq
private

cutoff frequency

Definition at line 574 of file absorptionlines.h.

Referenced by CutoffFreqValue(), Match(), and MatchWithExternal().

◆ mlinemixinglimit

Numeric Absorption::Lines::mlinemixinglimit
private

linemixing limit

Definition at line 577 of file absorptionlines.h.

Referenced by LinemixingLimit(), Match(), and MatchWithExternal().

◆ mlines

std::vector<SingleLine> Absorption::Lines::mlines
private

◆ mlineshapetype

LineShape::Type Absorption::Lines::mlineshapetype
private

Type of line shape.

Definition at line 568 of file absorptionlines.h.

Referenced by LineShapeType(), Match(), and MatchWithExternal().

◆ mlocalquanta

std::vector<QuantumNumberType> Absorption::Lines::mlocalquanta
private

List of local quantum numbers, these must be defined.

Definition at line 583 of file absorptionlines.h.

Referenced by LocalQuanta(), Match(), NumLocalQuanta(), and SetAutomaticZeeman().

◆ mmirroring

MirroringType Absorption::Lines::mmirroring
private

Mirroring type.

Definition at line 559 of file absorptionlines.h.

Referenced by Match(), MatchWithExternal(), and Mirroring().

◆ mnormalization

NormalizationType Absorption::Lines::mnormalization
private

Line normalization type.

Definition at line 565 of file absorptionlines.h.

Referenced by Match(), MatchWithExternal(), and Normalization().

◆ mpopulation

PopulationType Absorption::Lines::mpopulation
private

Line population distribution.

Definition at line 562 of file absorptionlines.h.

Referenced by Match(), MatchWithExternal(), and Population().

◆ mquantumidentity

QuantumIdentifier Absorption::Lines::mquantumidentity
private

◆ mselfbroadening

bool Absorption::Lines::mselfbroadening
private

Does the line broadening have self broadening.

Definition at line 550 of file absorptionlines.h.

Referenced by Match(), MatchWithExternal(), and Self().

◆ mT0

Numeric Absorption::Lines::mT0
private

Reference temperature for all parameters of the lines.

Definition at line 571 of file absorptionlines.h.

Referenced by Match(), MatchWithExternal(), and T0().


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