24 : mp_layout(p_layout), m_sim_params(sim_params), m_polarized(polarized)
42 throw std::runtime_error(
"LayoutStrategyBuilder::checkInterferenceFunction: "
43 "interference function does not support multiple layers");
46 if (p_radial_para && p_radial_para->kappa() > 0.0) {
47 double kappa = p_radial_para->
kappa();
Defines class DecouplingApproximationStrategy.
Defines many exception classes in namespace Exceptionss.
Defines class InterferenceFunctionRadialParaCrystal.
Defines class LayoutStrategyBuilder.
Defines class ProcessedLayout.
Defines class SSCApproximationStrategy.
Base class of all interference function strategy classes.
Pure virtual base class of interference functions.
virtual bool supportsMultilayer() const
Indicates if this interference function can be used with a multilayer (DWBA mode)
Interference function of radial paracrystal.
bool m_polarized
polarized computation required?
IInterferenceFunctionStrategy * releaseStrategy()
const ProcessedLayout * mp_layout
LayoutStrategyBuilder(const ProcessedLayout *p_layout, const SimulationOptions &sim_params, bool polarized)
void createStrategy()
Returns a new strategy object that is able to calculate the scattering for fixed k_f.
SimulationOptions m_sim_params
std::unique_ptr< IInterferenceFunctionStrategy > mP_strategy
Data structure that contains preprocessed data for a single layout.
size_t numberOfSlices() const
const std::vector< FormFactorCoherentSum > & formFactorList() const
const IInterferenceFunction * interferenceFunction() const
Collect the different options for simulation.