16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_SAMPLE_RT_MATRIXRTCOEFFICIENTS_H
21 #define BORNAGAIN_SAMPLE_RT_MATRIXRTCOEFFICIENTS_H
47 Eigen::Vector2cd
T1plus()
const override;
48 Eigen::Vector2cd
R1plus()
const override;
49 Eigen::Vector2cd
T2plus()
const override;
50 Eigen::Vector2cd
R2plus()
const override;
51 Eigen::Vector2cd
T1min()
const override;
52 Eigen::Vector2cd
R1min()
const override;
53 Eigen::Vector2cd
T2min()
const override;
54 Eigen::Vector2cd
R2min()
const override;
56 Eigen::Vector2cd
getKz()
const override;
Defines and implements class ILayerRTCoefficients.
Defines basic vectors in Z^3, R^3, C^3.
Interface to access reflection/transmission coefficients.
Specular reflection and transmission coefficients in a layer in case of magnetic interactions between...
Eigen::Matrix2cd getReflectionMatrix() const override
Eigen::Matrix2cd TransformationMatrix(Eigen::Vector2d selection) const
Eigen::Vector2cd R2plus() const override
Eigen::Vector2cd T2min() const override
Eigen::Matrix2cd computeDeltaMatrix(double thickness)
Eigen::Vector2cd T1min() const override
Eigen::Matrix2cd computeInverseP() const
double magneticSLD() const
Eigen::Vector2cd m_lambda
wave propagation direction (-1 for direct one, 1 for time reverse)
MatrixRTCoefficients & operator=(const MatrixRTCoefficients &)
Eigen::Matrix2cd T1Matrix() const
Eigen::Vector2cd T2plus() const override
MatrixRTCoefficients(double kz_sign, Eigen::Vector2cd eigenvalues, kvector_t b, double magnetic_SLD)
Eigen::Vector2cd R1min() const override
Eigen::Vector2cd R2min() const override
kvector_t m_b
unit magnetic field vector
Eigen::Matrix2cd pMatrixHelper(double sign) const
MatrixRTCoefficients * clone() const override
~MatrixRTCoefficients() override
Eigen::Vector2cd T1plus() const override
The following functions return the transmitted and reflected amplitudes for different incoming beam p...
MatrixRTCoefficients(const MatrixRTCoefficients &other)
Eigen::Vector2cd getKz() const override
Returns z-part of the two wavevector eigenmodes.
Eigen::Vector2cd R1plus() const override
Eigen::Matrix2cd T2Matrix() const
Eigen::Matrix2cd computeP() const
Implements the magnetic Fresnel computation with Nevot-Croce roughness.
Implements the magnetic Fresnel computation with Nevot-Croce roughness.
Implements the magnetic Fresnel computation with the analytical Tanh roughness.