21 complex_t VecMatVecProduct(
const Eigen::Vector2cd& vec1,
const Eigen::Matrix2cd& ff,
22 const Eigen::Vector2cd& vec2)
24 return vec1.transpose() * ff * vec2;
35 std::unique_ptr<const ILayerRTCoefficients> p_in_coefs =
37 std::unique_ptr<const ILayerRTCoefficients> p_out_coefs =
39 p_result->
setSpecularInfo(std::move(p_in_coefs), std::move(p_out_coefs));
45 throw std::runtime_error(
"Bug: forbidden call of ComputeDWBAPol::evaluate");
76 Eigen::Matrix2cd ff_BA;
86 Eigen::Matrix2cd M11_S, M11_RS, M11_SR, M11_RSR, M12_S, M12_RS, M12_SR, M12_RSR, M21_S, M21_RS,
87 M21_SR, M21_RSR, M22_S, M22_RS, M22_SR, M22_RSR;
189 return M11_S + M11_RS + M11_SR + M11_RSR + M12_S + M12_RS + M12_SR + M12_RSR + M21_S + M21_RS
190 + M21_SR + M21_RSR + M22_S + M22_RS + M22_SR + M22_RSR;
194 std::unique_ptr<const ILayerRTCoefficients> p_out_coeffs)
std::complex< double > complex_t
Defines class ComputeDWBAPol.
Defines and implements class ILayerRTCoefficients.
T y() const
Returns y-component in cartesian coordinate system.
T x() const
Returns x-component in cartesian coordinate system.
void setZ(const T &a)
Sets z-component in cartesian coordinate system.
Provides polarized DWBA computation for given IFormFactor.
ComputeDWBAPol * clone() const override
Eigen::Matrix2cd evaluatePol(const WavevectorInfo &wavevectors) const override
Returns the coherent sum of the four DWBA terms for polarized scattering.
void setSpecularInfo(std::unique_ptr< const ILayerRTCoefficients > p_in_coeffs, std::unique_ptr< const ILayerRTCoefficients > p_out_coeffs) override
Sets reflection/transmission info.
std::unique_ptr< const ILayerRTCoefficients > m_in_coeffs
complex_t evaluate(const WavevectorInfo &wavevectors) const override
Throws not-implemented exception.
~ComputeDWBAPol() override
std::unique_ptr< const ILayerRTCoefficients > m_out_coeffs
ComputeDWBAPol(const IFormFactor &ff)
Abstract base class for form factor evaluations.
std::unique_ptr< IFormFactor > m_ff
Holds all wavevector information relevant for calculating form factors.
double wavelength() const