ARTS
2.4.0(git:4fb77825)
|
Stuff related to the propagation matrix. More...
Go to the source code of this file.
Functions | |
void | compute_transmission_matrix (Tensor3View T, const Numeric &r, const PropagationMatrix &upper_level, const PropagationMatrix &lower_level, const Index iz, const Index ia) |
Compute the matrix exponent as the transmission matrix of this propagation matrix. More... | |
void | compute_transmission_matrix_from_averaged_matrix_at_frequency (MatrixView T, const Numeric &r, const PropagationMatrix &averaged_propagation_matrix, const Index iv, const Index iz, const Index ia) |
Compute the matrix exponent as the transmission matrix of this propagation matrix. More... | |
void | compute_transmission_matrix_and_derivative (Tensor3View T, Tensor4View dT_dx_upper_level, Tensor4View dT_dx_lower_level, const Numeric &r, const PropagationMatrix &upper_level, const PropagationMatrix &lower_level, const ArrayOfPropagationMatrix &dupper_level_dx, const ArrayOfPropagationMatrix &dlower_level_dx, const Numeric &dr_dTu, const Numeric &dr_dTl, const Index it, const Index iz, const Index ia) |
std::ostream & | operator<< (std::ostream &os, const PropagationMatrix &pm) |
output operator More... | |
std::ostream & | operator<< (std::ostream &os, const ArrayOfPropagationMatrix &apm) |
output operator More... | |
std::ostream & | operator<< (std::ostream &os, const ArrayOfArrayOfPropagationMatrix &aapm) |
output operator More... | |
std::ostream & | operator<< (std::ostream &os, const StokesVector &sv) |
std::ostream & | operator<< (std::ostream &os, const ArrayOfStokesVector &asv) |
std::ostream & | operator<< (std::ostream &os, const ArrayOfArrayOfStokesVector &aasv) |
Stuff related to the propagation matrix.
The reason is that the naive approach to keep the full propagation matrix is memory intensive and slow
Definition in file propagationmatrix.cc.
void compute_transmission_matrix | ( | Tensor3View | T, |
const Numeric & | r, | ||
const PropagationMatrix & | upper_level, | ||
const PropagationMatrix & | lower_level, | ||
const Index | iz = 0 , |
||
const Index | ia = 0 |
||
) |
Compute the matrix exponent as the transmission matrix of this propagation matrix.
The propagation matrix is multiplied by -r and level-averaged before exponent is applied.
upper_level and lower_level propagation matrices should thus be the level matrices and r the distance between these levels. The same is true for the derivative matrices.
Stokes dim 1 and 4 have been tested more. Stokes dim 2 and 3 have been found to work but could still have hidden errors for uncommon cases
[in,out] | T | transmission tensor with outmost dimension being frequency |
[in] | r | the distance over which the propagation matrix causes the transmission |
[in] | upper_level | The upper level propagation matrix |
[in] | lower_level | The lower level propagation matrix |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 33 of file propagationmatrix.cc.
References joker, PropagationMatrix::K12(), PropagationMatrix::Kjj(), PropagationMatrix::NumberOfFrequencies(), and PropagationMatrix::StokesDimensions().
Referenced by get_stepwise_transmission_matrix().
void compute_transmission_matrix_and_derivative | ( | Tensor3View | T, |
Tensor4View | dT_upper_level, | ||
Tensor4View | dT_lower_level, | ||
const Numeric & | r, | ||
const PropagationMatrix & | upper_level, | ||
const PropagationMatrix & | lower_level, | ||
const Array< PropagationMatrix > & | dprop_mat_upper_level, | ||
const Array< PropagationMatrix > & | dprop_mat_lower_level, | ||
const Numeric & | dr_dTu = 0.0 , |
||
const Numeric & | dr_dTl = 0.0 , |
||
const Index | it = -1 , |
||
const Index | iz = 0 , |
||
const Index | ia = 0 |
||
) |
Compute the matrix exponent as the transmission matrix of this propagation matrix
The propagation matrix is multiplied by -r and level-averaged before exponent is applied.
upper_level and lower_level propagation matrices should thus be the level matrices and r the distance between these levels. The same is true for the derivative matrices.
Stokes dim 1 and 4 have been tested more. Stokes dim 2 and 3 have been found to work but could still have hidden errors for uncommon cases
[in,out] | T | transmission tensor with outmost dimension being frequency |
[in,out] | dT_upp | transmission tensors derivative with respect to derivatives of the propagation matrix for upper level |
[in,out] | dT_low | transmission tensors derivative with respect to derivatives of the propagation matrix for lower level |
[in] | r | the distance over which the propagation matrix causes the transmission |
[in] | upper_level | The upper level propagation matrix |
[in] | lower_level | The lower level propagation matrix |
[in] | dprop_mat_upp | derivatives of the upper propagation matrix with respect to some parameter (is multiplied by -0.5 r) |
[in] | dprop_mat_low | derivatives of the lower propagation matrix with respect to some parameter (is multiplied by -0.5 r) |
[in] | dr_dTu | Distance temperature derivative for upper level |
[in] | dr_dTl | Distance temperature derivative for lower level |
[in] | it | Position of temperature derivative (ignored at -1) |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 478 of file propagationmatrix.cc.
References joker, PropagationMatrix::K12(), PropagationMatrix::Kjj(), Array< base >::nelem(), PropagationMatrix::NumberOfFrequencies(), and PropagationMatrix::StokesDimensions().
Referenced by get_stepwise_transmission_matrix().
void compute_transmission_matrix_from_averaged_matrix_at_frequency | ( | MatrixView | T, |
const Numeric & | r, | ||
const PropagationMatrix & | averaged_propagation_matrix, | ||
const Index | iv, | ||
const Index | iz = 0 , |
||
const Index | ia = 0 |
||
) |
Compute the matrix exponent as the transmission matrix of this propagation matrix.
The propagation matrix is multiplied by -r and level-averaged before exponent is applied.
Stokes dim 1 and 4 have been tested more. Stokes dim 2 and 3 have been found to work but could still have hidden errors for uncommon cases
[in,out] | T | transmission matrix at the position |
[in] | r | the distance over which the propagation matrix causes the transmission |
[in] | averaged_propagation_matrix | The propagation matrix |
[in] | iv | Frequency index |
[in] | iz | Zenith index |
[in] | ia | Azimuth index |
Definition at line 272 of file propagationmatrix.cc.
References PropagationMatrix::K12(), PropagationMatrix::Kjj(), sqrt(), and PropagationMatrix::StokesDimensions().
Referenced by rte_step_doit_replacement().
std::ostream& operator<< | ( | std::ostream & | os, |
const ArrayOfArrayOfPropagationMatrix & | aapm | ||
) |
output operator
Definition at line 2047 of file propagationmatrix.cc.
std::ostream& operator<< | ( | std::ostream & | os, |
const ArrayOfArrayOfStokesVector & | aasv | ||
) |
Definition at line 2064 of file propagationmatrix.cc.
std::ostream& operator<< | ( | std::ostream & | os, |
const ArrayOfPropagationMatrix & | apm | ||
) |
output operator
Definition at line 2041 of file propagationmatrix.cc.
std::ostream& operator<< | ( | std::ostream & | os, |
const ArrayOfStokesVector & | asv | ||
) |
Definition at line 2059 of file propagationmatrix.cc.
std::ostream& operator<< | ( | std::ostream & | os, |
const PropagationMatrix & | pm | ||
) |
output operator
Definition at line 2036 of file propagationmatrix.cc.
References PropagationMatrix::Data().
std::ostream& operator<< | ( | std::ostream & | os, |
const StokesVector & | sv | ||
) |
Definition at line 2054 of file propagationmatrix.cc.
References PropagationMatrix::Data().