BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
Simulation Class Referenceabstract

Pure virtual base class of OffSpecularSimulation, GISASSimulation and SpecularSimulation. More...

+ Inheritance diagram for Simulation:

Public Member Functions

virtual Simulationclone () const =0
 
virtual void prepareSimulation ()
 Put into a clean state for running a simulation.
 
void runSimulation ()
 Run a simulation, possibly averaged over parameter distributions. More...
 
void runMPISimulation ()
 Run a simulation in a MPI environment.
 
void setInstrument (const Instrument &instrument_)
 
const Instrumentinstrument () const
 
Instrumentinstrument ()
 
void setBeamIntensity (double intensity)
 
double getBeamIntensity () const
 
void setBeamPolarization (const kvector_t bloch_vector)
 Sets the beam polarization according to the given Bloch vector.
 
void setDetectorResolutionFunction (const IResolutionFunction2D &resolution_function)
 
void removeDetectorResolutionFunction ()
 
void setAnalyzerProperties (const kvector_t direction, double efficiency, double total_transmission)
 Sets the polarization analyzer characteristics of the detector.
 
void setSample (const MultiLayer &sample)
 The MultiLayer object will not be owned by the Simulation object.
 
const MultiLayersample () const
 
void setSampleBuilder (const std::shared_ptr< ISampleBuilder > &sample_builder)
 
void setBackground (const IBackground &bg)
 
const IBackgroundbackground () const
 
virtual size_t intensityMapSize () const =0
 Returns the total number of the intensity values in the simulation result.
 
virtual SimulationResult result () const =0
 Returns the results of the simulation in a format that supports unit conversion and export to numpy arrays.
 
void addParameterDistribution (const std::string &param_name, const IDistribution1D &distribution, size_t nbr_samples, double sigma_factor=0.0, const RealLimits &limits=RealLimits())
 
void addParameterDistribution (const ParameterDistribution &par_distr)
 
const DistributionHandlergetDistributionHandler () const
 
void setOptions (const SimulationOptions &options)
 
const SimulationOptionsgetOptions () const
 
SimulationOptionsgetOptions ()
 
void subscribe (ProgressHandler::Callback_t inform)
 
void setTerminalProgressMonitor ()
 Initializes a progress monitor that prints to stdout.
 
std::vector< const INode * > getChildren () const
 Returns a vector of children (const).
 
SimulationResult convertData (const OutputData< double > &data, bool put_masked_areas_to_zero=true)
 Convert user data to SimulationResult object for later drawing in various axes units. More...
 
- Public Member Functions inherited from ICloneable
 ICloneable (const ICloneable &)=delete
 
 ICloneable (ICloneable &&)=default
 
virtual void transferToCPP ()
 Used for Python overriding of clone (see swig/tweaks.py)
 
- Public Member Functions inherited from INode
 INode (const NodeMeta &meta, const std::vector< double > &PValues)
 
virtual void accept (INodeVisitor *visitor) const =0
 Calls the INodeVisitor's visit method.
 
virtual std::string treeToString () const
 Returns multiline string representing tree structure below the node.
 
void registerChild (INode *node)
 
virtual void setParent (const INode *newParent)
 
const INodeparent () const
 
INodeparent ()
 
int copyNumber (const INode *node) const
 Returns copyNumber of child, which takes into account existence of children with same name.
 
std::string displayName () const
 Returns display name, composed from the name of node and it's copy number.
 
ParameterPoolcreateParameterTree () const
 Creates new parameter pool, with all local parameters and those of its children.
 
- Public Member Functions inherited from IParameterized
 IParameterized (const std::string &name="")
 
 IParameterized (const IParameterized &other)
 
IParameterizedoperator= (const IParameterized &other)=delete
 
ParameterPoolparameterPool () const
 Returns pointer to the parameter pool.
 
std::string parametersToString () const
 Returns multiline string representing available parameters.
 
RealParameterregisterParameter (const std::string &name, double *parpointer)
 
void registerVector (const std::string &base_name, kvector_t *p_vec, const std::string &units="nm")
 
void setParameterValue (const std::string &name, double value)
 
void setVectorValue (const std::string &base_name, kvector_t value)
 
RealParameterparameter (const std::string &name) const
 Returns parameter with given 'name'.
 
virtual void onChange ()
 Action to be taken in inherited class when a parameter has changed.
 
void removeParameter (const std::string &name)
 
void removeVector (const std::string &base_name)
 
void setName (const std::string &name)
 
const std::string & getName () const
 

Protected Member Functions

 Simulation (const Simulation &other)
 
virtual void transferResultsToIntensityMap ()
 Creates the appropriate data structure (e.g. More...
 
virtual void initSimulationElementVector ()=0
 Initializes the vector of Simulation elements.
 
virtual void updateIntensityMap ()
 
virtual size_t numberOfSimulationElements () const =0
 Gets the number of elements this simulation needs to calculate.
 
const SimulationOptionsoptions () const
 
ProgressHandlerprogress ()
 

Friends

class MPISimulation
 

Additional Inherited Members

- Static Public Member Functions inherited from IParameterized
static std::string XComponentName (const std::string &base_name)
 
static std::string YComponentName (const std::string &base_name)
 
static std::string ZComponentName (const std::string &base_name)
 
- Protected Attributes inherited from INode
const size_t m_NP
 
std::vector< double > m_P
 

Detailed Description

Pure virtual base class of OffSpecularSimulation, GISASSimulation and SpecularSimulation.

Holds the common infrastructure to run a simulation: multithreading, batch processing, weighting over parameter distributions, ...

Definition at line 37 of file Simulation.h.

Member Function Documentation

◆ runSimulation()

void Simulation::runSimulation ( )

Run a simulation, possibly averaged over parameter distributions.

Run simulation with possible averaging over parameter distributions.

Definition at line 200 of file Simulation.cpp.

◆ convertData()

SimulationResult Simulation::convertData ( const OutputData< double > &  data,
bool  put_masked_areas_to_zero = true 
)

Convert user data to SimulationResult object for later drawing in various axes units.

User data will be cropped to the ROI defined in the simulation, amplitudes in areas corresponding to the masked areas of the detector will be set to zero.

Definition at line 317 of file Simulation.cpp.

◆ transferResultsToIntensityMap()

virtual void Simulation::transferResultsToIntensityMap ( )
inlineprotectedvirtual

Creates the appropriate data structure (e.g.

2D intensity map) from the calculated SimulationElement objects

Definition at line 110 of file Simulation.h.


The documentation for this class was generated from the following files: