ARTS  2.4.0(git:4fb77825)
PropagationMatrix Class Reference

#include <propagationmatrix.h>

Inheritance diagram for PropagationMatrix:
StokesVector

Public Member Functions

 PropagationMatrix (const Index nr_frequencies=0, const Index stokes_dim=1, const Index nr_za=1, const Index nr_aa=1, const Numeric v=0.0)
 Initialize variable sizes. More...
 
 PropagationMatrix (const PropagationMatrix &pm)
 Construct a new Propagation Matrix object. More...
 
 PropagationMatrix (PropagationMatrix &&pm) noexcept
 Construct a new Propagation Matrix object. More...
 
 PropagationMatrix (ConstTensor4View x)
 Construct a new Propagation Matrix object. More...
 
 PropagationMatrix (ConstMatrixView x, const bool &assume_fit=false)
 Initialize from single stokes_dim-by-stokes_dim matrix. More...
 
Index StokesDimensions () const
 The stokes dimension of the propagation matrix. More...
 
Index NumberOfFrequencies () const
 The number of frequencies of the propagation matrix. More...
 
Index NumberOfZenithAngles () const
 The number of zenith angles of the propagation matrix. More...
 
Index NumberOfAzimuthAngles () const
 The number of azimuth angles of the propagation matrix. More...
 
bool OK () const
 
void SetVectorType (bool vectortype)
 Set the Vector Type object. More...
 
bool IsEmpty () const
 Asks if the class is empty. More...
 
bool IsZero (const Index iv=0, const Index iz=0, const Index ia=0) const
 False if any non-zeroes in internal Matrix representation. More...
 
bool IsRotational (const Index iv=0, const Index iz=0, const Index ia=0) const
 False if diagonal element is non-zero in internal Matrix representation. More...
 
Index NumberOfNeededVectors () const
 The number of required vectors to fill this PropagationMatrix. More...
 
Numeric operator() (const Index iv=0, const Index is1=0, const Index is2=0, const Index iz=0, const Index ia=0) const
 access operator. More...
 
void AddFaraday (const Numeric &rot, const Index iv=0, const Index iz=0, const Index ia=0)
 Adds the Faraday rotation to the PropagationMatrix at required position. More...
 
void SetFaraday (const Numeric &rot, const Index iv=0, const Index iz=0, const Index ia=0)
 Sets the Faraday rotation to the PropagationMatrix at required position. More...
 
void MatrixAtPosition (MatrixView ret, const Index iv=0, const Index iz=0, const Index ia=0) const
 Sets the dense matrix. More...
 
PropagationMatrixoperator= (PropagationMatrix &&pm) noexcept
 Move operator. More...
 
PropagationMatrixoperator= (const LazyScale< PropagationMatrix > &lpms)
 Laze equal to opeartor. More...
 
PropagationMatrixoperator= (const PropagationMatrix &other)
 Copy operator. More...
 
PropagationMatrixoperator= (const Numeric &x)
 Sets all data to constant. More...
 
void SetAtPosition (const PropagationMatrix &x, const Index iv=0, const Index iz=0, const Index ia=0)
 Set the At Position object. More...
 
void SetAtPosition (ConstMatrixView x, const Index iv=0, const Index iz=0, const Index ia=0)
 Set the At Position object. More...
 
void SetAtPosition (const Numeric &x, const Index iv=0, const Index iz=0, const Index ia=0)
 Set the At Position object. More...
 
PropagationMatrixoperator/= (const PropagationMatrix &other)
 Divide operator. More...
 
PropagationMatrixoperator/= (ConstVectorView x)
 Divide operator. More...
 
PropagationMatrixoperator/= (const Numeric &x)
 Divide operator. More...
 
void DivideAtPosition (const PropagationMatrix &x, const Index iv=0, const Index iz=0, const Index ia=0)
 Divide at position. More...
 
void DivideAtPosition (ConstMatrixView x, const Index iv=0, const Index iz=0, const Index ia=0)
 Divide at position. More...
 
void DivideAtPosition (const Numeric &x, const Index iv=0, const Index iz=0, const Index ia=0)
 Divide at position. More...
 
PropagationMatrixoperator*= (const PropagationMatrix &other)
 Multiply operator. More...
 
PropagationMatrixoperator*= (ConstVectorView x)
 Multiply operator. More...
 
PropagationMatrixoperator*= (const Numeric &x)
 Multiply operator. More...
 
void MultiplyAtPosition (const PropagationMatrix &x, const Index iv=0, const Index iz=0, const Index ia=0)
 Multiply operator at position. More...
 
