MPM-Geomechanics
Material Point Method for simulating geo-materials under large deformation conditions
Loading...
Searching...
No Matches
NodeMixture.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 INC_MESH_NODEMIXTURE_H_
5#define INC_MESH_NODEMIXTURE_H_
6
7#include <Mesh/Node.h>
8
11class NodeMixture: public Node {
12
13public:
14
18
21 virtual ~NodeMixture();
22
25 virtual void resetValues();
26
29 virtual inline void addMassFluid(double fluid_mass_increment) { this->massFluid+=fluid_mass_increment; }
30
33 virtual inline void addMomentumFluid(const Vector3d& fluid_momentum_increment) { this->momentumFluid+=fluid_momentum_increment; }
34
37 virtual inline void addInternalForceFluid(const Vector3d& internal_force_fluid_increment) { this->internalForceFluid+=internal_force_fluid_increment; }
38
41 virtual inline void addExternalForceFluid(const Vector3d& external_force_fluid_increment) { this->externalForceFluid+=external_force_fluid_increment; }
42
45 virtual inline void setMomentumFluid(const Vector3d& nodal_momentum_fluid) { this->momentumFluid=nodal_momentum_fluid; }
46
49 virtual inline const Vector3d* getMomentumFluid() const { return &(this->momentumFluid); }
50
53 virtual void updateTotalForce();
54
57 virtual void updateDampingForce();
58
62 virtual inline void setTotalForceFluid(const Vector3d& total_nodal_force_fluid) { this->totalForceFluid=total_nodal_force_fluid; }
63
66 virtual inline const Vector3d* getTotalForceFluid() const { return &(this->totalForceFluid); }
67
70 virtual void integrateMomentum(double dt);
71
74 virtual inline double getMassFluid() const { return massFluid; }
75
78 virtual void updateVelocity();
79
82 virtual inline const Vector3d* getVelocityFluid() const { return &(this->velocityFluid); }
83
84private:
85
86 double massFluid;
87
88 Vector3d momentumFluid;
89 Vector3d velocityFluid;
93 Vector3d totalForceFluid;
94};
95
97{
98 massFluid=0;
99 momentumFluid.setZero();
100 velocityFluid.setZero();
101 externalForceFluid.setZero();
102 internalForceFluid.setZero();
103 dampingForceFluid.setZero();
104 totalForceFluid.setZero();
105}
106
108{
110
111 massFluid=0.0;
112 momentumFluid.setZero();
113 externalForceFluid.setZero();
114 internalForceFluid.setZero();
115}
116
117#endif /* INC_MESH_NODEMIXTURE_H_ */
Represents a mesh node for calculations using the mixture theory.
Definition NodeMixture.h:11
virtual void addExternalForceFluid(const Vector3d &external_force_fluid_increment)
Add a external force of fluid increment to the nodal external force.
Definition NodeMixture.h:41
Vector3d externalForceFluid
nodal external force of fluid:
Definition NodeMixture.h:90
virtual void addMassFluid(double fluid_mass_increment)
Add fluid mass increment to the nodal mass.
Definition NodeMixture.h:29
NodeMixture()
Default constructor.
Definition NodeMixture.h:96
virtual const Vector3d * getTotalForceFluid() const
Return the nodal total force of fluid phase.
Definition NodeMixture.h:66
virtual void setMomentumFluid(const Vector3d &nodal_momentum_fluid)
Configure the nodal momentum of fluid phase.
Definition NodeMixture.h:45
Vector3d dampingForceFluid
nodal damping force of fluid:
Definition NodeMixture.h:92
virtual void addInternalForceFluid(const Vector3d &internal_force_fluid_increment)
Add a internal force increment of fluid to the nodal internal force.
Definition NodeMixture.h:37
virtual void integrateMomentum(double dt)
Vector3d internalForceFluid
nodal internal force of fluid:
Definition NodeMixture.h:91
Vector3d momentumFluid
nodal momentum of fluid:
Definition NodeMixture.h:88
virtual void resetValues()
Delete all values stored in node.
Definition NodeMixture.h:107
virtual void addMomentumFluid(const Vector3d &fluid_momentum_increment)
Add fluid momentum increment to the nodal momentum of fluid.
Definition NodeMixture.h:33
virtual void setTotalForceFluid(const Vector3d &total_nodal_force_fluid)
Configure the total nodal force in fluid phase.
Definition NodeMixture.h:62
virtual const Vector3d * getVelocityFluid() const
Return the nodal velocity of fluid phase.
Definition NodeMixture.h:82
virtual const Vector3d * getMomentumFluid() const
Return the nodal momentum of fluid phase.
Definition NodeMixture.h:49
Vector3d velocityFluid
nodal velocity of fluid:
Definition NodeMixture.h:89
virtual void updateVelocity()
Update nodal velocity of mixture.
virtual void updateTotalForce()
Calculate the total nodal force.
double massFluid
nodal mass of fluid:
Definition NodeMixture.h:86
virtual ~NodeMixture()
Default destructor.
virtual void updateDampingForce()
Calculate the damping nodal force.
virtual double getMassFluid() const
Return the nodal mass of fluid phase.
Definition NodeMixture.h:74
Vector3d totalForceFluid
nodal total force of fluid:
Definition NodeMixture.h:93
Represents a mesh node.
Definition Node.h:12
virtual void resetValues()
Delete all values stored in node.
Definition Node.h:220