31 #ifndef INFINITEWALLWITHHOLE_H
32 #define INFINITEWALLWITHHOLE_H
48 #ifdef CONSTUCTOR_OUTPUT
49 std::cout<<
"InfiniteWall () finished"<<std::endl;
59 #ifdef CONSTUCTOR_OUTPUT
60 std::cout<<
"InfiniteWallWithHole(Vec3D normal, Mdouble position, Mdouble holeRadius) finished"<<std::endl;
71 #ifdef CONSTUCTOR_OUTPUT
72 std::cout<<
"InfiniteWall (const InfiniteWall &p) finished"<<std::endl;
92 factor = 1. / sqrt(Dot(normal_, normal_));
131 if(wallDistance>0&&holeDistance>0)
133 distance=sqrt(pow(wallDistance,2)+pow(holeDistance,2));
141 normal_return/=normal_return.
GetLength();
145 else if(wallDistance>holeDistance)
147 distance=wallDistance;
154 distance=holeDistance;
void read(std::istream &is)
reads wall
void move(Vec3D velocity_, Mdouble dt)
Allows the wall to be moved to a new position (also orthogonal to the normal), and setting the veloci...
InfiniteWallWithHole(Vec3D normal, Mdouble position, Mdouble holeRadius)
Vec3D get_Velocity() const
access function for velocity
InfiniteWallWithHole * copy() const
Wall copy method. It calls the copy contrustor of this Wall, usefull for polymorfism.
friend Mdouble GetLength2(const Vec3D &A)
Mdouble get_Radius() const
void print(std::ostream &os) const
outputs wall
Mdouble get_Position()
access function for position
InfiniteWallWithHole(const InfiniteWallWithHole &p)
Mdouble get_holeDistance(const Vec3D &Position)
void set_Velocity(Vec3D new_)
access function for velocity
const Vec3D & get_Position() const
bool get_distance_and_normal(BaseParticle &P, Mdouble &distance, Vec3D &normal_return)
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.
Vec3D velocity
velocity of the wall (used to calculate the relative velocity in the force calculation) ...
void move_time(Mdouble dt)
Allows the wall to be moved with time.
Mdouble GetLength() const
Vec3D get_Normal()
access function for normal
Implementation of a 3D vector (by Vitaliy).
void move(Mdouble position_)
Allows the wall to be moved to a new position.
This is a class defining walls.
void set(Vec3D normal_, Mdouble position_, Mdouble holeRadius_)
Defines a standard wall, given an outward normal vector s. t. normal*x=position.
Mdouble get_wallDistance(const Vec3D &Position)
Returns the distance of the wall to the particle.