ARTS 2.5.10 (git: 2f1c442c)
|
Stuff related to the transmission matrix. More...
Go to the source code of this file.
Classes | |
struct | TransmissionMatrix |
Class to keep track of Transmission Matrices for Stokes Dim 1-4. More... | |
struct | RadiationVector |
Radiation Vector for Stokes dimension 1-4. More... | |
Macros | |
#define | a vec[0] |
#define | b vec[1] |
#define | c vec[2] |
#define | d vec[3] |
#define | u vec[N] |
#define | v vec[5] |
#define | w vec[6] |
#define | a vec[0] |
#define | b vec[1] |
#define | c vec[2] |
#define | d vec[3] |
#define | u vec[N] |
#define | v vec[5] |
#define | w vec[6] |
Typedefs | |
using | ArrayOfTransmissionMatrix = Array< TransmissionMatrix > |
using | ArrayOfArrayOfTransmissionMatrix = Array< ArrayOfTransmissionMatrix > |
using | ArrayOfArrayOfArrayOfTransmissionMatrix = Array< ArrayOfArrayOfTransmissionMatrix > |
using | ArrayOfRadiationVector = Array< RadiationVector > |
using | ArrayOfArrayOfRadiationVector = Array< ArrayOfRadiationVector > |
using | ArrayOfArrayOfArrayOfRadiationVector = Array< ArrayOfArrayOfRadiationVector > |
Enumerations | |
enum class | BackscatterSolver { CommutativeTransmission , FullTransmission } |
Intended to hold various backscatter solvers. More... | |
enum class | CumulativeTransmission { Forward , Reverse } |
Intended to hold various ways to accumulate the transmission matrix. More... | |
enum class | RadiativeTransferSolver { Emission , Transmission , 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.
#define a vec[0] |
#define a vec[0] |
#define b vec[1] |
#define b vec[1] |
#define c vec[2] |
#define c vec[2] |
#define d vec[3] |
#define d vec[3] |
#define u vec[N] |
#define u vec[N] |
#define v vec[5] |
#define v vec[5] |
#define w vec[6] |
#define w vec[6] |
Definition at line 793 of file transmissionmatrix.h.
Definition at line 789 of file transmissionmatrix.h.
Definition at line 792 of file transmissionmatrix.h.
Definition at line 788 of file transmissionmatrix.h.
using ArrayOfRadiationVector = Array<RadiationVector> |
Definition at line 791 of file transmissionmatrix.h.
Definition at line 787 of file transmissionmatrix.h.
|
strong |
Intended to hold various backscatter solvers.
Enumerator | |
---|---|
CommutativeTransmission | |
FullTransmission |
Definition at line 797 of file transmissionmatrix.h.
|
strong |
Intended to hold various ways to accumulate the transmission matrix.
Enumerator | |
---|---|
Forward | |
Reverse |
Definition at line 803 of file transmissionmatrix.h.
|
strong |
Intended to hold various forward solvers.
Enumerator | |
---|---|
Emission | |
Transmission | |
LinearWeightedEmission |
Definition at line 809 of file transmissionmatrix.h.
ArrayOfTransmissionMatrix bulk_backscatter | ( | const ConstTensor5View & | Pe, |
const ConstMatrixView & | pnd | ||
) |
Bulk back-scattering.
Sums up the back-scattering per element with particle number densities.
Below ns is Stokes dim, nf the number of frequencies, np number of atmospheric positions, and ne the number of scattering elements.
Pe | Back-scattering on scattering element basis (ne,np,nf,ns,ns) |
pnd | Particle number densities (ne,np) |
Definition at line 2188 of file transmissionmatrix.cc.
References joker, ConstTensor5View::nbooks(), ConstTensor5View::ncols(), ConstTensor5View::npages(), and ConstTensor5View::nshelves().
Referenced by iyRadarSingleScat().
ArrayOfArrayOfTransmissionMatrix bulk_backscatter_derivative | ( | const ConstTensor5View & | Pe, |
const ArrayOfMatrix & | dpnd_dx | ||
) |
Derivatives of bulk back-scattering
Below ns is Stokes dim, nf the number of frequencies, np number of atmospheric positions, and ne the number of scattering elements.
Pe | Back-scattering on scattering element basis (ne,np,nf,ns,ns) |
dpnd_dx | Derivatives of pnd with respect to Jacobian quantities |
Definition at line 2230 of file transmissionmatrix.cc.
References joker, ConstTensor5View::nbooks(), ConstTensor5View::ncols(), Array< base >::nelem(), ConstTensor5View::npages(), and ConstTensor5View::nshelves().
Referenced by iyRadarSingleScat().
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 2001 of file transmissionmatrix.cc.
References Forward, mul(), Array< base >::nelem(), and Reverse.
Referenced by emission_from_propmat_field(), iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), iyRadarSingleScat(), iyTransmissionStandard(), and test_transmat_to_cumulativetransmat().
Eigen::Matrix< Numeric, N, N > inv_prop_matrix | ( | const ConstVectorView & | vec | ) |
LazyScale< TransmissionMatrix > operator* | ( | const Numeric & | x, |
const TransmissionMatrix & | tm | ||
) |
Lazy scale of Transmission Matrix.
[in] | x | Scale |
[in] | tm | Transmission Matrix |
Definition at line 199 of file transmissionmatrix.cc.
LazyScale< TransmissionMatrix > operator* | ( | const TransmissionMatrix & | tm, |
const Numeric & | x | ||
) |
Lazy scale of Transmission Matrix.
[in] | tm | Transmission Matrix |
[in] | x | Scale |
Definition at line 194 of file transmissionmatrix.cc.
Eigen::Matrix< Numeric, N, N > prop_matrix | ( | const ConstMatrixView & | m | ) |
Definition at line 79 of file transmissionmatrix.h.
References N.
Eigen::Matrix< Numeric, N, N > prop_matrix | ( | const ConstVectorView & | vec | ) |
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 2022 of file transmissionmatrix.cc.
References CommutativeTransmission, FullTransmission, and Array< base >::nelem().
Referenced by iyRadarSingleScat().
void stepwise_source | ( | RadiationVector & | J, |
ArrayOfRadiationVector & | dJ, | ||
RadiationVector & | J_add, | ||
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] | J_add | Additional source vector |
[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 1803 of file transmissionmatrix.cc.
References a, PropagationMatrix::Data(), RadiationVector::Frequencies(), PropagationMatrix::IsRotational(), joker, Array< base >::nelem(), PropagationMatrix::NumberOfFrequencies(), RadiationVector::setSource(), RadiationVector::SetZero(), RadiationVector::stokes_dim, RadiationVector::Vec1(), RadiationVector::Vec2(), RadiationVector::Vec3(), and RadiationVector::Vec4().
Referenced by emission_from_propmat_field(), iyClearsky(), iyEmissionHybrid(), and iyEmissionStandard().
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 1785 of file transmissionmatrix.cc.
References dtransmat(), Array< base >::nelem(), and transmat().
Referenced by emission_from_propmat_field(), iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), iyRadarSingleScat(), iyTransmissionStandard(), test_transmat_from_propmat(), and test_transmat_to_cumulativetransmat().
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 PropagationMatrix & | K1, | ||
const PropagationMatrix & | K2, | ||
const ArrayOfPropagationMatrix & | dK1, | ||
const ArrayOfPropagationMatrix & | dK2, | ||
const Numeric | r, | ||
const Vector & | dr1, | ||
const Vector & | dr2, | ||
const Index | ia, | ||
const Index | iz, | ||
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 1943 of file transmissionmatrix.cc.
References RadiationVector::add_avg(), RadiationVector::add_weighted(), ARTS_USER_ERROR_IF, Emission, joker, RadiationVector::leftMul(), LinearWeightedEmission, RadiationVector::rem_avg(), and Transmission.
Referenced by emission_from_propmat_field(), iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), and iyTransmissionStandard().