This package provides a high-performance, backend-agnostic implementation of the Material Point Method (MPM) using the Julia Language. It is lightweight and user-friendly, allowing efficient execution on various hardware accelerators with a single codebase. Please check here for the documentation.
Just type ] in Julia's REPL
:
julia> ]
(@1.11) Pkg> add MaterialPointSolver
- A high-performance MPM solver for flexible scientific prototyping
- Supports user-defined fields and custom logic (e.g. acoustics, heat)
- Can be used in production environments with care to avoid performance regressions
- All MPM algorithms are modularized as plugins for easy modification and sharing
If you find MaterialPointSolver.jl
useful or have used it in your research, please cite it as follows:
@article{HUO2025107189,
title = {A high-performance backend-agnostic Material Point Method solver in Julia},
journal = {Computers and Geotechnics},
volume = {183},
pages = {107189},
year = {2025},
issn = {0266-352X},
doi = {https://doi.org/10.1016/j.compgeo.2025.107189},
url = {https://www.sciencedirect.com/science/article/pii/S0266352X25001387},
author = {Zenan Huo and Yury Alkhimenkov and Michel Jaboyedoff and Yury Podladchikov and Ludovic Räss and Emmanuel Wyser and Gang Mei},
keywords = {MPM, Julia language, Heterogeneous computing, Effective memory throughput}
}
Caution
This repo is the LATEST version of MaterialPointSover.jl
. After the article was published, we released many new features and achieved significant performance improvements. Please move to https://github.com/LandslideSIM/Archive_MaterialPointSolver.jl_paper for the code used in the paper.
This project is sponsored by Risk Group | Université de Lausanne and China Scholarship Council [中国国家留学基金管理委员会].
-
📦 [package]: elastoPlasm.jl is fully witten in Julia, it solves explicit elasto-plastic problems within a finite deformation framework.
-
📦 [package]: Tesserae.jl is an MPM-related Julia package, it provides some useful functions that can be used for MPM, such as convenient macros for transferring data between grids and particles.
-
✍️ [code]: MPM-Julia is the code for the paper: Sinai, V.P. Nguyen, C.T. Nguyen and S. Bordas. Programming the Material Point Method in Julia. Advances in Engineering Software,105: 17--29, 2017.
-
✍️ [code]: jump is for the theory of the MPM described in the book 'The Material Point Method: Theory, Implementations and Applications (Scientific Computation) 1st ed. 2023 Edition'. https://link.springer.com/book/10.1007/978-3-031-24070-6