26 #ifndef INFINITEWALLWITHHOLE_H
27 #define INFINITEWALLWITHHOLE_H
111 void read(std::istream& is);
116 void oldRead(std::istream& is);
121 void write(std::ostream& os)
const;
126 virtual std::string
getName()
const;
void write(std::ostream &os) const
outputs wall
void read(std::istream &is)
reads wall
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.
void oldRead(std::istream &is)
reads wall
Vec3D normal_
Outward normal vector, does not have to be a unit vector.
virtual std::string getName() const
Returns the name of the object.
InfiniteWallWithHole()
default constructor
void clear()
A function that removes all data from this BaseWall, so sets handler_ to nullptr. ...
Stores information about interactions between two interactable objects; often particles but could be ...
void set(Vec3D normal, Mdouble position, Mdouble holeRadius)
Defines a standard wall, given an outward normal vector s. t. normal*x=position.
Mdouble getHoleDistance(const Vec3D &position) const
BaseInteraction * getInteractionWith(BaseParticle *P, Mdouble timeStamp, InteractionHandler *interactionHandler)
Returns the interaction between this object and a given BaseParticle.
InfiniteWallWithHole * copy() const
Wall copy method. It calls the copy contrustor of this Wall, usefull for polymorfism.
Container to store Interaction objects.
Mdouble position_
position n*x=p
Vec3D getNormal()
access function for normal
Mdouble getPosition()
access function for position
void move_time(Mdouble dt)
Allows the wall to be moved to a new position (also orthogonal to the normal), and setting the veloci...
Implementation of a 3D vector (by Vitaliy).
void moveTo(Mdouble position)
Allows the wall to be moved to a new position.
Mdouble getWallDistance(const Vec3D &position) const
Returns the distance of the wall to the particle.