LinearPlasticViscoelasticNormalSpecies.h
Go to the documentation of this file.
1 // This file is part of the MercuryDPM project (https://www.mercurydpm.org).
2 // Copyright (c), The MercuryDPM Developers Team. All rights reserved.
3 // License: BSD 3-Clause License; see the LICENSE file in the root directory.
4 
5 #ifndef LinearPlasticViscoelasticNormalSpecies_H
6 #define LinearPlasticViscoelasticNormalSpecies_H
7 
9 #include "Math/ExtendedMath.h"
12 #include "Math/Helpers.h"
13 
14 
20 {
21 public:
24 
27 
30 
33 
35  void read(std::istream& is);
36 
38  void write(std::ostream& os) const;
39 
41  std::string getBaseName() const;
42 
43 // Species-specific functions
44 
47 
52 
55 
57  void setRestitutionCoefficient(double eps, Mdouble mass);
58 
62  Mdouble getCollisionTime(Mdouble mass) const;
63 
66 
67 //setters and getters
68 
72  void setPlasticParameters(Mdouble loadingStiffness, Mdouble unloadingStiffnessMax, Mdouble cohesionStiffness,
73  Mdouble penetrationDepthMax);
74 
79 
84 
89 
94 
98  void setLoadingStiffness(Mdouble loadingStiffness);
99 
103  void setUnloadingStiffnessMax(Mdouble unloadingStiffnessMax);
104 
108  void setCohesionStiffness(Mdouble cohesionStiffness);
109 
113  void setPenetrationDepthMax(Mdouble penetrationDepthMax);
114 
118  void setDissipation(Mdouble dissipation);
119 
124 
129 
133  Mdouble getDissipation() const;
134 
146  Mdouble computeBondNumberMax(Mdouble harmonicMeanRadius, Mdouble gravitationalAcceleration) const;
147 
149 
150  void setDoConstantUnloadingStiffness(bool doConstantUnloadingStiffness) {doConstantUnloadingStiffness_ = doConstantUnloadingStiffness;}
151 
152 private:
155 
158 
161 
164 
167 
168  //whether unloading stiffness is variable (Luding) or constant (WaltonBraun)
170 };
171 
172 #endif
#define MERCURYDPM_DEPRECATED
Definition: GeneralDefine.h:16
float * p
Definition: Tutorial_Map_using.cpp:9
Definition: BaseNormalForce.h:11
Computes normal forces in case of a linear plastic visco-elastic interaction.
Definition: LinearPlasticViscoelasticInteraction.h:19
LinearPlasticViscoelasticNormalSpecies contains the parameters used to describe a plastic-cohesive no...
Definition: LinearPlasticViscoelasticNormalSpecies.h:20
Mdouble computeTimeStep(Mdouble mass)
Returns the optimal time step to resolve a collision of two particles of a given mass.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:197
Mdouble getLoadingStiffness() const
Returns the loading stiffness of the linear plastic-viscoelastic normal force.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:131
Mdouble loadingStiffness_
(normal) spring constant (k_1)
Definition: LinearPlasticViscoelasticNormalSpecies.h:154
Mdouble getRestitutionCoefficient(Mdouble mass) const
Calculates restitution coefficient for two copies of given disp, k, mass.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:310
LinearPlasticViscoelasticInteraction InteractionType
The correct Interaction type for this FrictionForceSpecies.
Definition: LinearPlasticViscoelasticNormalSpecies.h:23
Mdouble cohesionStiffness_
the adhesive spring constant (k^c) for plastic deformations
Definition: LinearPlasticViscoelasticNormalSpecies.h:160
void setStiffnessAndRestitutionCoefficient(Mdouble k_, Mdouble eps, Mdouble mass)
Sets k, disp such that it matches a given tc and eps for a collision of two copies of P.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:264
Mdouble getCohesionStiffness() const
Returns the cohesive stiffness of the linear plastic-viscoelastic normal force.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:147
void setUnloadingStiffnessMax(Mdouble unloadingStiffnessMax)
Sets the maximum unloading stiffness of the linear plastic-viscoelastic normal force.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:171
Mdouble getPenetrationDepthMax() const
Returns the maximum penetration depth of the linear plastic-viscoelastic normal force.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:155
~LinearPlasticViscoelasticNormalSpecies()
The default destructor.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:46
LinearPlasticViscoelasticNormalSpecies()
The default constructor.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:14
std::string getBaseName() const
Used in Species::getName to obtain a unique name for each Species.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:83
void write(std::ostream &os) const
Writes the species properties to an output stream.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:56
void setPlasticParameters(Mdouble loadingStiffness, Mdouble unloadingStiffnessMax, Mdouble cohesionStiffness, Mdouble penetrationDepthMax)
Sets all parameters of the linear plastic-viscoelastic normal force at once.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:112
void setCollisionTimeAndRestitutionCoefficient(Mdouble tc, Mdouble eps, Mdouble mass)
Definition: LinearPlasticViscoelasticNormalSpecies.cc:240
MERCURYDPM_DEPRECATED void setLoadingStiffnessAndDissipation(helpers::KAndDisp new_)
Allows the spring and dissipation constants to be changed simultaneously.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:217
void setLoadingStiffness(Mdouble loadingStiffness)
Sets the loading stiffness of the linear plastic-viscoelastic normal force.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:163
Mdouble unloadingStiffnessMax_
the maximum elastic constant (k_2^max) for plastic deformations
Definition: LinearPlasticViscoelasticNormalSpecies.h:157
void setCohesionStiffness(Mdouble cohesionStiffness)
Sets the cohesive stiffness of the linear plastic-viscoelastic normal force.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:179
void setDissipation(Mdouble dissipation)
Sets the linear dissipation coefficient of the linear plastic-viscoelastic normal force.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:208
void setPenetrationDepthMax(Mdouble penetrationDepthMax)
Sets the maximum penetration depth of the linear plastic-viscoelastic normal force.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:187
Mdouble getUnloadingStiffnessMax() const
Returns the maximum unloading stiffness of the linear plastic-viscoelastic normal force.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:139
Mdouble dissipation_
linear dissipation coefficient
Definition: LinearPlasticViscoelasticNormalSpecies.h:166
Mdouble computeBondNumberMax(Mdouble harmonicMeanRadius, Mdouble gravitationalAcceleration) const
1) Computes the maximum plastic overlap delta_p* = phi*r 2) Computes the overlap at which the maximum...
Definition: LinearPlasticViscoelasticNormalSpecies.cc:317
bool doConstantUnloadingStiffness_
Definition: LinearPlasticViscoelasticNormalSpecies.h:169
void mix(LinearPlasticViscoelasticNormalSpecies *S, LinearPlasticViscoelasticNormalSpecies *T)
creates default values for mixed species
Definition: LinearPlasticViscoelasticNormalSpecies.cc:93
bool getDoConstantUnloadingStiffness() const
Definition: LinearPlasticViscoelasticNormalSpecies.h:148
void read(std::istream &is)
Reads the species properties from an input stream.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:69
void setDoConstantUnloadingStiffness(bool doConstantUnloadingStiffness)
Definition: LinearPlasticViscoelasticNormalSpecies.h:150
Mdouble penetrationDepthMax_
the depth (relative to the normalized radius) at which k_2^max is used (phi_f)
Definition: LinearPlasticViscoelasticNormalSpecies.h:163
Mdouble getDissipation() const
Allows the normal dissipation to be accessed.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:226
Mdouble getCollisionTime(Mdouble mass) const
Calculates collision time for two copies of a particle of given disp, k, mass.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:295
void setRestitutionCoefficient(double eps, Mdouble mass)
Sets disp to obtain a restitution coefficient eps for a collision of two particles of mass m.
Definition: LinearPlasticViscoelasticNormalSpecies.cc:278
double eps
Definition: crbond_bessel.cc:24
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
@ S
Definition: quadtree.h:62
return type specifically for fuctions returning k and disp at once
Definition: FormulaHelpers.h:17