BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Public Member Functions | |
DecouplingApproximationStrategy (SimulationOptions sim_params, bool polarized) | |
void | init (const std::vector< FormFactorCoherentSum > &weighted_formfactors, const IInterferenceFunction *p_iff) |
double | evaluate (const SimulationElement &sim_element) const |
Protected Attributes | |
std::vector< FormFactorCoherentSum > | m_formfactor_wrappers |
std::unique_ptr< IInterferenceFunction > | mP_iff |
SimulationOptions | m_options |
Private Member Functions | |
double | scalarCalculation (const SimulationElement &sim_element) const override |
double | polarizedCalculation (const SimulationElement &sim_element) const override |
double | evaluateSinglePoint (const SimulationElement &sim_element) const |
double | MCIntegratedEvaluate (const SimulationElement &sim_element) const |
double | evaluate_for_fixed_angles (double *fractions, size_t dim, void *params) const |
virtual void | strategy_specific_post_init () |
Private Attributes | |
bool | m_polarized |
std::unique_ptr< IntegratorMCMiser< IInterferenceFunctionStrategy > > | mP_integrator |
Strategy class to compute the total scattering from a particle layout in the decoupling approximation.
Definition at line 26 of file DecouplingApproximationStrategy.h.
DecouplingApproximationStrategy::DecouplingApproximationStrategy | ( | SimulationOptions | sim_params, |
bool | polarized | ||
) |
Definition at line 27 of file DecouplingApproximationStrategy.cpp.
|
overrideprivatevirtual |
Returns the total incoherent and coherent scattering intensity for given kf and for one particle layout (implied by the given particle form factors).
This is the scalar version
Implements IInterferenceFunctionStrategy.
Definition at line 37 of file DecouplingApproximationStrategy.cpp.
References SimulationElement::getMeanQ(), IInterferenceFunctionStrategy::m_formfactor_wrappers, IInterferenceFunctionStrategy::mP_iff, and InterferenceFunctionUtils::PrecomputeScalarFormFactors().
|
overrideprivatevirtual |
This is the polarized version.
Implements IInterferenceFunctionStrategy.
Definition at line 58 of file DecouplingApproximationStrategy.cpp.
References SimulationElement::getMeanQ(), IInterferenceFunctionStrategy::m_formfactor_wrappers, IInterferenceFunctionStrategy::mP_iff, SimulationElement::polarizationHandler(), and InterferenceFunctionUtils::PrecomputePolarizedFormFactors().
|
inherited |
Initializes the object with form factors and an interference function.
Definition at line 32 of file IInterferenceFunctionStrategy.cpp.
References IInterferenceFunction::clone(), IInterferenceFunctionStrategy::m_formfactor_wrappers, IInterferenceFunctionStrategy::mP_iff, and IInterferenceFunctionStrategy::strategy_specific_post_init().
|
inherited |
Calculates the intensity for scalar particles/interactions.
Definition at line 48 of file IInterferenceFunctionStrategy.cpp.
References IInterferenceFunctionStrategy::evaluateSinglePoint(), SimulationElement::getSolidAngle(), SimulationOptions::isIntegrate(), IInterferenceFunctionStrategy::m_options, and IInterferenceFunctionStrategy::MCIntegratedEvaluate().
|
privateinherited |
Definition at line 56 of file IInterferenceFunctionStrategy.cpp.
References IInterferenceFunctionStrategy::m_polarized, IInterferenceFunctionStrategy::polarizedCalculation(), and IInterferenceFunctionStrategy::scalarCalculation().
Referenced by IInterferenceFunctionStrategy::evaluate(), and IInterferenceFunctionStrategy::evaluate_for_fixed_angles().
|
privateinherited |
Performs a Monte Carlo integration over the bin for the evaluation of the intensity.
Definition at line 66 of file IInterferenceFunctionStrategy.cpp.
References SimulationOptions::getMcPoints(), IInterferenceFunctionStrategy::m_options, and IInterferenceFunctionStrategy::mP_integrator.
Referenced by IInterferenceFunctionStrategy::evaluate().
|
privateinherited |
Definition at line 74 of file IInterferenceFunctionStrategy.cpp.
References IInterferenceFunctionStrategy::evaluateSinglePoint(), and SimulationElement::getIntegrationFactor().
|
privatevirtualinherited |
Reimplemented in SSCApproximationStrategy.
Definition at line 86 of file IInterferenceFunctionStrategy.cpp.
Referenced by IInterferenceFunctionStrategy::init().
|
protectedinherited |
Definition at line 55 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::init(), polarizedCalculation(), SSCApproximationStrategy::polarizedCalculation(), scalarCalculation(), SSCApproximationStrategy::scalarCalculation(), and SSCApproximationStrategy::strategy_specific_post_init().
|
protectedinherited |
Definition at line 56 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::init(), polarizedCalculation(), SSCApproximationStrategy::polarizedCalculation(), scalarCalculation(), and SSCApproximationStrategy::scalarCalculation().
|
protectedinherited |
Definition at line 57 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::evaluate(), and IInterferenceFunctionStrategy::MCIntegratedEvaluate().
|
privateinherited |
Definition at line 69 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::evaluateSinglePoint().
|
privateinherited |
Definition at line 72 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::MCIntegratedEvaluate().