8000 GitHub - ZenanH/MaterialPointSolver.jl: 🧮 High-performance Material Point Method (MPM) Solver in Julia.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

ZenanH/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.

If you have a GPU from Intel® and want to try on it, please contact me 📧.

Installation ⚙️

Just type ] in Julia's REPL:

julia> ]
(@1.11) Pkg> add MaterialPointSolver

Features 💪

These features can be combined in any way, but MLS-MPM can only use quadratic b-spline for the speed

  • Basis function:

    • ✅ standard MPM
    • ✅ uGIMP (uniformed Generalized interpolation MPM)
    • ✅ quadratic B-spline
    • ✅ cubic B-spline (boundary modified)
  • Stress update scheme:

    • ✅ USL (update stress last)
    • ✅ USF (update stress first)
    • ✅ MUSL (modified USL)
  • MPM formulation:

    • ✅ one-phase single-point
    • 🚧 two-phase single-point (saturated/unsaturated)
  • Constitutive model:

    • ✅ linear elastic

    • ✅ hyper elastic (Neo-Hookean)

    • ✅ Drucker-Prager (with softening/harding)

    • 🚧 Mohr-Coulomb

    • ✅ Bingham

  • Others:

    • ✅ Affine/MLS-MPM
    • $\bar{F}$-based volumetric locking elimination
    • ✅ Gaussian random field
    • ✅ one-click switch between FP64 and FP32
    • ✅ user-defined algorithms/extensions at any level

There is a debug model can be used to make sure the simulation is working as expect. It's also can be used for in-situ visualization in VSCode.

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 is the latest version of MaterialPointSover.jl, if you want to see the examples in the paper, please move to https://github.com/LandslideSIM/Archive_MaterialPointSolver.jl_paper.

Tip

After the article was published, we released many new features and achieved significant performance improvements. We are currently actively working on completing the documentation. If possible, you can directly review the source code.

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

About

🧮 High-performance Material Point Method (MPM) Solver in Julia.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Julia 100.0%
0