MPM-Geomechanics
Material Point Method for simulating geo-materials under large deformation conditions
Loading...
Searching...
No Matches
Material.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 MATERIAL_H_
5#define MATERIAL_H_
6
7#include "Eigen/Core"
8using Eigen::Vector3d;
9
10class Particle;
11
14class Material {
15
16public:
17
21
24 Material(int id=-1, double density=0, MaterialType type = MaterialType::NONE);
25
28 virtual ~Material();
29
32 inline int getId() const { return this->id; }
33
36 inline double getDensity() const { return this->density; }
37
40 inline double getDensityFluid() const { return this->densityFluid; }
41
44 inline double getPorosity() const { return this->porosity; }
45
48 inline Vector3d getHydraulicConductivity() const { return this->hydraulicConductivity; }
49
52 inline double getBulkModulusFluid() const { return this->bulkModulusFluid; }
53
56 inline void setId(int material_id) { this->id=material_id; }
57
60 inline void setDensity(double material_density) { this->density=material_density; }
61
64 inline void setDensityFluid(double fluid_density) { this->densityFluid=fluid_density; }
65
68 inline void setPorosity(double material_porosity) { this->porosity=material_porosity; }
69
72 inline void setBulkModulusFluid(double bulk_fluid) { this->bulkModulusFluid=bulk_fluid; }
73
76 inline void setHydraulicConductivity(Vector3d hydraulic_conductivity) { this->hydraulicConductivity=hydraulic_conductivity; }
77
80 inline void setType(MaterialType material_type) { this->type=material_type; }
81
84 inline virtual MaterialType getType() const { return this->type; }
85
88 virtual void updateStress(Particle* particle) const = 0;
89
92 virtual double getSoundSpeed( ) const = 0;
93
94protected:
95
96 int id;
97
98 double density;
99
101
102 double porosity;
103
105
107
109};
110
111inline Material::Material(int id, double density, MaterialType type) {
112
113 this->id=id;
114 this->density=density;
115 this->densityFluid=0.0;
116 this->porosity=0.0;
117 this->bulkModulusFluid=0.0;
118 this->hydraulicConductivity.setZero();
119 this->type=type;
120}
121
123
124#endif /* MATERIAL_H_ */
Represents a material.
Definition Material.h:14
void setId(int material_id)
Configure the material identification.
Definition Material.h:56
void setDensityFluid(double fluid_density)
Configures fluid density in material.
Definition Material.h:64
Vector3d hydraulicConductivity
hydraulic conductivity of the fluid in the material
Definition Material.h:106
double porosity
initial porosity
Definition Material.h:102
virtual ~Material()
Default destructor.
Definition Material.h:122
void setType(MaterialType material_type)
Configures the material type.
Definition Material.h:80
void setBulkModulusFluid(double bulk_fluid)
Configures the volumetric modulus of fluid.
Definition Material.h:72
int id
material identification
Definition Material.h:96
void setPorosity(double material_porosity)
Configures the material porosity.
Definition Material.h:68
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
Material(int id=-1, double density=0, MaterialType type=MaterialType::NONE)
Default constructor.
Definition Material.h:111
double getDensity() const
Returns material density.
Definition Material.h:36
virtual double getSoundSpeed() const =0
Get sound speed.
double densityFluid
initial density of the fluid phase in two-phase calculations
Definition Material.h:100
double getBulkModulusFluid() const
Returns Bulk modulus of fluid in mixture.
Definition Material.h:52
void setDensity(double material_density)
Configures the material density.
Definition Material.h:60
int getId() const
Return the identification.
Definition Material.h:32
MaterialType
Definition Material.h:20
@ NONE
Definition Material.h:20
@ ELASTIC
Definition Material.h:20
@ ELASTOPLASTIC
Definition Material.h:20
MaterialType type
material type
Definition Material.h:108
double getDensityFluid() const
Returns fluid density on material.
Definition Material.h:40
virtual void updateStress(Particle *particle) const =0
Update the stress tensor.
double getPorosity() const
Returns material porosity.
Definition Material.h:44
Vector3d getHydraulicConductivity() const
Returns Hydraulic conductivity.
Definition Material.h:48
double bulkModulusFluid
elastic volumetric modulus of fluid in mixture
Definition Material.h:104
void setHydraulicConductivity(Vector3d hydraulic_conductivity)
Configures the material hydraulic conductivity.
Definition Material.h:76
Represents a Lagrangian material point This class contain all Lagrangian variables that represents th...
Definition Particle.h:25