35 radius_ = std::numeric_limits<double>::quiet_NaN();
36 #ifdef DEBUG_CONSTRUCTOR
37 std::cout<<
"CylindricalWall () finished"<<std::endl;
45 #ifdef DEBUG_CONSTRUCTOR
46 std::cout<<
"CylindricalWall (const CylindricalWall &p) finished"<<std::endl;
54 #ifdef DEBUG_CONSTRUCTOR
55 std::cout<<
"CylindricalWall (double radius) finished"<<std::endl;
85 normal_return.
Z = 0.0;
86 normal_return /= normal_return.
getLength();
114 return "CylindricalWall";
void setNormal(Vec3D normal)
Sets the normal vector between the two interacting objects.
Mdouble X
the vector components
void setOverlap(Mdouble overlap)
Set the overlap between the two interacting object.
BaseInteraction * getInteraction(BaseInteractable *P, BaseInteractable *I, Mdouble timeStamp)
Returns the Interaction between the BaseInteractable's P and I.
void setContactPoint(Vec3D contactPoint)
Set the location of the contact point between the two interacting objects.
void setDistance(Mdouble distance)
Sets the interaction distance between the two interacting objects.
const Vec3D & getPosition() const
Returns the position of this BaseInteractable.
Stores information about interactions between two interactable objects; often particles but could be ...
static Mdouble getLength(const Vec3D &a)
Calculates the length of a Vec3D: .
void oldRead(std::istream &is)
Container to store Interaction objects.
const Vec3D & getNormal() const
Gets the normal vector between the two interacting objects.
Mdouble getRadius() const
Returns the particle's radius_.
Mdouble getOverlap() const
Returns a Mdouble with the current overlap between the two interacting objects.
void clear()
A function that removes all data from this BaseWall, so sets handler_ to nullptr. ...
CylindricalWall * copy() const
Wall copy method. It calls the copy contrustor of this Wall, usefull for polymorfism.
void write(std::ostream &os) const
outputs wall
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.
Implementation of a 3D vector (by Vitaliy).
BaseInteraction * getInteractionWith(BaseParticle *P, Mdouble timeStamp, InteractionHandler *interactionHandler)
Returns the interaction between this object and a given BaseParticle.
void set(Mdouble radius)
Defines a standard wall, given an outward normal vector s. t. normal*x=position.
void read(std::istream &is)
reads wall
double getRadius() const
access function for radius
void write(std::ostream &os) const
Function that writes a BaseWall to an output stream, usually a restart file.
void read(std::istream &is)
Function that reads a BaseWall from an input stream, usually a restart file.
virtual std::string getName() const
Returns the name of the object.