|
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... | |
~MindlinRollingTorsionSpecies () | |
The default destructor. More... | |
void | read (std::istream &is) |
Reads the species properties from an input stream. More... | |
void | write (std::ostream &os) const |
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 *S, MindlinRollingTorsionSpecies *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... | |
~MindlinSpecies () | |
The default destructor. More... | |
void | read (std::istream &is) |
Reads the species properties from an input stream. More... | |
void | write (std::ostream &os) const |
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... | |
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... | |
MERCURYDPM_DEPRECATED void | setPoissonRatio (Mdouble poissonRatio) |
Allows the poisson ratio to be changed. More... | |
void | setEffectiveShearModulus (Mdouble shearModulus) |
allows the shear modulus to be changed More... | |
Mdouble | getEffectiveShearModulus () const |
Allows the shear modulus to be accessed. More... | |
bool | getUseAngularDOFs () const override |
Returns true if torques have to be calculated. More... | |
void | mix (MindlinSpecies *S, MindlinSpecies *T) |
creates default values for mixed species More... | |
Public Member Functions inherited from BaseForce | |
BaseSpecies * | getBaseSpecies () const |
void | setBaseSpecies (BaseSpecies *baseSpecies) |
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.
The correct Interaction type for this FrictionForceSpecies.
MindlinRollingTorsionSpecies::MindlinRollingTorsionSpecies | ( | ) |
The default constructor.
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 |
References rollingDissipation_, rollingFrictionCoefficient_, rollingFrictionCoefficientStatic_, rollingStiffness_, torsionDissipation_, torsionFrictionCoefficient_, torsionFrictionCoefficientStatic_, and torsionStiffness_.
MindlinRollingTorsionSpecies::~MindlinRollingTorsionSpecies | ( | ) |
|
overridevirtual |
Used in Species::getName to obtain a unique name for each Species.
Reimplemented from MindlinSpecies.
Mdouble MindlinRollingTorsionSpecies::getRollingDissipation | ( | ) | const |
Allows the tangential viscosity to be accessed.
References rollingDissipation_.
Referenced by MindlinRollingTorsionInteraction::computeFrictionForce(), and mix().
Mdouble MindlinRollingTorsionSpecies::getRollingFrictionCoefficient | ( | ) | const |
Allows the (dynamic) Coulomb friction coefficient to be accessed.
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.
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.
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.
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.
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 BaseFrictionForce.
void MindlinRollingTorsionSpecies::mix | ( | MindlinRollingTorsionSpecies * | S, |
MindlinRollingTorsionSpecies * | 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 |
References BaseSpecies::average(), getRollingDissipation(), getRollingFrictionCoefficient(), getRollingFrictionCoefficientStatic(), getTorsionDissipation(), getTorsionFrictionCoefficient(), getTorsionFrictionCoefficientStatic(), rollingDissipation_, rollingFrictionCoefficient_, rollingFrictionCoefficientStatic_, torsionDissipation_, torsionFrictionCoefficient_, and torsionFrictionCoefficientStatic_.
void MindlinRollingTorsionSpecies::read | ( | std::istream & | is | ) |
Reads the species properties from an input stream.
[in] | is | input stream (typically the restart file) |
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
References ERROR, logger, and rollingDissipation_.
void MindlinRollingTorsionSpecies::setRollingFrictionCoefficient | ( | Mdouble | new_mu | ) |
Allows the (dynamic) Coulomb friction coefficient to be changed; also sets mu_s by default.
References ERROR, logger, 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.
References ERROR, logger, and rollingFrictionCoefficientStatic_.
void MindlinRollingTorsionSpecies::setTorsionDissipation | ( | Mdouble | new_dispt | ) |
Allows the torsion viscosity to be changed.
Allows the tangential viscosity to be changed.
References ERROR, logger, and 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.
References ERROR, logger, 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.
References ERROR, logger, and torsionFrictionCoefficientStatic_.
void MindlinRollingTorsionSpecies::write | ( | std::ostream & | os | ) | const |
Writes the species properties to an output stream.
[out] | os | output stream (typically the restart file) |
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).
Referenced by getRollingDissipation(), MindlinRollingTorsionSpecies(), mix(), read(), setRollingDissipation(), and write().
|
private |
(dynamic) Coulomb rolling friction coefficient.
Referenced by getRollingFrictionCoefficient(), MindlinRollingTorsionSpecies(), mix(), read(), setRollingFrictionCoefficient(), and write().
|
private |
static Coulomb rolling friction coefficient
(by default set equal to the dynamic one).
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.
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).
Referenced by getTorsionDissipation(), MindlinRollingTorsionSpecies(), mix(), read(), setTorsionDissipation(), and write().
|
private |
(dynamic) Coulomb torsion friction coefficient.
Referenced by getTorsionFrictionCoefficient(), MindlinRollingTorsionSpecies(), mix(), read(), setTorsionFrictionCoefficient(), and write().
|
private |
static Coulomb torsion friction coefficient
(by default set equal to the dynamic one).
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.
Referenced by MindlinRollingTorsionSpecies(), read(), and write().