From 8ac72bac91747e0b19ce7d954604bd51cfc00be2 Mon Sep 17 00:00:00 2001 From: Walter Van Herck <w.van.herck@fz-juelich.de> Date: Fri, 11 Jan 2019 11:11:51 +0100 Subject: [PATCH] Use the dummy DW factor in the SSCA approximation --- Core/Multilayer/SSCApproximationStrategy.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Core/Multilayer/SSCApproximationStrategy.cpp b/Core/Multilayer/SSCApproximationStrategy.cpp index 8ad7ae99789..09ea36f69b8 100644 --- a/Core/Multilayer/SSCApproximationStrategy.cpp +++ b/Core/Multilayer/SSCApproximationStrategy.cpp @@ -14,6 +14,7 @@ #include "SSCApproximationStrategy.h" #include "FormFactorCoherentSum.h" +#include "IInterferenceFunction.h" #include "InterferenceFunctionUtils.h" #include "SimulationElement.h" @@ -49,7 +50,8 @@ double SSCApproximationStrategy::scalarCalculation(const SimulationElement& sim_ complex_t p2kappa = m_helper.getCharacteristicSizeCoupling(qp, m_formfactor_wrappers); complex_t omega = m_helper.getCharacteristicDistribution(qp, mP_iff.get()); double interference_intensity = 2.0 * (mean_ff_norm * omega / (1.0 - p2kappa * omega)).real(); - return diffuse_intensity + interference_intensity; + double dw_factor = mP_iff->DWfactor(sim_element.getMeanQ()); + return diffuse_intensity + dw_factor * interference_intensity; } //! This is the polarized version @@ -75,5 +77,6 @@ double SSCApproximationStrategy::polarizedCalculation(const SimulationElement& s Eigen::Matrix2cd diffuse_matrix2 = polarization_handler.getAnalyzerOperator() * diffuse_matrix; double interference_trace = std::abs(interference_matrix.trace()); double diffuse_trace = std::abs(diffuse_matrix2.trace()); - return diffuse_trace + interference_trace; + double dw_factor = mP_iff->DWfactor(sim_element.getMeanQ()); + return diffuse_trace + dw_factor * interference_trace; } -- GitLab