41 #ifdef DEBUG_CONSTRUCTOR
42 std::cout<<
"HertzianViscoelasticInteraction::HertzianViscoelasticInteraction() finished"<<std::endl;
51 #ifdef DEBUG_CONSTRUCTOR
52 std::cout<<
"HertzianViscoelasticInteraction::HertzianViscoelasticInteraction(const HertzianViscoelasticInteraction& p) finished"<<std::endl;
60 #ifdef DEBUG_DESTRUCTOR
61 std::cout<<
"HertzianViscoelasticInteraction::~HertzianViscoelasticInteraction() finished"<<std::endl;
84 return "HertzianViscoelastic";
148 return 0.6*adhesiveForce*equilibriumOverlap;
Mdouble getEffectiveRadius() const
Returns a Mdouble to the effective radius of the interaction. (Not corrected for the overlap) ...
const HertzianViscoelasticNormalSpecies * getSpecies() const
Returns a const pointer of type HerztianViscoelasticNormalSpecies (dynamic-cast). ...
Mdouble getElasticModulus() const
Allows the spring constant to be accessed.
std::string getBaseName() const
Returns the name of the interaction.
const Vec3D & getRelativeVelocity() const
Returns a constant reference to a vector of relative velocity.
Computes normal forces for a Herztian visco-elastic interaction.
void setRelativeVelocity(Vec3D relativeVelocity)
set the relative velocity of the current of the interactions.
virtual ~HertzianViscoelasticInteraction()
Destructor.
void setForce(Vec3D force)
set total force (this is used by the normal force, tangential forces are added use addForce) ...
static Mdouble dot(const Vec3D &a, const Vec3D &b)
Calculates the dot product of two Vec3D: .
void setNormalRelativeVelocity(Mdouble normalRelativeVelocit)
set the normal component of the relative velocity.
T square(T val)
squares a number
Stores information about interactions between two interactable objects; often particles but could be ...
HertzianViscoelasticInteraction(BaseInteractable *P, BaseInteractable *I, Mdouble timeStamp)
Constructor.
const Vec3D & getContactPoint() const
Gets constant reference to contact point (vector).
Mdouble getNormalRelativeVelocity() const
Returns a double which is the norm (length) of the relative velocity vector.
const BaseSpecies * getBaseSpecies() const
Return a constant point to BaseSpecies of the interaction.
Mdouble getDissipation() const
Allows the normal dissipation to be accessed.
const Vec3D & getNormal() const
Gets the normal vector between the two interacting objects.
void computeNormalForce()
Computes the amount of normal force due to an Herztian visco-elastic interaction. ...
void setTorque(Vec3D torque)
set the total force (this is used by the normal force, tangential torques are added use addTorque) ...
Mdouble getOverlap() const
Returns a Mdouble with the current overlap between the two interacting objects.
void setAbsoluteNormalForce(Mdouble absoluteNormalForce)
the absolute values of the norm (length) of the normal force
BaseInteractable * getI()
void read(std::istream &is)
Interaction read function, which accepts an std::istream as input.
Mdouble getElasticEnergyAtEquilibrium(Mdouble adhesiveForce) const
void write(std::ostream &os) const
Interaction write function, which accepts an std::ostream as input.
virtual void read(std::istream &is)
Interaction read function, which accepts an std::istream as input.
Defines the basic properties that a interactable object can have.
BaseInteractable * getP()
Returns a pointer to first object involved in the interaction (normally a particle).
Implementation of a 3D vector (by Vitaliy).
HertzianViscoelasticNormalSpecies contains the parameters used to describe a Hertzian normal force (T...
virtual void write(std::ostream &os) const
Interaction print function, which accepts an std::ostream as input.
Mdouble getElasticEnergy() const
Computes and returns the amount of elastic energy stored in the spring.