ARTS 2.5.10 (git: 2f1c442c)
|
#include <propagationmatrix.h>
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. | |
PropagationMatrix (const PropagationMatrix &pm)=default | |
Construct a new Propagation Matrix object. | |
PropagationMatrix (PropagationMatrix &&pm) noexcept | |
Construct a new Propagation Matrix object. | |
PropagationMatrix (Tensor4 x) | |
Construct a new Propagation Matrix object. | |
PropagationMatrix (const ConstMatrixView &x, const bool &assume_fit=false) | |
Initialize from single stokes_dim-by-stokes_dim matrix. | |
Index | StokesDimensions () const |
The stokes dimension of the propagation matrix. | |
Index | NumberOfFrequencies () const |
The number of frequencies of the propagation matrix. | |
Index | NumberOfZenithAngles () const |
The number of zenith angles of the propagation matrix. | |
Index | NumberOfAzimuthAngles () const |
The number of azimuth angles of the propagation matrix. | |
bool | OK () const |
bool | IsEmpty () const |
Asks if the class is empty. | |
bool | IsZero (const Index iv=0, const Index iz=0, const Index ia=0) const |
False if any non-zeroes in internal Matrix representation. | |
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. | |
Index | NumberOfNeededVectors () const |
The number of required vectors to fill this PropagationMatrix. | |
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. | |
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. | |
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. | |
void | MatrixAtPosition (MatrixView ret, const Index iv=0, const Index iz=0, const Index ia=0) const |
Sets the dense matrix. | |
PropagationMatrix & | operator= (PropagationMatrix &&pm) noexcept |
Move operator. | |
PropagationMatrix & | operator= (const LazyScale< PropagationMatrix > &lpms) |
Laze equal to opeartor. | |
PropagationMatrix & | operator= (const PropagationMatrix &other)=default |
Copy operator. | |
PropagationMatrix & | operator= (const Numeric &x) |
Sets all data to constant. | |
void | SetAtPosition (const PropagationMatrix &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Set the At Position object. | |
void | SetAtPosition (const ConstMatrixView &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Set the At Position object. | |
void | SetAtPosition (const Numeric &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Set the At Position object. | |
PropagationMatrix & | operator/= (const PropagationMatrix &other) |
Divide operator. | |
PropagationMatrix & | operator/= (const ConstVectorView &x) |
Divide operator. | |
PropagationMatrix & | operator/= (const Numeric &x) |
Divide operator. | |
void | DivideAtPosition (const PropagationMatrix &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Divide at position. | |
void | DivideAtPosition (const ConstMatrixView &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Divide at position. | |
void | DivideAtPosition (const Numeric &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Divide at position. | |
PropagationMatrix & | operator*= (const PropagationMatrix &other) |
Multiply operator. | |
PropagationMatrix & | operator*= (const ConstVectorView &x) |
Multiply operator. | |
PropagationMatrix & | operator*= (const Numeric &x) |
Multiply operator. | |
void | MultiplyAtPosition (const PropagationMatrix &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Multiply operator at position. | |
void | MultiplyAtPosition (const ConstMatrixView &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Multiply operator at position. | |
void | MultiplyAtPosition (const Numeric &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Multiply operator at position. | |
PropagationMatrix & | operator+= (const PropagationMatrix &other) |
Addition operator. | |
PropagationMatrix & | operator+= (const LazyScale< PropagationMatrix > &lpms) |
Addition operator. | |
PropagationMatrix & | operator+= (const ConstVectorView &x) |
Addition operator. | |
PropagationMatrix & | operator+= (const Numeric &x) |
Addition operator. | |
void | AddAtPosition (const PropagationMatrix &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Addition at position operator. | |
void | AddAtPosition (const ConstMatrixView &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Addition at position operator. | |
void | AddAtPosition (const Numeric &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Addition at position operator. | |
PropagationMatrix & | operator-= (const PropagationMatrix &other) |
Subtraction operator. | |
PropagationMatrix & | operator-= (const ConstVectorView &x) |
Subtraction operator. | |
PropagationMatrix & | operator-= (const Numeric &x) |
Subtraction operator. | |
void | RemoveAtPosition (const PropagationMatrix &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Subtraction at position. | |
void | RemoveAtPosition (const ConstMatrixView &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Subtraction at position. | |
void | RemoveAtPosition (const Numeric &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Subtraction at position. | |
void | AddAbsorptionVectorAtPosition (const ConstVectorView &x, const Index iv=0, const Index iz=0, const Index ia=0) |
Adds as a Stokes vector at position. | |
void | AddAverageAtPosition (const ConstMatrixView &mat1, const ConstMatrixView &mat2, const Index iv=0, const Index iz=0, const Index ia=0) |
Add the average of the two input at position. | |
void | MultiplyAndAdd (const Numeric x, const PropagationMatrix &y) |
Multiply input by scalar and add to this. | |
void | MatrixInverseAtPosition (MatrixView ret, const Index iv=0, const Index iz=0, const Index ia=0) const |
Return the matrix inverse at the position. | |
bool | FittingShape (const ConstMatrixView &x) const |
Tests of the input matrix fits Propagation Matrix style. | |
void | GetTensor3 (Tensor3View tensor3, const Index iz=0, const Index ia=0) |
Get a Tensor3 object from this. | |
VectorView | Kjj (const Index iz=0, const Index ia=0) |
Vector view to diagonal elements. | |
VectorView | K12 (const Index iz=0, const Index ia=0) |
Vector view to K(0, 1) elements. | |
VectorView | K13 (const Index iz=0, const Index ia=0) |
Vector view to K(0, 2) elements. | |
VectorView | K14 (const Index iz=0, const Index ia=0) |
Vector view to K(0, 3) elements. | |
VectorView | K23 (const Index iz=0, const Index ia=0) |
Vector view to K(1, 2) elements. | |
VectorView | K24 (const Index iz=0, const Index ia=0) |
Vector view to K(1, 3) elements. | |
VectorView | K34 (const Index iz=0, const Index ia=0) |
Vector view to K(2, 3) elements. | |
ConstVectorView | Kjj (const Index iz=0, const Index ia=0) const |
Vector view to diagonal elements. | |
ConstVectorView | K12 (const Index iz=0, const Index ia=0) const |
Vector view to K(0, 1) elements. | |
ConstVectorView | K13 (const Index iz=0, const Index ia=0) const |
Vector view to K(0, 2) elements. | |
ConstVectorView | K14 (const Index iz=0, const Index ia=0) const |
Vector view to K(0, 3) elements. | |
ConstVectorView | K23 (const Index iz=0, const Index ia=0) const |
Vector view to K(1, 3) elements. | |
ConstVectorView | K24 (const Index iz=0, const Index ia=0) const |
Vector view to K(1, 3) elements. | |
ConstVectorView | K34 (const Index iz=0, const Index ia=0) const |
Vector view to diagonal elements. | |
void | SetZero () |
Sets all data to zero. | |
Tensor4 & | Data () |
Get full view to data. | |
const Tensor4 & | Data () const |
Get full const view to data. | |
void | LeftMultiplyAtPosition (MatrixView out, const 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. | |
void | RightMultiplyAtPosition (MatrixView out, const 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. | |
void | swap (PropagationMatrix &) noexcept |
Protected Attributes | |
Index | mfreqs |
Index | mstokes_dim |
Index | mza |
Index | maa |
Tensor4 | mdata |
bool | mvectortype {false} |
Friends | |
std::ostream & | operator<< (std::ostream &os, const PropagationMatrix &pm) |
void | swap (PropagationMatrix &, PropagationMatrix &) noexcept |
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 117 of file propagationmatrix.h.
|
inline |
Initialize variable sizes.
Will create a Tensor4 of the size and order (nr_aa, nr_za, NumberOfNeededVectors(), nr_frequencies)
[in] | nr_frequencies | Number of Dirac frequencies |
[in] | stokes_dim | Stokes dimensionality |
[in] | nr_za | Number of Dirac Zeniths |
[in] | nr_aa | Number of Dirac Azimuths |
[in] | v | Initial values of things in the created Tensor4 |
Definition at line 130 of file propagationmatrix.h.
References ARTS_ASSERT, maa, mdata, mfreqs, mza, NumberOfNeededVectors(), and v.
|
default |
Construct a new Propagation Matrix object.
[in] | pm | Old propagation matrix object to copy |
|
inlinenoexcept |
Construct a new Propagation Matrix object.
[in] | pm | old Propagation Matrix object to move from |
Definition at line 153 of file propagationmatrix.h.
|
inlineexplicit |
Construct a new Propagation Matrix object.
[in] | x | Tensor4 object to use to initialize from |
Definition at line 165 of file propagationmatrix.h.
References ARTS_ASSERT, mstokes_dim, and ConstTensor4View::ncols().
|
inlineexplicit |
Initialize from single stokes_dim-by-stokes_dim matrix.
[in] | x | The matrix |
[in] | assume_fit | Assume a correct fit? Do not set this in manual interface |
Definition at line 193 of file propagationmatrix.h.
References ARTS_ASSERT, FittingShape(), mdata, mstokes_dim, mvectortype, NumberOfNeededVectors(), and Tensor4::resize().
|
inline |
Adds as a Stokes vector at position.
[in] | x | |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 730 of file propagationmatrix.h.
References mdata, and mstokes_dim.
Referenced by propmat_clearskyAddParticles().
void PropagationMatrix::AddAtPosition | ( | const ConstMatrixView & | x, |
const Index | iv = 0 , |
||
const Index | iz = 0 , |
||
const Index | ia = 0 |
||
) |
Addition at position operator.
[in] | other | Addition by other |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 1851 of file propagationmatrix.cc.
References mdata, and mstokes_dim.
|
inline |
Addition at position operator.
[in] | other | Addition by other |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 640 of file propagationmatrix.h.
|
inline |
Addition at position operator.
[in] | other | Addition by other |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 614 of file propagationmatrix.h.
void PropagationMatrix::AddAverageAtPosition | ( | const ConstMatrixView & | mat1, |
const ConstMatrixView & | mat2, | ||
const Index | iv = 0 , |
||
const Index | iz = 0 , |
||
const Index | ia = 0 |
||
) |
Add the average of the two input at position.
[in] | mat1 | input 1 |
[in] | mat2 | input 2 |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 1611 of file propagationmatrix.cc.
References mdata, and mstokes_dim.
Referenced by cloud_ppath_update1D_planeparallel(), and cloud_RT_no_background().
|
inline |
Adds the Faraday rotation to the PropagationMatrix at required position.
No vector function exists since rot is a function of frequency
[in] | rot | rotation |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 296 of file propagationmatrix.h.
References mdata, and mstokes_dim.
Referenced by propmat_clearskyAddFaraday().
|
inline |
Get full view to data.
Definition at line 928 of file propagationmatrix.h.
References mdata.
Referenced by StokesVector::MultiplyAndAdd(), StokesVector::operator+=(), StokesVector::operator=(), propmat_clearskyAddScaledSpecies(), stepwise_source(), xml_read_from_stream(), and xml_write_to_stream().
|
inline |
void PropagationMatrix::DivideAtPosition | ( | const ConstMatrixView & | x, |
const Index | iv = 0 , |
||
const Index | iz = 0 , |
||
const Index | ia = 0 |
||
) |
Divide at position.
[in] | other | Divide by other |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 1889 of file propagationmatrix.cc.
References mdata, and mstokes_dim.
|
inline |
Divide at position.
[in] | other | Divide by other |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 486 of file propagationmatrix.h.
|
inline |
Divide at position.
[in] | other | Divide by other |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 460 of file propagationmatrix.h.
bool PropagationMatrix::FittingShape | ( | const ConstMatrixView & | x | ) | const |
Tests of the input matrix fits Propagation Matrix style.
[in] | x | Input matrix |
Definition at line 1641 of file propagationmatrix.cc.
References ARTS_ASSERT, mstokes_dim, ConstMatrixView::ncols(), and ConstMatrixView::nrows().
Referenced by PropagationMatrix().
void PropagationMatrix::GetTensor3 | ( | Tensor3View | tensor3, |
const Index | iz = 0 , |
||
const Index | ia = 0 |
||
) |
Get a Tensor3 object from this.
[in,out] | tensor3 | New tensor |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 1674 of file propagationmatrix.cc.
References ARTS_ASSERT, joker, mdata, and mstokes_dim.
|
inline |
Asks if the class is empty.
Definition at line 235 of file propagationmatrix.h.
References maa, mfreqs, and mza.
Referenced by RadiationVector::setSource().
|
inline |
False if diagonal element is non-zero in internal Matrix representation.
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 261 of file propagationmatrix.h.
References mdata.
Referenced by stepwise_source().
|
inline |
False if any non-zeroes in internal Matrix representation.
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 244 of file propagationmatrix.h.
|
inline |
Vector view to K(0, 1) elements.
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 800 of file propagationmatrix.h.
Referenced by abs_vecTransform(), compute_transmission_matrix(), compute_transmission_matrix_and_derivative(), compute_transmission_matrix_from_averaged_matrix_at_frequency(), ext_matTransform(), StokesVector::IsPolarized(), LeftMultiplyAtPosition(), MatrixInverseAtPosition(), RightMultiplyAtPosition(), RadiationVector::setSource(), source_vector(), transmat2(), transmat3(), and transmat4().
|
inline |
Vector view to K(0, 1) elements.
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 870 of file propagationmatrix.h.
|
inline |
Vector view to K(0, 2) elements.
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 810 of file propagationmatrix.h.
Referenced by compute_transmission_matrix(), compute_transmission_matrix_and_derivative(), compute_transmission_matrix_from_averaged_matrix_at_frequency(), StokesVector::IsPolarized(), LeftMultiplyAtPosition(), MatrixInverseAtPosition(), RightMultiplyAtPosition(), RadiationVector::setSource(), source_vector(), transmat3(), and transmat4().
|
inline |
Vector view to K(0, 2) elements.
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 880 of file propagationmatrix.h.
|
inline |
Vector view to K(0, 3) elements.
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 820 of file propagationmatrix.h.
Referenced by compute_transmission_matrix(), compute_transmission_matrix_and_derivative(), compute_transmission_matrix_from_averaged_matrix_at_frequency(), StokesVector::IsPolarized(), LeftMultiplyAtPosition(), MatrixInverseAtPosition(), RightMultiplyAtPosition(), RadiationVector::setSource(), source_vector(), and transmat4().
|
inline |
Vector view to K(0, 3) elements.
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 890 of file propagationmatrix.h.
|
inline |
Vector view to K(1, 2) elements.
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 830 of file propagationmatrix.h.
References joker, mdata, and mstokes_dim.
Referenced by compute_transmission_matrix(), compute_transmission_matrix_and_derivative(), compute_transmission_matrix_from_averaged_matrix_at_frequency(), LeftMultiplyAtPosition(), MatrixInverseAtPosition(), RightMultiplyAtPosition(), transmat3(), and transmat4().
|
inline |
Vector view to K(1, 3) elements.
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 900 of file propagationmatrix.h.
References joker, mdata, and mstokes_dim.
|
inline |
Vector view to K(1, 3) elements.
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 840 of file propagationmatrix.h.
Referenced by compute_transmission_matrix(), compute_transmission_matrix_and_derivative(), compute_transmission_matrix_from_averaged_matrix_at_frequency(), LeftMultiplyAtPosition(), MatrixInverseAtPosition(), RightMultiplyAtPosition(), and transmat4().
|
inline |
Vector view to K(1, 3) elements.
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 910 of file propagationmatrix.h.
|
inline |
Vector view to K(2, 3) elements.
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 850 of file propagationmatrix.h.
Referenced by compute_transmission_matrix(), compute_transmission_matrix_and_derivative(), compute_transmission_matrix_from_averaged_matrix_at_frequency(), ext_matTransform(), LeftMultiplyAtPosition(), MatrixInverseAtPosition(), RightMultiplyAtPosition(), and transmat4().
|
inline |
Vector view to diagonal elements.
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 920 of file propagationmatrix.h.
|
inline |
Vector view to diagonal elements.
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 790 of file propagationmatrix.h.
Referenced by abs_vecTransform(), compute_transmission_matrix(), compute_transmission_matrix_and_derivative(), compute_transmission_matrix_from_averaged_matrix_at_frequency(), ext_matTransform(), gas_scattering_coefAirSimple(), get_gas_scattering_properties(), get_gasoptprop(), get_scattered_sunsource(), iyRadarSingleScat(), LeftMultiplyAtPosition(), main(), MatrixInverseAtPosition(), nlte_sourceFromTemperatureAndSrcCoefPerSpecies(), OptimizeDoitPressureGrid(), particle_bulkpropRadarOnionPeeling(), propmat_clearskyAddCIA(), propmat_clearskyAddHitranLineMixingLines(), propmat_clearskyAddLines(), propmat_clearskyAddOnTheFlyLineMixing(), propmat_clearskyAddXsecFit(), propmat_clearskyForceNegativeToZero(), RightMultiplyAtPosition(), rte_step_doit_replacement(), RadiationVector::setSource(), source_vector(), transmat1(), transmat2(), transmat3(), and transmat4().
|
inline |
Vector view to diagonal elements.
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 860 of file propagationmatrix.h.
void PropagationMatrix::LeftMultiplyAtPosition | ( | MatrixView | out, |
const 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.
[in,out] | out | Outgoing matrix |
[in] | in | Incoming matrix |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 1706 of file propagationmatrix.cc.
References a, b, c, d, K12(), K13(), K14(), K23(), K24(), K34(), Kjj(), mstokes_dim, u, v, and w.
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.
[in,out] | Full | propagation matrix |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 1927 of file propagationmatrix.cc.
References mdata, and mstokes_dim.
Referenced by clear_rt_vars_at_gp(), cloud_fieldsCalc(), cloud_ppath_update1D_planeparallel(), cloud_RT_no_background(), and cloudy_rt_vars_at_gp().
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.
[in,out] | ret | Inversed matrix |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 1507 of file propagationmatrix.cc.
References a, a2, ARTS_ASSERT, b, b2, c, d, K12(), K13(), K14(), K23(), K24(), K34(), Kjj(), mstokes_dim, u, v, and w.
Referenced by rte_step_doit_replacement().
void PropagationMatrix::MultiplyAndAdd | ( | const Numeric | x, |
const PropagationMatrix & | y | ||
) |
Multiply input by scalar and add to this.
x | scalar |
y | input |
Definition at line 1632 of file propagationmatrix.cc.
References maa, mdata, mfreqs, mza, and NumberOfNeededVectors().
Referenced by operator+=(), and opt_prop_bulkCalc().
void PropagationMatrix::MultiplyAtPosition | ( | const ConstMatrixView & | x, |
const Index | iv = 0 , |
||
const Index | iz = 0 , |
||
const Index | ia = 0 |
||
) |
Multiply operator at position.
[in] | other | Multiply by other |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 1870 of file propagationmatrix.cc.
References mdata, and mstokes_dim.
|
inline |
Multiply operator at position.
[in] | other | Multiply by other |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 558 of file propagationmatrix.h.
|
inline |
Multiply operator at position.
[in] | other | Multiply by other |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 532 of file propagationmatrix.h.
|
inline |
The number of azimuth angles of the propagation matrix.
Definition at line 230 of file propagationmatrix.h.
References maa.
Referenced by StokesVector::MultiplyAndAdd(), StokesVector::operator=(), and RadiationVector::setSource().
|
inline |
The number of frequencies of the propagation matrix.
Definition at line 224 of file propagationmatrix.h.
References mfreqs.
Referenced by abs_vecAddGas(), abs_vecTransform(), compute_transmission_matrix(), compute_transmission_matrix_and_derivative(), ext_matAddGas(), ext_matTransform(), get_stepwise_scattersky_propmat(), get_stepwise_scattersky_source(), StokesVector::MultiplyAndAdd(), nlte_sourceFromTemperatureAndSrcCoefPerSpecies(), StokesVector::operator=(), opt_prop_sum_propmat_clearsky(), propmat_clearskyAddCIA(), propmat_clearskyAddLines(), propmat_clearskyAddParticles(), propmat_clearskyAddPredefined(), propmat_clearskyAddXsecFit(), propmat_clearskyForceNegativeToZero(), propmat_clearskyInit(), rte_step_doit_replacement(), stepwise_source(), transmat1(), transmat2(), transmat3(), transmat4(), TransmissionMatrix::TransmissionMatrix(), and zeeman_on_the_fly().
|
inline |
The number of required vectors to fill this PropagationMatrix.
Definition at line 272 of file propagationmatrix.h.
References mstokes_dim, and mvectortype.
Referenced by MultiplyAndAdd(), OK(), operator*=(), operator+=(), operator-=(), operator/=(), and PropagationMatrix().
|
inline |
The number of zenith angles of the propagation matrix.
Definition at line 227 of file propagationmatrix.h.
References mza.
Referenced by StokesVector::MultiplyAndAdd(), StokesVector::operator=(), and RadiationVector::setSource().
|
inline |
Definition at line 232 of file propagationmatrix.h.
References maa, mdata, mfreqs, mza, ConstTensor4View::nbooks(), ConstTensor4View::ncols(), ConstTensor4View::npages(), ConstTensor4View::nrows(), and NumberOfNeededVectors().
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 1952 of file propagationmatrix.cc.
References ARTS_ASSERT, mdata, and mstokes_dim.
|
inline |
Multiply operator.
[in] | other | Multiply by other |
Definition at line 508 of file propagationmatrix.h.
References joker, maa, mdata, mza, and NumberOfNeededVectors().
|
inline |
Multiply operator.
[in] | other | Multiply by other |
Definition at line 520 of file propagationmatrix.h.
References mdata.
|
inline |
Multiply operator.
[in] | other | Multiply by other |
Definition at line 498 of file propagationmatrix.h.
References mdata.
|
inline |
Addition operator.
[in] | other | Addition by other |
Definition at line 590 of file propagationmatrix.h.
References joker, maa, mdata, mza, and NumberOfNeededVectors().
|
inline |
Addition operator.
[in] | other | Addition by other |
Definition at line 580 of file propagationmatrix.h.
References LazyScale< base >::bas, MultiplyAndAdd(), and LazyScale< base >::scale.
|
inline |
Addition operator.
[in] | other | Addition by other |
Definition at line 602 of file propagationmatrix.h.
References mdata.
|
inline |
Addition operator.
[in] | other | Addition by other |
Definition at line 570 of file propagationmatrix.h.
References mdata.
|
inline |
Subtraction operator.
[in] | other | Subtract by other |
Definition at line 662 of file propagationmatrix.h.
References joker, maa, mdata, mza, and NumberOfNeededVectors().
|
inline |
Subtraction operator.
[in] | other | Subtract by other |
Definition at line 678 of file propagationmatrix.h.
References mdata.
|
inline |
Subtraction operator.
[in] | other | Subtract by other |
Definition at line 652 of file propagationmatrix.h.
References mdata.
|
inline |
Divide operator.
[in] | other | Divide by other |
Definition at line 432 of file propagationmatrix.h.
References joker, maa, mdata, mza, and NumberOfNeededVectors().
|
inline |
Divide operator.
[in] | other | Divide by other |
Definition at line 448 of file propagationmatrix.h.
References mdata.
|
inline |
Divide operator.
[in] | other | Divide by other |
Definition at line 422 of file propagationmatrix.h.
References mdata.
|
inline |
Laze equal to opeartor.
[in] | lpms | lazified propagation matrix |
Definition at line 353 of file propagationmatrix.h.
References LazyScale< base >::bas, mdata, operator=(), and LazyScale< base >::scale.
|
inline |
Sets all data to constant.
[in] | x | new constant value |
Definition at line 371 of file propagationmatrix.h.
References mdata.
|
default |
|
inlinenoexcept |
Move operator.
[in] | pm | PropagationMatrix to move from |
Definition at line 336 of file propagationmatrix.h.
References maa, mdata, mfreqs, mstokes_dim, mvectortype, and mza.
Referenced by operator=().
void PropagationMatrix::RemoveAtPosition | ( | const ConstMatrixView & | x, |
const Index | iv = 0 , |
||
const Index | iz = 0 , |
||
const Index | ia = 0 |
||
) |
Subtraction at position.
[in] | other | Subtract by other |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 1832 of file propagationmatrix.cc.
References mdata, and mstokes_dim.
|
inline |
Subtraction at position.
[in] | other | Subtract by other |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 716 of file propagationmatrix.h.
|
inline |
Subtraction at position.
[in] | other | Subtract by other |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 690 of file propagationmatrix.h.
void PropagationMatrix::RightMultiplyAtPosition | ( | MatrixView | out, |
const 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.
[in,out] | out | Outgoing matrix |
[in] | in | Incoming matrix |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 1769 of file propagationmatrix.cc.
References a, b, c, d, K12(), K13(), K14(), K23(), K24(), K34(), Kjj(), mstokes_dim, u, v, and w.
void PropagationMatrix::SetAtPosition | ( | const ConstMatrixView & | x, |
const Index | iv = 0 , |
||
const Index | iz = 0 , |
||
const Index | ia = 0 |
||
) |
Set the At Position object.
[in] | x | Object to set |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 1908 of file propagationmatrix.cc.
References mdata, and mstokes_dim.
|
inline |
Set the At Position object.
[in] | x | Object to set |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 410 of file propagationmatrix.h.
|
inline |
Set the At Position object.
[in] | x | Object to set |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 383 of file propagationmatrix.h.
Referenced by get_stepwise_scattersky_propmat(), propmat_clearskyAddParticles(), and propmat_clearskyForceNegativeToZero().
|
inline |
Sets the Faraday rotation to the PropagationMatrix at required position.
No vector function exists since rot is a function of frequency
[in] | rot | rotation |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 312 of file propagationmatrix.h.
References mdata, and mstokes_dim.
|
inline |
Sets all data to zero.
Definition at line 925 of file propagationmatrix.h.
References mdata.
Referenced by abs_vecTransform(), Absorption::PredefinedModel::compute_vmr_deriv(), ext_matTransform(), opt_prop_bulkCalc(), opt_prop_sum_propmat_clearsky(), propmat_clearskyAddParticles(), and propmat_clearskyInit().
|
inline |
The stokes dimension of the propagation matrix.
Definition at line 221 of file propagationmatrix.h.
References mstokes_dim.
Referenced by abs_vecAddGas(), abs_vecTransform(), compute_transmission_matrix(), compute_transmission_matrix_and_derivative(), compute_transmission_matrix_from_averaged_matrix_at_frequency(), dtransmat(), ext_matAddGas(), ext_matTransform(), get_stepwise_scattersky_propmat(), get_stepwise_scattersky_source(), StokesVector::MultiplyAndAdd(), nlte_sourceFromTemperatureAndSrcCoefPerSpecies(), StokesVector::operator=(), opt_prop_sum_propmat_clearsky(), propmat_clearskyAddOnTheFlyLineMixingWithZeeman(), propmat_clearskyAddParticles(), propmat_clearskyInit(), rte_step_doit_replacement(), TransmissionMatrix::TransmissionMatrix(), and zeeman_on_the_fly().
|
noexcept |
Definition at line 2047 of file propagationmatrix.cc.
References swap().
|
friend |
Definition at line 2036 of file propagationmatrix.cc.
|
friend |
Definition at line 2057 of file propagationmatrix.cc.
|
protected |
Definition at line 969 of file propagationmatrix.h.
Referenced by StokesVector::allZeroes(), IsEmpty(), MultiplyAndAdd(), StokesVector::MultiplyAndAdd(), NumberOfAzimuthAngles(), OK(), operator*=(), operator+=(), operator-=(), operator/=(), StokesVector::operator=(), operator=(), PropagationMatrix(), and StokesVector::StokesVector().
|
protected |
Definition at line 970 of file propagationmatrix.h.
Referenced by AddAbsorptionVectorAtPosition(), AddAtPosition(), AddAverageAtPosition(), StokesVector::AddAverageAtPosition(), AddFaraday(), StokesVector::allZeroes(), Data(), DivideAtPosition(), GetTensor3(), IsRotational(), IsZero(), K12(), K13(), K14(), K23(), K24(), K34(), Kjj(), MatrixAtPosition(), MultiplyAndAdd(), StokesVector::MultiplyAndAdd(), MultiplyAtPosition(), OK(), operator()(), operator*=(), operator+=(), StokesVector::operator+=(), operator-=(), operator/=(), StokesVector::operator=(), operator=(), PropagationMatrix(), RemoveAtPosition(), SetAtPosition(), StokesVector::SetAtPosition(), SetFaraday(), SetZero(), StokesVector::StokesVector(), and StokesVector::VectorAtPosition().
|
protected |
Definition at line 968 of file propagationmatrix.h.
Referenced by StokesVector::allZeroes(), IsEmpty(), MultiplyAndAdd(), StokesVector::MultiplyAndAdd(), NumberOfFrequencies(), OK(), StokesVector::operator=(), operator=(), PropagationMatrix(), and StokesVector::StokesVector().
|
protected |
Definition at line 968 of file propagationmatrix.h.
Referenced by AddAbsorptionVectorAtPosition(), AddAtPosition(), AddAverageAtPosition(), StokesVector::AddAverageAtPosition(), AddFaraday(), StokesVector::allZeroes(), DivideAtPosition(), FittingShape(), GetTensor3(), StokesVector::IsPolarized(), K23(), LeftMultiplyAtPosition(), MatrixAtPosition(), MatrixInverseAtPosition(), StokesVector::MultiplyAndAdd(), MultiplyAtPosition(), NumberOfNeededVectors(), StokesVector::NumberOfNeededVectors(), operator()(), StokesVector::operator+=(), StokesVector::operator=(), operator=(), PropagationMatrix(), RemoveAtPosition(), RightMultiplyAtPosition(), SetAtPosition(), SetFaraday(), StokesDimensions(), and StokesVector::StokesVector().
|
protected |
Definition at line 971 of file propagationmatrix.h.
Referenced by NumberOfNeededVectors(), operator=(), PropagationMatrix(), and StokesVector::StokesVector().
|
protected |
Definition at line 969 of file propagationmatrix.h.
Referenced by StokesVector::allZeroes(), IsEmpty(), MultiplyAndAdd(), StokesVector::MultiplyAndAdd(), NumberOfZenithAngles(), OK(), operator*=(), operator+=(), operator-=(), operator/=(), StokesVector::operator=(), operator=(), PropagationMatrix(), and StokesVector::StokesVector().