MercuryDPM
Alpha
|
MindlinRollingTorsionSpecies contains the parameters used to describe sliding, rolling and torsional friction. More...
#include <MindlinRollingTorsionSpecies.h>
Public Types | |
typedef MindlinRollingTorsionInteraction | InteractionType |
The correct Interaction type for this FrictionForceSpecies. More... | |
Public Types inherited from MindlinSpecies | |
typedef MindlinInteraction | InteractionType |
The correct Interaction type for this FrictionForceSpecies. More... | |
Public Member Functions | |
MindlinRollingTorsionSpecies () | |
The default constructor. More... | |
MindlinRollingTorsionSpecies (const MindlinRollingTorsionSpecies &s) | |
The default copy constructor. More... | |
virtual | ~MindlinRollingTorsionSpecies () |
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... | |
std::string | getBaseName () const override |
Used in Species::getName to obtain a unique name for each Species. More... | |
bool | getUseAngularDOFs () const override |
Returns true if torques have to be calculated. More... | |
void | mix (MindlinRollingTorsionSpecies *const S, MindlinRollingTorsionSpecies *const T) |
creates default values for mixed species More... | |
void | setRollingDissipation (Mdouble new_dispt) |
Allows the spring constant to be changed. More... | |
Mdouble | getRollingDissipation () const |
Allows the tangential viscosity to be accessed. More... | |
void | setRollingFrictionCoefficient (Mdouble new_mu) |
Allows the (dynamic) Coulomb friction coefficient to be changed; also sets mu_s by default. More... | |
Mdouble | getRollingFrictionCoefficient () const |
Allows the (dynamic) Coulomb friction coefficient to be accessed. More... | |
void | setRollingFrictionCoefficientStatic (Mdouble new_mu) |
Allows the static Coulomb rolling friction coefficient to be changed. More... | |
Mdouble | getRollingFrictionCoefficientStatic () const |
Allows the static Coulomb rolling friction coefficient to be accessed. More... | |
void | setTorsionDissipation (Mdouble new_dispt) |
Allows the torsion viscosity to be changed. More... | |
Mdouble | getTorsionDissipation () const |
Allows the torsion viscosity to be accessed. More... | |
void | setTorsionFrictionCoefficient (Mdouble new_mu) |
Allows the (dynamic) Coulomb torsion friction coefficient to be changed; also sets mu_s by default. More... | |
Mdouble | getTorsionFrictionCoefficient () const |
Allows the (dynamic) Coulomb torsion friction coefficient to be accessed. More... | |
void | setTorsionFrictionCoefficientStatic (Mdouble new_mu) |
Allows the static Coulomb torsion friction coefficient to be accessed. More... | |
Mdouble | getTorsionFrictionCoefficientStatic () const |
Allows the static Coulomb torsion friction coefficient to be accessed. More... | |
Public Member Functions inherited from MindlinSpecies | |
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... | |
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 | rollingStiffness_ |
rolling stiffness. More... | |
Mdouble | rollingDissipation_ |
rolling dissipation coefficient. More... | |
Mdouble | rollingFrictionCoefficient_ |
(dynamic) Coulomb rolling friction coefficient. More... | |
Mdouble | rollingFrictionCoefficientStatic_ |
static Coulomb rolling friction coefficient (by default set equal to the dynamic one). More... | |
Mdouble | torsionStiffness_ |
rolling stiffness. More... | |
Mdouble | torsionDissipation_ |
rolling dissipation coefficient. More... | |
Mdouble | torsionFrictionCoefficient_ |
(dynamic) Coulomb torsion friction coefficient. More... | |
Mdouble | torsionFrictionCoefficientStatic_ |
static Coulomb torsion friction coefficient (by default set equal to the dynamic one). More... | |
MindlinRollingTorsionSpecies contains the parameters used to describe sliding, rolling and torsional friction.
See FrictionInteraction::computeForce for a description of the force law.
Definition at line 37 of file MindlinRollingTorsionSpecies.h.
The correct Interaction type for this FrictionForceSpecies.
Definition at line 41 of file MindlinRollingTorsionSpecies.h.
MindlinRollingTorsionSpecies::MindlinRollingTorsionSpecies | ( | ) |
The default constructor.
Definition at line 33 of file MindlinRollingTorsionSpecies.cc.
References rollingDissipation_, rollingFrictionCoefficient_, rollingFrictionCoefficientStatic_, rollingStiffness_, torsionDissipation_, torsionFrictionCoefficient_, torsionFrictionCoefficientStatic_, and torsionStiffness_.
MindlinRollingTorsionSpecies::MindlinRollingTorsionSpecies | ( | const MindlinRollingTorsionSpecies & | s | ) |
The default copy constructor.
[in] | s | the species that is copied |
Definition at line 52 of file MindlinRollingTorsionSpecies.cc.
References rollingDissipation_, rollingFrictionCoefficient_, rollingFrictionCoefficientStatic_, rollingStiffness_, torsionDissipation_, torsionFrictionCoefficient_, torsionFrictionCoefficientStatic_, and torsionStiffness_.
|
virtual |
The default destructor.
Definition at line 68 of file MindlinRollingTorsionSpecies.cc.
|
overridevirtual |
Used in Species::getName to obtain a unique name for each Species.
Reimplemented from MindlinSpecies.
Definition at line 111 of file MindlinRollingTorsionSpecies.cc.
Mdouble MindlinRollingTorsionSpecies::getRollingDissipation | ( | ) | const |
Allows the tangential viscosity to be accessed.
Definition at line 176 of file MindlinRollingTorsionSpecies.cc.
References rollingDissipation_.
Referenced by MindlinRollingTorsionInteraction::computeFrictionForce(), and mix().
Mdouble MindlinRollingTorsionSpecies::getRollingFrictionCoefficient | ( | ) | const |
Allows the (dynamic) Coulomb friction coefficient to be accessed.
Definition at line 198 of file MindlinRollingTorsionSpecies.cc.
References rollingFrictionCoefficient_.
Referenced by MindlinRollingTorsionInteraction::computeFrictionForce(), and mix().
Mdouble MindlinRollingTorsionSpecies::getRollingFrictionCoefficientStatic | ( | ) | const |
Allows the static Coulomb rolling friction coefficient to be accessed.
Allows the static Coulomb friction coefficient to be accessed.
Definition at line 218 of file MindlinRollingTorsionSpecies.cc.
References rollingFrictionCoefficientStatic_.
Referenced by MindlinRollingTorsionInteraction::computeFrictionForce(), and mix().
Mdouble MindlinRollingTorsionSpecies::getTorsionDissipation | ( | ) | const |
Allows the torsion viscosity to be accessed.
Allows the tangential viscosity to be accessed.
Definition at line 256 of file MindlinRollingTorsionSpecies.cc.
References torsionDissipation_.
Referenced by MindlinRollingTorsionInteraction::computeFrictionForce(), and mix().
Mdouble MindlinRollingTorsionSpecies::getTorsionFrictionCoefficient | ( | ) | const |
Allows the (dynamic) Coulomb torsion friction coefficient to be accessed.
Allows the (dynamic) Coulomb friction coefficient to be accessed.
Definition at line 278 of file MindlinRollingTorsionSpecies.cc.
References torsionFrictionCoefficient_.
Referenced by MindlinRollingTorsionInteraction::computeFrictionForce(), and mix().
Mdouble MindlinRollingTorsionSpecies::getTorsionFrictionCoefficientStatic | ( | ) | const |
Allows the static Coulomb torsion friction coefficient to be accessed.
Allows the static Coulomb friction coefficient to be accessed.
Definition at line 298 of file MindlinRollingTorsionSpecies.cc.
References torsionFrictionCoefficientStatic_.
Referenced by MindlinRollingTorsionInteraction::computeFrictionForce(), and mix().
|
overridevirtual |
Returns true if torques have to be calculated.
Returns true for any FrictionForceSpecies except EmptyMindlinRollingTorsionSpecies, because for spherical particles, torques are only caused by tangential forces. See SpeciesHandler::useAngularDOFs for more details
Implements BaseSpecies.
Definition at line 122 of file MindlinRollingTorsionSpecies.cc.
void MindlinRollingTorsionSpecies::mix | ( | MindlinRollingTorsionSpecies *const | S, |
MindlinRollingTorsionSpecies *const | T | ||
) |
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] | S,T | the two species whose properties are mixed to create the new species |
Definition at line 132 of file MindlinRollingTorsionSpecies.cc.
References BaseSpecies::average(), getRollingDissipation(), getRollingFrictionCoefficient(), getRollingFrictionCoefficientStatic(), getTorsionDissipation(), getTorsionFrictionCoefficient(), getTorsionFrictionCoefficientStatic(), rollingDissipation_, rollingFrictionCoefficient_, rollingFrictionCoefficientStatic_, torsionDissipation_, torsionFrictionCoefficient_, and torsionFrictionCoefficientStatic_.
|
overridevirtual |
Reads the species properties from an input stream.
[in] | is | input stream (typically the restart file) |
Implements BaseObject.
Definition at line 94 of file MindlinRollingTorsionSpecies.cc.
References MindlinSpecies::read(), rollingDissipation_, rollingFrictionCoefficient_, rollingFrictionCoefficientStatic_, rollingStiffness_, torsionDissipation_, torsionFrictionCoefficient_, torsionFrictionCoefficientStatic_, and torsionStiffness_.
void MindlinRollingTorsionSpecies::setRollingDissipation | ( | Mdouble | new_dispt | ) |
Allows the spring constant to be changed.
Allows the tangential viscosity to be changed.
Allows the spring constant to be accessed Allows the tangential viscosity to be changed
Definition at line 165 of file MindlinRollingTorsionSpecies.cc.
References rollingDissipation_.
void MindlinRollingTorsionSpecies::setRollingFrictionCoefficient | ( | Mdouble | new_mu | ) |
Allows the (dynamic) Coulomb friction coefficient to be changed; also sets mu_s by default.
Definition at line 183 of file MindlinRollingTorsionSpecies.cc.
References rollingFrictionCoefficient_, and rollingFrictionCoefficientStatic_.
void MindlinRollingTorsionSpecies::setRollingFrictionCoefficientStatic | ( | Mdouble | new_mu | ) |
Allows the static Coulomb rolling friction coefficient to be changed.
Allows the static Coulomb friction coefficient to be changed; also sets mu_s by default.
Definition at line 204 of file MindlinRollingTorsionSpecies.cc.
References rollingFrictionCoefficientStatic_.
void MindlinRollingTorsionSpecies::setTorsionDissipation | ( | Mdouble | new_dispt | ) |
Allows the torsion viscosity to be changed.
Allows the tangential viscosity to be changed.
Definition at line 245 of file MindlinRollingTorsionSpecies.cc.
References torsionDissipation_.
void MindlinRollingTorsionSpecies::setTorsionFrictionCoefficient | ( | Mdouble | new_mu | ) |
Allows the (dynamic) Coulomb torsion friction coefficient to be changed; also sets mu_s by default.
Allows the (dynamic) Coulomb friction coefficient to be changed; also sets mu_s by default.
Definition at line 263 of file MindlinRollingTorsionSpecies.cc.
References torsionFrictionCoefficient_, and torsionFrictionCoefficientStatic_.
void MindlinRollingTorsionSpecies::setTorsionFrictionCoefficientStatic | ( | Mdouble | new_mu | ) |
Allows the static Coulomb torsion friction coefficient to be accessed.
Allows the static Coulomb friction coefficient to be changed; also sets mu_s by default.
Definition at line 284 of file MindlinRollingTorsionSpecies.cc.
References torsionFrictionCoefficientStatic_.
|
overridevirtual |
Writes the species properties to an output stream.
[out] | os | output stream (typically the restart file) |
Implements BaseObject.
Definition at line 78 of file MindlinRollingTorsionSpecies.cc.
References rollingDissipation_, rollingFrictionCoefficient_, rollingFrictionCoefficientStatic_, rollingStiffness_, torsionDissipation_, torsionFrictionCoefficient_, torsionFrictionCoefficientStatic_, torsionStiffness_, and MindlinSpecies::write().
|
private |
rolling dissipation coefficient.
Typically set to 2/5 of the normal force dissipation, as both the tangential and the normal spring have the same restitution coefficients (if the rolling and normal stiffnesses also have a ratio of 2/5).
Definition at line 136 of file MindlinRollingTorsionSpecies.h.
Referenced by getRollingDissipation(), MindlinRollingTorsionSpecies(), mix(), read(), setRollingDissipation(), and write().
|
private |
(dynamic) Coulomb rolling friction coefficient.
Definition at line 142 of file MindlinRollingTorsionSpecies.h.
Referenced by getRollingFrictionCoefficient(), MindlinRollingTorsionSpecies(), mix(), read(), setRollingFrictionCoefficient(), and write().
|
private |
static Coulomb rolling friction coefficient (by default set equal to the dynamic one).
Definition at line 148 of file MindlinRollingTorsionSpecies.h.
Referenced by getRollingFrictionCoefficientStatic(), MindlinRollingTorsionSpecies(), mix(), read(), setRollingFrictionCoefficient(), setRollingFrictionCoefficientStatic(), and write().
|
private |
rolling stiffness.
Typically set to 2/5 of the stiffness of the normal force, as both the rolling and the normal spring have the same oscillation frequency (and thus require the same timeStep)in this case.
Definition at line 128 of file MindlinRollingTorsionSpecies.h.
Referenced by MindlinRollingTorsionSpecies(), read(), and write().
|
private |
rolling dissipation coefficient.
Typically set to 2/5 of the normal force dissipation, as both the tangential and the normal spring have the same restitution coefficients (if the rolling and normal stiffnesses also have a ratio of 2/5).
Definition at line 164 of file MindlinRollingTorsionSpecies.h.
Referenced by getTorsionDissipation(), MindlinRollingTorsionSpecies(), mix(), read(), setTorsionDissipation(), and write().
|
private |
(dynamic) Coulomb torsion friction coefficient.
Definition at line 169 of file MindlinRollingTorsionSpecies.h.
Referenced by getTorsionFrictionCoefficient(), MindlinRollingTorsionSpecies(), mix(), read(), setTorsionFrictionCoefficient(), and write().
|
private |
static Coulomb torsion friction coefficient (by default set equal to the dynamic one).
Definition at line 175 of file MindlinRollingTorsionSpecies.h.
Referenced by getTorsionFrictionCoefficientStatic(), MindlinRollingTorsionSpecies(), mix(), read(), setTorsionFrictionCoefficient(), setTorsionFrictionCoefficientStatic(), and write().
|
private |
rolling stiffness.
Typically set to 2/5 of the stiffness of the normal force, as both the rolling and the normal spring have the same oscillation frequency (and thus require the same timeStep)in this case.
Definition at line 156 of file MindlinRollingTorsionSpecies.h.
Referenced by MindlinRollingTorsionSpecies(), read(), and write().