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/*
2 * MohrCoulomb.h
3 *
4 * Created on: 1 de jul de 2021
5 * Author: Fabricio Fernandez <fabricio.hmf@gmail.com>
6 */
7
8#ifndef INC_MATERIALS_MOHRCOULOMB_H_
9#define INC_MATERIALS_MOHRCOULOMB_H_
10
12
16public:
17
18 // softening struct
19 class Softening {
20
21 public :
22
24
25 // softening type
27
28 // exponential softening
30
31 // residual values
36
37 // parameters to be affected by the softening
42
49 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);};
50
53
54 // softening type
56
57 // exponential softening
58 this->exponential_shape_factor = 0.0;
59
60 // residual values
61 this->friction_residual = 0.0;
62 this->cohesion_residual = 0.0;
63 this->tensile_residual = 0.0;
64 this->dilation_residual = 0.0;
65
66 // parameters to be affected by the softening
67 this->friction_softening_active = false;
68 this->cohesion_softening_active = false;
69 this->tensile_softening_active = false;
70 this->dilation_softening_active = false;
71 }
72
73 } ;
74
85 MohrCoulomb(int id, double density, double young, double poisson, double friction, double cohesion, double dilation, double tensile, MohrCoulomb::Softening softening);
86
89 virtual void updateStress(Particle* particle) const;
90
93 virtual ~MohrCoulomb();
94
95protected:
96
97 double friction;
98 double cohesion;
99 double dilation;
100 double tensile;
102};
103
104#endif /* INC_MATERIALS_MOHRCOULOMB_H_ */
Represents an elastic material with the Jaumann rate correction.
Definition ElasticJaumann.h:15
double density
initial material density or initial solid density in two-phase calculations
Definition Material.h:102
Definition MohrCoulomb.h:19
double cohesion_residual
Definition MohrCoulomb.h:33
bool cohesion_softening_active
Definition MohrCoulomb.h:39
double tensile_residual
Definition MohrCoulomb.h:34
bool dilation_softening_active
Definition MohrCoulomb.h:41
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:49
double exponential_shape_factor
Definition MohrCoulomb.h:29
Softening()
Default constructor.
Definition MohrCoulomb.h:52
bool friction_softening_active
Definition MohrCoulomb.h:38
bool tensile_softening_active
Definition MohrCoulomb.h:40
double dilation_residual
Definition MohrCoulomb.h:35
SofteningType
Definition MohrCoulomb.h:23
@ EXPONENTIAL
Definition MohrCoulomb.h:23
@ NONE
Definition MohrCoulomb.h:23
SofteningType softening_type
Definition MohrCoulomb.h:26
double friction_residual
Definition MohrCoulomb.h:32
Represents an elasto-plastic material using the Mohr-Coulomb failure criteria
Definition MohrCoulomb.h:15
MohrCoulomb::Softening softening
Definition MohrCoulomb.h:101
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:97
virtual void updateStress(Particle *particle) const
Update the stress in the particle.
double dilation
dilation angle in degree,
Definition MohrCoulomb.h:99
double cohesion
cohesion parameter,
Definition MohrCoulomb.h:98
double tensile
tensile strength,
Definition MohrCoulomb.h:100
virtual ~MohrCoulomb()
Default destructor.
Represents a Lagrangian material point This class contain all Lagrangian variables that represents th...
Definition Particle.h:29