MercuryDPM
Alpha
|
HertzianSinterNormalSpecies contains the parameters used to describe a plastic-cohesive normal force (Stefan Ludings plastic-cohesive force model). More...
#include <HertzianSinterNormalSpecies.h>
Public Types | |
typedef HertzianSinterInteraction | InteractionType |
The correct Interaction type for this FrictionForceSpecies. More... | |
Public Member Functions | |
HertzianSinterNormalSpecies () | |
The default constructor. More... | |
HertzianSinterNormalSpecies (const HertzianSinterNormalSpecies &p) | |
The default copy constructor. More... | |
virtual | ~HertzianSinterNormalSpecies () |
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 |
Used in Species::getName to obtain a unique name for each Species. More... | |
void | mix (HertzianSinterNormalSpecies *const S, HertzianSinterNormalSpecies *const T) |
creates default values for mixed species More... | |
void | setPlasticParameters (Mdouble loadingModulus, Mdouble unloadingModulusMax, Mdouble cohesionModulus, Mdouble penetrationDepthMax) |
Sets all parameters of the linear plastic-viscoelastic normal force at once. More... | |
Mdouble | getLoadingModulus () const |
Returns the loading stiffness of the linear plastic-viscoelastic normal force. More... | |
Mdouble | getUnloadingModulusMax () const |
Returns the maximum unloading stiffness of the linear plastic-viscoelastic normal force. More... | |
Mdouble | getCohesionModulus () const |
Returns the cohesive stiffness of the linear plastic-viscoelastic normal force. More... | |
Mdouble | getPenetrationDepthMax () const |
Returns the maximum penetration depth of the linear plastic-viscoelastic normal force. More... | |
void | setLoadingModulus (Mdouble loadingModulus) |
Sets the loading stiffness of the linear plastic-viscoelastic normal force. More... | |
void | setUnloadingModulusMax (Mdouble unloadingModulusMax) |
Sets the maximum unloading stiffness of the linear plastic-viscoelastic normal force. More... | |
void | setCohesionModulus (Mdouble cohesionModulus) |
Sets the cohesive stiffness of the linear plastic-viscoelastic normal force. More... | |
void | setPenetrationDepthMax (Mdouble penetrationDepthMax) |
Sets the maximum penetration depth of the linear plastic-viscoelastic normal force. More... | |
void | setDissipation (Mdouble dissipation) |
Sets the linear dissipation coefficient of the linear plastic-viscoelastic normal force. More... | |
Mdouble | getDissipation () const |
Allows the normal dissipation to be accessed. More... | |
void | setSinterRate (Mdouble sinterRate) |
Sets the linear dissipation coefficient of the linear plastic-viscoelastic normal force. More... | |
Mdouble | getSinterRate () const |
Allows the normal dissipation to be accessed. More... | |
Mdouble | computeTimeStep (Mdouble mass) |
Returns the optimal time step to resolve a collision of two particles of a given mass. 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 bool | getUseAngularDOFs () const =0 |
Returns true if torques (i.e. angular degrees of freedom) have to be calculated. 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 | loadingModulus_ |
(normal) spring constant (k_1) More... | |
Mdouble | unloadingModulusMax_ |
the maximum elastic constant (k_2^max) for plastic deformations More... | |
Mdouble | cohesionModulus_ |
the adhesive spring constant (k^c) for plastic deformations More... | |
Mdouble | penetrationDepthMax_ |
the depth (relative to the normalized radius) at which k_2^max is used (phi_f) More... | |
Mdouble | dissipation_ |
linear dissipation coefficient More... | |
Mdouble | sinterRate_ |
HertzianSinterNormalSpecies contains the parameters used to describe a plastic-cohesive normal force (Stefan Ludings plastic-cohesive force model).
See SinterNormalInteraction::computeForce for a description of the force law.
Definition at line 36 of file HertzianSinterNormalSpecies.h.
The correct Interaction type for this FrictionForceSpecies.
Definition at line 40 of file HertzianSinterNormalSpecies.h.
HertzianSinterNormalSpecies::HertzianSinterNormalSpecies | ( | ) |
The default constructor.
Definition at line 35 of file HertzianSinterNormalSpecies.cc.
References cohesionModulus_, dissipation_, loadingModulus_, penetrationDepthMax_, sinterRate_, and unloadingModulusMax_.
HertzianSinterNormalSpecies::HertzianSinterNormalSpecies | ( | const HertzianSinterNormalSpecies & | p | ) |
The default copy constructor.
[in] | the | species that is copied |
Definition at line 51 of file HertzianSinterNormalSpecies.cc.
References cohesionModulus_, dissipation_, loadingModulus_, penetrationDepthMax_, sinterRate_, and unloadingModulusMax_.
|
virtual |
The default destructor.
Definition at line 64 of file HertzianSinterNormalSpecies.cc.
Returns the optimal time step to resolve a collision of two particles of a given mass.
Calculates collision time for stiffest spring constant, divides by 50
[in] | the | optimal time step is computed to resolve a collision of two particles of this mass. |
Definition at line 208 of file HertzianSinterNormalSpecies.cc.
References assert, ParticleSpecies::getDensity(), getPenetrationDepthMax(), getUnloadingModulusMax(), and constants::pi.
std::string HertzianSinterNormalSpecies::getBaseName | ( | ) | const |
Used in Species::getName to obtain a unique name for each Species.
Definition at line 101 of file HertzianSinterNormalSpecies.cc.
Mdouble HertzianSinterNormalSpecies::getCohesionModulus | ( | ) | const |
Returns the cohesive stiffness of the linear plastic-viscoelastic normal force.
Definition at line 159 of file HertzianSinterNormalSpecies.cc.
References cohesionModulus_.
Referenced by HertzianSinterInteraction::computeSinterForce(), and mix().
Mdouble HertzianSinterNormalSpecies::getDissipation | ( | ) | const |
Allows the normal dissipation to be accessed.
Definition at line 258 of file HertzianSinterNormalSpecies.cc.
References dissipation_.
Referenced by HertzianSinterInteraction::computeSinterForce(), and mix().
Mdouble HertzianSinterNormalSpecies::getLoadingModulus | ( | ) | const |
Returns the loading stiffness of the linear plastic-viscoelastic normal force.
Definition at line 143 of file HertzianSinterNormalSpecies.cc.
References loadingModulus_.
Referenced by HertzianSinterInteraction::computeSinterForce(), HertzianSinterInteraction::getElasticEnergy(), HertzianSinterInteraction::getUnloadingModulus(), and mix().
Mdouble HertzianSinterNormalSpecies::getPenetrationDepthMax | ( | ) | const |
Returns the maximum penetration depth of the linear plastic-viscoelastic normal force.
Definition at line 167 of file HertzianSinterNormalSpecies.cc.
References penetrationDepthMax_.
Referenced by HertzianSinterInteraction::computeSinterForce(), computeTimeStep(), HertzianSinterInteraction::getUnloadingModulus(), and mix().
Mdouble HertzianSinterNormalSpecies::getSinterRate | ( | ) | const |
Allows the normal dissipation to be accessed.
Definition at line 266 of file HertzianSinterNormalSpecies.cc.
References sinterRate_.
Referenced by HertzianSinterInteraction::computeSinterForce(), and mix().
Mdouble HertzianSinterNormalSpecies::getUnloadingModulusMax | ( | ) | const |
Returns the maximum unloading stiffness of the linear plastic-viscoelastic normal force.
Definition at line 151 of file HertzianSinterNormalSpecies.cc.
References unloadingModulusMax_.
Referenced by HertzianSinterInteraction::computeSinterForce(), computeTimeStep(), HertzianSinterInteraction::getUnloadingModulus(), and mix().
void HertzianSinterNormalSpecies::mix | ( | HertzianSinterNormalSpecies *const | S, |
HertzianSinterNormalSpecies *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 111 of file HertzianSinterNormalSpecies.cc.
References BaseSpecies::average(), cohesionModulus_, dissipation_, getCohesionModulus(), getDissipation(), getLoadingModulus(), getPenetrationDepthMax(), getSinterRate(), getUnloadingModulusMax(), loadingModulus_, penetrationDepthMax_, sinterRate_, and unloadingModulusMax_.
|
virtual |
Reads the species properties from an input stream.
[in] | input | stream (typically the restart file) |
Implements BaseObject.
Definition at line 87 of file HertzianSinterNormalSpecies.cc.
References cohesionModulus_, dissipation_, loadingModulus_, penetrationDepthMax_, sinterRate_, and unloadingModulusMax_.
void HertzianSinterNormalSpecies::setCohesionModulus | ( | Mdouble | cohesionModulus | ) |
Sets the cohesive stiffness of the linear plastic-viscoelastic normal force.
[in] | cohesionModulus | the cohesive stiffness of the linear plastic-viscoelastic normal force. |
Definition at line 191 of file HertzianSinterNormalSpecies.cc.
References cohesionModulus_.
Referenced by setPlasticParameters().
void HertzianSinterNormalSpecies::setDissipation | ( | Mdouble | dissipation | ) |
Sets the linear dissipation coefficient of the linear plastic-viscoelastic normal force.
should be non-negative
[in] | the | linear dissipation coefficient of the linear plastic-viscoelastic normal force. |
Definition at line 225 of file HertzianSinterNormalSpecies.cc.
References dissipation_.
void HertzianSinterNormalSpecies::setLoadingModulus | ( | Mdouble | loadingModulus | ) |
Sets the loading stiffness of the linear plastic-viscoelastic normal force.
[in] | loadingModulus | the loading stiffness of the linear plastic-viscoelastic normal force. |
Definition at line 175 of file HertzianSinterNormalSpecies.cc.
References loadingModulus_.
Referenced by setPlasticParameters().
void HertzianSinterNormalSpecies::setPenetrationDepthMax | ( | Mdouble | penetrationDepthMax | ) |
Sets the maximum penetration depth of the linear plastic-viscoelastic normal force.
[in] | penetrationDepthMax | the maximum penetration depth of the linear plastic-viscoelastic normal force. |
Definition at line 199 of file HertzianSinterNormalSpecies.cc.
References penetrationDepthMax_.
Referenced by setPlasticParameters().
void HertzianSinterNormalSpecies::setPlasticParameters | ( | Mdouble | loadingModulus, |
Mdouble | unloadingModulusMax, | ||
Mdouble | cohesionModulus, | ||
Mdouble | penetrationDepthMax | ||
) |
Sets all parameters of the linear plastic-viscoelastic normal force at once.
[in] | loadingModulus | the loading stiffness of the linear plastic-viscoelastic normal force. |
[in] | unloadingModulusMax | the maximum unloading stiffness of the linear plastic-viscoelastic normal force. |
[in] | cohesionModulus | the cohesive stiffness of the linear plastic-viscoelastic normal force. |
[in] | penetrationDepthMax | the maximum penetration depth of the linear plastic-viscoelastic normal force. |
Definition at line 127 of file HertzianSinterNormalSpecies.cc.
References setCohesionModulus(), setLoadingModulus(), setPenetrationDepthMax(), and setUnloadingModulusMax().
void HertzianSinterNormalSpecies::setSinterRate | ( | Mdouble | sinterRate | ) |
Sets the linear dissipation coefficient of the linear plastic-viscoelastic normal force.
should be non-negative
[in] | the | linear dissipation coefficient of the linear plastic-viscoelastic normal force. |
Definition at line 242 of file HertzianSinterNormalSpecies.cc.
References sinterRate_.
void HertzianSinterNormalSpecies::setUnloadingModulusMax | ( | Mdouble | unloadingModulusMax | ) |
Sets the maximum unloading stiffness of the linear plastic-viscoelastic normal force.
[in] | unloadingModulusMax | the maximum unloading stiffness of the linear plastic-viscoelastic normal force. |
Definition at line 183 of file HertzianSinterNormalSpecies.cc.
References unloadingModulusMax_.
Referenced by setPlasticParameters().
|
virtual |
Writes the species properties to an output stream.
[out] | output | stream (typically the restart file) |
Implements BaseObject.
Definition at line 74 of file HertzianSinterNormalSpecies.cc.
References cohesionModulus_, dissipation_, loadingModulus_, penetrationDepthMax_, sinterRate_, and unloadingModulusMax_.
|
private |
the adhesive spring constant (k^c) for plastic deformations
Definition at line 147 of file HertzianSinterNormalSpecies.h.
Referenced by getCohesionModulus(), HertzianSinterNormalSpecies(), mix(), read(), setCohesionModulus(), and write().
|
private |
linear dissipation coefficient
Definition at line 153 of file HertzianSinterNormalSpecies.h.
Referenced by getDissipation(), HertzianSinterNormalSpecies(), mix(), read(), setDissipation(), and write().
|
private |
(normal) spring constant (k_1)
Definition at line 141 of file HertzianSinterNormalSpecies.h.
Referenced by getLoadingModulus(), HertzianSinterNormalSpecies(), mix(), read(), setLoadingModulus(), and write().
|
private |
the depth (relative to the normalized radius) at which k_2^max is used (phi_f)
Definition at line 150 of file HertzianSinterNormalSpecies.h.
Referenced by getPenetrationDepthMax(), HertzianSinterNormalSpecies(), mix(), read(), setPenetrationDepthMax(), and write().
|
private |
Definition at line 155 of file HertzianSinterNormalSpecies.h.
Referenced by getSinterRate(), HertzianSinterNormalSpecies(), mix(), read(), setSinterRate(), and write().
|
private |
the maximum elastic constant (k_2^max) for plastic deformations
Definition at line 144 of file HertzianSinterNormalSpecies.h.
Referenced by getUnloadingModulusMax(), HertzianSinterNormalSpecies(), mix(), read(), setUnloadingModulusMax(), and write().