1 Introduction

The finite element method (FEM) has, since its introduction, become the most dominant approach for computational analysis in many science and engineering applications. The governing equations of the physical phenomena are formulated on standard simplex shapes such as triangles and quadrilaterals for two dimensions; and hexahedra and tetrahedra for three-dimensions, result in simple and efficient computations. However, the limitations on the shapes of the elements introduce some difficulties when modelling problems with topological changes e.g. fracture [44, 55]. Often, re-meshing is employed to generate a compatible mesh for the simulations to continue. This potentially result in ill-shaped elements, further leading to computational inaccuracies and instabilities. On another aspect of computational mechanics, the task of designing of complex components is usually made more complicated by the limited types of elements available in standard FEM libraries. It is not unusual to invest weeks of human effort to construct a suitable mesh for analysis. A possible alternative to reduce the computational burden required for mesh generation is to develop formulations that relax- the requirement of the shapes of the elements that can be used for the analysis. This can be achieved using two approaches: (i) meshless methods and (ii) polygonal (two-dimensional) or polyhedral (three-dimensional) elements.

The meshless method was initially developed to model astrophysical problems by Gingold and Monaghan [23] and Lucy [35]. Its application in computational mechanics gained popularity in the mid-1990’s with the introduction of the Element Free Galerkin method [5]. Since then different variants of meshless methods have been proposed including for example, the Reproducing Kernel Particle method [33], the meshless local Petrov-Galerkin method [3], the meshfree radial point interpolation method [31], the hp-cloud meshless method [30] and the generalised-strain mesh-free method [39]. A detailed discussion on the various formulations of meshless methods is reported by Babǔska et al. [4]. Conceptually, the meshless methods formulate the governing equations over subsets of nodes. A computational mesh is not required and it is sufficient that only the information of the nodal positions are specified to define the geometry of the computational domain. Although this successfully reduces the computational burden required for pre-processing, the meshless methods introduce additional complications in the solution process such as difficulty in enforcing the Dirichlet boundary conditions, resolving regions with different materials and discontinuities and the need for high quadrature rules required to integrate the shape functions and their derivatives. Various techniques have to be used to alleviate these problems associated with the meshless methods e.g. [6, 13, 25, 57].

The idea for the possible development of arbitrary shaped elements was conceptualised by Wachspress [53]. However, the development of arbitrary shaped elements did not gain popularity until the development of interpolants based on generalised barycentric coordinates [36], mean valued coordinates [19], natural neighbour shape functions [51] and harmonic coordinates [27]. The shape functions developed using these approaches are conforming and linearly complete, thereby guaranteeing convergence of the method in the limit where the mesh size approaches zero. The development of such class of shape functions for three-dimensional problems in the form of polyhedral elements has been recently pursued. Polyhedral element formulations based on barycentric interpolants [55], Waschspress shape functions [28] and harmonic shape functions [7] have been recently reported. Unstructured polygonal/polyhedral meshes have been shown to produce reliable solutions with superior accuracy [18]. Examples of existing approaches reported on polyhedral meshes include the smoothed finite element method (SFEM) [20], the virtual node method [42], the virtual element method (VEM) [21], Trefftz method [45] and the discontinuous Galerkin method [11] to name a few.

The VEM [15] is an alternative approach to develop polygonal/polyhedral finite elements and is seen as a generalization of finite elements over polytopes. The VEM is derived from mimetic finite differences [9]. One of the salient features of the VEM is that it does not require an explicit form of the basis functions to compute the terms in the stiffness matrix and force vector when the approximation order is linear. In the VEM, the space within an element contains certain polynomials that guarantee accuracy and certain additional functions (non-polynomial) that esures stability. With a suitable choice of polynomial basis functions and of the number of degrees-of-freedom, the VEM is conforming and provides consistent approximations to the element strain energy for generic deformation modes. The computation of the stiffness matrix in the VEM involves computing boundary integrals and integral of polynomials over a polygonal region. One approach is to divide the polygonal face into quadrilaterals as discussed in [21]. The other approach involves triangulating the face Aldakheel et al. [1]. The computation of the non-polynomial part that ensures stability involves sub-trangulating the polyhedral element. For more details, interested readers are referred to Aldakheel et al. [1] (c.f Section 3.2.3). Polyhedral formulation of the VEM for three-dimensional analysis has been reported for diffusion [10], elasticity [14, 21], elastoplasticity [1] and thermo-plasticity [2]. More recently, the formulation of a high-order VEM [16] has also been reported in the literature.

The SFEM [32] is an alternate approach to formulate polyhedral elements. In the SFEM, the mesh is (in general) divided into smoothing domains. The smoothing domains, through the divergence theorem, transforms the volume integral required for computing the stiffness matrix into a surface integral. Therefore, only the information on the boundaries of the subcells are required to compute the stiffness matrix. The smoothing domains may be constructed from a subset of nodes or edges over a patch of elements [29] or from cells over a patch of elements [20]. Natarajan et al. [37] also showed the equivalence of polygonal/polyhedral elements formulated from the SFEM and the VEM under specific conditions.

Other approaches that can be used to formulate polyhedral finite elements include the use of polynomial-based interpolation [44], the Voronoi cell FEM [22] and the finite volume method [12]. The polynomial-based interpolation proposed by Rashid and Selimotic [44] is formulated in terms of the physical coordinates and does not strictly satisfy the displacement compatibility condition between adjacent element interfaces. The method however, passes the patch test in the limit when the size of the element approaches zero. The Voronoi cell FEM is based on the hybrid stress formulation and requires careful care when selecting the number of coefficients for the stress interpolation to avoid spurious energy modes corresponding to a singular stiffness matrix. While the finite volume method is more commonly used in computational fluid dynamics simulations many attempts have been made to broaden its application in computational solid mechanics. The formulation of the finite volume method on polyhedral meshes [12] showed superior efficiency when compared with low order FEM approaches.

The scaled boundary finite element method (SBFEM) was developed by Song and Wolf [49]. It is a semi-analytical method that has niche applications in problems involving singularities and unbounded media, where the FEM experiences difficulties in accurately capturing the physics of these problems. The SBFEM is also sufficiently flexible in that it provides an alternative approach to formulate polygonal [40] and polyhedral elements [38, 47, 52]. The approaches adopted by Talebi et al. [52] and Saputra et al. [47] are similar. The facets of the polyhedral elements are defined by polygonal surfaces that are further discretised using triangular and/or quadrilateral finite elements. The polyhedral formulation was used in conjunction with octree meshes to take advantage of the computational efficiency of the octree decomposition in mesh generation and solution process. The approach adopted by Natarajan et al. [38] follows a different technique. Polygonal shape functions based on Wachspress interpolants are employed instead of triangular and/or quadrilateral discretisation. In these approaches, numerical integration is adopted over the surfaces of the triangular, quadrilateral or polygonal elements on the polyhedral facets. An analytical integration is adopted within the polyhedral domain.

The objective of this study is to present a new technique to construct polyhedral elements based on the SBFEM. This technique, like that of Natarajan et al. [38] and Zou et al. [58], employs polygonal shape functions to discretise the facets of the polyhedrals in the mesh. The shape functions are in a form of rational polynomials and require special numerical integration over the facets to achieve a desired accuracy. In this work, instead of the Wachspress shape functions, semi-analytical polygonal shape functions are derived from the SBFEM on each facet of the polyhedron. This is achieved by introducing a second scaled boundary coordinate system on the facets of a polyhedron. The scaling of the geometry of a polyhedron is therefore performed twice: (i) with respect to the scaled boundary coordinate on the polygonal surfaces and; (ii) with respect to the scaled boundary coordinate at the scaling centre of the polyhedron. As a result, numerical integration is required only for the line elements that discretise the polyhedra boundaries. An analytical integration is adopted within the polygonal surface and within the polygonal domain. A further discretisation of the polyhedral surfaces into triangles and/or quadrilaterals e.g. in the technique employed by Talebi et al. [52] is not necessary.

This paper is organised as follows: Sect. 2, commences with the description of the developed technique, the coordinate transformation, formulation of the surface shape functions and the solution for the equilibrium condition within a polyhedron. Section 3 focuses on the analytical integration procedure required to compute the coefficient matrices in the new scaled boundary finite element formulation. Other implementation aspects of the developed method associated with the use of polyhedron and octree meshes are described in Sect. 4. Section 5 presents the application of developed method for a few numerical benchmarks for validation. The manuscript concludes in Sect. 6 summarising the major conclusions derived from this study.

2 Dual scaled boundary coordinate systems on arbitrary polyhedra

The proposed technique can be formulated on arbitrary faceted polyhedrons. Each facet is in turn an arbitrary sided star-convex polygon that forms a plane in the three-dimensional space. For non-planar surfaces, a further triangulation step can be performed on the surface to generate an admissible polyhedron. The only restriction to the geometry of a polyhedron is that it must satisfy the scaling requirement required by the SBFEM on each of the facets of the polyhedron and also within the polyhedron. These scaling requirements require that:

  1. 1.

    There is a point within the polyhedron from which the entire boundary (surface) is directly visible from it. This point is defined as the polyhedron scaling centre\(O_{p}(x_{p},\,y_{p},\,z_{p})\) and it is convenient to choose this to be the geometric centre of the polyhedron.

  2. 2.

    For each facet that discretises the polyhedron boundary, there is a point on the plane of each facet such that the entire edge of the polygon is directly visible from it. This point is defined as the surface scaling centre\(O_{s}(x_{s}\,y_{s},\,z_{s})\).

Fig. 1
figure 1

A generic polyhedron modelled by the dual-SBFEM and radial coordinate \(\xi \)

Figure 1 shows a generic polyhedron that can be formulated from a dual scaled boundary coordinate system. A radial coordinate \(\xi \) with \(0\le \xi \le 1\). is defined at the polyhedron scaling centre. The radial coordinate is \(\xi =0\) at the polyhedron scaling centre \(O_{p}\) and \(\xi =1\) at any point on the polyhedron boundary. Together with the polyhedron scaling centre, each facet on the polyhedron forms a pyramidal sector as shown in Fig. 2. The base of the pyramid is a planar arbitrary sided polygon. A second radial coordinate \(\zeta \) with \(0\le \zeta \le 1\) is defined at the surface scaling centre of the polygon. At the surface scaling centre \(O_{s}\), \(\zeta =0\) and at the polygon boundary, \(\zeta =1\). Each edge on the polygon boundary is discretised using one-dimensional line elements having local coordinate \(\eta \) with \(-1\le \eta \le 1\) similar to the FEM.

The \((\xi ,\eta ,\zeta )\) coordinate system is shown in Fig. 2. The Cartesian coordinates \(\hat{{\mathbf {r}}}(\eta )=[{\hat{x}}(\eta ),\,{\hat{y}}(\eta ),\,{\hat{z}}(\eta )]^{T}\) of a point defined on a line element of a generic tetrahedral sector shown in Fig. 2 is interpolated by shape functions as

$$\begin{aligned} {[}{\hat{x}}(\eta )\quad {\hat{y}}(\eta )\quad {\hat{z}}(\eta )]^{T}=\,&{[}{\mathbf {N}}(\eta ){\mathbf {x}}_{b}\quad {\mathbf {N}}(\eta ){\mathbf {y}}_{b} \quad {\mathbf {N}}(\eta ){\mathbf {z}}_{b}]^{T} \end{aligned}$$
(1)

where

$$\begin{aligned} {\mathbf {N}}(\eta )=\,&[N_{1}(\eta )\quad N_{2}(\eta )\quad \ldots N_{n}(\eta )] \end{aligned}$$
(2)

is the shape function vector with n number of nodes and \({\mathbf {x}}_{b}^{T}=[x_{1}\,\,x_{2}\ldots x_{n}]\), \({\mathbf {y}}_{b}^{T}=[y_{1}\,\,y_{2}\ldots y_{n}]\) and \({\mathbf {z}}_{b}^{T}=[z_{1}\,\,z_{2}\ldots z_{n}]\) are the vectors of nodal coordinates along the \(x-\), \(y-\) and z-axes, respectively.

Fig. 2
figure 2

Dual-SBFEM coordinate system on a pyramidal sector and on a tetrahedral sector of a polyhedron

On each surface, the Cartesian coordinates \(\overline{{\mathbf {r}}}(\eta ,\zeta )=[{\overline{x}}(\eta ,\zeta ), \,{\overline{y}}(\eta ,\zeta ),\,{\overline{z}}(\eta ,\zeta )]^{T}\) of a point on the facet of the tetrahedral sector are scaled with respect to the radial coordinate \(\zeta \) as

$$\begin{aligned} \left\{ \begin{array}{c} {\overline{x}}(\eta ,\zeta )\\ {\overline{y}}(\eta ,\zeta )\\ {\overline{z}}(\eta ,\zeta ) \end{array}\right\} =\,&(1-\zeta )\left\{ \begin{array}{c} x_{s}\\ y_{s}\\ z_{s} \end{array}\right\} +\zeta \left\{ \begin{array}{c} {\hat{x}}(\eta )\\ {\hat{y}}(\eta )\\ {\hat{z}}(\eta ) \end{array}\right\} \end{aligned}$$
(3)

