53 const Index& atmosphere_dim,
54 const Index& lbl_checked,
55 const Index& manual_zeeman_tag,
56 const Numeric& manual_zeeman_magnetic_field_strength,
57 const Numeric& manual_zeeman_theta,
58 const Numeric& manual_zeeman_eta,
60 if (abs_lines_per_species.
nelem() == 0)
return;
62 if ((atmosphere_dim not_eq 3) and (not manual_zeeman_tag))
63 throw "Only for 3D *atmosphere_dim* or a manual magnetic field";
65 if ((ppath_los.
nelem() not_eq 2) and (not manual_zeeman_tag))
66 throw "Only for 2D *ppath_los* or a manual magnetic field";
69 throw "Please set lbl_checked true to use this function";
73 if (not manual_zeeman_tag)
mirror_los(rtp_los, ppath_los, atmosphere_dim);
83 abs_lines_per_species,
94 manual_zeeman_magnetic_field_strength,
97 }
catch (
const char* e) {
99 os <<
"Errors raised by *propmat_clearskyAddZeeman*:\n";
100 os <<
"\tError: " << e <<
'\n';
101 throw std::runtime_error(os.str());
102 }
catch (
const std::exception& e) {
104 os <<
"Errors in calls by *propmat_clearskyAddZeeman*:\n";
106 throw std::runtime_error(os.str());
INDEX Index
The type to use for all integer numbers and indices.
Index nelem() const
Number of elements.
Index nelem() const
Returns the number of elements.
Stuff related to the propagation matrix.
void propmat_clearskyAddZeeman(ArrayOfPropagationMatrix &propmat_clearsky, ArrayOfStokesVector &nlte_source, ArrayOfPropagationMatrix &dpropmat_clearsky_dx, ArrayOfStokesVector &dnlte_dx_source, ArrayOfStokesVector &nlte_dsource_dx, const ArrayOfArrayOfAbsorptionLines &abs_lines_per_species, const Vector &f_grid, const ArrayOfArrayOfSpeciesTag &abs_species, const ArrayOfRetrievalQuantity &jacobian_quantities, const SpeciesAuxData &isotopologue_ratios, const SpeciesAuxData &partition_functions, const Numeric &rtp_pressure, const Numeric &rtp_temperature, const EnergyLevelMap &rtp_nlte, const Vector &rtp_vmr, const Vector &rtp_mag, const Vector &ppath_los, const Index &atmosphere_dim, const Index &lbl_checked, const Index &manual_zeeman_tag, const Numeric &manual_zeeman_magnetic_field_strength, const Numeric &manual_zeeman_theta, const Numeric &manual_zeeman_eta, const Verbosity &)
WORKSPACE METHOD: propmat_clearskyAddZeeman.
NUMERIC Numeric
The type to use for all floating point numbers.
basic_ostringstream< char, string_char_traits< char >, alloc > ostringstream
This can be used to make arrays out of anything.
void mirror_los(Vector &los_mirrored, ConstVectorView los, const Index &atmosphere_dim)
Determines the backward direction for a given line-of-sight.
Auxiliary data for isotopologues.
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.