void MultiplyAtPosition (ConstMatrixView x, const Index iv=0, const Index iz=0, const Index ia=0)
 Multiply operator at position. More...
 
void MultiplyAtPosition (const Numeric &x, const Index iv=0, const Index iz=0, const Index ia=0)
 Multiply operator at position. More...
 
PropagationMatrixoperator+= (const PropagationMatrix &other)
 Addition operator. More...
 
PropagationMatrixoperator+= (const LazyScale< PropagationMatrix > &lpms)
 Addition operator. More...
 
PropagationMatrixoperator+= (ConstVectorView x)
 Addition operator. More...
 
PropagationMatrixoperator+= (const Numeric &x)
 Addition operator. More...
 
void AddAtPosition (const PropagationMatrix &x, const Index iv=0, const Index iz=0, const Index ia=0)
 Addition at position operator. More...
 
void AddAtPosition (ConstMatrixView x, const Index iv=0, const Index iz=0, const Index ia=0)
 Addition at position operator. More...
 
void AddAtPosition (const Numeric &x, const Index iv=0, const Index iz=0, const Index ia=0)
 Addition at position operator. More...
 
PropagationMatrixoperator-= (const PropagationMatrix &other)
 Subtraction operator. More...
 
PropagationMatrixoperator-= (ConstVectorView x)
 Subtraction operator. More...
 
PropagationMatrixoperator-= (const Numeric &x)
 Subtraction operator. More...
 
void RemoveAtPosition (const PropagationMatrix &x, const Index iv=0, const Index iz=0, const Index ia=0)
 Subtraction at position. More...
 
void RemoveAtPosition (ConstMatrixView x, const Index iv=0, const Index iz=0, const Index ia=0)
 Subtraction at position. More...
 
void RemoveAtPosition (const Numeric &x, const Index iv=0, const Index iz=0, const Index ia=0)
 Subtraction at position. More...
 
void AddAbsorptionVectorAtPosition (ConstVectorView x, const Index iv=0, const Index iz=0, const Index ia=0)
 Adds as a Stokes vector at position. More...
 
void AddAverageAtPosition (ConstMatrixView mat1, ConstMatrixView mat2, const Index iv=0, const Index iz=0, const Index ia=0)
 Add the average of the two input at position. More...
 
void MultiplyAndAdd (const Numeric x, const PropagationMatrix &y)
 Multiply input by scalar and add to this. More...
 
void MatrixInverseAtPosition (MatrixView ret, const Index iv=0, const Index iz=0, const Index ia=0) const
 Return the matrix inverse at the position. More...
 
bool FittingShape (ConstMatrixView x) const
 Tests of the input matrix fits Propagation Matrix style. More...
 
void GetTensor3 (Tensor3View tensor3, const Index iz=0, const Index ia=0)
 Get a Tensor3 object from this. More...
 
VectorView Kjj (const Index iz=0, const Index ia=0)
 Vector view to diagonal elements. More...
 
VectorView K12 (const Index iz=0, const Index ia=0)
 Vector view to K(0, 1) elements. More...
 
VectorView K13 (const Index iz=0, const Index ia=0)
 Vector view to K(0, 2) elements. More...
 
VectorView K14 (const Index iz=0, const Index ia=0)
 Vector view to K(0, 3) elements. More...
 
VectorView K23 (const Index iz=0, const Index ia=0)
 Vector view to K(1, 2) elements. More...
 
VectorView K24 (const Index iz=0, const Index ia=0)
 Vector view to K(1, 3) elements. More...
 
VectorView K34 (const Index iz=0, const Index ia=0)
 Vector view to K(2, 3) elements. More...
 
ConstVectorView Kjj (const Index iz=0, const Index ia=0) const
 Vector view to diagonal elements. More...
 
ConstVectorView K12 (const Index iz=0, const Index ia=0) const
 Vector view to K(0, 1) elements. More...
 
ConstVectorView K13 (const Index iz=0, const Index ia=0) const
 Vector view to K(0, 2) elements. More...
 
ConstVectorView K14 (const Index iz=0, const Index ia=0) const
 Vector view to K(0, 3) elements. More...
 
ConstVectorView K23 (const Index iz=0, const Index ia=0) const
 Vector view to K(1, 3) elements. More...
 
ConstVectorView K24 (const Index iz=0, const Index ia=0) const
 Vector view to K(1, 3) elements. More...
 
ConstVectorView K34 (const Index iz=0, const Index ia=0) const
 Vector view to diagonal elements. More...
 
