MercuryDPM
Beta
|
SlidingFrictionSpecies contains the parameters used to describe sliding friction. More...
#include <SlidingFrictionSpecies.h>
Public Types | |
typedef SlidingFrictionInteraction | InteractionType |
The correct Interaction type for this FrictionForceSpecies. More... | |
Public Member Functions | |
SlidingFrictionSpecies () | |
The default constructor. More... | |
SlidingFrictionSpecies (const SlidingFrictionSpecies &s) | |
The default copy constructor. More... | |
virtual | ~SlidingFrictionSpecies () |
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 | setSlidingStiffness (Mdouble new_kt) |
Allows the spring constant to be changed. More... | |
Mdouble | getSlidingStiffness () const |
Allows the spring constant to be accessed. 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... | |
bool | getUseAngularDOFs () const |
Returns true if torques have to be calculated. More... | |
void | mix (SlidingFrictionSpecies *const S, SlidingFrictionSpecies *const T) |
creates default values for mixed species More... | |
void | setCollisionTimeAndNormalAndTangentialRestitutionCoefficient (Mdouble tc, Mdouble eps, Mdouble beta, Mdouble mass) |
Sets k, disp, kt, dispt such that it matches a given tc and eps for a collision of two particles of masses m0,m1. More... | |
void | setCollisionTimeAndNormalAndTangentialRestitutionCoefficientNoDispt (Mdouble tc, Mdouble eps, Mdouble beta, Mdouble mass) |
Sets k, disp, kt (with dispt=0) such that it matches a given tc and eps for a collision of two particles of mass m. 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)=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 | slidingStiffness_ |
tangential stiffness. More... | |
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... | |
SlidingFrictionSpecies contains the parameters used to describe sliding friction.
See SlidingFrictionInteraction::computeForce for a description of the force law.
Definition at line 36 of file SlidingFrictionSpecies.h.
The correct Interaction type for this FrictionForceSpecies.
Definition at line 40 of file SlidingFrictionSpecies.h.
SlidingFrictionSpecies::SlidingFrictionSpecies | ( | ) |
The default constructor.
Definition at line 35 of file SlidingFrictionSpecies.cc.
References slidingDissipation_, slidingFrictionCoefficient_, slidingFrictionCoefficientStatic_, and slidingStiffness_.
SlidingFrictionSpecies::SlidingFrictionSpecies | ( | const SlidingFrictionSpecies & | s | ) |
The default copy constructor.
[in] | s | the species that is copied |
Definition at line 49 of file SlidingFrictionSpecies.cc.
References slidingDissipation_, slidingFrictionCoefficient_, slidingFrictionCoefficientStatic_, and slidingStiffness_.
|
virtual |
The default destructor.
Definition at line 60 of file SlidingFrictionSpecies.cc.
|
virtual |
Used in Species::getName to obtain a unique name for each Species.
Reimplemented in FrictionSpecies.
Definition at line 95 of file SlidingFrictionSpecies.cc.
Mdouble SlidingFrictionSpecies::getSlidingDissipation | ( | ) | const |
Allows the tangential viscosity to be accessed.
Definition at line 132 of file SlidingFrictionSpecies.cc.
References slidingDissipation_.
Referenced by SlidingFrictionInteraction::computeFrictionForce(), and mix().
Mdouble SlidingFrictionSpecies::getSlidingFrictionCoefficient | ( | ) | const |
Allows the (dynamic) Coulomb friction coefficient to be accessed.
Definition at line 154 of file SlidingFrictionSpecies.cc.
References slidingFrictionCoefficient_.
Referenced by SlidingFrictionInteraction::computeFrictionForce(), and mix().
Mdouble SlidingFrictionSpecies::getSlidingFrictionCoefficientStatic | ( | ) | const |
Allows the static Coulomb friction coefficient to be accessed.
Definition at line 174 of file SlidingFrictionSpecies.cc.
References slidingFrictionCoefficientStatic_.
Referenced by SlidingFrictionInteraction::computeFrictionForce(), and mix().
Mdouble SlidingFrictionSpecies::getSlidingStiffness | ( | ) | const |
Allows the spring constant to be accessed.
Definition at line 115 of file SlidingFrictionSpecies.cc.
References slidingStiffness_.
Referenced by SlidingFrictionInteraction::computeFrictionForce(), SlidingFrictionInteraction::getElasticEnergy(), mix(), and setCollisionTimeAndNormalAndTangentialRestitutionCoefficient().
|
virtual |
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 185 of file SlidingFrictionSpecies.cc.
void SlidingFrictionSpecies::mix | ( | SlidingFrictionSpecies *const | SFrictional, |
SlidingFrictionSpecies *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 196 of file SlidingFrictionSpecies.cc.
References BaseSpecies::average(), getSlidingDissipation(), getSlidingFrictionCoefficient(), getSlidingFrictionCoefficientStatic(), getSlidingStiffness(), slidingDissipation_, slidingFrictionCoefficient_, slidingFrictionCoefficientStatic_, and slidingStiffness_.
|
virtual |
Reads the species properties from an input stream.
[in] | is | input stream (typically the restart file) |
Implements BaseObject.
Definition at line 82 of file SlidingFrictionSpecies.cc.
References slidingDissipation_, slidingFrictionCoefficient_, slidingFrictionCoefficientStatic_, and slidingStiffness_.
Referenced by FrictionSpecies::read().
void SlidingFrictionSpecies::setCollisionTimeAndNormalAndTangentialRestitutionCoefficient | ( | Mdouble | tc, |
Mdouble | eps, | ||
Mdouble | beta, | ||
Mdouble | mass | ||
) |
Sets k, disp, kt, dispt such that it matches a given tc and eps for a collision of two particles of masses m0,m1.
Definition at line 205 of file SlidingFrictionSpecies.cc.
References LinearPlasticViscoelasticNormalSpecies::getDissipation(), LinearPlasticViscoelasticNormalSpecies::getLoadingStiffness(), getSlidingStiffness(), LinearViscoelasticNormalSpecies::getStiffness(), constants::pi, LinearViscoelasticNormalSpecies::setCollisionTimeAndRestitutionCoefficient(), LinearPlasticViscoelasticNormalSpecies::setDissipation(), LinearPlasticViscoelasticNormalSpecies::setLoadingStiffness(), setSlidingDissipation(), setSlidingStiffness(), and mathsFunc::square().
void SlidingFrictionSpecies::setCollisionTimeAndNormalAndTangentialRestitutionCoefficientNoDispt | ( | Mdouble | tc, |
Mdouble | eps, | ||
Mdouble | beta, | ||
Mdouble | mass | ||
) |
Sets k, disp, kt (with dispt=0) such that it matches a given tc and eps for a collision of two particles of mass m.
Sets k, disp, kt, dispt such that it matches a given tc and eps for a collision of two particles of masses m0,m1.
Definition at line 240 of file SlidingFrictionSpecies.cc.
References LinearViscoelasticNormalSpecies::getStiffness(), constants::pi, LinearViscoelasticNormalSpecies::setCollisionTimeAndRestitutionCoefficient(), setSlidingDissipation(), setSlidingStiffness(), and mathsFunc::square().
void SlidingFrictionSpecies::setSlidingDissipation | ( | Mdouble | new_dispt | ) |
Allows the tangential viscosity to be changed.
Definition at line 121 of file SlidingFrictionSpecies.cc.
References slidingDissipation_.
Referenced by setCollisionTimeAndNormalAndTangentialRestitutionCoefficient(), and setCollisionTimeAndNormalAndTangentialRestitutionCoefficientNoDispt().
void SlidingFrictionSpecies::setSlidingFrictionCoefficient | ( | Mdouble | new_mu | ) |
Allows the (dynamic) Coulomb friction coefficient to be changed; also sets mu_s by default.
Definition at line 139 of file SlidingFrictionSpecies.cc.
References slidingFrictionCoefficient_, and slidingFrictionCoefficientStatic_.
Referenced by ChuteBottom::makeRoughBottom().
void SlidingFrictionSpecies::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 160 of file SlidingFrictionSpecies.cc.
References slidingFrictionCoefficientStatic_.
void SlidingFrictionSpecies::setSlidingStiffness | ( | Mdouble | new_kt | ) |
Allows the spring constant to be changed.
Definition at line 101 of file SlidingFrictionSpecies.cc.
References slidingStiffness_.
Referenced by setCollisionTimeAndNormalAndTangentialRestitutionCoefficient(), and setCollisionTimeAndNormalAndTangentialRestitutionCoefficientNoDispt().
|
virtual |
Writes the species properties to an output stream.
[out] | os | output stream (typically the restart file) |
Implements BaseObject.
Definition at line 70 of file SlidingFrictionSpecies.cc.
References slidingDissipation_, slidingFrictionCoefficient_, slidingFrictionCoefficientStatic_, and slidingStiffness_.
Referenced by FrictionSpecies::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.
Definition at line 117 of file SlidingFrictionSpecies.h.
Referenced by getSlidingDissipation(), mix(), read(), setSlidingDissipation(), SlidingFrictionSpecies(), and write().
|
private |
(dynamic) Coulomb friction coefficient
Definition at line 120 of file SlidingFrictionSpecies.h.
Referenced by getSlidingFrictionCoefficient(), mix(), read(), setSlidingFrictionCoefficient(), SlidingFrictionSpecies(), and write().
|
private |
static Coulomb friction coefficient (by default set equal to mu)
Definition at line 123 of file SlidingFrictionSpecies.h.
Referenced by getSlidingFrictionCoefficientStatic(), mix(), read(), setSlidingFrictionCoefficient(), setSlidingFrictionCoefficientStatic(), SlidingFrictionSpecies(), and write().
|
private |
tangential stiffness.
Typically set to 2/7 of the stiffness of the normal force, as both the tangential and the normal spring have the same oscillation frequency (and thus require the same timeStep)in this case.
Definition at line 107 of file SlidingFrictionSpecies.h.
Referenced by getSlidingStiffness(), mix(), read(), setSlidingStiffness(), SlidingFrictionSpecies(), and write().