BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Strategy class to compute the total scattering from a particle layout in the size-spacing correlation approximation. More...
Public Member Functions | |
SSCApproximationStrategy (const std::vector< FormFactorCoherentSum > &weighted_formfactors, const InterferenceFunctionRadialParaCrystal *iff, SimulationOptions sim_params, bool polarized, double kappa) | |
double | evaluate (const SimulationElement &sim_element) const |
Calculates the intensity for scalar particles/interactions. More... | |
Protected Attributes | |
const SimulationOptions | m_options |
std::vector< FormFactorCoherentSum > | m_weighted_formfactors |
Private Member Functions | |
complex_t | calculatePositionOffsetPhase (double qp, double radial_extension) const |
double | evaluate_for_fixed_angles (double *fractions, size_t dim, void *params) const |
double | evaluateSinglePoint (const SimulationElement &sim_element) const |
complex_t | getCharacteristicSizeCoupling (double qp, const std::vector< FormFactorCoherentSum > &ff_wrappers) const |
void | init (const std::vector< FormFactorCoherentSum > &ff_wrappers) |
double | MCIntegratedEvaluate (const SimulationElement &sim_element) const |
Performs a Monte Carlo integration over the bin for the evaluation of the intensity. More... | |
double | polarizedCalculation (const SimulationElement &sim_element) const override |
This is the polarized version. More... | |
double | scalarCalculation (const SimulationElement &sim_element) const override |
Returns the total scattering intensity for given kf and for one particle layout (implied by the given particle form factors). More... | |
Private Attributes | |
std::unique_ptr< InterferenceFunctionRadialParaCrystal > | m_iff |
std::unique_ptr< IntegratorMCMiser< IInterferenceFunctionStrategy > > | m_integrator |
double | m_kappa |
double | m_mean_radius |
bool | m_polarized |
Strategy class to compute the total scattering from a particle layout in the size-spacing correlation approximation.
Definition at line 33 of file SSCApproximationStrategy.h.
SSCApproximationStrategy::SSCApproximationStrategy | ( | const std::vector< FormFactorCoherentSum > & | weighted_formfactors, |
const InterferenceFunctionRadialParaCrystal * | iff, | ||
SimulationOptions | sim_params, | ||
bool | polarized, | ||
double | kappa | ||
) |
Definition at line 20 of file SSCApproximationStrategy.cpp.
References m_mean_radius, and IInterferenceFunctionStrategy::m_weighted_formfactors.
|
private |
Definition at line 100 of file SSCApproximationStrategy.cpp.
References exp_I(), m_kappa, and m_mean_radius.
Referenced by getCharacteristicSizeCoupling(), polarizedCalculation(), and scalarCalculation().
|
inherited |
Calculates the intensity for scalar particles/interactions.
Definition at line 35 of file IInterferenceFunctionStrategy.cpp.
References IInterferenceFunctionStrategy::evaluateSinglePoint(), SimulationOptions::isIntegrate(), IInterferenceFunctionStrategy::m_options, IInterferenceFunctionStrategy::MCIntegratedEvaluate(), and SimulationElement::solidAngle().
|
privateinherited |
Definition at line 60 of file IInterferenceFunctionStrategy.cpp.
References IInterferenceFunctionStrategy::evaluateSinglePoint(), SimulationElement::integrationFactor(), and SimulationElement::pointElement().
|
privateinherited |
Definition at line 43 of file IInterferenceFunctionStrategy.cpp.
References IInterferenceFunctionStrategy::m_polarized, IInterferenceFunctionStrategy::polarizedCalculation(), and IInterferenceFunctionStrategy::scalarCalculation().
Referenced by IInterferenceFunctionStrategy::evaluate(), and IInterferenceFunctionStrategy::evaluate_for_fixed_angles().
|
private |
Definition at line 90 of file SSCApproximationStrategy.cpp.
References calculatePositionOffsetPhase().
Referenced by polarizedCalculation(), and scalarCalculation().
|
private |
|
privateinherited |
Performs a Monte Carlo integration over the bin for the evaluation of the intensity.
Definition at line 52 of file IInterferenceFunctionStrategy.cpp.
References SimulationOptions::getMcPoints(), IInterferenceFunctionStrategy::m_integrator, and IInterferenceFunctionStrategy::m_options.
Referenced by IInterferenceFunctionStrategy::evaluate().
|
overrideprivatevirtual |
This is the polarized version.
Implements IInterferenceFunctionStrategy.
Definition at line 60 of file SSCApproximationStrategy.cpp.
References calculatePositionOffsetPhase(), getCharacteristicSizeCoupling(), m_iff, IInterferenceFunctionStrategy::m_weighted_formfactors, BasicVector3D< T >::magxy(), SimulationElement::meanQ(), and SimulationElement::polarizationHandler().
|
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 36 of file SSCApproximationStrategy.cpp.
References calculatePositionOffsetPhase(), getCharacteristicSizeCoupling(), m_iff, IInterferenceFunctionStrategy::m_weighted_formfactors, BasicVector3D< T >::magxy(), and SimulationElement::meanQ().
|
private |
Definition at line 50 of file SSCApproximationStrategy.h.
Referenced by polarizedCalculation(), and scalarCalculation().
|
privateinherited |
Definition at line 71 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::MCIntegratedEvaluate().
|
private |
Definition at line 51 of file SSCApproximationStrategy.h.
Referenced by calculatePositionOffsetPhase().
|
private |
Definition at line 52 of file SSCApproximationStrategy.h.
Referenced by SSCApproximationStrategy(), and calculatePositionOffsetPhase().
|
protectedinherited |
Definition at line 57 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::evaluate(), and IInterferenceFunctionStrategy::MCIntegratedEvaluate().
|
privateinherited |
Definition at line 68 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::evaluateSinglePoint().
|
protectedinherited |
Definition at line 56 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::IInterferenceFunctionStrategy(), SSCApproximationStrategy(), DecouplingApproximationStrategy::polarizedCalculation(), polarizedCalculation(), DecouplingApproximationStrategy::scalarCalculation(), and scalarCalculation().