MercuryDPM  Alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CylindricalWall Class Reference

#include <CylindricalWall.h>

+ Inheritance diagram for CylindricalWall:

Public Member Functions

 CylindricalWall ()
 
 CylindricalWall (const CylindricalWall &p)
 
 CylindricalWall (double radius)
 
CylindricalWallcopy () const
 Wall copy method. It calls the copy contrustor of this Wall, usefull for polymorfism. More...
 
void clear ()
 A function that removes all data from this BaseWall, so sets handler_ to nullptr. More...
 
void set (Mdouble radius)
 Defines a standard wall, given an outward normal vector s. t. normal*x=position. More...
 
bool getDistanceAndNormal (const BaseParticle &P, Mdouble &distance, Vec3D &normal_return) const
 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 oldRead (std::istream &is)
 
void write (std::ostream &os) const
 outputs wall More...
 
virtual std::string getName () const
 Returns the name of the object. More...
 
double getRadius () const
 access function for radius More...
 
- Public Member Functions inherited from BaseWall
 BaseWall ()
 Default constructor. It makes an empty BaseWall. More...
 
 BaseWall (const BaseWall &w)
 Copy constructor. More...
 
virtual ~BaseWall ()
 Default destructor. More...
 
virtual void setHandler (WallHandler *handler)
 A function which sets the WallHandler for this BaseWall. More...
 
WallHandlergetHandler () const
 A function which returns the WallHandler that handles this BaseWall. More...
 
void setIndSpecies (unsigned int indSpecies)
 Define the species of this wall using the index of the species in the SpeciesHandler in this DPMBase. More...
 
void setSpecies (const ParticleSpecies *species)
 Define the species of this wall. More...
 
bool getLinePlaneIntersect (Vec3D &intersect, const Vec3D &p0, const Vec3D &p1, const Vec3D &n, const Vec3D &p)
 
bool isInsideWallVTK (const Vec3D &point, const Vec3D &normal, const Vec3D &position) const
 
void projectOntoWallVTK (Vec3D &point0, const Vec3D &point1, const Vec3D &normal, const Vec3D &position) const
 
void intersectVTK (std::vector< Vec3D > &points, const Vec3D normal, const Vec3D position) const
 
virtual void writeVTK (VTKContainer &vtk) const
 
virtual std::vector
< BaseInteraction * > 
getInteractionWith (BaseParticle *p, Mdouble timeStamp, InteractionHandler *interactionHandler)
 
- Public Member Functions inherited from BaseInteractable
 BaseInteractable ()
 Default BaseInteractable constructor, it simply creates an empty BaseInteractable. More...
 
 BaseInteractable (const BaseInteractable &p)
 Copy constructor. It copies the BaseInteractable and all objects it contains. More...
 
virtual ~BaseInteractable ()
 Destructor, it simply destructs the BaseInteractable and all the objects it contains. More...
 
unsigned int getIndSpecies () const
 Returns the index of the Species of this BaseInteractable. More...
 
const ParticleSpeciesgetSpecies () const
 Returns a pointer to the species of this BaseInteractable. More...
 
void setSpecies (const ParticleSpecies *species)
 Sets the species of this BaseInteractable. More...
 
const Vec3DgetForce () const
 Returns the force on this BaseInteractable. More...
 
const Vec3DgetTorque () const
 Returns the torque on this BaseInteractable. More...
 
void setForce (const Vec3D &force)
 Sets the force on this BaseInteractable. More...
 
void setTorque (const Vec3D &torque)
 Sets the torque on this BaseInteractable. More...
 
void addForce (const Vec3D &addForce)
 Adds an amount to the force on this BaseInteractable. More...
 
void addTorque (const Vec3D &addTorque)
 Adds an amount to the torque on this BaseInteractable. More...
 
const Vec3DgetPosition () const
 Returns the position of this BaseInteractable. More...
 
const Vec3DgetOrientation () const
 Returns the orientation of this BaseInteractable. More...
 
void setPosition (const Vec3D &position)
 Sets the position of this BaseInteractable. More...
 
void setOrientation (const Vec3D &orientation)
 Sets the orientation of this BaseInteractable. More...
 
virtual void move (const Vec3D &move)
 Moves this BaseInteractable by adding an amount to the position. More...
 
void rotate (const Vec3D &rotate)
 Rotates this BaseInteractable. More...
 
const std::list
< BaseInteraction * > & 
getInteractions () const
 Returns a reference to the list of interactions in this BaseInteractable. More...
 
void addInteraction (BaseInteraction *I)
 Adds an interaction to this BaseInteractable. More...
 