For a generic case where the polyhedron scaling centre is located at the origin, the Cartesian coordinate \({\mathbf {r}}(\xi ,\eta ,\zeta )=[x(\xi ,\eta ,\zeta ),\,y(\xi ,\eta ,\zeta ), \,z(\xi ,\eta ,\zeta )]^{T}\) of a point in the tetrahedral sector shown in Fig. 2 is obtained by scaling the coordinate \(\overline{{\mathbf {x}}}(\eta ,\zeta )\) by the radial coordinate \(\xi \) as

$$\begin{aligned} {\mathbf {r}}(\xi ,\eta ,\zeta )=\,&\xi \overline{{\mathbf {r}}}(\eta ,\zeta ) \end{aligned}$$
(4)

The coordinate transformation between the Cartesian and the scaled boundary coordinates is obtained using the chain rule of derivatives as

$$\begin{aligned} \left\{ \begin{array}{c} \frac{\partial }{\partial \xi }\\ \frac{\partial }{\partial \eta }\\ \frac{\partial }{\partial \zeta } \end{array}\right\} =&\left[ \begin{array}{ccc} \frac{\partial x}{\partial \xi } &{} \frac{\partial y}{\partial \xi } &{} \frac{\partial z}{\partial \xi }\\ \frac{\partial x}{\partial \eta } &{} \frac{\partial y}{\partial \eta } &{} \frac{\partial z}{\partial \eta }\\ \frac{\partial x}{\partial \zeta } &{} \frac{\partial y}{\partial \zeta } &{} \frac{\partial z}{\partial \zeta } \end{array}\right] \left\{ \begin{array}{c} \frac{\partial }{\partial x}\\ \frac{\partial }{\partial y}\\ \frac{\partial }{\partial z} \end{array}\right\} ={\mathbf {J}}(\xi ,\eta ,\zeta )\left\{ \begin{array}{c} \frac{\partial }{\partial x}\\ \frac{\partial }{\partial y}\\ \frac{\partial }{\partial z} \end{array}\right\} \end{aligned}$$
(5)

where \({\mathbf {J}}(\xi ,\eta ,\zeta )\) is the Jacobian matrix. Using the definitions in Eqs. (3) and  (4), \({\mathbf {J}}(\xi ,\eta ,\zeta )\) can be expressed as

$$\begin{aligned} {\mathbf {J}}(\xi ,\eta ,\zeta )=&\left[ \begin{array}{ccc} 1\\ &{} \xi \\ &{} &{} \xi \end{array}\right] \left[ \begin{array}{ccc} {\overline{x}} &{} {\overline{y}} &{} {\overline{z}}\\ {\overline{x}},_{\zeta } &{} {\overline{y}},_{\zeta } &{} {\overline{z}},_{\zeta }\\ {\overline{x}},_{\eta } &{} {\overline{y}},_{\eta } &{} {\overline{z}},_{\eta } \end{array}\right] \end{aligned}$$
(6)

where the dependencies of \({\overline{x}}\), \({\overline{y}}\) and \({\overline{z}}\) on \(\eta \) and \(\zeta \) have been dropped from Eq. (6) for convenience. The second term on the right-hand-side of Eq. (6) is defined as the surface Jacobian

$$\begin{aligned} \overline{{\mathbf {J}}}(\eta ,\zeta )=&\left[ \begin{array}{ccc} {\overline{x}} &{} {\overline{y}} &{} {\overline{z}}\\ {\overline{x}},_{\zeta } &{} {\overline{y}},_{\zeta } &{} {\overline{z}},_{\zeta }\\ {\overline{x}},_{\eta } &{} {\overline{y}},_{\eta } &{} {\overline{z}},_{\eta } \end{array}\right] \end{aligned}$$
(7)

Using Eqs. (5), (6) and (7), the coordinate transformation can therefore be expressed as

$$\begin{aligned} \left[ \frac{\partial }{\partial x}\quad \frac{\partial }{\partial y}\quad \frac{\partial }{\partial z}\right] ^{T}=&\overline{{\mathbf {J}}}^{-1}(\eta ,\zeta )\left[ \frac{\partial }{\partial \xi } \quad \frac{\partial }{\partial \eta }\quad \frac{\partial }{\partial \zeta } \right] ^{T} \end{aligned}$$
(8)

The Cartesian derivatives can be more conveniently expressed in terms of the outward normal vectors \({\mathbf {g}}^{\xi }\), \({\mathbf {g}}^{\eta }\) and \({\mathbf {g}}^{\zeta }\) to the three surfaces \((\eta ,\zeta )\), \((\zeta ,\xi )\) and \((\xi ,\eta )\), where the coordinates \(\xi \), \(\eta \) and \(\zeta \), respectively, are constant on the boundary \(\xi =1\). The outward normal vectors are, respectively

$$\begin{aligned} {\mathbf {g}}^{\xi }=&\mathbf {{\overline{r}}},_{\zeta }\times \mathbf {{\overline{r}}},_{\eta } =\left[ {\overline{y}},_{\zeta }{\overline{z}},_{\eta }-{\overline{y}}_{,\eta } {\overline{z}},_{\zeta }\quad {\overline{z}},_{\zeta }{\overline{x}},_{\eta } -{\overline{z}}_{,\eta }{\overline{x}},_{\zeta }\right. \nonumber \\ {}&\left. \quad \quad \quad \quad \quad \ \ {\overline{x}},_{\zeta } {\overline{y}},_{\eta }-{\overline{x}}_{,\eta }{\overline{y}},_{\zeta }\right] ^{T} \end{aligned}$$
(9a)
$$\begin{aligned} {\mathbf {g}}^{\eta }=&\mathbf {{\overline{r}}}\times \mathbf {{\overline{r}}},_{\zeta } =\left[ {\overline{y}}{\overline{z}},_{\zeta }-{\overline{y}}_{,\zeta }{\overline{z}} \quad {\overline{z}}{\overline{x}},_{\zeta }-{\overline{z}}_{,\zeta }{\overline{x}} \quad {\overline{x}}{\overline{y}},_{\zeta }-{\overline{x}}_{,\zeta } {\overline{y}}\right] ^{T}\end{aligned}$$
(9b)
$$\begin{aligned} {\mathbf {g}}^{\zeta }=&\mathbf {{\overline{r}}},_{\eta }\times \mathbf {{\overline{r}}} =\left[ {\overline{y}},_{\eta }{\overline{z}}-{\overline{y}}{\overline{z}},_{\eta } \quad {\overline{z}}{\overline{x}},_{\eta }-{\overline{z}},_{\eta }{\overline{x}} \quad {\overline{x}},_{\eta }{\overline{y}}-{\overline{x}}{\overline{y}},_{\eta }\right] ^{T} \end{aligned}$$
(9c)

The unit vectors of \({\mathbf {g}}^{\xi }\), \({\mathbf {g}}^{\eta }\) and \({\mathbf {g}}^{\zeta }\) are therefore

$$\begin{aligned} {\mathbf {n}}^{\xi }=&\left[ n_{x}^{\xi }\quad n_{y}^{\xi }\quad n_{z}^{\xi }\right] =\frac{{\mathbf {g}}^{\xi }}{g^{\xi }} \end{aligned}$$
(10a)
$$\begin{aligned} {\mathbf {n}}^{\eta }=&\left[ n_{x}^{\eta }\quad n_{y}^{\eta }\quad n_{z}^{\eta }\right] =\frac{{\mathbf {g}}^{\eta }}{g^{\eta }} \end{aligned}$$
(10b)
$$\begin{aligned} {\mathbf {n}}^{\zeta }=&\left[ n_{x}^{\zeta }\quad n_{y}^{\zeta }\quad n_{z}^{\zeta }\right] =\frac{{\mathbf {g}}^{\zeta }}{g^{\zeta }} \end{aligned}$$
(10c)

where \(g^{\xi }\), \(g^{\eta }\) and \(g^{\zeta }\) are the magnitudes of the vectors \({\mathbf {g}}^{\xi }\), \({\mathbf {g}}^{\eta }\) and \({\mathbf {g}}^{\zeta }\), respectively. Using Eqs. (9a)–(10c), \(\overline{{\mathbf {J}}}^{-1}(\eta ,\zeta )\) can be expressed as

$$\begin{aligned} \overline{{\mathbf {J}}}^{-1}(\eta ,\zeta )=&\frac{1}{{\overline{J}}(\eta ,\zeta )}\left[ \begin{array}{ccc} g^{\xi }n_{x}^{\xi } &{} g^{\zeta }n_{x}^{\zeta } &{} g^{\eta }n_{x}^{\eta }\\ g^{\xi }n_{y}^{\xi } &{} g^{\zeta }n_{y}^{\zeta } &{} g^{\eta }n_{y}^{\eta }\\ g^{\xi }n_{z}^{\xi } &{} g^{\zeta }n_{z}^{\zeta } &{} g^{\eta }n_{z}^{\eta } \end{array}\right] \end{aligned}$$
(11)

where \({\overline{J}}(\eta ,\zeta )\) is the determinant of \(\overline{{\mathbf {J}}}(\eta ,\zeta )\). Using Eq. (3), \({\overline{J}}(\eta ,\zeta )\) can be expressed as

$$\begin{aligned} {\overline{J}}(\eta ,\zeta )=&\zeta J_{b}(\eta ) \end{aligned}$$
(12)

where

$$\begin{aligned} J_{b}(\eta )=&x_{s}({\overline{y}},_{\zeta }{\tilde{z}},_{\eta }-{\tilde{y}},_{\eta } {\overline{z}},_{\zeta })+y_{s}({\overline{z}},_{\zeta }{\tilde{x}},_{\eta } -{\tilde{z}},_{\eta }{\overline{x}},_{\zeta })\nonumber \\&+z_{s}({\overline{x}},_{\zeta } {\tilde{y}},_{\eta }-{\tilde{x}},_{\eta }{\overline{y}},_{\zeta }) \end{aligned}$$
(13)

with

$$\begin{aligned}{}[{\tilde{x}},_{\eta }\quad {\tilde{y}},_{\eta }\quad {\tilde{z}},_{\eta }]^{T}=&[{\mathbf {N}}(\eta ),_{\eta }{\mathbf {x}}_{b}\quad {\mathbf {N}}(\eta ),_{\eta } {\mathbf {y}}_{b}\quad {\mathbf {N}}(\eta ),_{\eta }{\mathbf {z}}_{b}]^{T} \end{aligned}$$
(14)

and that \(J_{b}\) is a function of \(\eta \) only. Substituting Eq. (11) into Eq. (8) results in

$$\begin{aligned} \left\{ \begin{array}{c} \frac{\partial }{\partial x}\\ \frac{\partial }{\partial y}\\ \frac{\partial }{\partial z} \end{array}\right\} =&\frac{g^{\xi }}{{\overline{J}}}\left\{ \begin{array}{c} n_{x}^{\xi }\\ n_{y}^{\xi }\\ n_{z}^{\xi } \end{array}\right\} \frac{\partial }{\partial \xi }+\frac{1}{\xi } \left( \frac{g^{\eta }}{{\overline{J}}}\left\{ \begin{array}{c} n_{x}^{\eta }\\ n_{y}^{\eta }\\ n_{z}^{\eta } \end{array}\right\} \frac{\partial }{\partial \eta }+\frac{g^{\zeta }}{{\overline{J}}}\left\{ \begin{array}{c} n_{x}^{\zeta }\\ n_{y}^{\zeta }\\ n_{z}^{\zeta } \end{array}\right\} \frac{\partial }{\partial \zeta }\right) \end{aligned}$$
(15)

The coordinate transformation of an infinitesimal volume \(d\varOmega \) in the dual-scaled boundary coordinate system \((\xi ,\eta ,\zeta )\) is established from the derivatives of the position vector \({\mathbf {r}}(\xi ,\eta ,\zeta )\) defined in Eq. (5) with respect to \(\xi \), \(\eta \) and \(\zeta \) as

$$\begin{aligned} d\varOmega =&{\mathbf {r}},_{\xi }\cdot ({\mathbf {r}},_{\zeta }\times {\mathbf {r}},_{\eta })d\xi d\eta d\zeta ={\overline{J}}(\eta ,\zeta )\xi ^{2}d\xi d\eta d\zeta \end{aligned}$$
(16)

3 Polygonal surface shape functions

To proceed with the equilibrium formulation for a polyhedron, the polygonal facets on each polyhedron have to be discretised. The approach adopted in the conventional SBFEM [50, 52] is to further discretise the polyhedron facets into simplex shapes e.g. triangles and quadrilaterals that can be discretised by the FEM. Standard FEM shape functions are then adopted over each simplex shape. A different approach is be adopted here. Instead of a further discretisation into simplex shapes, a new set of shape functions is derived on the polygonal facets. For this purpose, local right-handed coordinate system is introduced on each polygonal facet with origin at the surface scaling centre as shown in Fig. 3. The local coordinate system \((s,\,t,\,n)\) is defined by three orthogonal axes with unit vectors \({\mathbf {s}}\), \({\mathbf {t}}\) and \({\mathbf {n}}\). The unit vector \({\mathbf {n}}\) is the outward normal pointing away from the polyhedron scaling centre. The unit vectors \({\mathbf {s}}\) and \({\mathbf {t}}\) lie along the polygonal plane and can be chosen arbitrarily in any direction so as long as they are orthogonal. A straightforward procedure is to compute \({\mathbf {s}}\) with reference to an edge on the polygon boundary. The unit vector \({\mathbf {t}}\) can then be computed as