void SetZero ()
 Sets all data to zero. More...
 
Tensor4Data ()
 Get full view to data. More...
 
const Tensor4Data () const
 Get full const view to data. More...
 
void LeftMultiplyAtPosition (MatrixView out, ConstMatrixView in, const Index iv=0, const Index iz=0, const Index ia=0) const
 Multiply the matrix input from the left of this at position. More...
 
void RightMultiplyAtPosition (MatrixView out, ConstMatrixView in, const Index iv=0, const Index iz=0, const Index ia=0) const
 Multiply the matrix input from the right of this at position. More...
 

Protected Attributes

Index mfreqs
 
Index mstokes_dim
 
Index mza
 
Index maa
 
Tensor4 mdata
 
bool mvectortype
 

Detailed Description

Propagation Matrix Holder Class With Some Computational Capabilities

The idea comes from the fact that the propagation matrix has the looks

/ \ | a b c d | | b a u v | | c -u a w | | d -v -w a | \ /

So we instead store the inner parts of the matrix linearly as [a b c d u v w], and all computations happens on these variables instead. Note that the variables changes with the Stokes dimension

Stokes Dim 4: [a b c d u v w] Stokes Dim 3: [a b c u] Stokes Dim 2: [a b] Stokes Dim 1: [a]

And for devs: the u-variable is at vector position of the Stokes Dim in case 4 and 3, and that the other variables never change their positions, which is why the switch cases are all consistently fall-through-able in this class

Definition at line 87 of file propagationmatrix.h.

Constructor & Destructor Documentation

◆ PropagationMatrix() [1/5]

PropagationMatrix::PropagationMatrix ( const Index  nr_frequencies = 0,
const Index  stokes_dim = 1,
const Index  nr_za = 1,
const Index  nr_aa = 1,
const Numeric  v = 0.0 
)
inline

Initialize variable sizes.

Will create a Tensor4 of the size and order (nr_aa, nr_za, NumberOfNeededVectors(), nr_frequencies)

Parameters
[in]nr_frequenciesNumber of Dirac frequencies
[in]stokes_dimStokes dimensionality
[in]nr_zaNumber of Dirac Zeniths
[in]nr_aaNumber of Dirac Azimuths
[in]vInitial values of things in the created Tensor4

Definition at line 100 of file propagationmatrix.h.

References maa, mdata, mfreqs, mza, and NumberOfNeededVectors().

◆ PropagationMatrix() [2/5]

PropagationMatrix::PropagationMatrix ( const PropagationMatrix pm)
inline

Construct a new Propagation Matrix object.

Parameters
[in]pmOld propagation matrix object to copy

Definition at line 118 of file propagationmatrix.h.

◆ PropagationMatrix() [3/5]

PropagationMatrix::PropagationMatrix ( PropagationMatrix &&  pm)
inlinenoexcept

Construct a new Propagation Matrix object.

Parameters
[in]pmold Propagation Matrix object to move from

Definition at line 130 of file propagationmatrix.h.

◆ PropagationMatrix() [4/5]

PropagationMatrix::PropagationMatrix ( ConstTensor4View  x)
inlineexplicit

Construct a new Propagation Matrix object.

Parameters
[in]xTensor4 object to use to initialize from

Definition at line 142 of file propagationmatrix.h.

References mstokes_dim, and ARTS::Var::x().

◆ PropagationMatrix() [5/5]

PropagationMatrix::PropagationMatrix ( ConstMatrixView  x,
const bool &  assume_fit = false 
)
inlineexplicit

Initialize from single stokes_dim-by-stokes_dim matrix.

Parameters
[in]xThe matrix
[in]assume_fitAssume a correct fit? Do not set this in manual interface

Definition at line 172 of file propagationmatrix.h.

References FittingShape(), mdata, mstokes_dim, mvectortype, NumberOfNeededVectors(), Tensor4::resize(), and ARTS::Var::x().

Member Function Documentation

◆ AddAbsorptionVectorAtPosition()

void PropagationMatrix::AddAbsorptionVectorAtPosition ( ConstVectorView  x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)
inline

Adds as a Stokes vector at position.

Parameters
[in]x
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 739 of file propagationmatrix.h.

References mdata, mstokes_dim, and ARTS::Var::x().

◆ AddAtPosition() [1/3]

void PropagationMatrix::AddAtPosition ( const Numeric x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)
inline

Addition at position operator.

Parameters
[in]otherAddition by other
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 649 of file propagationmatrix.h.

References joker, mdata, and ARTS::Var::x().

◆ AddAtPosition() [2/3]

