Tension with predefined crack

Import the package:

using Peridynamics

First some geometrical parameters are defined. These are edge length l, point spacing Δx and crack length a. Now a cuboid body with the specified edge lengths and a thickness of one tenth thereof is created using the bond-based material model.

l, Δx, a = 1.0, 1/50, 0.5
pos, vol = uniform_box(l, l, 0.1l, Δx)
body = Body(BBMaterial(), pos, vol)
12500-point Body{BBMaterial{NoCorrection}}:
  1 point set(s):
    12500-point set `all_points`

The following material parameters are set:

material parametervalue
Horizon $ δ $$3.015 \cdot Δx$
Young's modulus $E$$ 210000 \, \mathrm{MPa}$
Density $ρ$$ 8 \cdot 10^{-6}\,\mathrm{kg}\,\mathrm{mm}^{-3}$
Griffith's parameter $G_c$$2.7 \, \mathrm{N} \, \mathrm{mm}^{-1}$
δ = 3.015Δx
material!(body; horizon=δ, E=2.1e5, rho=8e-6, Gc=2.7)

Two point sets are defined to insert a crack between them:

point_set!(p -> p[1] ≤ -l/2+a && 0 ≤ p[2] ≤ 2δ, body, :set_a)
point_set!(p -> p[1] ≤ -l/2+a && -2δ ≤ p[2] < 0, body, :set_b)
precrack!(body, :set_a, :set_b)

Two more point sets at the top and at the bottom are created, which are used for the velocity boundary condition.

point_set!(p -> p[2] > l/2-Δx, body, :set_top)
point_set!(p -> p[2] < -l/2+Δx, body, :set_bottom)

The tension is applied by moving the ends of the body apart at a constant speed of $\pm 50 \, \mathrm{mm} \, \mathrm{s}^{-1}$:

velocity_bc!(t -> -30, body, :set_bottom, :y)
velocity_bc!(t -> 30, body, :set_top, :y)

The Velocity Verlet algorithm is used as time integration method and 2000 time steps are calculated:

vv = VelocityVerlet(steps=2000)
VelocityVerlet:
  n_steps        2000
  safety_factor  0.7

Now the job is defined

job = Job(body, vv; path="results/mode_i_tension_precrack")
Job:
  spatial_setup  12500-point Body{BBMaterial{NoCorrection}}
  time_solver    VelocityVerlet(n_steps=2000, safety_factor=0.7)
  options        export_allowed=true, freq=10

Finally the job is submitted to start simulations

submit(job)

Damage results: