31 #ifndef INFINITEWALL_H
32 #define INFINITEWALL_H
47 #ifdef CONSTUCTOR_OUTPUT
48 std::cout<<
"InfiniteWall () finished"<<std::endl;
57 #ifdef CONSTUCTOR_OUTPUT
58 std::cout<<
"InfiniteWall (const InfiniteWall &p) finished"<<std::endl;
78 factor = 1. / sqrt(Dot(normal_, normal_));
120 void print(std::ostream& os)
const {
121 os <<
"InfiniteWall normal " <<
normal <<
" position " <<
position;
void read(std::istream &is)
reads wall
void move_time(Mdouble dt)
Allows the wall to be moved with time.
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.
Mdouble get_Position() const
access function for position
Vec3D velocity
velocity of the wall (used to calculate the relative velocity in the force calculation) ...
InfiniteWall(const InfiniteWall &p)
friend Mdouble GetLength2(const Vec3D &A)
InfiniteWall * copy() const
Wall copy method. It calls the copy contrustor of this Wall, usefull for polymorfism.
Mdouble get_distance(const Vec3D &Position)
Returns the distance of the wall to the particle.
Vec3D get_Velocity() const
access function for velocity
Mdouble get_WallInteractionRadius() const
void move(Mdouble position_)
Allows the wall to be moved to a new position.
const Vec3D & get_Position() const
void set(Vec3D normal_, Mdouble position_)
Defines a standard wall, given an outward normal vector s. t. normal*x=position.
This is a class defining walls.
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...
void print(std::ostream &os) const
outputs wall
Implementation of a 3D vector (by Vitaliy).
Vec3D get_Normal() const
access function for normal