Manual

Typical workflow

Peridynamics.jl simulations follow this short workflow:

  1. Create a job
  2. Submit the job

How to create a job

Currently two different simulation job types are available:

How to submit a job

Use the submit function:

submit(job)

Point clouds

There are three possible ways of creating PointClouds.

  1. Read .inp files with the read_inp function
  2. Create a rectangular PointCloud by specifying the edge lengths and the point spacing
  3. Assemble point clouds manually by specifying point coordinates and point volume

Material models

Bond-based

Currently only the BondBasedMaterial is implemented. More material models will be added in the future!

Example:

  • Horizon $\delta = 0.008\,\mathrm{m}$
  • Density $\rho = 2700\,\mathrm{kg}\,\mathrm{m}^{-3}$
  • Youngs modulus $E = 70 \times 10^9 \, \mathrm{Pa}$
  • Griffith's parameter $G_c = 100 \, \mathrm{N} \, \mathrm{m}^{-1}$
material = BondBasedMaterial(; horizon=0.008, rho=2700, E=70e9, Gc=100)

Temporal discretization

The temporal discretization is controlled with the TimeDiscretization type. By default, explicit time integration with velocity verlet algorithm is used. Quasistatic simulations can be performed using the adaptive dynamic relaxation algorithm by Kilic and Madenci (2010).

Example 1:

Velocity verlet algorithm with 500 time steps, the step size is calculated.

TimeDiscretization(500)

Example 2:

Velocity verlet algorithm with 500 time steps and a step size of $\Delta t = 5 \times 10^{-7} \, \mathrm{s}$.

TimeDiscretization(500, 5e-7)

Export settings

The simulation results are exported as vtu and jld2 files to make post-processing with ParaView and Julia straightforward. With ExportSettings, the file path and the export frequency can be set.

Example 1:

Export into the directory "results" every 10'th time step.

ExportSettings("results", 10)

Example 2:

Export nothing.

ExportSettings()

Predefined cracks

Predefined cracks are defined with PreCrack. For an example, see CrackedPlateUnderTension.jl.

Boundary & initial conditions

For more information, see the documentation for each type: