ARTS 2.5.9 (git: 825fa5f2)
jacobian.h File Reference

Routines for setting up the jacobian. More...

#include "arts_conversions.h"
#include "arts_options.h"
#include "array.h"
#include "bifstream.h"
#include "enums.h"
#include "interpolation.h"
#include "logic.h"
#include "matpackI.h"
#include "methods.h"
#include "mystring.h"
#include "ppath_struct.h"
#include "quantum_numbers.h"
#include "species_tags.h"
#include <iostream>
#include <map>
#include <stdexcept>
#include <utility>

Go to the source code of this file.

Classes

struct  Jacobian::Target
 Holds all information required for individual partial derivatives. More...
 
class  RetrievalQuantity
 Deals with internal derivatives, Jacobian definition, and OEM calculations. More...
 
struct  jacobianVMRcheck
 Deals with whether or not we should do a VMR derivative. More...
 

Namespaces

namespace  Jacobian
 

Macros

#define FOR_ANALYTICAL_JACOBIANS_DO(what_to_do)
 
#define FOR_ANALYTICAL_JACOBIANS_DO2(what_to_do)
 

Typedefs

using JacobianTarget = Jacobian::Target
 
using ArrayOfJacobianTarget = Array< Jacobian::Target >
 
using ArrayOfRetrievalQuantity = Array< RetrievalQuantity >
 

