Class ReflectiveBox

Inheritance Relationships

Base Type

Class Documentation

class ReflectiveBox : public Module

Rectangular box with reflective boundaries.

If a particle passes on of the sides it is reflected back inside (position and velocity) and its initial position changed as if the particle had come from that side. This implements periodic boundaries, that keep the particle inside the box and instead move the source away reflectively. Particles can overshoot (be outside of the box during the step) since the step size is not limited by this module.

Public Functions

ReflectiveBox()

Default constructor

ReflectiveBox(Vector3d origin, Vector3d size)

Constructor

Parameters:
  • origin – vector corresponding to the lower box corner

  • size – vector corresponding to the box sizes along each direction

virtual void process(Candidate *candidate) const
void setOrigin(Vector3d origin)
void setSize(Vector3d size)
virtual std::string getDescription() const
void setDescription(const std::string &description)
inline void process(ref_ptr<Candidate> candidate) const
inline size_t addReference() const
inline size_t removeReference() const
inline int removeReferenceNoDelete() const
inline size_t getReferenceCount() const

Protected Attributes

mutable size_t _referenceCount