BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
Strategy class to compute the total scattering from a particle layout in the size-spacing correlation approximation.
Definition at line 31 of file SSCAStrategy.h.
Public Member Functions | |
SSCAStrategy (const std::vector< std::unique_ptr< const CoherentFFSum >> &weighted_formfactors, const InterferenceRadialParaCrystal *iff, SimulationOptions sim_params, bool polarized, double kappa) | |
double | evaluate (const DiffuseElement &ele) const |
Calculates the intensity for scalar particles/interactions. More... | |
Protected Attributes | |
const SimulationOptions | m_options |
const std::vector< std::unique_ptr< const CoherentFFSum > > & | m_weighted_formfactors |
Private Member Functions | |
complex_t | calculatePositionOffsetPhase (double qp, double radial_extension) const |
double | evaluate_for_fixed_angles (const double *fractions, size_t dim, const void *params) const |
double | evaluateSinglePoint (const DiffuseElement &ele) const |
complex_t | getCharacteristicSizeCoupling (double qp, const std::vector< std::unique_ptr< const CoherentFFSum >> &ff_wrappers) const |
double | MCIntegratedEvaluate (const DiffuseElement &ele) const |
Performs a Monte Carlo integration over the bin for the evaluation of the intensity. More... | |
double | polarizedCalculation (const DiffuseElement &ele) const override |
This is the polarized version. More... | |
double | scalarCalculation (const DiffuseElement &ele) const override |
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. More... | |
Private Attributes | |
const std::unique_ptr< InterferenceRadialParaCrystal > | m_iff |
const std::unique_ptr< IntegratorMCMiser< IInterparticleStrategy > > | m_integrator |
const double | m_kappa |
const double | m_mean_radius |
const bool | m_polarized |
SSCAStrategy::SSCAStrategy | ( | const std::vector< std::unique_ptr< const CoherentFFSum >> & | weighted_formfactors, |
const InterferenceRadialParaCrystal * | iff, | ||
SimulationOptions | sim_params, | ||
bool | polarized, | ||
double | kappa | ||
) |
Definition at line 33 of file SSCAStrategy.cpp.
|
private |
Definition at line 110 of file SSCAStrategy.cpp.
References 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 IInterparticleStrategy.cpp.
References IInterparticleStrategy::evaluateSinglePoint(), SimulationOptions::isIntegrate(), IInterparticleStrategy::m_options, IInterparticleStrategy::MCIntegratedEvaluate(), and DiffuseElement::solidAngle().
|
privateinherited |
Definition at line 57 of file IInterparticleStrategy.cpp.
References IInterparticleStrategy::evaluateSinglePoint(), DiffuseElement::integrationFactor(), and DiffuseElement::pointElement().
|
privateinherited |
Definition at line 42 of file IInterparticleStrategy.cpp.
References IInterparticleStrategy::m_polarized, IInterparticleStrategy::polarizedCalculation(), and IInterparticleStrategy::scalarCalculation().
Referenced by IInterparticleStrategy::evaluate(), and IInterparticleStrategy::evaluate_for_fixed_angles().
|
private |
Definition at line 100 of file SSCAStrategy.cpp.
References calculatePositionOffsetPhase().
Referenced by polarizedCalculation(), and scalarCalculation().
|
privateinherited |
Performs a Monte Carlo integration over the bin for the evaluation of the intensity.
Definition at line 50 of file IInterparticleStrategy.cpp.
References SimulationOptions::getMcPoints(), IInterparticleStrategy::m_integrator, and IInterparticleStrategy::m_options.
Referenced by IInterparticleStrategy::evaluate().
|
overrideprivatevirtual |
This is the polarized version.
Implements IInterparticleStrategy.
Definition at line 71 of file SSCAStrategy.cpp.
References calculatePositionOffsetPhase(), getCharacteristicSizeCoupling(), m_iff, IInterparticleStrategy::m_weighted_formfactors, DiffuseElement::meanQ(), IElement::polMatrices(), and SpinMatrix::trace().
|
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 IInterparticleStrategy.
Definition at line 47 of file SSCAStrategy.cpp.
References calculatePositionOffsetPhase(), getCharacteristicSizeCoupling(), m_iff, IInterparticleStrategy::m_weighted_formfactors, and DiffuseElement::meanQ().
|
private |
Definition at line 45 of file SSCAStrategy.h.
Referenced by polarizedCalculation(), and scalarCalculation().
|
privateinherited |
Definition at line 66 of file IInterparticleStrategy.h.
Referenced by IInterparticleStrategy::MCIntegratedEvaluate().
|
private |
Definition at line 46 of file SSCAStrategy.h.
Referenced by calculatePositionOffsetPhase().
|
private |
Definition at line 47 of file SSCAStrategy.h.
Referenced by calculatePositionOffsetPhase().
|
protectedinherited |
Definition at line 53 of file IInterparticleStrategy.h.
Referenced by IInterparticleStrategy::evaluate(), and IInterparticleStrategy::MCIntegratedEvaluate().
|
privateinherited |
Definition at line 64 of file IInterparticleStrategy.h.
Referenced by IInterparticleStrategy::evaluateSinglePoint().
|
protectedinherited |
Definition at line 52 of file IInterparticleStrategy.h.
Referenced by IInterparticleStrategy::IInterparticleStrategy(), DecouplingApproximationStrategy::polarizedCalculation(), polarizedCalculation(), DecouplingApproximationStrategy::scalarCalculation(), and scalarCalculation().