bool removeInteraction (BaseInteraction *I)
 Removes an interaction from this BaseInteractable. More...
 
void copyInteractionsForPeriodicParticles (const BaseInteractable &p)
 Copies interactions to this BaseInteractable whenever a periodic copy made. More...
 
void setVelocity (const Vec3D &velocity)
 set the velocity of the BaseInteractable. More...
 
void setAngularVelocity (const Vec3D &angularVelocity)
 set the angular velocity of the BaseInteractble. More...
 
void addVelocity (const Vec3D &velocity)
 adds an increment to the velocity. More...
 
void addAngularVelocity (const Vec3D &angularVelocity)
 add an increment to the angular velocity. More...
 
virtual const Vec3DgetVelocity () const
 Returns the velocity of this interactable. More...
 
virtual const Vec3DgetAngularVelocity () const
 Returns the angular velocity of this interactable. More...
 
void setPrescribedPosition (const std::function< Vec3D(double)> &prescribedPosition)
 Allows the position of an infinite mass interactable to be prescribed. More...
 
void applyPrescribedPosition (double time)
 Computes the position from the user defined prescribed position function. More...
 
void setPrescribedVelocity (const std::function< Vec3D(double)> &prescribedVelocity)
 Allows the velocity of an infinite mass interactable to be prescribed. More...
 
void applyPrescribedVelocity (double time)
 Computes the velocity from the user defined prescribed velocity function. More...
 
void setPrescribedOrientation (const std::function< Vec3D(double)> &prescribedOrientation)
 Allows the orientation of the infinite mass interactbale to be prescribed. More...
 
void applyPrescribedOrientation (double time)
 Computes the orientation from the user defined prescribed orientation function. More...
 
void setPrescribedAngularVelocity (const std::function< Vec3D(double)> &prescribedAngularVelocity)
 Allows the angular velocity of the infinite mass interactable to be prescribed. More...
 
void applyPrescribedAngularVelocity (double time)
 Computes the angular velocity from the user defined prescribed angular velocity. More...
 
virtual const Vec3D getVelocityAtContact (const Vec3D &contact) const
 Returns the velocity at the contact point, use by many force laws. More...
 
void integrateBeforeForceComputation (double time, double timeStep)
 This is part of integrate routine for objects with infinite mass. More...
 
void integrateAfterForceComputation (double time, double timeStep)
 This is part of the integration routine for objects with infinite mass. More...
 
- Public Member Functions inherited from BaseObject
 BaseObject ()
 Default constructor. More...
 
 BaseObject (const BaseObject &p)
 Copy constructor, copies all the objects BaseObject contains. More...
 
virtual ~BaseObject ()
 virtual destructor More...
 
virtual void moveInHandler (const unsigned int index)
 Except that it is virtual, it does the same thing as setIndex() does. More...
 
void setIndex (const unsigned int index)
 Allows one to assign an index to an object in the handler/container. More...
 
void setId (const unsigned int id)
 Assigns a unique identifier to each object in the handler (container) which remains constant even after the object is deleted from the container/handler. More...
 
unsigned int getIndex () const
 Returns the index of the object in the handler. More...
 
unsigned int getId () const
 Returns the unique identifier of any particular object. More...
 

Private Attributes

Mdouble radius_
 

Additional Inherited Members

- Static Public Member Functions inherited from BaseWall
static void addToVTK (const std::vector< Vec3D > &points, VTKContainer &vtk)
 
- Public Attributes inherited from BaseWall
WallHandlerhandler_
 

Detailed Description

Deprecated:
This class will be gone in Mercury 2.0, use AxisymmetricIntersectionOfWalls instead.

Definition at line 36 of file CylindricalWall.h.

Constructor & Destructor Documentation

CylindricalWall::CylindricalWall ( )

Definition at line 32 of file CylindricalWall.cc.

References radius_.

Referenced by copy().

33  : BaseWall()
34 {
35  radius_ = std::numeric_limits<double>::quiet_NaN();
36 #ifdef DEBUG_CONSTRUCTOR
37  std::cout<<"CylindricalWall () finished"<<std::endl;
38 #endif
39 }
BaseWall()
Default constructor. It makes an empty BaseWall.
Definition: BaseWall.cc:31
CylindricalWall::CylindricalWall ( const CylindricalWall p)

Definition at line 41 of file CylindricalWall.cc.

References radius_.

