MercuryDPM
Beta
|
Enables one to compute normal forces in case of a linear visco-elastic interaction. More...
#include <LinearViscoelasticInteraction.h>
Public Types | |
typedef LinearViscoelasticNormalSpecies | SpeciesType |
An alias for LinearViscoelasticNormalSpecies. More... | |
Public Member Functions | |
LinearViscoelasticInteraction (BaseInteractable *P, BaseInteractable *I, Mdouble timeStamp) | |
Constructor. More... | |
LinearViscoelasticInteraction (const LinearViscoelasticInteraction &p) | |
Copy constructor. More... | |
virtual | ~LinearViscoelasticInteraction () |
Destructor. More... | |
void | computeNormalForce () |
Creates a copy of an object of this class. (Deep copy) 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 type/name of interaction (linear visco-elastic interaction). More... | |
Mdouble | getElasticEnergy () const |
Returns the amount of energy stored in the spring due to head on collision. More... | |
const LinearViscoelasticNormalSpecies * | getSpecies () const |
Returns a const pointer of type LinearViscoelasticNormalSpecies*. 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... | |
Enables one to compute normal forces in case of a linear visco-elastic interaction.
Definition at line 37 of file LinearViscoelasticInteraction.h.
An alias for LinearViscoelasticNormalSpecies.
Definition at line 43 of file LinearViscoelasticInteraction.h.
LinearViscoelasticInteraction::LinearViscoelasticInteraction | ( | BaseInteractable * | P, |
BaseInteractable * | I, | ||
Mdouble | timeStamp | ||
) |
Constructor.
[in] | P | |
[in] | I | |
[in] | timeStamp |
Definition at line 38 of file LinearViscoelasticInteraction.cc.
LinearViscoelasticInteraction::LinearViscoelasticInteraction | ( | const LinearViscoelasticInteraction & | p | ) |
Copy constructor.
[in] | p |
Definition at line 48 of file LinearViscoelasticInteraction.cc.
|
virtual |
Destructor.
Definition at line 56 of file LinearViscoelasticInteraction.cc.
void LinearViscoelasticInteraction::computeNormalForce | ( | ) |
Creates a copy of an object of this class. (Deep copy)
Computes the normal force caused due to normal collision between particles or particle-wall.
Definition at line 89 of file LinearViscoelasticInteraction.cc.
References Vec3D::dot(), BaseInteraction::getContactPoint(), LinearViscoelasticNormalSpecies::getDissipation(), BaseInteraction::getI(), BaseInteraction::getNormal(), BaseInteraction::getNormalRelativeVelocity(), BaseInteraction::getOverlap(), BaseInteraction::getP(), BaseInteraction::getRelativeVelocity(), getSpecies(), LinearViscoelasticNormalSpecies::getStiffness(), BaseInteraction::setAbsoluteNormalForce(), BaseInteraction::setForce(), BaseInteraction::setNormalRelativeVelocity(), BaseInteraction::setRelativeVelocity(), and BaseInteraction::setTorque().
std::string LinearViscoelasticInteraction::getBaseName | ( | ) | const |
Returns the type/name of interaction (linear visco-elastic interaction).
Definition at line 82 of file LinearViscoelasticInteraction.cc.
|
virtual |
Returns the amount of energy stored in the spring due to head on collision.
Reimplemented from BaseInteraction.
Definition at line 115 of file LinearViscoelasticInteraction.cc.
References BaseInteraction::getOverlap(), getSpecies(), LinearViscoelasticNormalSpecies::getStiffness(), and mathsFunc::square().
const LinearViscoelasticNormalSpecies * LinearViscoelasticInteraction::getSpecies | ( | ) | const |
Returns a const pointer of type LinearViscoelasticNormalSpecies*.
Definition at line 125 of file LinearViscoelasticInteraction.cc.
References BaseInteraction::getBaseSpecies().
Referenced by computeNormalForce(), and getElasticEnergy().
|
virtual |
Interaction read function, which accepts an std::istream as input.
Calls the BaseInteraction() read function.
[in,out] | is |
Reimplemented from BaseInteraction.
Definition at line 75 of file LinearViscoelasticInteraction.cc.
References BaseInteraction::read().
|
virtual |
Interaction write function, which accepts an std::ostream as input.
Calls the BaseInteraction() write function.
[in,out] | os |
Reimplemented from BaseInteraction.
Definition at line 67 of file LinearViscoelasticInteraction.cc.
References BaseInteraction::write().