33 logger(
DEBUG,
"SimpleDrumSuperquadrics() finished");
46 logger(
DEBUG,
"AxisymmetricIntersectionOfWalls(const AxisymmetricIntersectionOfWalls &p) finished");
51 logger(
DEBUG,
"SimpleDrumSuperquadricsuadrics() finished.");
66 return *(other.
copy());
89 Vec3D& normalReturn)
const
92 normalDirection.
Y = 0;
95 logger(
DEBUG,
"setting wall to %, %", normalDirection, normalDirection * radius_);
106 normalDirection.
Y = 0;
111 logger(
DEBUG,
"setting wall to [%], [%]", normalDirection, normalDirection * radius_);
142 return "SimpleDrumSuperquadrics";
void write(std::ostream &os) const final
outputs wall
~SimpleDrumSuperquadrics() override
Destructor.
const Vec3D & getPosition() const
Returns the position of this BaseInteractable.
bool getDistanceAndNormal(const BaseParticle &p, Mdouble &distance, Vec3D &normal_return) const override
Compute the distance from the wall for a given BaseParticle and return if there is a collision...
Logger< MERCURY_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here...
void normalise()
Makes this Vec3D unit length.
SimpleDrumSuperquadrics & operator=(const SimpleDrumSuperquadrics &other)
Copy assignment operator.
void write(std::ostream &os) const override
Function that writes a BaseWall to an output stream, usually a restart file.
virtual const Vec3D & getAngularVelocity() const
Returns the angular velocity of this interactable.
bool getDistanceNormalOverlapSuperquadric(const SuperQuadricParticle &p, Mdouble &distance, Vec3D &normal_return, Mdouble &overlap) const override
Compute the distance from the wall for a given BaseParticle and return if there is a collision...
bool getDistanceNormalOverlapSuperquadric(const SuperQuadricParticle &p, Mdouble &distance, Vec3D &normal_return, Mdouble &overlap) const override
std::string getName() const final
Returns the name of the object.
A drum in xz-direction with centre at the origin with a certain radius. Usable with superquadric part...
void read(std::istream &is) final
reads wall
SimpleDrumSuperquadrics()
Default constructor.
void read(std::istream &is) override
Function that reads a BaseWall from an input stream, usually a restart file.
void read(std::istream &is) override
Reads InfiniteWall from a restart file.
void set(Vec3D normal, Vec3D point)
Defines a standard wall, given an outward normal vector s.t. normal*x=normal*point for all x of the w...
static Mdouble getLengthSquared(const Vec3D &a)
Calculates the squared length of a Vec3D: .
void setOrientationViaNormal(Vec3D normal)
Sets the orientation of this BaseInteractable by defining the vector that results from the rotation o...
bool getDistanceAndNormal(const BaseParticle &P, Mdouble &distance, Vec3D &normal_return) const override
Computes the distance from the wall for a given BaseParticle and returns true if there is a collision...
SimpleDrumSuperquadrics * copy() const final
Wall copy method. It calls the copy constructor of this Wall, useful for polymorphism.