Derivation of the first-order implicit nonlocal differential operators
The displacement field at any point in the elastic body can be represented by three displacement components u, v, w along the rectangular coordinate axis, and it’s three dimension vector form is
$$\begin{aligned} {\mathbf {u}}= ( u,v,w )^T. \end{aligned}$$
(8)
The first-order Taylor series expansion at point (0,0) for a displacement field \({\mathbf {u}}\) is given as
$$\begin{aligned} {\mathbf {u}}'={\mathbf {u}}+\nabla {\mathbf {u}}\cdot {\varvec{\xi }}+O(\varvec{\xi }^2), \end{aligned}$$
(9)
where \(\nabla :=(\frac{\partial }{\partial x},\frac{\partial }{\partial y},\frac{\partial }{\partial z})\); \(\varvec{\xi }:=\) \((x, y,z)^T\) denotes the initial bond vector, \(O(\varvec{\xi }^2)\) represents higher-order terms, and for linear field \(O(\varvec{\xi }^2)=0\).
\(\left( {\mathbf {u}}'-{\mathbf {u}}\right) \otimes \varvec{\xi }\) can be obtained from Eq. 9 and can be shown as
$$\begin{aligned} \left( {\mathbf {u}}'-{\mathbf {u}}\right) \otimes \varvec{\xi }&=\nabla {\mathbf {u}}\cdot {\varvec{\xi }}\otimes \varvec{\xi }. \end{aligned}$$
Integrate \(\left( {\mathbf {u}}'-{\mathbf {u}}\right) \otimes \varvec{\xi }\) in the domain \({\mathcal {S}}_i\), one will obtain
$$\begin{aligned} \int _{{\mathcal {S}}_i}{\mathbbm {w}} \left( \varvec{\xi }\right) \left( {\mathbf {u}}'-{\mathbf {u}}\right) \otimes \varvec{\xi }\text {d}V= \nabla {\mathbf {u}}\int _{{\mathcal {S}}_i}{ \mathbbm {w}} \left( \varvec{\xi }\right) {\varvec{\xi }}\otimes \varvec{\xi }\text {d}V. \end{aligned}$$
(10)
The gradient operate \(\nabla {{\mathbf {u}}}\) can be expressed as
$$\begin{aligned} \nabla {{\mathbf {u}}}=\int _{{\mathcal {S}}_i}{ \mathbbm {w}}\left( \varvec{\xi }\right) \left( {\mathbf {u}}'-{\mathbf {u}}\right) \otimes \varvec{\xi }\text {d}V\cdot {\left[ \int _{{\mathcal {S}}_i}{ \mathbbm {w}} \left( \varvec{\xi }\right) {\varvec{\xi }}\otimes \varvec{\xi }\text {d}V\right] ^{-1}}. \end{aligned}$$
(11)
The discrete form of Eq. 11 at point \({\mathbf {x}}_i\) can be shown as
$$\begin{aligned} \nabla {{\mathbf {u}}_{i}}=\sum _{j\in {\mathcal {S}}_{i}}{ \mathbbm {w}}\left( \varvec{\xi }_{ij}\right) \left( {\mathbf {u}}_j-{\mathbf {u}}_i\right) \otimes \varvec{\xi }_{ij} \Delta V_j\cdot {\left[ \sum \nolimits _{j}{ \mathbbm {w}}\left( \varvec{\xi }_{ij}\right) {\varvec{\xi }_{ij}}\otimes \varvec{\xi }_{ij} \Delta V_j\right] ^{-1}}. \end{aligned}$$
(12)
To simplify the equation more conveniently, letting \({\mathcal {S}}_{i}=\begin{bmatrix}i,j_1,j_2,j_3,\cdots ,j_n\end{bmatrix}\), \({\mathbf {R}}_{j}={ \mathbbm {w}}\left( \varvec{\xi }_{ij}\right) \varvec{\xi }_{ij} ^T V_j\cdot {\left[ \sum _{j\in {\mathcal {S}}_{i}}{ \mathbbm {w}}\left( \varvec{\xi }_{ij}\right) {\varvec{\xi }_{ij}}\otimes \varvec{\xi }_{ij} \Delta V_j\right] ^{-1}}=(\xi _{x_j},\xi _{y_j},\xi _{z_j})\). The nonlocal gradient operator \(\tilde{\nabla }{{\mathbf {u}}}\) at point \({\mathbf {x}}_i\) can be rewritten as
$$\begin{aligned} \tilde{\nabla }{{\mathbf {u}}_i}=\sum _{j\in {\mathcal {S}}_{i}} \left( {\mathbf {u}}_j-{\mathbf {u}}_i\right) \begin{bmatrix}\xi _{x_j},\xi _{y_j},\xi _{z_j }\end{bmatrix}. \end{aligned}$$
(13)
According to Eq. 13, the matrix form of nonlocal gradient operator \(\tilde{\nabla }{{\mathbf {u}}}\) at point \({\mathbf {x}}_i\) for vector field can be expressed as
$$\begin{aligned} \tilde{\nabla }{{\mathbf {u}}_i}=\begin{bmatrix}\frac{{\partial u_i}}{ \partial x} &{}\frac{{\partial u_i}}{ \partial y} &{} \frac{{\partial u_i}}{ \partial z}\\ \frac{\partial v_i}{ \partial x} &{}\frac{\partial v_i}{ \partial y}&{}\frac{\partial v_i}{ \partial z} \\ \frac{\partial w_i}{ \partial x} &{}\frac{\partial w_i}{ \partial y}&{}\frac{\partial w_i}{ \partial z}\\ \end{bmatrix}=\begin{bmatrix}-\sum _{j\in {\mathcal {S}}_{i}} \xi _{x_j} &{} \xi _{x_{j1}} &{} \cdots &{}\xi _{x_{jn}} \\ -\sum _{j\in {\mathcal {S}}_{i}} \xi _{y_j} &{} \xi _{y_{j1}} &{} \cdots &{}\xi _{y_{jn}} \\ -\sum _{j\in {\mathcal {S}}_{i}} \xi _{z_j} &{} \xi _{z_{j1}} &{} \cdots &{}\xi _{z_{jn}} \\ \end{bmatrix}\begin{bmatrix}u_{i} &{} v_{i}&{} w_{i}\\ u_{j1} &{} v_{j1}&{} w_{j1}\\ \cdots &{} \cdots &{} \cdots \\ u_{jn}&{}v_{jn}&{}w_{jn}\\ \end{bmatrix}. \end{aligned}$$
(14)
For the convenience of calculations, we transform the matrix form of nonlocal gradient operator \(\tilde{\nabla }{{\mathbf {u}}_i}\) for vector field into vector form and it can be rewritten as
$$\begin{aligned} \tilde{\nabla }{{\mathbf {u}}_i}=&\begin{bmatrix}\frac{{\partial u_i}}{ \partial x}, \frac{{\partial u_i}}{ \partial y}, \frac{{\partial u_i}}{ \partial z}, \frac{\partial v_i}{ \partial x}, \frac{\partial v_i}{ \partial y}, \frac{\partial v_i}{ \partial z}, \frac{\partial w_i}{ \partial x} , \frac{\partial w_i}{ \partial y}, \frac{\partial w_i}{ \partial z} \end{bmatrix}^T \nonumber \\ =&\begin{bmatrix} -\sum _{j\in {\mathcal {S}}_{i}} \xi _{x_j} &{}0&{}0&{} \xi _{x_{j1}}&{} 0 &{}0&{} \cdots &{}\xi _{x_{jn}}&{} 0&{} 0 \\ 0 &{}-\sum _{j\in {\mathcal {S}}_{i}} \xi _{y_j}&{}0&{} 0&{}\xi _{y_{j1}} &{}0&{} \cdots &{}0&{}\xi _{y_{jn}}&{}0 \\ 0&{} 0&{}-\sum _{j\in {\mathcal {S}}_{i}} \xi _{z_j} &{} 0 &{} 0&{}\xi _{z_{j1}}&{}\cdots &{} 0&{} 0&{}\xi _{z_{jn}}\\ -\sum _{j\in {\mathcal {S}}_{i}} \xi _{x_j}&{}0 &{} 0 &{}\xi _{x_{j1}} &{}0&{} 0 &{}\cdots &{}\xi _{x_{jn}} &{} 0&{} 0\\ 0 &{}-\sum _{j\in {\mathcal {S}}_{i}} \xi _{y_j}&{} 0 &{} 0&{}\xi _{y_{j1}} &{} 0 &{} \cdots &{}0 &{} \xi _{y_{jn}} &{} 0\\ 0 &{} 0 &{}-\sum _{j\in {\mathcal {S}}_{i}} \xi _{z_j}&{} 0&{} 0 &{}\xi _{z_{j1}} &{}\cdots &{}0 &{} 0&{} \xi _{z_{jn}}\\ -\sum _{j\in {\mathcal {S}}_{i}} \xi _{x_j}&{}0 &{}0 &{} \xi _{x_{j1}} &{}0 &{} 0&{} \cdots &{} \xi _{x_{jn}}&{}0 &{} 0 \\ 0 &{}-\sum _{j\in {\mathcal {S}}_{i}} \xi _{y_j}&{} 0 &{} 0&{}\xi _{y_{j1}} &{}0 &{} \cdots &{}0 &{} \xi _{y_{jn}}&{} 0 \\ 0 &{}0 &{}-\sum _{j\in {\mathcal {S}}_{i}} \xi _{z_j}&{} 0 &{} 0&{}\xi _{z_{j1}} &{} \cdots &{}0 &{} 0&{} \xi _{z_{jn}} \\ \end{bmatrix} \begin{bmatrix}u_{i} \\ v_{i}\\ w_{i}\\ u_{j1} \\ v_{j1}\\ w_{j1}\\ \cdots \\ u_{jn}\\ v_{jn}\\ w_{jn}\\ \end{bmatrix}=\mathscr {B}_i\mathscr {U}_i. \end{aligned}$$
(15)
Similarly, the nonlocal gradient operator \(\tilde{\nabla }{u}\) at point \({\mathbf {x}}_i\) for scalar field is written as
$$\begin{aligned} \tilde{\nabla }{u_i}=\begin{bmatrix}\frac{{\partial u_i}}{ \partial x} \\ \frac{{\partial u_i}}{ \partial y}\\ \frac{{\partial u_i}}{ \partial z}\\ \end{bmatrix}=\begin{bmatrix}-\sum _{j\in {\mathcal {S}}_{i}} \xi _{x_j} &{} \xi _{x_{j1}} &{} \cdots &{}\xi _{x_{jn}} \\ -\sum _{j\in {\mathcal {S}}_{i}} \xi _{y_j} &{} \xi _{y_{j1}} &{} \cdots &{}\xi _{y_{jn}} \\ sum_{j\in {\mathcal {S}}_{i}} \xi _{z_j} &{} \xi _{z_{j1}} &{} \cdots &{}\xi _{z_{jn}} \\ \end{bmatrix}\begin{bmatrix}u_{i} \\ u_{j1}\\ \cdots \\ u_{jn}\\ \end{bmatrix}=\mathscr {B}_i\mathscr {U}_i. \end{aligned}$$
(16)
The 2D form of the first-order nonlocal gradient operators is given in Appendix A.
Derivation of the higher-order implicit nonlocal differential operators
The higher-order NOM is based on higher-order Taylor series expansion of a multi-variable function. Consider a vector field \({\mathbf {u}}\) at point \({\mathbf {x}}_j\) (\({\mathbf {x}}_j\in {\mathcal {S}}_i\)). For convenience, we shorthand \({\mathbf {u}}({\mathbf {x}}_j)\) by \({\mathbf {u}}_j\), which can be estimated via a Taylor expansion based on \({\mathbf {u}}_i\) in \({\mathbbm {r}}\) dimensions with the highest order of derivatives as \(\mathbbm {n}\):
$$\begin{aligned} {\mathbf {u}}_j={\mathbf {u}}_i+\sum _{(\mathbbm {n}_{1},\ldots ,{\mathbbm {n}}_{{\mathbbm {r}}})\in \alpha _{\mathbbm {r}}^{\mathbbm {n}}}\frac{\varvec{\xi }_{1}^{{\mathbbm {n}}_{1}}\ldots \varvec{\xi }_{{\mathbbm {r}}}^{{\mathbbm {n}}_{{\mathbbm {r}}}}}{{\mathbbm {n}}_{1}!\ldots {\mathbbm {n}}_{{\mathbbm {r}}}!} {\mathbf {u}}_{i,{\mathbbm {n}}_1\ldots {\mathbbm {n}}_{\mathbbm {r}}}+O(\varvec{\xi }^{|\alpha |+1}), \end{aligned}$$
(17)
where
$$\begin{aligned}&\varvec{\xi }_{ij}=({{\mathbf {x}}}_{j1}-{{\mathbf {x}}}_{i1},\ldots ,{{\mathbf {x}}}_{jd}-{{\mathbf {x}}}_{id}) \end{aligned}$$
(18)
$$\begin{aligned}&{\mathbf {u}}_{i,{\mathbbm {n}}_1\ldots {\mathbbm {n}}_{\mathbbm {r}}}=\frac{\partial ^{{\mathbbm {n}}_{1}+\ldots +{\mathbbm {n}}_{{\mathbbm {r}}}}{\mathbf {u}}_i}{\partial {{\mathbf {x}}}_{i1}^{{\mathbbm {n}}_{1}}\ldots \partial {{\mathbf {x}}}_{id}^{{\mathbbm {n}}_{{\mathbbm {r}}}}} \end{aligned}$$
(19)
$$\begin{aligned}&|\alpha |=\max {({\mathbbm {n}}_1+\cdots +{\mathbbm {n}}_{\mathbbm {r}})}, \end{aligned}$$
(20)
where \({\mathbbm {r}}\) represents the dimension and \({\mathbbm {n}}\) denotes the highest order of derivatives. \(\alpha _{\mathbbm {r}}^{\mathbbm {n}}\) is a compilation of multi-indexes that have been flattened and it can be written as
$$\begin{aligned} \alpha _{\mathbbm {r}}^{\mathbbm {n}}&=\{({\mathbbm {n}}_1,\ldots ,{\mathbbm {n}}_{\mathbbm {r}})|1\le \sum _{i=1}^{\mathbbm {r}} {\mathbbm {n}}_i\le {\mathbbm {n}},\, {\mathbbm {n}}_i\in \mathbb {{N}}^0, 1\le i \le {\mathbbm {r}}\}, \end{aligned}$$
(21)
where \({\mathbb {N}}^0=\{0,1,2,\ldots \}\).
To eliminate the round-off error in Eq. 17, we here include the characteristic length scale \({\mathbbm {l}}_i\) of support \({\mathcal {S}}_i\) at \({\mathbf {u}}_i\) , and the modified Taylor series expansion may be rewritten as
$$\begin{aligned} {\mathbf {u}}_j&={\mathbf {u}}_i+\sum _{({\mathbbm {n}}_1,\ldots ,{\mathbbm {n}}_{\mathbbm {r}})\in \alpha _{\mathbbm {r}}^{\mathbbm {n}}}\frac{\varvec{\xi }_{1}^{{\mathbbm {n}}_{1}}\ldots \varvec{\xi }_{{\mathbbm {r}}}^{{\mathbbm {n}}_{{\mathbbm {r}}}}}{{\mathbbm {l}}_i^{{\mathbbm {n}}_1+\cdots +{\mathbbm {n}}_{\mathbbm {r}}}} \Big (\frac{{\mathbbm {l}}_i^{{\mathbbm {n}}_1+\cdots +{\mathbbm {n}}_{\mathbbm {r}}}}{{\mathbbm {n}}_{1}!\ldots {\mathbbm {n}}_{{\mathbbm {r}}}!}u_{i,{\mathbbm {n}}_1\ldots {\mathbbm {n}}_{\mathbbm {r}}}\Big )+O(\varvec{\xi }^{{\mathbbm {n}}+1})\nonumber \\&={\mathbf {u}}_i+\sum _{({\mathbbm {n}}_1,\ldots ,{\mathbbm {n}}_{\mathbbm {r}})\in \alpha _{\mathbbm {r}}^{\mathbbm {n}}}\frac{\varvec{\xi }_{1}^{{\mathbbm {n}}_{1}}\ldots \varvec{\xi }_{{\mathbbm {r}}}^{{\mathbbm {n}}_{{\mathbbm {r}}}}}{{\mathbbm {l}}_i^{{\mathbbm {n}}_1+\cdots +{\mathbbm {n}}_{\mathbbm {r}}}}\,\, {\mathbf {u}}^{\mathbbm {l}}_{i,{\mathbbm {n}}_1\ldots {\mathbbm {n}}_{\mathbbm {r}}}+O(\varvec{\xi }^{{\mathbbm {n}}+1}). \end{aligned}$$
(22)
For any multi-index \(({\mathbbm {n}}_1,\ldots , {\mathbbm {n}}_{\mathbbm {r}})\in \alpha _{\mathbbm {r}}^{\mathbbm {n}}\), \({\mathbf {u}}^{\mathbbm {l}}_{i,{\mathbbm {n}}_1\ldots {\mathbbm {n}}_{\mathbbm {r}}}=\frac{{\mathbbm {l}}_i^{{\mathbbm {n}}_1+\cdots +{\mathbbm {n}}_{\mathbbm {r}}}}{{\mathbbm {n}}_{1}!\ldots {\mathbbm {n}}_{{\mathbbm {r}}}!}{\mathbf {u}}_{i,{\mathbbm {n}}_1\ldots {\mathbbm {n}}_{\mathbbm {r}}},\forall ({\mathbbm {n}}_1,\ldots , {\mathbbm {n}}_{\mathbbm {r}})\in \alpha _{\mathbbm {r}}^{\mathbbm {n}}.\) We let \(\varvec{p}^{\mathbbm {l}}_j\), \(\partial ^{\mathbbm {l}}_\alpha {\mathbf {u}}_i\) and \(\partial _\alpha {\mathbf {u}}_i\) denotes the flattened polynomials, scaled partial derivatives, partial derivatives, respectively, according to multi-index notation \(\alpha _{\mathbbm {r}}^{\mathbbm {n}}\) and they can be shown as
$$\begin{aligned} \varvec{p}^{\mathbbm {l}}_j&=\left( \frac{\varvec{\xi }_{{\mathbbm {r}}}}{{\mathbbm {l}}},\ldots ,\frac{\varvec{\xi }_{1}^{{\mathbbm {n}}_{1}}\ldots \varvec{\xi }_{{\mathbbm {r}}}^{{\mathbbm {n}}_{{\mathbbm {r}}}}}{{\mathbbm {l}}^{{\mathbbm {n}}_1+\cdots +{\mathbbm {n}}_{\mathbbm {r}}}},\ldots ,\frac{\varvec{\xi }_1^{\mathbbm {n}}}{{\mathbbm {l}}^{\mathbbm {n}}}\right) ^T\nonumber \\ \partial ^{\mathbbm {l}}_\alpha {\mathbf {u}}_i&=\left( {\mathbf {u}}^{\mathbbm {l}}_{i,0\ldots 1},\ldots ,{\mathbf {u}}^{\mathbbm {l}}_{i,{\mathbbm {n}}_1\ldots {\mathbbm {n}}_{\mathbbm {r}}},\ldots ,{\mathbf {u}}^{\mathbbm {l}}_{i,{\mathbbm {n}}\ldots 0}\right) ^T\nonumber \\ \partial _\alpha {\mathbf {u}}_i&=\left( {\mathbf {u}}_{i,0\ldots 1},\ldots ,{\mathbf {u}}_{i,{\mathbbm {n}}_1\ldots {\mathbbm {n}}_{\mathbbm {r}}},\ldots ,{\mathbf {u}}_{i,{\mathbbm {n}}\ldots 0}\right) ^T. \end{aligned}$$
(23)
The \({\mathbbm {l}}\) in the Eq. 23 allows the terms of the same characteristic scale for length thereby eliminating computational round-off error. The current partial derivatives can be recovered by
$$\begin{aligned} \partial _\alpha {\mathbf {u}}_i=\text{ diag }\big [{\mathbbm {l}}_i,\ldots ,\frac{{\mathbbm {l}}_i^{{\mathbbm {n}}_1+\cdots +{\mathbbm {n}}_{\mathbbm {r}}}}{{\mathbbm {n}}_1!\ldots {\mathbbm {n}}_{\mathbbm {r}}!},\ldots ,\frac{{\mathbbm {l}}_i^{{\mathbbm {n}}}}{{\mathbbm {n}}!}\big ]^{-1} \partial ^{\mathbbm {l}}_\alpha {\mathbf {u}}_i. \end{aligned}$$
(24)
In which diag [\(\mathcal {X}_1, \ldots , \mathcal {X}_{\mathbbm {n}}\)] signifies a diagonal matrix of \(\mathcal {X}_1, \ldots , \mathcal {X}_{\mathbbm {n}}\), whose diagonal entries begin from the upper left corner. Hence, the expansion of the Taylor series with \({\mathbf {u}}_i\) to the left of the Eq. 22 can be rewritten as
$$\begin{aligned} {\mathbf {u}}_{ij}=(\partial ^{\mathbbm {l}}_\alpha {\mathbf {u}}_i)^T\varvec{p}_j^{\mathbbm {l}},\forall j\in {\mathcal {S}}_i, \end{aligned}$$
(25)
where \({\mathbf {u}}_{ij}={\mathbf {u}}_j-{\mathbf {u}}_i\).
Integrate \({\mathbf {u}}_{ij}\) with weighted coefficient \({ \mathbbm {w}}(\varvec{\xi }_{ij}) (\varvec{p}^{\mathbbm {l}}_j)^T\) in support \({\mathcal {S}}_i\), we obtain
$$\begin{aligned} \int _{{\mathcal {S}}_i}{ \mathbbm {w}}(\varvec{\xi }_{ij}) {\mathbf {u}}_{ij} (\varvec{p}^{\mathbbm {l}}_j)^T \text {d}V_j&= (\partial ^{\mathbbm {l}}_\alpha {\mathbf {u}}_i)^T\,\int _{{\mathcal {S}}_i} { \mathbbm {w}}(\varvec{\xi }_{ij}) \varvec{p}^{\mathbbm {l}}_j\otimes (\varvec{p}^{\mathbbm {l}}_j)^T \text {d}V_j \nonumber \\&=(\partial _\alpha {\mathbf {u}}_i)^T\,\mathbb {L}_i\,\int _{{\mathcal {S}}_i} { \mathbbm {w}}(\varvec{\xi }_{ij}) \varvec{p}^{\mathbbm {l}}_j\otimes (\varvec{p}^{\mathbbm {l}}_j)^T \text {d}V_j, \end{aligned}$$
(26)
where
$$\begin{aligned} \mathbb {L}_i=\text{ diag }\big [{\mathbbm {l}}_i,\ldots ,\frac{{\mathbbm {l}}_i^{{\mathbbm {n}}_1+\cdots +{\mathbbm {n}}_{\mathbbm {r}}}}{{\mathbbm {n}}_1!\ldots {\mathbbm {n}}_{\mathbbm {r}}!},\ldots ,\frac{{\mathbbm {l}}_i^{{\mathbbm {n}}}}{{\mathbbm {n}}!}\big ]. \end{aligned}$$
(27)
Therefore, the nonlocal operator \(\tilde{\partial }_\alpha {\mathbf {u}}_i\) and its variation can be obtained as
$$\begin{aligned} \left\{ \begin{aligned}&\tilde{\partial }_\alpha {\mathbf {u}}_i={\mathbf {K}}_{\alpha i} \cdot \int _{{\mathcal {S}}_i}{ \mathbbm {w}}(\varvec{\xi }_{ij}) \varvec{p}^{\mathbbm {l}}_j {\mathbf {u}}_{ij} \text {d}V_j\\&\tilde{\partial }_\alpha \delta {\mathbf {u}}_i={\mathbf {K}}_{\alpha i}\cdot \int _{{\mathcal {S}}_i}{ \mathbbm {w}}(\varvec{\xi }_{ij}) \varvec{p}^{\mathbbm {l}}_j (\delta {\mathbf {u}}_{j}-\delta {\mathbf {u}}_i) \text {d}V_j \end{aligned} \right. \end{aligned}$$
(28)
where
$$\begin{aligned} {\mathbf {K}}_{\alpha i}=\mathbb {L}_i^{-1} \Big (\int _{{\mathcal {S}}_i} { \mathbbm {w}}(\varvec{\xi }_{ij}) \varvec{p}^{\mathbbm {l}}_j\otimes (\varvec{p}^{\mathbbm {l}}_j)^T \text {d}V_j\Big )^{-1} \end{aligned}$$
(29)
In this paper, points of the domain \(\Omega\) in \({\mathcal {S}}_{i}\) be symbolized as
$$\begin{aligned} {\mathcal {S}}_i&=\{j_1,\ldots ,j_k,\ldots ,j_{n_i}\} \end{aligned}$$
(30)
where \(j_1,\ldots ,j_k,\ldots ,j_{n}\) denote the global indices of neighbors for point \({\mathbf {x}}_i\), and n denotes the quantity of i’s neighbors in \({\mathcal {S}}_i\).
The discrete form of Eq. 28 can be shown as
$$\begin{aligned} \tilde{\partial }_\alpha {\mathbf {u}}_i&={\mathbf {K}}_{\alpha i}\cdot \sum _{j\in {\mathcal {S}}_i}{\mathbf {u}}_{ij}{ \mathbbm {w}}(\varvec{\xi }_{ij}) \varvec{p}^{\mathbbm {l}}_j \Delta V_j={\mathbf {K}}_{\alpha i} \varvec{p}^{\mathbbm {l}}_{\mathbbm {w}i} \Delta {\mathbf {u}}_i \end{aligned}$$
(31)
$$\begin{aligned} \tilde{\partial }_\alpha \delta {\mathbf {u}}_i&={\mathbf {K}}_{\alpha i}\cdot \sum _{j\in {\mathcal {S}}_i}\delta {\mathbf {u}}_{ij}{ \mathbbm {w}}(\varvec{\xi }_{ij}) \varvec{p}^{\mathbbm {l}}_j \Delta V_j={\mathbf {K}}_{\alpha i} \varvec{p}^{\mathbbm {l}}_{\mathbbm {w}i} \delta \Delta {\mathbf {u}}_i \end{aligned}$$
(32)
where
$$\begin{aligned} {\mathbf {K}}_{\alpha i}&=\mathbb {L}_i^{-1}\Big (\sum _{j\in {\mathcal {S}}_i}{ \mathbbm {w}}(\varvec{\xi }_{ij})\varvec{p}_{j}^{\mathbbm {l}}\otimes (\varvec{p}_{j}^{\mathbbm {l}})^T \Delta V_{j}\Big )^{-1}\nonumber \\ \varvec{p}^{\mathbbm {l}}_{\mathbbm {w}i}&=\Big ({ \mathbbm {w}}(\varvec{\xi }_{ij_1}) \varvec{p}^{\mathbbm {l}}_{j_1}\Delta V_{j_1},\ldots ,{ \mathbbm {w}}(\varvec{\xi }_{ij_{n_i}}) \varvec{p}^{\mathbbm {l}}_{j_{n_i}}\Delta V_{j_{n_i}}\Big )\nonumber \\ \Delta {\mathbf {u}}_i&=({\mathbf {u}}_{i j_1},\ldots ,{\mathbf {u}}_{i j_k},\ldots ,{\mathbf {u}}_{i j_{n}})^T \end{aligned}$$
(33)
The nonlocal operator gives all partial derivatives with the highest order up to \(\mathbbm {n}\). In PDEs, the group of derivatives is a subgroup of the nonlocal operator. Each term in \(\tilde{\partial }_\alpha {\mathbf {u}}_i\) corresponds to a row of \({\mathbf {K}}_{\alpha i} \varvec{p}^{\mathbbm {l}}_{\mathbbm {w}i}\) multiplied by \(\Delta {\mathbf {u}}_i\). Equation 31 can be used to substitute the differential operators in PDEs to generate a strong form of algebraic equations. Meanwhile, we can solve the linear (nonlinear) weak formulations using the weighted residual methodology and the variational principle, hence the variation of \(\partial _\alpha {\mathbf {u}}_i\) in Eq. 32 is required in these circumstances. Equation 31 can also be shown more succinctly as
$$\begin{aligned} \tilde{\partial }_\alpha {\mathbf {u}}_i={\mathbf {K}}_{\alpha i} \varvec{p}^{\mathbbm {l}}_{\mathbbm {w}i} \Delta {\mathbf {u}}_i=\begin{bmatrix}-(1,\cdots ,1)_{n}{\mathbf {K}}_{\alpha i} {\mathbf {p}}_{\mathbbm {w}i}^{\mathbbm {l}}, {\mathbf {K}}_{\alpha i}{\mathbf {p}}_{\mathbbm {w}i}^{\mathbbm {l}} \end{bmatrix}\begin{bmatrix}{\mathbf {u}}_i \\ {\mathbf {u}}_{j_1}\\ {\mathbf {u}}_{j_2}\\ \cdots \\ {\mathbf {u}}_{j_{n}}\\ \end{bmatrix}={\mathbf {B}}_{\alpha i}{\mathbf {U}}_i \end{aligned}$$
(34)
where \({\mathbf {B}}_{\alpha i}\) is the nonlocal operator coefficient matrix of point \({\mathbf {x}}_i\), \((1,\cdots ,1)_{n_p} {\mathbf {K}}_{\alpha i}{\mathbf {p}}_{\mathbbm {w}i}^{\mathbbm {l}}\) is the column sum of \({\mathbf {K}}_{\alpha i}{\mathbf {p}}_{\mathbbm {w}i}^{\mathbbm {l}}\). Using the nodal values in support, the operator matrix generates all partial derivatives of maximal order smaller than \(|\alpha |+1\).
Elastic material constitution
For elastic material, the strain energy functional \(\psi\) is a function of the deformation gradient \({\varvec{F}}\). According to the principles of traditional solid mechanics, the deformation gradient \({\varvec{F}}\) in 3D form expressed as
$$\begin{aligned} {\varvec{F}}=\nabla \mathbf {u} +{\mathbf {I}}_{3\times 3} = \begin{bmatrix} \frac{{\partial u}}{ \partial x}+1 &{} \frac{{\partial u}}{ \partial y} &{} \frac{{\partial u}}{ \partial z} \\ \frac{{\partial v}}{ \partial x} &{} \frac{{\partial v}}{ \partial y}+1 &{} \frac{{\partial v}}{ \partial z} \\ \frac{{\partial w}}{ \partial x} &{} \frac{{\partial w}}{ \partial y} &{} \frac{{\partial w}}{ \partial z}+1 \\ \end{bmatrix} \end{aligned}$$
(35)
where \({\mathbf {I}}_{3\times 3}\) denotes the identity tensor.
The first Piola–Kirchhoff stress \({\mathbf {P}}\) can be derived from the directly derivative of strain energy \(\psi ({\varvec{F}})\) in the context of total Lagrangian formulation, and it can be derived as
$$\begin{aligned} {\mathbf {P}}=\frac{\partial \psi ({\varvec{F}})}{\partial {\varvec{F}}}=\begin{bmatrix}\mathbb {P}_{11} &{} \mathbb {P}_{12} &{} \mathbb {P}_{13}\\ \mathbb {P}_{21}&{} \mathbb {P}_{22} &{} \mathbb {P}_{23}\\ \mathbb {P}_{31}&{} \mathbb {P}_{32} &{} \mathbb {P}_{33}\end{bmatrix} \end{aligned}$$
(36)
In addition, the 4th order elastic tensor \({\mathbf {D}}_4\) can be obtained using derivation of the first Piola–Kirchhoff stress
$$\begin{aligned} {\mathbf {D}}_4=\frac{\partial {\mathbf {P}}}{\partial {\varvec{F}}}=\frac{\partial {^2 \psi ({\varvec{F}})}}{\partial {{\varvec{F}}^T \partial {\varvec{F}}}} \end{aligned}$$
(37)
To obtain the elasticity matrix, based on the Voigt notation, \({\mathbf {D}}_4\) can be written as a matrix form \(\mathscr {D}_{9\times 9}\)
$$\begin{aligned} {\mathscr {D}_{9\times 9}}=\begin{bmatrix} \frac{\partial \mathbb {P}_{11}}{\partial \mathbb {F}_{11}} &{} \frac{\partial \mathbb {P}_{11}}{\partial \mathbb {F}_{12}}&{}\cdots &{}\frac{\partial \mathbb {P}_{11}}{\partial \mathbb {F}_{33}}\\ \frac{\partial \mathbb {P}_{12}}{\partial \mathbb {F}_{11}} &{} \frac{\partial \mathbb {P}_{12}}{\partial \mathbb {F}_{12}}&{}\cdots &{}\frac{\partial \mathbb {P}_{12}}{\partial \mathbb {F}_{33}}\\ \vdots &{}\vdots &{}\ddots &{}\vdots \\ \frac{\partial \mathbb {P}_{33}}{\partial \mathbb {F}_{11}} &{} \frac{\partial \mathbb {P}_{33}}{\partial \mathbb {F}_{12}}&{}\cdots &{}\frac{\partial \mathbb {P}_{33}}{\partial \mathbb {F}_{33}}\\ \end{bmatrix} = \begin{bmatrix} \frac{\partial ^{2}\psi (\mathbb {F})}{\partial \mathbb {F}_{11}^{2}} &{} \frac{\partial ^{2}\psi (\mathbb {F})}{\partial \mathbb {F}_{11}\,\partial \mathbb {F}_{12}}&{}\cdots &{}\frac{\partial ^{2}\psi (\mathbb {F})}{\partial \mathbb {F}_{11}\,\partial \mathbb {F}_{33}}\\ \frac{\partial ^{2}\psi (\mathbb {F})}{\partial \mathbb {F}_{12}\partial \mathbb {F}_{11}} &{} \frac{\partial ^{2}\psi (\mathbb {F})}{\partial \mathbb {F}_{22}^{2}}&{}\cdots &{}\frac{\partial ^{2}\psi (\mathbb {F})}{\partial \mathbb {F}_{12}\,\partial \mathbb {F}_{33}}\\ \vdots &{}\vdots &{}\ddots &{}\vdots \\ \frac{\partial ^{2}\psi (\mathbb {F})}{\partial \mathbb {F}_{33}\partial \mathbb {F}_{11}} &{} \frac{\partial ^{2}\psi (\mathbb {F})}{\partial \mathbb {F}_{33}\,\partial \mathbb {F}_{12}}&{}\cdots &{}\frac{\partial ^{2}\psi (\mathbb {F})}{\partial \mathbb {F}_{33}^{2}}\\ \end{bmatrix}, \end{aligned}$$
(38)
where \(\mathbb {F}(=\mathbb {F}_{11} , \mathbb {F}_{12} ,\cdots , \mathbb {F}_{33}), \mathbb {P}(=\frac{\partial \psi (\mathbb {F})}{\partial \mathbb {F}_{11}},\frac{\partial \psi (\mathbb {F})}{\partial \mathbb {F}_{12}},\cdots ,\frac{\partial \psi (\mathbb {F})}{\partial \mathbb {F}_{33}})\) donates the flattened deformation gradient and flattened first Piola–Kirchhoff stress.
In particular, for isotropic linear elastic material, regarding infinitesimal deformations of a continuous linear elastic material with a tiny displacement gradient relative to unity ( i.e. \(\nabla \mathbf {u} \ll 1\)), any of the strain tensors utilized in finite strain theory (such as the Lagrangian strain tensor) may be geometrically linearized. The non-linear or second-order elements of the finite strain tensor are ignored in this linearization. Hence, we can obtain the Lagrangian strain tensor \(\varvec{\varepsilon }=\frac{1}{2}({\varvec{F}}+{\varvec{F}}^T)-{\mathbf {I}}\) and stress tensor \(\varvec{\sigma }={\mathbf {D}}:\varvec{\varepsilon }\).
The internal functional energy for 3D linear elastic material can be expressed as
$$\begin{aligned} \psi (\varvec{\varepsilon })_{3d}&=\frac{1}{2}{\varvec{\sigma }}:\varvec{\varepsilon } =\frac{1}{2}\varvec{\varepsilon }:{\mathbf {D}}:\varvec{\varepsilon } =\frac{1}{2}\text {d}\mathscr {U}_{3d}^T \mathscr {D}_{3d} \text {d}\mathscr {U}_{3d} \end{aligned}$$
(39)
Likewise, the internal energy functional for plane stress and plane strain conditions can be shown as follows
$$\begin{aligned} \psi (\varvec{\varepsilon })_\mathrm{{plane\,stress}}=\frac{1}{2}\text {d}\mathscr {U}_{2d}^T \mathscr {D}_\mathrm{{plane\,stress}} \text {d}\mathscr {U}_{2d}\nonumber \\ \psi (\varvec{\varepsilon })_\mathrm{{plane\,strain}}=\frac{1}{2}\text {d}\mathscr {U}_{2d}^T \mathscr {D}_\mathrm{{plane\,strain}} \text {d}\mathscr {U}_{2d} \end{aligned}$$
(40)
where
$$\begin{aligned} \text {d}\mathscr {U}_{2d}&=\left( \frac{{\partial u}}{ \partial x},\frac{{\partial u}}{ \partial y},\frac{{\partial v}}{ \partial x},\frac{{\partial v}}{ \partial y}\right) ^T \end{aligned}$$
(41)
$$\begin{aligned} \text {d}\mathscr {U}_{3d}&=\left( \frac{{\partial u}}{ \partial x},\frac{{\partial u}}{ \partial y},\frac{{\partial u}}{ \partial z},\frac{{\partial v}}{ \partial x},\frac{{\partial v}}{ \partial y},\frac{{\partial v}}{ \partial z},\frac{{\partial w}}{ \partial x},\frac{{\partial w}}{ \partial y},\frac{{\partial w}}{ \partial z}\right) ^T \end{aligned}$$
(42)
For linear elastic material, the elastic matrix \(\mathscr {D}\) in plane stress, plane strain and 3D conditions can be expressed as
$$\begin{aligned}&\mathscr {D}_\mathrm{{plane\, stress}}=\frac{E}{1-\nu ^2}\left[ \begin{array}{cccc} 1 &{} 0 &{} 0 &{} \nu \\ 0 &{} \frac{1-\nu }{2} &{} \frac{1-\nu }{2} &{} 0 \\ 0 &{} \frac{1-\nu }{2} &{} \frac{1-\nu }{2} &{} 0 \\ \nu &{} 0 &{} 0 &{} 1 \\ \end{array} \right] , \end{aligned}$$
(43)
$$\begin{aligned}&\mathscr {D}_\mathrm{{plane \, strain}}=\frac{E}{(1-2\nu )(1+\nu )}\left[ \begin{array}{cccc} 1-\nu &{} 0 &{} 0 &{} \nu \\ 0 &{} 1/2-\nu &{} 1/2-\nu &{} 0 \\ 0 &{} 1/2-\nu &{} 1/2-\nu &{} 0 \\ \nu &{} 0 &{} 0 &{} 1-\nu \\ \end{array} \right] , \end{aligned}$$
(44)
$$\begin{aligned}&\mathscr {D}_{3D}=\left[ \begin{array}{ccccccccc} \lambda +2 \mu &{} 0 &{} 0 &{} 0 &{} \lambda &{} 0 &{} 0 &{} 0 &{} \lambda \\ 0 &{} \mu &{} 0 &{} \mu &{} 0 &{} 0 &{} 0 &{} 0 &{} 0 \\ 0 &{} 0 &{} \mu &{} 0 &{} 0 &{} 0 &{} \mu &{} 0 &{} 0 \\ 0 &{} \mu &{} 0 &{} \mu &{} 0 &{} 0 &{} 0 &{} 0 &{} 0 \\ \lambda &{} 0 &{} 0 &{} 0 &{} \lambda +2 \mu &{} 0 &{} 0 &{} 0 &{} \lambda \\ 0 &{} 0 &{} 0 &{} 0 &{} 0 &{} \mu &{} 0 &{} \mu &{} 0 \\ 0 &{} 0 &{} \mu &{} 0 &{} 0 &{} 0 &{} \mu &{} 0 &{} 0 \\ 0 &{} 0 &{} 0 &{} 0 &{} 0 &{} \mu &{} 0 &{} \mu &{} 0 \\ \lambda &{} 0 &{} 0 &{} 0 &{} \lambda &{} 0 &{} 0 &{} 0 &{} \lambda +2 \mu \\ \end{array} \right] , \end{aligned}$$
(45)
where \(\lambda ,\mu\) represent the Lamé constants, which are related to the Young’s modulus E and Poisson’s ratio \(\nu\):
$$\begin{aligned} \left\{ \begin{aligned}&\lambda =\frac{E \nu }{(1+\nu )(1-2\nu )}\\&\mu =\frac{E}{2(1+\nu )} \end{aligned} \right. . \end{aligned}$$
(46)
Construction of the first-order and higher-order operator energy functional
As a particle-based method, when using node integration the first-order and higher-order NOM suffer from a zero-energy mode [57, 58], which results in numerical instability. To eliminate the effect of the zero-energy mode, traditional PD and SPH introduce a penalty term to the force state [51]. Nevertheless, the approach described above is only applicable in the explicit time integration formulation. NOM employs operator energy functional for nonlocal gradients to achieve the linear field of the field and avoid numerical instabilities.
In first-order NOM, the operator energy functional at point \({\mathbf {x}}_i\) can be construct according to the first-order nonlocal operator \(\nabla \otimes {\mathbf {u}}_i\), it can be expressed in discretization form as
$$\begin{aligned} {\mathcal {F}}^{hg}_i&=\frac{p^{hg}}{2m_{{\mathbf {K}}_i}}\int _{{\mathcal {S}}_i} { \mathbbm {w}}(\varvec{\xi }_{ij})\Big ([\left( u_j-u_i\right) -\nabla {u_i}\cdot \varvec{\xi }_{ij}]^2+[\left( v_j-v_i\right) -\nabla {v_i}\cdot \varvec{\xi }_{ij}]^2+\nonumber \\&[\left( w_j-w_i\right) -\nabla {w_i}\cdot \varvec{\xi }_{ij}]^2\Big )\text {d}V_j\nonumber \\&=\frac{p^{hg}}{2m_{{\mathbf {K}}_i}}\sum _{j\in {\mathcal {S}}_{i}}{ \mathbbm {w}}(\varvec{\xi }_{ij}) \Big ([\left( u_j-u_i\right) -\nabla {u_i}\cdot \varvec{\xi }_{ij}]^2+ [\left( v_j-v_i\right) -\nabla {v_i}\cdot \varvec{\xi }_{ij}]^2+\nonumber \\&[\left( w_j-w_i\right) -\nabla {w_i}\cdot \varvec{\xi }_{ij}]^2\Big ) \Delta V_j \nonumber \\&=\frac{p^{hg}}{2m_{{\mathbf {K}}_i}}\Bigg (\sum _{j\in {\mathcal {S}}_{i}} { \mathbbm {w}}(\varvec{\xi }_{ij})\Big (\left( u_j-u_i\right) ^2+\left( v_j-v_i\right) ^2+ \left( w_j-w_i\right) ^2\Big ) \Delta V_j-\nabla \otimes {\mathbf {u}}_i:\nabla \otimes {\mathbf {u}}_i\cdot {\mathbf {K}}_i \Bigg ) \end{aligned}$$
(47)
where \(\nabla {u_i}=[\frac{{\partial u_i}}{ \partial x} ,\frac{{\partial u_i}}{ \partial y},\frac{{\partial u_i}}{ \partial z}]^T\), \(\nabla \otimes {\mathbf {u}}_i=\begin{bmatrix} \frac{{\partial u_i}}{ \partial x}&{}\frac{{\partial u_i}}{ \partial y}&{}\frac{{\partial u_i}}{ \partial z} \\ \frac{{\partial v_i}}{ \partial x} &{}\frac{{\partial v_i}}{ \partial y}&{}\frac{{\partial v_i}}{ \partial z} \\ \frac{{\partial w_i}}{ \partial x} &{}\frac{{\partial w_i}}{ \partial y}&{}\frac{{\partial w_i}}{ \partial z} \end{bmatrix}\), \({\mathbf {K}}_i=\begin{bmatrix} k_{11} &{} k_{12} &{} k_{13}\\ k_{12} &{} k_{22} &{}k_{23}\\ k_{13}&{} k_{23}&{} k_{33}\end{bmatrix}\).
It should be noted that the shape tensor \({\mathbf {K}}_i\) is involved in \(\nabla \otimes {\mathbf {u}}_i:\nabla \otimes {\mathbf {u}}_i\cdot {\mathbf {K}}_i\) and the operator energy functional is valid in any dimension.
For convenience, we let \(\Theta =\frac{1}{ 2}\nabla \otimes {\mathbf {u}}_i:\nabla \otimes {\mathbf {u}}_i\cdot {\mathbf {K}}_i\) , \(\Upsilon _{3d}=\frac{1}{ 2}[\left( u_j-u_i\right) ^2+\left( v_j-v_i\right) ^2+\left( w_j-w_i\right) ^2]\).
$$\begin{aligned} \Theta _{3d}=&\frac{1}{2}\begin{bmatrix} \frac{{\partial u_i}}{ \partial x}&{}\frac{{\partial u_i}}{ \partial y}&{}\frac{{\partial u_i}}{ \partial z} \\ \frac{{\partial v_i}}{ \partial x}&{}\frac{{\partial v_i}}{ \partial y}&{}\frac{{\partial v_i}}{ \partial z} \\ \frac{{\partial w_i}}{ \partial x} &{}\frac{{\partial w_i}}{ \partial y}&{}\frac{{\partial w_i}}{ \partial z} \end{bmatrix} \Bigg (\begin{bmatrix} \frac{{\partial u_i}}{ \partial x} &{}\frac{{\partial u_i}}{ \partial y}&{}\frac{{\partial u_i}}{ \partial z} \\ \frac{{\partial v_i}}{ \partial x} &{}\frac{{\partial v_i}}{ \partial y}&{}\frac{{\partial v_i}}{ \partial z} \\ \frac{{\partial w_i}}{ \partial x} &{}\frac{{\partial w_i}}{ \partial y}&{}\frac{{\partial w_i}}{ \partial z} \end{bmatrix}\begin{bmatrix} k_{11} &{}k_{12}&{}k_{13} \\ k_{21} &{}k_{22}&{}k_{23} \\ k_{31} &{}k_{32}&{}k_{33}\end{bmatrix}\Bigg )\nonumber \\ =&\frac{1}{ 2}\Bigg ( \frac{{\partial u_i}}{ \partial x}[k_{11} \frac{{\partial u_i}}{ \partial x}+k_{12}\frac{{\partial u_i}}{ \partial y}+k_{13}\frac{{\partial u_i}}{ \partial z}]+ \frac{{\partial u_i}}{ \partial y}[k_{12}\frac{{\partial u_i}}{ \partial x}+k_{22}\frac{{\partial u_i}}{ \partial y}+k_{23}\frac{{\partial u_i}}{ \partial z}]+\nonumber \\&\frac{{\partial u_i}}{ \partial z}[k_{13}\frac{{\partial u_i}}{ \partial x}+k_{23}\frac{{\partial u_i}}{ \partial y}+k_{33}\frac{{\partial v_i}}{ \partial z}]+\frac{{\partial v_i}}{ \partial x}[k_{11}\frac{{\partial v_i}}{ \partial x}+k_{12}\frac{{\partial v_i}}{ \partial y}+k_{13}\frac{{\partial v_i}}{ \partial z}]+\nonumber \\&\frac{{\partial v_i}}{ \partial y}[k_{12}\frac{{\partial v_i}}{ \partial x}+k_{22}\frac{{\partial v_i}}{ \partial y}+k_{23}\frac{{\partial v_i}}{ \partial z}]+\frac{{\partial v_i}}{ \partial z}[k_{13}\frac{{\partial v_i}}{ \partial x}+k_{23}\frac{{\partial v_i}}{ \partial y}+k_{33}\frac{{\partial v_i}}{ \partial z}]+\nonumber \\&\frac{{\partial w_i}}{ \partial x}[k_{11}\frac{{\partial w_i}}{ \partial x}+k_{12}\frac{{\partial w_i}}{ \partial y}+k_{13}\frac{{\partial w_i}}{ \partial z}]+\frac{{\partial w_i}}{ \partial y}[k_{12}\frac{{\partial w_i}}{ \partial x}+k_{22}\frac{{\partial w_i}}{ \partial y}+k_{23}\cdot \frac{{\partial w_i}}{ \partial z}]+\nonumber \\&\frac{{\partial w_i}}{ \partial z}[k_{13}\frac{{\partial w_i}}{ \partial x}+k_{23}\frac{{\partial w_i}}{ \partial y}+k_{33}\frac{{\partial w_i}}{ \partial z}]\Bigg ) \end{aligned}$$
(48)
To facilitate numerical implementation, we transform Eq. 47 into a detailed form and the point \({\mathbf {x}}_i\) displacement vector and first-order differential of displacement vector in 3D can be shown as
$$\begin{aligned} \mathscr {U}_i&= ( u_{i},v_{i},w_{i},u_{j1},v_{j1},w_{j1}\cdots u_{jn},v_{jn},w_{jn})^T \nonumber \\ \text {d}\mathscr {U}_i&=(\frac{\partial u_{i}}{ \partial x},\frac{\partial u_{i}}{ \partial y},\frac{\partial u_{i}}{ \partial z},\frac{\partial v_{i}}{ \partial x},\frac{\partial v_{i}}{ \partial y},\frac{\partial v_{i}}{ \partial z},\frac{\partial w_{i}}{ \partial x},\frac{\partial w_{i}}{ \partial y},\frac{\partial w_{i}}{ \partial z})^T \end{aligned}$$
(49)
In this paper, the special variation \(\bar{\delta }{\mathcal {F}}\) , \(\bar{\delta }^2 {\mathcal {F}}\) and \(\delta {\mathcal {F}}\) , \(\delta ^2 {\mathcal {F}}\) are defined as
$$\begin{aligned} \bar{\delta }{\mathcal {F}}&:=\partial _{\text {d}\mathscr {U}} {\mathcal {F}},\bar{\delta }^2 {\mathcal {F}}:=\partial _{\text {d}\mathscr {U}\text {d}\mathscr {U}} {\mathcal {F}}\end{aligned}$$
(50)
$$\begin{aligned} \delta {\mathcal {F}}&:=\partial _{\mathscr {U}}{\mathcal {F}},\delta ^2 {\mathcal {F}}:=\partial _{\mathscr {U}\mathscr {U}} {\mathcal {F}}\end{aligned}$$
(51)
Hence, the following relationships can be derived as
$$\begin{aligned} \bar{\delta }\Theta _{3d}=&\partial _{\text {d}\mathscr {U}_{3d}} \Theta _{3d}\nonumber \\ =&\begin{bmatrix} [k_{11}\frac{\partial u_i}{ \partial x}+k_{12}\frac{\partial u_i}{ \partial y}+k_{13}\frac{\partial u_i}{ \partial z}]&{}[k_{12}\frac{\partial u_i}{ \partial x}+k_{22}\frac{\partial u_i}{ \partial y}+k_{23}\frac{\partial u_i}{ \partial z}]&{}[k_{13}\frac{\partial u_i}{ \partial x}+k_{23}\frac{\partial u_i}{ \partial y}+k_{33}\frac{\partial v_i}{ \partial z}] \\ [k_{11}\frac{\partial v_i}{ \partial x}+k_{12}\frac{\partial v_i}{ \partial y}+k_{13}\frac{\partial v_i}{ \partial z}]&{}[k_{12}\frac{\partial v_i}{ \partial x}+k_{22}\frac{\partial v_i}{ \partial y}+k_{23}\frac{\partial v_i}{ \partial z}] &{}[k_{13}\frac{\partial v_i}{ \partial x}+k_{23}\frac{\partial v_i}{ \partial y}+k_{33}\frac{\partial v_i}{ \partial z}] \\ [k_{11}\frac{\partial w_i}{ \partial x}+k_{12}\frac{\partial w_i}{ \partial y}+k_{13}\frac{\partial w_i}{ \partial z}]&{}[k_{12}\frac{\partial w_i}{ \partial x}+k_{22}\frac{\partial w_i}{ \partial y}+k_{23}\frac{\partial w_i}{ \partial z}]&{}[k_{13}\frac{\partial w_i}{ \partial x}+k_{23}\frac{\partial w_i}{ \partial y}+k_{33}\frac{\partial w_i}{ \partial z}] \end{bmatrix} \end{aligned}$$
(52)
$$\begin{aligned} \bar{\delta }^2 \Theta _{3d}=&\partial _{\text {d}\mathscr {U}_{3d}\text {d}\mathscr {U}_{3d}} \Theta _{3d}\nonumber \\ =&\partial _{\text {d}\mathscr {U}_{3d}} \bar{\delta }\Theta _{3d}\nonumber \\ =&\begin{bmatrix} k_{11}&{} k_{12}&{} k_{13}&{} 0&{} 0 &{}0 &{}0 &{}0&{} 0 \\ k_{12}&{} k_{22}&{} k_{23}&{} 0&{} 0 &{}0 &{}0 &{}0&{} 0 \\ k_{13}&{} k_{23}&{} k_{33}&{} 0&{} 0 &{}0 &{}0 &{}0&{} 0 \\ 0&{} 0 &{}0 &{} k_{11}&{} k_{12}&{} k_{13} &{}0 &{}0&{} 0\\ 0&{} 0 &{}0 &{} k_{12}&{} k_{22}&{} k_{23} &{}0 &{}0&{} 0\\ 0&{} 0 &{}0 &{} k_{13}&{} k_{23}&{} k_{33} &{}0 &{}0&{} 0\\ 0&{} 0 &{}0 &{}0 &{}0&{} 0&{} k_{11}&{} k_{12}&{} k_{13}\\ 0&{} 0 &{}0 &{}0 &{}0&{} 0&{} k_{12}&{} k_{22}&{} k_{23}\\ 0&{} 0 &{}0 &{}0 &{}0&{} 0&{} k_{13}&{} k_{23}&{} k_{33}\\ \end{bmatrix} \end{aligned}$$
(53)
$$\begin{aligned} \delta \Upsilon _{3d}=&\partial _{\mathscr {U}_{3d}} \Upsilon _{3d}\nonumber \\ =&\partial _{\mathscr {U}_{3d}}\{\frac{1}{ 2}[\left( u_j-u_i\right) ^2+\left( v_j-v_i\right) ^2+\left( w_j-w_i\right) ^2]\}\nonumber \\ =&\begin{bmatrix} (u_i-u_j ),(v_i-v_j ),(w_i-w_j ),(-u_i+u_j ),(-v_i+v_j ),(-w_i+w_j ) \end{bmatrix} \end{aligned}$$
(54)
$$\begin{aligned} \delta ^2\Upsilon _{3d}=&\partial _{\mathscr {U}_{3d}\mathscr {U}_{3d}} \Upsilon _{3d}\nonumber \\ =&\partial _{\mathscr {U}_{3d}}\{(u_i-u_j ),(v_i-v_j ),(w_i-w_j ),(-u_i+u_j ),(-v_i+v_j ),(-w_i+w_j )\}\nonumber \\ =&\begin{bmatrix} 1&{}0&{}0&{}-1&{}0&{}0\\ 0&{}1&{}0&{}0&{}-1&{}0\\ 0&{}0&{}1&{}0&{}0&{}-1\\ -1&{}0&{}0&{}1&{}0&{}0\\ 0&{}-1&{}0&{}0&{}1&{}0\\ 0&{}0&{}-1&{}0&{}0&{}1\\ \end{bmatrix} \end{aligned}$$
(55)
According to Eqs. 53 and 55, Eq. 47 can be rewritten as
$$\begin{aligned} {\mathcal {F}}^{hg}_i&=\frac{p^{hg}}{2m_{{\mathbf {K}}_i}}\Bigg (\sum _{j\in {\mathcal {S}}_{i}} { \mathbbm {w}}(\varvec{\xi }_{ij})\Big (\left( u_j-u_i\right) ^2+\left( v_j-v_i\right) ^2+\left( w_j-w_i\right) ^2\Big ) \Delta V_j-\nabla \otimes {\mathbf {u}}_i:\nabla \otimes {\mathbf {u}}_i\cdot {\mathbf {K}}_i\Bigg )\nonumber \\&=\frac{p^{hg}}{2m_{{\mathbf {K}}_i}}\Big ({\mathscr {U}_i}^T\begin{bmatrix}\sum _{j\in {\mathcal {S}}_{i}} {\mathbf {I}}_j &{} -{\mathbf {I}}_{j1} &{} \cdots &{} -{\mathbf {I}}_{j_n}\nonumber \\ -{\mathbf {I}}_{j1} &{} {\mathbf {I}}_{j1} &{} {\mathbf {0}} &{} {\mathbf {0}}\\ \vdots &{} {\mathbf {0}} &{} \ddots &{} {\mathbf {0}}\\ -{\mathbf {I}}_{j_n} &{} {\mathbf {0}} &{} {\mathbf {0}} &{} {\mathbf {I}}_{j_n} \end{bmatrix}\mathscr {U}_i-{\text {d}\mathscr {U}_i}^T \begin{bmatrix}{\mathbf {K}}_i&{} 0 &{} 0\\ 0 &{} {\mathbf {K}}_i&{}0 \\ 0&{} 0&{} {\mathbf {K}}_i\end{bmatrix}\text {d}\mathscr {U}_i\Big )\nonumber \\&=\frac{p^{hg}}{2m_{{\mathbf {K}}_i}}\Big ({\mathscr {U}_i}^T\begin{bmatrix}\sum _{j\in {\mathcal {S}}_{i}} {\mathbf {I}}_j &{} -{\mathbf {I}}_{j1} &{} \cdots &{} -{\mathbf {I}}_{j_n} \\ -{\mathbf {I}}_{j1} &{} {\mathbf {I}}_{j1} &{} {\mathbf {0}} &{} {\mathbf {0}}\\ \vdots &{} {\mathbf {0}} &{} \ddots &{} {\mathbf {0}}\\ -{\mathbf {I}}_{j_n} &{} {\mathbf {0}} &{} {\mathbf {0}} &{} {\mathbf {I}}_{j_n} \end{bmatrix}\mathscr {U}_i-{\mathscr {U}_i}^T {\mathscr {B}_i}^T \begin{bmatrix}{\mathbf {K}}_i&{} 0 &{} 0\\ 0 &{} {\mathbf {K}}_i&{}0 \\ 0&{} 0&{} {\mathbf {K}}_i\end{bmatrix} {\mathscr {B}_i} \mathscr {U}_i\Big )\nonumber \\&=\frac{p^{hg}}{2m_{{\mathbf {K}}_i}}{\mathscr {U}_i}^T\Big (\begin{bmatrix}\sum _{j\in {\mathcal {S}}_{i}} {\mathbf {I}}_j &{} -{\mathbf {I}}_{j1} &{} \cdots &{} -{\mathbf {I}}_{j_n} \\ -{\mathbf {I}}_{j1} &{} {\mathbf {I}}_{j1} &{} {\mathbf {0}} &{} {\mathbf {0}}\\ \vdots &{} {\mathbf {0}} &{} \ddots &{} {\mathbf {0}}\\ -{\mathbf {I}}_{j_n} &{} {\mathbf {0}} &{} {\mathbf {0}} &{} {\mathbf {I}}_{j_n} \end{bmatrix}-{\mathscr {B}_i}^T \begin{bmatrix}{\mathbf {K}}_i&{} 0 &{} 0\\ 0 &{} {\mathbf {K}}_i&{}0 \\ 0&{} 0&{} {\mathbf {K}}_i\end{bmatrix} {\mathscr {B}_i} \Big )\mathscr {U}_i \end{aligned}$$
(56)
where \({\mathbf {I}}_j={ \mathbbm {w}}(\varvec{\xi }_{ij})\Delta V_j (1,1,1)\otimes (1,1,1)^T\).
$$\begin{aligned} \mathscr {K}^{hg}_{i}&=\partial _{\mathscr {U}_{i} \mathscr {U}_{i} }{\mathcal {F}}^{hg}_i=\frac{p^{hg}}{m_{{\mathbf {K}}_i}}\Bigg (\begin{bmatrix}\sum _{j\in {\mathcal {S}}_{i}} {\mathbf {I}}_j &{} -{\mathbf {I}}_{j1} &{} \cdots &{} -{\mathbf {I}}_{j_n} \\ -{\mathbf {I}}_{j1} &{} {\mathbf {I}}_{j1} &{} {\mathbf {0}} &{} {\mathbf {0}}\\ \vdots &{} {\mathbf {0}} &{} \ddots &{} {\mathbf {0}}\\ -{\mathbf {I}}_{j_n} &{} {\mathbf {0}} &{} {\mathbf {0}} &{} {\mathbf {I}}_{j_n} \end{bmatrix}-{\mathscr {B}_i}^T\begin{bmatrix}{\mathbf {K}}_i&{} 0 &{} 0\\ 0 &{} {\mathbf {K}}_i&{}0 \\ 0&{} 0&{} {\mathbf {K}}_i\end{bmatrix}{\mathscr {B}_i}\Bigg ) \end{aligned}$$
(57)
The global tangent stiffness matrix of operate energy functional, internal residual and tangent stiffness matrix of physical energy functional in support \({\mathcal {S}}_{i}\) can be obtained by
$$\begin{aligned} \mathop {\mathscr {K}_i} \limits ^{hg}=\sum _{j\in {\mathcal {S}}_{i}}\partial _{\mathscr {U}_{i} \mathscr {U}_{i} }{\mathcal {F}}^{hg}_i \Delta V_j =\sum _{j\in {\mathcal {S}}_{i}}\mathscr {K}^{hg}_{i}\Delta V_j \end{aligned}$$
(58)
$$\begin{aligned} \mathscr {R}_i=\sum _{j\in {\mathcal {S}}_{i}}\partial _{\mathscr {U}_i}\psi (\varvec{\varepsilon })_i \Delta V_j =\sum _{j\in {\mathcal {S}}_{i}}{\mathscr {B}_i}^T\cdot \mathscr {D}\cdot \Delta \mathscr {U}_i \Delta V_j \end{aligned}$$
(59)
$$\begin{aligned} \mathscr {K}_i=\sum _{j\in {\mathcal {S}}_{i}}\partial _{\mathscr {U}_i}\mathscr {R}_i \Delta V_j =\sum _{j\in {\mathcal {S}}_{i}}{\mathscr {B}_i}^T\cdot \mathscr {D}\cdot {\mathscr {B}_i}\Delta V_j \end{aligned}$$
(60)
Finally, the summation of 3D form for the first-order global tangent stiffness matrix and hourglass tangent stiffness matrix in support \({\mathcal {S}}_{i}\) can be obtained
$$\begin{aligned} \mathbb {K}_{i}&=\mathscr {K}_{i}+\mathop {\mathscr {K}_i} \limits ^{hg}\nonumber \\ {}&=\sum _{j\in {\mathcal {S}}_{i}} \Delta V_j\Bigg ({\mathscr {B}_i}^T\cdot \mathscr {D}\cdot \mathscr {B}_i+\frac{p^{hg}}{m_{{\mathbf {K}}_i}}\Big (\begin{bmatrix}\sum _{j\in {\mathcal {S}}_{i}} {\mathbf {I}}_j &{} -{\mathbf {I}}_{j1} &{} \cdots &{} -{\mathbf {I}}_{j_n} \\ -{\mathbf {I}}_{j1} &{} {\mathbf {I}}_{j1} &{} {\mathbf {0}} &{} {\mathbf {0}}\\ \vdots &{} {\mathbf {0}} &{} \ddots &{} {\mathbf {0}}\\ -{\mathbf {I}}_{j_n} &{} {\mathbf {0}} &{} {\mathbf {0}} &{} {\mathbf {I}}_{j_n} \end{bmatrix}-{\mathscr {B}_i}^T\begin{bmatrix}{\mathbf {K}}_i&{} 0 &{} 0\\ 0 &{} {\mathbf {K}}_i&{}0 \\ 0&{} 0&{} {\mathbf {K}}_i\end{bmatrix}{\mathscr {B}_i}\Big )\Bigg )\nonumber \\&=\sum _{j\in {\mathcal {S}}_{i}} \Delta V_j\Bigg ({\mathscr {B}_i}^T \Big (\mathscr {D}-\frac{p^{hg}}{m_{{\mathbf {K}}_i}}\begin{bmatrix}{\mathbf {K}}_i&{} 0 &{} 0\\ 0 &{} {\mathbf {K}}_i &{}0 \\ 0&{} 0&{} {\mathbf {K}}_i\end{bmatrix}\Big )\mathscr {B}_i+\frac{p^{hg}}{m_{{\mathbf {K}}_i}}\begin{bmatrix}\sum _{j\in {\mathcal {S}}_{i}} {\mathbf {I}}_j &{} -{\mathbf {I}}_{j1} &{} \cdots &{} -{\mathbf {I}}_{j_n} \\ -{\mathbf {I}}_{j1} &{} {\mathbf {I}}_{j1} &{} {\mathbf {0}} &{} {\mathbf {0}}\\ \vdots &{} {\mathbf {0}} &{} \ddots &{} {\mathbf {0}}\\ -{\mathbf {I}}_{j_n} &{} {\mathbf {0}} &{} {\mathbf {0}} &{} {\mathbf {I}}_{j_n} \end{bmatrix}\Bigg ) \end{aligned}$$
(61)
The derivation of the first-order hourglass tangent stiffness matrix and the global tangent stiffness matrix in 2D form is given in Appendix B.
The operator energy functional for higher-order NOM at point \({\mathbf {x}}_i\) can be construct according to the higher-order nonlocal operator \(\partial ^{\mathbbm {l}}_\alpha {\mathbf {u}}_i\), it can be expressed as
$$\begin{aligned} {\mathcal {F}}^{hg}_{\alpha i}=&\frac{p^{hg}}{2m_{{\mathbf {K}}_i}}\sum _{j \in {\mathcal {S}}_i} { \mathbbm {w}}(\varvec{\xi }_{ij})\big ({\mathbf {u}}_{ij}-(\varvec{p}_j^{\mathbbm {l}})^T\tilde{\partial }^{\mathbbm {l}}_\alpha {\mathbf {u}}_i \big )^2 \Delta V_j\nonumber \\ =&\frac{p^{hg}}{2m_{{\mathbf {K}}_i}}\sum _{j\in {\mathcal {S}}_i} { \mathbbm {w}}(\varvec{\xi }_{ij})\big ({\mathbf {u}}_{ij}^2+\partial ^{\mathbbm {l}}_\alpha {\mathbf {u}}_i^T \varvec{p}^{\mathbbm {l}}_j\otimes (\varvec{p}_j^{\mathbbm {l}})^T\partial ^{\mathbbm {l}}_\alpha {\mathbf {u}}_i-2 {\mathbf {u}}_{ij} (\varvec{p}_j^{\mathbbm {l}})^T\partial ^{\mathbbm {l}}_\alpha {\mathbf {u}}_i\big )\Delta V_j\nonumber \\ =&\frac{p^{hg}}{2m_{{\mathbf {K}}_i}}\Big (\sum _{j\in {\mathcal {S}}_i} { \mathbbm {w}}(\varvec{\xi }_{ij}) {\mathbf {u}}_{ij}^2\Delta V_j+\partial ^{\mathbbm {l}}_\alpha {\mathbf {u}}_i^T \sum _{j\in {\mathcal {S}}_i}{ \mathbbm {w}}(\varvec{\xi }_{ij})\varvec{p}^{\mathbbm {l}}_j\otimes (\varvec{p}_j^{\mathbbm {l}})^T \Delta V_j\,\,\partial ^{\mathbbm {l}}_\alpha {\mathbf {u}}_i-2 \Delta {\mathbf {u}}_i^T\varvec{p}_{\mathbbm {w}i}^T \partial ^{\mathbbm {l}}_\alpha {\mathbf {u}}_i\Big )\nonumber \\ =&\frac{p^{hg}}{2m_{{\mathbf {K}}_i}}\Big (\sum _{j\in {\mathcal {S}}_i} { \mathbbm {w}}(\varvec{\xi }_{ij}) {\mathbf {u}}_{ij}^2\Delta V_j+\tilde{\partial }_\alpha {\mathbf {u}}_i^T \mathbb {L}_i \sum _{j\in {\mathcal {S}}_i}{ \mathbbm {w}}(\varvec{\xi }_{ij})\varvec{p}^{\mathbbm {l}}_j\otimes (\varvec{p}_j^{\mathbbm {l}})^T \Delta V_j\,\,\mathbb {L}_i\partial ^{\mathbbm {l}}_\alpha {\mathbf {u}}_i-2 \Delta {\mathbf {u}}_i^T(\varvec{p}_{\mathbbm {w}i}^{{\mathbbm {l}}})^T \mathbb {L}_i\tilde{\partial }_\alpha {\mathbf {u}}_i\Big ) \end{aligned}$$
(62)
By submitting the Eq. 34 into the below Eq. 62 and it can be rewritten as
$$\begin{aligned} {\mathcal {F}}^{hg}_{\alpha i} =&\frac{p^{hg}}{2m_{{\mathbf {K}}_{i}}}\Big (\sum _{j\in {\mathcal {S}}_i} { \mathbbm {w}}(\varvec{\xi }_{ij}) {\mathbf {u}}_{ij}^2\Delta V_j-\Delta {\mathbf {u}}_i^T(\varvec{p}_{\mathbbm {w}i}^{\mathbbm {l}})^T \big (\sum _{j\in {\mathcal {S}}_i}{ \mathbbm {w}}(\varvec{\xi }_{ij})\varvec{p}^{\mathbbm {l}}_j\otimes (\varvec{p}_j^{\mathbbm {l}})^T \Delta V_j\big )^{-1}\varvec{p}_{\mathbbm {w}i}^{\mathbbm {l}}\Delta {\mathbf {u}}_i\Big )\nonumber \\ =&\frac{p^{hg}}{2m_{{\mathbf {K}}_{ i}}}\Big (\Delta {\mathbf {u}}_{i}^T \text{ diag }\big [{ \mathbbm {w}}(\varvec{\xi }_{j_1})\Delta V_{j_1},\ldots ,{ \mathbbm {w}}(\varvec{\xi }_{j_{n_i}})\Delta V_{j_{n_i}}\big ] \Delta {\mathbf {u}}_i-\Delta {\mathbf {u}}_i^T(\varvec{p}_{\mathbbm {w}i}^{\mathbbm {l}})^T {\mathbf {K}}_{\alpha i}\mathbb {L}_i \varvec{p}_{\mathbbm {w}i}^{\mathbbm {l}} \Delta {\mathbf {u}}_i\Big )\nonumber \\ =&\frac{p^{hg}}{2m_{{\mathbf {K}}_{ i}}}\Delta {\mathbf {u}}_{i}^T \Big ( \begin{bmatrix} {\mathbf {I}}_{j1} &{} {\mathbf {0}} &{} {\mathbf {0}}\\ {\mathbf {0}} &{} \ddots &{} {\mathbf {0}}\\ {\mathbf {0}} &{} {\mathbf {0}} &{} {\mathbf {I}}_{j_n} \end{bmatrix}-(\varvec{p}_{\mathbbm {w}i}^{\mathbbm {l}})^T {\mathbf {K}}_{\alpha i}\mathbb {L}_i\varvec{p}_{\mathbbm {w}i}^{\mathbbm {l}}\Big )\Delta {\mathbf {u}}_i\nonumber \\ =&\frac{p^{hg}}{2m_{{\mathbf {K}}_{ i}}}({\mathbf {K}}_{\alpha i}^{-1}{\mathbf {p}}_{\mathbbm {w}i}^{\mathbbm {l}} {\mathbf {B}}_{\alpha i}{\mathbf {U}}_i)^T \Big ( \begin{bmatrix} {\mathbf {I}}_{j1} &{} {\mathbf {0}} &{} {\mathbf {0}}\\ {\mathbf {0}} &{} \ddots &{} {\mathbf {0}}\\ {\mathbf {0}} &{} {\mathbf {0}} &{} {\mathbf {I}}_{j_n} \end{bmatrix}-(\varvec{p}_{\mathbbm {w}i}^{\mathbbm {l}})^T {\mathbf {K}}_{ i}\mathbb {L}_i\varvec{p}_{\mathbbm {w}i}^{\mathbbm {l}}\Big ){\mathbf {K}}_{\alpha i}^{-1}{\mathbf {p}}_{\mathbbm {w}i}^{\mathbbm {l}} {\mathbf {B}}_{\alpha i}{\mathbf {U}}_i \end{aligned}$$
(63)
where \({\mathbf {I}}_j={ \mathbbm {w}}(\varvec{\xi }_{ij})\Delta V_j (1,1,1)\otimes (1,1,1)^T\).
The first and second derivative \({\mathcal {F}}^{hg}_{\alpha i}\) yield the higher-order residual and the tangent stiffness matrix of operator energy functional and can be expressed as
$$\begin{aligned} \mathscr {R}^{hg}_{\alpha i}&=\frac{\partial {\mathcal {F}}^{hg}_{\alpha i}}{\partial {\mathbf {U}}_i }\nonumber \\&=\frac{p^{hg}}{m_{{\mathbf {K}}_{ i}}}({\mathbf {K}}_{\alpha i}^{-1}{\mathbf {p}}_{\mathbbm {w}i}^{\mathbbm {l}} {\mathbf {B}}_{\alpha i})^T \Big ( \begin{bmatrix} {\mathbf {I}}_{j1} &{} {\mathbf {0}} &{} {\mathbf {0}}\\ {\mathbf {0}} &{} \ddots &{} {\mathbf {0}}\\ {\mathbf {0}} &{} {\mathbf {0}} &{} {\mathbf {I}}_{j_n} \end{bmatrix}-(\varvec{p}_{\mathbbm {w}i}^{\mathbbm {l}})^T {\mathbf {K}}_{\alpha i}\mathbb {L}_i\varvec{p}_{\mathbbm {w}i}^{\mathbbm {l}}\Big ) {\mathbf {K}}_{\alpha i}^{-1}{\mathbf {p}}_{\mathbbm {w}i}^{\mathbbm {l}} {\mathbf {B}}_{\alpha i}{\mathbf {U}}_i \end{aligned}$$
(64)
$$\begin{aligned} \mathscr {K}^{hg}_{\alpha i}&=\frac{\partial \mathscr {R}^{hg}_{\alpha i}}{\partial {\mathbf {U}}_i ^T}=\frac{\partial ^2{\mathcal {F}}^{hg}_{\alpha i}}{\partial {\mathbf {U}}_i \partial {\mathbf {U}}_i ^T}\nonumber \\&=\frac{p^{hg}}{m_{{\mathbf {K}}_{i}}}({\mathbf {K}}_{\alpha i}^{-1}{\mathbf {p}}_{\mathbbm {w}i}^{\mathbbm {l}} {\mathbf {B}}_{\alpha i})^T \Big ( \begin{bmatrix} {\mathbf {I}}_{j1} &{} {\mathbf {0}} &{} {\mathbf {0}}\\ {\mathbf {0}} &{} \ddots &{} {\mathbf {0}}\\ {\mathbf {0}} &{} {\mathbf {0}} &{} {\mathbf {I}}_{j_n} \end{bmatrix}-(\varvec{p}_{\mathbbm {w}i}^{\mathbbm {l}})^T {\mathbf {K}}_{\alpha i}\mathbb {L}_i\varvec{p}_{\mathbbm {w}i}^{\mathbbm {l}}\Big ) {\mathbf {K}}_{\alpha i}^{-1}{\mathbf {p}}_{\mathbbm {w}i}^{\mathbbm {l}} {\mathbf {B}}_{\alpha i} \end{aligned}$$
(65)
The higher-order global tangent stiffness matrix of operator energy functional in support \({\mathcal {S}}_{i}\) can be computed by
$$\begin{aligned} \mathop {\mathscr {K}_{\alpha i}} \limits ^{hg}=\sum _{j\in {\mathcal {S}}_{i}}\partial _{{\mathbf {U}}_i {\mathbf {U}}_i }{\mathcal {F}}^{hg}_{\alpha i} \Delta V_j =\sum _{j\in {\mathcal {S}}_{i}}\mathscr {K}^{hg}_{\alpha i}\Delta V_j \end{aligned}$$
(66)
Finally, the summation of the higher-order global tangent stiffness matrix and hourglass tangent stiffness matrix in support \({\mathcal {S}}_{i}\) can be obtained
$$\begin{aligned} \mathbb {K}_{\alpha i}&=\mathscr {K}_{\alpha i}+\mathop {\mathscr {K}_{\alpha i}} \limits ^{hg}\nonumber \\&=\sum _{j\in {\mathcal {S}}_{i}} \Bigg ({{\mathbf {B}}_{\alpha i}}^T\cdot \mathscr {D}\cdot {\mathbf {B}}_{\alpha i}+\frac{p^{hg}}{m_{{\mathbf {K}}_{ i}}}({\mathbf {K}}_{\alpha i}^{-1}{\mathbf {p}}_{\mathbbm {w}i}^{\mathbbm {l}} {\mathbf {B}}_{\alpha i})^T \Big ( \begin{bmatrix} {\mathbf {I}}_{j1} &{} {\mathbf {0}} &{} {\mathbf {0}}\\ {\mathbf {0}} &{} \ddots &{} {\mathbf {0}}\\ {\mathbf {0}} &{} {\mathbf {0}} &{} {\mathbf {I}}_{j_n} \end{bmatrix}\nonumber \\&-(\varvec{p}_{\mathbbm {w}i}^{\mathbbm {l}})^T {\mathbf {K}}_{\alpha i}\mathbb {L}_i\varvec{p}_{\mathbbm {w}i}^{\mathbbm {l}}\Big ) {\mathbf {K}}_{\alpha i}^{-1}{\mathbf {p}}_{\mathbbm {w}i}^{\mathbbm {l}} {\mathbf {B}}_{\alpha i}\Bigg ) \Delta V_j \end{aligned}$$
(67)
Numerical implementation with an open-source code
The numerical implementation of the first-order and higher-order NOM are summarized as the following steps, and a flow chart of the NOM implementation procedure is depicted in Fig. 2.
Step 1. Discretization of the solution domain.
Consider the solution domain to be a discrete domain consisting of discrete points of varying sizes and shapes that are linked to one another. There are two methods to achieve the discretization of the solution domain. For the first method, a user-defined subroutine GridDomain is customized, which can discretize the solution domain evenly. This method is mainly used for the discretization of the rule solution domain. The second method can be achieved as follows: initially, the model is created using finite element software (such as ABAQUS), then the model is divided into grids of different sizes according to the characteristics of the model and export the model information into a inp format file. The model mesh and node information can be read through a user-defined subroutine ParseAbaqusFile, therefore the discrete solution domain with different densities can be achieved.
The Mathematica code for discretization of the solution domain is shown below. In the user-defined subroutine GridDomain, where xmin, xmax are the minimum and maximum values of solution domain and dx is the spacing between points.
Step 2. Definition of the problem and solution domain.
Determine the overall attributes and geometric boundary conditions of the solution domain based on the real case, and assign values to the corresponding parameters.
Step 3. Specify and search for the number of neighbors for each point in support and build index numbers for the specified neighbors.
In this step, a user-defined subroutine NeiList is customized by the built-in command Nearest of Mathematica to find the required number of neighbors, and the process of building index number for the specified neighbor points can be achieved by the user-defined subroutine NeiIIndex. The Mathematica code for finding the specified area points and specified number neighbor points in the solution domain is shown below, where coord is the coordinate of the points, numNei represents the number of specified neighbors and ndim denotes the dimension of coordinate.
Step 4. Establish the nonlocal operator coefficient matrix, hourglass tangent stiffness matrix, and the summation of global tangent stiffness matrix and hourglass tangent stiffness matrix in first-order and higher-order form.
\(\textcircled {1}\) First-order nonlocal operator method.
As shown in below Mathematica code, three user-defined subroutines BHgmatrix, Dmatrix and Kmatrix are customized to calculate the nonlocal operator coefficient matrix \({\mathscr {B}}\), hourglass tangent stiffness matrix \(\mathop {\mathscr {K}} \limits ^{hg }\), elastic material constitution matrix \(\mathscr {D}\) and the summation of hourglass tangent stiffness matrix and tangent stiffness matrix \(\mathbb {K}\). In the user-defined subroutine BHgmatrix, initially the basic forms \({\mathscr {B}_i}\), \(\mathop {\mathscr {K}_{i}} \limits ^{hg}\) and shape tensor \({\mathbf {K}}_i\) at point \({\mathbf {x}}_i\) are constructed, which are named as bmatrix, hgmatrix and kmatrix, respectively. Subsequently by Eq. 7, shape tensor can be calculated; by the equation \({\mathbf {I}}_j={ \mathbbm {w}}(\varvec{\xi }_{ij}) V_j (1,1,1)\otimes (1,1,1)^T\) and Eq. 56, the matrix \({\mathbf {I}}_j\) can be calculated and the \(\mathop {\mathscr {K}_{i}} \limits ^{hg}\) matrix can be assembled. Similarly, by equation \({\mathbf {R}}_{j}={ \mathbbm {w}}\left( \varvec{\xi }_{ij}\right) \varvec{\xi }_{ij} ^T V_j\cdot {\left[ \sum _{j\in {\mathcal {S}}_{i}}{ \mathbbm {w}}\left( \varvec{\xi }_{ij}\right) {\varvec{\xi }_{ij}}\otimes \varvec{\xi }_{ij} \Delta V_j\right] ^{-1}}\) and Eq. 15, the intermediate variables \({\mathbf {R}}_{j}\) can be obtained and the \({\mathscr {B}_i}\) matrix is assembled. In the user-defined subroutine Dmatrix, by Eqs. 43, 44 and 45, the linear elastic solid elastic matrix \(\mathscr {D}\) for plane stress, plane strain and 3D conditions can be obtained. Where type=1,2,3 represent the three constitutive models mentioned above. In the user-defined subroutine Kmatrix, by Eq. 67, the summation of global tangent stiffness matrix and hourglass tangent stiffness matrix \(\mathbb {K}\) can be established. In the below Mathematica code, where WeiF represents the weight function, voli represents the volume of each point, Es, mu represents the Young’s Modulus and Poisson’s ratio, respectively.
\(\textcircled {2}\) Higher-order nonlocal operator method.
The main codes for higher-order NOM are presented in Appendix C, which includes constructing the global higher-order nonlocal operator coefficient matrix \({\mathbf {B}}_{\alpha }\), global hourglass tangent stiffness matrix \(\mathop {\mathscr {K}_{\alpha }} \limits ^{hg }\) and the summation of global tangent stiffness matrix and hourglass tangent stiffness matrix \(\mathbb {K}_{\alpha }\). Initially, a user-defined subroutine MultiIndex is customized to construct multi-index notation in Eq. 21. where \({\varvec{{d}}}\) denotes the dimension, \({\varvec{{sum}}}\) denotes the maximal order of derivatives. Then, the customized user-defined subroutine GFD0CoeffHalf can obtain the factors of multi-index, polynomials and partial derivatives in designated dimensions with maximal higher-order derivatives in Eq. 23. For constructing the elastic material constitution matrix, according to Eqs. 36–38, the user-defined subroutine FuncRK is compiled to obtain elastic matrix \(\mathscr {D}\). For higher-order global hourglass tangent stiffness matrix \(\mathop {\mathscr {K}_{\alpha }} \limits ^{hg }\) and the summation of global tangent stiffness matrix and hourglass tangent stiffness matrix \(\mathbb {K}_{\alpha }\), according to Eqs. 33, 34 and 67, two main user-defined subroutines NOMPwKhg and NOMRK are customized to achieve the establishment of corresponding matrix.
Step 5. Search boundary points in discrete domain and impose corresponding boundary conditions based on actual problems.
A user-defined subroutine FindPoints is customize for searching boundary points. When using user-defined subroutine FindPoints, it’s need to call another customized subroutine LessThancoord at the same time. Subsequently, to employ Dirichlet and Neumann boundary conditions to the boundary points, two user-defined subroutines DirichletBoundaryApply and NeumannBoundaryApply are customized. Where the penalty method is used in the user-defined subroutine DirichletBoundaryApply. The related Mathematica codes are shown as below, where Ksp represents the summation of global tangent stiffness matrix and hourglass tangent stiffness matrix \(\mathbb {K}\), Rsp represents the global internal residual, pd represents the index of the points of application of specified displacement, pc represents the penalty coefficient and pf represents the index of the points of application of specified force.
Step 6. Solve the global displacement in the discrete domain.
According to step 1 to step 5, the summation of global tangent stiffness matrix and hourglass tangent stiffness matrix \(\mathbb {K}\) and global residual vector \(\mathscr {R}\) can be calculated. And the global displacement matrix can be calculated by solving the following linear algebra Eq. 68.
$$\begin{aligned} (\mathscr {K}+\mathop {\mathscr {K}} \limits ^{hg}){\mathbf {u}}=\mathbb {K}{\mathbf {u}}= \mathscr {R} \end{aligned}$$
(68)
we employ the built-in command LinearSolve of Mathematica to solve the global displacement vector, then we use the user-defined subroutine UMatrix convert displacement vector into displacement matrix form. The related Mathematica codes are shown below.