MercuryDPM
Beta
|
Computes normal forces in case of a linear plastic visco-elastic interaction. More...
#include <LinearPlasticViscoelasticInteraction.h>
Public Member Functions | |
LinearPlasticViscoelasticInteraction (BaseInteractable *P, BaseInteractable *I, Mdouble timeStamp) | |
Constructor. More... | |
LinearPlasticViscoelasticInteraction (const LinearPlasticViscoelasticInteraction &p) | |
Copy constructor. More... | |
virtual | ~LinearPlasticViscoelasticInteraction () |
Destructor. More... | |
void | computeLinearPlasticViscoelasticForce () |
Creates a copy of an object of this class. (Deep copy) More... | |
void | computeNormalForce () |
Calls computeLinearPlasticViscoElasticForce(). More... | |
virtual void | read (std::istream &is) |
Interaction read function, which accepts an std::istream as input. More... | |
virtual void | write (std::ostream &os) const |
Interaction write function, which accepts an std::ostream as input. More... | |
virtual 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 LinearPlasticViscoelasticNormalSpecies * | getSpecies () const |
Mdouble | getMaxOverlap () const |
void | setMaxOverlap (const Mdouble maxOverlap) |
Mdouble | getUnloadingStiffness () const |
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... | |
Private Attributes | |
Mdouble | maxOverlap_ |
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 in case of a linear plastic visco-elastic interaction.
Definition at line 36 of file LinearPlasticViscoelasticInteraction.h.
LinearPlasticViscoelasticInteraction::LinearPlasticViscoelasticInteraction | ( | BaseInteractable * | P, |
BaseInteractable * | I, | ||
Mdouble | timeStamp | ||
) |
Constructor.
[in] | P | |
[in] | I | |
[in] | timeStamp |
Definition at line 39 of file LinearPlasticViscoelasticInteraction.cc.
References maxOverlap_.
LinearPlasticViscoelasticInteraction::LinearPlasticViscoelasticInteraction | ( | const LinearPlasticViscoelasticInteraction & | p | ) |
Copy constructor.
[in] | p |
Definition at line 50 of file LinearPlasticViscoelasticInteraction.cc.
References maxOverlap_.
|
virtual |
Destructor.
Definition at line 61 of file LinearPlasticViscoelasticInteraction.cc.
void LinearPlasticViscoelasticInteraction::computeLinearPlasticViscoelasticForce | ( | ) |
Creates a copy of an object of this class. (Deep copy)
Computes the normal forces due to linear plastic visco elastic interaction.
Definition at line 94 of file LinearPlasticViscoelasticInteraction.cc.
References Vec3D::dot(), LinearPlasticViscoelasticNormalSpecies::getCohesionStiffness(), BaseInteraction::getContactPoint(), LinearPlasticViscoelasticNormalSpecies::getDissipation(), BaseInteraction::getI(), LinearPlasticViscoelasticNormalSpecies::getLoadingStiffness(), BaseInteraction::getNormal(), BaseInteraction::getNormalRelativeVelocity(), BaseInteraction::getOverlap(), BaseInteraction::getP(), LinearPlasticViscoelasticNormalSpecies::getPenetrationDepthMax(), BaseParticle::getRadius(), BaseInteraction::getRelativeVelocity(), getSpecies(), LinearPlasticViscoelasticNormalSpecies::getUnloadingStiffnessMax(), maxOverlap_, BaseInteraction::setAbsoluteNormalForce(), BaseInteraction::setForce(), BaseInteraction::setNormalRelativeVelocity(), BaseInteraction::setRelativeVelocity(), and BaseInteraction::setTorque().
Referenced by computeNormalForce().
void LinearPlasticViscoelasticInteraction::computeNormalForce | ( | ) |
Calls computeLinearPlasticViscoElasticForce().
Definition at line 167 of file LinearPlasticViscoelasticInteraction.cc.
References computeLinearPlasticViscoelasticForce().
|
virtual |
Returns the name of the interaction.
Definition at line 87 of file LinearPlasticViscoelasticInteraction.cc.
|
virtual |
Computes and returns the amount of elastic energy stored in the spring.
Reimplemented from BaseInteraction.
Definition at line 174 of file LinearPlasticViscoelasticInteraction.cc.
References LinearPlasticViscoelasticNormalSpecies::getLoadingStiffness(), BaseInteraction::getOverlap(), getSpecies(), and mathsFunc::square().
Mdouble LinearPlasticViscoelasticInteraction::getMaxOverlap | ( | ) | const |
Definition at line 192 of file LinearPlasticViscoelasticInteraction.cc.
References maxOverlap_.
Referenced by getUnloadingStiffness().
const LinearPlasticViscoelasticNormalSpecies * LinearPlasticViscoelasticInteraction::getSpecies | ( | ) | const |
Definition at line 185 of file LinearPlasticViscoelasticInteraction.cc.
References BaseInteraction::getBaseSpecies().
Referenced by computeLinearPlasticViscoelasticForce(), getElasticEnergy(), and getUnloadingStiffness().
Mdouble LinearPlasticViscoelasticInteraction::getUnloadingStiffness | ( | ) | const |
Definition at line 206 of file LinearPlasticViscoelasticInteraction.cc.
References BaseInteraction::getEffectiveRadius(), LinearPlasticViscoelasticNormalSpecies::getLoadingStiffness(), getMaxOverlap(), BaseInteraction::getOverlap(), LinearPlasticViscoelasticNormalSpecies::getPenetrationDepthMax(), getSpecies(), and LinearPlasticViscoelasticNormalSpecies::getUnloadingStiffnessMax().
|
virtual |
Interaction read function, which accepts an std::istream as input.
Calls the read function of BaseInteraction().
[in,out] | is |
Reimplemented from BaseInteraction.
Definition at line 80 of file LinearPlasticViscoelasticInteraction.cc.
References BaseInteraction::read().
void LinearPlasticViscoelasticInteraction::setMaxOverlap | ( | const Mdouble | maxOverlap | ) |
[in] | maxOverlap |
Definition at line 199 of file LinearPlasticViscoelasticInteraction.cc.
References maxOverlap_.
|
virtual |
Interaction write function, which accepts an std::ostream as input.
Calls the write function of BaseInteraction().
[in,out] | os |
Reimplemented from BaseInteraction.
Definition at line 72 of file LinearPlasticViscoelasticInteraction.cc.
References BaseInteraction::write().
|
private |
Definition at line 99 of file LinearPlasticViscoelasticInteraction.h.
Referenced by computeLinearPlasticViscoelasticForce(), getMaxOverlap(), LinearPlasticViscoelasticInteraction(), and setMaxOverlap().