ARTS  2.3.1285(git:92a29ea9-dirty)
Zeeman::Model Class Reference

Main Zeeman Model. More...

#include <zeemandata.h>

Public Member Functions

constexpr Model (SplittingData gs={NAN, NAN}) noexcept
 Default copy/init of Model from its only private variable. More...
 
 Model (const QuantumIdentifier &qid) noexcept
 Attempts to compute Zeeman input if available. More...
 
bool empty () const noexcept
 Returns true if the Model represents no Zeeman effect. More...
 
Numericgu () noexcept
 Returns the upper state g. More...
 
Numericgl () noexcept
 Returns the lower state g. More...
 
void gu (Numeric x) noexcept
 Sets the upper state g. More...
 
void gl (Numeric x) noexcept
 Sets the lower state g. More...
 
constexpr Numeric gu () const noexcept
 Returns the upper state g. More...
 
constexpr Numeric gl () const noexcept
 Returns the lower state g. More...
 
Numeric Strength (Rational Ju, Rational Jl, Polarization type, Index n) const
 Gives the strength of one subline of a given polarization. More...
 
constexpr Numeric Splitting (Rational Ju, Rational Jl, Polarization type, Index n) const noexcept
 Gives the splitting of one subline of a given polarization. More...
 

Private Attributes

SplittingData mdata
 

Friends

std::ostream & operator<< (std::ostream &os, const Model &m)
 Output operator for Zeeman::Model. More...
 
std::istream & operator>> (std::istream &is, Model &m)
 Input operator for Zeeman::Model. More...
 
std::ostream & operator<< (bofstream &bof, const Model &m)
 Output operator for Zeeman::Model. More...
 
std::istream & operator>> (bifstream &bif, Model &m)
 Input operator for Zeeman::Model. More...
 

Detailed Description

Main Zeeman Model.

This model contains the splitting coefficients of an energy level. Various detailed and simplified initialization routines are defined. Is also used as the interface for all Zeeman computations

Definition at line 358 of file zeemandata.h.

Constructor & Destructor Documentation

◆ Model() [1/2]

constexpr Zeeman::Model::Model ( SplittingData  gs = {NAN, NAN})
inlinenoexcept

Default copy/init of Model from its only private variable.

Definition at line 364 of file zeemandata.h.

◆ Model() [2/2]

Zeeman::Model::Model ( const QuantumIdentifier qid)
explicitnoexcept

Attempts to compute Zeeman input if available.

Will first attempt advanced initialization from specialized functions for special species. If this fails, will attempt simple initialization from pure Hund-cases. If this fails, will throw a runtime_error.

Parameters
[in]qidTransition type quantum id

Definition at line 211 of file zeemandata.cc.

References empty(), Zeeman::GetAdvancedModel(), and Zeeman::GetSimpleModel().

Member Function Documentation

◆ empty()

bool Zeeman::Model::empty ( ) const
inlinenoexcept

Returns true if the Model represents no Zeeman effect.

Definition at line 379 of file zeemandata.h.

References Zeeman::SplittingData::gl, and Zeeman::SplittingData::gu.

Referenced by Model().

◆ gl() [1/3]

Numeric& Zeeman::Model::gl ( )
inlinenoexcept

Returns the lower state g.

Definition at line 387 of file zeemandata.h.

References Zeeman::SplittingData::gl.

Referenced by test_zeeman().

◆ gl() [2/3]

void Zeeman::Model::gl ( Numeric  x)
inlinenoexcept

Sets the lower state g.

Definition at line 393 of file zeemandata.h.

References Zeeman::SplittingData::gl.

◆ gl() [3/3]

constexpr Numeric Zeeman::Model::gl ( ) const
inlinenoexcept

Returns the lower state g.

Definition at line 399 of file zeemandata.h.

References Zeeman::SplittingData::gl.

◆ gu() [1/3]

Numeric& Zeeman::Model::gu ( )
inlinenoexcept

Returns the upper state g.

Definition at line 384 of file zeemandata.h.

References Zeeman::SplittingData::gu.

◆ gu() [2/3]

void Zeeman::Model::gu ( Numeric  x)
inlinenoexcept

Sets the upper state g.

Definition at line 390 of file zeemandata.h.

References Zeeman::SplittingData::gu.

◆ gu() [3/3]

constexpr Numeric Zeeman::Model::gu ( ) const
inlinenoexcept

Returns the upper state g.

Definition at line 396 of file zeemandata.h.

References Zeeman::SplittingData::gu.

◆ Splitting()

constexpr Numeric Zeeman::Model::Splitting ( Rational  Ju,
Rational  Jl,
Polarization  type,
Index  n 
) const
inlinenoexcept

Gives the splitting of one subline of a given polarization.

The user has to ensure that Ju and Jl is a valid transition

The user has to ensure n is less than the number of elements

Parameters
[in]JuJ of the upper state
[in]JlJ of the upper state
[in]typeThe polarization type
[in]nThe position
Returns
The splitting of the Zeeman subline

Definition at line 436 of file zeemandata.h.

References C.

◆ Strength()

Numeric Zeeman::Model::Strength ( Rational  Ju,
Rational  Jl,
Polarization  type,
Index  n 
) const
inline

Gives the strength of one subline of a given polarization.

The user has to ensure that Ju and Jl is a valid transition

The user has to ensure n is less than the number of elements

Parameters
[in]JuJ of the upper state
[in]JlJ of the upper state
[in]typeThe polarization type
[in]nThe position
Returns
The relative strength of the Zeeman subline

Definition at line 414 of file zeemandata.h.

References Zeeman::dM(), Zeeman::Ml(), Zeeman::Mu(), Zeeman::PolarizationFactor(), Constant::pow2(), and wigner3j().

Friends And Related Function Documentation

◆ operator<< [1/2]

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

Output operator for Zeeman::Model.

Definition at line 483 of file zeemandata.h.

◆ operator<< [2/2]

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

Output operator for Zeeman::Model.

Definition at line 493 of file zeemandata.h.

◆ operator>> [1/2]

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

Input operator for Zeeman::Model.

Definition at line 488 of file zeemandata.h.

◆ operator>> [2/2]

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

Input operator for Zeeman::Model.

Definition at line 498 of file zeemandata.h.

Member Data Documentation

◆ mdata

SplittingData Zeeman::Model::mdata
private

Definition at line 360 of file zeemandata.h.

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


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