42  : BaseWall(p)
43 {
44  radius_ = p.radius_;
45 #ifdef DEBUG_CONSTRUCTOR
46  std::cout<<"CylindricalWall (const CylindricalWall &p) finished"<<std::endl;
47 #endif
48 }
BaseWall()
Default constructor. It makes an empty BaseWall.
Definition: BaseWall.cc:31
CylindricalWall::CylindricalWall ( double  radius)

Definition at line 50 of file CylindricalWall.cc.

References radius_.

51  : BaseWall()
52 {
53  this->radius_ = radius;
54 #ifdef DEBUG_CONSTRUCTOR
55  std::cout<<"CylindricalWall (double radius) finished"<<std::endl;
56 #endif
57 }
BaseWall()
Default constructor. It makes an empty BaseWall.
Definition: BaseWall.cc:31

Member Function Documentation

void CylindricalWall::clear ( )
virtual

A function that removes all data from this BaseWall, so sets handler_ to nullptr.

Deprecated:
Please don't use any clear() anymore, it will be gone soon.
Todo:
TW Why is this function deprecated? How else do I reset the wall properties e.g. of an intersection of walls

Reimplemented from BaseWall.

Definition at line 65 of file CylindricalWall.cc.

66 {
67 }
CylindricalWall * CylindricalWall::copy ( ) const
virtual

Wall copy method. It calls the copy contrustor of this Wall, usefull for polymorfism.

Implements BaseWall.

Definition at line 60 of file CylindricalWall.cc.

References CylindricalWall().

61 {
62  return new CylindricalWall(*this);
63 }
bool CylindricalWall::getDistanceAndNormal ( const BaseParticle P,
Mdouble distance,
Vec3D normal_return 
) const
virtual

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.

Implements BaseWall.

Definition at line 76 of file CylindricalWall.cc.

References Vec3D::getLength(), BaseInteractable::getPosition(), BaseParticle::getRadius(), R, radius_, Vec3D::X, Vec3D::Y, and Vec3D::Z.

77  {
78  double R = sqrt(pow(P.getPosition().X, 2) + pow(P.getPosition().Y, 2));
79  distance = radius_ - R;
80  if (distance >= P.getRadius())
81  return false;
82 
83  normal_return.X = P.getPosition().X;
84  normal_return.Y = P.getPosition().Y;
85  normal_return.Z = 0.0;
86  normal_return /= normal_return.getLength();
87 
88  return true;
89 }
Mdouble X
the vector components
Definition: Vector.h:52
const Vec3D & getPosition() const
Returns the position of this BaseInteractable.
static Mdouble getLength(const Vec3D &a)
Calculates the length of a Vec3D: .
Definition: Vector.cc:414
Mdouble getRadius() const
Returns the particle's radius_.
Mdouble Y
Definition: Vector.h:52
Mdouble Z
Definition: Vector.h:52
std::string CylindricalWall::getName ( ) const
virtual

Returns the name of the object.

Implements BaseObject.

Definition at line 112 of file CylindricalWall.cc.

113 {
114  return "CylindricalWall";
115 }
double CylindricalWall::getRadius ( ) const

access function for radius

Definition at line 118 of file CylindricalWall.cc.

References radius_.

119 {
120  return radius_;
121 }
void CylindricalWall::oldRead ( std::istream &  is)

Definition at line 99 of file CylindricalWall.cc.

References radius_.

100 {
101  std::string dummy;
102  is >> dummy >> radius_;
103 }
void CylindricalWall::read ( std::istream &  is)
virtual

reads wall

Reimplemented from BaseWall.

Definition at line 92 of file CylindricalWall.cc.

References radius_, and BaseWall::read().

93 {
94  BaseWall::read(is);
95  std::string dummy;
96  is >> dummy >> radius_;
97 }
void read(std::istream &is)
Function that reads a BaseWall from an input stream, usually a restart file.
Definition: BaseWall.cc:60
void CylindricalWall::set ( Mdouble  radius)

Defines a standard wall, given an outward normal vector s. t. normal*x=position.

Definition at line 70 of file CylindricalWall.cc.

References radius_.

71 {
72  this->radius_ = radius;
73 }
void CylindricalWall::write ( std::ostream &  os) const
virtual

outputs wall

Reimplemented from BaseWall.

Definition at line 106 of file CylindricalWall.cc.

References radius_, and BaseWall::write().

107  {
108  BaseWall::write(os);
109  os << " radius " << radius_;
110 }
void write(std::ostream &os) const
Function that writes a BaseWall to an output stream, usually a restart file.
Definition: BaseWall.cc:68

Member Data Documentation

Mdouble CylindricalWall::radius_
private

The documentation for this class was generated from the following files: