|
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... | |
~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... | |
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... | |
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 | 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_ |
tangential spring constant More... | |
MindlinSpecies contains the parameters used to describe sliding friction.
See MindlinInteraction::computeForce for a description of the force law.
The correct Interaction type for this FrictionForceSpecies.
MindlinSpecies::MindlinSpecies | ( | ) |
The default constructor.
References shearModulus_, slidingDissipation_, slidingFrictionCoefficient_, and slidingFrictionCoefficientStatic_.
MindlinSpecies::MindlinSpecies | ( | const MindlinSpecies & | s | ) |
The default copy constructor.
[in] | s | the species that is copied |
References shearModulus_, slidingDissipation_, slidingFrictionCoefficient_, and slidingFrictionCoefficientStatic_.
MindlinSpecies::~MindlinSpecies | ( | ) |
|
virtual |
Used in Species::getName to obtain a unique name for each Species.
Reimplemented in MindlinRollingTorsionSpecies.
Mdouble MindlinSpecies::getEffectiveShearModulus | ( | ) | const |
Allows the shear modulus to be accessed.
References shearModulus_.
Referenced by MindlinInteraction::computeFrictionForce(), mix(), and setPoissonRatio().
Mdouble MindlinSpecies::getSlidingDissipation | ( | ) | const |
Allows the tangential viscosity to be accessed.
References slidingDissipation_.
Referenced by MindlinInteraction::computeFrictionForce(), and mix().
Mdouble MindlinSpecies::getSlidingFrictionCoefficient | ( | ) | const |
Allows the (dynamic) Coulomb friction coefficient to be accessed.
References slidingFrictionCoefficient_.
Referenced by MindlinInteraction::computeFrictionForce(), and mix().
Mdouble MindlinSpecies::getSlidingFrictionCoefficientStatic | ( | ) | const |
Allows the static Coulomb friction coefficient to be accessed.
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 BaseFrictionForce.
void MindlinSpecies::mix | ( | MindlinSpecies * | S, |
MindlinSpecies * | 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] | 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 |
References BaseSpecies::average(), getEffectiveShearModulus(), getSlidingDissipation(), getSlidingFrictionCoefficient(), getSlidingFrictionCoefficientStatic(), shearModulus_, slidingDissipation_, slidingFrictionCoefficient_, and slidingFrictionCoefficientStatic_.
void MindlinSpecies::read | ( | std::istream & | is | ) |
Reads the species properties from an input stream.
[in] | is | input stream (typically the restart file) |
References shearModulus_, slidingDissipation_, slidingFrictionCoefficient_, and slidingFrictionCoefficientStatic_.
Referenced by MindlinRollingTorsionSpecies::read().
void MindlinSpecies::setEffectiveShearModulus | ( | Mdouble | shearModulus | ) |
allows the shear modulus to be changed
Allows the shear modulus to be changed.
References logger, and shearModulus_.
void MindlinSpecies::setPoissonRatio | ( | Mdouble | poissonRatio | ) |
Allows the poisson ratio to be changed.
References BaseForce::getBaseSpecies(), getEffectiveShearModulus(), INFO, logger, and shearModulus_.
void MindlinSpecies::setSlidingDissipation | ( | Mdouble | new_dispt | ) |
Allows the tangential viscosity to be changed.
References ERROR, logger, and slidingDissipation_.
void MindlinSpecies::setSlidingFrictionCoefficient | ( | Mdouble | new_mu | ) |
Allows the (dynamic) Coulomb friction coefficient to be changed; also sets mu_s by default.
References ERROR, logger, slidingFrictionCoefficient_, and slidingFrictionCoefficientStatic_.
void MindlinSpecies::setSlidingFrictionCoefficientStatic | ( | Mdouble | new_mu | ) |
Allows the static Coulomb friction coefficient to be changed.
References ERROR, logger, and slidingFrictionCoefficientStatic_.
void MindlinSpecies::write | ( | std::ostream & | os | ) | const |
Writes the species properties to an output stream.
[out] | os | output stream (typically the restart file) |
References shearModulus_, slidingDissipation_, slidingFrictionCoefficient_, and slidingFrictionCoefficientStatic_.
Referenced by MindlinRollingTorsionSpecies::write().
|
private |
tangential spring constant
Referenced by getEffectiveShearModulus(), MindlinSpecies(), mix(), read(), setEffectiveShearModulus(), setPoissonRatio(), 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 \(4*dispt*dt<mass, dispt \approx disp\), otherwise the restitution is zero and the particles stick.
Referenced by getSlidingDissipation(), MindlinSpecies(), mix(), read(), setSlidingDissipation(), and write().
|
private |
(dynamic) Coulomb friction coefficient
Referenced by getSlidingFrictionCoefficient(), MindlinSpecies(), mix(), read(), setSlidingFrictionCoefficient(), and write().
|
private |
static Coulomb friction coefficient (by default set equal to mu)
Referenced by getSlidingFrictionCoefficientStatic(), MindlinSpecies(), mix(), read(), setSlidingFrictionCoefficient(), setSlidingFrictionCoefficientStatic(), and write().