MercuryDPM
Beta
|
Computes normal forces for a Herztian visco-elastic interaction. More...
#include <HertzianViscoelasticInteraction.h>
Public Types | |
typedef HertzianViscoelasticNormalSpecies | SpeciesType |
An alias for HertzianViscoelasticNormalSpecies. More... | |
Public Member Functions | |
HertzianViscoelasticInteraction (BaseInteractable *P, BaseInteractable *I, Mdouble timeStamp) | |
Constructor. More... | |
HertzianViscoelasticInteraction (const HertzianViscoelasticInteraction &p) | |
Copy constructor. More... | |
virtual | ~HertzianViscoelasticInteraction () |
Destructor. More... | |
void | computeNormalForce () |
Computes the amount of normal force due to an Herztian visco-elastic interaction. More... | |
void | read (std::istream &is) |
Interaction read function, which accepts an std::istream as input. More... | |
void | write (std::ostream &os) const |
Interaction write function, which accepts an std::ostream as input. More... | |
std::string | getBaseName () const |
Returns the name of the interaction. More... | |
Mdouble | getElasticEnergy () const |
Computes and returns the amount of elastic energy stored in the spring. More... | |
const HertzianViscoelasticNormalSpecies * | getSpecies () const |
Returns a const pointer of type HerztianViscoelasticNormalSpecies (dynamic-cast). More... | |
Public Member Functions inherited from BaseInteraction | |
BaseInteraction (BaseInteractable *P, BaseInteractable *I, Mdouble timeStamp) | |
A constructor takes the BaseInteractable objects which are interacting (come into contact) and time the interaction starts. More... | |
BaseInteraction (const BaseInteraction &p) | |
Copy constructor. More... | |
virtual | ~BaseInteraction () |
The default destructor. More... | |
virtual void | computeForce () |
Virtual function that contains the force law between the two objects interacting. More... | |
void | writeToFStat (std::ostream &os) const |
Writes forces data to the FStat file. More... | |
virtual std::string | getName () const |
Virtual function which allows interactions to be named. More... | |
void | setDistance (Mdouble distance) |
Sets the interaction distance between the two interacting objects. More... | |
void | setNormal (Vec3D normal) |
Sets the normal vector between the two interacting objects. More... | |
void | setOverlap (Mdouble overlap) |
Set the overlap between the two interacting object. More... | |
void | setContactPoint (Vec3D contactPoint) |
Set the location of the contact point between the two interacting objects. More... | |
void | setTimeStamp (Mdouble timeStamp) |
Updates the time step of the interacting. Note, timesteps used to find completed interactions. More... | |
void | setSpecies (BaseSpecies *species) |
Set the Species of the interaction; note this can either be a Species or MixedSpecies. More... | |
void | setP (BaseInteractable *P) |
Sets the first object involved in the interaction (normally a particle). More... | |
void | setI (BaseInteractable *I) |
Sets the second object involved in the interaction (often particle or wall). More... | |
void | setHandler (InteractionHandler *handler) |
Sets the pointer to the interaction hander which is storing this interaction. More... | |
InteractionHandler * | getHandler () const |
Gets a point to the interaction handlers to which this interaction belongs. More... | |
const Vec3D & | getForce () const |
Gets the current force (vector) between the two interacting objects. More... | |
const Vec3D & | getTorque () const |
Gets the current torque (vector) between the two interacting objects. More... | |
const Vec3D & | getNormal () const |
Gets the normal vector between the two interacting objects. More... | |
const Vec3D & | getContactPoint () const |
Gets constant reference to contact point (vector). More... | |
Mdouble | getOverlap () const |
Returns a Mdouble with the current overlap between the two interacting objects. More... | |
void | removeFromHandler () |
Removes this interaction from its interaction hander. More... | |
void | copySwitchPointer (const BaseInteractable *original, BaseInteractable *ghost) const |
This copies the interactions of the original particle and replaces the original with the ghost copy. More... | |
void | gatherContactStatistics () |
BaseInteractable * | getP () |
Returns a pointer to first object involved in the interaction (normally a particle). More... | |
BaseInteractable * | getI () |
const BaseInteractable * | getP () const |
const BaseInteractable * | getI () const |
Returns a constant pointer to the second object involved in the interaction. More... | |
Mdouble | getTimeStamp () const |
Returns an Mdouble which is the time stamp of the interaction. More... | |
virtual void | integrate (Mdouble timeStep) |
integrates variables of the interaction which need to be integrate e.g. the tangential overlap. More... | |
virtual Mdouble | getTangentialOverlap () const |
get the length of the current tangential overlap More... | |
Mdouble | getDistance () const |
Returns an Mdouble which is the norm (length) of distance vector. More... | |
const Vec3D & | getRelativeVelocity () const |
Returns a constant reference to a vector of relative velocity. More... | |
Mdouble | getNormalRelativeVelocity () const |
Returns a double which is the norm (length) of the relative velocity vector. More... | |
Mdouble | getAbsoluteNormalForce () const |
Returns the absolute value of the norm (length) of the Normal force vector. More... | |
virtual BaseInteraction * | copy () const =0 |
Makes a copy of the interaction and returns a pointer to the copy. More... | |
virtual void | rotateHistory (Matrix3D &rotationMatrix) |
When periodic particles are used, some interactions need certain history properties rotated (e.g. tangential springs). This is the function for that. 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... | |
Additional Inherited Members | |
Protected Member Functions inherited from BaseInteraction | |
virtual const Vec3D | getTangentialForce () const |
Mdouble | getEffectiveRadius () const |
Returns a Mdouble to the effective radius of the interaction. (Not corrected for the overlap) More... | |
Mdouble | getEffectiveCorrectedRadius () |
Returns a Mdouble to the effective radius corrected for the overlaps of the particles. More... | |
void | addForce (Vec3D force) |
add an force increment to the total force. More... | |
void | addTorque (Vec3D torque) |
void | setForce (Vec3D force) |
set total force (this is used by the normal force, tangential forces are added use addForce) More... | |
void | setTorque (Vec3D torque) |
set the total force (this is used by the normal force, tangential torques are added use addTorque) More... | |
void | setRelativeVelocity (Vec3D relativeVelocity) |
set the relative velocity of the current of the interactions. More... | |
void | setNormalRelativeVelocity (Mdouble normalRelativeVelocit) |
set the normal component of the relative velocity. More... | |
void | setAbsoluteNormalForce (Mdouble absoluteNormalForce) |
the absolute values of the norm (length) of the normal force More... | |
const BaseSpecies * | getBaseSpecies () const |
Return a constant point to BaseSpecies of the interaction. More... | |
virtual void | reverseHistory () |
When periodic particles some interaction need certain history properties reversing. This is the function for that. More... | |
Computes normal forces for a Herztian visco-elastic interaction.
Definition at line 36 of file HertzianViscoelasticInteraction.h.
An alias for HertzianViscoelasticNormalSpecies.
Definition at line 42 of file HertzianViscoelasticInteraction.h.
HertzianViscoelasticInteraction::HertzianViscoelasticInteraction | ( | BaseInteractable * | P, |
BaseInteractable * | I, | ||
Mdouble | timeStamp | ||
) |
Constructor.
[in] | P | |
[in] | I | |
[in] | timeStamp |
Definition at line 38 of file HertzianViscoelasticInteraction.cc.
HertzianViscoelasticInteraction::HertzianViscoelasticInteraction | ( | const HertzianViscoelasticInteraction & | p | ) |
Copy constructor.
[in] | p |
Definition at line 48 of file HertzianViscoelasticInteraction.cc.
|
virtual |
Destructor.
Definition at line 58 of file HertzianViscoelasticInteraction.cc.
void HertzianViscoelasticInteraction::computeNormalForce | ( | ) |
Computes the amount of normal force due to an Herztian visco-elastic interaction.
Definition at line 89 of file HertzianViscoelasticInteraction.cc.
References Vec3D::dot(), BaseInteraction::getContactPoint(), HertzianViscoelasticNormalSpecies::getDissipation(), BaseInteraction::getEffectiveRadius(), HertzianViscoelasticNormalSpecies::getElasticModulus(), BaseInteraction::getI(), BaseInteraction::getNormal(), BaseInteraction::getNormalRelativeVelocity(), BaseInteraction::getOverlap(), BaseInteraction::getP(), BaseInteraction::getRelativeVelocity(), getSpecies(), BaseInteraction::setAbsoluteNormalForce(), BaseInteraction::setForce(), BaseInteraction::setNormalRelativeVelocity(), BaseInteraction::setRelativeVelocity(), and BaseInteraction::setTorque().
std::string HertzianViscoelasticInteraction::getBaseName | ( | ) | const |
Returns the name of the interaction.
Definition at line 82 of file HertzianViscoelasticInteraction.cc.
|
virtual |
Computes and returns the amount of elastic energy stored in the spring.
Reimplemented from BaseInteraction.
Definition at line 124 of file HertzianViscoelasticInteraction.cc.
References HertzianViscoelasticNormalSpecies::getElasticModulus(), BaseInteraction::getOverlap(), getSpecies(), and mathsFunc::square().
const HertzianViscoelasticNormalSpecies * HertzianViscoelasticInteraction::getSpecies | ( | ) | const |
Returns a const pointer of type HerztianViscoelasticNormalSpecies (dynamic-cast).
Definition at line 135 of file HertzianViscoelasticInteraction.cc.
References BaseInteraction::getBaseSpecies().
Referenced by computeNormalForce(), and getElasticEnergy().
|
virtual |
Interaction read function, which accepts an std::istream as input.
[in,out] | is |
Reimplemented from BaseInteraction.
Definition at line 75 of file HertzianViscoelasticInteraction.cc.
References BaseInteraction::read().
|
virtual |
Interaction write function, which accepts an std::ostream as input.
[in,out] | os |
Reimplemented from BaseInteraction.
Definition at line 68 of file HertzianViscoelasticInteraction.cc.
References BaseInteraction::write().