void PropagationMatrix::AddAtPosition ( const PropagationMatrix x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)
inline

Addition at position operator.

Parameters
[in]otherAddition by other
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 623 of file propagationmatrix.h.

References joker, mdata, and ARTS::Var::x().

◆ AddAtPosition() [3/3]

void PropagationMatrix::AddAtPosition ( ConstMatrixView  x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)

Addition at position operator.

Parameters
[in]otherAddition by other
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 1852 of file propagationmatrix.cc.

References mdata, mstokes_dim, and ARTS::Var::x().

◆ AddAverageAtPosition()

void PropagationMatrix::AddAverageAtPosition ( ConstMatrixView  mat1,
ConstMatrixView  mat2,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)

Add the average of the two input at position.

Parameters
[in]mat1input 1
[in]mat2input 2
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 1610 of file propagationmatrix.cc.

References mdata, and mstokes_dim.

◆ AddFaraday()

void PropagationMatrix::AddFaraday ( const Numeric rot,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)
inline

Adds the Faraday rotation to the PropagationMatrix at required position.

No vector function exists since rot is a function of frequency

Parameters
[in]rotrotation
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 297 of file propagationmatrix.h.

References mdata, and mstokes_dim.

◆ Data() [1/2]

Tensor4& PropagationMatrix::Data ( )
inline

Get full view to data.

Definition at line 937 of file propagationmatrix.h.

References mdata.

Referenced by _cr_internal_(), operator<<(), test_r_deriv_propagationmatrix(), and xml_write_to_stream().

◆ Data() [2/2]

const Tensor4& PropagationMatrix::Data ( ) const
inline

Get full const view to data.

Definition at line 940 of file propagationmatrix.h.

References mdata.

◆ DivideAtPosition() [1/3]

void PropagationMatrix::DivideAtPosition ( const Numeric x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)
inline

Divide at position.

Parameters
[in]otherDivide by other
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 495 of file propagationmatrix.h.

References joker, mdata, and ARTS::Var::x().

◆ DivideAtPosition() [2/3]

void PropagationMatrix::DivideAtPosition ( const PropagationMatrix x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)
inline

Divide at position.

Parameters
[in]otherDivide by other
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 469 of file propagationmatrix.h.

References joker, mdata, and ARTS::Var::x().

◆ DivideAtPosition() [3/3]

void PropagationMatrix::DivideAtPosition ( ConstMatrixView  x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)

Divide at position.

Parameters
[in]otherDivide by other
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 1890 of file propagationmatrix.cc.

References mdata, mstokes_dim, and ARTS::Var::x().

◆ FittingShape()

bool PropagationMatrix::FittingShape ( ConstMatrixView  x) const

Tests of the input matrix fits Propagation Matrix style.

Parameters
[in]xInput matrix

Definition at line 1640 of file propagationmatrix.cc.

References mstokes_dim, Absorption::nelem(), and ARTS::Var::x().

Referenced by PropagationMatrix().

◆ GetTensor3()

void PropagationMatrix::GetTensor3 ( Tensor3View  tensor3,
const Index  iz = 0,
const Index  ia = 0 
)

Get a Tensor3 object from this.

Parameters
[in,out]tensor3New tensor
[in]izZenith index
[in]iaAzimuth index

Definition at line 1674 of file propagationmatrix.cc.

References joker, mdata, and mstokes_dim.

◆ IsEmpty()

bool PropagationMatrix::IsEmpty ( ) const
inline

Asks if the class is empty.

Definition at line 221 of file propagationmatrix.h.

References maa, mfreqs, and mza.

Referenced by get_stepwise_effective_source(), and RadiationVector::setSource().

◆ IsRotational()

bool PropagationMatrix::IsRotational ( const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
) const
inline

False if diagonal element is non-zero in internal Matrix representation.

Parameters
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index
Returns
False if diagonal is non-zero

Definition at line 247 of file propagationmatrix.h.

References mdata.

Referenced by get_stepwise_effective_source(), and stepwise_source().

◆ IsZero()

bool PropagationMatrix::IsZero ( const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
) const
inline

False if any non-zeroes in internal Matrix representation.

Parameters
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index
Returns
False if any non-zeroes

Definition at line 230 of file propagationmatrix.h.

References joker, and mdata.

◆ K12() [1/2]

◆ K12() [2/2]

ConstVectorView PropagationMatrix::K12 ( const Index  iz = 0,
const Index  ia = 0 
) const
inline

Vector view to K(0, 1) elements.

Parameters
[in]izZenith index
[in]iaAzimuth index
Returns
VectorView K(0, 1) elements

Definition at line 879 of file propagationmatrix.h.

References joker, and mdata.

◆ K13() [1/2]

VectorView PropagationMatrix::K13 ( const Index  iz = 0,
const Index  ia = 0 
)
inline

Vector view to K(0, 2) elements.

Parameters
[in]izZenith index
[in]iaAzimuth index
Returns
VectorView K(0, 2) elements

Definition at line 819 of file propagationmatrix.h.

References joker, and mdata.

Referenced by StokesVector::IsPolarized(), operator>>(), RadiationVector::setSource(), stepwise_source(), and test_r_deriv_propagationmatrix().

◆ K13() [2/2]

ConstVectorView PropagationMatrix::K13 ( const Index  iz = 0,
const Index  ia = 0 
) const
inline

Vector view to K(0, 2) elements.

Parameters
[in]izZenith index
[in]iaAzimuth index
Returns
VectorView K(0, 2) elements

Definition at line 889 of file propagationmatrix.h.

References joker, and mdata.

◆ K14() [1/2]

VectorView PropagationMatrix::K14 ( const Index  iz = 0,
const Index  ia = 0 
)
inline

Vector view to K(0, 3) elements.

Parameters
[in]izZenith index
[in]iaAzimuth index
Returns
VectorView K(0, 3) elements

Definition at line 829 of file propagationmatrix.h.

References joker, and mdata.

Referenced by StokesVector::IsPolarized(), operator>>(), RadiationVector::setSource(), stepwise_source(), and test_r_deriv_propagationmatrix().

◆ K14() [2/2]

ConstVectorView PropagationMatrix::K14 ( const Index  iz = 0,
const Index  ia = 0 
) const
inline

Vector view to K(0, 3) elements.

Parameters
[in]izZenith index
[in]iaAzimuth index
Returns
VectorView K(0, 3) elements

Definition at line 899 of file propagationmatrix.h.

References joker, and mdata.

◆ K23() [1/2]

VectorView PropagationMatrix::K23 ( const Index  iz = 0,
const Index  ia = 0 
)
inline

Vector view to K(1, 2) elements.

Parameters
[in]izZenith index
[in]iaAzimuth index
Returns
VectorView K(1, 2) elements

Definition at line 839 of file propagationmatrix.h.

References joker, mdata, and mstokes_dim.

Referenced by operator>>(), stepwise_source(), and test_r_deriv_propagationmatrix().

◆ K23() [2/2]

ConstVectorView PropagationMatrix::K23 ( const Index  iz = 0,
const Index  ia = 0 
) const
inline

Vector view to K(1, 3) elements.

Parameters
[in]izZenith index
[in]iaAzimuth index
Returns
VectorView K(1, 3) elements

Definition at line 909 of file propagationmatrix.h.

References joker, mdata, and mstokes_dim.

◆ K24() [1/2]

VectorView PropagationMatrix::K24 ( const Index  iz = 0,
const Index  ia = 0 
)
inline

Vector view to K(1, 3) elements.

Parameters
[in]izZenith index
[in]iaAzimuth index
Returns
VectorView K(1, 3) elements

Definition at line 849 of file propagationmatrix.h.

References joker, and mdata.

Referenced by operator>>(), stepwise_source(), and test_r_deriv_propagationmatrix().

◆ K24() [2/2]

ConstVectorView PropagationMatrix::K24 ( const Index  iz = 0,
const Index  ia = 0 
) const
inline

Vector view to K(1, 3) elements.

Parameters
[in]izZenith index
[in]iaAzimuth index
Returns
VectorView K(1, 3) elements

Definition at line 919 of file propagationmatrix.h.

References joker, and mdata.

◆ K34() [1/2]

VectorView PropagationMatrix::K34 ( const Index  iz = 0,
const Index  ia = 0 
)
inline

Vector view to K(2, 3) elements.

Parameters
[in]izZenith index
[in]iaAzimuth index
Returns
VectorView K(2, 3) elements

Definition at line 859 of file propagationmatrix.h.

References joker, and mdata.

Referenced by ext_matTransform(), operator>>(), stepwise_source(), and test_r_deriv_propagationmatrix().

◆ K34() [2/2]

ConstVectorView PropagationMatrix::K34 ( const Index  iz = 0,
const Index  ia = 0 
) const
inline

Vector view to diagonal elements.

Parameters
[in]izZenith index
[in]iaAzimuth index
Returns
VectorView Diagonal elements

Definition at line 929 of file propagationmatrix.h.

References joker, and mdata.

