NLMech: Implementation of finite difference/meshfree discretization of nonlocal fracture models

The open source code NLMech is an implementation of finite difference approximation of nonlocal models, e.g. peridynamic. Peridynamic (PD) (Silling et al., 2007; Silling & Askari, 2005) is a nonlocal formulation of classical continuum mechanics that is particularly robust in mechanical deformations involving crack (discontinuous displacement) and damage. The model seamlessly handles the two regimes of deformation: elastic/smooth deformation and fracture. The constitutive laws describing the material behavior are simple to conceptualize and implement. Particularly, in numerical implementation, no special care for the modeling of cracks is required. Successful comparison of PD against a variety of experiments has been done (Diehl et al., 2019, p. diehl2021comparative).


Summary
The open source code NLMech is an implementation of finite difference approximation of nonlocal models, e.g. peridynamic. Peridynamic (PD) (Silling et al., 2007;Silling & Askari, 2005) is a nonlocal formulation of classical continuum mechanics that is particularly robust in mechanical deformations involving crack (discontinuous displacement) and damage. The model seamlessly handles the two regimes of deformation: elastic/smooth deformation and fracture. The constitutive laws describing the material behavior are simple to conceptualize and implement. Particularly, in numerical implementation, no special care for the modeling of cracks is required. Successful comparison of PD against a variety of experiments has been done (Diehl et al., 2019. Unlike classical continuum mechanics, where the internal force is written in terms of the stress, in PD, the internal force at a given material point is due to the sum of the pairwise forces of the neighboring points. i.e. the force in PD is expressed as the integral of the pairwise force density between the given point and another point in the neighborhood. The neighborhood of point x is typically defined as all points in the sphere of radius δ, centered at x, where δ is the nonlocal length scale and is referred to as the horizon. PD is often divided in two classes: bond-based and state-based models. In bond-based models, the two material points interact via a pairwise force law, and the forces between the material points do not depend on the deformation state of surrounding points. In contrast, in the state-based models the volumetric deformation in the neighborhood of two points plays a role in the pairwise force. The governing equation of motion for the bond-based PD (Silling & Askari, 2005) reads as in D * co-first author † co-first author and the governing equation for the state-based PD (Silling et al., 2007) reads as Here ϱ denotes density of the material, u displacement field in the material,ü acceleration, and b external force density. The constitutive law, relating bond strain with bond force, is prescribed using either the pairwise force function f or the PD state T (Silling et al., 2007). In the NLMech library, the following material models are implemented: • Elastic state-based PD model (Silling et al., 2007), • Prototype micro-elastic brittle bond-based PD model (Silling & Askari, 2005), • Nonlinear bond-based PD model (R. Lipton, 2014Lipton, , 2016, and • Nonlocal double-well state-based peridynamic model R. Lipton et al., 2018b).
Examples for these types of model implementations are provided in the documentation.
Currently, the library supports finite difference (or more generally meshfree) discretization.
Using the triangulation of an arbitrary domain, the library can create a meshfree discretization. The library is equipped with necessary modules, such as FE elements and quadrature integration rules, for finite element discretization of PD. Next, we briefly discuss the finite difference/meshfree discretization of PD. Figure 2 shows the domain D discretized with the nodes X = {X i ∈ R 3 |i = 1, . . . , n}. Each node X i represents a small area/volume denoted by V i . In PD, as previously mentioned, each point X i interacts with neighboring points in the Figure 2: Adapted from (Diehl, 2020).
The discrete equation of motion is written as, for the bond-based PD, and, the state-based PD, Here u(t, X i ) denotes the displacement of node X i at time 0 ≤ t ≤ T . For the time discretization, we can consider: 1) implicit time integration and 2) explicit time integration using either a central difference or velocity verlet scheme.
NLMech was used for the following applications/publications: • Numerical convergence of finite difference approximations for state based perdidynamic fracture models ( (Bhattacharya et al., 2021) For an updated list of applications/publications, we refer to corresponding NLMech documentation.

Statement of need
Nonlocal models, like peridynamic, are computationally expensive. Several publications on GPU-based implementations (Diehl, 2012;Diehl & Schweitzer, 2015;Mossaiby et al., 2017) and one commercial implementation in LS-DYNA (Ren et al., 2017) can be found in literature. However, from an open source perspective, only two other peridynamic implementations are available: Peridigm (Littlewood, 2015) and PDLammps (Parks et al., 2008). Both of these codes rely on the Message Passing Interface (MPI). On modern supercomputers, many core architectures where the threads per computational node increase, it is more and more important to focus on the fine-grain parallelism with increasing cores per computational nodes. NLMech is based on the C++ standard library for parallelism and concurrency (HPX) . For more details on utilization of asynchronous many-task systems, we refer to Diehl et al. (2020). The library implements the experimental nonlinear bond-based and state-based models, and the process of adding new material models is simple following the existing templates.

Future directions
We are interested in extending/improving the library with • implementation of new material models, • higher order time discretization schemes, • local-nonlocal coupling methods, and • further optimization of nonlocal computation.
If you are interested in contributing, please read our guidelines and our code of conduct before doing so.

Acknowledgments
NLMech has been funded by: For a updated list of previous and current funding, we refer to the corresponding NLMech website.