MPM is a particle-based method that represents material as a collection of material points. Each material point’s movement is determined via solving Newton’s laws of motion. MPM is a hybrid Eulerian-Lagrangian approach, which uses moving material points and a fixed computational grid. This approach is particularly useful in the context of large deformations where mesh distortions often produce unrealistic or undesirable results.

*Illustration of the MPM algorithm: (1) a representation of material points overlaid on a computational grid. Arrows represent material point state vectors (mass, volume, velocity, etc.) being projected to the nodes of the computational mesh; (2) the equations of motion are solved on the nodes, resulting in updated nodal kinematics; (3) the updated nodal kinematics is interpolated back to the material points; (4) the state of the material points is updated, and the computational mesh is reset.*

The group has implemented many special features and formulations beyond standard MPM, with some of these featured below:

**Multi-Phase MPM**

Our group has developed a stable multi-phase MPM code by extending the traditional explicit version to a semi-implicit and implicit time integration scheme. Furthermore, the Anura3D open-source code is developed for modeling levee erosion with both 1-point and 2-point MPM. A particular focus is placed on the reduction of fines and subsequent changes in the remaining soil skeleton strength and stiffness. This work is completed in the context of levee erosion.

**Extended MPM (XMPM)**

The XMPM formulation was developed to model the initiation and propagation of shear bands using the theory of bifurcation. In this work, the strong discontinuity assumption is considered and preferred to limit reliance on adaptive mesh refinement. The XMPM formulation is further reinforced with a frictional self-contact treatment to accurately resolve the post-failure behavior involving extremely large deformations.

**Resources**

The group primarily uses Berkeley Geomechanics, which is an open-source C++ code based upon CB-Geo. The CB-Geo and Anura3D codebases are also utilized by the group.