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