78 Vec3D& normal_return)
const;
86 void rotate(
const Vec3D& angularVelocityDt)
override;
91 void read(std::istream& is)
override;
101 void write(std::ostream& os)
const override;
106 std::string
getName()
const final;
110 void writeVTK(std::string filename)
const;
void read(std::istream &is) override
Reads a Screw from an input stream, for example a restart file.
Mdouble maxR_
The outer radius of the Screw.
This function defines an Archimedes' screw in the z-direction from a (constant) starting point...
void writeVTK(VTKContainer &vtk) const override
bool getDistanceAndNormal(const BaseParticle &P, Mdouble &distance, Vec3D &normal_return) const final
Compute the distance from the Screw for a given BaseParticle and return if there is a collision...
void move_time(Mdouble dt)
Rotate the Screw for a period dt, so that the offset_ changes with omega_*dt.
std::string getName() const final
Returns the name of the object, here the string "Screw".
ScrewType screwType_
Single or double helix screw.
Vec3D start_
The centre of the lower end of the screw.
Mdouble offset_
The angle that describes how much the Screw has turned, going from 0 to 1 for a rotation.
~Screw() override
Default destructor.
Mdouble l_
The length of the Screw.
Screw * copy() const final
Copy this screw and return a pointer to the copy.
bool getDistanceAndNormalLabCoordinates(Vec3D position, Mdouble wallInteractionRadius, Mdouble &distance, Vec3D &normal_return) const
void write(std::ostream &os) const override
Writes this Screw to an output stream, for example a restart file.
void rotate(const Vec3D &angularVelocityDt) override
Mdouble n_
The number of revelations.
ScrewType
used to define if the screw consists of a single or double helical thread
Screw()
Default constructor: make a screw with default parameters.
Mdouble thickness_
The thickness of the Screw.
Mdouble omega_
Rotation speed in rev/s.
void oldRead(std::istream &is)
Reads a Screw in the old style from an input stream, for example a restart file old style...