MercuryDPM
0.10
|
This is a class defining walls. More...
#include <InfiniteWallWithHole.h>
Public Member Functions | |
InfiniteWallWithHole () | |
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 () |
void | set (Vec3D normal_, Mdouble position_, Mdouble holeRadius_) |
Defines a standard wall, given an outward normal vector s. t. normal*x=position. More... | |
void | move (Mdouble position_) |
Allows the wall to be moved to a new position. More... | |
void | move (Vec3D velocity_, Mdouble dt) |
Allows the wall to be moved to a new position (also orthogonal to the normal), and setting the velocity. More... | |
void | move_time (Mdouble dt) |
Allows the wall to be moved with time. More... | |
Mdouble | get_wallDistance (const Vec3D &Position) |
Returns the distance of the wall to the particle. More... | |
Mdouble | get_holeDistance (const Vec3D &Position) |
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. More... | |
void | read (std::istream &is) |
reads wall More... | |
void | print (std::ostream &os) const |
outputs wall More... | |
Vec3D | get_Normal () |
access function for normal More... | |
Mdouble | get_Position () |
access function for position More... | |
Vec3D | get_Velocity () const |
access function for velocity More... | |
void | set_Velocity (Vec3D new_) |
access function for velocity More... | |
![]() | |
BaseWall () | |
BaseWall (const BaseWall &p) | |
virtual | ~BaseWall () |
virtual bool | get_distance_and_normal (BaseParticle &P UNUSED, Mdouble &distance UNUSED, Vec3D &normal_return UNUSED)=0 |
void | set_Velocity (Vec3D new_) |
access function for velocity More... | |
virtual void | read (std::istream &is UNUSED)=0 |
virtual void | print (std::ostream &os UNUSED) const =0 |
virtual void | moveInHandler (int newPos) |
int | getIndSpecies () const |
void | setIndSpecies (const int _new) |
const Vec3D & | get_Force () const |
const Vec3D & | get_Torque () const |
void | set_Force (Vec3D _new) |
void | set_Torque (Vec3D _new) |
void | set_Index (int index) |
void | set_Id (int id) |
void | add_Force (Vec3D _new) |
void | add_Torque (Vec3D _new) |
Private Attributes | |
Vec3D | normal |
Mdouble | position |
Mdouble | factor |
Vec3D | velocity |
velocity of the wall (used to calculate the relative velocity in the force calculation) More... | |
Mdouble | holeRadius |
Additional Inherited Members | |
![]() | |
int | indSpecies |
![]() | |
Vec3D | velocity |
velocity of the wall (used to calculate the relative velocity in the force calculation) More... | |
This is a class defining walls.
It defines the interaction of regular walls and periodic walls with particles as defined in Particle Modifications: Definition of a wall (planar or finite). A standard wall is a plane defined as {x: normal*x=position}, with normal being the outward unit normal vector of the wall. A particle touches a standard wall if position-normal*x<=radius. A finite wall is convex polygon defined by a set of normals normal_i and positions position_i. A particle touches a finite wall if position_i-normal_i*x<=radius for all i.
Definition at line 42 of file InfiniteWallWithHole.h.
|
inline |
Definition at line 45 of file InfiniteWallWithHole.h.
References Vec3D::set_zero(), and velocity.
Referenced by copy().
|
inline |
Definition at line 53 of file InfiniteWallWithHole.h.
References holeRadius, normal, position, Vec3D::set_zero(), and velocity.
|
inline |
Definition at line 64 of file InfiniteWallWithHole.h.
References factor, holeRadius, normal, position, and velocity.
|
inlinevirtual |
Reimplemented from BaseWall.
Definition at line 82 of file InfiniteWallWithHole.h.
References BaseWall::indSpecies, Vec3D::set_zero(), and velocity.
|
inlinevirtual |
Wall copy method. It calls the copy contrustor of this Wall, usefull for polymorfism.
Implements BaseWall.
Definition at line 77 of file InfiniteWallWithHole.h.
References InfiniteWallWithHole().
|
inline |
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.
Definition at line 120 of file InfiniteWallWithHole.h.
References get_holeDistance(), BaseParticle::get_Position(), BaseParticle::get_Radius(), get_wallDistance(), Vec3D::GetLength(), holeRadius, normal, position, Vec3D::X, Vec3D::Y, and Vec3D::Z.
Definition at line 117 of file InfiniteWallWithHole.h.
References holeRadius, Vec3D::X, and Vec3D::Y.
Referenced by get_distance_and_normal().
|
inline |
access function for normal
Definition at line 177 of file InfiniteWallWithHole.h.
References normal.
|
inline |
access function for position
Definition at line 179 of file InfiniteWallWithHole.h.
References position.
|
inlinevirtual |
access function for velocity
Implements BaseWall.
Definition at line 181 of file InfiniteWallWithHole.h.
References velocity.
Returns the distance of the wall to the particle.
Definition at line 115 of file InfiniteWallWithHole.h.
References normal, and position.
Referenced by get_distance_and_normal().
|
inlinevirtual |
Allows the wall to be moved to a new position.
Reimplemented from BaseWall.
Definition at line 99 of file InfiniteWallWithHole.h.
References factor, and position.
Allows the wall to be moved to a new position (also orthogonal to the normal), and setting the velocity.
Reimplemented from BaseWall.
Definition at line 104 of file InfiniteWallWithHole.h.
References normal, position, and velocity.
|
inlinevirtual |
Allows the wall to be moved with time.
Reimplemented from BaseWall.
Definition at line 110 of file InfiniteWallWithHole.h.
References normal, position, and velocity.
|
inline |
outputs wall
Definition at line 170 of file InfiniteWallWithHole.h.
References Vec3D::GetLength2, holeRadius, normal, position, and velocity.
|
inline |
reads wall
Definition at line 164 of file InfiniteWallWithHole.h.
References normal, position, and velocity.
Defines a standard wall, given an outward normal vector s. t. normal*x=position.
Definition at line 89 of file InfiniteWallWithHole.h.
References factor, holeRadius, normal, and position.
|
inline |
access function for velocity
Definition at line 183 of file InfiniteWallWithHole.h.
References velocity.
|
private |
Definition at line 188 of file InfiniteWallWithHole.h.
Referenced by InfiniteWallWithHole(), move(), and set().
|
private |
Definition at line 190 of file InfiniteWallWithHole.h.
Referenced by get_distance_and_normal(), get_holeDistance(), InfiniteWallWithHole(), print(), and set().
|
private |
Definition at line 186 of file InfiniteWallWithHole.h.
Referenced by get_distance_and_normal(), get_Normal(), get_wallDistance(), InfiniteWallWithHole(), move(), move_time(), print(), read(), and set().
|
private |
Definition at line 187 of file InfiniteWallWithHole.h.
Referenced by get_distance_and_normal(), get_Position(), get_wallDistance(), InfiniteWallWithHole(), move(), move_time(), print(), read(), and set().
|
private |
velocity of the wall (used to calculate the relative velocity in the force calculation)
Definition at line 189 of file InfiniteWallWithHole.h.
Referenced by clear(), get_Velocity(), InfiniteWallWithHole(), move(), move_time(), print(), read(), and set_Velocity().