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 2x2 matrix interactions between the layers and the scattered particle. More...
Public Member Functions | |
MatrixRTCoefficients_v1 () | |
virtual | ~MatrixRTCoefficients_v1 () |
void | calculateTRMatrices () |
void | calculateTRWithoutMagnetization () |
virtual MatrixRTCoefficients_v1 * | clone () const |
virtual Eigen::Vector2cd | getKz () const |
Returns z-part of the two wavevector eigenmodes. More... | |
virtual Eigen::Matrix2cd | getReflectionMatrix () const |
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... | |
void | initializeBottomLayerPhiPsi () |
virtual Eigen::Vector2cd | R1min () const |
virtual Eigen::Vector2cd | R1plus () const |
virtual Eigen::Vector2cd | R2min () const |
virtual Eigen::Vector2cd | R2plus () const |
virtual Eigen::Vector2cd | T1min () const |
virtual Eigen::Vector2cd | T1plus () const |
The following functions return the transmitted and reflected amplitudes for different incoming beam polarizations and eigenmodes. More... | |
virtual Eigen::Vector2cd | T2min () const |
virtual Eigen::Vector2cd | T2plus () const |
Public Attributes | |
Eigen::Vector2cd | kz |
z-part of the two wavevector eigenmodes More... | |
Eigen::Vector2cd | lambda |
positive eigenvalues of transfer matrix More... | |
complex_t | m_a |
polarization independent part of scattering matrix More... | |
complex_t | m_b_mag |
magnitude of magnetic interaction term More... | |
complex_t | m_bz |
z-part of magnetic interaction term More... | |
double | m_kt |
wavevector length times thickness of layer for use when lambda=0 More... | |
Eigen::Matrix2cd | m_scatt_matrix |
scattering matrix More... | |
Eigen::Vector4cd | phi_psi_min |
boundary values for down-polarization More... | |
Eigen::Vector4cd | phi_psi_plus |
boundary values for up-polarization More... | |
Eigen::Matrix4cd | R1m |
matrix selecting the reflected part of the first eigenmode More... | |
Eigen::Matrix4cd | R2m |
matrix selecting the reflected part of the second eigenmode More... | |
Eigen::Matrix4cd | T1m |
matrix selecting the transmitted part of the first eigenmode More... | |
Eigen::Matrix4cd | T2m |
matrix selecting the transmitted part of the second eigenmode More... | |
Specular reflection and transmission coefficients in a layer in case of 2x2 matrix interactions between the layers and the scattered particle.
Definition at line 29 of file MatrixRTCoefficients_v1.h.
|
inline |
Definition at line 31 of file MatrixRTCoefficients_v1.h.
Referenced by clone().
|
inlinevirtual |
Definition at line 32 of file MatrixRTCoefficients_v1.h.
void MatrixRTCoefficients_v1::calculateTRMatrices | ( | ) |
Definition at line 114 of file MatrixRTCoefficients_v1.cpp.
References calculateTRWithoutMagnetization(), lambda, m_b_mag, m_bz, m_kt, m_scatt_matrix, mul_I(), R1m, R2m, T1m, and T2m.
void MatrixRTCoefficients_v1::calculateTRWithoutMagnetization | ( | ) |
Definition at line 252 of file MatrixRTCoefficients_v1.cpp.
References m_a, m_kt, mul_I(), R1m, R2m, T1m, and T2m.
Referenced by calculateTRMatrices().
|
virtual |
Implements ILayerRTCoefficients.
Definition at line 17 of file MatrixRTCoefficients_v1.cpp.
References MatrixRTCoefficients_v1().
|
inlinevirtual |
Returns z-part of the two wavevector eigenmodes.
Implements ILayerRTCoefficients.
Definition at line 47 of file MatrixRTCoefficients_v1.h.
References kz.
|
inlinevirtualinherited |
Reimplemented in MatrixRTCoefficients, and MatrixRTCoefficients_v2.
Definition at line 67 of file ILayerRTCoefficients.h.
|
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.
void MatrixRTCoefficients_v1::initializeBottomLayerPhiPsi | ( | ) |
Definition at line 297 of file MatrixRTCoefficients_v1.cpp.
References lambda, m_a, m_b_mag, m_bz, m_scatt_matrix, phi_psi_min, and phi_psi_plus.
|
virtual |
Implements ILayerRTCoefficients.
Definition at line 79 of file MatrixRTCoefficients_v1.cpp.
References lambda, phi_psi_min, R1m, and T1m.
|
virtual |
Implements ILayerRTCoefficients.
Definition at line 33 of file MatrixRTCoefficients_v1.cpp.
References lambda, phi_psi_plus, R1m, and T1m.
|
virtual |
Implements ILayerRTCoefficients.
Definition at line 102 of file MatrixRTCoefficients_v1.cpp.
References lambda, phi_psi_min, R2m, and T2m.
|
virtual |
Implements ILayerRTCoefficients.
Definition at line 56 of file MatrixRTCoefficients_v1.cpp.
References lambda, phi_psi_plus, R2m, and T2m.
|
virtual |
Implements ILayerRTCoefficients.
Definition at line 68 of file MatrixRTCoefficients_v1.cpp.
References lambda, phi_psi_min, and T1m.
|
virtual |
The following functions return the transmitted and reflected amplitudes for different incoming beam polarizations and eigenmodes.
Implements ILayerRTCoefficients.
Definition at line 22 of file MatrixRTCoefficients_v1.cpp.
References lambda, phi_psi_plus, and T1m.
|
virtual |
Implements ILayerRTCoefficients.
Definition at line 91 of file MatrixRTCoefficients_v1.cpp.
References lambda, phi_psi_min, and T2m.
|
virtual |
Implements ILayerRTCoefficients.
Definition at line 45 of file MatrixRTCoefficients_v1.cpp.
References lambda, phi_psi_plus, and T2m.
Eigen::Vector2cd MatrixRTCoefficients_v1::kz |
z-part of the two wavevector eigenmodes
Definition at line 54 of file MatrixRTCoefficients_v1.h.
Referenced by getKz().
Eigen::Vector2cd MatrixRTCoefficients_v1::lambda |
positive eigenvalues of transfer matrix
Definition at line 55 of file MatrixRTCoefficients_v1.h.
Referenced by calculateTRMatrices(), initializeBottomLayerPhiPsi(), R1min(), R1plus(), R2min(), R2plus(), T1min(), T1plus(), T2min(), and T2plus().
complex_t MatrixRTCoefficients_v1::m_a |
polarization independent part of scattering matrix
Definition at line 67 of file MatrixRTCoefficients_v1.h.
Referenced by calculateTRWithoutMagnetization(), and initializeBottomLayerPhiPsi().
complex_t MatrixRTCoefficients_v1::m_b_mag |
magnitude of magnetic interaction term
Definition at line 68 of file MatrixRTCoefficients_v1.h.
Referenced by calculateTRMatrices(), and initializeBottomLayerPhiPsi().
complex_t MatrixRTCoefficients_v1::m_bz |
z-part of magnetic interaction term
Definition at line 69 of file MatrixRTCoefficients_v1.h.
Referenced by calculateTRMatrices(), and initializeBottomLayerPhiPsi().
double MatrixRTCoefficients_v1::m_kt |
wavevector length times thickness of layer for use when lambda=0
Definition at line 70 of file MatrixRTCoefficients_v1.h.
Referenced by calculateTRMatrices(), and calculateTRWithoutMagnetization().
Eigen::Matrix2cd MatrixRTCoefficients_v1::m_scatt_matrix |
scattering matrix
Definition at line 66 of file MatrixRTCoefficients_v1.h.
Referenced by calculateTRMatrices(), and initializeBottomLayerPhiPsi().
Eigen::Vector4cd MatrixRTCoefficients_v1::phi_psi_min |
boundary values for down-polarization
Definition at line 57 of file MatrixRTCoefficients_v1.h.
Referenced by initializeBottomLayerPhiPsi(), R1min(), R2min(), T1min(), and T2min().
Eigen::Vector4cd MatrixRTCoefficients_v1::phi_psi_plus |
boundary values for up-polarization
Definition at line 56 of file MatrixRTCoefficients_v1.h.
Referenced by initializeBottomLayerPhiPsi(), R1plus(), R2plus(), T1plus(), and T2plus().
Eigen::Matrix4cd MatrixRTCoefficients_v1::R1m |
matrix selecting the reflected part of the first eigenmode
Definition at line 60 of file MatrixRTCoefficients_v1.h.
Referenced by calculateTRMatrices(), calculateTRWithoutMagnetization(), R1min(), and R1plus().
Eigen::Matrix4cd MatrixRTCoefficients_v1::R2m |
matrix selecting the reflected part of the second eigenmode
Definition at line 64 of file MatrixRTCoefficients_v1.h.
Referenced by calculateTRMatrices(), calculateTRWithoutMagnetization(), R2min(), and R2plus().
Eigen::Matrix4cd MatrixRTCoefficients_v1::T1m |
matrix selecting the transmitted part of the first eigenmode
Definition at line 58 of file MatrixRTCoefficients_v1.h.
Referenced by calculateTRMatrices(), calculateTRWithoutMagnetization(), R1min(), R1plus(), T1min(), and T1plus().
Eigen::Matrix4cd MatrixRTCoefficients_v1::T2m |
matrix selecting the transmitted part of the second eigenmode
Definition at line 62 of file MatrixRTCoefficients_v1.h.
Referenced by calculateTRMatrices(), calculateTRWithoutMagnetization(), R2min(), R2plus(), T2min(), and T2plus().