$$\begin{aligned} {\mathbf {t}}=&{\mathbf {n}}\times {\mathbf {s}} \end{aligned}$$
(17)

The Cartesian coordinates \((x,\,y,\,z)\) of a point on the polygonal facet can be transformed into local coordinates \((s,\,t,\,n)\) by defining the \(3\times 3\) transformation matrix \({\mathbf {R}}\)

$$\begin{aligned} {\mathbf {R}}=&[{\mathbf {s}}\quad {\mathbf {t}}\quad {\mathbf {n}}] \end{aligned}$$
(18)

so that

$$\begin{aligned}{}[s\quad t\quad n]^{T}=&{\mathbf {R}}[x\quad y\quad z]^{T} \end{aligned}$$
(19)
Fig. 3
figure 3

Local right-handed coordinate system \((s,\,t,\,n)\) on a polygonal facet

The two-dimensional shape functions on a polygonal facet \(\varGamma \) are then formulated in terms of the SBFEM surface coordinates \((\eta ,\zeta )\) from the SBFEM solution of the Laplace equation. This involves the formulation of the SBFEM over a two-dimensional area typical in conventional SBFEM practices e.g. [48] with the coordinates \((s,\,t)\) replacing the Cartesian coordinates \((x,\,y)\).This is similar to the approach of solving coupled field problems with the SBFEM where the shape functions for the (scalar) pressure field in a seepage flow problem is derived from the solution of the Laplace equation [41].

Fig. 4
figure 4

Local planar coordinate system on a triangular sector bounded by a line element on the boundary

The coordinates \((s,\,t)\) of a point in a triangular sector bounded by a line element on the boundary (see Fig. 4) and the surface scaling centre \(O_{s}\) can be expressed in terms of the scaled boundary coordinates on the surface \(\varGamma \) as

$$\begin{aligned} \left\{ \begin{array}{c} s(\eta ,\zeta )\\ t(\eta ,\zeta ) \end{array}\right\} =&\zeta \left\{ \begin{array}{c} {\mathbf {N}}(\eta ){\mathbf {s}}_{b}\\ {\mathbf {N}}(\eta ){\mathbf {t}}_{b} \end{array}\right\} \end{aligned}$$
(20)

where \({\mathbf {N}}(\eta )\) is the shape function vector described in Eq. (2) and \({\mathbf {s}}_{b}=[s_{1}\quad s_{2}\ldots s_{n}]^{T}\) and \({\mathbf {t}}_{b}=[t_{1}\quad t_{2}\ldots t_{n}]^{T}\) are the vector of nodal coordinates of the line element. It is noted here that at any point on the plane, the coordinate n is zero and is omitted in the shape function derivation.

A linear operator \(\nabla _{L}\) is defined and expressed in terms of the local planar coordinates \((s,\,t)\) as

$$\begin{aligned} \nabla _{L}^{T}=&\left[ \frac{\partial }{\partial s}\quad \frac{\partial }{\partial t}\right] \end{aligned}$$
(21)

Using the chain rule, the coordinate transformation of the derivatives in the \((s,\,t)\) coordinate system into scaled boundary coordinates on the plane \((\eta ,\zeta )\) is expressed as [56]

$$\begin{aligned} \left[ \frac{\partial }{\partial s}\quad \frac{\partial }{\partial t}\right] ^{T}=&\overline{{\mathbf {b}}}_{1}(\eta )\frac{\partial }{\partial \zeta } +\frac{1}{\zeta }\overline{{\mathbf {b}}}_{2}(\eta ) \frac{\partial }{\partial \eta } \end{aligned}$$
(22)

where

$$\begin{aligned} \overline{{\mathbf {b}}}_{1}(\eta )=&\frac{1}{J_{L}(\eta )}\left[ \begin{array}{c} {\mathbf {N}}(\eta ),_{\eta }{\mathbf {t}}_{b}\\ -{\mathbf {N}}(\eta ),_{\eta }{\mathbf {s}}_{b} \end{array}\right] \end{aligned}$$
(23a)
$$\begin{aligned} \overline{{\mathbf {b}}}_{2}(\eta )=&\frac{1}{J_{L}(\eta )}\left[ \begin{array}{c} -{\mathbf {N}}(\eta ){\mathbf {t}}_{b}\\ {\mathbf {N}}(\eta ){\mathbf {s}}_{b} \end{array}\right] \end{aligned}$$
(23b)

and \(J_{L}(\eta )\) is the determinant of the Jacobian matrix \(\overline{{\mathbf {J}}}_{L}(\eta )\), expressed as

$$\begin{aligned} \overline{{\mathbf {J}}}_{L}(\eta )=&\left[ \begin{array}{cc} {\mathbf {N}}(\eta ){\mathbf {s}}_{b}\quad &{} {\mathbf {N}}(\eta ){\mathbf {t}}_{b}\\ {\mathbf {N}}(\eta ),_{\eta }{\mathbf {s}}_{b}\quad &{} {\mathbf {N}}(\eta ),_{\eta }{\mathbf {t}}_{b} \end{array}\right] \end{aligned}$$
(24)

Following Wolf and Song [56], an infinitesimal area \(d\varGamma \) on the surface of a polygonal facet can be expressed in terms of \((\eta ,\zeta )\) as

$$\begin{aligned} d\varGamma =&J_{L}(\eta )\zeta d\zeta d\eta \end{aligned}$$
(25)

The Laplace equation is expressed as

$$\begin{aligned} \nabla _{L}^{T}\nabla _{L}\theta =&0 \end{aligned}$$
(26)

where \(\theta \) is the potential.The potential of a point in a triangular sector bounded by a line element on the boundary and the surface scaling centre \(O_{s}\) is interpolated as

$$\begin{aligned} \theta (\eta ,\zeta )=&{\mathbf {N}}(\eta ){\varvec{\theta }}_{h}(\zeta ) \end{aligned}$$
(27)

where \({\varvec{\theta }}_{h}(\zeta )\) are analytical functions that satisfy the Laplace equation in the \(\zeta \) direction. Using Eqs. (22) and  (25), the weak form of Eq. (26) is obtained by multiplying with an arbitrary test function \({\overline{\theta }}(\eta ,\zeta )={\mathbf {N}}(\eta ) \overline{{\varvec{\theta }}}_{h}(\zeta )\) and integrating over \(\varGamma \) resulting in

$$\begin{aligned}&\overline{{\varvec{\theta }}}_{h}^{T}(\zeta )\left[ \int \int {\mathbf {N}}^{T}\left( \overline{{\mathbf {b}}}_{1} \frac{\partial }{\partial \zeta }+\frac{1}{\zeta }\overline{{\mathbf {b}}}_{2} \frac{\partial }{\partial \eta }\right) ^{T}\right. \nonumber \\&\quad \left. \left( \overline{{\mathbf {b}}}_{1}\frac{\partial }{\partial \zeta } +\frac{1}{\zeta }\overline{{\mathbf {b}}}_{2}\frac{\partial }{\partial \eta } \right) {\mathbf {N}}\zeta J_{L}{\varvec{\theta }}_{h}(\zeta )d\eta d\zeta \right] = 0 \end{aligned}$$
(28)

where the dependence of \(\overline{{\mathbf {b}}}_{1}(\eta )\), \(\overline{{\mathbf {b}}}_{2}(\eta )\), \({\mathbf {N}}(\eta )\) and \(J_{L}(\eta )\) on \(\eta \) has been dropped for convenience. As \({\varvec{\theta }}_{h}(\zeta )\) is arbitrary, the Laplace equation is weakly satisfied if the term inside the square brackets in Eq. (28) is zero. Equation (28) therefore, leads to a differential equation expressed in terms of \({\varvec{\theta }}_{h}(\zeta )\) as

$$\begin{aligned}&\overline{{\mathbf {E}}}_{0}\zeta ^{2}{\varvec{\theta }}_{h} (\zeta ),_{\zeta \zeta }+(\overline{{\mathbf {E}}}_{0} +\overline{{\mathbf {E}}}_{1}^{T}+\overline{{\mathbf {E}}}_{1}) \zeta {\varvec{\theta }}_{h}(\zeta ),_{\zeta }\nonumber \\&\quad -\overline{{\mathbf {E}}}_{0}{\varvec{\theta }}_{h}(\zeta ) +\overline{{\mathbf {F}}}_{q}(\zeta )= 0 \end{aligned}$$
(29)

where the coefficient matrices \(\overline{{\mathbf {E}}}_{0}\), \(\overline{{\mathbf {E}}}_{1}\) and \(\overline{{\mathbf {E}}}_{2}\) are

$$\begin{aligned} \overline{{\mathbf {E}}}_{0}=&\int _{-1}^{1}\overline{{\mathbf {B}}}_{1}^{T}(\eta )\overline{{\mathbf {B}}}_{1} (\eta )J_{L}(\eta )d\eta \end{aligned}$$
(30a)
$$\begin{aligned} \overline{{\mathbf {E}}}_{1}=&\int _{-1}^{1}\overline{{\mathbf {B}}}_{2}^{T}(\eta )\overline{{\mathbf {B}}}_{1} (\eta )J_{L}(\eta )d\eta \end{aligned}$$
(30b)
$$\begin{aligned} \overline{{\mathbf {E}}}_{2}=&\int _{-1}^{1}\overline{{\mathbf {B}}}_{2}^{T}(\eta )\overline{{\mathbf {B}}}_{2} (\eta )J_{L}(\eta )d\eta \end{aligned}$$
(30c)

and

$$\begin{aligned} \overline{{\mathbf {B}}}_{1}(\eta )=&\overline{{\mathbf {b}}}_{1}(\eta ){\mathbf {N}}(\eta )\end{aligned}$$
(31a)
$$\begin{aligned} \overline{{\mathbf {B}}}_{2}(\eta )=&\overline{{\mathbf {b}}}_{2}(\eta ){\mathbf {N}}(\eta ),_{\eta } \end{aligned}$$
(31b)

The coefficient matrices \(\overline{{\mathbf {E}}}_{0}\), \(\overline{{\mathbf {E}}}_{1}\) and \(\overline{{\mathbf {E}}}_{2}\) are assembled element by element over the boundary of the polygon.

The term \(\overline{{\mathbf {F}}}_{q}(\zeta )\) in Eq. (29) is

$$\begin{aligned} \overline{{\mathbf {F}}}_{q}(\zeta )=&\left. {\mathbf {N}}^{T}(\eta )\overline{{\mathbf {b}}}_{2}^{T}(\eta ) \left( \overline{{\mathbf {b}}}_{1}\frac{\partial }{\partial \zeta } +\frac{1}{\zeta }\overline{{\mathbf {b}}}_{2}\frac{\partial }{\partial \eta } \right) {\mathbf {N}}(\eta ){\varvec{\theta }}_{h}(\zeta )\right] _{-1}^{1} \end{aligned}$$
(32)

and represents the flux vector along a line of constant \(\zeta \). For polygons that form a closed loop such as those considered in this manuscript, \(\overline{{\mathbf {F}}}_{q}(\zeta )\) vanishes and the weak form of the Laplace equation becomes

$$\begin{aligned} \overline{{\mathbf {E}}}_{0}\zeta ^{2}{\varvec{\theta }}_{h}(\zeta ),_{\zeta \zeta } +(\overline{{\mathbf {E}}}_{0}+\overline{{\mathbf {E}}}_{1}^{T} +\overline{{\mathbf {E}}}_{1})\zeta {\varvec{\theta }}_{h}(\zeta ),_{\zeta } -\overline{{\mathbf {E}}}_{0}{\varvec{\theta }}_{h}(\zeta )=&0 \end{aligned}$$
(33)

Eq. (33) can be solved using an eigenvalue or a Schur decomposition by a conversion into a first order differential equation [48, 56]. This results in

$$\begin{aligned} {\varvec{\theta }}_{h}(\zeta )=&\overline{{\mathbf {V}}}\zeta ^{-\overline{{\mathbf {S}}}}\overline{{\mathbf {c}}} \end{aligned}$$
(34)

where \(\overline{{\mathbf {S}}}\) is eigenvalue/Schur- matrices with negative eigenvalues, which are obtained from an eigenvalue or a Schur decomposition of the Hamiltonian matrix

$$\begin{aligned} \overline{{\mathbf {Z}}}=&\left[ \begin{array}{cc} \overline{{\mathbf {E}}}_{0}^{-1}\overline{\mathbf {{\mathbf {E}}}}_{1}^{T} &{} -\overline{{\mathbf {E}}}_{0}^{-1}\\ -\overline{{\mathbf {E}}}_{2}+\overline{{\mathbf {E}}}_{1} \overline{{\mathbf {E}}}_{0}^{-1}\overline{\mathbf {{\mathbf {E}}}}_{1}^{T} &{} -\overline{{\mathbf {E}}}_{1}\overline{{\mathbf {E}}}_{0}^{-1} \end{array}\right] \end{aligned}$$
(35)

and \(\overline{{\mathbf {V}}}\) is the transformation matrix with eigenvectors relevant to \(\overline{{\mathbf {S}}}\). The integration constants \(\overline{{\mathbf {c}}}\) in Eq. (34) depend on the potentials on the polygon boundary \({\varvec{\theta }}_{b}={\varvec{\theta }}(\zeta =1)\). They are obtained from as

$$\begin{aligned} \overline{{\mathbf {c}}}=&\overline{{\mathbf {V}}}^{-1}{\varvec{\theta }}_{b} \end{aligned}$$
(36)

Substituting Eqs. (36) and (34) into Eq. (27), the potential field of a point in the triangular sector bounded by \(O_{s}\) and a line element on the polygon boundary can be expressed as

$$\begin{aligned} \theta (\eta ,\zeta )=&{\mathbf {N}}(\eta )\overline{{\mathbf {V}}}^{(e)}\zeta ^{-\overline{{\mathbf {S}}}} \overline{{\mathbf {V}}}^{-1}{\varvec{\theta }}_{b} \end{aligned}$$
(37)

where the superscript (e) indicates that only the rows in corresponding to element (e) are required for each interpolation within a triangular sector. This notation is necessary because Eq. (37) is obtained after assembling the contributions from the line elements that form the closed loop defining the polygon. The planar shape functions \(\overline{{\varvec{\varPhi }}}(\eta ,\zeta )\) on \(\varGamma \) is defined in Eq. (37) as

$$\begin{aligned} {\varvec{{\overline{\varPhi }}}}(\eta ,\zeta )=&{\mathbf {N}}(\eta )\overline{{\mathbf {V}}}^{(e)}\zeta ^{-\overline{{\mathbf {S}}}} \overline{{\mathbf {V}}}^{-1} \end{aligned}$$
(38)

It is valid for arbitrary sided polygons on a polyhedron facet so as long as the scaling requirement on the facet is satisfied. It interpolates a scalar variable on a planar polygonal facet located on the boundary of a polyhedron.

4 Equilibrium formulation of a polyhedron

4.1 Interpolation of displacement and strain-displacement relations

In order to use the shape functions derived in Eq. (38) in a three-dimensional setting, we consider now, a generic tetrahedral sector such as that shown in Fig. 2. Following the SBFEM, the Cartesian displacement components \(u(\xi ,\eta ,\zeta )\), \(v(\xi ,\eta ,\zeta )\) and \(w(\xi ,\eta ,\zeta )\) of a point in the tetrahedral sector is interpolated as

$$\begin{aligned} u(\xi ,\eta ,\zeta )=&{\varvec{{\overline{\varPhi }}}}(\eta ,\zeta )u_{h}(\xi ) \end{aligned}$$
(39a)
$$\begin{aligned} v(\xi ,\eta ,\zeta )=&{\varvec{{\overline{\varPhi }}}}(\eta ,\zeta )v_{h}(\xi ) \end{aligned}$$
(39b)
$$\begin{aligned} w(\xi ,\eta ,\zeta )=&{\varvec{{\overline{\varPhi }}}}(\eta ,\zeta )w_{h}(\xi ) \end{aligned}$$
(39c)

where the shape functions in Eq. (38) have been used to interpolate the analytical displacement functions \(u_{h}(\xi ),\)\(v_{h}(\xi )\) and \(w_{h}(\xi )\). Comparing Eqs. (39a)–(39c), with Eq. (37), it can be inferred that the potential \(\theta (\eta ,\zeta )\) has the physical meaning of the Cartesian displacement components on the polygonal facet i.e. at \(\xi =1\). To consolidate the equations, the displacement field vector \({\mathbf {u}}(\xi ,\eta ,\zeta )=[u(\xi ,\eta ,\zeta )\quad v(\xi ,\eta ,\zeta )\quad w(\xi ,\eta ,\zeta )]^{T}\) is interpolated so that

$$\begin{aligned} {\mathbf {u}}(\xi ,\eta ,\zeta )=&{\varvec{\varPhi }}(\eta ,\zeta ){\mathbf {T}}{\mathbf {u}}_{h}(\xi ) \end{aligned}$$
(40)

where

$$\begin{aligned} {\varvec{\varPhi }}(\eta ,\zeta )=&\left[ \begin{array}{ccc} {\varvec{{\overline{\varPhi }}}}(\eta ,\zeta )\\ &{} {\varvec{{\overline{\varPhi }}}}(\eta ,\zeta )\\ &{} &{} {\varvec{{\overline{\varPhi }}}}(\eta ,\zeta ) \end{array}\right] \end{aligned}$$
(41)

and \({\mathbf {T}}\) is a \(3n\times 3n\) transformation matrix with n the number of nodes on a line element on a tetrahedral sector. The transformation matrix is necessary to enable the standard Voigt notation to be adopted for the displacement functions \({\mathbf {u}}_{h}(\xi )\).

Using the structure of the planar shape functions \(\overline{{\varvec{\varPhi }}}(\eta ,\zeta )\) in Eq. (38), the shape function \({\varvec{\varPhi }}(\eta ,\zeta )\) can be decomposed as

$$\begin{aligned} {\varvec{\varPhi }}(\eta ,\zeta )=&{\mathbf {N}}_{u}(\eta ){\mathbf {V}}\zeta ^{{\mathbf {S}}}{\mathbf {U}} \end{aligned}$$
(42)

where

$$\begin{aligned} {\mathbf {N}}_{u}(\eta )=&\left[ \begin{array}{ccc} {\mathbf {N}}(\eta )\\ &{} {\mathbf {N}}(\eta )\\ &{} &{} {\mathbf {N}}(\eta ) \end{array}\right] \end{aligned}$$
(43)
$$\begin{aligned} {\mathbf {V}}=&\left[ \begin{array}{ccc} \overline{{\mathbf {V}}}\\ &{} \overline{{\mathbf {V}}}\\ &{} &{} \overline{{\mathbf {V}}} \end{array}\right] \end{aligned}$$
(44)
$$\begin{aligned} {\mathbf {S}}=&\left[ \begin{array}{ccc} -\overline{{\mathbf {S}}}\\ &{} -\overline{{\mathbf {S}}}\\ &{} &{} -\overline{{\mathbf {S}}} \end{array}\right] \end{aligned}$$
(45)
$$\begin{aligned} {\mathbf {U}}=&\left[ \begin{array}{ccc} \overline{{\mathbf {V}}}^{-1}\\ &{} \overline{{\mathbf {V}}}^{-1}\\ &{} &{} \overline{{\mathbf {V}}}^{-1} \end{array}\right] \end{aligned}$$
(46)

A linear differential operator \(\nabla _{u}\) is defined as

$$\begin{aligned} \nabla _{u}=&\left[ \begin{array}{cccccc} \frac{\partial }{\partial x} &{} 0 &{} 0 &{} 0 &{} \frac{\partial }{\partial z} &{} \frac{\partial }{\partial y}\\ 0 &{} \frac{\partial }{\partial y} &{} 0 &{} \frac{\partial }{\partial z} &{} 0 &{} \frac{\partial }{\partial x}\\ 0 &{} 0 &{} \frac{\partial }{\partial z} &{} \frac{\partial }{\partial y} &{} \frac{\partial }{\partial x} &{} 0 \end{array}\right] ^{T} \end{aligned}$$
(47)

Using Eq. (15), \(\nabla _{u}\) is expressed as

$$\begin{aligned} \nabla _{u}=&{\mathbf {b}}_{1}(\eta ,\zeta )\frac{\partial }{\partial \xi }+\frac{1}{\xi } \left( {\mathbf {b}}_{2}(\eta ,\zeta )\frac{\partial }{\partial \eta } +{\mathbf {b}}_{3}(\eta ,\zeta )\frac{\partial }{\partial \zeta }\right) \end{aligned}$$
(48)

where

$$\begin{aligned} {\mathbf {b}}_{1}^{T}(\eta ,\zeta )=&\frac{g^{\xi }}{{\overline{J}}}\left[ \begin{array}{cccccc} n_{x}^{\xi } &{} 0 &{} 0 &{} 0 &{} n_{z}^{\xi } &{} n_{y}^{\xi }\\ 0 &{} n_{y}^{\xi } &{} 0 &{} n_{z}^{\xi } &{} 0 &{} n_{x}^{\xi }\\ 0 &{} 0 &{} n_{z}^{\xi } &{} n_{y}^{\xi } &{} n_{x}^{\xi } &{} 0 \end{array}\right] \end{aligned}$$
(49a)
$$\begin{aligned} {\mathbf {b}}_{2}^{T}(\eta ,\zeta )=&\frac{g^{\eta }}{{\overline{J}}}\left[ \begin{array}{cccccc} n_{x}^{\eta } &{} 0 &{} 0 &{} 0 &{} n_{z}^{\eta } &{} n_{y}^{\eta }\\ 0 &{} n_{y}^{\eta } &{} 0 &{} n_{z}^{\eta } &{} 0 &{} n_{x}^{\eta }\\ 0 &{} 0 &{} n_{z}^{\eta } &{} n_{y}^{\eta } &{} n_{x}^{\eta } &{} 0 \end{array}\right] \end{aligned}$$
(49b)
$$\begin{aligned} {\mathbf {b}}_{3}^{T}(\eta ,\zeta )=&\frac{g^{\zeta }}{{\overline{J}}}\left[ \begin{array}{cccccc} n_{x}^{\zeta } &{} 0 &{} 0 &{} 0 &{} n_{z}^{\zeta } &{} n_{y}^{\zeta }\\ 0 &{} n_{y}^{\zeta } &{} 0 &{} n_{z}^{\zeta } &{} 0 &{} n_{x}^{\zeta }\\ 0 &{} 0 &{} n_{z}^{\zeta } &{} n_{y}^{\zeta } &{} n_{x}^{\zeta } &{} 0 \end{array}\right] \end{aligned}$$
(49c)

Furthermore, the identity

$$\begin{aligned} ({\overline{J}}{\mathbf {b}}_{2}(\eta ,\zeta )),_{\eta }+({\overline{J}} {\mathbf {b}}_{3}(\eta ,\zeta )),_{\zeta }=&-2{\overline{J}}{\mathbf {b}}_{1}(\eta ,\zeta ) \end{aligned}$$
(50)

can be established from Eqs. (9a)–(9c) and Eqs. (49a)–(49c).

Using the definitions of \({\mathbf {g}}^{\xi }\), \({\mathbf {g}}^{\eta }\) and \({\mathbf {g}}^{\zeta }\) in Eqs. (9a)–(9c), the Jacobian on the boundary in Eq. (12) and the surface coordinates in Eq. (3), \({\mathbf {b}}_{1}(\eta ,\zeta )\), \({\mathbf {b}}_{2}(\eta ,\zeta )\) and \({\mathbf {b}}_{3}(\eta ,\zeta )\) can be decomposed as

$$\begin{aligned} {\mathbf {b}}_{1}(\eta ,\zeta )=&\frac{1}{J_{b}}{\mathbf {b}}_{1a}(\eta ) \end{aligned}$$
(51a)
$$\begin{aligned} {\mathbf {b}}_{2}(\eta ,\zeta )=&\frac{1}{\zeta J_{b}}{\mathbf {b}}_{2a}(\eta )\end{aligned}$$
(51b)
$$\begin{aligned} {\mathbf {b}}_{3}(\eta ,\zeta )=&\frac{1}{J_{b}}{\mathbf {b}}_{3a}(\eta )+\frac{\zeta }{J_{b}} {\mathbf {b}}_{3b}(\eta ) \end{aligned}$$
(51c)

where the matrices \({\mathbf {b}}_{1a}(\eta )\), \({\mathbf {b}}_{2a}(\eta )\), \({\mathbf {b}}_{3a}(\eta )\) and \({\mathbf {b}}_{3b}(\eta )\) are functions of \(\eta \) only with

