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// SPDX-License-Identifier: MIT
2// Copyright (c) 2021-2025 MPM-Geomechanics Development Team
3
4#ifndef UPDATE_H_
5#define UPDATE_H_
6
7#include "Mesh/Mesh.h"
8#include "Body/Body.h"
9#include <Loads.h>
10
13namespace Update {
14
18 enum Direction {X, Y, Z};
19
25 void nodalVelocity(Mesh* mesh);
26
38 void nodalTotalForce(Mesh* mesh);
39
43
57 void particleDensity(vector<Body*>* bodies);
58
64 void particlePorosity(vector<Body*>* bodies);
65
68 void particleStress(vector<Body*>* bodies);
69
76 void particlePressure(vector<Body*>* bodies, double dt);
77
85 void particleVelocity(Mesh* mesh, vector<Body*>* bodies, double time_step);
86
94 void particleVelocityFluid(Mesh* mesh, vector<Body*>* bodies, double time_step);
95
100 void particlePosition(Mesh* mesh, vector<Body*>* bodies, double time_step);
101
106
111
116
121
125 void contributionNodes(Mesh* mesh, vector<Body*>* bodies);
126
131 void setPlaneForce(const Boundary::planeBoundary* boundary, vector<Node*>* nodes, unsigned direction);
132
137 void setPlaneForceFluid(const Boundary::planeBoundary* boundary, vector<Node*>* nodes, unsigned direction);
138
144 void setPlaneMomentum(const Boundary::planeBoundary* boundary, vector<Node*>* nodes, unsigned direction);
145
151 void setPlaneMomentumFluid(const Boundary::planeBoundary* boundary, vector<Node*>* nodes, unsigned direction);
152
153};
154
155#endif /* UPDATE_H_ */
Class representing a rectangular grid mesh.
Definition Mesh.h:26
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:18
@ X
Definition Update.h:18
@ Z
Definition Update.h:18
@ Y
Definition Update.h:18
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:73