BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
ParticleLayout Class Reference

Decorator class that adds particles to ISample objects. More...

+ Inheritance diagram for ParticleLayout:

Public Member Functions

 ParticleLayout (const IAbstractParticle &particle, double abundance=-1.0)
 
ParticleLayoutclone () const final override
 Returns a clone of this ISample object.
 
void accept (INodeVisitor *visitor) const final override
 Calls the INodeVisitor's visit method.
 
void addParticle (const IAbstractParticle &particle, double abundance=-1.0, const kvector_t position={}, const IRotation &rotation=IdentityRotation())
 Adds particle to the layout with abundance, position and the rotation defined. More...
 
SafePointerVector< IParticleparticles () const final override
 Returns information on all particles (type and abundance) and generates new particles if an IAbstractParticle denotes a collection.
 
const IInterferenceFunctioninterferenceFunction () const final override
 Returns the interference function.
 
double getTotalAbundance () const final override
 Get total abundance of all particles.
 
void setInterferenceFunction (const IInterferenceFunction &interference_function)
 Adds interference functions.
 
double totalParticleSurfaceDensity () const final override
 Returns surface density of all particles.
 
void setTotalParticleSurfaceDensity (double particle_density) final override
 Sets total particle surface density. More...
 
std::vector< const INode * > getChildren () const final override
 Returns a vector of children (const).
 
- Public Member Functions inherited from ILayout
double weight () const
 Returns the relative weight of this layout.
 
void setWeight (double weight)
 Sets the relative weight of this layout.
 
- Public Member Functions inherited from ISample
 ISample (const NodeMeta &meta, const std::vector< double > &PValues)
 
virtual const Materialmaterial () const
 Returns nullptr, unless overwritten to return a specific material.
 
std::vector< const Material * > containedMaterials () const
 Returns set of unique materials contained in this ISample.
 
- 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 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
 

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 ILayout
double m_weight
 
- Protected Attributes inherited from INode
const size_t m_NP
 
std::vector< double > m_P
 

Detailed Description

Decorator class that adds particles to ISample objects.

Definition at line 29 of file ParticleLayout.h.

Member Function Documentation

◆ addParticle()

void ParticleLayout::addParticle ( const IAbstractParticle particle,
double  abundance = -1.0,
const kvector_t  position = {},
const IRotation rotation = IdentityRotation() 
)

Adds particle to the layout with abundance, position and the rotation defined.

Parameters
particleto be added
abundanceParticle abundance
positionParticle position
rotationParticle rotation

Definition at line 76 of file ParticleLayout.cpp.

◆ setTotalParticleSurfaceDensity()

void ParticleLayout::setTotalParticleSurfaceDensity ( double  particle_density)
finaloverridevirtual

Sets total particle surface density.

Parameters
particle_densitynumber of particles per square nanometer

Implements ILayout.

Definition at line 135 of file ParticleLayout.cpp.


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