26 #ifndef MINDLININTERACTION_H
27 #define MINDLININTERACTION_H
79 void read(std::istream& is)
override;
84 void write(std::ostream& os)
const override;
Defines the basic properties that a interactable object can have.
Definition: BaseInteractable.h:55
Stores information about interactions between two interactable objects; often particles but could be ...
Definition: BaseInteraction.h:60
Definition: BaseParticle.h:54
Implementation of a 3D matrix.
Definition: Matrix.h:38
Computes the forces corresponding to sliding friction.
Definition: MindlinInteraction.h:43
void integrate(Mdouble timeStep) override
Increments the amount of compression in sliding spring.
Definition: MindlinInteraction.cc:349
Vec3D tangentialForceTurningPointULTemp_
Definition: MindlinInteraction.h:219
Vec3D tangentialDisplacementTurningPointLU_
Definition: MindlinInteraction.h:222
Mdouble tangentialForceDirection_
Definition: MindlinInteraction.h:208
Mdouble getElasticEnergy() const override
Returns the amount of elastic energy stored in sliding spring.
Definition: MindlinInteraction.cc:357
const MindlinSpecies * getSpecies() const
Returns a const pointer of type MindlinSpecies*.
Definition: MindlinInteraction.cc:398
Mdouble getTangentialOverlap() const override
Returns the amount of tangential overlap which is needed by BaseInteraction::writeToFstat().
Definition: MindlinInteraction.cc:368
Mdouble tangentialStiffnessZero_
Definition: MindlinInteraction.h:228
void setTangentialStiffnessZero(Mdouble newKt0)
Definition: MindlinInteraction.cc:187
void computeFrictionForce()
Computes the tangential force generated due to compression in the sliding spring. Does take into acco...
Definition: MindlinInteraction.cc:279
Vec3D tangentialForcePrevious_
Definition: MindlinInteraction.h:206
void write(std::ostream &os) const override
Interaction write function, which accepts an std::ostream as input.
Definition: MindlinInteraction.cc:166
void updateTangentialStiffnessZero(Mdouble rad, double shearMod)
Definition: MindlinInteraction.cc:212
Vec3D slidingSpring_
Stores the amount of sliding spring ( ) compression from the expression . Set in the member function ...
Definition: MindlinInteraction.h:191
void updateTangentialStiffnessUnloading(Mdouble fric, Vec3D direction)
Mdouble tangentialStiffness_
Definition: MindlinInteraction.h:232
Vec3D initialTangentialVelocity_
Definition: MindlinInteraction.h:257
Vec3D slidingSpringPrevious_
Definition: MindlinInteraction.h:194
Mdouble getTangentialStiffnessZero()
Definition: MindlinInteraction.cc:194
const Vec3D getTangentialForce() const override
Returns the sliding friction force vector.
Definition: MindlinInteraction.cc:380
std::string getBaseName() const
Returns the type/name of interaction (sliding friction interaction)
Definition: MindlinInteraction.cc:407
MindlinSpecies SpeciesType
An alias name for MindlinSpecies data type.
Definition: MindlinInteraction.h:48
Vec3D tangentialDisplacementTemp_
Definition: MindlinInteraction.h:243
Mdouble tangentialStiffnessZeroPrevious_
Definition: MindlinInteraction.h:230
void updateTangentialStiffnessReloading(Mdouble fric, Vec3D direction)
Mdouble getTangentialStiffness()
Definition: MindlinInteraction.cc:201
void updateTangentialStiffnessUnloadingTanDown(Mdouble fric, Vec3D direction)
void updateTangentialStiffnessInitial(Mdouble fric)
void rotateHistory(Matrix3D &rotationMatrix) override
When periodic particles are used, some interactions need certain history properties rotated (e....
Definition: MindlinInteraction.cc:422
Vec3D tangentialForce_
Computes the tangential force such that . Set and computed in computeFrictionForce().
Definition: MindlinInteraction.h:203
Vec3D tangentialForceTemp_
Definition: MindlinInteraction.h:242
~MindlinInteraction() override
Destructor.
Definition: MindlinInteraction.cc:156
bool priorLoadingFlag_
Definition: MindlinInteraction.h:236
MindlinInteraction()
Empty constructor.
Definition: MindlinInteraction.cc:145
void updateK_t(Mdouble fric, Vec3D direction, bool useTurningPoint, bool isLoading)
Definition: MindlinInteraction.cc:226
void updateTangentialStiffnessReloadingTanUp(Mdouble fric, Vec3D direction)
const Mdouble getTangentialForceDirection() const
Definition: MindlinInteraction.cc:390
void updateTangentialStiffnessInitial2(Mdouble fric, Vec3D direction)
Mdouble getAbsoluteNormalForcePrevious() const
Returns the absolute value of the norm (length) of the previous Normal force vector.
Definition: MindlinInteraction.cc:437
Vec3D tangentialForceTurningPointLUTemp_
Definition: MindlinInteraction.h:218
void reverseHistory() override
A useful feature if one wants to return to the initial state of the spring. However,...
Definition: MindlinInteraction.cc:415
Mdouble absoluteNormalForcePrevious_
Definition: MindlinInteraction.h:261
Vec3D tangentialForceTurningPointLU_
Definition: MindlinInteraction.h:214
Mdouble tangentialDisplacementSL_
Definition: MindlinInteraction.h:254
Vec3D tangentialDisplacementTemp2_
Definition: MindlinInteraction.h:249
Vec3D tangentialForceTurningPointUL_
Definition: MindlinInteraction.h:215
Vec3D slidingSpringVelocity_
Stores the rate at which the sliding spring compressed or relaxed. Set in the member function compute...
Definition: MindlinInteraction.h:199
void setAbsoluteNormalForcePrevious(Mdouble absoluteNormalForcePrevious)
allows the previous normal force to be (re)set from external classes
Definition: MindlinInteraction.cc:448
Vec3D tangentialForceTemp2_
Definition: MindlinInteraction.h:248
void read(std::istream &is) override
Interaction read function, which accepts an std::istream as input.
Definition: MindlinInteraction.cc:175
Vec3D tangentialDisplacementTurningPointUL_
Definition: MindlinInteraction.h:221
MindlinSpecies contains the parameters used to describe sliding friction.
Definition: MindlinSpecies.h:38
double P
Uniform pressure.
Definition: TwenteMeshGluing.cpp:73