◆ Kjj() [1/2]

◆ Kjj() [2/2]

ConstVectorView PropagationMatrix::Kjj ( const Index  iz = 0,
const Index  ia = 0 
) const
inline

Vector view to diagonal elements.

Parameters
[in]izZenith index
[in]iaAzimuth index
Returns
VectorView Diagonal elements

Definition at line 869 of file propagationmatrix.h.

References joker, and mdata.

◆ LeftMultiplyAtPosition()

void PropagationMatrix::LeftMultiplyAtPosition ( MatrixView  out,
ConstMatrixView  in,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
) const

Multiply the matrix input from the left of this at position.

Parameters
[in,out]outOutgoing matrix
[in]inIncoming matrix
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 1707 of file propagationmatrix.cc.

References K12(), Kjj(), and mstokes_dim.

◆ MatrixAtPosition()

void PropagationMatrix::MatrixAtPosition ( MatrixView  ret,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
) const

Sets the dense matrix.

Avoid using if possible.

Parameters
[in,out]Fullpropagation matrix
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 1928 of file propagationmatrix.cc.

References mdata, and mstokes_dim.

Referenced by clear_rt_vars_at_gp(), cloud_fieldsCalc(), and cloudy_rt_vars_at_gp().

◆ MatrixInverseAtPosition()

void PropagationMatrix::MatrixInverseAtPosition ( MatrixView  ret,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
) const

Return the matrix inverse at the position.

Parameters
[in,out]retInversed matrix
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 1506 of file propagationmatrix.cc.

References a2, b2, K12(), Kjj(), and mstokes_dim.

Referenced by get_stepwise_effective_source(), and rte_step_doit_replacement().

◆ MultiplyAndAdd()

void PropagationMatrix::MultiplyAndAdd ( const Numeric  x,
const PropagationMatrix y 
)

Multiply input by scalar and add to this.

Parameters
xscalar
yinput

Definition at line 1631 of file propagationmatrix.cc.

References maa, and mza.

Referenced by operator+=(), and opt_prop_bulkCalc().

◆ MultiplyAtPosition() [1/3]

void PropagationMatrix::MultiplyAtPosition ( const Numeric x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)
inline

Multiply operator at position.

Parameters
[in]otherMultiply by other
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 567 of file propagationmatrix.h.

References joker, mdata, and ARTS::Var::x().

◆ MultiplyAtPosition() [2/3]

void PropagationMatrix::MultiplyAtPosition ( const PropagationMatrix x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)
inline

Multiply operator at position.

Parameters
[in]otherMultiply by other
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 541 of file propagationmatrix.h.

References joker, mdata, and ARTS::Var::x().

◆ MultiplyAtPosition() [3/3]

void PropagationMatrix::MultiplyAtPosition ( ConstMatrixView  x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)

Multiply operator at position.

Parameters
[in]otherMultiply by other
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 1871 of file propagationmatrix.cc.

References mdata, mstokes_dim, and ARTS::Var::x().

◆ NumberOfAzimuthAngles()

Index PropagationMatrix::NumberOfAzimuthAngles ( ) const
inline

The number of azimuth angles of the propagation matrix.

Definition at line 210 of file propagationmatrix.h.

References maa.

Referenced by RadiationVector::setSource(), and StokesVector::StokesVector().

◆ NumberOfFrequencies()

◆ NumberOfNeededVectors()

Index PropagationMatrix::NumberOfNeededVectors ( ) const
inline

The number of required vectors to fill this PropagationMatrix.

Definition at line 257 of file propagationmatrix.h.

References mstokes_dim, and mvectortype.

Referenced by OK(), operator*=(), operator+=(), operator-=(), operator/=(), and PropagationMatrix().

◆ NumberOfZenithAngles()

Index PropagationMatrix::NumberOfZenithAngles ( ) const
inline

The number of zenith angles of the propagation matrix.

Definition at line 207 of file propagationmatrix.h.

References mza.

Referenced by RadiationVector::setSource(), and StokesVector::StokesVector().

◆ OK()

◆ operator()()

Numeric PropagationMatrix::operator() ( const Index  iv = 0,
const Index  is1 = 0,
const Index  is2 = 0,
const Index  iz = 0,
const Index  ia = 0 
) const

access operator.

Please refrain from using this if possible since it copies

Definition at line 1953 of file propagationmatrix.cc.

References mdata, and mstokes_dim.

◆ operator*=() [1/3]

PropagationMatrix& PropagationMatrix::operator*= ( const Numeric x)
inline

Multiply operator.

