Skip to content

LandslideSIM/MaterialPointSolver.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MaterialPointSolver

CI Stable Dev Version

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.

Installation ⚙️

Just type ] in Julia's REPL:

julia> ]
(@1.11) Pkg> add MaterialPointSolver

Design Philosophy 🧠

  • 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

Citation 🔥

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.

Acknowledgement 👍

This project is sponsored by Risk Group | Université de Lausanne and China Scholarship Council [中国国家留学基金管理委员会].

MPM ➕ Julia

  • 📦 [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