$$\begin{aligned} {\mathbf {b}}_{1a}^{T}=&\left[ \begin{array}{cccccc} {\overline{y}}_{,\zeta }{\tilde{z}}-{\tilde{y}}{\overline{z}}_{,\zeta } &{} 0 &{} 0 &{} 0 &{} {\overline{x}}_{,\zeta }{\tilde{y}}-{\tilde{x}}{\overline{y}}_{,\zeta } &{} {\overline{z}}_{,\zeta }{\tilde{x}}-{\tilde{z}}{\overline{x}}_{,\zeta }\\ 0 &{} {\overline{z}}_{,\zeta }{\tilde{x}}-{\tilde{z}}{\overline{x}}_{,\zeta } &{} 0 &{} {\overline{x}}_{,\zeta }{\tilde{y}}-{\tilde{x}}{\overline{y}}_{,\zeta } &{} 0 &{} {\overline{y}}_{,\zeta }{\tilde{z}}-{\tilde{y}}{\overline{z}}_{,\zeta }\\ 0 &{} 0 &{} {\overline{x}}_{,\zeta }{\tilde{y}}-{\tilde{x}}{\overline{y}}_{,\zeta } &{} {\overline{z}}_{,\zeta }{\tilde{x}}-{\tilde{z}}{\overline{x}}_{,\zeta } &{} {\overline{y}}_{,\zeta }{\tilde{z}}-{\tilde{y}}{\overline{z}}_{,\zeta } &{} 0 \end{array}\right] \end{aligned}$$
(52a)
$$\begin{aligned} {\mathbf {b}}_{2a}^{T}=&\left[ \begin{array}{cccccc} y_{s}{\overline{z}}_{,\zeta }-{\overline{y}}_{,\zeta }z_{s} &{} 0 &{} 0 &{} 0 &{} x_{s}{\overline{y}}_{,\zeta }-{\overline{x}}_{,\zeta }y_{s} &{} z_{s}{\overline{x}}_{,\zeta }-{\overline{z}}_{,\zeta }x_{s}\\ 0 &{} z_{s}{\overline{x}}_{,\zeta }-{\overline{z}}_{,\zeta }x_{s} &{} 0 &{} x_{s}{\overline{y}}_{,\zeta }-{\overline{x}}_{,\zeta }y_{s} &{} 0 &{} y_{s}{\overline{z}}_{,\zeta }-{\overline{y}}_{,\zeta }z_{s}\\ 0 &{} 0 &{} x_{s}{\overline{y}}_{,\zeta }-{\overline{x}}_{,\zeta }y_{s} &{} z_{s}{\overline{x}}_{,\zeta }-{\overline{z}}_{,\zeta }x_{s} &{} y_{s}{\overline{z}}_{,\zeta }-{\overline{y}}_{,\zeta }z_{s} &{} 0 \end{array}\right] \end{aligned}$$
(52b)
$$\begin{aligned} {\mathbf {b}}_{3a}^{T}=&\left[ \begin{array}{cccccc} {\tilde{y}}z_{s}-y_{s}{\tilde{z}} &{} 0 &{} 0 &{} 0 &{} {\tilde{x}}y_{s}-x_{s}{\tilde{y}} &{} {\tilde{z}}x_{s}-z_{s}{\tilde{x}}\\ 0 &{} {\tilde{z}}x_{s}-z_{s}{\tilde{x}} &{} 0 &{} {\tilde{x}}y_{s}-x_{s}{\tilde{y}} &{} 0 &{} {\tilde{y}}z_{s}-y_{s}{\tilde{z}}\\ 0 &{} 0 &{} {\tilde{x}}y_{s}-x_{s}{\tilde{y}} &{} {\tilde{z}}x_{s}-z_{s}{\tilde{x}} &{} {\tilde{y}}z_{s}-y_{s}{\tilde{z}} &{} 0 \end{array}\right] \end{aligned}$$
(52c)
$$\begin{aligned} {\mathbf {b}}_{3b}^{T}=&\left[ \begin{array}{cccccc} {\tilde{y}}{\overline{z}}_{,\zeta }-{\overline{y}}_{,\zeta }{\tilde{z}} &{} 0 &{} 0 &{} 0 &{} {\tilde{x}}{\overline{y}}_{,\zeta }-{\overline{x}}_{,\zeta }{\tilde{y}} &{} {\tilde{z}}{\overline{x}}_{,\zeta }-{\overline{z}}_{,\zeta }{\tilde{x}}\\ 0 &{} {\tilde{z}}{\overline{x}}_{,\zeta }-{\overline{z}}_{,\zeta }{\tilde{x}} &{} 0 &{} {\tilde{x}}{\overline{y}}_{,\zeta }-{\overline{x}}_{,\zeta }{\tilde{y}} &{} 0 &{} {\tilde{y}}{\overline{z}}_{,\zeta }-{\overline{y}}_{,\zeta }{\tilde{z}}\\ 0 &{} 0 &{} {\tilde{x}}{\overline{y}}_{,\zeta }-{\overline{x}}_{,\zeta }{\tilde{y}} &{} {\tilde{z}}{\overline{x}}_{,\zeta }-{\overline{z}}_{,\zeta }{\tilde{x}} &{} {\tilde{y}}{\overline{z}}_{,\zeta }-{\overline{y}}_{,\zeta }{\tilde{z}} &{} 0 \end{array}\right] \end{aligned}$$
(52d)

4.2 Discretisation of equilibrium equation

The condition of static equilibrium of a generic polyhedron is expressed

$$\begin{aligned} \nabla _{u}^{T}{\varvec{\sigma }}+{\mathbf {f}}_{b}=&{\mathbf {0}} \end{aligned}$$
(53)

with boundary conditions

$$\begin{aligned} {\mathbf {u}}=&\overline{{\mathbf {u}}}\quad \mathrm {on}\,\,\varGamma _{u}\end{aligned}$$
(54)
$$\begin{aligned} {\varvec{\sigma }}\cdot {\mathbf {n}}=&\overline{{\mathbf {t}}}\quad \mathrm {on}\,\,\varGamma _{t} \end{aligned}$$
(55)

where \({\varvec{\sigma }}\) is the stress field, \({\mathbf {f}}_{b}\) is the body load intensity, \(\varGamma _{u}\) is the portion of the boundary with prescribed displacements \(\overline{{\mathbf {u}}}\), \(\varGamma _{t}\) is the portion of the boundary with prescribed tractions \(\overline{{\mathbf {t}}}\) and \({\mathbf {n}}\) is the outward unit normal on \(\varGamma _{t}\). The corresponding weak form of Eq. (53) is formulated using the method of weighted residuals. Multiplying Eq. (53) with a weight function \({\mathbf {w}}(\xi ,\eta ,\zeta )\), using Eq. (48) and integrating over the domain \(d\varOmega \) results in

$$\begin{aligned} \int {\mathbf {w}}^{T}{\mathbf {b}}_{1}^{T}{\varvec{\sigma }}_{,\xi }d\varOmega&+\int {\mathbf {w}}^{T}\xi ^{-1}({\mathbf {b}}_{2}^{T}{\varvec{\sigma }}_{,\eta } +{\mathbf {b}}_{3}^{T}{\varvec{\sigma }},_{\zeta })d\varOmega \nonumber \\&+\int {\mathbf {w}}^{T}{\mathbf {f}}_{b}d\varOmega = 0 \end{aligned}$$
(56)

where the dependency of \({\mathbf {w}}\) and \({\varvec{\sigma }}\) on \(\xi \), \(\eta \) and \(\zeta \); and \({\mathbf {b}}_{1}\), \({\mathbf {b}}_{2}\) and \({\mathbf {b}}_{3}\) on \(\eta \) and \(\zeta \) have been dropped for convenience. The second term in Eq. (56) is examined. Substituting Eq. (16) for \(d\varOmega \) and integrating by parts results in

$$\begin{aligned} I&{=} \int \xi \left[ \oint _{\varGamma ^{\xi }}({\mathbf {w}}^{T}{\overline{J}} {\mathbf {b}}_{2}^{T}-{\mathbf {w}}^{T}{\overline{J}}{\mathbf {b}}_{3}^{T}) {\varvec{\sigma }}d\varGamma -\int \int (({\mathbf {w}}^{T}{\overline{J}} {\mathbf {b}}_{2}^{T})_{,\eta }\right. \nonumber \\&\quad \left. +({\mathbf {w}}^{T}{\overline{J}} {\mathbf {b}}_{3}^{T})_{,\zeta }){\varvec{\sigma }}d\eta d\zeta \right] d\xi \end{aligned}$$
(57)

where \(\varGamma ^{\xi }\) is the surface with constant \(\xi \). Using the identity in Eq. (50) results in

$$\begin{aligned} I&= \int \xi \left[ \oint _{\varGamma ^{\xi }}({\mathbf {w}}^{T}{\overline{J}} {\mathbf {b}}_{2}^{T}{-}{\mathbf {w}}^{T}{\overline{J}}{\mathbf {b}}_{3}^{T}) {\varvec{\sigma }}d\varGamma -\int \int (-2{\mathbf {w}}^{T}{\overline{J}} {\mathbf {b}}_{1}^{T}\right. \nonumber \\&\left. \quad +{\mathbf {w}}_{,\eta }^{T}{\overline{J}} {\mathbf {b}}_{2}^{T}+{\mathbf {w}}_{,\zeta }^{T}{\overline{J}} {\mathbf {b}}_{3}^{T}){\varvec{\sigma }}d\eta d\zeta \right] d\xi \end{aligned}$$
(58)

Substituting Eq. (58) into Eq. (56) and rearranging the terms results in

$$\begin{aligned}&\int \left[ \xi ^{2}\int \int {\mathbf {w}}^{T}{\overline{J}}{\mathbf {b}}_{1}^{T} {\varvec{\sigma }}_{,\xi }d\eta d\zeta -\xi \int \int \right. \nonumber \\&\quad \left. (-2{\mathbf {w}}^{T}{\overline{J}}{\mathbf {b}}_{1}^{T} +{\mathbf {w}}_{,\eta }^{T}{\overline{J}}{\mathbf {b}}_{2}^{T} +{\mathbf {w}}_{,\zeta }^{T}{\overline{J}}{\mathbf {b}}_{3}^{T}){\varvec{\sigma }}d\eta d\zeta +\ldots \right. \nonumber \\&\quad \left. \xi ^{2}\int \int {\mathbf {w}}^{T}{\overline{J}}{\mathbf {f}}_{b}d\eta d\zeta +\xi \oint _{\varGamma ^{\xi }}({\mathbf {w}}^{T}{\overline{J}}{\mathbf {b}}_{2}^{T} -{\mathbf {w}}^{T}{\overline{J}}{\mathbf {b}}_{3}^{T}){\varvec{\sigma }}d\varGamma \right] d\xi {=} 0 \end{aligned}$$
(59)

The last term on the left-hand-side of Eq. (59) represents the surface tractions acting along a line of constant \(\xi \). For polyhedrons that form a close loop, the contributions from the individual tetrahedral sectors over the polyhedron equilibrate and this term vanishes when it is assembled over all the entire polyhedron. Therefore, the equilibrium condition of a polyhedron reduces to

$$\begin{aligned}&\xi ^{2}\int \int {\mathbf {w}}^{T}{\overline{J}}{\mathbf {b}}_{1}^{T} {\varvec{\sigma }}_{,\xi }d\eta d\zeta -\xi \int \int \nonumber \\&\quad (-2{\mathbf {w}}^{T}{\overline{J}}{\mathbf {b}}_{1}^{T} +{\mathbf {w}}_{,\eta }^{T}{\overline{J}}{\mathbf {b}}_{2}^{T} +{\mathbf {w}}_{,\zeta }^{T}{\overline{J}}{\mathbf {b}}_{3}^{T}){\varvec{\sigma }}d\eta d\zeta +\ldots \nonumber \\&\quad \xi ^{2}\int \int {\mathbf {w}}^{T}{\overline{J}}{\mathbf {f}}_{b}d\eta d\zeta = 0 \end{aligned}$$
(60)

Using Hooke’s law \({\varvec{\sigma }}={\mathbf {D}}{\varvec{\epsilon }}\) and the strain displacement relation \({\varvec{\epsilon }}=\nabla _{u}{\mathbf {u}}\), the stress field is expressed as

$$\begin{aligned} {\varvec{\sigma }}(\xi ,\eta ,\zeta )=&{\mathbf {D}}({\mathbf {B}}_{1}(\eta ,\zeta ){\mathbf {T}}{\mathbf {u}}_{h} (\xi )_{,\xi }+\xi ^{-1}{\mathbf {B}}_{2}(\eta ,\zeta ){\mathbf {T}} {\mathbf {u}}_{h}(\xi )) \end{aligned}$$
(61)

where

$$\begin{aligned} {\mathbf {B}}_{1}(\eta ,\zeta )=&{\mathbf {b}}_{1}(\eta ,\zeta ){\varvec{\varPhi }}(\eta ,\zeta ) \end{aligned}$$
(62a)
$$\begin{aligned} {\mathbf {B}}_{2}(\eta ,\zeta )=&{\mathbf {b}}_{2}(\eta ,\zeta ){\varvec{\varPhi }}(\eta ,\zeta )_{,\eta } +{\mathbf {b}}_{3}(\eta ,\zeta ){\varvec{\varPhi }}(\eta ,\zeta )_{,\zeta } \end{aligned}$$
(62b)

The weighting function is selected so that it is interpolated by the same shape functions as the displacement field \({\mathbf {u}}(\xi ,\eta ,\zeta )\)

$$\begin{aligned} {\mathbf {w}}(\xi ,\eta ,\zeta )=&{\varvec{\varPhi }}(\eta ,\zeta ){\mathbf {T}}{\mathbf {w}}_{h}(\xi ) \end{aligned}$$
(63)

Substituting Eqs. (61)–(63) into Eq. (60) and invoking the condition that the equilibrium has to be satisfied for arbitrary \({\mathbf {w}}_{h}(\xi )\) results in

