BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Public Member Functions | |
MatrixRTCoefficients_v3 (double kz_sign, Eigen::Vector2cd eigenvalues, kvector_t b, double magnetic_SLD) | |
MatrixRTCoefficients_v3 (const MatrixRTCoefficients_v3 &other) | |
~MatrixRTCoefficients_v3 () override | |
MatrixRTCoefficients_v3 * | clone () const override |
Eigen::Vector2cd | T1plus () const override |
Eigen::Vector2cd | R1plus () const override |
Eigen::Vector2cd | T2plus () const override |
Eigen::Vector2cd | R2plus () const override |
Eigen::Vector2cd | T1min () const override |
Eigen::Vector2cd | R1min () const override |
Eigen::Vector2cd | T2min () const override |
Eigen::Vector2cd | R2min () const override |
Eigen::Vector2cd | getKz () const override |
double | magneticSLD () const |
Eigen::Matrix2cd | computeP () const |
Eigen::Matrix2cd | computeInverseP () const |
Eigen::Matrix2cd | computeDeltaMatrix (double thickness) |
Eigen::Matrix2cd | getReflectionMatrix () const override |
virtual complex_t | getScalarT () const |
virtual complex_t | getScalarR () const |
virtual complex_t | getScalarKz () const |
Private Member Functions | |
Eigen::Matrix2cd | TransformationMatrix (Eigen::Vector2d selection) const |
Eigen::Matrix2cd | T1Matrix () const |
Eigen::Matrix2cd | T2Matrix () const |
Eigen::Matrix2cd | pMatrixHelper (double sign) const |
Private Attributes | |
double | m_kz_sign |
Eigen::Vector2cd | m_lambda |
kvector_t | m_b |
double | m_magnetic_SLD |
Eigen::Matrix2cd | m_T |
Eigen::Matrix2cd | m_R |
Friends | |
class | SpecularMagneticNewStrategy |
class | SpecularMagneticNewNCStrategy |
class | SpecularMagneticNewNCTestingStrategy |
class | SpecularMagneticNewTanhStrategy |
class | SpecularMagnetic_v3ConsistencyTest |
class | SpecularMagnetic_v3ConsistencyTest_ScalarMagneticAmplitudes_Test |
class | SpecularMagnetic_v3ConsistencyTest_AmplitudesBackwardsBackwards_Test |
template<class sampleClass > | |
class | TestSimulation |
Specular reflection and transmission coefficients in a layer in case of magnetic interactions between the scattered particle and the layer.
Definition at line 26 of file MatrixRTCoefficients_v3.h.
MatrixRTCoefficients_v3::MatrixRTCoefficients_v3 | ( | double | kz_sign, |
Eigen::Vector2cd | eigenvalues, | ||
kvector_t | b, | ||
double | magnetic_SLD | ||
) |
Definition at line 24 of file MatrixRTCoefficients_v3.cpp.
References ASSERT, anonymous_namespace{MatrixRTCoefficients_v3.cpp}::eps, m_b, m_R, m_T, and BasicVector3D< T >::mag().
Referenced by clone().
|
default |
|
overridedefault |
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 39 of file MatrixRTCoefficients_v3.cpp.
References MatrixRTCoefficients_v3().
|
overridevirtual |
The following functions return the transmitted and reflected amplitudes for different incoming beam polarizations and eigenmodes.
Implements ILayerRTCoefficients.
Definition at line 70 of file MatrixRTCoefficients_v3.cpp.
References m_T, and T1Matrix().
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 75 of file MatrixRTCoefficients_v3.cpp.
References m_R, and T1Matrix().
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 80 of file MatrixRTCoefficients_v3.cpp.
References m_T, and T2Matrix().
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 85 of file MatrixRTCoefficients_v3.cpp.
References m_R, and T2Matrix().
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 90 of file MatrixRTCoefficients_v3.cpp.
References m_T, and T1Matrix().
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 95 of file MatrixRTCoefficients_v3.cpp.
References m_R, and T1Matrix().
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 100 of file MatrixRTCoefficients_v3.cpp.
References m_T, and T2Matrix().
|
overridevirtual |
Implements ILayerRTCoefficients.
Definition at line 105 of file MatrixRTCoefficients_v3.cpp.
References m_R, and T2Matrix().
|
overridevirtual |
Returns z-part of the two wavevector eigenmodes.
Implements ILayerRTCoefficients.
Definition at line 110 of file MatrixRTCoefficients_v3.cpp.
|
inline |
Eigen::Matrix2cd MatrixRTCoefficients_v3::computeP | ( | ) | const |
Definition at line 130 of file MatrixRTCoefficients_v3.cpp.
References pMatrixHelper().
Referenced by SpecularMagneticNewNCStrategy::computeBackwardsSubmatrices(), and SpecularMagneticNewTanhStrategy::computeBackwardsSubmatrices().
Eigen::Matrix2cd MatrixRTCoefficients_v3::computeInverseP | ( | ) | const |
Definition at line 138 of file MatrixRTCoefficients_v3.cpp.
References m_lambda, and pMatrixHelper().
Referenced by SpecularMagneticNewNCStrategy::computeBackwardsSubmatrices(), and SpecularMagneticNewTanhStrategy::computeBackwardsSubmatrices().
Eigen::Matrix2cd MatrixRTCoefficients_v3::computeDeltaMatrix | ( | double | thickness | ) |
Definition at line 152 of file MatrixRTCoefficients_v3.cpp.
References anonymous_namespace{MatrixRTCoefficients_v3.cpp}::eps, anonymous_namespace{MatrixRTCoefficients_v3.cpp}::GetImExponential(), I, m_b, m_lambda, BasicVector3D< T >::mag(), BasicVector3D< T >::x(), BasicVector3D< T >::y(), and BasicVector3D< T >::z().
|
inlineoverridevirtual |
Reimplemented from ILayerRTCoefficients.
Definition at line 64 of file MatrixRTCoefficients_v3.h.
References m_R.
|
private |
Definition at line 44 of file MatrixRTCoefficients_v3.cpp.
References anonymous_namespace{MatrixRTCoefficients_v3.cpp}::eps, I, m_b, BasicVector3D< T >::mag(), BasicVector3D< T >::x(), BasicVector3D< T >::y(), and BasicVector3D< T >::z().
Referenced by T1Matrix(), and T2Matrix().
|
private |
Definition at line 60 of file MatrixRTCoefficients_v3.cpp.
References TransformationMatrix().
Referenced by R1min(), R1plus(), T1min(), and T1plus().
|
private |
Definition at line 65 of file MatrixRTCoefficients_v3.cpp.
References TransformationMatrix().
Referenced by R2min(), R2plus(), T2min(), and T2plus().
|
private |
Definition at line 115 of file MatrixRTCoefficients_v3.cpp.
References I, m_b, m_lambda, BasicVector3D< T >::x(), BasicVector3D< T >::y(), and BasicVector3D< T >::z().
Referenced by computeInverseP(), and computeP().
|
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 48 of file ILayerRTCoefficients.h.
|
inlinevirtualinherited |
|
inlinevirtualinherited |
|
friend |
Definition at line 29 of file MatrixRTCoefficients_v3.h.
|
friend |
Definition at line 30 of file MatrixRTCoefficients_v3.h.
|
friend |
Definition at line 31 of file MatrixRTCoefficients_v3.h.
|
friend |
Definition at line 32 of file MatrixRTCoefficients_v3.h.
|
friend |
Definition at line 33 of file MatrixRTCoefficients_v3.h.
|
friend |
Definition at line 34 of file MatrixRTCoefficients_v3.h.
|
friend |
Definition at line 35 of file MatrixRTCoefficients_v3.h.
|
friend |
Definition at line 36 of file MatrixRTCoefficients_v3.h.
|
private |
Definition at line 67 of file MatrixRTCoefficients_v3.h.
Referenced by getKz().
|
private |
wave propagation direction (-1 for direct one, 1 for time reverse)
eigenvalues for wave propagation
Definition at line 68 of file MatrixRTCoefficients_v3.h.
Referenced by computeDeltaMatrix(), computeInverseP(), SpecularMagneticNewNCStrategy::computeRoughnessMatrices(), SpecularMagneticNewTanhStrategy::computeRoughnessMatrix(), getKz(), and pMatrixHelper().
|
private |
unit magnetic field vector
Definition at line 69 of file MatrixRTCoefficients_v3.h.
Referenced by computeDeltaMatrix(), SpecularMagneticNewNCStrategy::computeRoughnessMatrices(), SpecularMagneticNewTanhStrategy::computeRoughnessMatrix(), MatrixRTCoefficients_v3(), pMatrixHelper(), and TransformationMatrix().
|
private |
Definition at line 70 of file MatrixRTCoefficients_v3.h.
Referenced by magneticSLD().
|
private |
Definition at line 72 of file MatrixRTCoefficients_v3.h.
Referenced by MatrixRTCoefficients_v3(), T1min(), T1plus(), T2min(), and T2plus().
|
private |
Definition at line 73 of file MatrixRTCoefficients_v3.h.
Referenced by getReflectionMatrix(), MatrixRTCoefficients_v3(), R1min(), R1plus(), R2min(), and R2plus().