ARTS  2.3.1285(git:92a29ea9-dirty)
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.

◆ 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.

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.

◆ AppendSingleLine() [1/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.

◆ AppendSingleLine() [2/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(), and Absorption::SingleLine::UpperQuantumElems().

◆ Bath() [1/2]

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

Returns bath broadening status.

Definition at line 1371 of file absorptionlines.h.

Referenced by BroadeningSpeciesVMR(), and 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.

◆ BroadeningSpecies() [1/2]

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

Returns the broadening species.

Definition at line 1351 of file absorptionlines.h.

Referenced by BroadeningSpeciesVMR(), and xml_write_to_stream().

◆ BroadeningSpecies() [2/2]

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

Returns the broadening species.

Definition at line 1356 of file absorptionlines.h.

◆ 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 Bath(), BroadeningSpecies(), LineShapeType(), QuantumIdentity(), 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.

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.

◆ 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.

References Absorption::BandFixedFrequency, F0, Absorption::LineByLineOffset, max, and Absorption::None.

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.

References Absorption::BandFixedFrequency, F0, Absorption::LineByLineOffset, and Absorption::None.

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.

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.

◆ 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.

References LineShape::vmrs().

◆ 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.

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.

◆ 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.

◆ 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.

◆ 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]

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

Returns a single line.

Definition at line 2709 of file absorptionlines.cc.

References i, and mlines.

Referenced by Linefunctions::set_cross_section_of_band().

◆ Line() [2/2]

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

Returns a single line.

Definition at line 2715 of file absorptionlines.cc.

References i, and mlines.

◆ LinemixingLimit() [1/2]

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

Returns line mixing limit.

Definition at line 1331 of file absorptionlines.h.

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.

◆ 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 LineShape::ModelShape2MetaData().

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 i, and Species.

◆ 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.

◆ LineShapeType() [1/2]

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

Returns lineshapetype style.

Definition at line 1180 of file absorptionlines.h.

Referenced by BroadeningSpeciesVMR(), 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.

◆ LocalQuanta() [1/2]

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

Returns local quantum numbers.

Definition at line 1341 of file absorptionlines.h.

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.

◆ 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.

References QuantumIdentifier::LowerQuantumNumbers(), and mquantumidentity.

Referenced by MetaData(), and 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.

◆ 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.

◆ MetaData()

◆ Mirroring() [1/2]

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

Returns mirroring style.

Definition at line 1076 of file absorptionlines.h.

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.

◆ Normalization() [1/2]

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

Returns normalization style.

Definition at line 1102 of file absorptionlines.h.

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.

◆ NumBroadeners()

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

Number of broadening species.

Definition at line 861 of file absorptionlines.h.

References 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.

◆ OK()

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

◆ PopLine()

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

Pops a single line.

Definition at line 2693 of file absorptionlines.cc.

References i, mlines, and RemoveLine().

◆ Population() [1/2]

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

Returns population style.

Definition at line 1152 of file absorptionlines.h.

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.

◆ QuantumIdentity() [1/2]

◆ QuantumIdentity() [2/2]

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

Returns identity status.

Definition at line 1386 of file absorptionlines.h.

◆ QuantumIdentityOfLine()

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

Returns identity status.

Definition at line 1391 of file absorptionlines.h.

References i, and QuantumIdentifier::UpperQuantumNumber().

◆ read()

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

Binary read for Lines.

Definition at line 1438 of file absorptionlines.h.

◆ RemoveLine()

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

Removes a single line.

Definition at line 2687 of file absorptionlines.cc.

References i, and mlines.

Referenced by PopLine().

◆ 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 mlines, and mlocalquanta.

Referenced by RemoveUnusedLocalQuantums().

◆ 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.

References i, mlines, mlocalquanta, and RemoveLocalQuantum().

◆ ReverseLines()

void Absorption::Lines::ReverseLines ( )
noexcept

Reverses the order of the internal lines.

Definition at line 2720 of file absorptionlines.cc.

References mlines.

◆ Self() [1/2]

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

Returns self broadening status.

Definition at line 1361 of file absorptionlines.h.

Referenced by BroadeningSpeciesVMR(), and 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.

◆ 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 i, 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.

◆ 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 Absorption::SingleLine::A().

◆ 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 Absorption::SingleLine::F0().

◆ 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::BandFixedFrequency, Absorption::LineByLineOffset, and 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, LineShape::HTP, LineShape::LP, LineShape::SDVP, and LineShape::VP.

◆ 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::Lorentz, Absorption::Manual, Absorption::None, and Absorption::SameAsLineShape.

◆ 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, Absorption::RosenkranzQuadratic, Absorption::VVH, and Absorption::VVW.

◆ string2Population()

static PopulationType Absorption::Lines::string2Population ( const String in)
inlinestaticnoexcept

◆ T0() [1/2]

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

Returns reference temperature.

Definition at line 1311 of file absorptionlines.h.

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.

◆ 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 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.

References mquantumidentity, and QuantumIdentifier::UpperQuantumNumbers().

Referenced by MetaData(), and 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::BandFixedFrequency, Absorption::LineByLineOffset, Absorption::None, and stdarrayify().

◆ 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, LineShape::HTP, LineShape::LP, LineShape::SDVP, stdarrayify(), and LineShape::VP.

◆ 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::Lorentz, Absorption::Manual, Absorption::None, Absorption::SameAsLineShape, and stdarrayify().

◆ 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, Absorption::RosenkranzQuadratic, stdarrayify(), Absorption::VVH, and Absorption::VVW.

◆ validIndexForPopulation()

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

◆ write()

◆ 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.

References F, J, and Zeeman::nelem().

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.

References F.

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.

References F.

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 MetaData(), and OK().

◆ mbroadeningspecies

ArrayOfSpeciesTag Absorption::Lines::mbroadeningspecies
private

A list of broadening species.

Definition at line 586 of file absorptionlines.h.

Referenced by MetaData(), and OK().

◆ mcutoff

CutoffType Absorption::Lines::mcutoff
private

cutoff type, by band or by line

Definition at line 556 of file absorptionlines.h.

Referenced by MetaData().

◆ mcutofffreq

Numeric Absorption::Lines::mcutofffreq
private

cutoff frequency

Definition at line 574 of file absorptionlines.h.

Referenced by MetaData().

◆ mlinemixinglimit

Numeric Absorption::Lines::mlinemixinglimit
private

linemixing limit

Definition at line 577 of file absorptionlines.h.

Referenced by MetaData().

◆ mlines

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

A list of individual lines.

Definition at line 589 of file absorptionlines.h.

Referenced by Line(), MetaData(), OK(), PopLine(), RemoveLine(), RemoveLocalQuantum(), RemoveUnusedLocalQuantums(), and ReverseLines().

◆ mlineshapetype

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

Type of line shape.

Definition at line 568 of file absorptionlines.h.

Referenced by MetaData().

◆ 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 MetaData(), OK(), RemoveLocalQuantum(), and RemoveUnusedLocalQuantums().

◆ mmirroring

MirroringType Absorption::Lines::mmirroring
private

Mirroring type.

Definition at line 559 of file absorptionlines.h.

Referenced by MetaData().

◆ mnormalization

NormalizationType Absorption::Lines::mnormalization
private

Line normalization type.

Definition at line 565 of file absorptionlines.h.

Referenced by MetaData().

◆ mpopulation

PopulationType Absorption::Lines::mpopulation
private

Line population distribution.

Definition at line 562 of file absorptionlines.h.

Referenced by MetaData().

◆ mquantumidentity

QuantumIdentifier Absorption::Lines::mquantumidentity
private

Catalog ID.

Definition at line 580 of file absorptionlines.h.

Referenced by LowerQuantumNumbers(), and UpperQuantumNumbers().

◆ mselfbroadening

bool Absorption::Lines::mselfbroadening
private

Does the line broadening have self broadening.

Definition at line 550 of file absorptionlines.h.

Referenced by MetaData(), and OK().

◆ mT0

Numeric Absorption::Lines::mT0
private

Reference temperature for all parameters of the lines.

Definition at line 571 of file absorptionlines.h.

Referenced by MetaData(), and OK().


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