SinterLinNormalSpecies.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 SinterLinNormalSpecies_H
6 #define SinterLinNormalSpecies_H
7 
8 #include "Species/BaseSpecies.h"
10 #include "Math/ExtendedMath.h"
12 
19 {
20  FRENKEL = 0,
22 };
23 
30 {
31 public:
34 
37 
40 
43 
45  void read(std::istream& is);
46 
48  void write(std::ostream& os) const;
49 
51  std::string getBaseName() const;
52 
53 // Species-specific functions
54 
57 
62 
65 
67  void setRestitutionCoefficient(double eps, Mdouble mass);
68 
72  Mdouble getCollisionTime(Mdouble mass) const;
73 
76 
77 //setters and getters
78 
82  void setPlasticParameters(Mdouble loadingStiffness, Mdouble unloadingStiffnessMax, Mdouble cohesionStiffness,
83  Mdouble penetrationDepthMax);
84 
89 
94 
99 
104 
108  void setLoadingStiffness(Mdouble loadingStiffness);
109 
113  void setUnloadingStiffnessMax(Mdouble unloadingStiffnessMax);
114 
118  void setCohesionStiffness(Mdouble cohesionStiffness);
119 
123  void setPenetrationDepthMax(Mdouble penetrationDepthMax);
124 
128  void setDissipation(Mdouble dissipation);
129 
135 
140 
144  Mdouble getDissipation() const;
145 
149  void setSinterAdhesion(Mdouble sinterAdhesion);
150 
154  Mdouble getSinterAdhesion() const;
155 
159  void setSinterRate(Mdouble sinterRate);
160 
164  Mdouble getSinterRate() const;
165 
170  void setComplianceZero(Mdouble complianceZero);
171 
176  Mdouble getComplianceZero() const;
177 
182  void setSurfTension(Mdouble complianceZero);
183 
188  Mdouble getSurfTension() const;
189 
194  void setFluidity(Mdouble complianceOne);
195 
200  Mdouble getFluidity() const;
201 
206  void setSeparationDis(Mdouble separationDis);
207 
212  Mdouble getSeparationDis() const;
213 
218  void setSinterType(SINTER_APPROACH sinterType);
219 
220  // Sinter declarations:
222 
223 
224 private:
227 
230 
233 
236 
239 
244 
249 
255 
260 
265 
270 
273 
274 };
275 
276 #endif
#define MERCURYDPM_DEPRECATED
Definition: GeneralDefine.h:16
SINTER_APPROACH
Definition: SinterLinNormalSpecies.h:19
float * p
Definition: Tutorial_Map_using.cpp:9
Definition: BaseNormalForce.h:11
Definition: SinterLinInteraction.h:20
SinterLinNormalSpecies contains the parameters used to describe a plastic-cohesive normal force (Stef...
Definition: SinterLinNormalSpecies.h:30
Mdouble getCollisionTime(Mdouble mass) const
Calculates collision time for two copies of a particle of given disp, k, mass.
Definition: SinterLinNormalSpecies.cc:434
void read(std::istream &is)
Reads the species properties from an input stream.
Definition: SinterLinNormalSpecies.cc:88
~SinterLinNormalSpecies()
The default destructor.
Definition: SinterLinNormalSpecies.cc:59
void setDissipation(Mdouble dissipation)
Sets the linear dissipation coefficient of the linear plastic-viscoelastic normal force.
Definition: SinterLinNormalSpecies.cc:238
Mdouble separationDis_
Definition: SinterLinNormalSpecies.h:269
Mdouble getUnloadingStiffnessMax() const
Returns the maximum unloading stiffness of the linear plastic-viscoelastic normal force.
Definition: SinterLinNormalSpecies.cc:169
Mdouble getSeparationDis() const
accesses the critical separation distance. This mimics inter-surface forces.
Definition: SinterLinNormalSpecies.cc:364
SINTER_APPROACH sinterType_
Type of sintering.
Definition: SinterLinNormalSpecies.h:272
Mdouble getCohesionStiffness() const
Returns the cohesive stiffness of the linear plastic-viscoelastic normal force.
Definition: SinterLinNormalSpecies.cc:177
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: SinterLinNormalSpecies.cc:406
void setSinterRate(Mdouble sinterRate)
Sets sinterRate_.
Definition: SinterLinNormalSpecies.cc:265
Mdouble cohesionStiffness_
the adhesive spring constant (k^c) for plastic deformations
Definition: SinterLinNormalSpecies.h:232
void setCohesionStiffness(Mdouble cohesionStiffness)
Sets the cohesive stiffness of the linear plastic-viscoelastic normal force.
Definition: SinterLinNormalSpecies.cc:209
Mdouble getPenetrationDepthMax() const
Returns the maximum penetration depth of the linear plastic-viscoelastic normal force.
Definition: SinterLinNormalSpecies.cc:185
void setSurfTension(Mdouble complianceZero)
sets the surface tension.
Definition: SinterLinNormalSpecies.cc:283
Mdouble complianceZero_
Definition: SinterLinNormalSpecies.h:254
Mdouble fluidity
Definition: SinterLinNormalSpecies.h:264
Mdouble sinterRate_
Definition: SinterLinNormalSpecies.h:248
Mdouble getSinterRate() const
Accesses sinterRate_.
Definition: SinterLinNormalSpecies.cc:344
Mdouble penetrationDepthMax_
the depth (relative to the normalized radius) at which k_2^max is used (phi_f)
Definition: SinterLinNormalSpecies.h:235
void setRestitutionCoefficient(double eps, Mdouble mass)
Sets disp to obtain a restitution coefficient eps for a collision of two particles of mass m.
Definition: SinterLinNormalSpecies.cc:421
SinterLinInteraction InteractionType
The correct Interaction type for this FrictionForceSpecies.
Definition: SinterLinNormalSpecies.h:33
void setPlasticParameters(Mdouble loadingStiffness, Mdouble unloadingStiffnessMax, Mdouble cohesionStiffness, Mdouble penetrationDepthMax)
Sets all parameters of the linear plastic-viscoelastic normal force at once.
Definition: SinterLinNormalSpecies.cc:143
void mix(SinterLinNormalSpecies *S, SinterLinNormalSpecies *T)
creates default values for mixed species
Definition: SinterLinNormalSpecies.cc:121
Mdouble getSinterAdhesion() const
Accesses sinterAdhesion_.
Definition: SinterLinNormalSpecies.cc:336
Mdouble getLoadingStiffness() const
Returns the loading stiffness of the linear plastic-viscoelastic normal force.
Definition: SinterLinNormalSpecies.cc:161
Mdouble computeTimeStep(Mdouble mass)
Returns the optimal time step to resolve a collision of two particles of a given mass.
Definition: SinterLinNormalSpecies.cc:227
void setFluidity(Mdouble complianceOne)
sets the fluidity (inverse of viscosity).
Definition: SinterLinNormalSpecies.cc:292
void setSinterType(SINTER_APPROACH sinterType)
sets the sintering approach selected.
Definition: SinterLinNormalSpecies.cc:310
Mdouble getComplianceZero() const
Accesses the instantaneous compliance (compliance zero)
Definition: SinterLinNormalSpecies.cc:349
Mdouble unloadingStiffnessMax_
the maximum elastic constant (k_2^max) for plastic deformations
Definition: SinterLinNormalSpecies.h:229
void setCollisionTimeAndRestitutionCoefficient(Mdouble tc, Mdouble eps, Mdouble mass)
Definition: SinterLinNormalSpecies.cc:384
SinterLinNormalSpecies()
The default constructor.
Definition: SinterLinNormalSpecies.cc:14
Mdouble sinterAdhesion_
Definition: SinterLinNormalSpecies.h:243
std::string getBaseName() const
Used in Species::getName to obtain a unique name for each Species.
Definition: SinterLinNormalSpecies.cc:111
Mdouble getSurfTension() const
accesses the surface tension.
Definition: SinterLinNormalSpecies.cc:354
void setUnloadingStiffnessMax(Mdouble unloadingStiffnessMax)
Sets the maximum unloading stiffness of the linear plastic-viscoelastic normal force.
Definition: SinterLinNormalSpecies.cc:201
void setLoadingStiffness(Mdouble loadingStiffness)
Sets the loading stiffness of the linear plastic-viscoelastic normal force.
Definition: SinterLinNormalSpecies.cc:193
void setPenetrationDepthMax(Mdouble penetrationDepthMax)
Sets the maximum penetration depth of the linear plastic-viscoelastic normal force.
Definition: SinterLinNormalSpecies.cc:217
Mdouble surfTension_
Definition: SinterLinNormalSpecies.h:259
MERCURYDPM_DEPRECATED void setLoadingStiffnessAndDissipation(helpers::KAndDisp new_)
Allows the spring and dissipation constants to be changed simultaneously.
Definition: SinterLinNormalSpecies.cc:249
Mdouble dissipation_
linear dissipation coefficient
Definition: SinterLinNormalSpecies.h:238
void setComplianceZero(Mdouble complianceZero)
sets the instantaneous compliance (compliance zero)
Definition: SinterLinNormalSpecies.cc:274
Mdouble getRestitutionCoefficient(Mdouble mass) const
Calculates restitution coefficient for two copies of given disp, k, mass.
Definition: SinterLinNormalSpecies.cc:468
SINTER_APPROACH getSinterType() const
Definition: SinterLinNormalSpecies.cc:370
Mdouble loadingStiffness_
(normal) spring constant (k_1)
Definition: SinterLinNormalSpecies.h:226
void setSeparationDis(Mdouble separationDis)
sets the critical separation distance. This mimics inter-surface forces.
Definition: SinterLinNormalSpecies.cc:301
Mdouble getFluidity() const
accesses the fluidity (inverse of viscosity).
Definition: SinterLinNormalSpecies.cc:359
Mdouble getDissipation() const
Allows the normal dissipation to be accessed.
Definition: SinterLinNormalSpecies.cc:328
void setSinterAdhesion(Mdouble sinterAdhesion)
Sets sinterAdhesion_.
Definition: SinterLinNormalSpecies.cc:255
void write(std::ostream &os) const
Writes the species properties to an output stream.
Definition: SinterLinNormalSpecies.cc:69
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