MercuryDPM
Alpha
|
#include <InfiniteWallWithHole.h>
Public Member Functions | |
InfiniteWallWithHole () | |
default constructor More... | |
InfiniteWallWithHole (Vec3D normal, Mdouble position, Mdouble holeRadius) | |
InfiniteWallWithHole (const InfiniteWallWithHole &p) | |
InfiniteWallWithHole * | copy () const |
Wall copy method. It calls the copy contrustor of this Wall, usefull for polymorfism. More... | |
void | clear () |
A function that removes all data from this BaseWall, so sets handler_ to nullptr. More... | |
void | set (Vec3D normal, Mdouble position, Mdouble holeRadius) |
Defines a standard wall, given an outward normal vector s. t. normal*x=position. More... | |
void | moveTo (Mdouble position) |
Allows the wall to be moved to a new position. More... | |
void | move_time (Mdouble dt) |
Allows the wall to be moved to a new position (also orthogonal to the normal), and setting the velocity note: I commented this function out as it does not add new functionality (instead, BaseInteractable::move(velocity*dt) can be used), and it hides the virtual function BaseInteractable::move. If this is really needed, please add it again. More... | |
Mdouble | getWallDistance (const Vec3D &position) const |
Returns the distance of the wall to the particle. More... | |
Mdouble | getHoleDistance (const Vec3D &position) const |
bool | getDistanceAndNormal (const BaseParticle &P, Mdouble &distance, Vec3D &normal_return) const |
Since this function should be called before calculating any Particle-Wall interactions, it can also be used to set the normal vector in case of curved walls. More... | |
void | read (std::istream &is) |
reads wall More... | |
void | oldRead (std::istream &is) |
reads wall More... | |
void | write (std::ostream &os) const |
outputs wall More... | |
virtual std::string | getName () const |
Returns the name of the object. More... | |
Vec3D | getNormal () |
access function for normal More... | |
Mdouble | getPosition () |
access function for position More... | |
Public Member Functions inherited from BaseWall | |
BaseWall () | |
Default constructor. It makes an empty BaseWall. More... | |
BaseWall (const BaseWall &w) | |
Copy constructor. More... | |
virtual | ~BaseWall () |
Default destructor. More... | |
virtual 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... | |
bool | getLinePlaneIntersect (Vec3D &intersect, const Vec3D &p0, const Vec3D &p1, const Vec3D &n, const Vec3D &p) |
bool | isInsideWallVTK (const Vec3D &point, const Vec3D &normal, const Vec3D &position) const |
void | projectOntoWallVTK (Vec3D &point0, const Vec3D &point1, const Vec3D &normal, const Vec3D &position) const |
void | intersectVTK (std::vector< Vec3D > &points, const Vec3D normal, const Vec3D position) const |
virtual void | writeVTK (VTKContainer &vtk) const |
virtual std::vector < BaseInteraction * > | getInteractionWith (BaseParticle *p, Mdouble timeStamp, InteractionHandler *interactionHandler) |
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 (const Vec3D &force) |
Sets the force on this BaseInteractable. More... | |
void | setTorque (const Vec3D &torque) |
Sets the torque on this BaseInteractable. More... | |
void | addForce (const Vec3D &addForce) |
Adds an amount to the force on this BaseInteractable. More... | |
void | addTorque (const 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 (const 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 (const 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 (const 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 (const 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 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 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 | |
Vec3D | normal_ |
Outward normal vector, does not have to be a unit vector. More... | |
Mdouble | factor_ |
Mdouble | position_ |
position n*x=p More... | |
Mdouble | holeRadius_ |
Additional Inherited Members | |
Static Public Member Functions inherited from BaseWall | |
static void | addToVTK (const std::vector< Vec3D > &points, VTKContainer &vtk) |
Public Attributes inherited from BaseWall | |
WallHandler * | handler_ |
Definition at line 37 of file InfiniteWallWithHole.h.
InfiniteWallWithHole::InfiniteWallWithHole | ( | ) |
default constructor
Definition at line 32 of file InfiniteWallWithHole.cc.
References factor_, holeRadius_, and position_.
Referenced by copy().
Definition at line 43 of file InfiniteWallWithHole.cc.
References set().
InfiniteWallWithHole::InfiniteWallWithHole | ( | const InfiniteWallWithHole & | p | ) |
Definition at line 52 of file InfiniteWallWithHole.cc.
References factor_, holeRadius_, normal_, and position_.
|
virtual |
A function that removes all data from this BaseWall, so sets handler_ to nullptr.
Reimplemented from BaseWall.
Definition at line 70 of file InfiniteWallWithHole.cc.
|
virtual |
Wall copy method. It calls the copy contrustor of this Wall, usefull for polymorfism.
Implements BaseWall.
Definition at line 65 of file InfiniteWallWithHole.cc.
References InfiniteWallWithHole().
|
virtual |
Since this function should be called before calculating any Particle-Wall interactions, it can also be used to set the normal vector in case of curved walls.
Implements BaseWall.
Definition at line 118 of file InfiniteWallWithHole.cc.
References mathsFunc::cos(), getHoleDistance(), Vec3D::getLength(), BaseInteractable::getPosition(), BaseParticle::getRadius(), getWallDistance(), holeRadius_, normal_, position_, mathsFunc::sin(), Vec3D::X, Vec3D::Y, and Vec3D::Z.
Definition at line 112 of file InfiniteWallWithHole.cc.
References holeRadius_, Vec3D::X, and Vec3D::Y.
Referenced by getDistanceAndNormal().
|
virtual |
Returns the name of the object.
Implements BaseObject.
Definition at line 189 of file InfiniteWallWithHole.cc.
Vec3D InfiniteWallWithHole::getNormal | ( | ) |
access function for normal
Definition at line 195 of file InfiniteWallWithHole.cc.
References normal_.
Mdouble InfiniteWallWithHole::getPosition | ( | ) |
access function for position
Definition at line 201 of file InfiniteWallWithHole.cc.
References position_.
Returns the distance of the wall to the particle.
Definition at line 107 of file InfiniteWallWithHole.cc.
References Vec3D::dot(), normal_, and position_.
Referenced by getDistanceAndNormal().
void InfiniteWallWithHole::move_time | ( | Mdouble | dt | ) |
Allows the wall to be moved to a new position (also orthogonal to the normal), and setting the velocity note: I commented this function out as it does not add new functionality (instead, BaseInteractable::move(velocity*dt) can be used), and it hides the virtual function BaseInteractable::move. If this is really needed, please add it again.
Allows the wall to be moved with time
Definition at line 101 of file InfiniteWallWithHole.cc.
References Vec3D::dot(), BaseInteractable::getVelocity(), normal_, and position_.
void InfiniteWallWithHole::moveTo | ( | Mdouble | position | ) |
Allows the wall to be moved to a new position.
Definition at line 86 of file InfiniteWallWithHole.cc.
References factor_, and position_.
void InfiniteWallWithHole::oldRead | ( | std::istream & | is | ) |
reads wall
Definition at line 171 of file InfiniteWallWithHole.cc.
References normal_, position_, and BaseInteractable::setVelocity().
|
virtual |
reads wall
Reimplemented from BaseWall.
Definition at line 160 of file InfiniteWallWithHole.cc.
References factor_, holeRadius_, normal_, position_, and BaseWall::read().
Defines a standard wall, given an outward normal vector s. t. normal*x=position.
Defines a standard wall, given an outward normal vector s.
t. normal*x=position
Definition at line 76 of file InfiniteWallWithHole.cc.
References Vec3D::dot(), factor_, holeRadius_, normal_, and position_.
Referenced by InfiniteWallWithHole().
|
virtual |
outputs wall
Reimplemented from BaseWall.
Definition at line 180 of file InfiniteWallWithHole.cc.
References factor_, holeRadius_, normal_, position_, and BaseWall::write().
|
private |
The factor that needs to be multiplied with normal_ to make it a unit vector.
Definition at line 141 of file InfiniteWallWithHole.h.
Referenced by InfiniteWallWithHole(), moveTo(), read(), set(), and write().
|
private |
Definition at line 143 of file InfiniteWallWithHole.h.
Referenced by getDistanceAndNormal(), getHoleDistance(), InfiniteWallWithHole(), read(), set(), and write().
|
private |
Outward normal vector, does not have to be a unit vector.
Definition at line 137 of file InfiniteWallWithHole.h.
Referenced by getDistanceAndNormal(), getNormal(), getWallDistance(), InfiniteWallWithHole(), move_time(), oldRead(), read(), set(), and write().
|
private |
position n*x=p
Definition at line 142 of file InfiniteWallWithHole.h.
Referenced by getDistanceAndNormal(), getPosition(), getWallDistance(), InfiniteWallWithHole(), move_time(), moveTo(), oldRead(), read(), set(), and write().