Parameters
[in]otherMultiply by other
Returns
PropagationMatrix& *this

Definition at line 529 of file propagationmatrix.h.

References mdata, and ARTS::Var::x().

◆ operator*=() [2/3]

PropagationMatrix& PropagationMatrix::operator*= ( const PropagationMatrix other)
inline

Multiply operator.

Parameters
[in]otherMultiply by other
Returns
PropagationMatrix& *this

Definition at line 507 of file propagationmatrix.h.

References mdata.

◆ operator*=() [3/3]

PropagationMatrix& PropagationMatrix::operator*= ( ConstVectorView  x)
inline

Multiply operator.

Parameters
[in]otherMultiply by other
Returns
PropagationMatrix& *this

Definition at line 517 of file propagationmatrix.h.

References mza, and NumberOfNeededVectors().

◆ operator+=() [1/4]

PropagationMatrix& PropagationMatrix::operator+= ( const LazyScale< PropagationMatrix > &  lpms)
inline

Addition operator.

Parameters
[in]otherAddition by other
Returns
PropagationMatrix& *this

Definition at line 589 of file propagationmatrix.h.

References LazyScale< base >::bas, MultiplyAndAdd(), and LazyScale< base >::scale.

◆ operator+=() [2/4]

PropagationMatrix& PropagationMatrix::operator+= ( const Numeric x)
inline

Addition operator.

Parameters
[in]otherAddition by other
Returns
PropagationMatrix& *this

Definition at line 611 of file propagationmatrix.h.

References mdata, and ARTS::Var::x().

◆ operator+=() [3/4]

PropagationMatrix& PropagationMatrix::operator+= ( const PropagationMatrix other)
inline

Addition operator.

Parameters
[in]otherAddition by other
Returns
PropagationMatrix& *this

Definition at line 579 of file propagationmatrix.h.

References mdata.

◆ operator+=() [4/4]

PropagationMatrix& PropagationMatrix::operator+= ( ConstVectorView  x)
inline

Addition operator.

Parameters
[in]otherAddition by other
Returns
PropagationMatrix& *this

Definition at line 599 of file propagationmatrix.h.

References mza, and NumberOfNeededVectors().

◆ operator-=() [1/3]

PropagationMatrix& PropagationMatrix::operator-= ( const Numeric x)
inline

Subtraction operator.

Parameters
[in]otherSubtract by other
Returns
PropagationMatrix& *this

Definition at line 687 of file propagationmatrix.h.

References mdata, and ARTS::Var::x().

◆ operator-=() [2/3]

PropagationMatrix& PropagationMatrix::operator-= ( const PropagationMatrix other)
inline

Subtraction operator.

Parameters
[in]otherSubtract by other
Returns
PropagationMatrix& *this

Definition at line 661 of file propagationmatrix.h.

References mdata.

◆ operator-=() [3/3]

PropagationMatrix& PropagationMatrix::operator-= ( ConstVectorView  x)
inline

Subtraction operator.

Parameters
[in]otherSubtract by other
Returns
PropagationMatrix& *this

Definition at line 671 of file propagationmatrix.h.

References mza, and NumberOfNeededVectors().

◆ operator/=() [1/3]

PropagationMatrix& PropagationMatrix::operator/= ( const Numeric x)
inline

Divide operator.

Parameters
[in]otherDivide by other
Returns
PropagationMatrix& *this

Definition at line 457 of file propagationmatrix.h.

References mdata, and ARTS::Var::x().

◆ operator/=() [2/3]

PropagationMatrix& PropagationMatrix::operator/= ( const PropagationMatrix other)
inline

Divide operator.

Parameters
[in]otherDivide by other
Returns
PropagationMatrix& *this

Definition at line 431 of file propagationmatrix.h.

References mdata.

◆ operator/=() [3/3]

PropagationMatrix& PropagationMatrix::operator/= ( ConstVectorView  x)
inline

Divide operator.

Parameters
[in]otherDivide by other
Returns
PropagationMatrix& *this

Definition at line 441 of file propagationmatrix.h.

References mza, and NumberOfNeededVectors().

◆ operator=() [1/4]

PropagationMatrix& PropagationMatrix::operator= ( const LazyScale< PropagationMatrix > &  lpms)
inline

Laze equal to opeartor.

Parameters
[in]lpmslazified propagation matrix
Returns
PropagationMatrix& *this

Definition at line 354 of file propagationmatrix.h.

References LazyScale< base >::bas, mdata, operator=(), and LazyScale< base >::scale.

◆ operator=() [2/4]

PropagationMatrix& PropagationMatrix::operator= ( const Numeric x)
inline

