|
BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Specular reflection and transmission coefficients in a layer in case of magnetic interactions between the scattered particle and the layer. More...
Public Member Functions | |
| MatrixRTCoefficients_v2 (const MatrixRTCoefficients_v2 &other) | |
| MatrixRTCoefficients_v2 (double kz_sign, Eigen::Vector2cd eigenvalues, kvector_t b) | |
| ~MatrixRTCoefficients_v2 () override | |
| MatrixRTCoefficients_v2 * | clone () const override |
| Eigen::Vector2cd | getKz () const override |
| Returns z-part of the two wavevector eigenmodes. More... | |
| Eigen::Matrix2cd | getReflectionMatrix () const override |
| virtual complex_t | getScalarKz () const |
| virtual complex_t | getScalarR () const |
| virtual complex_t | getScalarT () const |
| Scalar value getters; these throw errors by default as they should only be used when the derived object is really scalar. More... | |
| Eigen::Vector2cd | R1min () const override |
| Eigen::Vector2cd | R1plus () const override |
| Eigen::Vector2cd | R2min () const override |
| Eigen::Vector2cd | R2plus () const override |
| Eigen::Vector2cd | T1min () const override |
| Eigen::Vector2cd | T1plus () const override |
| The following functions return the transmitted and reflected amplitudes for different incoming beam polarizations and eigenmodes. More... | |
| Eigen::Vector2cd | T2min () const override |
| Eigen::Vector2cd | T2plus () const override |
Private Attributes | |
| kvector_t | m_b |
| normalized magnetic field impact (with correction for external mag. field) More... | |
| double | m_kz_sign |
| Eigen::Vector2cd | m_lambda |
| wave propagation direction (-1 for direct one, 1 for time reverse) More... | |
| Eigen::Vector4cd | m_w_min |
| boundary values for down-polarization More... | |
| Eigen::Vector4cd | m_w_plus |
| boundary values for up-polarization More... | |
| Eigen::Matrix4cd | R1 |
| matrix selecting the reflected part of the first eigenmode More... | |
| Eigen::Matrix4cd | R2 |
| matrix selecting the reflected part of the second eigenmode More... | |
| Eigen::Matrix4cd | T1 |
| matrix selecting the transmitted part of the first eigenmode More... | |
| Eigen::Matrix4cd | T2 |
| matrix selecting the transmitted part of the second eigenmode More... | |
Friends | |
| class | SpecularMagneticOriginalStrategy |
| class | SpecularMagneticStrategy_v2 |
Specular reflection and transmission coefficients in a layer in case of magnetic interactions between the scattered particle and the layer.
Definition at line 31 of file MatrixRTCoefficients_v2.h.
| MatrixRTCoefficients_v2::MatrixRTCoefficients_v2 | ( | double | kz_sign, |
| Eigen::Vector2cd | eigenvalues, | ||
| kvector_t | b | ||
| ) |
Definition at line 22 of file MatrixRTCoefficients_v2.cpp.
Referenced by clone().
|
default |
|
overridedefault |
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 32 of file MatrixRTCoefficients_v2.cpp.
References MatrixRTCoefficients_v2().
|
overridevirtual |
Returns z-part of the two wavevector eigenmodes.
Implements ILayerRTCoefficients.
Definition at line 97 of file MatrixRTCoefficients_v2.cpp.
|
overridevirtual |
Reimplemented from ILayerRTCoefficients.
Definition at line 102 of file MatrixRTCoefficients_v2.cpp.
References R1min(), R1plus(), R2min(), and R2plus().
|
inlinevirtualinherited |
Reimplemented in ScalarRTCoefficients.
Definition at line 61 of file ILayerRTCoefficients.h.
|
inlinevirtualinherited |
Reimplemented in ScalarRTCoefficients.
Definition at line 56 of file ILayerRTCoefficients.h.
|
inlinevirtualinherited |
Scalar value getters; these throw errors by default as they should only be used when the derived object is really scalar.
Reimplemented in ScalarRTCoefficients.
Definition at line 51 of file ILayerRTCoefficients.h.
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 75 of file MatrixRTCoefficients_v2.cpp.
References m_lambda, m_w_min, R1, and T1.
Referenced by getReflectionMatrix().
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 45 of file MatrixRTCoefficients_v2.cpp.
References m_lambda, m_w_plus, R1, and T1.
Referenced by getReflectionMatrix().
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 90 of file MatrixRTCoefficients_v2.cpp.
References m_lambda, m_w_min, R2, and T2.
Referenced by getReflectionMatrix().
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 60 of file MatrixRTCoefficients_v2.cpp.
References m_lambda, m_w_plus, R2, and T2.
Referenced by getReflectionMatrix().
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 67 of file MatrixRTCoefficients_v2.cpp.
References m_lambda, m_w_min, and T1.
Referenced by SpecularMagneticStrategy_v2::findNormalizationCoefficients().
|
overridevirtual |
The following functions return the transmitted and reflected amplitudes for different incoming beam polarizations and eigenmodes.
Implements ILayerRTCoefficients.
Definition at line 37 of file MatrixRTCoefficients_v2.cpp.
References m_lambda, m_w_plus, and T1.
Referenced by SpecularMagneticStrategy_v2::findNormalizationCoefficients().
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 82 of file MatrixRTCoefficients_v2.cpp.
References m_lambda, m_w_min, and T2.
Referenced by SpecularMagneticStrategy_v2::findNormalizationCoefficients().
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 52 of file MatrixRTCoefficients_v2.cpp.
References m_lambda, m_w_plus, and T2.
Referenced by SpecularMagneticStrategy_v2::findNormalizationCoefficients().
|
friend |
Definition at line 34 of file MatrixRTCoefficients_v2.h.
|
friend |
Definition at line 33 of file MatrixRTCoefficients_v2.h.
|
private |
normalized magnetic field impact (with correction for external mag. field)
Definition at line 60 of file MatrixRTCoefficients_v2.h.
Referenced by SpecularMagneticStrategy_v2::calculateTR(), and SpecularMagneticStrategy_v2::nullifyBottomReflection().
|
private |
Definition at line 58 of file MatrixRTCoefficients_v2.h.
Referenced by getKz().
|
private |
wave propagation direction (-1 for direct one, 1 for time reverse)
eigenvalues for wave propagation
Definition at line 59 of file MatrixRTCoefficients_v2.h.
Referenced by SpecularMagneticStrategy_v2::calculateTR(), SpecularMagneticStrategy_v2::calculateZeroFieldTR(), getKz(), SpecularMagneticStrategy_v2::nullifyBottomReflection(), R1min(), R1plus(), R2min(), R2plus(), T1min(), T1plus(), T2min(), and T2plus().
|
private |
boundary values for down-polarization
Definition at line 63 of file MatrixRTCoefficients_v2.h.
Referenced by SpecularMagneticStrategy_v2::nullifyBottomReflection(), R1min(), R2min(), SpecularMagneticStrategy_v2::setNoTransmission(), T1min(), and T2min().
|
private |
boundary values for up-polarization
Definition at line 62 of file MatrixRTCoefficients_v2.h.
Referenced by SpecularMagneticStrategy_v2::nullifyBottomReflection(), R1plus(), R2plus(), SpecularMagneticStrategy_v2::setNoTransmission(), T1plus(), and T2plus().
|
private |
matrix selecting the reflected part of the first eigenmode
Definition at line 67 of file MatrixRTCoefficients_v2.h.
Referenced by SpecularMagneticStrategy_v2::calculateTR(), SpecularMagneticStrategy_v2::calculateZeroFieldTR(), R1min(), R1plus(), and SpecularMagneticStrategy_v2::setNoTransmission().
|
private |
matrix selecting the reflected part of the second eigenmode
Definition at line 71 of file MatrixRTCoefficients_v2.h.
Referenced by SpecularMagneticStrategy_v2::calculateTR(), SpecularMagneticStrategy_v2::calculateZeroFieldTR(), R2min(), R2plus(), and SpecularMagneticStrategy_v2::setNoTransmission().
|
private |
matrix selecting the transmitted part of the first eigenmode
Definition at line 65 of file MatrixRTCoefficients_v2.h.
Referenced by SpecularMagneticStrategy_v2::calculateTR(), SpecularMagneticStrategy_v2::calculateZeroFieldTR(), R1min(), R1plus(), SpecularMagneticStrategy_v2::setNoTransmission(), T1min(), and T1plus().
|
private |
matrix selecting the transmitted part of the second eigenmode
Definition at line 69 of file MatrixRTCoefficients_v2.h.
Referenced by SpecularMagneticStrategy_v2::calculateTR(), SpecularMagneticStrategy_v2::calculateZeroFieldTR(), R2min(), R2plus(), SpecularMagneticStrategy_v2::setNoTransmission(), T2min(), and T2plus().