26 #ifndef FrictionInteraction_H
27 #define FrictionInteraction_H
68 void read(std::istream& is);
72 void write(std::ostream& os)
const;
void read(std::istream &is)
Interaction read function, which accepts an std::istream as input.
void reverseHistory()
A useful feature if one wants to return to the initial state of the springs. However, reverse history decrements the current state to the state corresponding to previous time step. Decrements the state or value of rollingSpring_, torsionSpring_ and slidingSpring_.
const FrictionSpecies * getSpecies() const
Returns a const pointer of type FrictionSpecies*.
void integrate(Mdouble timeStep)
Computes the amount of compression in all the springs, i.e., increments the rollingSpring_, slidingSpring_ (see SlidingFrictionInteraction.cc) and torsionSpring_.
Vec3D getRollingSpring() const
FrictionSpecies contains the parameters used to describe sliding, rolling and torsional friction...
Mdouble getElasticEnergy() const
Returns the global amount of energy stored in all the springs (rolling, sliding and torsional)...
Computes the forces corresponding to sliding friction.
This class allows one to take all three types of frictional interactions into account. The sliding, rolling and torsional frictional interaction. See.
FrictionSpecies SpeciesType
An alias for FrictionSpecies.
std::string getBaseName() const
Returns interaction name/type.
virtual ~FrictionInteraction()
Destructor.
void computeFrictionForce()
Computes the forces arising due to all three types of friction, i.e., sliding, rolling and torsional...
void rotateHistory(Matrix3D &rotationMatrix)
When periodic particles are used, some interactions need certain history properties rotated (e...
FrictionInteraction(BaseInteractable *P, BaseInteractable *I, Mdouble timeStamp)
Constructor.
void write(std::ostream &os) const
Interaction print function, which accepts an std::ostream as input.
Vec3D rollingSpringVelocity_
Stores the rate at which the rolling spring compresses or relaxes. Set in computeFrictionForce(), used in computing the amount of compression in rolling spring. Used in integrate().
Defines the basic properties that a interactable object can have.
Implementation of a 3D matrix.
Implementation of a 3D vector (by Vitaliy).
Vec3D torsionSpring_
Stores the amount of torsional spring compression. Set in integrate(), used in computing frictional f...
Vec3D torsionSpringVelocity_
Stores the rate at which the torsional spring compresses or relaxes. Set in computeFrictionForce(), used in computing the amount of compression in torsion spring. Used in integrate().
Vec3D rollingSpring_
Stores the amount of rolling spring compression. Set in integrate(), used in computing frictional for...