MPM-Geomechanics
Material Point Method for simulating geo-materials under large deformation conditions
Loading...
Searching...
No Matches
SolverExplicit Class Reference

Represents the operations to solve explicitly the equations in time using the Update Stress Last (USL) or Modified Update Stress Last (MUSL) schemes. More...

#include <SolverExplicit.h>

Inheritance diagram for SolverExplicit:
Collaboration diagram for SolverExplicit:

Public Member Functions

 SolverExplicit ()
 Default constructor.
 
virtual void Solve ()
 Solve the problem in time using either USL or MUSL.
 
- Public Member Functions inherited from Solver
 Solver ()
 Default constructor.
 
virtual ~Solver ()
 Default destructor.
 
void registerMesh (Mesh *mesh)
 Register the mesh in the solver.
 
void registerBodies (vector< Body * > *bodies)
 Register the bodies in the solver.
 
void registerParticles (vector< Particle * > *p)
 Register the particles in the solver.
 
void registerTerrainContact (TerrainContact *terrainContact)
 Register the terrain contact in the solver.
 

Additional Inherited Members

- Protected Attributes inherited from Solver
Meshmesh
 pointer to mesh
 
vector< Body * > * bodies
 pointer to bodies
 
vector< Particle * > * particles
 pointer to particles
 
TerrainContactterrainContact
 pointer to terrain contact
 

Detailed Description

Represents the operations to solve explicitly the equations in time using the Update Stress Last (USL) or Modified Update Stress Last (MUSL) schemes.

This solver can operate in either of two integration modes:

  • USL (Update Stress Last): classical explicit integration where stress is updated after particle velocity and position.
  • MUSL (Modified Update Stress Last): improves accuracy by updating particle stress using the recalculated nodal grid momentum from updated particle momentum.
Pseudocode for both schemes:

USL and MUSL:

1. Interpolate mass and momentum from Particles to nodes
2. Apply boundary conditions on nodal momentum (p=0 for fixed nodes)
3.1 Interpolate internal and external force from particles to nodes
3.2 Compute total nodal force
3.3 Apply boundary conditions on total nodal force (f=0 for fixed nodes)
4. Solve motion equation: update nodal momentum
5.1 Update particle velocity using nodal acceleration
5.2 Apply contact correction on particle velocity (if active)
5.3 Update particle position using updated nodal momentum
6.1 If MUSL: Recalculate nodal momentum with the updated particle velocity
6.2 If MUSL: Apply boundary conditions on nodal momentum (p=0 for fixed nodes)
7. Update nodal velocity with the updated nodal momentum
8. Update particle strain increment and vorticity increment using updated nodal velocity
9. Update particle density and stress strain and vorticity increment
10. Reset nodal variables
virtual void Solve()
Solve the problem in time using either USL or MUSL.
vector< Particle * > * particles
pointer to particles
Definition Solver.h:52
Represents operations to update values in nodes and particles.

Constructor & Destructor Documentation

◆ SolverExplicit()

SolverExplicit::SolverExplicit ( )

Default constructor.

Member Function Documentation

◆ Solve()

virtual void SolverExplicit::Solve ( )
virtual

Solve the problem in time using either USL or MUSL.

Implements Solver.


The documentation for this class was generated from the following file: