MercuryDPM
0.10
|
This is a class defining walls. More...
#include <InfiniteWall.h>
Public Member Functions | |
InfiniteWall () | |
InfiniteWall (const InfiniteWall &p) | |
InfiniteWall * | 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_) |
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_distance (const Vec3D &Position) |
Returns the distance of the wall to the particle. More... | |
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 () const |
access function for normal More... | |
Mdouble | get_Position () const |
access function for position More... | |
Vec3D | get_Velocity () const |
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 |
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 InfiniteWall.h.
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented from BaseWall.
Definition at line 68 of file InfiniteWall.h.
References BaseWall::indSpecies, Vec3D::set_zero(), and BaseWall::velocity.
|
inlinevirtual |
Wall copy method. It calls the copy contrustor of this Wall, usefull for polymorfism.
Implements BaseWall.
Definition at line 63 of file InfiniteWall.h.
References InfiniteWall().
Returns the distance of the wall to the particle.
Definition at line 101 of file InfiniteWall.h.
References normal, and position.
Referenced by get_distance_and_normal().
|
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 104 of file InfiniteWall.h.
References get_distance(), BaseParticle::get_Position(), BaseParticle::get_WallInteractionRadius(), and normal.
|
inline |
|
inline |
|
inlinevirtual |
access function for velocity
Implements BaseWall.
Definition at line 133 of file InfiniteWall.h.
References BaseWall::velocity.
|
inlinevirtual |
Allows the wall to be moved to a new position.
Reimplemented from BaseWall.
Definition at line 84 of file InfiniteWall.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 89 of file InfiniteWall.h.
References normal, position, and BaseWall::velocity.
|
inlinevirtual |
Allows the wall to be moved with time.
Reimplemented from BaseWall.
Definition at line 95 of file InfiniteWall.h.
References normal, position, and BaseWall::velocity.
|
inline |
outputs wall
Definition at line 120 of file InfiniteWall.h.
References Vec3D::GetLength2, normal, position, and BaseWall::velocity.
|
inline |
reads wall
Definition at line 114 of file InfiniteWall.h.
References normal, position, and BaseWall::velocity.
Defines a standard wall, given an outward normal vector s. t. normal*x=position.
Definition at line 75 of file InfiniteWall.h.
References factor, normal, and position.
Referenced by Chute::create_bottom(), MD::load_par_ini_file(), Chute::setup_particles_initial_conditions(), and ChuteBottom::setup_particles_initial_conditions().
|
private |
Definition at line 138 of file InfiniteWall.h.
Referenced by InfiniteWall(), move(), and set().
|
private |
Definition at line 136 of file InfiniteWall.h.
Referenced by get_distance(), get_distance_and_normal(), get_Normal(), InfiniteWall(), move(), move_time(), print(), read(), and set().
|
private |
Definition at line 137 of file InfiniteWall.h.
Referenced by get_distance(), get_Position(), InfiniteWall(), move(), move_time(), print(), read(), and set().