$$\begin{aligned} {\mathbf {E}}_{0}\xi ^{2}{\mathbf {u}}_{h}(\xi )_{,\xi \xi }&+(2{\mathbf {E}}_{0}-{\mathbf {E}}_{1}+{\mathbf {E}}_{1}^{T})\xi {\mathbf {u}}_{h}(\xi )_{,\xi }\nonumber \\ {}&+({\mathbf {E}}_{1}^{T}-{\mathbf {E}}_{2}){\mathbf {u}}_{h}(\xi )+\xi ^{2}{\mathbf {F}}_{b}= {\mathbf {0}} \end{aligned}$$
(64)

where the coefficient matrices \({\mathbf {E}}_{0}\), \({\mathbf {E}}_{1}\) and \({\mathbf {E}}_{2}\) are

$$\begin{aligned} {\mathbf {E}}_{0}=&{\mathbf {T}}^{T}\int _{0}^{1}\int _{-1}^{1}{\mathbf {B}}_{1}^{T}(\eta ,\zeta ){\mathbf {D}}{\mathbf {B}}_{1}(\eta ,\zeta ){\overline{J}}(\eta ,\zeta )d\eta d\zeta {\mathbf {T}} \end{aligned}$$
(65a)
$$\begin{aligned} {\mathbf {E}}_{1}=&{\mathbf {T}}^{T}\int _{0}^{1}\int _{-1}^{1}{\mathbf {B}}_{2}^{T}(\eta ,\zeta ){\mathbf {D}}{\mathbf {B}}_{1}(\eta ,\zeta ){\overline{J}}(\eta ,\zeta )d\eta d\zeta {\mathbf {T}} \end{aligned}$$
(65b)
$$\begin{aligned} {\mathbf {E}}_{2}=&{\mathbf {T}}^{T}\int _{0}^{1}\int _{-1}^{1}{\mathbf {B}}_{2}^{T}(\eta ,\zeta ){\mathbf {D}}{\mathbf {B}}_{2}(\eta ,\zeta ){\overline{J}}(\eta ,\zeta )d\eta d\zeta {\mathbf {T}} \end{aligned}$$
(65c)

and

$$\begin{aligned} {\mathbf {F}}_{b}=&{\mathbf {T}}^{T}\int _{0}^{1}\int _{-1}^{1}{\varvec{\varPhi }}^{T}(\eta ,\zeta ) {\overline{J}}{\mathbf {f}}_{b}d\eta d\zeta \end{aligned}$$
(66)

It is worth noting here that Eq. (64) is similar to the scaled boundary finite element equation in displacements [49] but with different coefficient matrices \({\mathbf {E}}_{0}\), \({\mathbf {E}}_{1}\) and \({\mathbf {E}}_{2}\). The coefficient matrices \({\mathbf {E}}_{0}\), \({\mathbf {E}}_{1}\) and \({\mathbf {E}}_{2}\) can be integrated numerically in the \(\eta \) direction using standard Gauss-Lobatto quadrature along the line elements on the boundaries of a polyhedron. Along the \(\zeta \) direction, analytical integration is employed.

In each of the coefficient matrices \({\mathbf {E}}_{0}\), \({\mathbf {E}}_{1}\) and \({\mathbf {E}}_{2}\), substituting Eqs. (62a) and  (62b) and using the definition of \({\varvec{\varPhi }}(\eta ,\zeta )\) in Eq. (42) results in

$$\begin{aligned} {\mathbf {E}}_{0}=&{\mathbf {T}}^{T}{\mathbf {U}}^{T}\int _{0}^{1} \zeta ^{{\mathbf {S}}^{T}+{\mathbf {I}}}{\mathbf {Y}}_{00}\zeta ^{{\mathbf {S}}}d \zeta {\mathbf {U}}{\mathbf {T}} \end{aligned}$$
(67a)
$$\begin{aligned} {\mathbf {E}}_{1}=&{\mathbf {T}}^{T}{\mathbf {U}}^{T}\left( \int _{0}^{1} \zeta ^{{\mathbf {S}}^{T}+{\mathbf {I}}}{\mathbf {Y}}_{10}\zeta ^{{\mathbf {S}}}d\zeta +\int _{0}^{1}\zeta ^{{\mathbf {S}}^{T}}{\mathbf {Y}}_{11}\zeta ^{{\mathbf {S}}}d\zeta \right) {\mathbf {U}}{\mathbf {T}} \end{aligned}$$
(67b)
$$\begin{aligned} {\mathbf {E}}_{2}=&{\mathbf {T}}^{T}{\mathbf {U}}^{T}\left( \int _{0}^{1}\zeta ^{{\mathbf {S}}^{T} +{\mathbf {I}}}{\mathbf {Y}}_{20}\zeta ^{{\mathbf {S}}}d\zeta +\int _{0}^{1}\zeta ^{{\mathbf {S}}^{T}}{\mathbf {Y}}_{21} \zeta ^{{\mathbf {S}}}d\zeta \right. \nonumber \\&\left. +\int _{0}^{1}\zeta ^{{\mathbf {S}}^{T} -{\mathbf {I}}}{\mathbf {Y}}_{22}\zeta ^{{\mathbf {S}}}d\zeta \right) {\mathbf {U}}{\mathbf {T}} \end{aligned}$$
(67c)

where

$$\begin{aligned} {\mathbf {Y}}_{00}=&{\mathbf {V}}^{T}\int _{-1}^{1}{\mathbf {N}}_{u}^{T}{\mathbf {b}}_{1a}^{T} {\mathbf {D}}{\mathbf {b}}_{1a}{\mathbf {N}}_{u}J_{b}^{-1}d\eta {\mathbf {V}} \end{aligned}$$
(68a)
$$\begin{aligned} {\mathbf {Y}}_{10}=&{\mathbf {S}}^{T}{\mathbf {V}}^{T}\int _{-1}^{1}{\mathbf {N}}_{u}^{T} {\mathbf {b}}_{3b}^{T}{\mathbf {D}}{\mathbf {b}}_{1a}{\mathbf {N}}_{u}J_{b}^{-1}d \eta {\mathbf {V}}\end{aligned}$$
(68b)
$$\begin{aligned} {\mathbf {Y}}_{20}=&{\mathbf {S}}^{T}{\mathbf {V}}^{T}\int _{-1}^{1} {\mathbf {N}}_{u}^{T}{\mathbf {b}}_{3b}^{T}{\mathbf {D}}{\mathbf {b}}_{3b} {\mathbf {N}}_{u}J_{b}^{-1}d\eta {\mathbf {V}}{\mathbf {S}}\end{aligned}$$
(68c)
$$\begin{aligned} {\mathbf {Y}}_{11}=&{\mathbf {S}}^{T}{\mathbf {V}}^{T}\int _{-1}^{1} {\mathbf {N}}_{u}^{T}{\mathbf {b}}_{3a}^{T}{\mathbf {D}}{\mathbf {b}}_{1a} {\mathbf {N}}_{u}J_{b}^{-1}d\eta {\mathbf {V}}\nonumber \\&+{\mathbf {V}}^{T}\int _{-1}^{1} {\mathbf {N}}_{u,\eta }^{T}{\mathbf {b}}_{2a}^{T}{\mathbf {D}}{\mathbf {b}}_{1a} {\mathbf {N}}_{u}J_{b}^{-1}d\eta {\mathbf {V}}\end{aligned}$$
(68d)
$$\begin{aligned} {\mathbf {Y}}_{21}=&{\mathbf {V}}^{T}\int _{-1}^{1}{\mathbf {N}}_{u,\eta }^{T} {\mathbf {b}}_{2a}^{T}{\mathbf {D}}{\mathbf {b}}_{3b}{\mathbf {N}}_{u}J_{b}^{-1}d \eta {\mathbf {V}}{\mathbf {S}}\nonumber \\&+{\mathbf {S}}^{T}{\mathbf {V}}^{T}\int _{-1}^{1} {\mathbf {N}}_{u}^{T}{\mathbf {b}}_{3b}^{T}{\mathbf {D}}{\mathbf {b}}_{2a} {\mathbf {N}}_{u,\eta }J_{b}^{-1}d\eta {\mathbf {V}}\nonumber \\&+ {\mathbf {S}}^{T}{\mathbf {V}}^{T}\int _{-1}^{1}{\mathbf {N}}_{u}^{T} {\mathbf {b}}_{3a}^{T}{\mathbf {D}}{\mathbf {b}}_{3b}{\mathbf {N}}_{u}J_{b}^{-1}d \eta {\mathbf {V}}{\mathbf {S}}\nonumber \\&+{\mathbf {S}}^{T}{\mathbf {V}}^{T}\int _{-1}^{1} {\mathbf {N}}_{u}^{T}{\mathbf {b}}_{3b}^{T}{\mathbf {D}}{\mathbf {b}}_{3a} {\mathbf {N}}_{u}J_{b}^{-1}d\eta {\mathbf {V}}{\mathbf {S}}\end{aligned}$$
(68e)
$$\begin{aligned} {\mathbf {Y}}_{22}=&{\mathbf {V}}^{T}\int _{-1}^{1}{\mathbf {N}}_{u,\eta }^{T} {\mathbf {b}}_{2a}^{T}{\mathbf {D}}{\mathbf {b}}_{2a}{\mathbf {N}}_{u,\eta }J_{b}^{-1}d \eta {\mathbf {V}}\nonumber \\&+{\mathbf {S}}^{T}{\mathbf {V}}^{T}\int _{-1}^{1}{\mathbf {N}}_{u}^{T} {\mathbf {b}}_{3a}^{T}{\mathbf {D}}{\mathbf {b}}_{3a}{\mathbf {N}}_{u}J_{b}^{-1}d \eta {\mathbf {V}}{\mathbf {S}}\nonumber \\&+ {\mathbf {V}}^{T}\int _{-1}^{1}{\mathbf {N}}_{u,\eta }^{T}{\mathbf {b}}_{2a}^{T} {\mathbf {D}}{\mathbf {b}}_{3a}{\mathbf {N}}_{u}J_{b}^{-1}d\eta {\mathbf {V}} {\mathbf {S}}\nonumber \\&+{\mathbf {S}}^{T}{\mathbf {V}}^{T}\int _{-1}^{1}{\mathbf {N}}_{u}^{T} {\mathbf {b}}_{3a}^{T}{\mathbf {D}}{\mathbf {b}}_{2a}{\mathbf {N}}_{u,\eta } J_{b}^{-1}d\eta {\mathbf {V}} \end{aligned}$$
(68f)

are functions of \(\eta \) only and can be integrated numerically.

The integrals with respect to \(\zeta \) in Eqs. (67a)–(67c) can be computed by introducing the matrices

$$\begin{aligned} {\mathbf {X}}_{i0}=&\int _{0}^{1}\zeta ^{{\mathbf {S}}^{T}+{\mathbf {I}}}{\mathbf {Y}}_{i0} \zeta ^{{\mathbf {S}}}d\zeta \quad \mathrm {for}\,\,i=0,\,1,\,2 \end{aligned}$$
(69a)
$$\begin{aligned} {\mathbf {X}}_{i1}=&\int _{0}^{1}\zeta ^{{\mathbf {S}}^{T}}{\mathbf {Y}}_{i1}\zeta ^{{\mathbf {S}}}d \zeta \quad \mathrm {for}\,\,i=1,\,2 \end{aligned}$$
(69b)
$$\begin{aligned} {\mathbf {X}}_{i2}=&\int _{0}^{1}\zeta ^{{\mathbf {S}}^{T}-{\mathbf {I}}}{\mathbf {Y}}_{i2} \zeta ^{{\mathbf {S}}}d\zeta \quad \mathrm {for}\,\,i=2 \end{aligned}$$
(69c)

The matrices \({\mathbf {X}}_{00}\), \({\mathbf {X}}_{10}\), \({\mathbf {X}}_{20}\), \({\mathbf {X}}_{11}\), \({\mathbf {X}}_{21}\) and \({\mathbf {X}}_{22}\) are obtained by integrating Eqs. (69a)–(69c) analytically and solving the resulting Lyapunov equations

$$\begin{aligned} ({\mathbf {S}}+{\mathbf {I}})^{T}{\mathbf {X}}_{i0}+{\mathbf {X}}_{i0}({\mathbf {S}} +{\mathbf {I}})=&{\mathbf {Y}}_{i0}\quad \mathrm {for}\,\,i=0,\,1,\,2 \end{aligned}$$
(70a)
$$\begin{aligned} ({\mathbf {S}}+0.5{\mathbf {I}})^{T}{\mathbf {X}}_{i1}+{\mathbf {X}}_{i1}({\mathbf {S}} +0.5{\mathbf {I}})=&{\mathbf {Y}}_{i1}\quad \mathrm {for}\,\,i=1,\,2 \end{aligned}$$
(70b)
$$\begin{aligned} {\mathbf {S}}^{T}{\mathbf {X}}_{i2}+{\mathbf {X}}_{i2}{\mathbf {S}}=&{\mathbf {Y}}_{i2}\quad \mathrm {for}\,\,i=2 \end{aligned}$$
(70c)

