22 LayoutStrategyBuilder::LayoutStrategyBuilder(
const ProcessedLayout* p_layout,
24 : mp_layout(p_layout), m_sim_params(sim_params), m_polarized(polarized)
30 LayoutStrategyBuilder::~LayoutStrategyBuilder() =
default;
34 return mP_strategy.release();
38 void LayoutStrategyBuilder::createStrategy()
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();
48 mP_strategy = std::make_unique<SSCApproximationStrategy>(m_sim_params, kappa, m_polarized);
50 mP_strategy = std::make_unique<DecouplingApproximationStrategy>(m_sim_params, m_polarized);
54 mP_strategy->init(mp_layout->formFactorList(), p_iff);
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.
Data structure that contains preprocessed data for a single layout.
Collect the different options for simulation.