BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
Specular reflection and transmission coefficients in a layer in case of magnetic interactions between the scattered particle and the layer.
Definition at line 32 of file MatrixFlux.h.
Public Member Functions | |
MatrixFlux (double kz_sign, const Spinor &eigenvalues, const R3 &b, double magnetic_SLD) | |
SpinMatrix | computeDeltaMatrix (double thickness) |
SpinMatrix | computeInverseP () const |
SpinMatrix | computeP () const |
Spinor | getKz () const override |
Returns z-part of the two wavevector eigenmodes. More... | |
SpinMatrix | getReflectionMatrix () const |
double | magneticSLD () const |
Spinor | R1min () const override |
Spinor | R1plus () const override |
Spinor | R2min () const override |
Spinor | R2plus () const override |
Spinor | T1min () const override |
Spinor | T1plus () const override |
The following functions return the transmitted and reflected amplitudes for different incoming beam polarizations and eigenmodes. More... | |
Spinor | T2min () const override |
Spinor | T2plus () const override |
Public Attributes | |
R3 | m_b |
unit magnetic field vector More... | |
Spinor | m_lambda |
eigenvalues for wave propagation More... | |
SpinMatrix | m_R |
SpinMatrix | m_T |
Private Member Functions | |
SpinMatrix | pMatrixHelper (double sign) const |
SpinMatrix | T1Matrix () const |
SpinMatrix | T2Matrix () const |
SpinMatrix | TransformationMatrix (const Spinor &selection) const |
Private Attributes | |
double | m_kz_sign |
double | m_magnetic_SLD |
wave propagation direction (-1 for direct one, 1 for time reverse) More... | |
MatrixFlux::MatrixFlux | ( | double | kz_sign, |
const Spinor & | eigenvalues, | ||
const R3 & | b, | ||
double | magnetic_SLD | ||
) |
Definition at line 32 of file MatrixFlux.cpp.
SpinMatrix MatrixFlux::computeDeltaMatrix | ( | double | thickness | ) |
Definition at line 146 of file MatrixFlux.cpp.
References SpinMatrix::adjoint(), m_b, m_kz_sign, m_lambda, SpinMatrix::One(), Spinor::u, and Spinor::v.
SpinMatrix MatrixFlux::computeInverseP | ( | ) | const |
Definition at line 132 of file MatrixFlux.cpp.
References ROOT::Math::Cephes::beta(), m_lambda, pMatrixHelper(), Spinor::u, and Spinor::v.
Referenced by Compute::MagneticNevotCroceTransition::backwardsSubmatrices(), and Compute::TransitionMagneticTanh::backwardsSubmatrices().
SpinMatrix MatrixFlux::computeP | ( | ) | const |
Definition at line 124 of file MatrixFlux.cpp.
References pMatrixHelper().
Referenced by Compute::MagneticNevotCroceTransition::backwardsSubmatrices(), and Compute::TransitionMagneticTanh::backwardsSubmatrices().
|
overridevirtual |
|
inline |
|
inline |
|
private |
Definition at line 113 of file MatrixFlux.cpp.
References ROOT::Math::Cephes::beta(), m_b, m_kz_sign, m_lambda, Spinor::u, and Spinor::v.
Referenced by computeInverseP(), and computeP().
|
overridevirtual |
Implements IFlux.
Definition at line 93 of file MatrixFlux.cpp.
References SpinMatrix::col1(), m_R, and T1Matrix().
|
overridevirtual |
Implements IFlux.
Definition at line 73 of file MatrixFlux.cpp.
References SpinMatrix::col0(), m_R, and T1Matrix().
|
overridevirtual |
Implements IFlux.
Definition at line 103 of file MatrixFlux.cpp.
References SpinMatrix::col1(), m_R, and T2Matrix().
|
overridevirtual |
Implements IFlux.
Definition at line 83 of file MatrixFlux.cpp.
References SpinMatrix::col0(), m_R, and T2Matrix().
|
private |
Definition at line 58 of file MatrixFlux.cpp.
References TransformationMatrix().
Referenced by R1min(), R1plus(), T1min(), and T1plus().
|
overridevirtual |
Implements IFlux.
Definition at line 88 of file MatrixFlux.cpp.
References SpinMatrix::col1(), m_T, and T1Matrix().
|
overridevirtual |
The following functions return the transmitted and reflected amplitudes for different incoming beam polarizations and eigenmodes.
Implements IFlux.
Definition at line 68 of file MatrixFlux.cpp.
References SpinMatrix::col0(), m_T, and T1Matrix().
|
private |
Definition at line 63 of file MatrixFlux.cpp.
References TransformationMatrix().
Referenced by R2min(), R2plus(), T2min(), and T2plus().
|
overridevirtual |
Implements IFlux.
Definition at line 98 of file MatrixFlux.cpp.
References SpinMatrix::col1(), m_T, and T2Matrix().
|
overridevirtual |
Implements IFlux.
Definition at line 78 of file MatrixFlux.cpp.
References SpinMatrix::col0(), m_T, and T2Matrix().
|
private |
Definition at line 43 of file MatrixFlux.cpp.
References SpinMatrix::adjoint(), m_b, Spinor::u, and Spinor::v.
Referenced by T1Matrix(), and T2Matrix().
R3 MatrixFlux::m_b |
unit magnetic field vector
Definition at line 60 of file MatrixFlux.h.
Referenced by MatrixFlux(), computeDeltaMatrix(), pMatrixHelper(), and TransformationMatrix().
|
private |
Definition at line 63 of file MatrixFlux.h.
Referenced by computeDeltaMatrix(), getKz(), and pMatrixHelper().
Spinor MatrixFlux::m_lambda |
eigenvalues for wave propagation
Definition at line 57 of file MatrixFlux.h.
Referenced by computeDeltaMatrix(), computeInverseP(), getKz(), and pMatrixHelper().
|
private |
wave propagation direction (-1 for direct one, 1 for time reverse)
Definition at line 64 of file MatrixFlux.h.
Referenced by magneticSLD().
SpinMatrix MatrixFlux::m_R |
Definition at line 59 of file MatrixFlux.h.
Referenced by getReflectionMatrix(), R1min(), R1plus(), R2min(), and R2plus().
SpinMatrix MatrixFlux::m_T |