Tensile test dynamic
Import the package:
using PeridynamicsRead and convert the Abaqus FEM mesh of a tensile test into a point cloud for the peridynamic model:
# insert your correct path to the downloaded mesh file!
inp_file = joinpath(@__DIR__, "..", "assets", "TensileTestMesh.inp");Create a body with the points from the mesh: (The bond-based material model with energy based surface correction is used here.)
body = Body(BBMaterial(), inp_file)16900-point Body{BBMaterial}:
  3 point set(s):
    16900-point set `all_points`
    4200-point set `bottom`
    4200-point set `top`The element sets defined in Abaqus were converted into point sets of the Body:
point_sets(body)Dict{Symbol, Vector{Int64}} with 3 entries:
  :all_points => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  16891, 16892, 16893, 16894,…
  :bottom     => [11701, 11702, 11703, 11704, 11705, 11706, 11707, 11708, 11709…
  :top        => [7501, 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, 7510  ……Specify the material parameters as:
| material parameter | value | 
|---|---|
| Horizon $ δ $ | $0.01 \, \mathrm{m}$ | 
| Density $ρ$ | $ 2700 \,\mathrm{kg}\,\mathrm{m}^{-3}$ | 
| Young's modulus $E$ | $ 70 \cdot 10^{9} \, \mathrm{Pa}$ | 
| Griffith's parameter $G_c$ | $100 \, \mathrm{N} \, \mathrm{m}^{-1}$ | 
material!(body; horizon=0.01, rho=2700, E=70e9, Gc=100)As loading condition for the specimen, a constant velocity of $0.6 \, \mathrm{m}\,\mathrm{s}^{-1}$ in $x$-direction is set for the bottom and top.
velocity_bc!(t -> -0.6, body, :bottom, 1)
velocity_bc!(t -> 0.6, body, :top, 1)Set the number of time steps for the Velocity Verlet algorithm to 500 time steps:
vv = VelocityVerlet(steps=500)VelocityVerlet:
  n_steps        500
  safety_factor  0.7Create the job:
job = Job(body, vv; path="results/tension_dynamic_fracture")Job:
  spatial_setup  16900-point Body{BBMaterial}
  time_solver    VelocityVerlet(n_steps=500, safety_factor=0.7)
  options        export_allowed=true, freq=10Submit the job to start simulations:
submit(job)