Manual
Peridynamics.jl
simulations follow this short workflow:
- Create a job
- Submit the job
How to create a job
Currently two different simulation job types are available:
PDSingleBodyAnalysis
- Define the spatial discretization with
PointCloud
- Define the material, e.g.
BondBasedMaterial
- Define the temporal discretization with
TimeDiscretization
- Define export settings with
ExportSettings
- Add predefined cracks with
PreCrack
- Add boundary conditions, e.g.
VelocityBC
,ForceDensityBC
,PosDepVelBC
- Add initial conditions, e.g.
VelocityIC
- Define the spatial discretization with
PDContactAnalysis
- Create a
BodySetup
for every body (similar toPDSingleBodyAnalysis
) - Define the
Contact
between the different bodies - Define the temporal discretization with
TimeDiscretization
- Define export settings with
ExportSettings
- Create a
How to submit a job
Use the submit
function:
submit(job)
Point clouds
There are three possible ways of creating PointCloud
s.
- Read
.inp
files with theread_inp
function - Create a rectangular
PointCloud
by specifying the edge lengths and the point spacing - 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:
VelocityBC
: velocity boundary conditionsForceDensityBC
: force density boundary conditionsPosDepVelBC
: position dependend velocity boundary conditionsVelocityIC
: velocity initial conditions