BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
SpecularMagneticOldStrategy Class Reference
Inheritance diagram for SpecularMagneticOldStrategy:
Collaboration diagram for SpecularMagneticOldStrategy:

Public Types

using coeffs_t = std::vector< std::unique_ptr< const ILayerRTCoefficients > >
 

Public Member Functions

coeffs_t Execute (const std::vector< Slice > &slices, const kvector_t &k) const
 
coeffs_t Execute (const std::vector< Slice > &slices, const std::vector< complex_t > &kz) const
 

Detailed Description

Implements the matrix formalism for the calculation of wave amplitudes of the coherent wave solution in a multilayer with magnetization.

Definition at line 29 of file SpecularMagneticOldStrategy.h.

Member Typedef Documentation

◆ coeffs_t

using ISpecularStrategy::coeffs_t = std::vector<std::unique_ptr<const ILayerRTCoefficients> >
inherited

Definition at line 40 of file ISpecularStrategy.h.

Member Function Documentation

◆ Execute() [1/2]

ISpecularStrategy::coeffs_t SpecularMagneticOldStrategy::Execute ( const std::vector< Slice > &  slices,
const kvector_t k 
) const
virtual

Computes refraction angle reflection/transmission coefficients for given sliced multilayer and wavevector k.

Implements ISpecularStrategy.

Definition at line 33 of file SpecularMagneticOldStrategy.cpp.

35 {
36  std::vector<MatrixRTCoefficients> result(slices.size());
37  CalculateEigenvalues(slices, k, result);
38  CalculateTransferAndBoundary(slices, result);
39 
40  coeffs_t resultConvert;
41  for (auto& coeff : result)
42  resultConvert.push_back(std::make_unique<MatrixRTCoefficients>(coeff));
43 
44  return resultConvert;
45 }
std::vector< std::unique_ptr< const ILayerRTCoefficients > > coeffs_t
void CalculateTransferAndBoundary(const std::vector< Slice > &slices, std::vector< MatrixRTCoefficients > &coeff)
void CalculateEigenvalues(const std::vector< Slice > &slices, const kvector_t k, std::vector< MatrixRTCoefficients > &coeff)

References anonymous_namespace{SpecularMagneticOldStrategy.cpp}::CalculateEigenvalues(), and anonymous_namespace{SpecularMagneticOldStrategy.cpp}::CalculateTransferAndBoundary().

Here is the call graph for this function:

◆ Execute() [2/2]

ISpecularStrategy::coeffs_t SpecularMagneticOldStrategy::Execute ( const std::vector< Slice > &  slices,
const std::vector< complex_t > &  kz 
) const
virtual

Implements ISpecularStrategy.

Definition at line 48 of file SpecularMagneticOldStrategy.cpp.

49 {
50  throw std::runtime_error("Not implemented");
51 }

The documentation for this class was generated from the following files: