15 #ifndef BORNAGAIN_CORE_SIMULATION_SPECULARSIMULATION_H
16 #define BORNAGAIN_CORE_SIMULATION_SPECULARSIMULATION_H
77 size_t n_elements)
override;
90 void normalize(
size_t start_ind,
size_t n_elements)
override;
101 std::vector<double>
rawResults()
const override;
102 void setRawResults(
const std::vector<double>& raw_data)
override;
Defines class Simulation.
Interface for one-dimensional axes.
Interface for a single-threaded computation with given range of SimulationElements and ProgressHandle...
Visitor interface to visit ISample objects.
Interface to the class capable to build samples to simulate.
Pure virtual base class for sample components and properties related to scattering.
Pure virtual base class for all types of specular scans.
Our sample model: a stack of layers one below the other.
A parametric distribution function, for use with any model parameter.
Wrapper around OutputData<double> that also provides unit conversions.
Pure virtual base class of OffSpecularSimulation, GISASSimulation and SpecularSimulation.
Data stucture containing both input and output of a single image pixel for specular simulation.
Main class to run a specular simulation.
std::vector< double > rawResults() const override
const IAxis * coordinateAxis() const
Returns a pointer to coordinate axis.
void accept(INodeVisitor *visitor) const override final
Calls the INodeVisitor's visit method.
void initialize()
Initializes simulation.
SimulationResult result() const override
Returns the results of the simulation in a format that supports unit conversion and export to numpy a...
void setRawResults(const std::vector< double > &raw_data) override
SpecularSimulation * clone() const override
std::vector< double > m_cache
void addDataToCache(double weight) override
std::vector< SpecularSimulationElement > m_sim_elements
size_t intensityMapSize() const override
Returns the total number of the intensity values in the simulation result.
std::unique_ptr< ISpecularScan > m_scan
~SpecularSimulation() override
void initSimulationElementVector() override
Initializes the vector of Simulation elements.
void setScan(const ISpecularScan &scan)
Sets chosen specular scan to the simulation.
void addBackgroundIntensity(size_t start_ind, size_t n_elements) override
void prepareSimulation() override
Put into a clean state for running a simulation.
size_t numberOfSimulationElements() const override
Gets the number of elements this simulation needs to calculate.
void moveDataFromCache() override
void validateParametrization(const ParameterDistribution &par_distr) const override
Checks the distribution validity for simulation.
const IFootprintFactor * footprintFactor() const
Returns a pointer to footprint factor holder.
void normalize(size_t start_ind, size_t n_elements) override
Normalize the detector counts to beam intensity, to solid angle, and to exposure angle.
const ISpecularScan * dataHandler() const
Returns internal data handler.
std::unique_ptr< IComputation > generateSingleThreadedComputation(size_t start, size_t n_elements) override
Generate a single threaded computation for a given range of simulation elements.