Home

Awesome

<p align="center"> <img src="docs/src/assets/logo.png" width="300" /> <br> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/kaipartmann/Peridynamics.jl/assets/68582683/817c7bd4-9c02-4cc4-ac66-998c0f5e95e2"> <source media="(prefers-color-scheme: light)" srcset="https://github.com/kaipartmann/Peridynamics.jl/assets/68582683/70c24007-5aa9-460f-9a97-c67b1df32750"> <img alt="The Peridynamics.jl logo" src="https://github.com/kaipartmann/Peridynamics.jl/assets/68582683/70c24007-5aa9-460f-9a97-c67b1df32750" width="400"> </picture> </p>

A high-level Julia package for parallel peridynamics simulations

Documentation:
Stable Dev

Build status:
Build Status Coverage

Code quality:
SciML Code Style Aqua QA

Citation:
DOI DOI

Main Features

Installation

Peridynamics.jl is a registered Julia package, so you can install it by just typing

add Peridynamics

in the julia package manager. Please take a look at the documentation for more details on the installation.

Usage

To run the dynamic tensile test simulation, just 7 lines of code are needed:

body = Body(BBMaterial(), "TensileTestMesh.inp")
material!(body; horizon=0.01, rho=2700, E=70e9, Gc=100)
velocity_bc!(t -> -0.6, body, :bottom, 1)
velocity_bc!(t -> 0.6, body, :top, 1)
vv = VelocityVerlet(steps=500)
job = Job(body, vv; path="results/tension_dynamic")
submit(job)

Take a look at the tutorial of the tensile test for more details on this example.

If you want to run this example with multithreading, just start Julia with more than 1 thread. To use MPI, you can create a script containing the same code without changes and run it with:

mpiexec -n 6 julia --project path/to/script.jl

Please take a look at the how-to guide on MPI for more details.

Tutorials

Please click the image below to see the Tutorial overview in the documentation.

<a href="https://kaipartmann.github.io/Peridynamics.jl/stable/#Tutorials"> <img src="https://github.com/user-attachments/assets/f69ec7f5-2deb-4328-bfab-05cc15508af2"/><br> </a>

Cite Us

If you use Peridynamics.jl in your own research or write a paper using results obtained with the help of Peridynamics.jl, please cite it as

@article{Partmann2024JuliaCon,
  author = {Partmann, Kai and Dienst, Manuel and Weinberg, Kerstin},
  doi = {10.21105/jcon.00165},
  journal = {Proceedings of the JuliaCon Conferences},
  pages = {165},
  title = {{Simulation of fracture and damage with Peridynamics.jl}},
  url = {https://doi.org/10.21105/jcon.00165},
  volume = {6},
  year = {2024}
}

Authors

Acknowledgements

<img src=https://github.com/kaipartmann/Peridynamics.jl/assets/68582683/0d14a65b-4e05-4408-8107-59ac9c1477d2 width=500>

The authors gratefully acknowledge the support of the Deutsche Forschungsgemeinschaft (DFG) under the project WE2525-14/1.

The support of Carsten Bauer and Xin Wu from PC2 with the design of the internal structure regarding parallel performance is gratefully acknowledged.

The authors gratefully acknowledge the computing time provided to them on the high-performance computer Noctua 2 at the NHR Center PC2. These are funded by the Federal Ministry of Education and Research and the state governments participating on the basis of the resolutions of the GWK for the national highperformance computing at universities (www.nhr-verein.de/unsere-partner).