30 SpecularToySimulation::~SpecularToySimulation() =
default;
46 throw std::runtime_error(
"Interrupt request");
50 auto coeff = std::move(
m_strategy->Execute(slices, kzs).front());
Declares functions in namespace KzComputation.
Defines class SpecularScalarTanhStrategy.
void subscribe(callback_t callback)
std::function< bool(size_t)> callback_t
void setCompletedTicks(size_t value)
Increment number of completed computation steps.
void reset()
Resets progress.
void setMaxTicksCount(size_t value)
Sets expected ticks count, representing progress of a computation.
bool has_interrupt_request() const
Implements an tanh transition function to model roughness in a scaler computation.
SimulationResult m_specularResult
SimulationResult simulationResult() const
static SLDProfile sld_profile(const multislice_t &multislice, int n_points)
SimulationInput m_inputData
void setProgressCallback(ModelView::ProgressHandler::callback_t callback)
ModelView::ProgressHandler m_progressHandler
std::unique_ptr< SpecularScalarTanhStrategy > m_strategy
size_t scanPointsCount() const
std::vector< complex_t > computeKzFromSLDs(const std::vector< Slice > &slices, double kz)
std::vector< double > Real(const C &container)
Returns vector with real part of complex numbers.
materialitems.h Collection of materials to populate MaterialModel.
DAREFLCORE_EXPORT std::pair< double, double > DefaultMaterialProfileLimits(const multislice_t &multilayer)
Get default z limits for generating a material profile.
DAREFLCORE_EXPORT std::vector< complex_t > CalculateProfile(const multislice_t &multilayer, int n_points, double z_min, double z_max)
Calculate average material profile for given multilayer.
DAREFLCORE_EXPORT std::vector< Slice > createBornAgainSlices(const multislice_t &multislice)
Based on Qt example "codeeditor" Copyright (C) 2016 The Qt Company Ltd.
std::vector< SliceData > multislice_t
Represents results of SLD profile calculations.
Represents results of the simulation.
std::vector< double > qvalues
std::vector< double > amplitudes