MercuryDPM
Beta
|
Basic class for walls. More...
#include <BaseWall.h>
Public Member Functions | |
BaseWall () | |
Default constructor. It makes an empty BaseWall. More... | |
BaseWall (const BaseWall &w) | |
Copy constructor. More... | |
virtual | ~BaseWall () |
Default destructor. More... | |
virtual BaseWall * | copy () const =0 |
Pure virtual function that copies a BaseWall. More... | |
void | read (std::istream &is) |
Function that reads a BaseWall from an input stream, usually a restart file. More... | |
void | write (std::ostream &os) const |
Function that writes a BaseWall to an output stream, usually a restart file. More... | |
virtual MERCURY_DEPRECATED void | clear () |
A function that removes all data from this BaseWall, so sets handler_ to nullptr. More... | |
virtual bool | getDistanceAndNormal (const BaseParticle &P, Mdouble &distance, Vec3D &normal_return) const =0 |
Pure virtual function that computes the distance of a BaseParticle to this wall and returns the normal of this wall if there is a collision. More... | |
void | setHandler (WallHandler *handler) |
A function which sets the WallHandler for this BaseWall. More... | |
WallHandler * | getHandler () const |
A function which returns the WallHandler that handles this BaseWall. More... | |
void | setIndSpecies (unsigned int indSpecies) |
Define the species of this wall using the index of the species in the SpeciesHandler in this DPMBase. More... | |
void | setSpecies (const ParticleSpecies *species) |
Define the species of this wall. More... | |
Public Member Functions inherited from BaseInteractable | |
BaseInteractable () | |
Default BaseInteractable constructor, it simply creates an empty BaseInteractable. More... | |
BaseInteractable (const BaseInteractable &p) | |
Copy constructor. It copies the BaseInteractable and all objects it contains. More... | |
virtual | ~BaseInteractable () |
Destructor, it simply destructs the BaseInteractable and all the objects it contains. More... | |
unsigned int | getIndSpecies () const |
Returns the index of the Species of this BaseInteractable. More... | |
const ParticleSpecies * | getSpecies () const |
Returns a pointer to the species of this BaseInteractable. More... | |
void | setSpecies (const ParticleSpecies *species) |
Sets the species of this BaseInteractable. More... | |
const Vec3D & | getForce () const |
Returns the force on this BaseInteractable. More... | |
const Vec3D & | getTorque () const |
Returns the torque on this BaseInteractable. More... | |
void | setForce (Vec3D force) |
Sets the force on this BaseInteractable. More... | |
void | setTorque (Vec3D torque) |
Sets the torque on this BaseInteractable. More... | |
void | addForce (Vec3D addForce) |
Adds an amount to the force on this BaseInteractable. More... | |
void | addTorque (Vec3D addTorque) |
Adds an amount to the torque on this BaseInteractable. More... | |
const Vec3D & | getPosition () const |
Returns the position of this BaseInteractable. More... | |
const Vec3D & | getOrientation () const |
Returns the orientation of this BaseInteractable. More... | |
void | setPosition (const Vec3D &position) |
Sets the position of this BaseInteractable. More... | |
void | setOrientation (const Vec3D &orientation) |
Sets the orientation of this BaseInteractable. More... | |
virtual void | move (const Vec3D &move) |
Moves this BaseInteractable by adding an amount to the position. More... | |
void | rotate (const Vec3D &rotate) |
Rotates this BaseInteractable. More... | |
const std::list < BaseInteraction * > & | getInteractions () const |
Returns a reference to the list of interactions in this BaseInteractable. More... | |
void | addInteraction (BaseInteraction *I) |
Adds an interaction to this BaseInteractable. More... | |
bool | removeInteraction (BaseInteraction *I) |
Removes an interaction from this BaseInteractable. More... | |
void | copyInteractionsForPeriodicParticles (const BaseInteractable &p) |
Copies interactions to this BaseInteractable whenever a periodic copy made. More... | |
void | setVelocity (const Vec3D &velocity) |
set the velocity of the BaseInteractable. More... | |
void | setAngularVelocity (const Vec3D &angularVelocity) |
set the angular velocity of the BaseInteractble. More... | |
void | addVelocity (const Vec3D &velocity) |
adds an increment to the velocity. More... | |
void | addAngularVelocity (const Vec3D &angularVelocity) |
add an increment to the angular velocity. More... | |
virtual const Vec3D & | getVelocity () const |
Returns the velocity of this interactable. More... | |
virtual const Vec3D & | getAngularVelocity () const |
Returns the angular velocity of this interactable. More... | |
void | setPrescribedPosition (std::function< Vec3D(double)> prescribedPosition) |
Allows the position of an infinite mass interactable to be prescribed. More... | |
void | applyPrescribedPosition (double time) |
Computes the position from the user defined prescribed position function. More... | |
void | setPrescribedVelocity (std::function< Vec3D(double)> prescribedVelocity) |
Allows the velocity of an infinite mass interactable to be prescribed. More... | |
void | applyPrescribedVelocity (double time) |
Computes the velocity from the user defined prescribed velocity function. More... | |
void | setPrescribedOrientation (std::function< Vec3D(double)> prescribedOrientation) |
Allows the orientation of the infinite mass interactbale to be prescribed. More... | |
void | applyPrescribedOrientation (double time) |
Computes the orientation from the user defined prescribed orientation function. More... | |
void | setPrescribedAngularVelocity (std::function< Vec3D(double)> prescribedAngularVelocity) |
Allows the angular velocity of the infinite mass interactable to be prescribed. More... | |
void | applyPrescribedAngularVelocity (double time) |
Computes the angular velocity from the user defined prescribed angular velocity. More... | |
virtual BaseInteraction * | getInteractionWith (BaseParticle *P, Mdouble timeStamp, InteractionHandler *interactionHandler)=0 |
Returns the interaction between this object and a given BaseParticle. More... | |
virtual const Vec3D | getVelocityAtContact (const Vec3D &contact) const |
Returns the velocity at the contact point, use by many force laws. More... | |
void | integrateBeforeForceComputation (double time, double timeStep) |
This is part of integrate routine for objects with infinite mass. More... | |
void | integrateAfterForceComputation (double time, double timeStep) |
This is part of the integration routine for objects with infinite mass. More... | |
Public Member Functions inherited from BaseObject | |
BaseObject () | |
Default constructor. More... | |
BaseObject (const BaseObject &p) | |
Copy constructor, copies all the objects BaseObject contains. More... | |
virtual | ~BaseObject () |
virtual destructor More... | |
virtual std::string | getName () const =0 |
A purely virtual function. More... | |
virtual void | moveInHandler (const unsigned int index) |
Except that it is virtual, it does the same thing as setIndex() does. More... | |
void | setIndex (const unsigned int index) |
Allows one to assign an index to an object in the handler/container. More... | |
void | setId (const unsigned int id) |
Assigns a unique identifier to each object in the handler (container) which remains constant even after the object is deleted from the container/handler. More... | |
unsigned int | getIndex () const |
Returns the index of the object in the handler. More... | |
unsigned int | getId () const |
Returns the unique identifier of any particular object. More... | |
Private Attributes | |
WallHandler * | handler_ |
Basic class for walls.
Class from which all walls inherit. Please note the getVelocity can for some walls be dependent on which point on the wall is meant.
Definition at line 39 of file BaseWall.h.
BaseWall::BaseWall | ( | ) |
BaseWall::BaseWall | ( | const BaseWall & | w | ) |
Copy constructor.
[in] | w | Wall that must be copied. |
Definition at line 40 of file BaseWall.cc.
References DEBUG, handler_, and logger.
|
virtual |
Default destructor.
Definition at line 47 of file BaseWall.cc.
|
virtual |
A function that removes all data from this BaseWall, so sets handler_ to nullptr.
Reimplemented in IntersectionOfWalls, InfiniteWallWithHole, and CylindricalWall.
Definition at line 52 of file BaseWall.cc.
|
pure virtual |
Pure virtual function that copies a BaseWall.
Implemented in Coil, IntersectionOfWalls, AxisymmetricIntersectionOfWalls, InfiniteWall, Screw, InfiniteWallWithHole, and CylindricalWall.
|
pure virtual |
Pure virtual function that computes the distance of a BaseParticle to this wall and returns the normal of this wall if there is a collision.
Beware, the distance and normal are output parameters, not return values!
[in] | P | Reference to the BaseParticle we want to compute the distance to the BaseWall of. |
[out] | distance | Distance of the BaseParticle to the BaseWall. |
[out] | normal_return | The normal of the wall. Is only given if there is a collision. |
Implemented in IntersectionOfWalls, InfiniteWall, InfiniteWallWithHole, Coil, AxisymmetricIntersectionOfWalls, CylindricalWall, and Screw.
WallHandler * BaseWall::getHandler | ( | ) | const |
A function which returns the WallHandler that handles this BaseWall.
Definition at line 85 of file BaseWall.cc.
References handler_.
Referenced by setHandler(), setIndSpecies(), and setSpecies().
|
virtual |
Function that reads a BaseWall from an input stream, usually a restart file.
[in] | is | Input stream from which the BaseWall is read. |
Implements BaseInteractable.
Reimplemented in IntersectionOfWalls, InfiniteWallWithHole, InfiniteWall, Coil, Screw, and CylindricalWall.
Definition at line 60 of file BaseWall.cc.
References BaseInteractable::read().
Referenced by CylindricalWall::read(), Screw::read(), Coil::read(), InfiniteWall::read(), InfiniteWallWithHole::read(), and IntersectionOfWalls::read().
void BaseWall::setHandler | ( | WallHandler * | handler | ) |
A function which sets the WallHandler for this BaseWall.
[in] | handler | A pointer to the BaseHandler that handles this wall. |
Definition at line 76 of file BaseWall.cc.
References getHandler(), BaseInteractable::getIndSpecies(), BaseHandler< T >::getObject(), handler_, and setSpecies().
Referenced by WallHandler::addObject(), and setSpecies().
|
virtual |
Define the species of this wall using the index of the species in the SpeciesHandler in this DPMBase.
[in] | indSpecies | The index of the species of this BaseWall in the SpeciesHandler. |
Reimplemented from BaseInteractable.
Definition at line 93 of file BaseWall.cc.
References getHandler(), BaseInteractable::getIndSpecies(), BaseHandler< T >::getObject(), handler_, BaseInteractable::setIndSpecies(), and setSpecies().
void BaseWall::setSpecies | ( | const ParticleSpecies * | species | ) |
Define the species of this wall.
[in] | species | The species this BaseWall is made of. |
In addition to the functionality of BaseInteractable::setSpecies, this function sets the pointer to the wallHandler, which is needed to retrieve species information.
Definition at line 110 of file BaseWall.cc.
References BaseHandler< T >::getDPMBase(), BaseSpecies::getHandler(), getHandler(), setHandler(), BaseInteractable::setSpecies(), and DPMBase::wallHandler.
Referenced by setHandler(), and setIndSpecies().
|
virtual |
Function that writes a BaseWall to an output stream, usually a restart file.
[in] | os | Output stream the BaseWall has to be written to. |
Implements BaseInteractable.
Reimplemented in IntersectionOfWalls, InfiniteWallWithHole, InfiniteWall, Coil, Screw, and CylindricalWall.
Definition at line 68 of file BaseWall.cc.
References BaseInteractable::write().
Referenced by CylindricalWall::write(), Screw::write(), Coil::write(), InfiniteWall::write(), InfiniteWallWithHole::write(), and IntersectionOfWalls::write().
|
private |
A pointer to the WallHandler that handles this BaseWall.
Definition at line 117 of file BaseWall.h.
Referenced by BaseWall(), getHandler(), setHandler(), and setIndSpecies().