ARTS  2.3.1285(git:92a29ea9-dirty)
Absorption::SingleLine Class Reference

Computations and data for a single absorption line. More...

#include <absorptionlines.h>

Public Member Functions

 SingleLine (Numeric F0=0, Numeric I0=0, Numeric E0=0, Numeric glow=0, Numeric gupp=0, Numeric A=0, Zeeman::Model zeeman=Zeeman::Model(), const LineShape::Model &lineshape=LineShape::Model(), const std::vector< Rational > &lowerquanta={}, const std::vector< Rational > &upperquanta={})
 Default initialization. More...
 
 SingleLine (size_t nbroadeners, size_t nquanta, const LineShape::Model &metamodel)
 Initialization for constant sizes. More...
 
Index LineShapeElems () const noexcept
 Number of lineshape elements. More...
 
Index LowerQuantumElems () const noexcept
 Number of lower quantum numbers. More...
 
Index UpperQuantumElems () const noexcept
 Number of upper quantum numbers. More...
 
Numeric F0 () const noexcept
 Central frequency. More...
 
Numeric E0 () const noexcept
 Lower level energy. More...
 
Numeric I0 () const noexcept
 Reference line strength. More...
 
Numeric A () const noexcept
 Einstein spontaneous emission. More...
 
Numeric g_low () const noexcept
 Lower level statistical weight. More...
 
Numeric g_upp () const noexcept
 Upper level statistical weight. More...
 
Zeeman::Model Zeeman () const noexcept
 Zeeman model. More...
 
const LineShape::ModelLineShape () const noexcept
 Line shape model. More...
 
const std::vector< Rational > & LowerQuantumNumbers () const noexcept
 Lower level quantum numbers. More...
 
const std::vector< Rational > & UpperQuantumNumbers () const noexcept
 Upper level quantum numbers. More...
 
NumericF0 () noexcept
 Central frequency. More...
 
NumericE0 () noexcept
 Lower level energy. More...
 
NumericI0 () noexcept
 Reference line strength. More...
 
NumericA () noexcept
 Einstein spontaneous emission. More...
 
Numericg_low () noexcept
 Lower level statistical weight. More...
 
Numericg_upp () noexcept
 Upper level statistical weight. More...
 
Zeeman::ModelZeeman () noexcept
 Zeeman model. More...
 
LineShape::ModelLineShape () noexcept
 Line shape model. More...
 
std::vector< Rational > & LowerQuantumNumbers () noexcept
 Lower level quantum numbers. More...
 
std::vector< Rational > & UpperQuantumNumbers () noexcept
 Upper level quantum numbers. More...
 
void F0 (Numeric x) noexcept
 Central frequency. More...
 
void E0 (Numeric x) noexcept
 Lower level energy. More...
 
void I0 (Numeric x) noexcept
 Reference line strength. More...
 
void A (Numeric x) noexcept
 Einstein spontaneous emission. More...
 
void g_low (Numeric x) noexcept
 Lower level statistical weight. More...
 
void g_upp (Numeric x) noexcept
 Upper level statistical weight. More...
 
Rational LowerQuantumNumber (size_t i) const noexcept
 Lower quantum number. More...
 
Rational UpperQuantumNumber (size_t i) const noexcept
 Upper quantum number. More...
 
RationalLowerQuantumNumber (size_t i) noexcept
 Lower quantum number. More...
 
RationalUpperQuantumNumber (size_t i) noexcept
 Upper quantum number. More...
 
bool SameQuantumNumbers (const SingleLine &sl) const noexcept
 Checks if the quantum numbers are the same of the two lines. More...
 
void SetAutomaticZeeman (QuantumIdentifier qid, const std::vector< QuantumNumberType > &keys)
 Set Zeeman effect by automatic detection. More...
 
void SetLineMixing2SecondOrderData (const Vector &d)
 Set the line mixing model to 2nd order. More...
 
void SetLineMixing2AER (const Vector &d)
 Set the line mixing model to AER kind. More...
 
bifstreamread (bifstream &bif)
 Binary read for AbsorptionLines. More...
 
bofstreamwrite (bofstream &bof) const
 Binary write for AbsorptionLines. More...
 

Private Attributes

Numeric mF0
 Central frequency. More...
 
Numeric mI0
 Reference intensity. More...
 
