ARTS
2.3.1285(git:92a29ea9-dirty)
|
Stuff related to the transmission matrix. More...
#include <Eigen/Dense>
#include <Eigen/StdVector>
#include "jacobian.h"
#include "propagationmatrix.h"
Go to the source code of this file.
Classes | |
class | TransmissionMatrix |
Class to keep track of Transmission Matrices for Stokes Dim 1-4. More... | |
struct | TransmissionMatrix::Weights< N > |
Struct of far and close weights. More... | |
class | RadiationVector |
Radiation Vector for Stokes dimension 1-4. More... | |
Typedefs | |
typedef Array< TransmissionMatrix > | ArrayOfTransmissionMatrix |
typedef Array< ArrayOfTransmissionMatrix > | ArrayOfArrayOfTransmissionMatrix |
typedef Array< ArrayOfArrayOfTransmissionMatrix > | ArrayOfArrayOfArrayOfTransmissionMatrix |
typedef Array< RadiationVector > | ArrayOfRadiationVector |
typedef Array< ArrayOfRadiationVector > | ArrayOfArrayOfRadiationVector |
typedef Array< ArrayOfArrayOfRadiationVector > | ArrayOfArrayOfArrayOfRadiationVector |
Enumerations | |
enum | BackscatterSolver { BackscatterSolver::CommutativeTransmission, BackscatterSolver::FullTransmission } |
Intended to hold various backscatter solvers. More... | |
enum | CumulativeTransmission { CumulativeTransmission::Forward, CumulativeTransmission::Reverse } |
Intended to hold various ways to accumulate the transmission matrix. More... | |
enum | RadiativeTransferSolver { RadiativeTransferSolver::Emission, RadiativeTransferSolver::Transmission, RadiativeTransferSolver::LinearWeightedEmission } |
Intended to hold various forward solvers. More... | |
Stuff related to the transmission matrix.
Using Eigen library to speed up computations.
Definition in file transmissionmatrix.h.
Definition at line 901 of file transmissionmatrix.h.
Definition at line 898 of file transmissionmatrix.h.
Definition at line 900 of file transmissionmatrix.h.
Definition at line 897 of file transmissionmatrix.h.
typedef Array<RadiationVector> ArrayOfRadiationVector |
Definition at line 899 of file transmissionmatrix.h.
Definition at line 896 of file transmissionmatrix.h.
|
strong |
Intended to hold various backscatter solvers.
Enumerator | |
---|---|
CommutativeTransmission | |
FullTransmission |
Definition at line 931 of file transmissionmatrix.h.
|
strong |
Intended to hold various ways to accumulate the transmission matrix.
Enumerator | |
---|---|
Forward | |
Reverse |
Definition at line 937 of file transmissionmatrix.h.
|
strong |
Intended to hold various forward solvers.
Enumerator | |
---|---|
Emission | |
Transmission | |
LinearWeightedEmission |
Definition at line 943 of file transmissionmatrix.h.
ArrayOfTransmissionMatrix cumulative_backscatter | ( | ConstTensor5View | t, |
ConstMatrixView | m | ||
) |
Accumulated backscatter (???)
FIXMEDOC Patrick, these are translated from other functions that accumulate the back-scattering. I do not remember how this worked.
t | Tensor5 of backscattering |
m | (???) |
Definition at line 1714 of file transmissionmatrix.cc.
References joker, matrix1(), matrix2(), matrix3(), matrix4(), ConstTensor5View::nbooks(), ConstTensor5View::ncols(), ConstTensor5View::npages(), ns, and ConstTensor5View::nshelves().
ArrayOfArrayOfTransmissionMatrix cumulative_backscatter_derivative | ( | ConstTensor5View | t, |
const ArrayOfMatrix & | aom | ||
) |
Accumulated backscatter derivative (???)
FIXMEDOC Patrick, these are translated from other functions that accumulate the back-scattering. I do not remember how this worked.
t | Tensor5 of backscattering |
m | (???) |
Definition at line 1755 of file transmissionmatrix.cc.
References joker, matrix1(), matrix2(), matrix3(), matrix4(), ConstTensor5View::nbooks(), ConstTensor5View::ncols(), Array< base >::nelem(), ConstTensor5View::npages(), ns, and ConstTensor5View::nshelves().
ArrayOfTransmissionMatrix cumulative_transmission | ( | const ArrayOfTransmissionMatrix & | T, |
const CumulativeTransmission | type | ||
) |
Accumulate the transmission matrix over all layers.
[in] | T | Transmission matrix through all layers |
[in] | type | Type of accumulation to target |
Definition at line 1527 of file transmissionmatrix.cc.
References Forward, i, n, Array< base >::nelem(), ns, and Reverse.
Referenced by emission_from_propmat_field(), get_stepwise_transmission_matrix(), iyEmissionStandardSequential(), iyHybrid2(), and iyTransmissionStandard().
|
inline |
Lazy scale of Transmission Matrix.
[in] | tm | Transmission Matrix |
[in] | x | Scale |
Definition at line 378 of file transmissionmatrix.h.
|
inline |
Lazy scale of Transmission Matrix.
[in] | x | Scale |
[in] | tm | Transmission Matrix |
Definition at line 389 of file transmissionmatrix.h.
std::ostream& operator<< | ( | std::ostream & | os, |
const TransmissionMatrix & | tm | ||
) |
Output operator.
Definition at line 1804 of file transmissionmatrix.cc.
References TransmissionMatrix::T1, TransmissionMatrix::T2, TransmissionMatrix::T3, and TransmissionMatrix::T4.
std::ostream& operator<< | ( | std::ostream & | os, |
const ArrayOfTransmissionMatrix & | atm | ||
) |
Output operator.
Definition at line 1812 of file transmissionmatrix.cc.
std::ostream& operator<< | ( | std::ostream & | os, |
const ArrayOfArrayOfTransmissionMatrix & | aatm | ||
) |
Output operator.
Definition at line 1818 of file transmissionmatrix.cc.
std::ostream& operator<< | ( | std::ostream & | os, |
const RadiationVector & | rv | ||
) |
Output operator.
Definition at line 1824 of file transmissionmatrix.cc.
std::ostream& operator<< | ( | std::ostream & | os, |
const ArrayOfRadiationVector & | arv | ||
) |
Output operator.
Definition at line 1833 of file transmissionmatrix.cc.
std::ostream& operator<< | ( | std::ostream & | os, |
const ArrayOfArrayOfRadiationVector & | aarv | ||
) |
Output operator.
Definition at line 1838 of file transmissionmatrix.cc.
std::istream& operator>> | ( | std::istream & | is, |
TransmissionMatrix & | tm | ||
) |
Input operator.
Definition at line 1844 of file transmissionmatrix.cc.
References TransmissionMatrix::T1, TransmissionMatrix::T2, TransmissionMatrix::T3, and TransmissionMatrix::T4.
std::istream& operator>> | ( | std::istream & | is, |
RadiationVector & | rv | ||
) |
Input operator.
Definition at line 1860 of file transmissionmatrix.cc.
void set_backscatter_radiation_vector | ( | ArrayOfRadiationVector & | I, |
ArrayOfArrayOfArrayOfRadiationVector & | dI, | ||
const RadiationVector & | I_incoming, | ||
const ArrayOfTransmissionMatrix & | T, | ||
const ArrayOfTransmissionMatrix & | PiTf, | ||
const ArrayOfTransmissionMatrix & | PiTr, | ||
const ArrayOfTransmissionMatrix & | Z, | ||
const ArrayOfArrayOfTransmissionMatrix & | dT1, | ||
const ArrayOfArrayOfTransmissionMatrix & | dT2, | ||
const ArrayOfArrayOfTransmissionMatrix & | dZ, | ||
const BackscatterSolver | solver | ||
) |
Set the backscatter radiation vector.
[in,out] | I | Radiation vector of all layers |
[in,out] | dI | Radiation vector derivative of all layers |
[in] | I_incoming | Incoming radiation vector |
[in] | T | Transmission matrix of all layers |
[in] | PiTf | Forwards accumulated transmission of all layers |
[in] | PiTr | Backwards accumulated transmission of all layers |
[in] | Z | Reflection matrix of all layers |
[in] | dT1 | Transmission matrix derivative for level 1 of all layers |
[in] | dT2 | Transmission matrix derivative for level 2 of all layers |
[in] | dZ | erivative of reflection matrix of all layers |
[in] | solver | Type of backscattering of all layers |
Definition at line 1548 of file transmissionmatrix.cc.
References CommutativeTransmission, FullTransmission, Array< base >::nelem(), and ns.
void stepwise_source | ( | RadiationVector & | J, |
ArrayOfRadiationVector & | dJ, | ||
const PropagationMatrix & | K, | ||
const StokesVector & | a, | ||
const StokesVector & | S, | ||
const ArrayOfPropagationMatrix & | dK, | ||
const ArrayOfStokesVector & | da, | ||
const ArrayOfStokesVector & | dS, | ||
const ConstVectorView | B, | ||
const ConstVectorView | dB_dT, | ||
const ArrayOfRetrievalQuantity & | jacobian_quantities, | ||
const bool & | jacobian_do | ||
) |
Set the stepwise source.
[in,out] | J | Source vector |
[in,out] | dJ | Source vector derivatives |
[in] | K | Propagation matrix |
[in] | a | Absorption vector |
[in] | S | Scattering source vector |
[in] | dK | Propagation matrix derivatives |
[in] | da | Absorption vector derivatives |
[in] | dS | Scattering source vector derivatives |
[in] | B | Planck vector |
[in] | dB_dT | Planck vector derivative wrt temperature |
[in] | jacobian_quantities | As WSV |
[in] | jacobian_do | Do Jacobian? |
Definition at line 1371 of file transmissionmatrix.cc.
References i, inv2(), inv3(), inv4(), PropagationMatrix::IsRotational(), PropagationMatrix::K12(), PropagationMatrix::K13(), PropagationMatrix::K14(), PropagationMatrix::K23(), PropagationMatrix::K24(), PropagationMatrix::K34(), PropagationMatrix::Kjj(), matrix2(), matrix3(), matrix4(), Array< base >::nelem(), PropagationMatrix::NumberOfFrequencies(), RadiationVector::setSource(), RadiationVector::SetZero(), RadiationVector::StokesDim(), Temperature, RadiationVector::Vec1(), RadiationVector::Vec2(), RadiationVector::Vec3(), RadiationVector::Vec4(), vector1(), vector2(), vector3(), and vector4().
Referenced by emission_from_propmat_field(), iyEmissionStandard(), iyEmissionStandardSequential(), and iyHybrid2().
void stepwise_transmission | ( | TransmissionMatrix & | T, |
ArrayOfTransmissionMatrix & | dT1, | ||
ArrayOfTransmissionMatrix & | dT2, | ||
const PropagationMatrix & | K1, | ||
const PropagationMatrix & | K2, | ||
const ArrayOfPropagationMatrix & | dK1, | ||
const ArrayOfPropagationMatrix & | dK2, | ||
const Numeric & | r, | ||
const Numeric & | dr_dtemp1, | ||
const Numeric & | dr_dtemp2, | ||
const Index | temp_deriv_pos | ||
) |
Set the stepwise transmission matrix.
[in,out] | T | Transmission matrix |
[in,out] | dT1 | Transmission matrix derivative wrt level 1 |
[in,out] | dT2 | Transmission matrix derivative wrt level 2 |
[in] | K1 | Propagation matrix wrt level 1 |
[in] | K2 | Propagation matrix wrt level 2 |
[in] | dK1 | Propagation matrix derivative wrt level 1 |
[in] | dK2 | Propagation matrix derivative wrt level 2 |
[in] | r | Distance through layer |
[in] | dr_dtemp1 | Distance through layer derivative wrt temperature of level 1 |
[in] | dr_dtemp2 | Distance through layer derivative wrt temperature of level 2 |
[in] | temp_deriv_pos | Position of derivative of temperature (-1 if not present) |
Definition at line 1353 of file transmissionmatrix.cc.
References dtransmat(), Array< base >::nelem(), and transmat().
Referenced by emission_from_propmat_field(), iyEmissionStandardSequential(), iyHybrid2(), and iyTransmissionStandard().
void update_radiation_vector | ( | RadiationVector & | I, |
ArrayOfRadiationVector & | dI1, | ||
ArrayOfRadiationVector & | dI2, | ||
const RadiationVector & | J1, | ||
const RadiationVector & | J2, | ||
const ArrayOfRadiationVector & | dJ1, | ||
const ArrayOfRadiationVector & | dJ2, | ||
const TransmissionMatrix & | T, | ||
const TransmissionMatrix & | PiT, | ||
const ArrayOfTransmissionMatrix & | dT1, | ||
const ArrayOfTransmissionMatrix & | dT2, | ||
const RadiativeTransferSolver | solver | ||
) |
Update the Radiation Vector.
[in,out] | I | Radiation vector |
[in,out] | dI1 | Radiation vector derivatives to level 1 |
[in,out] | dI2 | Radiation vector derivatives to level 2 |
[in] | J1 | Source vector from level 1 |
[in] | J2 | Source vector from level 2 |
[in] | dJ1 | Source vector derivative from level 1 |
[in] | dJ2 | Source vector derivative from level 2 |
[in] | T | Transmission matrix through layer |
[in] | PiT | Accumulated transmission matrix to space |
[in] | dT1 | Transmission matrix derivatives through layer from level 1 |
[in] | dT2 | Transmission matrix derivatives through layer from level 2 |
[in] | solver | Type of solver to use |
Definition at line 1484 of file transmissionmatrix.cc.
References RadiationVector::add_avg(), RadiationVector::add_weighted(), Emission, i, RadiationVector::leftMul(), LinearWeightedEmission, RadiationVector::rem_avg(), and Transmission.
Referenced by emission_from_propmat_field(), iyEmissionStandardSequential(), iyHybrid2(), and iyTransmissionStandard().