ARTS 2.5.11 (git: 725533f0)
|
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... | |
Functions | |
template<int N> | |
Eigen::Matrix< Numeric, N, N > | prop_matrix (const ConstVectorView &vec) |
template<int N> | |
Eigen::Matrix< Numeric, N, N > | prop_matrix (const ConstMatrixView &m) |
template<int N> | |
Eigen::Matrix< Numeric, N, N > | inv_prop_matrix (const ConstVectorView &vec) |
LazyScale< TransmissionMatrix > | operator* (const TransmissionMatrix &tm, const Numeric &x) |
Lazy scale of Transmission Matrix. | |
LazyScale< TransmissionMatrix > | operator* (const Numeric &x, const TransmissionMatrix &tm) |
Lazy scale of Transmission Matrix. | |
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. | |
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. | |
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. | |
ArrayOfTransmissionMatrix | cumulative_transmission (const ArrayOfTransmissionMatrix &T, const CumulativeTransmission type) |
Accumulate the transmission matrix over all layers. | |
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. | |
ArrayOfTransmissionMatrix | bulk_backscatter (const ConstTensor5View &Pe, const ConstMatrixView &pnd) |
Bulk back-scattering. | |
ArrayOfArrayOfTransmissionMatrix | bulk_backscatter_derivative (const ConstTensor5View &Pe, const ArrayOfMatrix &dpnd_dx) |
Derivatives of bulk back-scattering | |
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 775 of file transmissionmatrix.h.
Definition at line 771 of file transmissionmatrix.h.
Definition at line 774 of file transmissionmatrix.h.
Definition at line 770 of file transmissionmatrix.h.
using ArrayOfRadiationVector = Array<RadiationVector> |
Definition at line 773 of file transmissionmatrix.h.
Definition at line 769 of file transmissionmatrix.h.
|
strong |
Intended to hold various backscatter solvers.
Enumerator | |
---|---|
CommutativeTransmission | |
FullTransmission |
Definition at line 779 of file transmissionmatrix.h.
|
strong |
Intended to hold various ways to accumulate the transmission matrix.
Enumerator | |
---|---|
Forward | |
Reverse |
Definition at line 785 of file transmissionmatrix.h.
|
strong |
Intended to hold various forward solvers.
Enumerator | |
---|---|
Emission | |
Transmission | |
LinearWeightedEmission |
Definition at line 791 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 2170 of file transmissionmatrix.cc.
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 2212 of file transmissionmatrix.cc.
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 1983 of file transmissionmatrix.cc.
References Forward, mul(), Array< base >::nelem(), and Reverse.
Referenced by emission_from_propmat_field(), iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), iyRadarSingleScat(), and iyTransmissionStandard().
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 181 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 176 of file transmissionmatrix.cc.
Eigen::Matrix< Numeric, N, N > prop_matrix | ( | const ConstMatrixView & | m | ) |
Definition at line 61 of file transmissionmatrix.h.
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 2004 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 1785 of file transmissionmatrix.cc.
References a, RadiationVector::Frequencies(), Array< base >::nelem(), 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 1767 of file transmissionmatrix.cc.
References dtransmat(), Array< base >::nelem(), and transmat().
Referenced by emission_from_propmat_field(), iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), iyRadarSingleScat(), 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 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 1925 of file transmissionmatrix.cc.
References RadiationVector::add_avg(), RadiationVector::add_weighted(), ARTS_USER_ERROR_IF, Emission, RadiationVector::leftMul(), LinearWeightedEmission, RadiationVector::rem_avg(), and Transmission.
Referenced by emission_from_propmat_field(), iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), and iyTransmissionStandard().