Numeric mE0
 Lower state energy level. More...
 
Numeric mglow
 Lower level statistical weight. More...
 
Numeric mgupp
 Upper level statistical weight. More...
 
Numeric mA
 Einstein spontaneous emission coefficient. More...
 
Zeeman::Model mzeeman
 Zeeman model. More...
 
LineShape::Model mlineshape
 Line shape model. More...
 
std::vector< Rationalmlowerquanta
 Lower level quantum numbers. More...
 
std::vector< Rationalmupperquanta
 Upper level quantum numbers. More...
 

Detailed Description

Computations and data for a single absorption line.

Definition at line 246 of file absorptionlines.h.

Constructor & Destructor Documentation

◆ SingleLine() [1/2]

Absorption::SingleLine::SingleLine ( Numeric  F0 = 0,
Numeric  I0 = 0,
Numeric  E0 = 0,
Numeric  glow = 0,
Numeric  gupp = 0,
Numeric  A = 0,
Zeeman::Model  zeeman = Zeeman::Model(),
const LineShape::Model lineshape = LineShape::Model(),
const std::vector< Rational > &  lowerquanta = {},
const std::vector< Rational > &  upperquanta = {} 
)
inline

Default initialization.

Parameters
[in]F0Central frequency
[in]I0Reference line strength at external T0
[in]E0Lower energy level
[in]glowLower level statistical weight
[in]guppUpper level statistical weight
[in]AEinstein spontaneous emission coefficient
[in]zeemanZeeman model
[in]lineshapeLine shape model
[in]lowerquantaLower quantum numbers
[in]upperquantaUpper quantum numbers

Definition at line 292 of file absorptionlines.h.

References E0, and F0.

◆ SingleLine() [2/2]

Absorption::SingleLine::SingleLine ( size_t  nbroadeners,
size_t  nquanta,
const LineShape::Model metamodel 
)
inline

Initialization for constant sizes.

Parameters
[in]nbroadenersNumber of broadening species
[in]nquantaNumber of local quantum numbers

Definition at line 318 of file absorptionlines.h.

References LineShape::Model::nelem().

Member Function Documentation

◆ A() [1/3]

Numeric Absorption::SingleLine::A ( ) const
inlinenoexcept

Einstein spontaneous emission.

Definition at line 351 of file absorptionlines.h.

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

◆ A() [2/3]

Numeric& Absorption::SingleLine::A ( )
inlinenoexcept

Einstein spontaneous emission.

Definition at line 385 of file absorptionlines.h.

◆ A() [3/3]

void Absorption::SingleLine::A ( Numeric  x)
inlinenoexcept

Einstein spontaneous emission.

Definition at line 419 of file absorptionlines.h.

◆ E0() [1/3]

Numeric Absorption::SingleLine::E0 ( ) const
inlinenoexcept

Lower level energy.

Definition at line 345 of file absorptionlines.h.

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

◆ E0() [2/3]

Numeric& Absorption::SingleLine::E0 ( )
inlinenoexcept

Lower level energy.

Definition at line 379 of file absorptionlines.h.

◆ E0() [3/3]

void Absorption::SingleLine::E0 ( Numeric  x)
inlinenoexcept

Lower level energy.

Definition at line 413 of file absorptionlines.h.

◆ F0() [1/3]

◆ F0() [2/3]

Numeric& Absorption::SingleLine::F0 ( )
inlinenoexcept

Central frequency.

Definition at line 376 of file absorptionlines.h.

◆ F0() [3/3]

void Absorption::SingleLine::F0 ( Numeric  x)
inlinenoexcept

Central frequency.

Definition at line 410 of file absorptionlines.h.

◆ g_low() [1/3]

Numeric Absorption::SingleLine::g_low ( ) const
inlinenoexcept

Lower level statistical weight.

Definition at line 354 of file absorptionlines.h.

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

◆ g_low() [2/3]

Numeric& Absorption::SingleLine::g_low ( )
inlinenoexcept

Lower level statistical weight.

Definition at line 388 of file absorptionlines.h.

◆ g_low() [3/3]

void Absorption::SingleLine::g_low ( Numeric  x)
inlinenoexcept

Lower level statistical weight.

Definition at line 422 of file absorptionlines.h.

◆ g_upp() [1/3]

