ARTS
2.4.0(git:4fb77825)
|
Implements Zeeman modeling. More...
Classes | |
struct | AllPolarizationVectors |
PolarizationVector for each Polarization. More... | |
struct | Derived |
Contains derived values useful for Zeeman calculations. More... | |
class | Model |
Main Zeeman Model. More... | |
class | PolarizationVector |
Polarization vector for Zeeman Propagation Matrix. More... | |
struct | SplittingData |
Main storage for Zeeman splitting coefficients. More... | |
Enumerations | |
enum | Polarization { Polarization::SigmaMinus, Polarization::Pi, Polarization::SigmaPlus } |
Zeeman polarization selection. More... | |
Functions | |
constexpr Index | dM (Polarization type) noexcept |
Gives the change of M given a polarization type. More... | |
constexpr Rational | start (Rational Ju, Rational Jl, Polarization type) noexcept |
Gives the lowest M for a polarization type of this transition. More... | |
constexpr Rational | end (Rational Ju, Rational Jl, Polarization type) noexcept |
Gives the largest M for a polarization type of this transition. More... | |
constexpr Index | nelem (Rational Ju, Rational Jl, Polarization type) noexcept |
Gives the number of elements of the polarization type of this transition. More... | |
constexpr Rational | Mu (Rational Ju, Rational Jl, Polarization type, Index n) noexcept |
Gives the upper state M value at an index. More... | |
constexpr Rational | Ml (Rational Ju, Rational Jl, Polarization type, Index n) noexcept |
Gives the lower state M value at an index. More... | |
constexpr Numeric | PolarizationFactor (Polarization type) noexcept |
The renormalization factor of a polarization type. More... | |
constexpr bool | GoodHundData (const QuantumNumbers &qns) noexcept |
Checks if the quantum numbers are good for this transition. More... | |
constexpr Numeric | SimpleGCaseB (Rational N, Rational J, Rational Lambda, Rational S, Numeric GS, Numeric GL) noexcept |
Computes the Zeeman splitting coefficient. More... | |
constexpr Numeric | SimpleGCaseA (Rational Omega, Rational J, Rational Lambda, Rational Sigma, Numeric GS, Numeric GL) noexcept |
Computes the Zeeman splitting coefficient. More... | |
constexpr Numeric | SimpleG (const QuantumNumbers &qns, const Numeric &GS, const Numeric &GL) noexcept |
Computes the Zeeman splitting coefficient. More... | |
Model | GetSimpleModel (const QuantumIdentifier &qid) noexcept |
Returns a simple Zeeman model. More... | |
Model | GetAdvancedModel (const QuantumIdentifier &qid) noexcept |
Returns an advanced Zeeman model. More... | |
std::ostream & | operator<< (std::ostream &os, const Model &m) |
std::istream & | operator>> (std::istream &is, Model &m) |
std::ostream & | operator<< (bofstream &bof, const Model &m) |
std::istream & | operator>> (bifstream &bif, Model &m) |
AllPolarizationVectors | AllPolarization (Numeric theta, Numeric eta) noexcept |
Computes the polarization of each polarization type. More... | |
AllPolarizationVectors | AllPolarization_dtheta (Numeric theta, const Numeric eta) noexcept |
The derivative of AllPolarization wrt theta. More... | |
AllPolarizationVectors | AllPolarization_deta (Numeric theta, Numeric eta) noexcept |
The derivative of AllPolarization wrt eta. More... | |
const PolarizationVector & | SelectPolarization (const AllPolarizationVectors &data, Polarization type) noexcept |
Selects the polarization vector depending on polarization type. More... | |
Derived | FromGrids (Numeric u, Numeric v, Numeric w, Numeric z, Numeric a) noexcept |
Computes the derived plane from ARTS grids. More... | |
constexpr Derived | FromPreDerived (Numeric H, Numeric theta, Numeric eta) noexcept |
Sets Derived from predefined Derived parameters. More... | |
Implements Zeeman modeling.
|
strong |
Zeeman polarization selection.
Enumerator | |
---|---|
SigmaMinus | |
Pi | |
SigmaPlus |
Definition at line 43 of file zeemandata.h.
|
inlinenoexcept |
Computes the polarization of each polarization type.
[in] | theta | The angle along the magnetic field |
[in] | eta | The angle counter-clockwise in the magnetic field plane |
Definition at line 578 of file zeemandata.h.
References Zeeman::AllPolarizationVectors::pi, Zeeman::AllPolarizationVectors::sm, and Zeeman::AllPolarizationVectors::sp.
Referenced by zeeman_on_the_fly().
|
inlinenoexcept |
The derivative of AllPolarization wrt eta.
[in] | theta | The angle along the magnetic field |
[in] | eta | The angle counter-clockwise in the magnetic field plane |
Definition at line 625 of file zeemandata.h.
References Zeeman::AllPolarizationVectors::pi, Zeeman::AllPolarizationVectors::sm, and Zeeman::AllPolarizationVectors::sp.
Referenced by zeeman_on_the_fly().
|
inlinenoexcept |
The derivative of AllPolarization wrt theta.
[in] | theta | The angle along the magnetic field |
[in] | eta | The angle counter-clockwise in the magnetic field plane |
Definition at line 601 of file zeemandata.h.
References Zeeman::AllPolarizationVectors::pi, Zeeman::AllPolarizationVectors::sm, and Zeeman::AllPolarizationVectors::sp.
Referenced by zeeman_on_the_fly().
|
constexprnoexcept |
Gives the change of M given a polarization type.
[in] | type | The polarization type |
Definition at line 51 of file zeemandata.h.
References max, and SigmaMinus.
Referenced by Ml(), and Zeeman::Model::Strength().
|
constexprnoexcept |
Gives the largest M for a polarization type of this transition.
Since the polarization determines the change in M, this function gives the last M of interest in the range of M possible for a given transition
The user has to ensure that Ju and Jl is a valid transition
[in] | Ju | J of the upper state |
[in] | Jl | J of the upper state |
[in] | type | The polarization type |
Definition at line 108 of file zeemandata.h.
References max, min, and SigmaMinus.
Referenced by abs_lines_per_speciesChangeBaseParameterForSpecies(), abs_lines_per_speciesChangeLineShapeModelParameterForSpecies(), abs_lines_per_speciesSetBaseParameterForSpecies(), abs_lines_per_speciesSetCutoffForSpecies(), abs_lines_per_speciesSetLinemixingLimitForSpecies(), abs_lines_per_speciesSetLineShapeModelParameterForSpecies(), abs_lines_per_speciesSetLineShapeTypeForSpecies(), abs_lines_per_speciesSetMirroringForSpecies(), abs_lines_per_speciesSetNormalizationForSpecies(), abs_lines_per_speciesSetPopulationForSpecies(), abs_lines_per_speciesSetT0ForSpecies(), AgRecord::AgRecord(), Array< base >::Array(), linalg::avg(), check_continuum_model(), copy(), linalg::cov(), ARTS::AgendaMethod::Duration(), ARTS::Method::Duration(), get_wsv_id(), InteractiveWorkspace::InteractiveWorkspace(), lookup_workspace_variable(), md_sanity_checks(), nelem(), operator<<(), Array< base >::operator=(), option_describe(), option_input(), option_methods(), ArtsParser::parse_generic_input(), ArtsParser::parse_generic_output(), ArtsParser::parse_method_args(), ArtsParser::parse_specific_input(), ArtsParser::parse_specific_output(), ArtsParser::read_name_or_value(), bifstream::seek(), bofstream::seek(), ArtsParser::set_gin_to_default(), test_sinc_likes_0limit(), my_basic_string< char >::tolower(), my_basic_string< char >::toupper(), and linalg::var().
|
noexcept |
Computes the derived plane from ARTS grids.
When done and if everything is well-defined:
With these helpers (some defined, others not):
Note that all other values are zero if is zero, that is zero if is zero, that is zero if and are zero, and that the atan2(y, x) function is used for .
[in] | u | Magnetic field u-parameter |
[in] | v | Magnetic field b-parameter |
[in] | w | Magnetic field w-parameter |
[in] | z | Zenith angle |
[in] | a | Azimuth angle |
Definition at line 236 of file zeemandata.cc.
References Zeeman::Derived::deta_du, Zeeman::Derived::deta_dv, Zeeman::Derived::deta_dw, Zeeman::Derived::dH_du, Zeeman::Derived::dH_dv, Zeeman::Derived::dH_dw, Zeeman::Derived::dtheta_du, Zeeman::Derived::dtheta_dv, Zeeman::Derived::dtheta_dw, Zeeman::Derived::eta, ev_xyz_by_za_local(), FromPreDerived(), Zeeman::Derived::H, los_xyz_by_uvw_local(), los_xyz_by_za_local(), Constant::pow2(), sqrt(), Zeeman::Derived::theta, w(), ARTS::Var::x(), and ARTS::Var::y().
Referenced by zeeman_on_the_fly().
|
constexprnoexcept |
Sets Derived from predefined Derived parameters.
[in] | H | Derived magnetic field strength |
[in] | theta | Derived magnetic field theta angle |
[in] | eta | Derived magnetic field eta angle |
Definition at line 712 of file zeemandata.h.
Referenced by FromGrids(), and zeeman_on_the_fly().
|
noexcept |
Returns an advanced Zeeman model.
Will look at available Quantum numbers and use best approximation for the model to use. If no good approximation is available, it returns Model({0, 0}).
[in] | qid | Transition type quantum id |
Definition at line 105 of file zeemandata.cc.
References Isotopologue, and v1.
Referenced by Zeeman::Model::Model(), ReadHITRAN(), ReadJPL(), ReadLBLRTM(), ReadMytran2(), and test_zeeman().
|
noexcept |
Returns a simple Zeeman model.
Will use the simple Hund case provided by input. Throws if the input is bad
[in] | qid | Transition type quantum id |
Definition at line 33 of file zeemandata.cc.
References get_lande_lambda_constant(), get_lande_spin_constant(), gu, and SimpleG().
Referenced by Zeeman::Model::Model(), and test_zeeman().
|
constexprnoexcept |
Checks if the quantum numbers are good for this transition.
Given some Hund state, various quantum numbers must be defined to allow the Zeeman calculations to work
[in] | qns | Quantum numbers of a level |
Definition at line 212 of file zeemandata.h.
Referenced by SimpleG().
|
constexprnoexcept |
Gives the lower state M value at an index.
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
[in] | Ju | J of the upper state |
[in] | Jl | J of the upper state |
[in] | type | The polarization type |
[in] | n | The position |
Definition at line 173 of file zeemandata.h.
Referenced by Zeeman::Model::Strength().
|
constexprnoexcept |
Gives the upper state M value at an index.
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
[in] | Ju | J of the upper state |
[in] | Jl | J of the upper state |
[in] | type | The polarization type |
[in] | n | The position |
Definition at line 152 of file zeemandata.h.
References start().
Referenced by Ml(), and Zeeman::Model::Strength().
|
constexprnoexcept |
Gives the number of elements of the polarization type of this transition.
The user has to ensure that Ju and Jl is a valid transition
[in] | Ju | J of the upper state |
[in] | Jl | J of the upper state |
[in] | type | The polarization type |
Definition at line 135 of file zeemandata.h.
Definition at line 493 of file zeemandata.h.
References Zeeman::SplittingData::gl, Zeeman::SplittingData::gu, and Zeeman::Model::mdata.
|
inline |
Definition at line 483 of file zeemandata.h.
References Zeeman::SplittingData::gl, Zeeman::SplittingData::gu, and Zeeman::Model::mdata.
Definition at line 498 of file zeemandata.h.
References Zeeman::SplittingData::gl, Zeeman::SplittingData::gu, and Zeeman::Model::mdata.
|
inline |
Definition at line 488 of file zeemandata.h.
References Zeeman::SplittingData::gl, Zeeman::SplittingData::gu, and Zeeman::Model::mdata.
|
constexprnoexcept |
The renormalization factor of a polarization type.
The polarization comes from some geometry. This function returns the factor we need to compute that geometry and to turn it into something that normalizes every possible M for this type into some strength that sums to unity
[in] | type | The polarization type |
Definition at line 191 of file zeemandata.h.
References max, and SigmaMinus.
Referenced by Zeeman::Model::Strength().
|
inlinenoexcept |
Selects the polarization vector depending on polarization type.
[in] | data | The pre-computed polarization vectors |
[in] | type | The type of polarization to select |
Definition at line 646 of file zeemandata.h.
References data, and SigmaMinus.
Referenced by zeeman_on_the_fly().
|
constexprnoexcept |
Computes the Zeeman splitting coefficient.
The level should be Hund case a or b type and all the quantum numbers have to be defined
[in] | qns | Quantum numbers of a level |
[in] | GS | The spin Landé coefficient of the molecule |
[in] | GS | The Landé coefficient of the molecule |
Definition at line 315 of file zeemandata.h.
References CaseA, GoodHundData(), J, N, SimpleGCaseA(), and SimpleGCaseB().
Referenced by GetSimpleModel().
|
constexprnoexcept |
Computes the Zeeman splitting coefficient.
The level should be Hund case a type and all the values have to be defined
[in] | Omega | The Omega quantum number of the level |
[in] | J | The J quantum number of the level |
[in] | Lambda | The Lambda quantum number of the level |
[in] | Sigma | The Sigma quantum number of the level |
[in] | GS | The spin Landé coefficient of the molecule |
[in] | GL | The Landé coefficient of the molecule |
Definition at line 286 of file zeemandata.h.
Referenced by SimpleG().
|
constexprnoexcept |
Computes the Zeeman splitting coefficient.
The level should be Hund case b type and all the values have to be defined
[in] | N | The N quantum number of the level |
[in] | J | The J quantum number of the level |
[in] | Lambda | The Lambda quantum number of the level |
[in] | S | The S quantum number of the level |
[in] | GS | The spin Landé coefficient of the molecule |
[in] | GL | The Landé coefficient of the molecule |
Definition at line 249 of file zeemandata.h.
References N.
Referenced by SimpleG().
|
constexprnoexcept |
Gives the lowest M for a polarization type of this transition.
Since the polarization determines the change in M, this function gives the first M of interest in the range of M possible for a given transition
The user has to ensure that Ju and Jl is a valid transition
[in] | Ju | J of the upper state |
[in] | Jl | J of the upper state |
[in] | type | The polarization type |
Definition at line 77 of file zeemandata.h.
References max, min, and SigmaMinus.
Referenced by add_scalar_variance(), ARTS::AgendaMethod::ArrayOfIndexLinSpace(), ArrayOfIndexLinSpace(), ARTS::Method::ArrayOfIndexLinSpace(), linalg::avg(), check_and_add_block(), ComplexVector::ComplexVector(), linalg::cov(), covmat_seAddBlock(), ARTS::AgendaMethod::Duration(), ARTS::Method::Duration(), find_next_species_tg(), ARTS::AgendaMethod::ForLoop(), ForLoop(), ARTS::Method::ForLoop(), linspace(), Mu(), nca_get_dataa_double(), nelem(), nlinspace(), nlogspace(), Linefunctions::set_cross_section_of_band(), linalg::std(), test_AngIntegrate_trapezoid_opti(), test_sinc_likes_0limit(), test_x(), test_x_fixedstep(), test_xy(), test_xy_fixedstep(), test_xy_fixedstep_opt(), test_xy_fixedstep_opt2(), test_xy_opt(), linalg::var(), Vector::Vector(), ARTS::AgendaMethod::VectorLinSpace(), VectorLinSpace(), ARTS::Method::VectorLinSpace(), ARTS::AgendaMethod::VectorLogSpace(), VectorLogSpace(), ARTS::Method::VectorLogSpace(), ARTS::AgendaMethod::VectorNLinSpace(), VectorNLinSpace(), ARTS::Method::VectorNLinSpace(), ARTS::AgendaMethod::VectorNLogSpace(), VectorNLogSpace(), and ARTS::Method::VectorNLogSpace().