Sets all data to constant.

Parameters
[in]xnew constant value
Returns
PropagationMatrix& *this

Definition at line 380 of file propagationmatrix.h.

References mdata, and ARTS::Var::x().

◆ operator=() [3/4]

PropagationMatrix& PropagationMatrix::operator= ( const PropagationMatrix other)
inline

Copy operator.

Parameters
[in]otherPropagationMatrix to copy
Returns
PropagationMatrix& *this

Definition at line 365 of file propagationmatrix.h.

References maa, mdata, mfreqs, mstokes_dim, mvectortype, and mza.

◆ operator=() [4/4]

PropagationMatrix& PropagationMatrix::operator= ( PropagationMatrix &&  pm)
inlinenoexcept

Move operator.

Parameters
[in]pmPropagationMatrix to move from
Returns
PropagationMatrix& *this

Definition at line 337 of file propagationmatrix.h.

References maa, mdata, mfreqs, mstokes_dim, mvectortype, and mza.

Referenced by operator=().

◆ RemoveAtPosition() [1/3]

void PropagationMatrix::RemoveAtPosition ( const Numeric x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)
inline

Subtraction at position.

Parameters
[in]otherSubtract by other
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 725 of file propagationmatrix.h.

References joker, mdata, and ARTS::Var::x().

◆ RemoveAtPosition() [2/3]

void PropagationMatrix::RemoveAtPosition ( const PropagationMatrix x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)
inline

Subtraction at position.

Parameters
[in]otherSubtract by other
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 699 of file propagationmatrix.h.

References joker, mdata, and ARTS::Var::x().

◆ RemoveAtPosition() [3/3]

void PropagationMatrix::RemoveAtPosition ( ConstMatrixView  x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)

Subtraction at position.

Parameters
[in]otherSubtract by other
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 1833 of file propagationmatrix.cc.

References mdata, mstokes_dim, and ARTS::Var::x().

◆ RightMultiplyAtPosition()

void PropagationMatrix::RightMultiplyAtPosition ( MatrixView  out,
ConstMatrixView  in,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
) const

Multiply the matrix input from the right of this at position.

Parameters
[in,out]outOutgoing matrix
[in]inIncoming matrix
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 1770 of file propagationmatrix.cc.

References K12(), Kjj(), and mstokes_dim.

◆ SetAtPosition() [1/3]

void PropagationMatrix::SetAtPosition ( const Numeric x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)
inline

Set the At Position object.

Parameters
[in]xObject to set
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 419 of file propagationmatrix.h.

References joker, mdata, and ARTS::Var::x().

◆ SetAtPosition() [2/3]

void PropagationMatrix::SetAtPosition ( const PropagationMatrix x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)
inline

Set the At Position object.

Parameters
[in]xObject to set
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 392 of file propagationmatrix.h.

References joker, mdata, and ARTS::Var::x().

Referenced by get_stepwise_scattersky_propmat().

◆ SetAtPosition() [3/3]

void PropagationMatrix::SetAtPosition ( ConstMatrixView  x,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)

Set the At Position object.

Parameters
[in]xObject to set
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 1909 of file propagationmatrix.cc.

References mdata, mstokes_dim, and ARTS::Var::x().

◆ SetFaraday()

void PropagationMatrix::SetFaraday ( const Numeric rot,
const Index  iv = 0,
const Index  iz = 0,
const Index  ia = 0 
)
inline

Sets the Faraday rotation to the PropagationMatrix at required position.

No vector function exists since rot is a function of frequency

Parameters
[in]rotrotation
[in]ivFrequency index
[in]izZenith index
[in]iaAzimuth index

Definition at line 313 of file propagationmatrix.h.

References mdata, and mstokes_dim.

◆ SetVectorType()

void PropagationMatrix::SetVectorType ( bool  vectortype)
inline

Set the Vector Type object.

Parameters
[in]vectortypeTrue if this is a vector false if not

Definition at line 218 of file propagationmatrix.h.

References mvectortype.

◆ SetZero()

void PropagationMatrix::SetZero ( )
inline

Sets all data to zero.

Definition at line 934 of file propagationmatrix.h.

References mdata.

Referenced by abs_vecTransform(), ext_matTransform(), get_stepwise_clearsky_propmat(), and opt_prop_bulkCalc().

◆ StokesDimensions()

Member Data Documentation

◆ maa

◆ mdata

◆ mfreqs

◆ mstokes_dim

◆ mvectortype

bool PropagationMatrix::mvectortype
protected

◆ mza


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