Numeric Absorption::SingleLine::g_upp ( ) const
inlinenoexcept

Upper level statistical weight.

Definition at line 357 of file absorptionlines.h.

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

◆ g_upp() [2/3]

Numeric& Absorption::SingleLine::g_upp ( )
inlinenoexcept

Upper level statistical weight.

Definition at line 391 of file absorptionlines.h.

◆ g_upp() [3/3]

void Absorption::SingleLine::g_upp ( Numeric  x)
inlinenoexcept

Upper level statistical weight.

Definition at line 425 of file absorptionlines.h.

◆ I0() [1/3]

Numeric Absorption::SingleLine::I0 ( ) const
inlinenoexcept

Reference line strength.

Definition at line 348 of file absorptionlines.h.

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

◆ I0() [2/3]

Numeric& Absorption::SingleLine::I0 ( )
inlinenoexcept

Reference line strength.

Definition at line 382 of file absorptionlines.h.

◆ I0() [3/3]

void Absorption::SingleLine::I0 ( Numeric  x)
inlinenoexcept

Reference line strength.

Definition at line 416 of file absorptionlines.h.

◆ LineShape() [1/2]

const LineShape::Model& Absorption::SingleLine::LineShape ( ) const
inlinenoexcept

Line shape model.

Definition at line 363 of file absorptionlines.h.

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

◆ LineShape() [2/2]

LineShape::Model& Absorption::SingleLine::LineShape ( )
inlinenoexcept

Line shape model.

Definition at line 397 of file absorptionlines.h.

◆ LineShapeElems()

Index Absorption::SingleLine::LineShapeElems ( ) const
inlinenoexcept

Number of lineshape elements.

Definition at line 329 of file absorptionlines.h.

References LineShape::Model::nelem().

Referenced by Absorption::Lines::AppendSingleLine().

◆ LowerQuantumElems()

Index Absorption::SingleLine::LowerQuantumElems ( ) const
inlinenoexcept

Number of lower quantum numbers.

Definition at line 332 of file absorptionlines.h.

Referenced by Absorption::Lines::AppendSingleLine().

◆ LowerQuantumNumber() [1/2]

Rational Absorption::SingleLine::LowerQuantumNumber ( size_t  i) const
inlinenoexcept

Lower quantum number.

Definition at line 432 of file absorptionlines.h.

References i.

◆ LowerQuantumNumber() [2/2]

Rational& Absorption::SingleLine::LowerQuantumNumber ( size_t  i)
inlinenoexcept

Lower quantum number.

Definition at line 438 of file absorptionlines.h.

References i.

◆ LowerQuantumNumbers() [1/2]

const std::vector<Rational>& Absorption::SingleLine::LowerQuantumNumbers ( ) const
inlinenoexcept

Lower level quantum numbers.

Definition at line 366 of file absorptionlines.h.

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

◆ LowerQuantumNumbers() [2/2]

std::vector<Rational>& Absorption::SingleLine::LowerQuantumNumbers ( )
inlinenoexcept

Lower level quantum numbers.

Definition at line 400 of file absorptionlines.h.

◆ read()

bifstream& Absorption::SingleLine::read ( bifstream bif)
inline

Binary read for AbsorptionLines.

Standard parameters

Line shape model

Lower level quantum numbers

Upper level quantum numbers

Definition at line 491 of file absorptionlines.h.

References LineShape::Model::read().

◆ SameQuantumNumbers()

bool Absorption::SingleLine::SameQuantumNumbers ( const SingleLine sl) const
noexcept

Checks if the quantum numbers are the same of the two lines.

Definition at line 2679 of file absorptionlines.cc.

◆ SetAutomaticZeeman()

void Absorption::SingleLine::SetAutomaticZeeman ( QuantumIdentifier  qid,
const std::vector< QuantumNumberType > &  keys 
)
inline

Set Zeeman effect by automatic detection.

Will fail if the available and provided quantum numbers are bad

Parameters
[in]qidCopy of the global identifier to fill by local numbers
[in]keysList of quantum number keys in this line's local quantum number lists

Definition at line 457 of file absorptionlines.h.

References i, QuantumIdentifier::LowerQuantumNumber(), and QuantumIdentifier::UpperQuantumNumber().

◆ SetLineMixing2AER()

void Absorption::SingleLine::SetLineMixing2AER ( const Vector d)
inline

