26 #ifndef INFINITEWALLWITHHOLE_H
27 #define INFINITEWALLWITHHOLE_H
101 void read(std::istream& is)
override;
106 void oldRead(std::istream& is);
111 void write(std::ostream& os)
const override;
116 std::string
getName()
const override;
void write(std::ostream &os) const override
outputs wall
std::string getName() const override
Returns the name of the object.
void oldRead(std::istream &is)
reads wall
Vec3D normal_
Outward normal vector, does not have to be a unit vector.
InfiniteWallWithHole()
default constructor
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
InfiniteWallWithHole * copy() const override
Wall copy method. It calls the copy contrustor of this Wall, usefull for polymorfism.
bool getDistanceAndNormal(const BaseParticle &P, Mdouble &distance, Vec3D &normal_return) const override
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.
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...
void moveTo(Mdouble position)
Allows the wall to be moved to a new position.
void read(std::istream &is) override
reads wall
Mdouble getWallDistance(const Vec3D &position) const
Returns the distance of the wall to the particle.