BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Public Member Functions | |
SSCApproximationStrategy (SimulationOptions sim_params, double kappa, 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 | |
void | strategy_specific_post_init () override |
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 |
Private Attributes | |
SSCAHelper | m_helper |
bool | m_polarized |
std::unique_ptr< IntegratorMCMiser< IInterferenceFunctionStrategy > > | mP_integrator |
Strategy class to compute the total scattering from a particle layout in the size-spacing correlation approximation.
Definition at line 26 of file SSCApproximationStrategy.h.
SSCApproximationStrategy::SSCApproximationStrategy | ( | SimulationOptions | sim_params, |
double | kappa, | ||
bool | polarized | ||
) |
Definition at line 23 of file SSCApproximationStrategy.cpp.
|
overrideprivatevirtual |
Reimplemented from IInterferenceFunctionStrategy.
Definition at line 29 of file SSCApproximationStrategy.cpp.
References SSCAHelper::init(), IInterferenceFunctionStrategy::m_formfactor_wrappers, and m_helper.
|
overrideprivatevirtual |
Returns the total 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 SSCApproximationStrategy.cpp.
References SSCAHelper::getCharacteristicDistribution(), SSCAHelper::getCharacteristicSizeCoupling(), SSCAHelper::getMeanFormfactorNorm(), SimulationElement::getMeanQ(), IInterferenceFunctionStrategy::m_formfactor_wrappers, m_helper, BasicVector3D< T >::magxy(), IInterferenceFunctionStrategy::mP_iff, and InterferenceFunctionUtils::PrecomputeScalarFormFactors().
|
overrideprivatevirtual |
This is the polarized version.
Implements IInterferenceFunctionStrategy.
Definition at line 57 of file SSCApproximationStrategy.cpp.
References SSCAHelper::getCharacteristicDistribution(), SSCAHelper::getCharacteristicSizeCoupling(), SSCAHelper::getMeanFormfactors(), SimulationElement::getMeanQ(), IInterferenceFunctionStrategy::m_formfactor_wrappers, m_helper, BasicVector3D< T >::magxy(), 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().
|
private |
Definition at line 35 of file SSCApproximationStrategy.h.
Referenced by polarizedCalculation(), scalarCalculation(), and strategy_specific_post_init().
|
protectedinherited |
Definition at line 55 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::init(), DecouplingApproximationStrategy::polarizedCalculation(), polarizedCalculation(), DecouplingApproximationStrategy::scalarCalculation(), scalarCalculation(), and strategy_specific_post_init().
|
protectedinherited |
Definition at line 56 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::init(), DecouplingApproximationStrategy::polarizedCalculation(), polarizedCalculation(), DecouplingApproximationStrategy::scalarCalculation(), and 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().