Functions

 Jacobian::ENUMCLASS (Type, char, Atm, Line, Sensor, Special) ENUMCLASS(Atm
 Holds the type of the target quantity. More...
 
Particulates ENUMCLASS(Line, char, VMR, Strength, Center, ShapeG0X0, ShapeG0X1, ShapeG0X2, ShapeG0X3, ShapeD0X0, ShapeD0X1, ShapeD0X2, ShapeD0X3, ShapeG2X0, ShapeG2X1, ShapeG2X2, ShapeG2X3, ShapeD2X0, ShapeD2X1, ShapeD2X2, ShapeD2X3, ShapeFVCX0, ShapeFVCX1, ShapeFVCX2, ShapeFVCX3, ShapeETAX0, ShapeETAX1, ShapeETAX2, ShapeETAX3, ShapeYX0, ShapeYX1, ShapeYX2, ShapeYX3, ShapeGX0, ShapeGX1, ShapeGX2, ShapeGX3, ShapeDVX0, ShapeDVX1, ShapeDVX2, ShapeDVX3, ECS_SCALINGX0, ECS_SCALINGX1, ECS_SCALINGX2, ECS_SCALINGX3, ECS_BETAX0, ECS_BETAX1, ECS_BETAX2, ECS_BETAX3, ECS_LAMBDAX0, ECS_LAMBDAX1, ECS_LAMBDAX2, ECS_LAMBDAX3, ECS_DCX0, ECS_DCX1, ECS_DCX2, ECS_DCX3, NLTE) static_assert(Index(Line Jacobian::ENUMCLASS (Sensor, char, FrequencyShift, FrequencyStretch, Polyfit, Sinefit, PointingZenithInterp, PointingZenithRecalc) ENUMCLASS(Special
 Holds the Line-related targets. More...
 
void jac_ranges_indices (ArrayOfArrayOfIndex &jis, bool &any_affine, const ArrayOfRetrievalQuantity &jqs, const bool &before_affine=false)
 Determines the index range inside x and the Jacobian for each retrieval quantity. More...
 
void transform_jacobian (Matrix &jacobian, const Vector x, const ArrayOfRetrievalQuantity &jqs)
 Applies both functional and affine transformations. More...
 
void transform_x (Vector &x, const ArrayOfRetrievalQuantity &jqs)
 Handles transformations of the state vector. More...
 
void transform_x_back (Vector &x_t, const ArrayOfRetrievalQuantity &jqs, bool revert_functional_transforms=true)
 Handles back-transformations of the state vector. More...
 
bool check_retrieval_grids (ArrayOfVector &grids, ostringstream &os, const Vector &p_grid, const Vector &lat_grid, const Vector &lon_grid, const Vector &p_retr, const Vector &lat_retr, const Vector &lon_retr, const String &p_retr_name, const String &lat_retr_name, const String &lon_retr_name, const Index &dim)
 Check that the retrieval grids are defined for each atmosphere dim. More...
 
bool check_retrieval_grids (ArrayOfVector &grids, ostringstream &os, const Vector &lat_grid, const Vector &lon_grid, const Vector &lat_retr, const Vector &lon_retr, const String &lat_retr_name, const String &lon_retr_name, const Index &dim)
 Check that the retrieval grids are defined for each atmosphere dim. More...
 
void diy_from_path_to_rgrids (Tensor3View diy_dx, const RetrievalQuantity &jacobian_quantity, ConstTensor3View diy_dpath, const Index &atmosphere_dim, const Ppath &ppath, ConstVectorView ppath_p)
 Maps jacobian data for points along the propagation path, to jacobian retrieval grid data. More...
 
void diy_from_pos_to_rgrids (Tensor3View diy_dx, const RetrievalQuantity &jacobian_quantity, ConstMatrixView diy_dpos, const Index &atmosphere_dim, ConstVectorView rtp_pos)
 diy_from_pos_to_rgrids More...
 
ArrayOfTensor3 get_standard_diy_dpath (const ArrayOfRetrievalQuantity &jacobian_quantities, Index np, Index nf, Index ns, bool active)
 Help function for analytical jacobian calculations. More...
 
ArrayOfTensor3 get_standard_starting_diy_dx (const ArrayOfRetrievalQuantity &jacobian_quantities, Index np, Index nf, Index ns, bool active)
 Help function for analytical jacobian calculations. More...
 
ArrayOfIndex get_pointers_for_analytical_species (const ArrayOfRetrievalQuantity &jacobian_quantities, const ArrayOfArrayOfSpeciesTag &abs_species)
 Help function for analytical jacobian calculations. More...
 
ArrayOfIndex get_pointers_for_scat_species (const ArrayOfRetrievalQuantity &jacobian_quantities, const ArrayOfString &scat_species, const bool cloudbox_on)
 Help function for analytical jacobian calculations. More...
 
template<std::size_t N>
Index do_analytical_jacobian (const ArrayOfRetrievalQuantity &jacobian_quantities)
 Checks if analytical calculations are needed at all. More...
 
void jacobian_type_extrapol (ArrayOfGridPos &gp)
 Adopts grid positions to extrapolation used for jacobians. More...
 
void polynomial_basis_func (Vector &b, const Vector &x, const Index &poly_coeff)
 Calculates polynomial basis functions. More...
 
void calcBaselineFit (Vector &y_baseline, const Vector &x, const Index &mblock_index, const Sparse &sensor_response, const ArrayOfIndex &sensor_response_pol_grid, const Vector &sensor_response_f_grid, const Matrix &sensor_response_dlos_grid, const RetrievalQuantity &rq, const Index rq_index, const ArrayOfArrayOfIndex &jacobian_indices)
 Calculate baseline fit. More...
 
void vmrunitscf (Numeric &x, const String &unit, const Numeric &vmr, const Numeric &p, const Numeric &t)
 Scale factor for conversion between gas species units. More...
 
void dxdvmrscf (Numeric &x, const String &unit, const Numeric &vmr, const Numeric &p, const Numeric &t)
 Scale factor for conversion of derivatives with respect to VMR. More...
 
Numeric temperature_perturbation (const ArrayOfRetrievalQuantity &js) noexcept
 Returns the temperature perturbation if it exists. More...
 
Numeric frequency_perturbation (const ArrayOfRetrievalQuantity &js) noexcept
 Returns the frequency perturbation if it exists. More...
 
Numeric magnetic_field_perturbation (const ArrayOfRetrievalQuantity &js) noexcept
 Returns the magnetic field perturbation if it exists. More...
 
String propmattype_string (const RetrievalQuantity &rq)
 Returns a string of the retrieval quantity propagation matrix type. More...
 
bool is_wind_parameter (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a wind parameter in propagation matrix calculations. More...
 
bool is_frequency_parameter (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a frequency parameter in propagation matrix calculations. More...
 
bool is_derived_magnetic_parameter (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a derived magnetic parameter. More...
 
bool is_nlte_parameter (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a NLTE parameter. More...
 
bool is_pressure_broadening_G0 (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a G0 derivative. More...
 
bool is_pressure_broadening_D0 (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a D0 derivative. More...
 
bool is_pressure_broadening_G2 (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a G0 derivative. More...
 
bool is_pressure_broadening_D2 (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a D2 derivative. More...
 
bool is_pressure_broadening_FVC (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a FVC derivative. More...
 
bool is_pressure_broadening_ETA (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a ETA derivative. More...
 
bool is_pressure_broadening_Y (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a Y derivative. More...
 
bool is_pressure_broadening_G (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a G derivative. More...
 
bool is_pressure_broadening_DV (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a DV derivative. More...
 
bool is_lineshape_parameter_X0 (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a X0 derivative. More...
 
bool is_lineshape_parameter_X1 (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a X1 derivative. More...
 
bool is_lineshape_parameter_X2 (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a X2 derivative. More...
 
bool is_lineshape_parameter_bar_linemixing (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a G0, D0, G2, D2, ETA, FVC derivative. More...
 
bool is_lineshape_parameter (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is a G0, D0, G2, D2, ETA, FVC, Y, G, DV derivative. More...
 
bool is_line_parameter (const RetrievalQuantity &t) noexcept
 Returns if the Retrieval quantity is related to the absorption line. More...
 
bool supports_CIA (const ArrayOfRetrievalQuantity &js)
 Returns if the array supports CIA derivatives. More...
 
bool supports_hitran_xsec (const ArrayOfRetrievalQuantity &js)
 Returns if the array supports HITRAN cross-section derivatives. More...
 
bool supports_continuum (const ArrayOfRetrievalQuantity &js)
 Returns if the array supports continuum derivatives. More...
 
bool supports_relaxation_matrix (const ArrayOfRetrievalQuantity &js)
 Returns if the array supports relaxation matrix derivatives. More...
 
bool supports_lookup (const ArrayOfRetrievalQuantity &js)
 Returns if the array supports lookup table derivatives. More...
 
bool supports_zeeman (const ArrayOfRetrievalQuantity &js)
 Returns if the array supports Zeeman derivatives. More...
 
bool supports_faraday (const ArrayOfRetrievalQuantity &js)
 Returns if the array supports Faraday derivatives. More...
 
bool supports_propmat_clearsky (const ArrayOfRetrievalQuantity &js)
 Returns if the array supports propagation matrix derivatives. More...
 
bool species_match (const RetrievalQuantity &rq, const ArrayOfSpeciesTag &ast)
 Returns if the Retrieval quantity is VMR derivative for all the species in the species tags. More...
 
bool species_match (const RetrievalQuantity &rq, const Species::Species species)
 Returns if the Retrieval quantity is VMR derivative for all the species in the species tags. More...
 
bool species_iso_match (const RetrievalQuantity &rq, const Species::IsotopeRecord &ir)
 Returns if the Retrieval quantity is VMR derivative for all the species in the species tags. More...
 
bool do_temperature_jacobian (const ArrayOfRetrievalQuantity &js) noexcept
 Returns if the array wants the temperature derivative. More...
 
jacobianVMRcheck do_vmr_jacobian (const ArrayOfRetrievalQuantity &js, const QuantumIdentifier &line_qid) noexcept
 Returns the required info for VMR Jacobian. More...
 
bool do_line_center_jacobian (const ArrayOfRetrievalQuantity &js) noexcept
 Returns if the array wants a line center derivative. More...
 
bool do_wind_jacobian (const ArrayOfRetrievalQuantity &js) noexcept
 Returns if the array wants a wind-based frequency derivative derivative. More...
 
bool do_frequency_jacobian (const ArrayOfRetrievalQuantity &js) noexcept
 Returns if the array wants a frequency derivative. More...
 
bool do_magnetic_jacobian (const ArrayOfRetrievalQuantity &js) noexcept
 Returns if the array wants a magnetic derivative. More...
 

Variables

 Jacobian::char
 
 Jacobian::Temperature
 
 Jacobian::WindMagnitude
 
 Jacobian::WindU
 
 Jacobian::WindV
 
 Jacobian::WindW
 
 Jacobian::MagneticMagnitude
 
 Jacobian::MagneticU
 
 Jacobian::MagneticV
 
 Jacobian::MagneticW
 
 Jacobian::Electrons
 
Particulates ENUMCLASS(Line, char, VMR, Strength, Center, ShapeG0X0, ShapeG0X1, ShapeG0X2, ShapeG0X3, ShapeD0X0, ShapeD0X1, ShapeD0X2, ShapeD0X3, ShapeG2X0, ShapeG2X1, ShapeG2X2, ShapeG2X3, ShapeD2X0, ShapeD2X1, ShapeD2X2, ShapeD2X3, ShapeFVCX0, ShapeFVCX1, ShapeFVCX2, ShapeFVCX3, ShapeETAX0, ShapeETAX1, ShapeETAX2, ShapeETAX3, ShapeYX0, ShapeYX1, ShapeYX2, ShapeYX3, ShapeGX0, ShapeGX1, ShapeGX2, ShapeGX3, ShapeDVX0, ShapeDVX1, ShapeDVX2, ShapeDVX3, ECS_SCALINGX0, ECS_SCALINGX1, ECS_SCALINGX2, ECS_SCALINGX3, ECS_BETAX0, ECS_BETAX1, ECS_BETAX2, ECS_BETAX3, ECS_LAMBDAX0, ECS_LAMBDAX1, ECS_LAMBDAX2, ECS_LAMBDAX3, ECS_DCX0, ECS_DCX1, ECS_DCX2, ECS_DCX3, NLTE) static_assert(Index(Line Jacobian::ArrayOfSpeciesTagVMR
 
Particulates ENUMCLASS(Line, char, VMR, Strength, Center, ShapeG0X0, ShapeG0X1, ShapeG0X2, ShapeG0X3, ShapeD0X0, ShapeD0X1, ShapeD0X2, ShapeD0X3, ShapeG2X0, ShapeG2X1, ShapeG2X2, ShapeG2X3, ShapeD2X0, ShapeD2X1, ShapeD2X2, ShapeD2X3, ShapeFVCX0, ShapeFVCX1, ShapeFVCX2, ShapeFVCX3, ShapeETAX0, ShapeETAX1, ShapeETAX2, ShapeETAX3, ShapeYX0, ShapeYX1, ShapeYX2, ShapeYX3, ShapeGX0, ShapeGX1, ShapeGX2, ShapeGX3, ShapeDVX0, ShapeDVX1, ShapeDVX2, ShapeDVX3, ECS_SCALINGX0, ECS_SCALINGX1, ECS_SCALINGX2, ECS_SCALINGX3, ECS_BETAX0, ECS_BETAX1, ECS_BETAX2, ECS_BETAX3, ECS_LAMBDAX0, ECS_LAMBDAX1, ECS_LAMBDAX2, ECS_LAMBDAX3, ECS_DCX0, ECS_DCX1, ECS_DCX2, ECS_DCX3, NLTE) static_assert(Index(Line Jacobian::ScatteringString
 

Detailed Description

Routines for setting up the jacobian.

Author
Mattias Ekstrom ekstr.nosp@m.om@r.nosp@m.ss.ch.nosp@m.alme.nosp@m.rs.se
Date
2004-09-14

Definition in file jacobian.h.

Macro Definition Documentation

◆ FOR_ANALYTICAL_JACOBIANS_DO

#define FOR_ANALYTICAL_JACOBIANS_DO (   what_to_do)
Value:
for (Index iq = 0; iq < jacobian_quantities.nelem(); iq++) { \
if (not(jacobian_quantities[iq] == Jacobian::Type::Sensor) and \
not(jacobian_quantities[iq] == Jacobian::Special::SurfaceString)) { \
what_to_do \
} \
}
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39

Definition at line 547 of file jacobian.h.

◆ FOR_ANALYTICAL_JACOBIANS_DO2

#define FOR_ANALYTICAL_JACOBIANS_DO2 (   what_to_do)
Value:
for (Index iq = 0; iq < jacobian_quantities.nelem(); iq++) { \
if (not(jacobian_quantities[iq] == Jacobian::Type::Sensor)) { \
what_to_do \
} \
}

Definition at line 555 of file jacobian.h.

Typedef Documentation

◆ ArrayOfJacobianTarget

Definition at line 321 of file jacobian.h.

◆ ArrayOfRetrievalQuantity

Definition at line 544 of file jacobian.h.

◆ JacobianTarget

Definition at line 320 of file jacobian.h.

Function Documentation

◆ calcBaselineFit()

void calcBaselineFit ( Vector y_baseline,
const Vector x,
const Index mblock_index,
const Sparse sensor_response,
const ArrayOfIndex sensor_response_pol_grid,
const Vector sensor_response_f_grid,
const Matrix sensor_response_dlos_grid,
const RetrievalQuantity rq,
const Index  rq_index,
const ArrayOfArrayOfIndex jacobian_indices 
)

Calculate baseline fit.

Computes the baseline fit from a given state vector.

Given a retrieval quantitiy which is either a polynomial or a sine baseline fit this function computes the baseline offset in y_baseline.

Parameters
[out]y_baselineThe computed baseline offset. Computed baseline offset are accumulated into this vector, so it must be initialized externally!
[in]xState vector consisten with given retrieval quantity
[in]mblock_indexThe index of the measurement block.
[in]sensor_responseMust be consistent with size of y_baseline.
[in]sensor_response_pol_gridMust be consistent with size of y_baseline.
[in]sensor_response_f_gridMust be consistent with size of y_baseline.
[in]sensor_dlos_gridMust be consistent with size of y_baseline.
[in]rqThe poly- or sinefit retrieval quantity
[in]rq_indexThe index of the retrieval quantity
[in]jacobian_indices

Definition at line 872 of file jacobian.cc.

References a, ARTS_USER_ERROR, c, get_rowindex_for_mblock(), Range::get_start(), RetrievalQuantity::Grids(), Array< base >::nelem(), ConstVectorView::nelem(), ConstMatrixView::nrows(), PI, polynomial_basis_func(), Vector::resize(), and w.

Referenced by x2artsSensor().

◆ check_retrieval_grids() [1/2]

bool check_retrieval_grids ( ArrayOfVector grids,
ostringstream &  os,
const Vector lat_grid,
const Vector lon_grid,
const Vector lat_retr,
const Vector lon_retr,
const String lat_retr_name,
const String lon_retr_name,
const Index dim 
)

Check that the retrieval grids are defined for each atmosphere dim.

Use this version for surface variables

This function checks for the given atmosphere dimension that I) the retrieval grids are defined II) and that they are covered by the corresponding atmospheric grid. If not the return is false and an output string is created to print the error to the user. If the grids are ok they are stored in an array and true is returned.

Parameters
[out]gridsThe array of retrieval grids.
[in,out]osThe output string stream.
[in]lat_gridThe atmospheric latitude grid
[in]lon_gridThe atmospheric longitude grid
[in]lat_retrThe latitude retrieval grid.
[in]lon_retrThe longitude retrieval grid.
[in]lat_retr_nameThe control file name for the latitude retrieval grid.
[in]lon_retr_nameThe control file name for the longitude retrieval grid.
[in]dimThe atmosphere dimension
Returns
Boolean for check.
Author
Mattias Ekstrom
Date
2005-05-11

Definition at line 751 of file jacobian.cc.

References ARTS_ASSERT, is_increasing(), max(), Array< base >::nelem(), and ConstVectorView::nelem().

◆ check_retrieval_grids() [2/2]

bool check_retrieval_grids ( ArrayOfVector grids,
ostringstream &  os,
const Vector p_grid,
const Vector lat_grid,
const Vector lon_grid,
const Vector p_retr,
const Vector lat_retr,
const Vector lon_retr,
const String p_retr_name,
const String lat_retr_name,
const String lon_retr_name,
const Index dim 
)

Check that the retrieval grids are defined for each atmosphere dim.

Use this version for atmospheric fields.

This function checks for the given atmosphere dimension that I) the retrieval grids are defined II) and that they are covered by the corresponding atmospheric grid. If not the return is false and an output string is created to print the error to the user. If the grids are ok they are stored in an array and true is returned.

Parameters
[out]gridsThe array of retrieval grids.
[in,out]osThe output string stream.
[in]p_gridThe atmospheric pressure grid
[in]lat_gridThe atmospheric latitude grid
[in]lon_gridThe atmospheric longitude grid
[in]p_retrThe pressure retrieval grid.
[in]lat_retrThe latitude retrieval grid.
[in]lon_retrThe longitude retrieval grid.
[in]p_retr_nameThe control file name used for the pressure retrieval grid.
[in]lat_retr_nameThe control file name for the latitude retrieval grid.
[in]lon_retr_nameThe control file name for the longitude retrieval grid.
[in]dimThe atmosphere dimension
Returns
Boolean for check.
Author
Mattias Ekstrom
Date
2005-05-11

Definition at line 641 of file jacobian.cc.

References ARTS_ASSERT, is_decreasing(), is_increasing(), Array< base >::nelem(), and ConstVectorView::nelem().

Referenced by jacobianAddAbsSpecies(), jacobianAddMagField(), jacobianAddNLTE(), jacobianAddScatSpecies(), jacobianAddSpecialSpecies(), jacobianAddSurfaceQuantity(), jacobianAddTemperature(), and jacobianAddWind().

◆ diy_from_path_to_rgrids()

void diy_from_path_to_rgrids ( Tensor3View  diy_dx,
const RetrievalQuantity jacobian_quantity,
ConstTensor3View  diy_dpath,
const Index atmosphere_dim,
const Ppath ppath,
ConstVectorView  ppath_p 
)

Maps jacobian data for points along the propagation path, to jacobian retrieval grid data.

Parameters
[out]diy_dxOne element of the WSV diy_dx.
[in]jacobian_quantityOne element of of the WSV jacobian_quantities.
[in]diy_dpathJacobians along the propagation path.
[in]atmosphere_dimAs the WSV.
[in]ppathAs the WSV.
[in]ppath_pThe pressure at each ppath point.
Author
Patrick Eriksson
Date
2009-10-08

Definition at line 313 of file jacobian.cc.

References ARTS_ASSERT, from_dpath_to_dx(), gp4length1grid(), gridpos(), RetrievalQuantity::Grids(), jacobian_type_extrapol(), joker, Array< base >::nelem(), Ppath::np, p2gridpos(), and Ppath::pos.

Referenced by rtmethods_jacobian_finalisation().

◆ diy_from_pos_to_rgrids()

void diy_from_pos_to_rgrids ( Tensor3View  diy_dx,
const RetrievalQuantity jacobian_quantity,
ConstMatrixView  diy_dpos,
const Index atmosphere_dim,
ConstVectorView  rtp_pos 
)

diy_from_pos_to_rgrids

Maps jacobian data for a surface position, to jacobian retrieval grid data.

Parameters
[out]diy_dxOne element of the WSV diy_dx.
[in]jacobian_quantityOne element of of the WSV jacobian_quantities.
[in]diy_dposJacobian for the position itself.
[in]atmosphere_dimAs the WSV.
[in]rtp_posAs the WSV.
Author
Patrick Eriksson
Date
2018-04-10

Definition at line 475 of file jacobian.cc.

References ARTS_ASSERT, from_dpath_to_dx(), gp4length1grid(), gridpos(), RetrievalQuantity::Grids(), jacobian_type_extrapol(), joker, max(), Array< base >::nelem(), and ConstVectorView::nelem().

Referenced by iySurfaceLambertian(), and iySurfaceRtpropCalc().

◆ do_analytical_jacobian()

template<std::size_t N>
Index do_analytical_jacobian ( const ArrayOfRetrievalQuantity jacobian_quantities)

Checks if analytical calculations are needed at all.

The template argument is either 1 or 2 for checks with the macros FOR_ANALYTICAL_JACOBIANS_DO or FOR_ANALYTICAL_JACOBIANS_DO2, respectively

Parameters
[in]jacobian_quantitiesAs the WSV.
Returns
true if we need analytical calculations
false if we do not need analytical calculations
Author
Richard Larsson
Date
2020-11-12

Definition at line 842 of file jacobian.h.

References FOR_ANALYTICAL_JACOBIANS_DO, FOR_ANALYTICAL_JACOBIANS_DO2, and N.

◆ do_frequency_jacobian()

bool do_frequency_jacobian ( const ArrayOfRetrievalQuantity js)
noexcept

Returns if the array wants a frequency derivative.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
true if it does
false if it does not

Definition at line 1175 of file jacobian.cc.

Referenced by abs_xsec_per_speciesAddCIA(), Absorption::PredefinedModel::compute(), propmat_clearskyAddParticles(), and propmat_clearskyAddXsecFit().

◆ do_line_center_jacobian()

bool do_line_center_jacobian ( const ArrayOfRetrievalQuantity js)
noexcept

Returns if the array wants a line center derivative.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
true if it does
false if it does not

Definition at line 1167 of file jacobian.cc.

◆ do_magnetic_jacobian()

bool do_magnetic_jacobian ( const ArrayOfRetrievalQuantity js)
noexcept

Returns if the array wants a magnetic derivative.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
true if it does
false if it does not

Definition at line 1179 of file jacobian.cc.

Referenced by propmat_clearskyAddFaraday().

◆ do_temperature_jacobian()

bool do_temperature_jacobian ( const ArrayOfRetrievalQuantity js)
noexcept

Returns if the array wants the temperature derivative.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
true if it does
false if it does not

Definition at line 1150 of file jacobian.cc.

Referenced by abs_xsec_per_speciesAddCIA(), Absorption::PredefinedModel::compute(), iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), propmat_clearskyAddCIA(), propmat_clearskyAddParticles(), and propmat_clearskyAddXsecFit().

◆ do_vmr_jacobian()

jacobianVMRcheck do_vmr_jacobian ( const ArrayOfRetrievalQuantity js,
const QuantumIdentifier line_qid 
)
noexcept

Returns the required info for VMR Jacobian.

FIXME: The entire existence of this function is a logical error of the programmer...

Parameters
[in]jsAs jacobian_quantities WSV
[in]line_qidA line identifier
Returns
true and retrieval quantity quantum identity pointer if available
false and line_qid pointer if not available

Definition at line 1154 of file jacobian.cc.

◆ do_wind_jacobian()

bool do_wind_jacobian ( const ArrayOfRetrievalQuantity js)
noexcept

Returns if the array wants a wind-based frequency derivative derivative.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
true if it does
false if it does not

Definition at line 1171 of file jacobian.cc.

Referenced by propmat_clearskyAddCIA().

◆ dxdvmrscf()

void dxdvmrscf ( Numeric x,
const String unit,
const Numeric vmr,
const Numeric p,
const Numeric t 
)

Scale factor for conversion of derivatives with respect to VMR.

The function finds the factor with which a partial derivative with respect to gas species VMR shall be multiplicated to match the selected (jacobian) unit. The function was implemented for scaling of dpropmat_clearsky_dx but it could also be of use in other contexts.

Parameters
[out]xScale factor
[in]unitUnit selected.
[in]vmrVMR value.
[in]pPressure
[in]tTemperature.
Author
Patrick Eriksson
Date
2015-12-11

Definition at line 979 of file jacobian.cc.

References ARTS_USER_ERROR, and number_density().

◆ frequency_perturbation()

Numeric frequency_perturbation ( const ArrayOfRetrievalQuantity js)
noexcept

Returns the frequency perturbation if it exists.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
Frequency perturbation

Definition at line 1191 of file jacobian.cc.

Referenced by abs_xsec_per_speciesAddCIA(), propmat_clearskyAddCIA(), and propmat_clearskyAddXsecFit().

◆ get_pointers_for_analytical_species()

ArrayOfIndex get_pointers_for_analytical_species ( const ArrayOfRetrievalQuantity jacobian_quantities,
const ArrayOfArrayOfSpeciesTag abs_species 
)

Help function for analytical jacobian calculations.

The function determines which terms in jacobian_quantities that are analytical absorption species.

The output Array has the position in abs_species for Jacobian::Line::VMR and Jacobian::Special::ArrayOfSpeciesTagVMR quantities. It has -9999 for Jacobian::Atm::Particulates and for Jacobian::Atm::Electrons. It has -1 for all other types of partial derivatives

Parameters
[in]jacobian_quantitiesAs the WSV.
[in]abs_speciesAs the WSV.
Returns
ArrayOfIndex With information as above (size: jacobain_quantities.nelem())
Author
Richard Larsson
Date
2020-11-12

Definition at line 565 of file jacobian.cc.

References ARTS_USER_ERROR, FOR_ANALYTICAL_JACOBIANS_DO, and Array< base >::nelem().

Referenced by iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), iyRadarSingleScat(), and iyTransmissionStandard().

◆ get_pointers_for_scat_species()

ArrayOfIndex get_pointers_for_scat_species ( const ArrayOfRetrievalQuantity jacobian_quantities,
const ArrayOfString scat_species,
const bool  cloudbox_on 
)

Help function for analytical jacobian calculations.

The function determines which terms in jacobian_quantities that are analytical absorption species.

If the scat species is there, it will have an index pointing to it, otherwise the index will be -1

cloudbox_on must be true or all output is -1

Parameters
[in]jacobian_quantitiesAs the WSV.
[in]scat_speciesAs the WSV.
[in]cloudbox_onAs the WSV.
Returns
ArrayOfIndex With information as above (size: jacobain_quantities.nelem())
Author
Richard Larsson
Date
2020-11-12

Definition at line 619 of file jacobian.cc.

References ARTS_USER_ERROR_IF, find_first(), FOR_ANALYTICAL_JACOBIANS_DO, and Array< base >::nelem().

Referenced by iyEmissionHybrid(), iyRadarSingleScat(), and iyTransmissionStandard().

◆ get_standard_diy_dpath()

ArrayOfTensor3 get_standard_diy_dpath ( const ArrayOfRetrievalQuantity jacobian_quantities,
Index  np,
Index  nf,
Index  ns,
bool  active 
)

Help function for analytical jacobian calculations.

The size of the by-path computations of the Jacobian is set and zeroed

Parameters
[in]jacobian_quantitiesAs the WSV.
[in]npThe path grid count
[in]nfThe frequency grid count
[in]nsThe Stokes grid count
[in]activeIf true, the middle dimension is np times nf, otherwise it is nf
Returns
diy_dpath As expected by the methods using diy_dpath (size: jacobain_quantities.nelem())
Author
Richard Larsson
Date
2020-11-12

Definition at line 597 of file jacobian.cc.

References FOR_ANALYTICAL_JACOBIANS_DO, and Array< base >::nelem().

Referenced by iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), iyRadarSingleScat(), and iyTransmissionStandard().

◆ get_standard_starting_diy_dx()

ArrayOfTensor3 get_standard_starting_diy_dx ( const ArrayOfRetrievalQuantity jacobian_quantities,
Index  np,
Index  nf,
Index  ns,
bool  active 
)

Help function for analytical jacobian calculations.

The size of the computations of the Jacobian is set and zeroed

Parameters
[in]jacobian_quantitiesAs the WSV.
[in]npThe path grid count
[in]nfThe frequency grid count
[in]nsThe Stokes grid count
[in]activeIf true, the middle dimension is np times nf, otherwise it is nf
Returns
diy_dx As expected by the methods using diy_dpath (size: jacobain_quantities.nelem())
Author
Richard Larsson
Date
2020-11-12

Definition at line 606 of file jacobian.cc.

References FOR_ANALYTICAL_JACOBIANS_DO2, jac_ranges_indices(), and Array< base >::nelem().

Referenced by iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), iyRadarSingleScat(), and iyTransmissionStandard().

◆ is_derived_magnetic_parameter()

bool is_derived_magnetic_parameter ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a derived magnetic parameter.

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Definition at line 1010 of file jacobian.cc.

◆ is_frequency_parameter()

bool is_frequency_parameter ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a frequency parameter in propagation matrix calculations.

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Definition at line 1006 of file jacobian.cc.

Referenced by abs_xsec_per_speciesAddCIA(), nlte_sourceFromTemperatureAndSrcCoefPerSpecies(), propmat_clearskyAddFaraday(), and propmat_clearskyAddXsecFit().

◆ is_line_parameter()

bool is_line_parameter ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is related to the absorption line.

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Definition at line 1085 of file jacobian.cc.

◆ is_lineshape_parameter()

bool is_lineshape_parameter ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a G0, D0, G2, D2, ETA, FVC, Y, G, DV derivative.

See LineShape::Model for details on parameter

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Definition at line 1077 of file jacobian.cc.

References is_pressure_broadening_D0(), is_pressure_broadening_D2(), is_pressure_broadening_DV(), is_pressure_broadening_ETA(), is_pressure_broadening_FVC(), is_pressure_broadening_G(), is_pressure_broadening_G0(), is_pressure_broadening_G2(), and is_pressure_broadening_Y().

◆ is_lineshape_parameter_bar_linemixing()

bool is_lineshape_parameter_bar_linemixing ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a G0, D0, G2, D2, ETA, FVC derivative.

See LineShape::Model for details on parameter

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Definition at line 1070 of file jacobian.cc.

References is_pressure_broadening_D0(), is_pressure_broadening_D2(), is_pressure_broadening_ETA(), is_pressure_broadening_FVC(), is_pressure_broadening_G0(), and is_pressure_broadening_G2().

◆ is_lineshape_parameter_X0()

bool is_lineshape_parameter_X0 ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a X0 derivative.

See LineShape::Model for details on parameter

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Definition at line 1037 of file jacobian.cc.

References VARISLINESHAPEPARAM.

◆ is_lineshape_parameter_X1()

bool is_lineshape_parameter_X1 ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a X1 derivative.

See LineShape::Model for details on parameter

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Definition at line 1045 of file jacobian.cc.

References VARISLINESHAPEPARAM.

◆ is_lineshape_parameter_X2()

bool is_lineshape_parameter_X2 ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a X2 derivative.

See LineShape::Model for details on parameter

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Definition at line 1053 of file jacobian.cc.

References VARISLINESHAPEPARAM.

◆ is_nlte_parameter()

bool is_nlte_parameter ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a NLTE parameter.

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Definition at line 1014 of file jacobian.cc.

◆ is_pressure_broadening_D0()

bool is_pressure_broadening_D0 ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a D0 derivative.

See LineShape::Model for details on parameter

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Referenced by is_lineshape_parameter(), and is_lineshape_parameter_bar_linemixing().

◆ is_pressure_broadening_D2()

bool is_pressure_broadening_D2 ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a D2 derivative.

See LineShape::Model for details on parameter

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Referenced by is_lineshape_parameter(), and is_lineshape_parameter_bar_linemixing().

◆ is_pressure_broadening_DV()

bool is_pressure_broadening_DV ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a DV derivative.

See LineShape::Model for details on parameter

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Referenced by is_lineshape_parameter().

◆ is_pressure_broadening_ETA()

bool is_pressure_broadening_ETA ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a ETA derivative.

See LineShape::Model for details on parameter

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Referenced by is_lineshape_parameter(), and is_lineshape_parameter_bar_linemixing().

◆ is_pressure_broadening_FVC()

bool is_pressure_broadening_FVC ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a FVC derivative.

See LineShape::Model for details on parameter

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Referenced by is_lineshape_parameter(), and is_lineshape_parameter_bar_linemixing().

◆ is_pressure_broadening_G()

bool is_pressure_broadening_G ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a G derivative.

See LineShape::Model for details on parameter

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Referenced by is_lineshape_parameter().

◆ is_pressure_broadening_G0()

bool is_pressure_broadening_G0 ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a G0 derivative.

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Referenced by is_lineshape_parameter(), and is_lineshape_parameter_bar_linemixing().

◆ is_pressure_broadening_G2()

bool is_pressure_broadening_G2 ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a G0 derivative.

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Referenced by is_lineshape_parameter(), and is_lineshape_parameter_bar_linemixing().

◆ is_pressure_broadening_Y()

bool is_pressure_broadening_Y ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a Y derivative.

See LineShape::Model for details on parameter

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Referenced by is_lineshape_parameter().

◆ is_wind_parameter()

bool is_wind_parameter ( const RetrievalQuantity t)
noexcept

Returns if the Retrieval quantity is a wind parameter in propagation matrix calculations.

Parameters
[in]tA retrieval quantity
Returns
true if it is
false if it is not

Definition at line 1002 of file jacobian.cc.

Referenced by propmat_clearskyAddCIA().

◆ jac_ranges_indices()

void jac_ranges_indices ( ArrayOfArrayOfIndex jis,
bool &  any_affine,
const ArrayOfRetrievalQuantity jqs,
const bool &  before_affine = false 
)

Determines the index range inside x and the Jacobian for each retrieval quantity.

The ranges are given as an ArrayOfArrayOfIndex, where outermost dimension corresponds to retrieval quantity. The inner dimension has throughout size 2, where element 0 is the first index and element 1 is the last index of the range.

Parameters
[out]jisIndices, as described above
[in]any_affineTrue if at least one quantity has affine transformation.
[in]jqsThe WSV jacobian_quantities
[in]before_affineSet to true to get indices without any affine transformation. Default is false.
Author
Simon Pfreundschuh and Patrick Eriksson
Date
2017-12-30

Definition at line 46 of file jacobian.cc.

References RetrievalQuantity::HasAffine(), ConstMatrixView::ncols(), RetrievalQuantity::nelem(), Array< base >::nelem(), and RetrievalQuantity::TransformationMatrix().

Referenced by covmat_sxAddBlock(), covmat_sxAddInverseBlock(), get_standard_starting_diy_dx(), jacobianAdjustAndTransform(), jacobianCalcFreqShift(), jacobianCalcFreqStretch(), jacobianCalcPointingZaInterp(), jacobianCalcPointingZaRecalc(), jacobianCalcPolyfit(), jacobianCalcSinefit(), retrievalDefClose(), transform_jacobian(), transform_x(), transform_x_back(), x2artsAtmAndSurf(), x2artsSensor(), yCalc(), yCalcAppend(), and yRadar().

◆ jacobian_type_extrapol()

void jacobian_type_extrapol ( ArrayOfGridPos gp)

Adopts grid positions to extrapolation used for jacobians.

The standard interpolation scheme applies a linear extrapolation, while for the jacobians the extrapolation can be seen as a "closest" interpolation. That is, for points outisde the covered grid, the value at closest end point is taken. And here extrapolation to +-Inf is allowed.

This function modifies grid positions to jacobaina extrapolation approach. For efficiency, the input grid positions are not asserted at all, and "extrapolation points" are identified simply by a fd outside [0,1].

Parameters
[in/out]gp Array of grid positions.
Author
Patrick Eriksson
Date
2015-09-10

Definition at line 836 of file jacobian.cc.

References Array< base >::nelem().

Referenced by diy_from_path_to_rgrids(), diy_from_pos_to_rgrids(), get_gp_rq_to_atmgrids(), and SurfaceFlatScalarReflectivity().

◆ magnetic_field_perturbation()

Numeric magnetic_field_perturbation ( const ArrayOfRetrievalQuantity js)
noexcept

Returns the magnetic field perturbation if it exists.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
Magnetic field perturbation

Definition at line 1199 of file jacobian.cc.

Referenced by propmat_clearskyAddFaraday().

◆ polynomial_basis_func()

void polynomial_basis_func ( Vector b,
const Vector x,
const Index poly_coeff 
)

Calculates polynomial basis functions.

The basis function is b(x) = 1 for poly_coeff = 0. For higher coefficients, x^poly_coeff - m, where first the range covered by x* is normalised to [-1,1] and m is selected in such way that sum(b) = 0.

Parameters
[out]bCalculated basis function.
[in]xThe grid over which the fit shall be performed.
[in]poly_coeffPolynomial coefficient.
Author
Patrick Eriksson
Date
2008-11-07

Definition at line 848 of file jacobian.cc.

References ARTS_ASSERT, b, max(), mean(), min(), ConstVectorView::nelem(), and pow().

Referenced by calcBaselineFit(), jacobianCalcFreqStretch(), jacobianCalcPointingZaInterp(), jacobianCalcPointingZaRecalc(), jacobianCalcPolyfit(), and x2artsSensor().

◆ propmattype_string()

String propmattype_string ( const RetrievalQuantity rq)

Returns a string of the retrieval quantity propagation matrix type.

Only use for debugging purpose

Parameters
[in]rqA retrieval quantity
Returns
Text representation

◆ species_iso_match()

bool species_iso_match ( const RetrievalQuantity rq,
const Species::IsotopeRecord ir 
)

Returns if the Retrieval quantity is VMR derivative for all the species in the species tags.

Parameters
[in]rqA retrieval quantity
[in]speciesAn index-mapped species
[in]isoAn index-mapped isotopologue
Returns
true the species and isotopologue match the species and isotopologue in the retrieval quantity
false otherwise

Definition at line 1141 of file jacobian.cc.

References Species::IsotopeRecord::isotname, Quantum::Number::GlobalState::Isotopologue(), Species::Joker, RetrievalQuantity::QuantumIdentity(), and Species::IsotopeRecord::spec.

◆ species_match() [1/2]

bool species_match ( const RetrievalQuantity rq,
const ArrayOfSpeciesTag ast 
)

Returns if the Retrieval quantity is VMR derivative for all the species in the species tags.

Very slow compared to index input

Parameters
[in]rqA retrieval quantity
[in]astA list of species tags
Returns
true if all species in the tags list matches the species in the retrieval quantity
false otherwise

Definition at line 1119 of file jacobian.cc.

References Species::IsotopeRecord::isotname, Quantum::Number::GlobalState::Isotopologue(), Quantum::Number::GlobalState::isotopologue_index, Species::Joker, RetrievalQuantity::QuantumIdentity(), Quantum::Number::GlobalState::Species(), Jacobian::Target::species_array_id, and RetrievalQuantity::Target().

Referenced by abs_xsec_per_speciesAddCIA(), propmat_clearskyAddCIA(), and propmat_clearskyAddXsecFit().

◆ species_match() [2/2]

bool species_match ( const RetrievalQuantity rq,
const Species::Species  species 
)

Returns if the Retrieval quantity is VMR derivative for all the species in the species tags.

Parameters
[in]rqA retrieval quantity
[in]speciesAn index-mapped species
Returns
true the species match the species in the retrieval quantity
false otherwise

Definition at line 1135 of file jacobian.cc.

References RetrievalQuantity::QuantumIdentity(), and Quantum::Number::GlobalState::Species().

◆ supports_CIA()

bool supports_CIA ( const ArrayOfRetrievalQuantity js)

Returns if the array supports CIA derivatives.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
true if it does
false if it does not

Definition at line 1089 of file jacobian.cc.

Referenced by abs_xsec_per_speciesAddCIA(), and propmat_clearskyAddCIA().

◆ supports_continuum()

bool supports_continuum ( const ArrayOfRetrievalQuantity js)

Returns if the array supports continuum derivatives.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
true if it does
false if it does not

Definition at line 1097 of file jacobian.cc.

References ARTS_USER_ERROR_IF.

◆ supports_faraday()

bool supports_faraday ( const ArrayOfRetrievalQuantity js)

Returns if the array supports Faraday derivatives.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
true if it does
false if it does not

◆ supports_hitran_xsec()

bool supports_hitran_xsec ( const ArrayOfRetrievalQuantity js)

Returns if the array supports HITRAN cross-section derivatives.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
true if it does
false if it does not

Definition at line 1093 of file jacobian.cc.

Referenced by propmat_clearskyAddXsecFit().

◆ supports_lookup()

bool supports_lookup ( const ArrayOfRetrievalQuantity js)

Returns if the array supports lookup table derivatives.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
true if it does
false if it does not

Definition at line 1109 of file jacobian.cc.

References ARTS_USER_ERROR_IF.

◆ supports_propmat_clearsky()

bool supports_propmat_clearsky ( const ArrayOfRetrievalQuantity js)

Returns if the array supports propagation matrix derivatives.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
true if it does
false if it does not

Definition at line 1115 of file jacobian.cc.

◆ supports_relaxation_matrix()

bool supports_relaxation_matrix ( const ArrayOfRetrievalQuantity js)

Returns if the array supports relaxation matrix derivatives.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
true if it does
false if it does not

Definition at line 1103 of file jacobian.cc.

References ARTS_USER_ERROR_IF.

◆ supports_zeeman()

bool supports_zeeman ( const ArrayOfRetrievalQuantity js)

Returns if the array supports Zeeman derivatives.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
true if it does
false if it does not

◆ temperature_perturbation()

Numeric temperature_perturbation ( const ArrayOfRetrievalQuantity js)
noexcept

Returns the temperature perturbation if it exists.

Parameters
[in]jsAs jacobian_quantities WSV
Returns
Temperature perturbation

Definition at line 1183 of file jacobian.cc.

Referenced by abs_xsec_per_speciesAddCIA(), propmat_clearskyAddCIA(), propmat_clearskyAddParticles(), and propmat_clearskyAddXsecFit().

◆ transform_jacobian()

void transform_jacobian ( Matrix jacobian,
const Vector  x,
const ArrayOfRetrievalQuantity jqs 
)

Applies both functional and affine transformations.

Parameters
[in]jacobianAs the WSV jacobian
[in]jqsAs the WSV jacobian_quantities
Author
Simon Pfreundschuh and Patrick Eriksson
Date
2017-12-30

Definition at line 91 of file jacobian.cc.

References ARTS_ASSERT, c, RetrievalQuantity::HasAffine(), jac_ranges_indices(), joker, mult(), NAT_LOG_TEN, Array< base >::nelem(), ConstMatrixView::nrows(), pow(), swap(), RetrievalQuantity::TFuncParameters(), transform_x_back(), RetrievalQuantity::TransformationFunc(), and RetrievalQuantity::TransformationMatrix().

Referenced by jacobianAdjustAndTransform().

◆ transform_x()

void transform_x ( Vector x,
const ArrayOfRetrievalQuantity jqs 
)

Handles transformations of the state vector.

Applies both functional and affine transformations.

Parameters
[in,out]xAs the WSV x
[in]jqsAs the WSV jacobian_quantities
Author
Simon Pfreundschuh and Patrick Eriksson
Date
2017-12-30

Definition at line 156 of file jacobian.cc.

References ARTS_ASSERT, ARTS_USER_ERROR_IF, RetrievalQuantity::HasAffine(), jac_ranges_indices(), mult(), Array< base >::nelem(), RetrievalQuantity::OffsetVector(), swap(), RetrievalQuantity::TFuncParameters(), RetrievalQuantity::TransformationFunc(), RetrievalQuantity::TransformationMatrix(), and transpose().

◆ transform_x_back()

void transform_x_back ( Vector x_t,
const ArrayOfRetrievalQuantity jqs,
bool  revert_functional_transforms = true 
)

Handles back-transformations of the state vector.

Applies both functional and affine transformations.

Parameters
[in]xAs the WSV x
[in]jqsAs the WSV jacobian_quantities
Author
Simon Pfreundschuh and Patrick Eriksson
Date
2017-12-30

Definition at line 233 of file jacobian.cc.

References ARTS_ASSERT, RetrievalQuantity::HasAffine(), jac_ranges_indices(), mult(), Array< base >::nelem(), RetrievalQuantity::OffsetVector(), pow(), swap(), RetrievalQuantity::TFuncParameters(), RetrievalQuantity::TransformationFunc(), and RetrievalQuantity::TransformationMatrix().

Referenced by jacobianAdjustAndTransform(), transform_jacobian(), x2artsAtmAndSurf(), and x2artsSensor().

◆ vmrunitscf()

void vmrunitscf ( Numeric x,
const String unit,
const Numeric vmr,
const Numeric p,
const Numeric t 
)

Scale factor for conversion between gas species units.

The function finds the factor with which the total absorption of a gas species shall be multiplicated to match the selected (jacobian) unit.

Parameters
[out]xScale factor
[in]unitUnit selected.
[in]vmrVMR value.
[in]pPressure
[in]tTemperature.
Author
Patrick Eriksson
Date
2009-10-08

Definition at line 952 of file jacobian.cc.

References ARTS_USER_ERROR, and number_density().