Recovering the 1D material properties
This example shows that simulations recovers the the strain and stress predicted by classical continnums mechanics for a given load in force. The full example is shown in the following publication:
- Diehl, P., Jha, P.K., Kaiser, H. et al. An asynchronous and task-based implementation of peridynamics utilizing HPX—the C++ standard library for parallelism and concurrency. SN Appl. Sci. 2, 2144 (2020). https://doi.org/10.1007/s42452-020-03784-x.
Generating the mesh
The file input_mesh.yaml in the example folder will generate the mesh as shown in the following figure.
Setup the simulation
The file input.yaml in the example folder contains following code snippets to setup the simulation.
Model
The quasi-static models as described in [1] is used to assemble the tangent stiffness matrix and obtain the solution by solving Newton steps.
Model:
Dimension: 1
Discretization_Type:
Spatial: finite_difference
Time: quasi_static
Final_Time: 1
Time_Steps: 1
Horizon: 1
Horizon_h_Ratio: 3
Mesh:
File: mesh.vtu
Material model
The state-based elastic material models as described in [2] is implemented for the ElasticState
material.
Material:
Type: ElasticState
Density: 1
Compute_From_Classical: true
E: 4000
Influence_Function:
Type: 1
Applying boundary conditions
Displacement boundary conditions
The following code applies a fixed displacement to the first node on the left-hand side in the first figure.
Displacement_BC:
Sets: 1
Set_1:
Location:
Line: [-0.1, 0.3]
Direction: [1]
Time_Function:
Type: constant
Parameters:
- 0.0
Spatial_Function:
Type: constant
Force boundary conditions
The following code applies a external body force density to the last node on the right-hand side in the first figure. Note that in this example we want to apply a force $F=40$, however since the last node has a volume $v=0.25$ this results in a body force density $b=40/0.25=166$.
Force_BC:
Sets: 1
Set_1:
Location:
Line: [15.9, 16.5]
Direction: [1]
Time_Function:
Type: linear
Parameters:
- 1
Spatial_Function:
Type: constant
Parameters:
- 160
Solver
Solver:
Type: ConjugateGradient
Max_Iteration: 1000
Tolerance: 1e-9
Perturbation: 1e-7
Validation
Forces
All the forces in the mid of the bar are zero, except the forces at the boundary which are $F=40$ on the right-hand side and $F=-40$ on the left-hand side. This corresponds to the loading we applied.
Stress
The stress in classical continuum mechanics is given as $\sigma=F/S$, where $F$ is the applied force and $S$ is the surface area of the bar. Assuming a surface area $S=1$ leads to $\sigma=40/1=40$ which matches the stress in the Figures for the nodes in the center of the bar. Note that the nodes close to the boundary have non-matching values due to the so-called surface effect.
Strain
The strain in classical continuum mechanics is given as $\epsilon=F/(S\cdot E)=40/(1\cdot 4000)=0.01$ which matches for the nodes in the center of the bar. Note that the nodes close to the boundary have non-matching values due to the so-called surface effect.
Strain energy
The strain energy in classical continuum mechanics is given as $U=\sigma^2/(2\cdot E)=40^2/(2\cdot 4000)=0.2$ which matches for the nodes in the center of the bar. Note that the nodes close to the boundary have non-matching values due to the so-called surface effect.
References
- Littlewood, David J. “Roadmap for peridynamic software implementation.” SAND Report, Sandia National Laboratories, Albuquerque, NM and Livermore, CA (2015).
- Silling, Stewart A., et al. “Peridynamic states and constitutive modeling.” Journal of Elasticity 88.2 (2007): 151-184.