HertzianSinterNormalSpecies.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 HertzianSinterNormalSpecies_H
6 #define HertzianSinterNormalSpecies_H
7 
9 #include "Math/ExtendedMath.h"
11 
17 {
18 public:
21 
24 
27 
30 
32  void read(std::istream& is);
33 
35  void write(std::ostream& os) const;
36 
38  std::string getBaseName() const;
39 
40 // Species-specific functions
41 
44 
45 
46 //setters and getters
47 
51  void setPlasticParameters(Mdouble loadingModulus, Mdouble unloadingModulusMax, Mdouble cohesionModulus,
52  Mdouble penetrationDepthMax);
53 
57  Mdouble getLoadingModulus() const;
58 
63 
68 
73 
77  void setLoadingModulus(Mdouble loadingModulus);
78 
82  void setUnloadingModulusMax(Mdouble unloadingModulusMax);
83 
87  void setCohesionModulus(Mdouble cohesionModulus);
88 
92  void setPenetrationDepthMax(Mdouble penetrationDepthMax);
93 
97  void setDissipation(Mdouble dissipation);
98 
102  Mdouble getDissipation() const;
103 
107  void setSinterRate(Mdouble sinterRate);
108 
112  Mdouble getSinterRate() const;
113 
118 
119 
120 private:
123 
126 
129 
132 
135 
137 };
138 
139 #endif
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: HertzianSinterInteraction.h:19
HertzianSinterNormalSpecies contains the parameters used to describe a plastic-cohesive normal force ...
Definition: HertzianSinterNormalSpecies.h:17
Mdouble unloadingModulusMax_
the maximum elastic constant (k_2^max) for plastic deformations
Definition: HertzianSinterNormalSpecies.h:125
void setDissipation(Mdouble dissipation)
Sets the linear dissipation coefficient of the linear plastic-viscoelastic normal force.
Definition: HertzianSinterNormalSpecies.cc:208
void setLoadingModulus(Mdouble loadingModulus)
Sets the loading stiffness of the linear plastic-viscoelastic normal force.
Definition: HertzianSinterNormalSpecies.cc:158
Mdouble getCohesionModulus() const
Returns the cohesive stiffness of the linear plastic-viscoelastic normal force.
Definition: HertzianSinterNormalSpecies.cc:142
Mdouble getDissipation() const
Allows the normal dissipation to be accessed.
Definition: HertzianSinterNormalSpecies.cc:239
Mdouble getUnloadingModulusMax() const
Returns the maximum unloading stiffness of the linear plastic-viscoelastic normal force.
Definition: HertzianSinterNormalSpecies.cc:134
void setUnloadingModulusMax(Mdouble unloadingModulusMax)
Sets the maximum unloading stiffness of the linear plastic-viscoelastic normal force.
Definition: HertzianSinterNormalSpecies.cc:166
~HertzianSinterNormalSpecies()
The default destructor.
Definition: HertzianSinterNormalSpecies.cc:46
void setPenetrationDepthMax(Mdouble penetrationDepthMax)
Sets the maximum penetration depth of the linear plastic-viscoelastic normal force.
Definition: HertzianSinterNormalSpecies.cc:182
Mdouble penetrationDepthMax_
the depth (relative to the normalized radius) at which k_2^max is used (phi_f)
Definition: HertzianSinterNormalSpecies.h:131
void setSinterRate(Mdouble sinterRate)
Sets the linear dissipation coefficient of the linear plastic-viscoelastic normal force.
Definition: HertzianSinterNormalSpecies.cc:224
Mdouble getPenetrationDepthMax() const
Returns the maximum penetration depth of the linear plastic-viscoelastic normal force.
Definition: HertzianSinterNormalSpecies.cc:150
HertzianSinterNormalSpecies()
The default constructor.
Definition: HertzianSinterNormalSpecies.cc:15
void read(std::istream &is)
Reads the species properties from an input stream.
Definition: HertzianSinterNormalSpecies.cc:69
std::string getBaseName() const
Used in Species::getName to obtain a unique name for each Species.
Definition: HertzianSinterNormalSpecies.cc:83
Mdouble dissipation_
linear dissipation coefficient
Definition: HertzianSinterNormalSpecies.h:134
Mdouble getSinterRate() const
Allows the normal dissipation to be accessed.
Definition: HertzianSinterNormalSpecies.cc:247
void write(std::ostream &os) const
Writes the species properties to an output stream.
Definition: HertzianSinterNormalSpecies.cc:56
void setCohesionModulus(Mdouble cohesionModulus)
Sets the cohesive stiffness of the linear plastic-viscoelastic normal force.
Definition: HertzianSinterNormalSpecies.cc:174
Mdouble computeTimeStep(Mdouble mass)
Returns the optimal time step to resolve a collision of two particles of a given mass.
Definition: HertzianSinterNormalSpecies.cc:191
Mdouble getLoadingModulus() const
Returns the loading stiffness of the linear plastic-viscoelastic normal force.
Definition: HertzianSinterNormalSpecies.cc:126
void mix(HertzianSinterNormalSpecies *S, HertzianSinterNormalSpecies *T)
creates default values for mixed species
Definition: HertzianSinterNormalSpecies.cc:93
HertzianSinterInteraction InteractionType
The correct Interaction type for this FrictionForceSpecies.
Definition: HertzianSinterNormalSpecies.h:20
void setPlasticParameters(Mdouble loadingModulus, Mdouble unloadingModulusMax, Mdouble cohesionModulus, Mdouble penetrationDepthMax)
Sets all parameters of the linear plastic-viscoelastic normal force at once.
Definition: HertzianSinterNormalSpecies.cc:109
Mdouble loadingModulus_
(normal) spring constant (k_1)
Definition: HertzianSinterNormalSpecies.h:122
Mdouble cohesionModulus_
the adhesive spring constant (k^c) for plastic deformations
Definition: HertzianSinterNormalSpecies.h:128
Mdouble sinterRate_
Definition: HertzianSinterNormalSpecies.h:136
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
@ S
Definition: quadtree.h:62