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)
 
ParticleLayout * clone () 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< IParticle > particles () const final override
 Returns information on all particles (type and abundance) and generates new particles if an IAbstractParticle denotes a collection.
 
const IInterferenceFunction * interferenceFunction () 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 Material * material () 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 INode * parent () const
 
INode * parent ()
 
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.
 
ParameterPool * createParameterTree () 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)
 
IParameterized & operator= (const IParameterized &other)=delete
 
ParameterPool * parameterPool () const
 Returns pointer to the parameter pool.
 
std::string parametersToString () const
 Returns multiline string representing available parameters.
 
RealParameter & registerParameter (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)
 
RealParameter * parameter (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: