MPM-Geomechanics
Material Point Method for simulating geo-materials under large deformation conditions
Loading...
Searching...
No Matches
Update.h
Go to the documentation of this file.
1/*
2 * Update.h
3 *
4 * Created on: 10 de mai de 2021
5 * Author: Fabricio Fernandez <fabricio.hmf@gmail.com>
6 */
7
8#ifndef UPDATE_H_
9#define UPDATE_H_
10
11#include "Mesh/Mesh.h"
12#include "Body/Body.h"
13#include <Loads.h>
14
17namespace Update {
18
22 enum Direction {X, Y, Z};
23
29 void nodalVelocity(Mesh* mesh);
30
42 void nodalTotalForce(Mesh* mesh);
43
47
61 void particleDensity(vector<Body*>* bodies);
62
68 void particlePorosity(vector<Body*>* bodies);
69
72 void particleStress(vector<Body*>* bodies);
73
80 void particlePressure(vector<Body*>* bodies, double dt);
81
89 void particleVelocity(Mesh* mesh, vector<Body*>* bodies, double time_step);
90
98 void particleVelocityFluid(Mesh* mesh, vector<Body*>* bodies, double time_step);
99
104 void particlePosition(Mesh* mesh, vector<Body*>* bodies, double time_step);
105
110
115
120
125
129 void contributionNodes(Mesh* mesh, vector<Body*>* bodies);
130
135 void setPlaneForce(const Boundary::planeBoundary* boundary, vector<Node*>* nodes, unsigned direction);
136
141 void setPlaneForceFluid(const Boundary::planeBoundary* boundary, vector<Node*>* nodes, unsigned direction);
142
148 void setPlaneMomentum(const Boundary::planeBoundary* boundary, vector<Node*>* nodes, unsigned direction);
149
155 void setPlaneMomentumFluid(const Boundary::planeBoundary* boundary, vector<Node*>* nodes, unsigned direction);
156
157};
158
159#endif /* UPDATE_H_ */
Class representing a rectangular grid mesh.
Definition Mesh.h:29
Represents operations to update values in nodes and particles.
void particleVelocityFluid(Mesh *mesh, vector< Body * > *bodies, double time_step)
Update the particle velocity fluid.
void particleVelocity(Mesh *mesh, vector< Body * > *bodies, double time_step)
Update the particle velocity.
Direction
Principal direction in the model. This enumeration is used to update the boundary conditions in each ...
Definition Update.h:22
@ X
Definition Update.h:22
@ Z
Definition Update.h:22
@ Y
Definition Update.h:22
void boundaryConditionsMomentum(Mesh *mesh)
Apply essential boundary condition in terms of momentum.
void particlePosition(Mesh *mesh, vector< Body * > *bodies, double time_step)
Update particle position.
void nodalVelocity(Mesh *mesh)
Update the nodal velocity.
void resetNodalValues(Mesh *mesh)
Delete all stored values in nodes.
void setPlaneMomentum(const Boundary::planeBoundary *boundary, vector< Node * > *nodes, unsigned direction)
Configure the momentum in each node in boundary planes.
void boundaryConditionsForceFluid(Mesh *mesh)
Apply essential boundary condition in terms of force of fluid phase.
void particlePressure(vector< Body * > *bodies, double dt)
Update the particles pressure.
void particleDensity(vector< Body * > *bodies)
Updates the particles' density.
void setPlaneForce(const Boundary::planeBoundary *boundary, vector< Node * > *nodes, unsigned direction)
Configure the force in each node in boundary planes.
void setPlaneMomentumFluid(const Boundary::planeBoundary *boundary, vector< Node * > *nodes, unsigned direction)
Configure the momentum of fluid phase in each node in boundary planes.
void contributionNodes(Mesh *mesh, vector< Body * > *bodies)
Update the weights in each nodes that contributes.
void setPlaneForceFluid(const Boundary::planeBoundary *boundary, vector< Node * > *nodes, unsigned direction)
Configure the force in fluid phase in each node in boundary planes.
void nodalTotalForce(Mesh *mesh)
Update the nodal total force.
void boundaryConditionsMomentumFluid(Mesh *mesh)
Apply essential boundary condition in terms of momentum of fluid phase.
void boundaryConditionsForce(Mesh *mesh)
Apply essential boundary condition in terms of force.
void particlePorosity(vector< Body * > *bodies)
Updates the porosity of the mixture.
void particleStress(vector< Body * > *bodies)
Update the particles' stress.
Represents the nodes and the type of restrictions.
Definition Boundary.h:62