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
80 MohrCoulomb(int id, double density, double young, double poisson, double friction, double cohesion, double dilation, double tensile, MohrCoulomb::Softening softening);
81
84 virtual void updateStress(Particle* particle) const;
85
87 void setCohesion(double c){this->cohesion=c;}
88
90 double getCohesion() { return this->cohesion; }
91
93 void setFriction(double f){this->friction=f;}
94
96 void setSuVerticalStressFactor(double su){this->su_factor=su;}
97
99 double getSuVerticalStressFactor(){ return this->su_factor;}
100
103 virtual ~MohrCoulomb();
104
105protected:
106
107 double friction;
108 double cohesion;
109 double dilation;
110 double tensile;
111 double su_factor;
113};
114
115#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:106
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
void setFriction(double f)
set peak friction angle
Definition MohrCoulomb.h:93
double getCohesion()
get cohesion
Definition MohrCoulomb.h:90
double getSuVerticalStressFactor()
get vertical undrained strength factor
Definition MohrCoulomb.h:99
void setSuVerticalStressFactor(double su)
set vertical undrained strength factor
Definition MohrCoulomb.h:96
MohrCoulomb::Softening softening
Definition MohrCoulomb.h:112
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:107
virtual void updateStress(Particle *particle) const
Update the stress in the particle.
void setCohesion(double c)
set peak cohesion
Definition MohrCoulomb.h:87
double dilation
dilation angle in degree,
Definition MohrCoulomb.h:109
double cohesion
cohesion parameter,
Definition MohrCoulomb.h:108
double tensile
tensile strength,
Definition MohrCoulomb.h:110
double su_factor
undrained strength factor,
Definition MohrCoulomb.h:111
virtual ~MohrCoulomb()
Default destructor.
Represents a Lagrangian material point This class contain all Lagrangian variables that represents th...
Definition Particle.h:25