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 decoupling approximation.
Definition at line 30 of file DecouplingApproximationStrategy.h.
Public Member Functions | |
DecouplingApproximationStrategy (const std::vector< std::unique_ptr< const CoherentFFSum >> &weighted_formfactors, const IInterference *iff, SimulationOptions sim_params, bool polarized) | |
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 | |
double | evaluate_for_fixed_angles (const double *fractions, size_t dim, const void *params) const |
double | evaluateSinglePoint (const DiffuseElement &ele) 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 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. More... | |
Private Attributes | |
const std::unique_ptr< IInterference > | m_iff |
const std::unique_ptr< IntegratorMCMiser< IInterparticleStrategy > > | m_integrator |
const bool | m_polarized |
DecouplingApproximationStrategy::DecouplingApproximationStrategy | ( | const std::vector< std::unique_ptr< const CoherentFFSum >> & | weighted_formfactors, |
const IInterference * | iff, | ||
SimulationOptions | sim_params, | ||
bool | polarized | ||
) |
Definition at line 21 of file DecouplingApproximationStrategy.cpp.
|
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().
|
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 52 of file DecouplingApproximationStrategy.cpp.
References SpinMatrix::adjoint(), m_iff, IInterparticleStrategy::m_weighted_formfactors, DiffuseElement::meanQ(), IElement::polMatrices(), and SpinMatrix::trace().
|
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 IInterparticleStrategy.
Definition at line 33 of file DecouplingApproximationStrategy.cpp.
References m_iff, IInterparticleStrategy::m_weighted_formfactors, and DiffuseElement::meanQ().
|
private |
Definition at line 40 of file DecouplingApproximationStrategy.h.
Referenced by polarizedCalculation(), and scalarCalculation().
|
privateinherited |
Definition at line 66 of file IInterparticleStrategy.h.
Referenced by IInterparticleStrategy::MCIntegratedEvaluate().
|
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(), polarizedCalculation(), SSCAStrategy::polarizedCalculation(), scalarCalculation(), and SSCAStrategy::scalarCalculation().