MPM-Geomechanics
Material Point Method for simulating geo-materials under large deformation conditions
Loading...
Searching...
No Matches
Elastic.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 ELASTIC_H_
5#define ELASTIC_H_
6
8#include "Particle/Particle.h"
9
12class Elastic: public Material {
13
14public:
15
21 Elastic(int id, double density, double young, double poisson);
22
25 virtual ~Elastic();
26
29 inline void setYoung(double young) { this->Young=young; }
30
33 inline void setPoisson(double poisson) { this->Poisson=poisson; }
34
37 inline double getShearModulus() const { return this->Young/2.0/(1.0+this->Poisson); }
38
41 inline double getBulkModulus() const { return this->Young/3.0/(1.0-2.0*this->Poisson); }
42
45 virtual void updateStress(Particle* particle) const;
46
49 inline virtual Material::MaterialType getType() const { return Material::getType(); }
50
53 virtual double getSoundSpeed( ) const;
54
55protected:
56
57 double Young;
58
59 double Poisson;
60};
61
62inline Elastic::Elastic(int id, double density, double young, double poisson)
63: Material(id, density, Material::MaterialType::ELASTIC)
64{
65 this->Young=young;
66 this->Poisson=poisson;
67}
68
70
71#endif /* ELASTIC_H_ */
Represents an elastic material.
Definition Elastic.h:12
double Poisson
Poisson's ratio .
Definition Elastic.h:59
virtual ~Elastic()
Default destructor.
Definition Elastic.h:69
void setYoung(double young)
Configure the Young's modulus.
Definition Elastic.h:29
void setPoisson(double poisson)
Configure the Poisson's ratio.
Definition Elastic.h:33
virtual double getSoundSpeed() const
Get sound speed.
double Young
Young's modulus .
Definition Elastic.h:57
virtual void updateStress(Particle *particle) const
Update the stress in the particle.
Elastic(int id, double density, double young, double poisson)
Create a linear elastic material.
Definition Elastic.h:62
double getBulkModulus() const
Return the Bulk modulus.
Definition Elastic.h:41
double getShearModulus() const
Return the Shear modulus.
Definition Elastic.h:37
virtual Material::MaterialType getType() const
Return the material type.
Definition Elastic.h:49
Represents a material.
Definition Material.h:14
virtual MaterialType getType() const
Returns the material type.
Definition Material.h:84
double density
initial material density or initial solid density in two-phase calculations
Definition Material.h:98
MaterialType
Definition Material.h:20
Represents a Lagrangian material point This class contain all Lagrangian variables that represents th...
Definition Particle.h:25