MercuryDPM
Alpha
|
MindlinSpecies contains the parameters used to describe sliding friction. More...
#include <MindlinSpecies.h>
Public Types | |
typedef MindlinInteraction | InteractionType |
The correct Interaction type for this FrictionForceSpecies. More... | |
Public Member Functions | |
MindlinSpecies () | |
The default constructor. More... | |
MindlinSpecies (const MindlinSpecies &s) | |
The default copy constructor. More... | |
virtual | ~MindlinSpecies () |
The default destructor. More... | |
void | read (std::istream &is) override |
Reads the species properties from an input stream. More... | |
void | write (std::ostream &os) const override |
Writes the species properties to an output stream. More... | |
virtual std::string | getBaseName () const |
Used in Species::getName to obtain a unique name for each Species. More... | |
void | setSlidingDissipation (Mdouble new_dispt) |
Allows the tangential viscosity to be changed. More... | |
Mdouble | getSlidingDissipation () const |
Allows the tangential viscosity to be accessed. More... | |
void | setSlidingFrictionCoefficient (Mdouble new_mu) |
Allows the (dynamic) Coulomb friction coefficient to be changed; also sets mu_s by default. More... | |
void | setShearModulus (Mdouble new_G) |
Mdouble | getShearModulus () const |
Mdouble | getSlidingFrictionCoefficient () const |
Allows the (dynamic) Coulomb friction coefficient to be accessed. More... | |
void | setSlidingFrictionCoefficientStatic (Mdouble new_mu) |
Allows the static Coulomb friction coefficient to be changed. More... | |
Mdouble | getSlidingFrictionCoefficientStatic () const |
Allows the static Coulomb friction coefficient to be accessed. More... | |
bool | getUseAngularDOFs () const override |
Returns true if torques have to be calculated. More... | |
void | mix (MindlinSpecies *const S, MindlinSpecies *const T) |
creates default values for mixed species More... | |
Public Member Functions inherited from BaseSpecies | |
BaseSpecies () | |
The default constructor. More... | |
BaseSpecies (const BaseSpecies &p) | |
The copy constructor. More... | |
virtual | ~BaseSpecies () |
The default destructor. More... | |
virtual BaseSpecies * | copy () const =0 |
Creates a deep copy of the object from which it is called. More... | |
void | setHandler (SpeciesHandler *handler) |
Sets the pointer to the handler to which this species belongs. More... | |
SpeciesHandler * | getHandler () const |
Returns the pointer to the handler to which this species belongs. More... | |
Mdouble | average (Mdouble a, Mdouble b) |
defines the average of two variables by the harmonic mean. More... | |
virtual void | mixAll (BaseSpecies *const S, BaseSpecies *const T)=0 |
creates default values for mixed species More... | |
virtual Mdouble | getInteractionDistance () const =0 |
returns the largest separation distance at which adhesive short-range forces can occur. More... | |
virtual BaseInteraction * | getNewInteraction (BaseInteractable *P, BaseInteractable *I, Mdouble timeStamp) const =0 |
returns new Interaction object. 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 std::string | getName () const =0 |
A purely virtual function. 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 | slidingDissipation_ |
tangential dissipation coefficient. More... | |
Mdouble | slidingFrictionCoefficient_ |
(dynamic) Coulomb friction coefficient More... | |
Mdouble | slidingFrictionCoefficientStatic_ |
static Coulomb friction coefficient (by default set equal to mu) More... | |
Mdouble | shearModulus_ |
MindlinSpecies contains the parameters used to describe sliding friction.
See MindlinInteraction::computeForce for a description of the force law.
Definition at line 36 of file MindlinSpecies.h.
The correct Interaction type for this FrictionForceSpecies.
Definition at line 40 of file MindlinSpecies.h.
MindlinSpecies::MindlinSpecies | ( | ) |
The default constructor.
Definition at line 35 of file MindlinSpecies.cc.
References shearModulus_, slidingDissipation_, slidingFrictionCoefficient_, and slidingFrictionCoefficientStatic_.
MindlinSpecies::MindlinSpecies | ( | const MindlinSpecies & | s | ) |
The default copy constructor.
[in] | s | the species that is copied |
Definition at line 52 of file MindlinSpecies.cc.
References shearModulus_, slidingDissipation_, slidingFrictionCoefficient_, and slidingFrictionCoefficientStatic_.
|
virtual |
The default destructor.
Definition at line 65 of file MindlinSpecies.cc.
|
virtual |
Used in Species::getName to obtain a unique name for each Species.
Reimplemented in MindlinRollingTorsionSpecies.
Definition at line 101 of file MindlinSpecies.cc.
Mdouble MindlinSpecies::getShearModulus | ( | ) | const |
Definition at line 177 of file MindlinSpecies.cc.
References shearModulus_.
Referenced by MindlinInteraction::computeFrictionForce().
Mdouble MindlinSpecies::getSlidingDissipation | ( | ) | const |
Allows the tangential viscosity to be accessed.
Definition at line 120 of file MindlinSpecies.cc.
References slidingDissipation_.
Referenced by MindlinInteraction::computeFrictionForce(), and mix().
Mdouble MindlinSpecies::getSlidingFrictionCoefficient | ( | ) | const |
Allows the (dynamic) Coulomb friction coefficient to be accessed.
Definition at line 142 of file MindlinSpecies.cc.
References slidingFrictionCoefficient_.
Referenced by MindlinInteraction::computeFrictionForce(), and mix().
Mdouble MindlinSpecies::getSlidingFrictionCoefficientStatic | ( | ) | const |
Allows the static Coulomb friction coefficient to be accessed.
Definition at line 182 of file MindlinSpecies.cc.
References slidingFrictionCoefficientStatic_.
Referenced by mix().
|
overridevirtual |
Returns true if torques have to be calculated.
Returns true for any FrictionForceSpecies except EmptyFrictionSpecies, because for spherical particles, torques are only caused by tangential forces. See SpeciesHandler::useAngularDOFs for more details
Implements BaseSpecies.
Definition at line 193 of file MindlinSpecies.cc.
void MindlinSpecies::mix | ( | MindlinSpecies *const | SFrictional, |
MindlinSpecies *const | TFrictional | ||
) |
creates default values for mixed species
For all parameters we assume that the harmonic mean of the parameters of the original two species is a sensible default.
[in] | SFrictional | the first species whose properties are mixed to create the new species |
[in] | TFrictional | the second species whose properties are mixed to create the new species |
Definition at line 205 of file MindlinSpecies.cc.
References BaseSpecies::average(), getSlidingDissipation(), getSlidingFrictionCoefficient(), getSlidingFrictionCoefficientStatic(), slidingDissipation_, slidingFrictionCoefficient_, and slidingFrictionCoefficientStatic_.
|
overridevirtual |
Reads the species properties from an input stream.
[in] | is | input stream (typically the restart file) |
Implements BaseObject.
Definition at line 88 of file MindlinSpecies.cc.
References shearModulus_, slidingDissipation_, slidingFrictionCoefficient_, and slidingFrictionCoefficientStatic_.
Referenced by MindlinRollingTorsionSpecies::read().
void MindlinSpecies::setShearModulus | ( | Mdouble | new_G | ) |
void MindlinSpecies::setSlidingDissipation | ( | Mdouble | new_dispt | ) |
Allows the tangential viscosity to be changed.
Definition at line 109 of file MindlinSpecies.cc.
References slidingDissipation_.
void MindlinSpecies::setSlidingFrictionCoefficient | ( | Mdouble | new_mu | ) |
Allows the (dynamic) Coulomb friction coefficient to be changed; also sets mu_s by default.
Definition at line 127 of file MindlinSpecies.cc.
References slidingFrictionCoefficient_, and slidingFrictionCoefficientStatic_.
void MindlinSpecies::setSlidingFrictionCoefficientStatic | ( | Mdouble | new_mu | ) |
Allows the static Coulomb friction coefficient to be changed.
Allows the static Coulomb friction coefficient to be changed; also sets mu_s by default.
Definition at line 148 of file MindlinSpecies.cc.
References slidingFrictionCoefficientStatic_.
|
overridevirtual |
Writes the species properties to an output stream.
[out] | os | output stream (typically the restart file) |
Implements BaseObject.
Definition at line 76 of file MindlinSpecies.cc.
References shearModulus_, slidingDissipation_, slidingFrictionCoefficient_, and slidingFrictionCoefficientStatic_.
Referenced by MindlinRollingTorsionSpecies::write().
|
private |
Definition at line 117 of file MindlinSpecies.h.
Referenced by getShearModulus(), MindlinSpecies(), read(), setShearModulus(), and write().
|
private |
tangential dissipation coefficient.
Typically set to 2/7 of the normal force dissipation, as both the tangential and the normal spring have the same restitution coefficients (if the tangential and normal stiffnesses also have a ratio of 2/7). should always satisfy , otherwise the restitution is zero and the particles stick.
Definition at line 107 of file MindlinSpecies.h.
Referenced by getSlidingDissipation(), MindlinSpecies(), mix(), read(), setSlidingDissipation(), and write().
|
private |
(dynamic) Coulomb friction coefficient
Definition at line 110 of file MindlinSpecies.h.
Referenced by getSlidingFrictionCoefficient(), MindlinSpecies(), mix(), read(), setSlidingFrictionCoefficient(), and write().
|
private |
static Coulomb friction coefficient (by default set equal to mu)
Definition at line 113 of file MindlinSpecies.h.
Referenced by getSlidingFrictionCoefficientStatic(), MindlinSpecies(), mix(), read(), setSlidingFrictionCoefficient(), setSlidingFrictionCoefficientStatic(), and write().