The coefficient matries \({\mathbf {E}}_{0}\), \({\mathbf {E}}_{1}\) and \({\mathbf {E}}_{2}\) are then computed as

$$\begin{aligned} {\mathbf {E}}_{0}=&{\mathbf {T}}^{T}{\mathbf {U}}^{T}{\mathbf {X}}_{00}{\mathbf {U}}{\mathbf {T}} \end{aligned}$$
(71a)
$$\begin{aligned} {\mathbf {E}}_{1}=&{\mathbf {T}}^{T}{\mathbf {U}}^{T}({\mathbf {X}}_{10}+{\mathbf {X}}_{11}) {\mathbf {U}}{\mathbf {T}} \end{aligned}$$
(71b)
$$\begin{aligned} {\mathbf {E}}_{2}=&{\mathbf {T}}^{T}{\mathbf {U}}^{T}({\mathbf {X}}_{20}+{\mathbf {X}}_{21} +{\mathbf {X}}_{22}){\mathbf {U}}{\mathbf {T}} \end{aligned}$$
(71c)

They can be assembled for each polyhedron, considering the contributions from each of the tetrahedral sectors that form the polygonal facets on the polyhedron boundary.

4.3 Solution for vanishing body loads

The static stiffness matrix is obtained from the solution of Eq. (64) without the presence of body loads

$$\begin{aligned}&{\mathbf {E}}_{0}\xi ^{2}{\mathbf {u}}_{h}(\xi )_{,\xi \xi }+(2{\mathbf {E}}_{0} -{\mathbf {E}}_{1}+{\mathbf {E}}_{1}^{T})\xi {\mathbf {u}}_{h}(\xi )_{,\xi }\nonumber \\&\quad +({\mathbf {E}}_{1}^{T}-{\mathbf {E}}_{2}){\mathbf {u}}_{h}(\xi )= {\mathbf {0}} \end{aligned}$$
(72)

This second order differential equation is first transformed to a first order differential equation with twice the number of unknowns [50]

$$\begin{aligned} \xi \left\{ \begin{array}{c} \xi ^{0.5}\mathbf {{\mathbf {u}}}_{h}(\xi )\\ \xi ^{-0.5}{\mathbf {q}}_{h}(\xi ) \end{array}\right\} _{,\xi }=&-{\mathbf {Z}}\left\{ \begin{array}{c} \mathbf {{\mathbf {u}}}_{h}(\xi )\\ {\mathbf {q}}_{h}(\xi ) \end{array}\right\} \end{aligned}$$
(73)

where \({\mathbf {Z}}\) is the Hamiltonian matrix

$$\begin{aligned} {\mathbf {Z}}=&\left[ \begin{array}{cc} {\mathbf {E}}_{0}^{-1}{\mathbf {E}}_{1}^{T}-0.5{\mathbf {I}} &{} -{\mathbf {E}}_{0}^{-1}\\ -{\mathbf {E}}_{2}+{\mathbf {E}}_{1}{\mathbf {E}}_{0}^{-1}{\mathbf {E}}_{1}^{T} &{} -({\mathbf {E}}_{1}{\mathbf {E}}_{0}-0.5{\mathbf {I}}) \end{array}\right] \end{aligned}$$
(74)

with identity matrix \({\mathbf {I}}\) and \({\mathbf {q}}_{h}(\xi )\) is the internal nodal force functions along the radial line \(\xi \)

$$\begin{aligned} {\mathbf {q}}_{h}(\xi )=&{\mathbf {E}}_{0}\xi ^{2}{\mathbf {u}}_{h}(\xi )_{,\xi } +{\mathbf {E}}_{1}^{T}\xi {\mathbf {u}}_{h}(\xi ) \end{aligned}$$
(75)

The Hamiltonian matrix can be decomposed into pairs of eigenvalues using either an eigenvalue decomposition or a Schur decomposition as [48]

$$\begin{aligned} {\mathbf {Z}}{\varvec{\varPsi }}=&{\varvec{\varPsi }}{\varvec{\varLambda }} \end{aligned}$$
(76)

where \({\varvec{\varLambda }}\) is a diagonal or block diagonal matrix (depending on the decomposition of \({\mathbf {Z}}\) i.e. eigenvalue or Schur) containing the eigenvalues of \({\mathbf {Z}}\). The transformation matrix \({\varvec{\varPsi }}\) contains the eigenvectors of \({\varvec{\varLambda }}\). The matrices \({\varvec{\varLambda }}\) and \({\varvec{\varPsi }}\) can be conformably partitioned as

$$\begin{aligned} {\varvec{\varLambda }}=&\left[ \begin{array}{cc} -{\varvec{\varLambda }}_{n} &{} *\\ &{} -{\varvec{\varLambda }}_{p} \end{array}\right] \end{aligned}$$
(77)
$$\begin{aligned} {\varvec{\varPsi }}=&\left[ \begin{array}{cc} {\varvec{\varPsi }}_{n}^{(u)} &{} {\varvec{\varPsi }}_{p}^{(u)}\\ {\varvec{\varPsi }}_{n}^{(q)} &{} {\varvec{\varPsi }}_{p}^{(q)} \end{array}\right] \end{aligned}$$
(78)

The solution of Eq. (73) is therefore

$$\begin{aligned} \left\{ \begin{array}{c} {\mathbf {u}}_{h}(\xi )\\ {\mathbf {q}}_{h}(\xi ) \end{array}\right\} =&\left[ \begin{array}{cc} {\varvec{\varPsi }}_{n}^{(u)} &{} {\varvec{\varPsi }}_{p}^{(u)}\\ {\varvec{\varPsi }}_{n}^{(q)} &{} {\varvec{\varPsi }}_{p}^{(q)} \end{array}\right] \xi ^{\left[ \begin{array}{cc} -{\varvec{\varLambda }}_{n}-0.5{\mathbf {I}} &{} *\\ &{} -{\varvec{\varLambda }}_{p}+0.5{\mathbf {I}} \end{array}\right] }\left\{ \begin{array}{c} {\mathbf {c}}_{n}\\ {\mathbf {c}}_{p} \end{array}\right\} \end{aligned}$$
(79)

with integration constants \({\mathbf {c}}_{n}\) and \({\mathbf {c}}_{p}\). For bounded polyhedrons such as those considered in this study, the condition of finiteness of the displacement at \(\xi =0\) is satisfied by setting \({\mathbf {c}}_{p}=0\). This leads to

$$\begin{aligned} {\mathbf {u}}_{h}(\xi )=&{\varvec{\varPsi }}_{n}^{(u)} \xi ^{-{\varvec{\varLambda }}_{n}-0.5{\mathbf {I}}}{\mathbf {c}}_{n} \end{aligned}$$
(80)
$$\begin{aligned} {\mathbf {q}}_{h}(\xi )=&{\varvec{\varPsi }}_{n}^{(q)}\xi ^{-{\varvec{\varLambda }}_{n} +0.5{\mathbf {I}}}{\mathbf {c}}_{n} \end{aligned}$$
(81)

The integration constants \({\mathbf {c}}_{n}\) are determined from the nodal displacements \({\mathbf {u}}_{b}={\mathbf {u}}_{h}(\xi =1)\) of a polyhedron as

$$\begin{aligned} {\mathbf {c}}_{n}=&({\varvec{\varPsi }}_{n}^{(u)})^{-1}{\mathbf {u}}_{b} \end{aligned}$$
(82)

The stiffness matrix of a polyhedron \({\mathbf {K}}_{pol}\) is obtained from Eqs. (80) and (81) as

$$\begin{aligned} {\mathbf {K}}_{pol}=&{\varvec{\varPsi }}_{n}^{(q)}({\varvec{\varPsi }}_{n}^{(u)})^{-1} \end{aligned}$$
(83)

The complete displacement field in a tetrahedral sector as shown in Fig. 2 is obtained by substituting Eq. (80) into Eq. (40) resulting in

$$\begin{aligned} {\mathbf {u}}(\xi ,\eta ,\zeta )=&{\varvec{\varPhi }}(\eta ,\zeta ){\mathbf {T}}{\mathbf {u}}_{h}(\xi ) \end{aligned}$$
(84)

Accordingly, the stress field can be expressed as

$$\begin{aligned} {\varvec{\sigma }}(\xi ,\eta ,\zeta )=&{\mathbf {D}}{\varvec{\varPsi }}_{\epsilon }(\eta ,\zeta )\xi ^{-{\varvec{\varLambda }}_{n} -1.5{\mathbf {I}}}{\mathbf {c}}_{n} \end{aligned}$$
(85)

where the strain mode \({\varvec{\varPsi }}_{\epsilon }(\eta ,\zeta )\) is

$$\begin{aligned} {\varvec{\varPsi }}_{\epsilon }(\eta ,\zeta )=&{\mathbf {B}}_{1}(\eta ,\zeta ){\mathbf {T}}{\varvec{\varPsi }}_{n}^{(u)} (-{\varvec{\varLambda }}_{n}-0.5{\mathbf {I}})+{\mathbf {B}}_{2}(\eta ,\zeta ) {\mathbf {T}}{\varvec{\varPsi }}_{n}^{(u)} \end{aligned}$$
(86)
Fig. 5
figure 5

Polyhedron meshes for three-dimensional patch test

4.3.1 Remark

Although the formulation is presented with reference to arbitrary faceted polyhedrra, it is directly applicable to octree meshes, which can be viewed as a special case of arbitrary faceted polyhedra. In a three-dimensional analysis, discretisation using octree meshes has the advantage of rapid adaptive modelling, particularly for problems exhibiting complex geometries [58]. The flexibility to assume arbitrary shaped facets removes the numerical difficulty introduced by the hanging nodes, which would otherwise require additional treatment in conventional methods such as the FEM. Like the approach advocated by Zou et al. [58], the formulation also improves over the octree-type decomposition of Saputra et al. [47] and Liu et al. [34] by eliminating the need of introducing additional nodes and faces on the octree cells. Moreover, the use of semi-analytical integration over the facets of the polyhedra in this work eliminates the need for special integration rules associated with the application of irrational functions-based interpolants as in the work of Natarajan et al. [38] and Zou et al.[58]. The use of octree meshes also lead to additional advantages with regard to the computation of the stiffness matrices by exploiting the limited number of cell types in an octree decomposition [34, 47, 58].

5 Numerical examples

This section presents the application of the formulation to afew numerical benchmarks for the purposes of validation. The majority of the numerical examples employ a combination of octree and polyhedron meshes for the purpose of discretisation.

Table 1 Displacements at interior nodes for three-dimensional patch test

5.1 Patch test

A a unit cuboid \((1\,\mathrm {m}\times 1\,\mathrm {m}\times 1\,\mathrm {m})\) is considered for the patch tests. Two types of patch tests are performed: (1) a constaint strain patch test and (2) a high order patch test. Figure 5 shows the polyhedral meshes that are used for the patch tests.

5.1.1 Constant strain patch test

A constant strain patch test is considered first. The mesh in Fig. 5a is adopted. The material properties are: Young’s modulus \(E=1\times 10^{3}\,\mathrm {kPa}\) and Poisson’s ratio \(\nu =0.25\). The objective of the patch test is to examine the convergence of the developed method when subjected to a linear displacement field imposed along the boundaries of the cuboid. The boundary conditions are prescribed at the exterior nodes according to

$$\begin{aligned} u=&5(2x+y+z)\times 10^{-2}\,\mathrm {m}\\ v=&5(x+2y+z)\times 10^{-2}\,\mathrm {m}\\ w=&5(x+y+2z)\times 10^{-2}\,\mathrm {m} \end{aligned}$$

Table 1 compares the computed displacements at the interior nodes with the analytical solution. It is observed that the exact values can be reproduced to machine precision and therefore the proposed technique passes the patch test. This is an indication that the convergence of the proposed technique is ensured with mesh refinement.

5.1.2 High order patch test

A high order patch test is considered next. A consistent displacement field is derived from the solution of the Navier equations of equililbrium following the approach outlined in Rajendran et al. [43]. Displacement boundary conditions are prescribed at the exterior nodes according to

$$\begin{aligned} u=&3x^{2}-8xy+y^{2}\,\mathrm {m}\\ v=&3y^{2}-8yz+z^{2}\,\mathrm {m}\\ w=&3z^{2}-8xz+x^{2}\,\mathrm {m} \end{aligned}$$

The Young’s modulus \(E=8.25\,\mathrm {kPa}\) and the Poisson’s ratio \(\nu =0.375\). As only linear shape functions are adopted to discretize the line elements on the boundary of the polyhedron, the scaled boundary finite element formulation developed in this paper is not high order complete. A convergence study is therefore performed using the meshes shown in Fig. 5 Amongst the available approaches over polytopes, in this study, the accuracy and the convergence behaviours of the scaled boundary finite element formulation is compared to that of the VEM.

Fig. 6
figure 6

Plots of convergence of norm of error of displacements for high order patch test

Fig. 7
figure 7

Pressurised hollow sphere

Fig. 8
figure 8

Hybrid octree-polyhedron meshes of an octant of the sphere

Fig. 9
figure 9

Plots of radial displacement component \(u_{r}\) along line AB and \(L_{2}-\) and \(H_{1}-\) norms for pressurised hollow sphere

