|
ARTS
2.3.1285(git:92a29ea9-dirty)
|
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 F, i, 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 F, i, 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 PropagationMatrix & | pm | ||
| ) |
output operator
Definition at line 2036 of file propagationmatrix.cc.
References PropagationMatrix::Data().
| std::ostream& operator<< | ( | std::ostream & | os, |
| const ArrayOfPropagationMatrix & | apm | ||
| ) |
| 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 StokesVector & | sv | ||
| ) |
Definition at line 2054 of file propagationmatrix.cc.
References PropagationMatrix::Data().
| std::ostream& operator<< | ( | std::ostream & | os, |
| const ArrayOfStokesVector & | asv | ||
| ) |
Definition at line 2059 of file propagationmatrix.cc.
| std::ostream& operator<< | ( | std::ostream & | os, |
| const ArrayOfArrayOfStokesVector & | aasv | ||
| ) |
Definition at line 2064 of file propagationmatrix.cc.