Set the line mixing model to AER kind.

Parameters
[in]dData in AER format

Definition at line 481 of file absorptionlines.h.

References LineShape::Model::Data(), and LineShape::LM_AER.

◆ SetLineMixing2SecondOrderData()

void Absorption::SingleLine::SetLineMixing2SecondOrderData ( const Vector d)
inline

Set the line mixing model to 2nd order.

Parameters
[in]dData in 2nd order format

Definition at line 470 of file absorptionlines.h.

References LineShape::LegacyLineMixingData::LM_2NDORDER, LineShape::Model::SetLineMixingModel(), and LineShape::LegacyLineMixingData::vector2modellm().

◆ UpperQuantumElems()

Index Absorption::SingleLine::UpperQuantumElems ( ) const
inlinenoexcept

Number of upper quantum numbers.

Definition at line 335 of file absorptionlines.h.

Referenced by Absorption::Lines::AppendSingleLine().

◆ UpperQuantumNumber() [1/2]

Rational Absorption::SingleLine::UpperQuantumNumber ( size_t  i) const
inlinenoexcept

Upper quantum number.

Definition at line 435 of file absorptionlines.h.

References i.

◆ UpperQuantumNumber() [2/2]

Rational& Absorption::SingleLine::UpperQuantumNumber ( size_t  i)
inlinenoexcept

Upper quantum number.

Definition at line 441 of file absorptionlines.h.

References i.

◆ UpperQuantumNumbers() [1/2]

const std::vector<Rational>& Absorption::SingleLine::UpperQuantumNumbers ( ) const
inlinenoexcept

Upper level quantum numbers.

Definition at line 369 of file absorptionlines.h.

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

◆ UpperQuantumNumbers() [2/2]

std::vector<Rational>& Absorption::SingleLine::UpperQuantumNumbers ( )
inlinenoexcept

Upper level quantum numbers.

Definition at line 403 of file absorptionlines.h.

◆ write()

bofstream& Absorption::SingleLine::write ( bofstream bof) const
inline

Binary write for AbsorptionLines.

Standard parameters

Line shape model

Lower level quantum numbers

Upper level quantum numbers

Definition at line 508 of file absorptionlines.h.

References Absorption::operator<<(), Absorption::operator>>(), and LineShape::Model::write().

◆ Zeeman() [1/2]

Zeeman::Model Absorption::SingleLine::Zeeman ( ) const
inlinenoexcept

Zeeman model.

Definition at line 360 of file absorptionlines.h.

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

◆ Zeeman() [2/2]

Zeeman::Model& Absorption::SingleLine::Zeeman ( )
inlinenoexcept

Zeeman model.

Definition at line 394 of file absorptionlines.h.

Member Data Documentation

◆ mA

Numeric Absorption::SingleLine::mA
private

Einstein spontaneous emission coefficient.

Definition at line 264 of file absorptionlines.h.

◆ mE0

Numeric Absorption::SingleLine::mE0
private

Lower state energy level.

Definition at line 255 of file absorptionlines.h.

◆ mF0

Numeric Absorption::SingleLine::mF0
private

Central frequency.

Definition at line 249 of file absorptionlines.h.

◆ mglow

Numeric Absorption::SingleLine::mglow
private

Lower level statistical weight.

Definition at line 258 of file absorptionlines.h.

◆ mgupp

Numeric Absorption::SingleLine::mgupp
private

Upper level statistical weight.

Definition at line 261 of file absorptionlines.h.

◆ mI0

Numeric Absorption::SingleLine::mI0
private

Reference intensity.

Definition at line 252 of file absorptionlines.h.

◆ mlineshape

LineShape::Model Absorption::SingleLine::mlineshape
private

Line shape model.

Definition at line 270 of file absorptionlines.h.

◆ mlowerquanta

std::vector<Rational> Absorption::SingleLine::mlowerquanta
private

Lower level quantum numbers.

Definition at line 273 of file absorptionlines.h.

◆ mupperquanta

std::vector<Rational> Absorption::SingleLine::mupperquanta
private

Upper level quantum numbers.

Definition at line 276 of file absorptionlines.h.

◆ mzeeman

Zeeman::Model Absorption::SingleLine::mzeeman
private

Zeeman model.

Definition at line 267 of file absorptionlines.h.


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