![]() |
|
HertzianSinterNormalSpecies contains the parameters used to describe a plastic-cohesive normal force (Stefan Ludings plastic-cohesive force model). More...
#include <HertzianSinterNormalSpecies.h>
Inheritance diagram for HertzianSinterNormalSpecies: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... | |
| ~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 *S, HertzianSinterNormalSpecies *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 BaseNormalForce | |
| BaseNormalForce () | |
| BaseNormalForce (const BaseNormalForce &p) | |
| bool | getConstantRestitution () const |
| void | setConstantRestitution (bool constantRestitution) |
| virtual void | actionsAfterTimeStep (BaseParticle *particle) const |
Public Member Functions inherited from BaseForce | |
| BaseSpecies * | getBaseSpecies () const |
| void | setBaseSpecies (BaseSpecies *baseSpecies) |
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.
The correct Interaction type for this FrictionForceSpecies.
| HertzianSinterNormalSpecies::HertzianSinterNormalSpecies | ( | ) |
The default constructor.
References cohesionModulus_, dissipation_, loadingModulus_, penetrationDepthMax_, sinterRate_, and unloadingModulusMax_.
| HertzianSinterNormalSpecies::HertzianSinterNormalSpecies | ( | const HertzianSinterNormalSpecies & | p | ) |
The default copy constructor.
| [in] | 'the | species that is copied' |
References cohesionModulus_, dissipation_, loadingModulus_, p, penetrationDepthMax_, sinterRate_, and unloadingModulusMax_.
| HertzianSinterNormalSpecies::~HertzianSinterNormalSpecies | ( | ) |
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] | mass | the optimal time step is computed to resolve a collision of two particles of this mass. |
References Eigen::numext::cbrt(), BaseForce::getBaseSpecies(), getPenetrationDepthMax(), getUnloadingModulusMax(), logger, p, constants::pi, UniformPSDSelfTest::radius, sqrt(), and WARN.
| std::string HertzianSinterNormalSpecies::getBaseName | ( | ) | const |
| Mdouble HertzianSinterNormalSpecies::getCohesionModulus | ( | ) | const |
Returns the cohesive stiffness of the linear plastic-viscoelastic normal force.
References cohesionModulus_.
Referenced by HertzianSinterInteraction::computeSinterForce().
| Mdouble HertzianSinterNormalSpecies::getDissipation | ( | ) | const |
Allows the normal dissipation to be accessed.
References dissipation_.
Referenced by HertzianSinterInteraction::computeSinterForce().
| Mdouble HertzianSinterNormalSpecies::getLoadingModulus | ( | ) | const |
Returns the loading stiffness of the linear plastic-viscoelastic normal force.
References loadingModulus_.
Referenced by HertzianSinterInteraction::computeSinterForce(), HertzianSinterInteraction::getElasticEnergy(), and HertzianSinterInteraction::getUnloadingModulus().
| Mdouble HertzianSinterNormalSpecies::getPenetrationDepthMax | ( | ) | const |
Returns the maximum penetration depth of the linear plastic-viscoelastic normal force.
References penetrationDepthMax_.
Referenced by HertzianSinterInteraction::computeSinterForce(), computeTimeStep(), and HertzianSinterInteraction::getUnloadingModulus().
| Mdouble HertzianSinterNormalSpecies::getSinterRate | ( | ) | const |
Allows the normal dissipation to be accessed.
References sinterRate_.
Referenced by HertzianSinterInteraction::computeSinterForce().
| Mdouble HertzianSinterNormalSpecies::getUnloadingModulusMax | ( | ) | const |
Returns the maximum unloading stiffness of the linear plastic-viscoelastic normal force.
References unloadingModulusMax_.
Referenced by HertzianSinterInteraction::computeSinterForce(), computeTimeStep(), and HertzianSinterInteraction::getUnloadingModulus().
| void HertzianSinterNormalSpecies::mix | ( | HertzianSinterNormalSpecies * | S, |
| HertzianSinterNormalSpecies * | 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(), cohesionModulus_, dissipation_, loadingModulus_, penetrationDepthMax_, oomph::QuadTreeNames::S, sinterRate_, and unloadingModulusMax_.
| void HertzianSinterNormalSpecies::read | ( | std::istream & | is | ) |
Reads the species properties from an input stream.
| [in] | input | stream (typically the restart file) |
References cohesionModulus_, dissipation_, loadingModulus_, penetrationDepthMax_, sinterRate_, oomph::Global_string_for_annotation::string(), 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. |
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] | dissipation | the linear dissipation coefficient of the linear plastic-viscoelastic normal force. |
References dissipation_, ERROR, and logger.
| 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. |
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. |
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. |
References ERROR, logger, 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. |
References ERROR, logger, and 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. |
References unloadingModulusMax_.
Referenced by setPlasticParameters().
| void HertzianSinterNormalSpecies::write | ( | std::ostream & | os | ) | const |
Writes the species properties to an output stream.
| [out] | output | stream (typically the restart file) |
References cohesionModulus_, dissipation_, loadingModulus_, penetrationDepthMax_, sinterRate_, and unloadingModulusMax_.
|
private |
the adhesive spring constant (k^c) for plastic deformations
Referenced by getCohesionModulus(), HertzianSinterNormalSpecies(), mix(), read(), setCohesionModulus(), and write().
|
private |
linear dissipation coefficient
Referenced by getDissipation(), HertzianSinterNormalSpecies(), mix(), read(), setDissipation(), and write().
|
private |
(normal) spring constant (k_1)
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)
Referenced by getPenetrationDepthMax(), HertzianSinterNormalSpecies(), mix(), read(), setPenetrationDepthMax(), and write().
|
private |
Referenced by getSinterRate(), HertzianSinterNormalSpecies(), mix(), read(), setSinterRate(), and write().
|
private |
the maximum elastic constant (k_2^max) for plastic deformations
Referenced by getUnloadingModulusMax(), HertzianSinterNormalSpecies(), mix(), read(), setUnloadingModulusMax(), and write().