15 #ifndef BORNAGAIN_CORE_SIMULATION_SPECULARSIMULATION_H
16 #define BORNAGAIN_CORE_SIMULATION_SPECULARSIMULATION_H
71 void initSimulationElementVector()
override;
76 std::unique_ptr<IComputation> generateSingleThreadedComputation(
size_t start,
77 size_t n_elements)
override;
79 void checkCache()
const;
90 void normalize(
size_t start_ind,
size_t n_elements)
override;
92 void addBackgroundIntensity(
size_t start_ind,
size_t n_elements)
override;
94 void addDataToCache(
double weight)
override;
96 void moveDataFromCache()
override;
99 size_t numberOfSimulationElements()
const override;
101 std::vector<double> rawResults()
const override;
102 void setRawResults(
const std::vector<double>& raw_data)
override;
104 std::unique_ptr<ISpecularScan> m_scan;
105 std::vector<SpecularSimulationElement> m_sim_elements;
106 std::vector<double> m_cache;
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.
const IAxis * coordinateAxis() const
Returns a pointer to coordinate axis.
void accept(INodeVisitor *visitor) const override final
Calls the INodeVisitor's visit method.
SimulationResult result() const override
Returns the results of the simulation in a format that supports unit conversion and export to numpy a...
size_t intensityMapSize() const override
Returns the total number of the intensity values in the simulation result.
void setScan(const ISpecularScan &scan)
Sets chosen specular scan to the simulation.
void prepareSimulation() override
Put into a clean state for running a simulation.
const IFootprintFactor * footprintFactor() const
Returns a pointer to footprint factor holder.
const ISpecularScan * dataHandler() const
Returns internal data handler.