Fig. 10
figure 10

Contour plot of magnitude of displacement and von Mises stress of pressurised hollow sphere

Figure 6 shows the convergence plot of the displacement error norm defined as \(||{\mathbf {u}}_{numer}-{\mathbf {u}}_{anal}||_{L_{2}}\). It is observed from Fig. 6 that for the same mesh, the SBFEM is slightly more accurate than the VEM. The convergence rate of the SBFEM is 0.6443. The convergence rate of the VEM is 0.5871. The improved convergence and accuracy may come at the expense of the additional effort required in the eigenvalue solution required to compute the surface shape functions and the stiffness matrix over each polyhedron. However, this computational aspect may be improved by adopting octree meshes in the computations.

5.2 Pressurised hollow sphere

The problem of a pressurised hollow sphere shown in Fig. 7 is considered. The analytical solution of the displacements and stresses are reported by Bower [8] in spherical coordinates \((r,\theta ,\phi )\) as

$$\begin{aligned}&u_{r}(r,\theta ,\phi )= \frac{p_{i}a^{3}}{2E(b^{3}-a^{3})r^{2}}\{2(1-2\nu )r^{3}+(1+\nu )b^{3}\}\\&u_{\theta }(r,\theta ,\phi )=u_{\phi }(r,\theta ,\phi )= 0\\&\sigma _{rr}(r,\theta ,\phi )= \frac{p_{i}a^{3}(r^{3}-b^{3})}{(b^{3}-a^{3})r^{3}}\\&\sigma _{\theta \theta }(r,\theta ,\phi )=\sigma _{\phi \phi }(r,\theta ,\phi )= \frac{p_{i}a^{3}(2r^{3}+b^{3})}{2(b^{3}-a^{3})r^{3}}\\&\sigma _{r\theta }(r,\theta ,\phi )=\sigma _{r\phi }(r,\theta ,\phi ) =\sigma _{\theta \phi }(r,\theta ,\phi )=0 \end{aligned}$$

where \(p_{i}\) is the internal pressure, a is the internal radius, b is the external radius, E is the Young’s modulus and \(\nu \) is the Poisson’s ratio. The parameters selected for validation are: \(E=200\,\mathrm {GPa}\), \(\nu =0.3\), \(a=10\,\mathrm {mm}\), \(b=50\,\mathrm {mm}\) and \(p_{i}=6\,\mathrm {GPa}\).

Considering the symmetry of the geometry and the loads, only an octant of the sphere is modelled. The sphere is discretised using a combination of octree cells and arbitrary faceted polyhedrons. On the internal and external surfaces of the sphere, boundary conditions are specified according to the analytical solution. Additionally, symmetric boundary conditions are prescribed on the planes of symmetry. The mesh generation algorithm is augmented from Saputra et al. [47] and Liu et al. [34]. The key feature in this development is the elimination of the triangulation process required for the octree cells containing hanging nodes. A bounding box of \(80\times 80\times 80\,\mathrm {mm}^{3}\) is used to construct the mesh. During mesh generation the ratio of the maximum to the minimum size of the octree cells (\(\frac{h_{max}}{h_{min}}\)) is kept constant at 8. The density of the mesh is controlled by specifying \(h_{res}\), which scales the physical size of the sphere to an octree cell as \(h_{min}=\frac{b}{l_{res}}\,\mathrm {mm}\). Along the curved boundaries of the sphere, the surfaces are triangulated in order to maintain the planarity condition required by the surfaces of the polyhedron and also to better represent the curvature of the sphere. Figure 8 shows the mesh of one octant of the sphere for \(l_{res}=32\), \(l_{res}=128\) and \(l_{res}=512\).

Figure 9a compares the computed radial displacement component \(u_{r}\) along the line AB shown in Fig. 7 for the five meshes generated with the analytical solution. It can be observed from Fig. 9a that the computed displacements agree well with the analytical solution. The convergence of the \(L_{2}-\) and \(H_{1}-\)norms computed are shown in Fig. 9b. It is observed that both the error norms decrease as the mesh density increases. The convergence rates for the \(L_{2}-\) and \(H_{1}-\) norms are − 0.742 and − 0.521, respectively. The theoretical convergence rate using uniform mesh refinement, which are − 2/3 and − 1/3, respectively. Figure 10 shows the contour plots of the displacement magnitudes and the von Mises stress of the hollow sphere. As is expected, the contour of the von Mises stress exhibits radial symmetry, which is reflective of the symmetric geometry and boundary conditions of the problem.

5.3 Cook’s membrane

The Cook’s membrane shown in Fig. 11 is investigated as a three-dimensional problem. The material properties of the membrane are: Young’s modulus \(E=1000\,\mathrm {Nmm^{-2}}\) and Poisson’s ratio \(\nu =0.33\). A vertical distributed load \(\tau =10\,\mathrm {Nmm^{-2}}\) is applied on the right edge of the membrane. The membrane is constrained from motion on its left edge. A hybrid octree polyhedron mesh of the membrane is generated starting from a pure octree mesh. The density of the meshes is controlled by specifying the resolution \(h_{res}\) used during voxel generation. The three meshes adopted in this study are shown in Fig. 12.

Fig. 11
figure 11

Cook’s membrane problem

Fig. 12
figure 12

Hybrid octree polyhedron meshes used for Cook’s membrane problem

Table 2 \(y-\)displacement component at point C
Fig. 13
figure 13

Distribution of \(\sigma _{xx}\) along line AB of Cook’s membrane

Fig. 14
figure 14

Contour plots of displacement magnitude and stress \(\sigma _{xx}\) of Cook’s membrane

Table 2 shows the y-displacement component of point C shown in Fig. 11 at the mid z-plane of the membrane. When computed displacements exhibited a converging trend as the mesh density is increased. The results compare well with the reference solution obtained from the commercial FEM software ABAQUS using a very fine mesh consisting of 66700 brick elements which was \(4.00856\,\mathrm {mm}\).

Figure 13 shows the distribution of the stress component \(\sigma _{xx}\) along line AB of the Cook’s membrane. Similar to the displacements, the computed stresses also show a convergent trend as the results computed from the coarser meshes approach those of the finer. Figure 14 shows the contour plots of the magnitude of displacement and the stress component \(\sigma _{xx}\) of the membrane. As is expected, the displacements are highest in magnitude in the vicinity of the applied traction. The membrane exhibits a region of tensile stress, which is maximum near mid-length of the membrane as is expected due to the nature of the load \(\tau \) in the problem.

Fig. 15
figure 15

STL model of a sculpture of a rabbit

Fig. 16
figure 16

Hybrid-octree-polyhedron mesh of sculpture of rabbit

Fig. 17
figure 17

Contour plots of sculpture of rabbit deforming under self weight

5.4 STL model of sculpture of rabbit under self-weight

The STL model of a sculpture of a rabbit shown in Fig. 15 is considered. The model is bounded by a cuboid with dimensions \(100\,\mathrm {cm}\times 98.7\,\mathrm {cm}\times 76.9\,\mathrm {cm}\). The sculpture is assumed to be fixed at its base and undergoes deformation due to its self-weight. The material properties of the sculpture are: Young’s modulus \(E=17\,\mathrm {GPa}\), Poisson’s ratio \(\nu =0.15\) and density \(2400\,\mathrm {kgm^{-3}}\). The gravitational acceleration is taken to be \(g=9.81\,\mathrm {ms^{-2}}\).

The model is meshed with a resolution of \(h_{res}=128\). The ratio of the maximum and minimum cell size is \(h_{max}:h_{min}=8:1\). The corresponding mesh of the sculpture is shown in Fig. 16. It can be observed from Fig. 16a that along the exterior of the model, the discretisation is of the form of polyhedrons with arbitrary number of faces. Within the interior and away from the boundary of the sculpture as is observed in Fig. 16b, the majority of the cells in the mesh belong to the generic cell types in a balanced octree discretisation [58].

Figure 17 shows the contour plots of the displacement magnitude and first principal stress of the sculpture of the rabbit. The tips of the ears of the sculpture were observed to have the largest deformation and are an expected result as the ears form a cantilever-like structure supported at the head of the rabbit. Regions of high magnitude of tensile stresses were observed at the head of the sculpture near the base of the ears as is shown in Fig. 17b and is a consequence of the bending-like deformation of both ears under self-weight.

5.5 Image-based analysis of concrete mesostructure subjected to uniaxial tension

Figure 18a shows 3D image of part of a concrete meso-structure generated from images obtained from an X-ray computed tomography scan analysed by Huang et al. [26]. The aggregates in the meso-structure are represented in black whereas the mortar is represented in grey. The image is of size \(64\times 64\times 64\) voxels. The size of each voxel is \(0.08\,\mathrm {mm}\times 0.08\,\mathrm {mm}\times 0.08\,\mathrm {mm}\). A mesh consisting of purely octree cells is used to discretize the image. The ratio of the maximum and minimum cell size adopted for the discretization is \(h_{max}:h_{min}=\)8:1. Figure 18b shows the octree mesh of the meso-structure, which comprises of 46187 cells and 71402 nodes. It is noticeable in Fig. 18b that the mesh is made up entirely of octree cells without the need for further triangularization like in the work of Saputra et al. [47] and Talebi et al. [52].

Fig. 18
figure 18

Mesh of concrete meso-structure

Fig. 19
figure 19

Stress contour plot of concrete meso -structure

Fig. 20
figure 20

Fichera’s corner

A stress analysis is carried out to simulate a uniaxial tensile strain of \(1\times 10^{-5}\) by prescribing the displacement components on the top and bottom surfaces of the meso-structure (in the \(z-\)direction). The material properties assumed for the analysis are as follows. The Young’s modulus of aggregate \(E_{a}=70\,\mathrm {GPa}\). The Young’s modulus of mortar \(E_{m}=25\,\mathrm {GPa}\). The Poisson’s ratio is assumed to be \(\nu =0.2\) for both the aggregate and the mortar. Figure 19a shows the contour plot of the stress \(\sigma _{zz}\) of the concrete meso-structure. Fig. 19b, c show the \(\sigma _{zz}-\)contour plot for the aggregate and mortar phases separately. Regions of high stresses can be observed in the vicinity of the interfaces between the aggregates and the mortar where the dissimilarity of the material properties between both phases generates stress concentrations. This reflects the observations of the response of concrete meso-structure made in the literature (e.g. Wang et al. [54]; Rodrigues et al. [46]) where cracks tend to nucleate along the aggregate-mortar interfaces due to the high stress concentration in these regions.

5.6 Three-dimensional stress singularity: Fichera’s corner

The three-dimensional stress singularity problem defined by Fichera’s corner shown in Fig. 20 is considered. The surfaces of the corner defined by three mutually orthogonal planes OAB, OAC and OBC are stress-free. The corner is embedded at the centre of a sphere of radius \(r=1\). The sphere is assumed to be homogeneous with Poisson’s ratio \(\nu =0.3\) and Young’s modulus \(E=1\).

The sphere is modelled using only one polyhedron with scaling centre at O. The orthogonal planes are not discretized. The surface of the sphere is discretized is discretized by lines forming triangular sectors of size h as shown in Fig. 20b. Three mesh sizes are considered i.e. \(h=0.2\), \(h=0.1\) and \(h=0.05\).

Table 3 Three-dimensional stress singularities for Fichera’s corner

The order of the mode-I stress singularity defined as \(([\lambda ^{R}]-1)\) is computed using the developed formulation [24]. Table 3 compares the computed results. The stress singularities computed using the FEM [17] and the original SBFEM [24] are reported for comparison. It is observed that the computed stress singularities are close to the results reported in the literature. The developed technique therefore, preserves the advantages of the SBFEM in computing the order of stress singularities inherent in the original SBFEM.

6 Conclusions

A novel SBFEM formulation has been developed for three-dimensional analysis. The formulation adopts a novel approach in which planar shape functions for a scalar field are derived over the facets of each polyhedron from the semi-analytical solution of the Laplace equation in a transformed two-dimensional coordinate system. The resulting shape functions are then adopted in the SBFEM in a formulation for elasto-static analyses. The subsequent processes in the formulation are similar to standard SBFEM procedures with the exception that the isoparametric (or Wachspress [38, 58]) shape functions are replaced by the semi-analytical scaled boundary shape functions. The resulting coefficient matrices can be integrated in both the scaling directions \(\zeta \) and \(\xi \). Numerical integration is required only along the edges of each polyhedron. This approach removes the need to further partition the faces of the octree cells into triangles [34, 47] or to adopt special integration techniques associated with the rational polygonal interpolants over the surface [58].

The developed formulation was validated using six numerical benchmarks. A discretisation that adopts a combination of octree and polyhedron cells was adopted. The combined use of octree and polyhedron cells leads to significant reduction in the number of cells in a mesh due to the efficiency of the octree decomposition in transitioning across different scales [34, 47, 58]. It was shown that the developed formulation can passthe patch test. The convergence behaviour of the formulation was also demonstrated for a case where analytical solution is available. Two additional numerical example show the application of the formulation in conjunction with STL models and image-based analyses.