ARTS  2.3.1285(git:92a29ea9-dirty)
zeeman.cc File Reference

Public methods of ARTS to compute Zeeman effects. More...

#include "zeeman.h"
#include "constants.h"
#include "linefunctions.h"
#include "linescaling.h"
#include "species_info.h"

Go to the source code of this file.

Functions

template<class T >
bool bad_propmat (const Array< T > &main, const Vector &f_grid, const Index sd=4)
 Checks if a Propagation Matrix or something similar has good grids. More...
 
bool bad_abs_species (const ArrayOfArrayOfSpeciesTag &abs_species)
 Checks if abs_species is acceptable. More...
 
bool any_negative (const Vector &var)
 Checks for negative values. More...
 
bool any_negative (const Tensor4 &var)
 Checks for negative values. More...
 
void zeeman_on_the_fly (ArrayOfPropagationMatrix &propmat_clearsky, ArrayOfStokesVector &nlte_source, ArrayOfPropagationMatrix &dpropmat_clearsky_dx, ArrayOfStokesVector &dnlte_dx_source, ArrayOfStokesVector &nlte_dsource_dx, const ArrayOfArrayOfSpeciesTag &abs_species, const ArrayOfRetrievalQuantity &jacobian_quantities, const ArrayOfArrayOfAbsorptionLines &abs_lines_per_species, const SpeciesAuxData &isotopologue_ratios, const SpeciesAuxData &partition_functions, const Vector &f_grid, const Vector &rtp_vmr, const EnergyLevelMap &rtp_nlte, const Vector &rtp_mag, const Vector &rtp_los, const Numeric &rtp_pressure, const Numeric &rtp_temperature, const Index &manual_tag, const Numeric &H0, const Numeric &theta0, const Numeric &eta0)
 Main and only way to compute Zeeman effect. More...
 

Detailed Description

Public methods of ARTS to compute Zeeman effects.

Header of Zeeman propagation matrix calculations.

Implementations of Zeeman propagation matrix calculations.

Author
Richard Larsson <larsson (at) mps.mpg.de>
Date
2012-08-14

Several methods to change and alter and in other way set up Zeeman effect calculations are implemented in this file

Author
Richard Larsson <larsson (at) mps.mpg.de>
Date
2014-10-14

This file implements Zeeman propagation matrix calculations while also computing the derivatives that might be interesting for later Jacobian deductions.

Author
Richard Larsson <larsson (at) mps.mpg.de>
Date
2014-10-14

Definition in file zeeman.cc.

Function Documentation

◆ any_negative() [1/2]

bool any_negative ( const Vector var)

Checks for negative values.

Definition at line 66 of file zeeman.cc.

References ConstVectorView::empty(), and min.

Referenced by zeeman_on_the_fly().

◆ any_negative() [2/2]

bool any_negative ( const Tensor4 var)

Checks for negative values.

Definition at line 76 of file zeeman.cc.

References ConstTensor4View::empty(), and min.

◆ bad_abs_species()

bool bad_abs_species ( const ArrayOfArrayOfSpeciesTag abs_species)

Checks if abs_species is acceptable.

Definition at line 51 of file zeeman.cc.

References Species.

Referenced by zeeman_on_the_fly().

◆ bad_propmat()

template<class T >
bool bad_propmat ( const Array< T > &  main,
const Vector f_grid,
const Index  sd = 4 
)

Checks if a Propagation Matrix or something similar has good grids.

Definition at line 38 of file zeeman.cc.

References ConstVectorView::nelem(), and linalg::var().

Referenced by zeeman_on_the_fly().

◆ zeeman_on_the_fly()

void zeeman_on_the_fly ( ArrayOfPropagationMatrix propmat_clearsky,
ArrayOfStokesVector nlte_source,
ArrayOfPropagationMatrix dpropmat_clearsky_dx,
ArrayOfStokesVector dnlte_dx_source,
ArrayOfStokesVector nlte_dsource_dx,
const ArrayOfArrayOfSpeciesTag abs_species,
const ArrayOfRetrievalQuantity jacobian_quantities,
const ArrayOfArrayOfAbsorptionLines abs_lines_per_species,
const SpeciesAuxData isotopologue_ratios,
const SpeciesAuxData partition_functions,
const Vector f_grid,
const Vector rtp_vmr,
const EnergyLevelMap rtp_nlte,
const Vector rtp_mag,
const Vector rtp_los,
const Numeric rtp_pressure,
const Numeric rtp_temperature,
const Index manual_tag,
const Numeric H0,
const Numeric theta0,
const Numeric eta0 
)

Main and only way to compute Zeeman effect.

Computes the effect and the derivatives.

Should work in NLTE settings but this is not well-tested

Parameters
[in,out]propmat_clearskyas WSV
[in,out]nlte_sourceas WSV
[in,out]dpropmat_clearsky_dxas WSV
[in,out]dnlte_dx_sourceas WSV
[in,out]nlte_dsource_dxas WSV
[in]abs_speciesas WSV
[in]jacobian_quantitiesas WSV
[in]abs_lines_per_speciesas WSV
[in]isotopologue_ratiosas WSV
[in]partition_functionsas WSV
[in]f_gridas WSV
[in]rtp_vmras WSV
[in]rtp_nlteas WSV
[in]rtp_magas WSV
[in]rtp_losas WSV
[in]rtp_pressureas WSV
[in]rtp_temperatureas WSV
[in]manual_zeeman_tagSets whether the the magnetic field is input manually
[in]manual_zeeman_magnetic_field_strengthMagnetic field strength
[in]manual_zeeman_thetaMagnetic field theta angle
[in]manual_zeeman_etaMagnetic field eta angle

Definition at line 85 of file zeeman.cc.

References abs, Zeeman::AllPolarization(), Zeeman::AllPolarization_deta(), Zeeman::AllPolarization_dtheta(), any_negative(), bad_abs_species(), bad_propmat(), dabs, EnergyLevelMap::Data(), Linefunctions::dDopplerConstant_dT(), Conversion::deg2rad(), Linefunctions::InternalData::dF, Linefunctions::InternalData::dN, dnumber_density_dt(), Linefunctions::DopplerConstant(), dplanck_dt(), dsingle_partition_function_dT(), equivalent_propmattype_indexes(), Linefunctions::InternalData::F, Zeeman::FromGrids(), Zeeman::FromPreDerived(), SpeciesAuxData::getIsotopologueRatio(), SpeciesAuxData::getParam(), SpeciesAuxData::getParamType(), is_zeeman(), joker, EnergyLevelMap::Levels(), MagneticU, MagneticV, MagneticW, MapToEigen(), Linefunctions::InternalData::N, Array< base >::nelem(), ConstVectorView::nelem(), Absorption::nelem(), ns, number_density(), Zeeman::Pi, planck(), Zeeman::SelectPolarization(), Linefunctions::set_cross_section_of_band(), Zeeman::SigmaMinus, Zeeman::SigmaPlus, single_partition_function(), Temperature, temperature_perturbation(), and VMR.

Referenced by propmat_clearskyAddZeeman().