Abstract
PDMATLAB2D is a meshfree peridynamics implementation in MATLAB suitable for simulation of two-dimensional fracture problems. The purpose of this code is twofold. First, it provides an entry-level peridynamics computational tool for educational and training purposes. Second, it serves as an accessible and easily modifiable computational tool for peridynamics researchers who would like to adapt the code for a multitude of peridynamics simulation scenarios. The current version of the code implements a bond-based brittle elastic peridynamic model and a critical stretch criterion for bond breaking. However, the code is designed to be extendable for other peridynamic models and computational features. In this paper, we provide an overview of the code structure and functions with illustrative examples. Due to the integrated computation and postprocessing MATLAB capabilities, PDMATLAB2D can serve as an effective testbed for testing new constitutive models and advanced numerical features for peridynamics computations.
Similar content being viewed by others
Availability of Data and Materials
The code described in this work is openly available: https://github.com/ORNL/PDMATLAB2D, including direct reproduction of the numerical examples and demonstrations within the paper.
Change history
13 February 2024
A Correction to this paper has been published: https://doi.org/10.1007/s42102-024-00116-0
Notes
We include a separate dependence on \(\textbf{x}\) and \(\textbf{x}^\prime\) as well as an explicit time dependence in the pairwise force function, which are necessary to account for bond breaking.
While influence functions can be general functions of PD bonds, here we employ spherical influence functions, which only depend on the bond length [35].
Another criterion for bond breaking based on a critical energy density was proposed in [41].
Note that the extension of the family of a source node only contributes to the numerical integration for influence functions whose support is nonzero for the added family nodes.
The Poisson’s ratio of soda-lime glass is \(\nu = 0.22\); however, the two-dimensional plane stress PD model has a Poisson’s ratio of \(\nu = 1/3\) [53].
The value of \(V_{11}\) is chosen to ensure a small deformation, because the derivations in Appendix D are for a linearized model.
References
Silling SA (2000) Reformulation of elasticity theory for discontinuities and long-range forces. J Mech Phys Solids 48(1):175–209. https://doi.org/10.1016/S0022-5096(99)00029-0
Dahal B, Seleson P, Trageser J (2022) The evolution of the peridynamics co-authorship network. J Peridyn Nonlocal Model. https://doi.org/10.1007/s42102-022-00082-5
Parks ML, Lehoucq RB, Plimpton SJ, Silling SA (2008) Implementing peridynamics within a molecular dynamics code. Comput Phys Commun 179(11):777–783. https://doi.org/10.1016/j.cpc.2008.06.011
Parks ML, Seleson P, Plimpton SJ, Silling SA, Lehoucq RB (November 2011) Peridynamics with LAMMPS: A user guide v0.3 beta. Technical Report SAND2011-8523, Sandia National Laboratories, Albuquerque, New Mexico 87185 and Livermore, California 94550. https://doi.org/10.2172/1031301
Thompson AP, Aktulga HM, Berger R, Bolintineanu DS, Brown WM, Crozier PS, in ’t Veld PJ, Kohlmeyer A, Moore SG, Nguyen TD, Shan R, Stevens MJ, Tranchida J, Trott C, Plimpton SJ (2022) LAMMPS - a flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales. Comput Phys Commun 271, 108171. https://doi.org/10.1016/j.cpc.2021.108171
Plimpton S, Kohlmeyer A, Thompson A, Moore S, Berger R. LAMMPS. https://doi.org/10.5281/zenodo.3726416
Parks ML, Littlewood DJ, Mitchell JA, Silling SA (September 2012) Peridigm users’ guide v1.0.0. Technical Report SAND2012-7800, Sandia National Laboratories, Albuquerque, New Mexico 87185 and Livermore, California 94550. https://doi.org/10.2172/1055619
Peridigm. https://github.com/peridigm/peridigm
Heroux MA, Willenbring JM (2012) A new overview of the Trilinos project. Sci Program 20(2):83–88. https://doi.org/10.3233/SPR-2012-0355
Jafarzadeh S, Mousavi F, Bobaru F (2022) PeriFast/Dynamics: a MATLAB code for explicit fast convolution-based peridynamic analysis of deformation and fracture. Preprint at https://doi.org/10.21203/rs.3.rs-2019917/v1
Wang L, Jafarzadeh S, Bobaru F (2022) PeriFast/Corrosion: a 3D pseudo-spectral peridynamic Matlab code for corrosion. Preprint at https://doi.org/10.21203/rs.3.rs-2046856/v1
PeriFast. https://github.com/PeriFast/Code
Han F, Li Z (2022) A peridynamics-based finite element method (PeriFEM) for quasi-static fracture analysis. Acta Mech Solida Sin 35(3):446–460. https://doi.org/10.1007/s10338-021-00307-y
Jha PK, Desai PS, Bhattacharya D, Lipton R (2021) Peridynamics-based discrete element method (PeriDEM) model of granular systems involving breakage of arbitrarily shaped particles. J Mech Phys Solids 151, 104376. https://doi.org/10.1016/j.jmps.2021.104376
Jha PK. PeriDEM. https://doi.org/10.5281/zenodo.4733259
Li X, Ye H, Zhang J (2020) Large-scale simulations of peridynamics on Sunway Taihulight supercomputer. In: 49th International Conference on Parallel Processing-ICPP, pp. 1–11. https://doi.org/10.1145/3404397.3404421
Wang X, Wang Q, An B, He Q, Wang P, Wu J (2022) A GPU parallel scheme for accelerating 2D and 3D peridynamics models. Theor Appl Fract Mech 121, 103458. https://doi.org/10.1016/j.tafmec.2022.103458
Zhong J, Han F, Zhang L (2022) Accelerated peridynamic computation on GPU for quasi-static fracture simulations. Preprint at https://doi.org/10.21203/rs.3.rs-1937120/v1
Mossaiby F, Shojaei A, Zaccariotto M, Galvanetto U (2017) OpenCL implementation of a high performance 3D Peridynamic model on graphics accelerators. Comput Math Appl 74(8):1856–1870. https://doi.org/10.1016/j.camwa.2017.06.045
Boys B, Dodwell TJ, Hobbs M, Girolami M (2021) PeriPy-A high performance OpenCL peridynamics package. Comput Methods Appl Mech Eng 386, 114085. https://doi.org/10.1016/j.cma.2021.114085
Jha PK, Diehl P (2021) NLMech: Implementation of finite difference/meshfree discretization of nonlocal fracture models. J Open Source Softw 6(65):3020. https://doi.org/10.21105/joss.03020
Diehl P, Jha PK. NLMech: Release for the JOSS paper. https://doi.org/10.5281/zenodo.5532697
Reeve S, Seleson P. CabanaPD. https://doi.org/10.5281/zenodo.7087781
Dark J, Sansom K, Littlewood D, Trageser J, Wolf I, Patton C (2019) Peridot. https://doi.org/10.11578/dc.20191118.1
Silling SA, Askari E (2005) A meshfree method based on the peridynamic model of solid mechanics. Comput Struct 83(17–18):1526–1535. https://doi.org/10.1016/j.compstruc.2004.11.026
Emmrich E, Weckner O (2007) The peridynamic equation and its spatial discretisation. Math Model Anal 12(1):17–27. https://doi.org/10.3846/1392-6292.2007.12.17-27
Chen X, Gunzburger M (2011) Continuous and discontinuous finite element methods for a peridynamics model of mechanics. Comput Methods Appl Mech Eng 200(9–12):1237–1250. https://doi.org/10.1016/j.cma.2010.10.014
Ren B, Wu CT, Askari E (2017) A 3D discontinuous Galerkin finite element method with the bond-based peridynamics model for dynamic brittle failure analysis. Int J Impact Eng 99:14–25. https://doi.org/10.1016/j.ijimpeng.2016.09.003
Pasetto M, Leng Y, Chen J-S, Foster JT, Seleson P (2018) A reproducing kernel enhanced approach for peridynamic solutions. Comput Methods Appl Mech Eng 340:1044–1078. https://doi.org/10.1016/j.cma.2018.05.010
Trask N, You H, Yu Y, Parks ML (2019) An asymptotically compatible meshfree quadrature rule for nonlocal problems with applications to peridynamics. Comput Methods Appl Mech Eng 343:151–165. https://doi.org/10.1016/j.cma.2018.08.016
Shojaei A, Hermann A, Cyron CJ, Seleson P, Silling SA (2022) A hybrid meshfree discretization to improve the numerical performance of peridynamic models. Comput Methods Appl Mech Eng 391, 114544. https://doi.org/10.1016/j.cma.2021.114544
Seleson P, Pasetto M, John Y, Trageser J (2023) PDMATLAB2D: Version 1.0.3. https://doi.org/10.5281/zenodo.8309688
Bobaru F, Foster JT, Geubelle PH, Silling SA (eds.) (2016) Handbook of Peridynamic Modeling, 1st edn. Chapman and Hall/CRC, New York, NY. https://doi.org/10.1201/9781315373331
Silling SA, Epton M, Weckner O, Xu J, Askari E (2007) Peridynamic states and constitutive modeling. J Elast 88(2):151–184. https://doi.org/10.1007/s10659-007-9125-1
Silling SA, Lehoucq RB (2010) Peridynamic theory of solid mechanics. In: Aref, H., van der Giessen, E. (eds.) Advances in Applied Mechanics. Advances in Applied Mechanics, vol. 44, pp. 73–168. Elsevier, Amsterdam, The Netherlands. https://doi.org/10.1016/S0065-2156(10)44002-8
Madenci E, Oterkus E (2014) Peridynamic Theory and Its Applications, 1st edn. Springer, New York, NY. https://doi.org/10.1007/978-1-4614-8465-3
Gerstle W, Sau N, Silling S (2005) Peridynamic modeling of plain and reinforced concrete structures. In: 18th International Conference on Structural Mechanics in Reactor Technology (SMiRT 18), pp. 54–68. http://www.lib.ncsu.edu/resolver/1840.20/31420
Seleson P, Parks M (2011) On the role of the influence function in the peridynamic theory. Int J Multiscale Comput Eng 9(6):689–706. https://doi.org/10.1615/IntJMultCompEng.2011002527
Seleson PD (2010) Peridynamic multiscale models for the mechanics of materials: constitutive relations, upscaling from atomistic systems, and interface problems. PhD thesis, The Florida State University. http://purl.flvc.org/fsu/fd/FSU_migr_etd-0273
Foster JT, Silling SA, Chen W (2011) An energy based failure criterion for use with peridynamic states. Int J Multiscale Comput Eng 9(6):675–688. https://doi.org/10.1615/IntJMultCompEng.2011002407
Seleson P (2014) Improved one-point quadrature algorithms for two-dimensional peridynamic models based on analytical calculations. Comput Methods Appl Mech Eng 282:184–217. https://doi.org/10.1016/j.cma.2014.06.016
Seleson P, Littlewood DJ (2016) Convergence studies in meshfree peridynamic simulations. Comput Math Appl 71(11):2432–2448. https://doi.org/10.1016/j.camwa.2015.12.021
Seleson P, Littlewood DJ (2018) Numerical tools for improved convergence of meshfree peridynamic discretizations. In: Voyiadjis G (ed.) Handbook of Nonlocal Continuum Mechanics for Materials and Structures, pp. 1–27. Springer, Cham. https://doi.org/10.1007/978-3-319-22977-5_39-1
Bobaru F, Ha YD (2011) Adaptive refinement and multiscale modeling in 2D peridynamics. Int J Multiscale Comput Eng 9(6):635–660. https://doi.org/10.1615/IntJMultCompEng.2011002793
Yu K, Xin XJ, Lease KB (2011) A new adaptive integration method for the peridynamic theory. Model Simul Mater Sci Eng 19(4):045003. https://doi.org/10.1088/0965-0393/19/4/045003
Zheng G, Wang J, Shen G, Xia Y, Li W (2021) A new quadrature algorithm consisting of volume and integral domain corrections for two-dimensional peridynamic models. Int J Fract 229(1):39–54. https://doi.org/10.1007/s10704-021-00540-z
Scabbia F, Zaccariotto M, Galvanetto U (2022) Accurate computation of partial volumes in 3D peridynamics. Eng Comput 39:959–991. https://doi.org/10.1007/s00366-022-01725-3
Hairer E, Lubich C, Wanner G (2003) Geometric numerical integration illustrated by the Störmer-Verlet method. Acta Numer 12:399–450. https://doi.org/10.1017/S0962492902000144
Seleson P, Parks ML, Gunzburger M, Lehoucq RB (2009) Peridynamics as an upscaling of molecular dynamics. Multiscale Model Simul 8(1):204–227. https://doi.org/10.1137/09074807X
Ha YD, Bobaru F (2010) Studies of dynamic crack propagation and crack branching with peridynamics. Int J Fract 162(1–2):229–244. https://doi.org/10.1007/s10704-010-9442-4
Bobaru F, Zhang G (2015) Why do cracks branch? A peridynamic investigation of dynamic brittle fracture. Int J Fract 196:59–98. https://doi.org/10.1007/s10704-015-0056-8
Trageser J, Seleson P (2020) Bond-based peridynamics: A tale of two Poisson’s ratios. J Peridyn Nonlocal Model 2(3):278–288. https://doi.org/10.1007/s42102-019-00021-x
Goldman R (1990) Intersection of two lines in three-space. In: Glassner AS (ed.) Graphics Gems, p. 304. Morgan Kaufmann, San Diego, California. https://doi.org/10.1016/B978-0-08-050753-8.50064-4
Ongaro G, Seleson P, Galvanetto U, Ni T, Zaccariotto M (2021) Overall equilibrium in the coupling of peridynamics and classical continuum mechanics. Comput Methods Appl Mech Eng 381, 113515. https://doi.org/10.1016/j.cma.2020.113515
Funding
Research sponsored by the Laboratory Directed Research and Development Program of Oak Ridge National Laboratory, managed by UT-Battelle, LLC for the US Department of Energy under contract DE-AC05-00OR22725. This work was supported in part by the U.S. Department of Energy, Office of Science, Office of Workforce Development for Teachers and Scientists (WDTS) under the Science Undergraduate Laboratory Internship program.
Author information
Authors and Affiliations
Contributions
P.S. led the overall code development and paper writeup, supervised Y.J. on the writing of the initial version of the code and numerical examples, worked with M.P. on updating the initial version of the code, wrote most of the sections of the paper, and performed the analytical derivations. M.P. assisted in updating the initial version of the code as well as on the writeup of many sections of the paper, and he wrote the initial version of the Numerical Examples section. Y.J. wrote the initial version of the code and numerical examples. J.T. wrote the appendix of the paper on the intersection of two line segments and an initial version of some visualization functions, and he optimized and cleaned up several parts of the code. S.T.R. wrote the literature review of peridynamics codes and handled the software version control and release. All the authors reviewed the manuscript.
Corresponding author
Ethics declarations
Competing Interests
The authors declare no competing interests.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
This manuscript has been authored in part by UT-Battelle, LLC, under contract DE-AC05-00OR22725 with the US Department of Energy (DOE). The US government retains and the publisher, by accepting the article for publication, acknowledges that the US government retains a nonexclusive, paid-up, irrevocable, worldwide license to publish or reproduce the published form of this manuscript, or allow others to do so, for US government purposes. DOE will provide public access to these results of federally sponsored research in accordance with the DOE Public Access Plan (http://energy.gov/downloads/doe-public-access-plan).
This article has been authored by an employee of National Technology & Engineering Solutions of Sandia, LLC under Contract No. DE-NA0003525 with the U.S. Department of Energy (DOE). The employee owns all right, title and interest in and to the article and is solely responsible for its contents. The United States Government retains and the publisher, by accepting the article for publication, acknowledges that the United States Government retains a non-exclusive, paid-up, irrevocable, world-wide license to publish or reproduce the published form of this article or allow others to do so, for United States Government purposes. The DOE will provide public access to these results of federally sponsored research in accordance with the DOE Public Access Plan (https://www.energy.gov/downloads/doe-public-access-plan).
The original version of this article has been revised to correct the copyright holder name.
Appendices
Appendix A. Derivation of a Microelastic Bond-Based PD Model
In this appendix, we derive the functional form of a microelastic bond-based PD model, following [1].
Let a bond-based PD pairwise force function be \(\textbf{f}(\varvec{\eta },\textbf{x}^\prime , \textbf{x},t)\) with \(\varvec{\eta }, \textbf{x}^\prime , \textbf{x}\in \mathbb {R}^3\) and \(t\geqslant 0\), where \(\varvec{\eta }: = \textbf{u}(\textbf{x}^\prime ,t) - \textbf{u}(\textbf{x},t)\). Then, by the linear admissibility condition:
and by the angular admissibility condition:
where \(\varvec{\xi }: = \textbf{x}^\prime - \textbf{x}\). By (A1) and (A2), we can express the pairwise force function as follows:
where F is a symmetric scalar-valued function:
For a microelastic material, the following condition holds:
Assuming F is continuously differentiable on \(\varvec{\eta }\), we have:
where \(\varepsilon _{ijk}\) is the Levi-Civita symbol, \(\{\textbf{e}_k\}_{k=1,2,3}\) is the set of standard Cartesian unit vectors, and we used Einstein summation convention for repeated indices. Then, by (A5), we have
where A is a scalar-valued function. Note that
Consequently, we can express F as follows:
where \(H(p,\textbf{x}^\prime , \textbf{x},t)\) with \(p=\Vert \varvec{\xi } + \varvec{\eta }\Vert\) is a scalar-valued function continuously differentiable on p.
Combining (A6) and (A3), we can express the microelastic bond-based PD pairwise force function as follows:
where f is a scalar-valued function given by
Appendix B. Derivation of the Maximum Grid Perturbation in GridGenerator
Consider a rectangular cell centered at node i with coordinates \((x_i,y_i)\) with edge lengths \(\Delta x\) and \(\Delta y\) in the x- and y-directions, respectively, and assume a perturbation of the cell vertices. For simplicity, in the derivations below, we assume only three of the four vertices are perturbed, and we denote these by A, B, and C, as illustrated in Fig. 13. The perturbed vertices are denoted by \(A^\prime\), \(B^\prime\), and \(C^\prime\), respectively (see Fig. 13), and the region of admissible new positions for a given vertex after perturbation is given by a rectangular region of size \(2\alpha \Delta x \times 2\alpha \Delta y\) centered at the vertex (see Fig. 13), where \(\alpha\) is a given parameter. We seek the value of the parameter \(\alpha\) for which \(C^\prime\) falls on the line connecting \(A^\prime\) and \(B^\prime\) (see Fig. 13), which represents the limiting value for which the shape of the deformed cell remains convex.
Consider the following three vertices:
To consider the worst case scenario, we assume the following perturbed vertices (see Fig. 13):
Let the line connecting the nodes \(A^\prime\) and \(B^\prime\) be
where \(a_1\) and \(a_0\) are parameters. The slope of the line \(a_1\) is given by
Substituting \(a_1\) in (B8) and evaluating the line at the vertex \(A^\prime\), we have
from which \(a_0\) can be obtained:
We now substitute the coordinates of \(C^\prime\) in the line given by (B8) with coefficients given by (B9) and (B10):
from which we obtain, after some algebraic manipulations,
Appendix C. Derivation of c and \(s_0\)
This appendix presents derivations of the expressions of the micromodulus constant c and critical stretch \(s_0\) for the GPMB model (see Sect. 2.1) in two-dimensional plane elasticity, following analogous derivations for the PMB model in three dimensions [26].
1.1 C.1 Micromodulus Constant
The micromodulus constant c can be obtained by equating the PD macroelastic energy density and the strain energy density from the classical theory of elasticity, under a suitable deformation.
Consider a static isotropic extension given by \(\textbf{u}(\textbf{x}) = \bar{s} \textbf{x}\) with \(\bar{s}\) constant. In this case, \(\varvec{\eta } = \bar{s} \varvec{\xi }\), which results in a constant stretch: \(s(\Vert \varvec{\xi } + \varvec{\eta }\Vert ,\Vert \varvec{\xi }\Vert ) = \bar{s}\) for all \(\varvec{\eta },\varvec{\xi } \in \mathbb {R}^2\). Then, we can express the macroelastic energy density of the GPMB model for a point \(\textbf{x}\) in the bulk of a body (assuming \(\mu \equiv 1\)) as follows (see (7) and (10)):
where we used the change of variable \(\textbf{x}^\prime = \textbf{x}+\varvec{\xi }\) and
is the neighborhood around the origin (cf. (2)). Using polar coordinates,
Note that the arguments of W have been omitted. The time dependence has been omitted because the imposed deformation is static; the spatial dependence, on the other hand, has been omitted because the macroelastic energy density is spatially independent in the bulk of a body for an isotropic extension. Below, we similarly omit these arguments for clarity.
The integral in (C11) can be computed by direct computation for the influence functions presented in Sect. 2.1.1, resulting in the following expressions:
Plane strain: In classical linear elasticity, the strain energy density for an isotropic material in a state of plane strain is given by (see, e.g., [53]):
where E is the Young’s modulus, \(\nu\) is the Poisson’s ratio, and \(\varepsilon _{ij}\) with \(i,j = 1,2\) are the components of the infinitesimal strain tensor:
For the isotropic extension given by \(\textbf{u}(\textbf{x}) = \bar{s} \textbf{x}\), we have \(\varepsilon _{11} = \varepsilon _{22} = \bar{s}\) and \(\varepsilon _{12} = 0\). Then,
In the case of plane strain, two-dimensional isotropic bond-based PD models are restricted to a Poisson’s ratio of \(\nu = 1/4\) [38, 53]. In this case,
Assuming \(W = W^{C\varepsilon }\), we thus obtain from (C11) and (C14):
where the result depends on the choice of influence function. Using (C12), the resulting expressions corresponding to the different influence functions are summarized in Sect. 3.4 (see Table 2 (top row)).
Plane stress: In classical linear elasticity, the strain energy density for an isotropic material in a state of plane stress is given by (see, e.g., [53]):
For the isotropic extension given by \(\textbf{u}(\textbf{x}) = \bar{s} \textbf{x}\), we have (recall \(\varepsilon _{11} = \varepsilon _{22} = \bar{s}\) and \(\varepsilon _{12} = 0\))
In the case of plane stress, two-dimensional isotropic bond-based PD models are restricted to a Poisson’s ratio of \(\nu = 1/3\) [38, 53]. In this case,
Assuming \(W = W^{C\sigma }\), we thus obtain from (C11) and (C17):
where the result again depends on the choice of influence function. Using (C12), the resulting expressions corresponding to the different influence functions are summarized in Sect. 3.4 (see Table 2 (bottom row)).
Remark 10
We observe that, while the expressions for the micromodulus constant c in (C15) and (C18) depend on h, in practice, h cancels out when c is substituted in expressions for the computation of PD quantities (see, e.g., (1)).
1.2 C.2 Critical Stretch
To compute the critical stretch \(s_0\), we assume any bond breaks irreversibly when it reaches the critical stretch. Then, we consider a fracture surface (see illustration in Fig. 14), compute the total energy per unit area released by breaking all the bonds crossing that surface, and compare the result to the fracture energy \(G_0\).
Mimicking the calculations in [26], adapted to a two-dimensional case (see Fig. 14), we have (cf. (10))
We now have
Changing the order of integration, we obtain
Using the change of variable \(a = x/r\), we have
where
The critical stretch \(s_0\) can then be expressed as follows:
The integral in (C20) can be computed by direct computation for the influence functions presented in Sect. 2.1.1, resulting in the following expressions:
Using these expressions as well as the expressions for the micromodulus constant c from Sect. 3.4 (see Table 2) in (C20), the resulting expressions for the critical stretch corresponding to the different influence functions are summarized in Sect. 3.4 (see Table 3) for both plane strain (top row) and plane stress (bottom row).
Appendix D. Quadratic Deformation Test for the ForceEnergyDensity Function
Consider a quadratic static deformation given by a displacement field \(\textbf{u}(x,y) =(v(x,y),w(x,y))\) of the following form:
where \(V_{11}\) is a constant. We would like to evaluate the internal force density and macroelastic energy density at a point \(\textbf{x}\) in the bulk of a body for the GPMB model. For this purpose, we approximate these quantities by resorting to their linearization under the assumption that \(\Vert \varvec{\eta }\Vert \ll \delta\). In this case, the stretch in (9) can be approximated via a Taylor expansion, as follows:
where we used Einstein summation convention for repeated indices, and we note that \(s(\Vert \varvec{\xi }\Vert ,\Vert \varvec{\xi }\Vert ) = 0\) for all \(\varvec{\xi }\in \mathbb {R}^2\) (see (9)). Expressing the stretch as follows:
where \(\varvec{\xi } = (\xi _1,\xi _2)\) and \(\varvec{\eta } = (\eta _1,\eta _2)\), we can easily compute
which results in (see (D23))
where we omitted terms of order \(\mathcal {O}(\Vert \varvec{\eta }\Vert ^2)\). The GPMB pairwise force function (6) with (8) and pairwise potential function (cf. (10)) can then be approximated (assuming \(\mu \equiv 1\) and omitting the time dependence) as follows:
Using the linearized expression for the pairwise force function and pairwise potential function given in (D24) and (D25), respectively, we compute the internal force density and macroelastic energy density for a point \(\textbf{x}\) in the bulk of a body under the quadratic deformation given in (D22a) and (D22b). To this end, we first note that, in this case, the relative displacement is given by
We then obtain,
Then,
The components of the internal force density at \(\textbf{x}\) are given by:
where we used antisymmetry to eliminate the term with \(\xi _1^3\) in the expression for \(F_1(\textbf{x})\) and to conclude that \(F_2 (\textbf{x}) \approx 0\). Using the expressions for c for plane strain (C15) and plane stress (C18), we obtain
We now compute the macroelastic energy density at \(\textbf{x}\):
Using the expressions for c for plane strain (C15) and plane stress (C18), we can express the macroelastic energy density, as follows:
-
Plane strain
$$\begin{aligned} \begin{aligned} W(\textbf{x})&\approx \frac{\pi }{32} \frac{16}{5\pi } \frac{E}{\displaystyle h \int _0^{\delta } \omega (r) r^2 dr} h V_{11}^2 \int _0^{\delta } \, \omega (r) \, \left( 24x^2 r^2 + 5 r^4\right) dr\\&= \frac{E V_{11}^2}{10} \left[ 24x^2 + 5\, \frac{\displaystyle \int _0^{\delta } \, \omega (r) r^4 dr}{\displaystyle \int _0^{\delta }\, \omega (r) r^2 dr} \right] . \end{aligned} \end{aligned}$$(D27) -
Plane stress
$$\begin{aligned} \begin{aligned} W(\textbf{x})&\approx \frac{\pi }{32} \frac{3}{\pi } \frac{E}{\displaystyle h\int _0^{\delta } \omega (r) r^2 dr} h V_{11}^2 \int _0^{\delta } \, \omega (r) \, \left( 24x^2 r^2 + 5 r^4\right) dr \\&= \frac{3EV_{11}^2 }{32} \left[ 24x^2 + 5 \, \frac{\displaystyle \int _0^{\delta } \, \omega (r) \, r^4 dr }{\displaystyle \int _0^{\delta }\, \omega (r) r^2 dr} \right] . \end{aligned} \end{aligned}$$(D28)
We now have
Using the expressions given in (C12) and (D29) in (D27) and (D28), we obtain the results reported in Table D1.
Remark 11
Given the quadratic deformation in (D22a) and (D22b), the strain components are: \(\varepsilon _{11} = 2V_{11}x\), \(\varepsilon _{12} = 0\), and \(\varepsilon _{22} = 0\). Consequently, the corresponding strain energy density in classical linear elasticity, for the case of plane strain (for \(\nu = 1/4\)), is (see (C13))
and, for the case of plane stress (for \(\nu = 1/3\)), is (see (C16))
which correspond to the expressions reported in Table D1, in the limit as \(\delta \rightarrow 0\).
Remark 12
The stress–strain relation in plane-strain classical linear elasticity is given by:
where \(\sigma _{ij}\), \(i,j=1,2\), are the components of the stress tensor and \(\varepsilon _{ij}\), \(i,j=1,2\), are the components of the strain tensor, and where E is the Young’s modulus and \(\nu\) is the Poisson’s ratio. Under the quadratic deformation given in (D22a) and (D22b), \(\varepsilon _{11} = 2V_{11}x\), \(\varepsilon _{12} = 0\), and \(\varepsilon _{22} = 0\), and we get (for \(\nu = 1/4\)):
The internal force density is given by \(\textbf{F}^{\text{CE}}: = \nabla \cdot \varvec{\sigma }\), which, in component form in this case, is:
Similarly, the stress–strain relation in plane-stress classical linear elasticity is given by:
Under the quadratic deformation given in (D22a) and (D22b), \(\varepsilon _{11} = 2V_{11}x\), \(\varepsilon _{12} = 0\), and \(\varepsilon _{22} = 0\), and we get (for \(\nu = 1/3\)):
The internal force density, in component form in this case, is:
The results for both plane strain and plane stress coincide with the ones in (D26a) and (D26b); i.e., for the given quadratic deformation, the linearized GPMB model possesses the same internal force density (for points in the bulk of a body) as in classical linear elasticity.
Appendix E. Intersection of Two Line Segments
This section describes a method for determining if two line segments in a plane intersect. It is a planar treatment of the line segment intersection algorithm found in [54].
Consider two line segments in the xy-plane. Without loss of generality, one may select points \(\textbf{p}\) and \(\textbf{q}\) and directions \(\textbf{r}\) and \(\textbf{s}\) so that the line segments are defined parametrically as:
and
An illustration is shown in Fig. 15.
We start by determining if the two line segments are parallel, which is easily determined by calculating the cross product \(\textbf{r} \times \textbf{s}\). Specifically, \(\textbf{r} \times \textbf{s} = \textbf{0}\) implies that the line segments are parallel and \(\textbf{r} \times \textbf{s} \ne \textbf{0}\) implies that the line segments are not parallel. The two cases are treated separately, starting with parallel line segments.
Line Segments are Parallel (\(\textbf{r} \times \textbf{s} = \textbf{0}\))
The next step is to determine if the line segments are collinear, which is true if and only if \(\textbf{q}-\textbf{p}\) is parallel to \(\textbf{r}\), i.e., \((\textbf{p}-\textbf{q}) \times \textbf{r} = \textbf{0}\). If the line segments are not collinear, they clearly do not intersect. On the other hand, if the line segments are collinear, one must check whether they overlap. This is accomplished by writing the endpoints \(\textbf{p}\) and \(\mathbf {p+r}\) of the line segment \(\textbf{L}_{\textbf{p}}\) in terms of the line segment \(\textbf{L}_{\textbf{q}}\):
Solving for \(u_0\) and \(u_1\) in (E34) yields
There is no overlap if and only if \(\max \left\{ u_0, u_1 \right\} < 0\) or \(\min \left\{ u_0, u_1\right\} > 1\). Geometrically, these two conditions imply that along the line containing the two line segments, \(\textbf{L}_{\textbf{p}}\) is entirely to the left of \(\textbf{L}_{\textbf{q}}\) or \(\textbf{L}_{\textbf{p}}\) is entirely to the right of \(\textbf{L}_{\textbf{q}}\). Next, line segments which are not parallel are considered.
Line Segments are not Parallel (\(\textbf{r} \times \textbf{s} \neq \textbf{0}\))
The line segments intersect if there exist \(u_0\) and \(t_0\) in the interval [0, 1] such that
This may be determined by solving for \(t_0\) and \(u_0\). In (E36), subtracting \(\textbf{p}\) and then taking the cross product with respect to \(\textbf{s}\) results in (note that \(\textbf{s} \times \textbf{s} = \textbf{0}\))
Since \(\textbf{r},\textbf{s},\) and \(\textbf{q}-\textbf{p}\) are in the xy-plane, the first two components of the cross products in (E37) are zero. We conclude
where the subscript z signifies the third component of the vector. Similarly, in (E36), subtracting \(\textbf{q}\) and then taking the cross product with respect to \(\textbf{r}\) results in (note that \(\textbf{r} \times \textbf{r} = \textbf{0}\))
If \(u_0,t_0 \in [0,1]\), one may conclude that the line segments intersect. Otherwise, they do not.
Appendix F. Numerical Computation of the Internal Force Density and Macroelastic Energy Density
We present numerical computations of the internal force density \(\textbf{F}\) and macroelastic energy density W to check the correctness of their computation by the ForceEnergyDensity function (see Sect. 3.5). For this purpose, we consider a domain \(\Omega = (0,1)\times (0,1)\) and we impose a deformation on all the nodes in the domain. We choose a PD horizon \(\delta = 0.2\) and a Young’s modulus \(E = 1\) in consistent units. To check the computation of W, we consider an isotropic extension with constant stretch \(\bar{s} = 0.1\) for which \(W = 8E\bar{s}^2/5\) for plane strain (see (C14)) and \(W = 3E\bar{s}^2/2\) for plane stress (see (C17)). To check the computation of \(\textbf{F}\), we consider a quadratic deformation given by \(\textbf{u}({x,y}) = (V_{11}x^2,0)\) with \(V_{11} = 0.01\) for which \(\textbf{F} \approx (12 V_{11}E/5,0)\) for plane strain and \(\textbf{F} \approx (9 V_{11}E/4,0)\) for plane stress (see (D26a) and (D26b)).Footnote 6 Table F2 reports the corresponding results for a point in the bulk of the body, for a discretization given by a uniform grid of grid spacing \(\Delta x = \Delta y = \delta /6\), using the function TestForceEnergyDensity based on the computations for uniform grids over rectangular domains (see Sect. 3.5); the same results are obtained based on the computations for general grids.
Remark 13
The results reported in Table F2 depend on the particular discretization chosen. A comparative study between the different partial-area algorithms is presented in [42]. Note that for the case of \(\omega _{0.5}\), the accuracy of the PA-AC algorithm is reduced compared to the case where ω0 is used; this is expected since evaluating ω0.5 at quadrature points outside the neighborhood returns a zero value, as opposed to \(\omega _0\).
Remark 14
The selection of problems and quantities reported in Table F2 was based on having quantities that neither vanish nor change for the different influence functions, for brevity. For the isotropic extension case, the internal force density \(\textbf{F}\) vanishes for points in the bulk of a body, so we only report the macroelastic energy density W. For the quadratic deformation case, the y-component of the internal force density (\(F_2\)) vanishes (see (D26b)), while the macroelastic energy density W varies for different influence functions (see Table D1), so we only report the x-component of the internal force density (\(F_1\)).
Appendix G. Numerical Computation of the Fracture Energy
We present a numerical computation of the fracture energy to confirm the expressions of the critical stretch reported in Sect. 3.4 (see Table 3) by computing a numerical analogue of (C19), as described below.
Let us consider a vertical line representing a surface at \(x=0\). We numerically approximate the energy per unit area resulting from all the interactions between points along a horizontal line to the left of the vertical line and their neighboring points on the right side of the vertical line, under the assumption that all the corresponding bonds are critically stretched. For this purpose, we discretize the horizontal line with a set of line segments of length \(\Delta x\), and we discretize the space on the right side of the vertical line with a uniform grid of cells of area \(\Delta x \Delta y\). We then sum all the pairwise potentials of the bonds connecting the nodes centered at the line segments to their neighboring cells while weighting each pairwise potential by the product of the line segment length and the neighboring area. An illustration of the system is presented in Fig. 16. This calculation is inspired by the numerical computations of nonlocal tractions presented in [55].
Choose a horizon \(\delta = 1\) and a grid spacing \(\Delta x = \Delta y= \delta /6\), and let a domain be \(\Omega = (-1,1)\times (-1-\tfrac{\Delta y}{2},1+\tfrac{\Delta y}{2})\), which is uniformly discretized based on the grid spacing. Let the point intersecting the horizontal and vertical lines be \(\textbf{x}_0 = (x_0,y_0)\). Define the set \(\mathcal {S}^{\text{L}}\) of nodes on the horizontal line on the left side of the vertical line within \(\Omega\) (see green nodes in Fig. 16):
and the set \(\mathcal {S}^{\text{R}}\) of nodes on the right side of the vertical line within \(\Omega\) (see black nodes in Fig. 16) as:
which is built as a Cartesian product. Let \(\textbf{x}_i^{\text{L}} \in \mathcal {S}^{\text{L}}, {i = }1, \ldots , N^{\text{L}},\) and \(\textbf{x}_{{{j}}}^{\text{R}} \in \mathcal {S}^{\text{R}}, {j=}1, \ldots , N^{\text{R}},\) be the reference positions of the nodes within each set. A numerical analogue of (C19), \(G^h_0\), can be expressed as follows:
where \(\hat{\mathcal{F}}^{\text{R}}_i\) is a set of indices corresponding to the quadrature points for the two inner integrals in (C19), \(\hat{\textbf{x}}^{\text{R}}_{j(i)}\) is the jth quadrature point, and \(\hat{A}^{\text{R}}_{j(i)}\) is the corresponding jth quadrature weight associated with node i located at \(\textbf{x}_i^{\text{L}}\) (cf. (14)).
Let the Young’s modulus be \(E = 1\) and the fracture energy be \(G_0 = 1\) in consistent units. We compute \(G^h_0\) for both plane strain and plane stress assumptions for the different influence functions, and we compare the results with \(G_0\). These results are reported in Table G3. Note that the value of \(c h s_0^2\) is the same for both plane strain and plane stress (cf. (C20)), for each influence function, so we report both results together.
Appendix H. Input Decks for Numerical Examples
1.1 H.1 WavePropagation Input Deck
1.2 H.2 CrackBranching Input Deck
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Seleson, P., Pasetto, M., John, Y. et al. PDMATLAB2D: A Peridynamics MATLAB Two-dimensional Code. J Peridyn Nonlocal Model 6, 149–205 (2024). https://doi.org/10.1007/s42102-023-00104-w
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s42102-023-00104-w