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 parameter | value |
---|---|
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)