ARTS
2.4.0(git:4fb77825)
|
Class to keep track of Transmission Matrices for Stokes Dim 1-4. More...
#include <transmissionmatrix.h>
Classes | |
struct | Weights |
Struct of far and close weights. More... | |
Public Member Functions | |
TransmissionMatrix (Index nf=0, Index stokes=1) | |
Construct a new Transmission Matrix object. More... | |
TransmissionMatrix (TransmissionMatrix &&tm) noexcept | |
Construct a new Transmission Matrix object. More... | |
TransmissionMatrix (const TransmissionMatrix &tm)=default | |
Construct a new Transmission Matrix object. More... | |
TransmissionMatrix & | operator= (const TransmissionMatrix &tm)=default |
Assignment operator. More... | |
TransmissionMatrix & | operator= (TransmissionMatrix &&tm) noexcept |
Move operator. More... | |
TransmissionMatrix (const PropagationMatrix &pm, const Numeric &r=1.0) | |
Construct a new Transmission Matrix from a Propagation Matrix. More... | |
operator Tensor3 () const | |
const Eigen::Matrix4d & | Mat4 (size_t i) const |
Get Matrix at position. More... | |
const Eigen::Matrix3d & | Mat3 (size_t i) const |
Get Matrix at position. More... | |
const Eigen::Matrix2d & | Mat2 (size_t i) const |
Get Matrix at position. More... | |
const Eigen::Matrix< double, 1, 1 > & | Mat1 (size_t i) const |
Get Matrix at position. More... | |
Eigen::MatrixXd | Mat (size_t i) const |
Get Matrix at position by copy. More... | |
Eigen::Matrix4d & | Mat4 (size_t i) |
Get Matrix at position. More... | |
Eigen::Matrix3d & | Mat3 (size_t i) |
Get Matrix at position. More... | |
Eigen::Matrix2d & | Mat2 (size_t i) |
Get Matrix at position. More... | |
Eigen::Matrix< double, 1, 1 > & | Mat1 (size_t i) |
Get Matrix at position. More... | |
void | setIdentity () |
Set to identity matrix. More... | |
void | setZero () |
Set to zero matrix. More... | |
void | mul (const TransmissionMatrix &A, const TransmissionMatrix &B) |
Set this to a multiple of A by B. More... | |
void | mul_aliased (const TransmissionMatrix &A, const TransmissionMatrix &B) |
Set this to a multiple of A by B. More... | |
Numeric | operator() (const Index i, const Index j, const Index k) const |
Access value in matrix. More... | |
Index | StokesDim () const |
Stokes dimensionaility. More... | |
Index | Frequencies () const |
Number of frequencies. More... | |
TransmissionMatrix & | operator+= (const LazyScale< TransmissionMatrix > &lstm) |
Assign to *this lazily. More... | |
TransmissionMatrix & | operator*= (const Numeric &scale) |
Scale self. More... | |
TransmissionMatrix & | operator= (const LazyScale< TransmissionMatrix > &lstm) |
Assign lazily. More... | |
template<size_t N> | |
Weights< N > | linear_in_tau_weights (size_t) const noexcept |
template<> | |
TransmissionMatrix::Weights< 1 > | linear_in_tau_weights (size_t i) const noexcept |
Private Attributes | |
Index | stokes_dim |
std::vector< Eigen::Matrix4d, Eigen::aligned_allocator< Eigen::Matrix4d > > | T4 |
std::vector< Eigen::Matrix3d, Eigen::aligned_allocator< Eigen::Matrix3d > > | T3 |
std::vector< Eigen::Matrix2d, Eigen::aligned_allocator< Eigen::Matrix2d > > | T2 |
std::vector< Eigen::Matrix< double, 1, 1 >, Eigen::aligned_allocator< Eigen::Matrix< double, 1, 1 > > > | T1 |
Friends | |
std::ostream & | operator<< (std::ostream &os, const TransmissionMatrix &tm) |
Output operator. More... | |
std::istream & | operator>> (std::istream &data, TransmissionMatrix &tm) |
Input operator. More... | |
Class to keep track of Transmission Matrices for Stokes Dim 1-4.
Definition at line 38 of file transmissionmatrix.h.
Construct a new Transmission Matrix object.
[in] | nf | Number of frequencies |
[in] | stokes | Stokes dimension |
Definition at line 55 of file transmissionmatrix.h.
Referenced by TransmissionMatrix().
|
inlinenoexcept |
Construct a new Transmission Matrix object.
[in] | tm | Matrix to move from |
Definition at line 68 of file transmissionmatrix.h.
|
default |
Construct a new Transmission Matrix object.
[in] | tm | matrix to copy |
|
explicit |
Construct a new Transmission Matrix from a Propagation Matrix.
[in] | pm | Propagation Matrix |
[in] | r | Distance |
Definition at line 1868 of file transmissionmatrix.cc.
References PropagationMatrix::NumberOfFrequencies(), PropagationMatrix::StokesDimensions(), transmat(), and TransmissionMatrix().
|
inline |
Number of frequencies.
Definition at line 268 of file transmissionmatrix.h.
References stokes_dim, T1, T2, T3, and T4.
Referenced by operator Tensor3(), and xml_write_to_stream().
|
inlinenoexcept |
Definition at line 348 of file transmissionmatrix.h.
|
inlinenoexcept |
Return the weights of far and close for a given frequency for linear in tau expression:
[in] | i | Index of frequency |
Definition at line 342 of file transmissionmatrix.h.
References N.
Referenced by RadiationVector::add_weighted().
|
inline |
Get Matrix at position by copy.
[in] | i | Position |
Definition at line 157 of file transmissionmatrix.h.
References Mat1(), Mat2(), Mat3(), Mat4(), and stokes_dim.
|
inline |
Get Matrix at position.
[in] | i | Position |
Definition at line 197 of file transmissionmatrix.h.
References T1.
|
inline |
Get Matrix at position.
[in] | i | Position |
Definition at line 150 of file transmissionmatrix.h.
References T1.
Referenced by RadiationVector::addDerivEmission(), RadiationVector::addDerivTransmission(), RadiationVector::addMultiplied(), dtransmat1(), RadiationVector::leftMul(), Mat(), operator+=(), RadiationVector::setBackscatterTransmission(), RadiationVector::setBackscatterTransmissionDerivative(), RadiationVector::setDerivReflection(), and transmat1().
|
inline |
Get Matrix at position.
[in] | i | Position |
Definition at line 190 of file transmissionmatrix.h.
References T2.
|
inline |
Get Matrix at position.
[in] | i | Position |
Definition at line 143 of file transmissionmatrix.h.
References T2.
Referenced by RadiationVector::addDerivEmission(), RadiationVector::addDerivTransmission(), RadiationVector::addMultiplied(), dtransmat2(), RadiationVector::leftMul(), Mat(), operator+=(), RadiationVector::setBackscatterTransmission(), RadiationVector::setBackscatterTransmissionDerivative(), RadiationVector::setDerivReflection(), and transmat2().
|
inline |
Get Matrix at position.
[in] | i | Position |
Definition at line 183 of file transmissionmatrix.h.
References T3.
|
inline |
Get Matrix at position.
[in] | i | Position |
Definition at line 136 of file transmissionmatrix.h.
References T3.
Referenced by RadiationVector::addDerivEmission(), RadiationVector::addDerivTransmission(), RadiationVector::addMultiplied(), RadiationVector::leftMul(), Mat(), operator+=(), RadiationVector::setBackscatterTransmission(), RadiationVector::setBackscatterTransmissionDerivative(), and RadiationVector::setDerivReflection().
|
inline |
Get Matrix at position.
[in] |
Definition at line 176 of file transmissionmatrix.h.
References T4.
|
inline |
Get Matrix at position.
[in] | i | Position |
Definition at line 129 of file transmissionmatrix.h.
References T4.
Referenced by RadiationVector::addDerivEmission(), RadiationVector::addDerivTransmission(), RadiationVector::addMultiplied(), RadiationVector::leftMul(), Mat(), operator+=(), RadiationVector::setBackscatterTransmission(), RadiationVector::setBackscatterTransmissionDerivative(), RadiationVector::setDerivReflection(), and test_transmissionmatrix().
|
inline |
|
inline |
|
inline |
Definition at line 109 of file transmissionmatrix.h.
References Frequencies(), stokes_dim, and T4.
Access value in matrix.
[in] | i | Position in vector |
[in] | j | Row in matrix |
[in] | k | Col in matrix |
Definition at line 251 of file transmissionmatrix.h.
|
inline |
Scale self.
[in] | scale | To scale with |
Definition at line 303 of file transmissionmatrix.h.
References T1, T2, T3, T4, and transform().
Referenced by operator=().
|
inline |
Assign to *this lazily.
[in] | lstm | Lazy matrix |
Definition at line 286 of file transmissionmatrix.h.
References LazyScale< base >::bas, Mat1(), Mat2(), Mat3(), Mat4(), LazyScale< base >::scale, T1, T2, T3, and T4.
|
inline |
Assign lazily.
[in] | lstm | Lazy value |
Definition at line 316 of file transmissionmatrix.h.
References LazyScale< base >::bas, operator*=(), operator=(), and LazyScale< base >::scale.
|
default |
Assignment operator.
[in] | tm | matrix to copy |
Referenced by operator=().
|
inlinenoexcept |
Move operator.
[in] | tm | matrix to move from |
Definition at line 93 of file transmissionmatrix.h.
References stokes_dim, T1, T2, T3, and T4.
|
inline |
|
inline |
|
inline |
Stokes dimensionaility.
Definition at line 265 of file transmissionmatrix.h.
References stokes_dim.
Referenced by xml_write_to_stream().
|
friend |
Output operator.
Definition at line 1804 of file transmissionmatrix.cc.
|
friend |
Input operator.
Definition at line 1844 of file transmissionmatrix.cc.
|
private |
Definition at line 40 of file transmissionmatrix.h.
Referenced by Frequencies(), Mat(), operator Tensor3(), operator=(), and StokesDim().
|
private |
Definition at line 46 of file transmissionmatrix.h.
Referenced by Frequencies(), Mat1(), mul(), mul_aliased(), operator*=(), operator+=(), operator<<(), operator=(), operator>>(), setIdentity(), and setZero().
|
private |
Definition at line 43 of file transmissionmatrix.h.
Referenced by Frequencies(), Mat2(), mul(), mul_aliased(), operator*=(), operator+=(), operator<<(), operator=(), operator>>(), setIdentity(), and setZero().
|
private |
Definition at line 42 of file transmissionmatrix.h.
Referenced by Frequencies(), Mat3(), mul(), mul_aliased(), operator*=(), operator+=(), operator<<(), operator=(), operator>>(), setIdentity(), and setZero().
|
private |
Definition at line 41 of file transmissionmatrix.h.
Referenced by Frequencies(), Mat4(), mul(), mul_aliased(), operator Tensor3(), operator*=(), operator+=(), operator<<(), operator=(), operator>>(), setIdentity(), and setZero().