MPM-Geomechanics
Material Point Method for simulating geo-materials under large deformation conditions
Loading...
Searching...
No Matches
MohrCoulomb.h
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
2// Copyright (c) 2021-2025 MPM-Geomechanics Development Team
3
4#ifndef INC_MATERIALS_MOHRCOULOMB_H_
5#define INC_MATERIALS_MOHRCOULOMB_H_
6
8
12public:
13
14 // softening struct
15 class Softening {
16
17 public :
18
20
21 // softening type
23
24 // exponential softening
26
27 // residual values
32
33 // parameters to be affected by the softening
38
45 inline double exponentialSoftening (double x, double eta, double y_i, double y_f) const {return y_f+(y_i-y_f)*std::exp(-eta*x);};
46
49
50 // softening type
52
53 // exponential softening
54 this->exponential_shape_factor = 0.0;
55
56 // residual values
57 this->friction_residual = 0.0;
58 this->cohesion_residual = 0.0;
59 this->tensile_residual = 0.0;
60 this->dilation_residual = 0.0;
61
62 // parameters to be affected by the softening
63 this->friction_softening_active = false;
64 this->cohesion_softening_active = false;
65 this->tensile_softening_active = false;
66 this->dilation_softening_active = false;
67 }
68
69 } ;
70
81 MohrCoulomb(int id, double density, double young, double poisson, double friction, double cohesion, double dilation, double tensile, MohrCoulomb::Softening softening);
82
85 virtual void updateStress(Particle* particle) const;
86
89 virtual ~MohrCoulomb();
90
91protected:
92
93 double friction;
94 double cohesion;
95 double dilation;
96 double tensile;
98};
99
100#endif /* INC_MATERIALS_MOHRCOULOMB_H_ */
Represents an elastic material with the Jaumann rate correction.
Definition ElasticJaumann.h:11
double density
initial material density or initial solid density in two-phase calculations
Definition Material.h:98
Definition MohrCoulomb.h:15
double cohesion_residual
Definition MohrCoulomb.h:29
bool cohesion_softening_active
Definition MohrCoulomb.h:35
double tensile_residual
Definition MohrCoulomb.h:30
bool dilation_softening_active
Definition MohrCoulomb.h:37
double exponentialSoftening(double x, double eta, double y_i, double y_f) const
This function provide an exponential law used for softening, a reduction of the material strength par...
Definition MohrCoulomb.h:45
double exponential_shape_factor
Definition MohrCoulomb.h:25
Softening()
Default constructor.
Definition MohrCoulomb.h:48
bool friction_softening_active
Definition MohrCoulomb.h:34
bool tensile_softening_active
Definition MohrCoulomb.h:36
double dilation_residual
Definition MohrCoulomb.h:31
SofteningType
Definition MohrCoulomb.h:19
@ EXPONENTIAL
Definition MohrCoulomb.h:19
@ NONE
Definition MohrCoulomb.h:19
SofteningType softening_type
Definition MohrCoulomb.h:22
double friction_residual
Definition MohrCoulomb.h:28
Represents an elasto-plastic material using the Mohr-Coulomb failure criteria
Definition MohrCoulomb.h:11
MohrCoulomb::Softening softening
Definition MohrCoulomb.h:97
MohrCoulomb(int id, double density, double young, double poisson, double friction, double cohesion, double dilation, double tensile, MohrCoulomb::Softening softening)
Create a Mohr-Coulomb elasto-plastic material.
double friction
internal friction angle in degree,
Definition MohrCoulomb.h:93
virtual void updateStress(Particle *particle) const
Update the stress in the particle.
double dilation
dilation angle in degree,
Definition MohrCoulomb.h:95
double cohesion
cohesion parameter,
Definition MohrCoulomb.h:94
double tensile
tensile strength,
Definition MohrCoulomb.h:96
virtual ~MohrCoulomb()
Default destructor.
Represents a Lagrangian material point This class contain all Lagrangian variables that represents th...
Definition Particle.h:25