Boundary-independent fracture in 2D direct tensile lattice models
Cracks lock onto the mesh boundary in standard direct-tensile lattice runs. Letting elements cross the boundary — a periodic mesh — removes the artefact.
Lattice models are popular for modelling fracture. Direct uniaxial tension is one of the simplest test most people start. But it is also a difficult one to get right, because boundaries attract cracks. This post shows what the problem is with a standard lattice, and how the issue can be removed.
The artefact
A 100×100 mm specimen, lattice of Voronoi cells generated from a random point distribution, pulled in tension between two rigid platens (idealised by linking DOFs at the end to a control point). The load–displacement response and the lattice-strain magnitude are shown side by side, frame-by-frame.
The crack does not run through the bulk of the specimen — it locks onto the boundary. The result is not a property of the material, but a discretisation artefact.
The reason is geometric, because of how the lattice is built close to the boundary.
The fix
Let elements cross boundaries and build the mesh so that it is periodic. It starts from a random point distribution generated without reference to the boundaries.
Elements that would otherwise terminate at a face now cross it and connect to their counterparts on the opposite face through an average strain state that is used to control the periodic specimen.
The crack now forms inside the specimen, picking up the heterogeneity of the random node generation rather than the mesh boundary. The peak load is in the same range, but the post-peak softening branch is qualitatively different — it now reflects tortuous bulk fracture, not a crack running along the boundary.
Our periodic mesh approach is not new. We first used it for meso-scale tensile fracture-process-zone simulations in:
P. Grassl and M. Jirásek. Meso-scale approach to modelling the fracture process zone of concrete subjected to uniaxial tension. International Journal of Solids and Structures, vol. 47, issues 7–8, pp. 957–968, 2010. DOI
What to look at
A few things worth comparing if you re-run this:
- Where the crack initiates. In the regular mesh it is always at the boundary, regardless of the random seed used for the point generation. In the periodic mesh it follows the weakest path through the random point distribution and shifts when you change the seed.
- Peak load. Comparable between the two cases — the boundary artefact does not change the strength much, only the post-peak shape.
- Softening branch. The regular mesh softens through a single artificial band along the boundary. The periodic mesh softens through a band whose geometry is dictated by the material rather than the mesher.
The colour in the contour is the magnitude of the lattice strain, √(εₙ² + εₛ² + εₜ²). It is constant within each element but is mapped to nodes for rendering in ParaView. Blue is low, red is high.
Reproduce
git clone https://github.com/githubgrasp/oofem-examples.git
cd oofem-examples/lattice-tensile-periodic-2d
docker run --rm -v "$PWD":/work ghcr.io/githubgrasp/oofem-public:lattice-tensile-periodic-2d bash run-all.sh
The image tag :lattice-tensile-periodic-2d is the exact one used to
produce the curves and contours above and is immutable. Use :latest
instead if you would rather run the current OOFEM build — results may
drift slightly as the code evolves.
The example folder is at github.com/githubgrasp/oofem-examples/lattice-tensile-periodic-2d; issues and questions go on the issue tracker. More verification sets to follow.