BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Implements the magnetic Fresnel computation with Nevot-Croce roughness. More...
Public Types | |
using | coefficient_entry_type = Eigen::Matrix2cd |
using | coefficient_pointer_type = std::unique_ptr< const coefficient_type > |
using | coefficient_type = MatrixRTCoefficients |
using | coeffs_t = std::vector< coefficient_pointer_type > |
Public Member Functions | |
virtual std::variant< complex_t, Eigen::Matrix2cd > | computeTopLayerR (const std::vector< Slice > &slices, const std::vector< complex_t > &kzs) const override |
Computes the Fresnel R coefficient for the top layer only Introduced in order to speed up pure reflectivity computations. More... | |
ISpecularStrategy::coeffs_t | Execute (const std::vector< Slice > &slices, const kvector_t &k) const |
Computes refraction angle reflection/transmission coefficients for given sliced multilayer and wavevector k. More... | |
ISpecularStrategy::coeffs_t | Execute (const std::vector< Slice > &slices, const std::vector< complex_t > &kz) const |
Computes refraction angle reflection/transmission coefficients for given sliced multilayer and a set of kz projections corresponding to each slice. More... | |
Private Member Functions | |
void | calculateUpwards (std::vector< MatrixRTCoefficients > &coeff, const std::vector< Slice > &slices) const |
virtual std::pair< Eigen::Matrix2cd, Eigen::Matrix2cd > | computeBackwardsSubmatrices (const MatrixRTCoefficients &coeff_i, const MatrixRTCoefficients &coeff_i1, double sigma) const |
std::pair< Eigen::Matrix2cd, Eigen::Matrix2cd > | computeRoughnessMatrices (const MatrixRTCoefficients &coeff_i, const MatrixRTCoefficients &coeff_i1, double sigma) const |
std::vector< MatrixRTCoefficients > | computeTR (const std::vector< Slice > &slices, const std::vector< complex_t > &kzs) const |
Implements the magnetic Fresnel computation with Nevot-Croce roughness.
Implements the transfer matrix formalism for the calculation of wave amplitudes of the coherent wave solution in a multilayer with magnetization. For a description, see internal document "Polarized Implementation of the Transfer Matrix Method"
Definition at line 35 of file SpecularMagneticNCStrategy.h.
|
inherited |
Definition at line 42 of file SpecularMagneticStrategy.h.
|
inherited |
Definition at line 44 of file SpecularMagneticStrategy.h.
|
inherited |
Definition at line 43 of file SpecularMagneticStrategy.h.
|
inherited |
Definition at line 45 of file SpecularMagneticStrategy.h.
|
privateinherited |
Definition at line 156 of file SpecularMagneticStrategy.cpp.
References SpecularMagneticStrategy::computeBackwardsSubmatrices().
Referenced by SpecularMagneticStrategy::computeTR().
|
privatevirtual |
Implements SpecularMagneticStrategy.
Definition at line 67 of file SpecularMagneticNCStrategy.cpp.
References MatrixRTCoefficients::computeInverseP(), MatrixRTCoefficients::computeP(), and computeRoughnessMatrices().
|
private |
Definition at line 21 of file SpecularMagneticNCStrategy.cpp.
References I, MatrixRTCoefficients::m_b, MatrixRTCoefficients::m_lambda, and BasicVector3D< T >::x().
Referenced by computeBackwardsSubmatrices().
|
overridevirtualinherited |
Computes the Fresnel R coefficient for the top layer only Introduced in order to speed up pure reflectivity computations.
Implements ISpecularStrategy.
Definition at line 55 of file SpecularMagneticStrategy.cpp.
References SpecularMagneticStrategy::computeBackwardsSubmatrices().
|
privateinherited |
Definition at line 111 of file SpecularMagneticStrategy.cpp.
References SpecularMagneticStrategy::calculateUpwards().
Referenced by SpecularMagneticStrategy::Execute().
|
virtualinherited |
Computes refraction angle reflection/transmission coefficients for given sliced multilayer and wavevector k.
Implements ISpecularStrategy.
Definition at line 34 of file SpecularMagneticStrategy.cpp.
References KzComputation::computeReducedKz().
|
virtualinherited |
Computes refraction angle reflection/transmission coefficients for given sliced multilayer and a set of kz projections corresponding to each slice.
Implements ISpecularStrategy.
Definition at line 41 of file SpecularMagneticStrategy.cpp.
References SpecularMagneticStrategy::computeTR().