1 Introduction

Computational discontinuous mechanics has an important role in various engineering fields. In general, the analyzed medium is discretized into a large number of individual blocks using discontinuous structural planes. The mechanical behavior of separate entities is hard to model with the traditional numerical methods based on the continuum assumption. Instead, discontinuous methods apply the block- or particle-based models to describe the movement of each component. Over recent decades, development of accurate and efficient numerical methods for discontinuous problems has become a very active research area of computational mechanics.

In general, discontinuous numerical methods can be classified as implicit or explicit methods according to the solution methods for dynamic equations. Among the implicit approaches, the discontinuous deformation analysis (DDA) originated by Shi (2001) and Shi and Goodman (1985) is a typical method. Since the initiation of the two-dimensional model for DDA in 1985, diverse applications have been carried out to validate the performance for 2D problems (Morgan and Aral 2015; Nie et al. 2014; Zhang et al. 2014). Although much attention has been paid (Yeung et al. 2003, 2007; Zhu et al. 2016), DDA still suffers from many deficiencies when it is extended to three dimensions due to a serious obstacle in the contact detection. In DDA, as the contact condition is determined by the process of open–close iteration (Zheng et al. 2016), the stiffness of the contact spring significantly affects the results. The open–close iteration is not always convergent, especially when many point-to-point contact candidates are involved in the problem. Many improvements have been applied to avoid the contact spring (Cai et al. 2000; Lin et al. 1996; Zheng and Jiang 2009), but the open–close iteration is still necessary to determine the contact state and it may fail due to rank deficiency of the stiffness matrix (Li and Zheng 2015; Zheng and Li 2015; Zheng et al. 2016). Furthermore, it has no efficient way to solve the point-to-point contact condition (Bao and Zhao 2012). Originally, the stress and strain inside the block are assumed to be constant, and the deformation of blocks is limited in DDA due to the utilization of a first-order displacement function. To overcome these drawbacks, Shi (1991) proposed the numerical manifold method (NMM) based on the finite cover approximation theory. The 2D NMM has already been developed and used in various studies (Ning et al. 2011; Terada et al. 2003; Zheng and Xu 2014). On the contrary, the three-dimensional NMM is in the early development stage, and the published literature is still focused on the concept extension and equation derivation (He et al. 2013; Jiang et al. 2009).

An alternative to the discontinuous numerical method is the discrete-element method (DEM). Instead of the implicit approach utilized in DDA and NMM, an explicit scheme is employed to avoid the establishment and resolution of a motion matrix equation (Jing 2003). The non-linearity in material behavior can also be handled in a straightforward manner. Depending upon the description of the geometrical configuration in elements, DEM is generally divided into two categories, namely granular discrete method and block discrete-element method. The granular discrete-element method, first suggested by Cundall and Strack (1979), has enjoyed considerable popularity due to the simplicity of the element type (Smeets et al. 2015) and efficiency in contact detection (Hohner et al. 2011). The commercial code, particle flow code PFC2D/3D (Itasca 2014a, b), developed by Itasca Consulting Group, has been widely applied to simulate the motion of rock mass (Albusaidi et al. 2005; Shimizu et al. 2011; Yoon et al. 2014) and soil materials (Jung et al. 2012; Mcdowell and Harireche 2002; Wang and Yan 2013). Subsequently, multi-element particle models were also developed (Garcia et al. 2009; Zhou et al. 2013). However, the granular discrete-element method has a severe drawback that its spherical element is not able to capture the complex physical features of an actual particle, such as interlocking of particles (Latham and Munjiza 2004). In addition, the value of shear strength among the granular particle assemblies is below those obtained experimentally (Jiang et al. 2015).

On the other hand, the block discrete-element method raised by Cundall (1971, 1988) and Hart et al. (1988) has received a close attention, because it considers realistic element shapes for a more accurate interaction. The core concept of the method is that it treats all blocks as rigid and a small amount of overlap is allowed to consider relative displacement. At each time step, the contact interaction is determined by laws which update the contact forces based on the relative motions and relevant contact stiffness. This method has already been applied in the commercial codes UDEC (Cundall and Hart 1985; Itasca 2016b) and 3DEC (Itasca 2016a), and it has a broad variety of applications in engineering and research studies (Boon et al. 2014; Zhu et al. 2013). It is worthwhile to notice that the polyhedral block identification from the discontinuities has a significant impact on the performance of the block discrete-element method. Accordingly, two main approaches for block generation, subsequent subdivision (Boon et al. 2015; Yu et al. 2009) and all at once (Jing 2000; Ikegawa and Hudson 1992), have been developed with the wide application of the block discrete-element method.

However, the standard DEM lacks a simple and unified mathematical model of the contact interaction in different contact statuses. Normal and tangential springs are used to express the contact force. As a result, different calculation models, such as point-to-point, point-to-edge, and point-to-face, are not robust and generally very complex, but are necessary according to the different contact situations. Furthermore, it cannot deal with the point-to-point contact state. For the standard block DEM method, this kind of difficulty mainly comes from the non-determinacy of the normal contact force, as the normal direction does not vary smoothly but discontinuously at a corner. This also results in an inconsistent contact force which can cause energy imbalance and numerical errors. One common practice to overcome the corner singularity is to employ a corner rounding procedure, so that blocks can slide past one another in a smooth way when two opposing corners interact (Bao and Zhao 2012). However, this practice has a negative effect on the accuracy and robustness. To address complex contact modes, Cundall (1988) introduced the common plane (CP) method. By translating and rotating the common plane, the contact types can be reduced to a corner-to-plane contact. However, the common plane method and the improved algorithms still face a number of problems (Nezami et al. 2004, 2006); for example, the proper choice of the common plane, the iterative error for the spinning common plane, and its uniqueness. Consequently, the reliability of simulation results can be influenced by these defects.

Some improvements have been introduced to make DEM more accordant with practical circumstances and provide more efficient models both in contact interaction (Feng et al. 2012; Jin et al. 2011; Kawamoto et al. 2016; Li et al. 2004; Lu et al. 2015) and contact detection (Kodam et al. 2010a, b). Among them, the combined finite–discrete-element method (FDEM) draws the most attention after it was introduced by Munjiza et al. (1995). Entirely different from the standard DEM, FDEM defines a new potential function instead of employing normal or tangential spring. Accordingly, the contact force in FDEM is determined conveniently and uniformly by an integral of the potential function over the embedded volume. In addition, each element is discretized into finite elements to capture the deformability of an individual discrete element. In general, Munjiza et al. (1995) have made a revolutionary change on the mode of contact interaction which establishes a new and uniform calculation model to avoid the discussion of different contact situations completely, whilst the energy conservation and momentum balance properties are preserved during the contact process. In the meantime, to improve the efficiency of contact detection, Munjiza and Andrews (1998) produced a linear algorithm, which is known as No Binary Search (NBS). This new algorithm performs well both in dense and loose packs of blocks because of the insensitivity of the spatial distribution of blocks (Munjiza et al. 2006), and it can reduce the CPU requirement of contact problems (Munjiza 2004). The research code Y code has been developed by Munjiza (2004), together with a graphical user interface (Y-GUI) which is a practical example of this approach (Mahabadi et al. 2010).

Although various applications have been published to represent the validations of FDEM (Mahabadi et al. 2012; Munjiza et al. 2004; Munjiza and John 2002; Rougier et al. 2011), the numerical precision of this method remains uncertain. As the potential function is defined in a simple format which is the normalized penetrated volume, the potential value is greatly influenced by the element shape. In other words, with the same penetration and overlapping volume within a same element, the potential magnitude is not identical at all time. Therefore, both the contact interaction and the simulation may undergo deviations which can decrease computational accuracy, even though the macroscopic mechanical behaviors of blocks are achieved conveniently and quickly in most cases. The principal reason for this phenomenon fundamentally boils down to the inherent deficiency of the potential definition, which lacks a clear physical meaning and a measurement for the penetration between the contact pairs. Besides, this numerical model of contact interaction is incomplete, because this method does not indicate the influence of tangential contact force. Another severe drawback is that FDEM cannot be used for an arbitrary polyhedral element due to the specific definition of the potential function for the four-node tetrahedron (Munjiza 2004). Moreover, the NBS contact detection algorithm is not efficient when it is utilized to deal with a system of a large number of polyhedral blocks with different sizes. It limits the application of this method in engineering due to the rapid increase of computing time.

In the current work, a three-dimensional distance potential discrete-element method has been proposed. In this approach, a novel definition of distance potential function is developed and a complete calculation algorithm for the normal contact interaction is exhibited. Furthermore, the proposed method also provides a precise definition of the tangential direction and the computational algorithm. The new approach retains the merit of FDEM and avoids its deficiencies. The new function is based on the normalized penetrated distance. In comparison with the definition in FDEM, this function exhibits a clear physical meaning and presents an accurate measurement of penetration for the contact elements. Accordingly, both the magnitude of the distance potential function and numerical solution of the contact interaction are calculated regardless of the element types and shapes. Quite apart from that, a non-uniform block contact detection algorithm is introduced to overcome the defects of NBS contact detection algorithm.

This paper is organized as follows. The basic idea of FDEM is given in Sect. 2 in which the definition of the potential function and its calculation algorithm are introduced. Then, the new distance potential function and the algorithm of contact interaction are derived in detail in Sect. 3. An improved new non-uniform blocks search algorithm is introduced in Sect. 4. Several illustrative examples are applied to validate the presented method in Sect. 5. Brief conclusions are summarized in Sect. 6.

2 Basic Idea of FDEM

2.1 Definition of Potential Function and Contact Force Calculation

The most notable difference between FDEM and the classic discrete-element method lies in the application of a potential function. Instead of the force–displacement law, FDEM employs the definition of a potential function and a potential contact force to calculate the contact interaction.

As shown in Fig. 1, a tetrahedral element is decomposed into four-node sub-tetrahedral elements according to the corresponding centroid o. The potential value of each point p in the sub-tetrahedron is defined as:

Fig. 1
figure 1

Sub-tetrahedral elements divided by a corresponding centroid o and a point p in sub-tetrahedron obcd

$$\varphi (p)=k\left( {\frac{{{V_{p - b - c - d}}}}{{4{V_{o - b - c - d}}}}} \right),$$
(1)

where k is the penalty parameter, \({V_{p - b - c - d}}\) and \({V_{o - b - c - d}}\) stand for the volume of tetrahedron pbcd and sub-tetrahedron obcd, respectively.

Consider two discrete elements, \({\beta _{\text{t}}}\) and \({\beta _{\text{c}}}\). \({\beta _{\text{t}}}\) is penetrated by the element \({\beta _{\text{c}}}\), as shown in Fig. 2.

Fig. 2
figure 2

Contact pair and their overlapping volume

The normal contact force acting on the overlapping domain is generated by integrating \(\varphi\) over the overlapping volume \({V_{{\text{t}} \cap {\text{c}}}}\), as follows:

$${\varvec{f}_{\text{n}}}=\int_{{{V_{{\text{t}} \cap {\text{c}}}}}} {[{\text{grad}}{\varphi _{\text{c}}} - {\text{grad}}{\varphi _{\text{t}}}]} {\text{d}}V,$$
(2)

where \({\varphi _{\text{c}}}\) and \({\varphi _{\text{t}}}\) are the corresponding potential functions in \({V_{{\text{t}} \cap {\text{c}}}}\) belonging to the elements \({\beta _{\text{c}}}\) and \({\beta _{\text{t}}}\), respectively.

Equation (2) can also be rewritten as an integration over the boundary surface \({S_{{\text{t}} \cap {\text{c}}}}\) of \({V_{{\text{t}} \cap {\text{c}}}}\) in accordance with the Gauss formula:

$${\varvec{f}_{\text{n}}}=\int_{{{S_{{\text{t}} \cap {\text{c}}}}}} {\varvec{n}({\varphi _{\text{c}}} - {\varphi _{\text{t}}})} {\text{d}}S,$$
(3)

where n is the outward unit vector of the boundary surface \({S_{{\text{t}} \cap {\text{c}}}}.\)

2.2 Some Issues of Contact Force in FDEM

In the context of FDEM, the potential \(\varphi\) plays an important role in calculating the normal contact force. From Eq. (1), it is clear that \(\varphi\) is a function of the penetrated distance and itself provides an extent measurement of the embeddedness between the contact pairs. It means that the potential gradient should be constant and the points with the same penetrated distance ought to have the same magnitude within the same element. The potential distributions in tetrahedral elements are exhibited in Fig. 3. It is worthwhile to notice that the distribution density of potential remains constant inside the regular tetrahedral element in Fig. 3a; however, high difference is indicated in every sub-tetrahedron of the arbitrary tetrahedral element in Fig. 3b. Accordingly, this approach is strongly sensitive to the element’s shape.

Fig. 3
figure 3

Potential distribution in tetrahedral elements. a Potential distribution in a regular tetrahedron; b potential distribution in an arbitrary tetrahedron

The reason for this phenomenon lies in the inherent defect of this potential definition. As shown in Fig. 4, points \({a_1}\) and \({a_2}\) are selected with the same distance h along the inward unit normal vector of the bases bcd, acd in tetrahedron abcd, respectively. The potential value at points \({a_1}\) and \({a_2}\) can be calculated using Eq. (1):

Fig. 4
figure 4

Points \({a_1}\) and \({a_2}\) with a same penetrated distance h in tetrahedron abcd. a abcd is a regular tetrahedron; b abcd is an arbitrary tetrahedron

$$\varphi ({a_1})=k\left( {\frac{{{V_{{a_1} - b - c - d}}}}{{4{V_{o - b - c - d}}}}} \right),\quad \varphi ({a_2})=k\left( {\frac{{{V_{{a_2} - a - c - d}}}}{{4{V_{o - a - c - d}}}}} \right).$$
(4)

The different shapes of the tetrahedron result in different results. On the basis of the geometrical property of tetrahedron, volumes of tetrahedra a1bcd and a2acd shown in Fig. 4a are equivalent, but they are different in Fig. 4b. Consequently, in Fig. 4a, \(\varphi ({a_1})=\varphi ({a_2})\), but they are not equal in Fig. 4b. The discrepancy caused by the element shape can be observed clearly. As a result, the normal contact interactions are also not equivalent by Eq. (3). In fact, although the element shapes are different, the normal contact force cannot be different because of the same penetrated distance.

In addition, this potential definition has a strict restriction to the element type and cannot be used to compute the contact interaction among polyhedra. The fundamental cause for this problem comes from the basic concept in Eq. (1). As shown in Fig. 5, the hexahedron is discretized into five-node pyramidal blocks. Analogously, two points \({p_1}\) and \({p_2}\) with the same penetrated distance are selected. The potential value for \({p_1}\) and \({p_2}\) can be obtained by Eq. (1).

Fig. 5
figure 5

Sub-polyhedral blocks divided by the corresponding centroid o and two points \({p_1}\) and \({p_2}\) with a same penetrated distance

Noted that the same result for points \({p_1}\) and \({p_2}\) cannot be satisfied with Eq. (1) due to the randomicity of boundary surfaces \({\alpha _1}\) and \({\alpha _2}\). More importantly, the presence of discontinuities along the interfaces can be observed in the arbitrary polyhedral block exhibited in Fig. 6b.

Fig. 6
figure 6

Potential distribution in hexahedral elements. a Potential distribution in a cube; b potential distribution in an arbitrary hexahedron

3 Distance Potential Discrete-element Method

3.1 Definition of Distance Potential Function

As mentioned before, FDEM is an excellent convenient and efficient algorithm for the calculation of contact interaction; however, this method has a strict requirement on the element type and the simulation result may be inconsistent. In this section, a new definition of the distance potential function is developed to overcome these defects.

Assuming an arbitrary convex polyhedral element, the radius of a maximum inscribed spherical element expressed as r is shown in Fig. 7. As described in Fig. 8, the inner domain is surrounded by boundaries which have the same distance r from the base surfaces of the block. The block is discretized into sub-polyhedral elements by the nodes of the bases and inner domain, as shown in Fig. 8b. Accordingly, the distance potential value \({\varphi _{\text{d}}}\) for each point p in the sub-polyhedron is defined as:

Fig. 7
figure 7

Arbitrary polyhedral block and its maximum inscribed sphere

Fig. 8
figure 8

Element is divided into sub-polyhedral blocks on the basis of the maximum inscribed sphere; where a the inner domain of the element according to r; b sub-polyhedral blocks and the point p are shown

$${\varphi _{\text{d}}}(p)=\frac{1}{r} \cdot {h_{\text{I}}},\quad {\varphi _{\text{d}}} \le 1,$$
(5)

where \({h_{\text{I}}}\) is the distance from the point p to the base \({\alpha _{\text{I}}}\) of the sub-polyhedron.

Note that the new concept of dividing elements with the radius of a maximum inscribed sphere often results in an inner domain at the center of the element as presented in Fig. 8b, especially for an arbitrary polyhedron and this phenomenon can be observed in Fig. 9. As described above, the point in this area is not defined by the distance potential function. In accordance with the basic assumption of the discrete-element method, the embedded distance between contact pairs is strictly controlled by the value of the normal contact stiffness. Consequently, the overlapping volume cannot extend to the core of the element, because only a small penetration is allowed during the DEM computation, and the singular area without the definition of distance potential is not of significance for the solution procedure.

Fig. 9
figure 9

Inner domain for an arbitrary polyhedron

The merit of this definition lies in the approach of the approximate calculation of the contact interaction. As the normalized partition of the penetrated distance is applied in Eq. (5), the distance potential value is achieved without an influence of the element shape as presented in Fig. 10. Moreover, this new definition can be used in an arbitrarily convex polyhedron, because the principle of the distance potential function holds good universally. The constant of distribution gradient is also indicated in Fig. 11. The normal contact stiffness of different boundaries of the element is in accordance with the actual condition. As a result, it can avoid errors both in the calculation of potential and normal contact force as discussed in Sect. 2.2.

Fig. 10
figure 10

Distance potential distribution in tetrahedral elements as in a a regular tetrahedron; b an arbitrary tetrahedron

Fig. 11
figure 11

Distance potential distribution in hexahedral elements as in a a cube; b an arbitrary hexahedron

3.2 Normal Contact Force

In this section, the calculation process of the normal contact force is considered as based on Eq. (3) but with the newly defined distance potential function.

As illustrated in Fig. 12, two polyhedral blocks \({\beta _{\text{t}}}\) and \({\beta _{\text{c}}}\) are in contact. Normal contact force between this contact pair can be described as an integration of the distance potential function over the boundaries of the overlapping volume.

Fig. 12
figure 12

Two contact polyhedrons and their overlapping volume

In summary, two steps are listed as follows for the determination of the boundary surfaces:

Step 1 Determine the intersection surface S among the plane of the base of \({\beta _{\text{c}}}\) and the target sub-polyhedron of \({\beta _{\text{t}}}\) as indicated in Fig. 13:

Fig. 13
figure 13

Intersection surface S between the plane base \(\alpha\) of \({\beta _{\text{c}}}\) and a sub-polyhedron of \({\beta _{\text{t}}}\), showing a sub-polyhedron of \({\beta _{\text{t}}}\) and the plane of \(\alpha\) of \({\beta _{\text{c}}}\); b sub-polyhedron of \({\beta _{\text{t}}}\) is separated into two parts by the plane of \(\alpha\); c intersection surface s is determined by the sub-polyhedron of \({\beta _{\text{t}}}\) and the plane of \(\alpha\)

$$S=\{ {S_1},{S_2} \ldots ,{S_n}\} ,$$
(6)

where \({S_1},{S_2} \ldots ,{S_n}\) are the nodes of the intersection surface S.

Step 2 Determine the intersection polygon B defined by the surface S and the base \(\alpha\) of \({\beta _{\text{c}}}\) shown in Fig. 14:

Fig. 14
figure 14

Intersection polygon B between the surface S and the base \(\alpha\)

$$B=\{ {B_1},{B_2} \ldots ,{B_n}\} ,$$
(7)

where \({B_1},{B_2} \ldots ,{B_n}\) are the nodes of the polygon B.

Then, the value of the distance potential at every node of the interaction polygon B is presented as:

$${\varphi _{\text{d}}}({B_1}),{\varphi _{\text{d}}}({B_2}) \ldots ,{\varphi _{\text{d}}}({B_n}).$$
(8)

The calculation is performed over the polygonal surface B. For simplicity, two assumptions are generated as base upon the regularities of the distribution of the distance potential function in the polyhedron: (1) the local coordinate system \((x,y)\) is established on the boundary surfaces, respectively; (2) the distance potential distribution on the intersection surface B has a linear variation and the value of the point over the surface B is represented as:

$${\varphi _{\text{d}}}({x_i},{y_i})={A_1}{x_i}+{A_2}{y_i}+{A_3},$$
(9)

where xi and yi are the local coordinates of the point on the polygonal surface B.

Parameters \({A_1}\), \({A_2}\), and \({A_3}\) can be expressed as:

$${A_1}=[{\varphi _{\text{d}}}({B_1})({y_3} - {y_2})+{\varphi _{\text{d}}}({B_2})({y_3} - {y_1})+{\varphi _{\text{d}}}({B_3})({y_1} - {y_2})]/\left| J \right|,$$
(10)
$${A_2}=[{\varphi _{\text{d}}}({B_1})({x_3} - {x_2})+{\varphi _{\text{d}}}({B_2})({x_1} - {x_3})+{\varphi _{\text{d}}}({B_3})({x_2} - {x_1})]/\left| J \right|,$$
(11)
$${A_3}=[{\varphi _{\text{d}}}({B_1})({x_2}{y_3} - {x_3}{y_2})+{\varphi _{\text{d}}}({B_2})({x_1}{y_3} - {x_3}{y_1})+{\varphi _{\text{d}}}({B_{\text{3}}})({x_1}{y_2} - {x_2}{y_1})]/\left| J \right|,$$
(12)

where \(({x_1},{y_1})\), \(({x_2},{y_2})\), and \(({x_3},{y_3})\) are the local coordinates of B1, B2, and B3, respectively.

Thus, the normal contact force over the polygonal surface B is:

$${\varvec{f}_{{\text{n}},B}}={\varvec{n}_B}{k_{\text{n}}}\iint {{\varphi _{\text{d}}}(x,y){\text{d}}x{\text{d}}y},$$
(13)

where \({\varvec{n}_B}\) is the outward unit vector of the polygonal surface B and \({k_{\text{n}}}\) is the normal contact stiffness.

In addition, the moments contributed by the contact normal force are:

$${\varvec{M}_{x,B}}={\varvec{n}_B}{k_{\text{n}}}\iint {{\varphi _{\text{d}}}(x,y)y{\text{d}}x{\text{d}}y},$$
(14)
$${\varvec{M}_{y,B}}={\varvec{n}_B}{k_{\text{n}}}\iint {{\varphi _{\text{d}}}(x,y)x{\text{d}}x{\text{d}}y}.$$
(15)

The integration is performed by dividing the polygonal surface into triangles bi as shown in Fig. 15, and then summating the total contact force over the triangular surfaces.

Fig. 15
figure 15

Polygonal intersection surface B is divided into triangles by the nodes

Note that the integration is computationally expensive over the triangular surfaces when there are a large number of elements and the shape of integral domain is arbitrary. Therefore, a natural coordinate system \((\eta ,\zeta )\) located in every triangular surface is established for simplifying the calculation and improving computational efficiency.

The local coordinate system and natural coordinate system shown in Fig. 16 are related through well-defined mappings:

Fig. 16
figure 16

Transition from the local coordinate system \((x,y)\) to natural coordinate system \((\eta ,\zeta )\)

$$x(\eta ,\zeta )=\sum\limits_{{i=1}}^{3} {{N_i}(\eta ,\zeta ){x_i}} ,$$
(16)
$$y(\eta ,\zeta )=\sum\limits_{{i=1}}^{3} {{N_i}(\eta ,\zeta ){y_i}} ,$$
(17)

where \({N_i}(\eta ,\zeta )\) is the shape function expressed as:

$${N_1}(\eta ,\zeta )=1 - \eta - \zeta ,\quad {N_2}(\eta ,\zeta )=\zeta ,\quad {N_3}(\eta ,\zeta )=\eta ,\,(\eta ,\zeta ) \in (0,1).$$
(18)

Therefore, Eq. (9) can be described as:

$${\varphi _{\text{d}}}(x,y)={\varphi _{\text{d}}}(\eta ,\zeta )=({A_1}{x_{31}}+{A_2}{y_{31}})\eta +({A_1}{x_{21}}+{A_2}{y_{21}})\zeta +{A_1}{x_1}+{A_2}{y_1}+{A_3},$$
(19)

where \({x_{21}}={x_2} - {x_1}\), \({y_{21}}={y_2} - {y_1}\), \({x_{31}}={x_3} - {x_1}\), and \({y_{31}}={y_3} - {y_1}.\)

Equations (13), (14) and (15) can be rewritten as:

$${\varvec{f}_{{\text{n}},B}}=\sum\limits_{{i{\text{=1}}}}^{m} {{\varvec{n}_B}{k_{\text{n}}}\iint_{{{{b}_i}}} {{\varphi _d}(x,y){\text{d}}x{\text{d}}y}} =\sum\limits_{{i=1}}^{m} {{\varvec{n}_B}{k_{\text{n}}}\iint_{{{{b}_i}}} {{\varphi _{\text{d}}}(\eta ,\zeta ){\text{d}}\eta {\text{d}}\zeta }} ,$$
(20)
$${\varvec{M}_{x,B}}=\sum\limits_{{i=1}}^{m} {{\varvec{n}_B}{k_{\text{n}}}\iint_{{{{b}_i}}} {{\varphi _{\text{d}}}(x,y)y{\text{d}}x{\text{d}}y}} =\sum\limits_{{i=1}}^{m} {{\varvec{n}_B}{k_n}\iint_{{{{b}_i}}} {{\varphi _{\text{d}}}(\eta ,\zeta )\left| J \right|{\text{d}}\eta {\text{d}}\zeta }} ,$$
(21)
$${\varvec{M}_{y,B}}=\sum\limits_{{i=1}}^{m} {{\varvec{n}_B}{k_{\text{n}}}\iint_{{{b_i}}} {{\varphi _{\text{d}}}(x,y)xdxdy}} =\sum\limits_{{i=1}}^{m} {{\varvec{n}_B}{k_{\text{n}}}\iint_{{{\mathcal{b}_i}}} {{\varphi _{\text{d}}}(\eta ,\zeta )\left| J \right|{\text{d}}\eta {\text{d}}\zeta }} ,$$
(22)

where m is the number of the divided triangular surfaces, \(\left| J \right|\) is the Jacobi determinant of coordinate transformation, and \(\left| J \right|=\left| {\begin{array}{*{20}{c}} {\frac{{\partial x}}{{\partial \eta }}}&{\frac{{\partial y}}{{\partial \eta }}} \\ {\frac{{\partial x}}{{\partial \zeta }}}&{\frac{{\partial y}}{{\partial \zeta }}} \end{array}} \right|.\)

On the basis of Eqs. (19), and Eqs. (20)–(22) can be simplified as:

$${\varvec{f}_{{\text{n}},B}}=\sum\limits_{{i=1}}^{m} {{\varvec{n}_B}{k_{\text{n}}}\left( {\frac{{{C_1}}}{6}+\frac{{{C_2}}}{6}+\frac{{{C_3}}}{2}} \right)} ,$$
(23)
$${\varvec{M}_{\eta ,B}}=\sum\limits_{{i=1}}^{m} {{\varvec{n}_B}{k_{\text{n}}}\left( {\frac{{{C_1}}}{{12}}+\frac{{{C_2}}}{{24}}+\frac{{{C_3}}}{6}} \right)} ,$$
(24)
$${\varvec{M}_{\zeta ,B}}=\sum\limits_{{i=1}}^{m} {{\varvec{n}_B}{k_{\text{n}}}\left( {\frac{{{C_1}}}{{24}}+\frac{{{C_2}}}{{12}}+\frac{{{C_3}}}{6}} \right)} .$$
(25)

Parameters \({C_1}\), \({C_2}\), \({C_3}\) are expressed as:

$${C_1}=[{A_1}({x_2} - {x_1})+{A_2}({y_2} - {y_1})]\left| J \right|,$$
(26)
$${C_2}=[{A_1}({x_3} - {x_1})+{A_2}({y_3} - {y_1})]\left| J \right|,$$
(27)
$${C_3}=[{A_1}{x_1}+{A_2}{y_1}+{A_3}]\left| J \right|.$$
(28)

The action position of the normal contact force in the natural coordinate system can be determined by:

$$\left\{ \begin{gathered} {\eta _{\text{n}}}=\frac{{{M_{\eta ,B}}}}{{{f_{{\text{n}},B}}}} \hfill \\ {\zeta _{\text{n}}}=\frac{{{M_{\zeta ,B}}}}{{{f_{{\text{n}},B}}}} \hfill \\ \end{gathered} \right..$$
(29)

Analogously, the normal contact force and moment between the contact pair are decomposed into a summation at each base surface of the overlapping volume.

3.3 Tangential Contact Force

Munjiza et al. (1995) improved the calculation of the algorithm for normal contact interaction and developed a simplified potential contact force method. However, the influence of the tangential contact force is not considered in his method. In this section, a precise computational algorithm for the tangential contact force is developed by the displacement increment method to remove this flaw from the FDEM approach.

The main difficulty of calculating the tangential contact force is the accurate determination of the tangential direction at each time step. As analyzed in Sect. 3.2, contact interaction is decomposed as an integration over each boundary surface. Therefore, the measurement for tangential contact force can be generated in two different ways.

One possible way is to use an approximation of the algorithm for the normal contact force described in Sect. 3.2. The tangential displacement increment and tangential force are implemented as components on the boundary surfaces (Yan and Zheng 2017; Yan et al. 2015). For brevity, the value of the total tangential contact force at step i is denoted by:

$$\varvec{f}_{{\text{s}}}^{i}=\sum\limits_{{j=1}}^{{{n_s}}} {{{(\varvec{f}_{{\text{s}}}^{{i - 1}}+{k_{\text{s}}} \cdot \Delta \varvec{\varvec{\updelta}}_{{{\text{s,t}}}}^{i})}_j}} ,$$
(30)

where \({n_{\text{s}}}\) is the number of the boundary surfaces, \(\varvec{f}_{{\text{s}}}^{i}\) is the tangential contact force at step i, \(\Delta \varvec{\varvec{\updelta}}_{{{\text{s,t}}}}^{i}\) is the tangential increment displacement of each surface, and ks is the tangential contact stiffness. The tangential direction is defined as verticality of the normal contact force on each surface.

It is worthwhile to note that large computer memory (RAM) is necessary to record both the normal and tangential force and displacement increments at each step for all boundary surfaces. More importantly, this method can cause excess normal force. As indicated in Fig. 17a, b, block \({\beta _{\text{I}}}\) impacts block \({\beta _{{\text{II}}}}\) in a direction opposite that of Z-axis. Initially, blocks \({\beta _{\text{I}}}\) and \({\beta _{{\text{II}}}}\) are stacked in such way that they contact, but there are no overlap and contact force between them. The calculation of the contact interaction is presented in Fig. 17c. It is observed that the tangential forces \({\varvec{f}_{{\text{t,ac}}}}\) and \({\varvec{f}_{{\text{t,ab}}}}\) have components along the normal direction which will affect the computation of the normal contact force, possibly leading to an error.

Fig. 17
figure 17

Calculation of a tangential contact force on each boundary surface, where a block \({\beta _{\text{I}}}\) penetrates \({\beta _{{\text{II}}}}\) along Z-axis; b calculation model of cross section 1–1; c contact interactions in 1–1

An alternative approach is illustrated in Fig. 18. The calculation for tangential force is achieved by following the solution of the total normal contact force. The value of the tangential force is determined by the total tangential increment displacement. The direction of the tangential force is perpendicular to the total normal contact force and the loading position is almost identical with the total normal contact force. Hence, excessive computer memory requirements and the errors analyzed for the first method can be completely eliminated.

Fig. 18
figure 18

Calculation of tangential contact force based on the total tangential increment displacement

In this work, we calculate the tangential contact force with the second algorithm. To achieve the increment tangential displacement, the relative velocity of the contact element \({\beta _{\text{c}}}\) with respect to the target element \({\beta _{\text{t}}}\) shown in Fig. 12 at step i is considered as:

$${\varvec{v}^i}=v_{c}^{i} - v_{t}^{i}+\varvec{\varvec{\upomega}}_{c}^{i} \times r_{c}^{i} - \varvec{\varvec{\upomega}}_{t}^{i} \times r_{t}^{i},$$
(31)

where \(v_{c}^{i}\) and \(v_{t}^{i}\) are the translational velocities of blocks \({\beta _{\text{c}}}\) and \({\beta _{\text{t}}}\) at step i, respectively; \(\varvec{\varvec{\upomega}}_{{\text{c}}}^{i}\) and \(\varvec{\varvec{\upomega}}_{{\text{t}}}^{i}\) stand for the angular velocities of blocks \({\beta _{\text{c}}}\) and \({\beta _{\text{t}}}\), respectively. Then, the incremental tangential displacement \(\Delta \varvec{\varvec{\updelta}}_{{\text{s}}}^{i}\) is:

$$\varvec{\varvec{\Delta}\varvec{\updelta}}_{s}^{i}=\varvec{\varvec{\Delta}}{\varvec{s}^i} - (\varvec{\varvec{\Delta}}{\varvec{s}^i} \cdot {\varvec{n}_n}) \cdot {\varvec{n}_n}=[{\varvec{v}^i} - ({\varvec{v}^i} \cdot {\varvec{n}_n}) \cdot {\varvec{n}_n}] \cdot \varvec{\varvec{\Delta}}t,$$
(32)

where \(\varvec{\varvec{\Delta}}{\varvec{s}^i}\) is the incremental displacement between \({\beta _{\text{c}}}\) and \({\beta _{\text{t}}}\), and \({\varvec{n}_n}\) is the unit direction vector of total normal contact force.

The tangential contact force is updated as:

$$\varvec{f}_{{\text{s}}}^{i}=\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{{\varvec{r}}} \times \varvec{f}_{{\text{s}}}^{{i - 1}}+\varvec{\varvec{\Delta}f}_{{\text{s}}}^{i},$$
(33)

where \(\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{{\varvec{r}}}\) is the rotation matrix that rotates the normal vector from step i − 1 to the normal vector at the current step i; \(\varvec{\varvec{\Delta}f}_{{\text{s}}}^{i}\) is the incremental tangential contact force expressed as:

$$\varvec{\varvec{\Delta}f}_{{\text{s}}}^{i}={k_{\text{s}}} \cdot \varvec{\varvec{\Delta}\varvec{\updelta}}_{{\text{s}}}^{i}.$$
(34)

The magnitude of the tangential force is checked with the maximum possible value \({({f_{\text{s}}})_{\rm{max}}}\) defined by Coulomb-type friction law as:

$${({f_{\text{s}}})_{\rm{max} }}={f_{\text{n}}} \cdot \tan {\varphi _\mu }+C,$$
(35)

where \({\varphi _\mu }\) is the maximum static friction angle and C is the cohesion force. If the absolute value of \({f_{\text{s}}}\) is larger than \({({f_{\text{s}}})_{\rm{max} }}\), \({f_{\text{s}}}\) is set to be equal to \({({f_{\text{s}}})_{\rm{max} }}.\)

The tangential contact moment is given by:

$$\varvec{M}_{{\text{s}}}^{i}=\varvec{f}_{{\text{s}}}^{i} \times {\varvec{\gamma}_{\text{s}}},$$
(36)

where \({\varvec{\gamma}_{\text{s}}}\) is the vector from the force \({\varvec{f}}_{{\text{s}}}^{i}\) load position to the centroid of the element.

4 Contact Detection Algorithm

As mentioned in the previous sections, the proposed method is applied to deal with the motion of a system consisting of arbitrary convex polyhedra. In general, the simulation model contains a large amount of individual blocks with different sizes. An efficient contact detection algorithm is crucial, since it can affect the computational efficiency of the discrete-element method. One of the most common contact detection algorithm is the NBS (no binary search) first developed by Munjiza and Andrews (1998). It is a linear calculation algorithm, in other words, both the total CPU time and RAM requirements are proportional to the number of blocks. Because the method is insensitive to the spatial distribution of the elements, it displays a high effectiveness during the contact detection process both in dense and loose packs of elements with a uniform size. However, this method cannot be used for problems with non-uniform blocks. As the system is discretized according to the size of the largest block, contact detections for small blocks are also performed, even though they are far away from each other. To overcome this problem, Munjiza et al. (2006) developed the linear search algorithm for the system comprised of different sizes of particles and proposed the multi-step Munjiza–Rougier algorithm (MMR).

In this work, an improved search algorithm is proposed for non-uniform polyhedral blocks depending upon the basic idea of MMR. The approach is performed by dividing the elements into different groups according to their sizes:

Group 1 Value of the maximum circumradius for the first-group blocks \({d_1}\): \({\raise0.7ex\hbox{$D$} \!\mathord{\left/ {\vphantom {D \gamma }}\right.\kern-0pt}\!\lower0.7ex\hbox{$\gamma $}}<{d_1} \le D\).

Group 2 Value of the maximum circumradius for the second-group blocks \({d_2}\): \({\raise0.7ex\hbox{$D$} \!\mathord{\left/ {\vphantom {D {{\gamma ^2}}}}\right.\kern-0pt}\!\lower0.7ex\hbox{${{\gamma ^2}}$}}<{d_2} \le {\raise0.7ex\hbox{$D$} \!\mathord{\left/ {\vphantom {D \gamma }}\right.\kern-0pt}\!\lower0.7ex\hbox{$\gamma $}}\),

Group n Value of the maximum circumradius for the last-group blocks \({d_n}\): \({d_n} \le {\raise0.7ex\hbox{$D$} \!\mathord{\left/ {\vphantom {D {{\gamma ^{n - 1}}}}}\right.\kern-0pt}\!\lower0.7ex\hbox{${{\gamma ^{n - 1}}}$}}\), where D is the maximum circumradius among all the blocks, \(\gamma>1.\)

Then, the process of the contact search algorithm can be performed in n steps as follows.

Step 1 As shown in Fig. 19, all of the elements are bounded by spherical boxes and they are mapped into the calculation space which is discretized into cells according to the maximum value of d1 in Fig. 20. Each block can only be mapped into a cell based on its centroid, as explained in the following formulations:

Fig. 19
figure 19

Spherical bounding box of an icosahedron

Fig. 20
figure 20

Space divided into identical cells which are large enough to contain the first-group element

$${x_k}=1+\operatorname{int} \left( {\frac{{{x_{{\text{cent}}}} - {x_{\rm{min} }}}}{l}+0.5} \right),$$
(37)
$${y_k}=1+\operatorname{int} \left( {\frac{{{y_{{\text{cent}}}} - {y_{\rm{min} }}}}{l}+0.5} \right),$$
(38)
$${z_k}=1+\operatorname{int} \left( {\frac{{{z_{{\text{cent}}}} - {z_{\rm{min} }}}}{l}+0.5} \right),$$
(39)

where \({x_{{\text{cent}}}}\), \({y_{{\text{cent}}}}\), and \({z_{{\text{cent}}}}\) are the current coordinates of the centroids in the global coordinate system, and \({x_k}\), \({y_k}\), and \({z_k}\) are the coordinates of the centroids when the elements are mapped into the cell, \(l=\rm{max} \{ {d_1}\} .\)

The contact detection is performed for the first-group elements. The detection of contact for the first-group elements is circulated as a direct check from either central or neighboring cells, as shown in Fig. 21. Discrete elements mapped into the cells can be determined as contact pairs only if the contact condition is met:

Fig. 21
figure 21

Contact detection check cells, where a the blank cell is the central cell and the shaded elements are neighboring cells; b all the blocks are mapped into the cells and the contact detection for the first-group elements is performed

$${l_{\text{c}}} \le {l_{\rm{max} }},$$
(40)

where \({l_{\text{c}}}\) is the distance between the centroids of the contact pairs. In addition, \({l_{\rm{max} }}\) is the contact distance: \({l_{\rm{max} }}={l_{1\rm{max} }}+{l_{2\rm{max} }}\), where \({l_{1\rm{max} }}\) and \({l_{2\rm{max} }}\)are the longest distances between the vertexes and centroids of the two contact elements, respectively.

The contact elements for the first-group elements can be obtained, respectively.

Step 2 The first-group elements are removed from the system and all the remaining elements are mapped into the space which is divided by \({d_2}\) as shown in Fig. 22. Contact detection is performed between the elements of group 2 and remaining group elements with the method in step 1. Thus, the contact pairs for the second-group elements can be detected.

Fig. 22
figure 22

First-group elements are removed and space is divided into identical cells according to d2

Step n By analogy, in this step, only elements in group n remain in the system and the contact detection is carried out between these elements.

With the new contact search algorithm, the size of the cells in each step is approximated to fit the detection performed elements. The coordinates of the element mapped into the cells can reflect the actual distribution law of the elements and it can greatly improve the accuracy of contact detection for the system comprised of blocks with different sizes.

5 Verification and Application

In this section, several numerical examples are presented to illustrate the accuracy of the newly proposed method. First, the robustness is tested by five standard problems, including an impact simulation, a numerical friction experiment, a joint structure effect on the sliding rock mass, a pillar impact, and a block accumulation. Then, the full simulation of this method is performed for a stability analysis of a wedge slope. The results are compared against the existing numerical and experimental data in the literature.

5.1 Impact Simulation Between Tetrahedral Blocks

The proposed method has proved to provide an accurate computation algorithm of the normal contact force. To verify its reliability, a test for an impact process is analyzed.

This numerical model is composed of two tetrahedral blocks \({\beta _{\text{I}}}\) and \({\beta _{{\text{II}}}}\) which are vertically arranged along the Y-axis shown in Fig. 23. The density of blocks is 2000 kg/m3 and the initial velocity of block \({\beta _{\text{I}}}\) is set as \(0\,{\text{m/s}}\). The vertical acceleration due to the gravity is taken to be 10 m/s2 in a direction opposite that of the Y-axis, and friction is neglected. In this simulation, large penetration is allowed with the application of a small penalty parameter for observation during the process of penetration. As a comparison, a test with the same setting is also conducted using FDEM.

Fig. 23
figure 23

Numerical model for the impact test

Initially, block \({\beta _{\text{I}}}\) is free-falling towards \({\beta _{{\text{II}}}}\). As \({\beta _{\text{I}}}\) impacts the ridge a–b, the velocity decreases and converses to a standstill during the increment of the penetration. In this phase, the embedded volume between the pair in contact achieves the maximum value simultaneously. Then, block \({\beta _{\text{I}}}\) turns into a reverse motion and ultimately returns the original position due to the negligible energy loss.

The predicted motion of block \({\beta _{\text{I}}}\) with FDEM is illustrated in Fig. 24. It is worthwhile to notice that the track and the final position of block \({\beta _{\text{I}}}\) are not compatible before and after the collision, and sideways deflection of block \({\beta _{\text{I}}}\) can be observed in the simulation results. Because the normal contact force calculated by Eq. (1) is sensitive to the element shape, the simulation with FDEM is inconsistent with the physical regulation.

Fig. 24
figure 24

Predicted motion of block \({\beta _{\text{I}}}\) by FDEM

Figure 25 presents the predicted motion of block \({\beta _{\text{I}}}\) with the newly proposed method. Simulation results agree with the analysis. The main reason is the same penetrations between \({\beta _{\text{I}}}\) and sub-tetrahedra on the left and right of ridge a–b because of the geometric symmetry of block \({\beta _{\text{I}}}\) with respect to Z-axis. Figure 26 presents the three displacement components of block \({\beta _{\text{I}}}\) during the process of motion. It can be observed that the displacement of block \({\beta _{\text{I}}}\) is symmetrical along the Y-axis and displacements along X and Z are not generated because of the load distribution.

Fig. 25
figure 25

Predicted motion of block \({\beta _{\text{I}}}\) by the newly proposed method

Fig. 26
figure 26

Three displacement components of block \({\beta _{\text{I}}}\) at different times

Figure 27 shows the evolution of the energy components monitored to check the energy conservation of the system obtained by the proposed method. The reduction of kinetic energy is the consequence of the contact from \(t=0.72\,{\text{s.}}\) The kinetic energy is transferred into potential energy due to the overlap in contact. Then, the potential energy is transferred into the kinetic energy. The kinetic energy returns to the state at time \(t=0.72{\text{ s}}\), when the block \({\beta _{\text{I}}}\) begins to move away from the block \({\beta _{{\text{II}}}}\).

Fig. 27
figure 27

Kinetic energy of block \({\beta _{\text{I}}}\) as a function of time by the newly proposed method

Based on the above discussion, the precision of the normal contact force with the proposed method is deduced. However, the tangential contact force has not been tested yet. Thus, a test for the friction experiment is implemented in the next section.

5.2 Test for the Frictional Experiment

In this example, a friction test for a cuboid sliding on an inclined surface is simulated as a benchmark problem for this proposed method. The analytical formulas of the displacement and velocity for the block during the sliding process are given below, respectively:

$${\varvec{s}}=\left\{ \begin{gathered} {{\varvec{u}}_0} \cdot t - \frac{1}{2}(g\sin \theta +g\cos \theta \cdot \mu ){t^2}{\text{,}}\quad t \le {t_1} \hfill \\ {{\varvec{s}}_0} - \frac{1}{2}(g\sin \theta - g\cos \theta \cdot \mu ){t^2}{\text{,}}\quad t>{t_1} \hfill \\ \end{gathered} \right.,$$
(41)
$${\varvec{u}}=\left\{ \begin{gathered} {{\varvec{u}}_0} - \left( {g\sin \theta +g\cos \theta \cdot \mu } \right)t,\quad t \le {t_1} \hfill \\ (g\sin \theta +g\cos \theta \cdot \mu )t,\quad t \le {t_1} \hfill \\ \end{gathered} \right.,$$
(42)

where \({{\varvec{u}}_0}\) and \({{\varvec{s}}_0}\) are the initial velocity and displacement of the sliding block, respectively, g stands for the gravity acceleration, \(\theta\) represents the angle of the inclined plane, \(\mu\) is the friction coefficient of the plane surface, and \({t_1}={u_0}/(g\sin \theta +g\cos \theta \cdot \mu ).\)

Figure 28 presents the numerical model of this test. The material properties of the sliding block in the simulation are listed in Table 1.

Fig. 28
figure 28

Sliding cube on the slope, showing a the overall model of this test and b a side view of the model

Table 1 Material properties of the sliding block and test for the friction experiment

Initially, the velocity of the sliding block is \(6\,{\text{m/s}}\), then the gravitational force drives the block to move along the dipping slope surface. Figures 29, 30 show the displacement and velocity of the sliding block with a friction coefficient 0.2, 0.4, and 0.6, respectively. Results calculated by the proposed method agree well with the theoretical values.

Fig. 29
figure 29

Time evolution of the displacement of the sliding block for several friction coefficients as calculated by the proposed numerical method and the theoretical expression (41)

Fig. 30
figure 30

Time evolution of the velocity of the sliding block for several friction coefficients as calculated by the proposed numerical method and the theoretical expression (42)

Figure 31 shows the displacement time evolution for several values of normal contact stiffness. Excellent match is found between the numerical and the analytical predictions.

Fig. 31
figure 31

Time evolution of the displacement of the sliding block for several values of normal contact stiffness as calculated by the proposed numerical method and the theoretical expression (41)

5.3 Simulation for Joint Structure Affecting a Sliding Rock Mass

The calculation of the tangential contact force is significantly dependent on the incremental tangential displacement. A major obstacle for an errorless computation of a tangential contact force is the variation of the direction of the tangential contact force within each time step. A method for this problem was presented in this work, and it is tested in a simulation of joint structure effects of a sliding rock mass. This simulation is based on the experiment pursued by Li et al. (2007). Our results are compared against the experimental data and their available numerical results.

The experiment is designed with five artificial slopes as shown in Table 2. Three different sizes of blocks are used in this example to form the slopes and their geometries are listed in Table 3.

Table 2 Models of five accumulation slopes with different sets of transfixion planes
Table 3 Geometrical properties of three types of blocks

In the experiment, five types of accumulation slopes are placed on a platform, respectively. The platform is turned counterclockwise with a constant angular velocity until the failure of the slope occurs.

The blocks have a density of 2000 kg/m3 and a gravity acceleration of 9.81 m/s2 was assumed. All the blocks and the platform have the same mechanical parameters: the friction coefficient is \(\mu =0.4877\), the cohesion is \(C=2.14\,{\text{Pa}}\), the normal contact stiffness is \({k_{\text{n}}}=2.0\,{\text{GPa}}\), and the tangential contact stiffness is \({k_{\text{s}}}=1.6\,{\text{GPa}}\). The constant angular velocity of the platform is 0.03 rad/s.

Table 4 shows the simulation results of the five types of accumulation slopes, presenting the failure behavior of each accumulation slope. The failure process of the fifth slope is exhibited in Fig. 32. The simulation results, including the failure modes and failure angles, are compared with the experimental data and numerical results by Li et al. (2007), as exhibited in Table 5. It can be observed that simulation results of the proposed method are in a good agreement with the existing experimental and numerical data. Hence, the proposed method can deal with a tangential direction change in time.

Table 4 Simulation results of five slopes
Fig. 32
figure 32

Failure process of the fifth slope consists of the mixture blocks. a t = 0 s; b t = 11.7 s; c t = 12.0 s; d t = 12.6 s; e t = 13.0 s; f t = 13.2 s

Table 5 Comparison of the current simulation results with experimental data and numerical results by Li et al. (2007)

5.4 Impact Simulation of a Pillar

An impact simulation for a pillar is employed to test the ability of the proposed method to deal with complex situations. The original configuration of the pillar is shown in Fig. 33. This calculation model is discretized by \(0.5 \times 0.5 \times 0.5\,{{\text{m}}^3}\) rectangular blocks. The initial velocity of the rigid projectile is set as \(- \,50\,\text{m/s}\) in X direction. The blocks use the same density of 600 kg/m3 and a gravity acceleration of 9.81 m/s2 is assumed. The strength and cohesion of all interfaces between blocks are zero. The friction coefficient is 0.5, the normal contact stiffness is 2 GPa, and the tangential contact stiffness is 2 GPa. The detection results are computed with the motion law discussed by Jin et al. (2011).

Fig. 33
figure 33

Numerical model of the pillar impact case

The predicted transient motion of the pillar is given in Fig. 34. The movement of the blocks is consistent with the analysis by Jin et al. (2011). As the projectile impacts the center of the pillar, two kinds of waves are generated. The first one is the compression wave, which propagates at the impact direction. As a result, the blocks in pillar near the impact point are extracted by the projectile. This results in an acceleration of these blocks. It can be observed that the front blocks fly forward and the blocks around the impacting point fly backward.

Fig. 34
figure 34

Predicted motion of the pillar blocks at different times of a t = 0.03 s; b t = 0.14 s; c t = 0.20 s, and d t = 0.72 s

Propagation of the pressure waves satisfies the standard wave equation, and the wave velocity \({V_{\text{w}}}\) can be calculated as follows:

$${V_{\text{w}}}=\sqrt {\frac{E}{\rho }} ,$$
(43)

where E is the elastic modulus, and \(\rho\) is the density of the blocks. E is assigned to all blocks, and therefore, the elastic modulus is obtained by Hooke’s law:

$${\varvec{F}}=E \cdot \Delta \varvec{\delta},$$
(44)

where F is the normal contact force between the blocks, and \(\Delta \varvec{\delta}\) is the relative displacement between the contact blocks. In this simulation, the velocity of wave propagation is generated according to the motion of block \({\beta _{\text{I}}}\), when it is extracted from the pillar. The normal contact force of block \({\beta _{\text{I}}}\) at each time step is shown in Fig. 35, and the velocity of the wave propagation can be calculated as \({V_{\text{w}}}=1819.5\,{\text{m/s}}\) following Eqs. (43) and (44). Thus the time of the front blocks separating from the pillar is obtained as \(t=1.64 \times 1{0^{ - 3}}\,{\text{s.}}\)

Fig. 35
figure 35

Time evolution of the normal contact force of block \({\beta _{\text{I}}}\) for the pillar case

Figure 36 exhibits the x-displacement of block A. Significantly, the computationally predicted time of block \({\beta _{\text{I}}}\) separating from the pillar \(t=1.63 \times 1{0^{ - 3}}\,{\text{s}}\) agrees well the theoretical value \(t=1.64 \times 1{0^{ - 3}}\,{\text{s.}}\)

Fig. 36
figure 36

Time evolution of the displacement in x-axis of block \({\beta _{\text{I}}}\) for the pillar case

The second kind of wave is the shear wave which propagates transversely in the pillar direction. As a result, the moving trajectory of the blocks is similar to parabola. The expansion wave in the pillar direction caused by the Poisson effect is ignored in this simulation because of the rigid physical property of the blocks.

5.5 Simulation of Block Accumulation

A series of numerical simulations of block accumulation are now presented in this example to test the capacity of proposed method in dealing with arbitrary convex polyhedral blocks and to illustrate the computational efficiency of the non-uniform block contact detection algorithm.

As shown in Fig. 37, 1093 blocks are accumulated on the ground. The accumulation process consists of two stages. In the first stage, the blocks drop on the ground from a height of 5 mm. In the second stage, these blocks gradually accumulate and finally achieve stability by applying the same friction coefficient of block–block and block–wall, \(\mu =0.4877\) and a damping radio \(\xi =0.002\). All the blocks are individual and the geometries are described in Fig. 38. The predicted transient motion of the blocks is presented in Fig. 39.

Fig. 37
figure 37

Deposition of the simulation at the initial state

Fig. 38
figure 38

Elements utilized in this simulation

Fig. 39
figure 39

Predicted transient motion of the blocks at several times; a t = 0 s; b t = 0.5 s; c t = 1.0 s; d t = 2.0 s; e t = 3.0 s; f t = 4.0 s

The following simulation is used to validate the efficiency of the proposed method to calculate the motion of polyhedral blocks. As shown in Fig. 40a, a rigid box of dimension 13 × 13 × 13 mm3 is adopted and divided as cubes with a length of 1 mm. 735 cubes fall into the box and achieve a stable state by applying the same damping ratio of block–block and block–wall, \(\xi =0.0{\text{1}}\). For comparison, the same example is also simulated with FDEM in which each cube is represented by five tetrahedral blocks bundled together with springs as shown in Fig. 40b. All the results are obtained on a PC (Intel 3.40 GHz with 16 Gb RAM space).

Fig. 40
figure 40

Numerical model for this accumulation simulation. a Element type of the cube for the proposed method; b element type of five tetrahedral blocks bundled together with springs which have a high elastic stiffness for the FDEM simulation

The simulation methods achieve similar results as exhibited in Fig. 41 and both two methods reflect the block motion. However, the two approaches present different performance when dealing with this problem of polygonal elements. Table 6 lists the total calculation time of the two methods. It can be seen that it takes nearly five times as long to complete this simulation. Clearly, the proposed method performs much better and it is much more suitable and efficient than FDEM.

Fig. 41
figure 41

Simulation results by the proposed method and FDEM

Table 6 Computer time required by two methods in simulating the accumulation of blocks with different shapes

The comparison of CPU time taken for the contact detection between the non-uniform blocks contact detection algorithm proposed in this work and NBS contact algorithm is performed in this example using assemblies of 1000, 2000, 3000, 4000, 5000 and 6000 cubic blocks. Two different sizes of cubes used to form the models are described in Table 7, and the distribution is exhibited in Fig. 42. Blocks are dropped on the ground from a height of 2.5 mm. The contact detection is solved ten times for the problem. Each time, all contact pairs are detected and the CPU time for contact detection is measured for the different number of blocks.

Table 7 Geometric properties of the accumulation blocks
Fig. 42
figure 42

Models for the test of efficient test, where the number of blocks is a 1000; b 2000; c 3000; d 4000; e 5000; f 6000

The cumulative CPU time by the proposed algorithm is shown in Fig. 43 and it is a linear function of the total number of cubic blocks used in the numerical model. The results are obtained by varying the number of blocks from 1000 to 6000 having the same spatial distribution and density. It is worth noting that the total CPU time is directly proportional to the element number. Figure 44 shows the simulation results with the NBS contact detection algorithm. The total CPU time is no longer linear and the inefficiency of this method can be observed by comparing with Fig. 43. It is evident that the new contact detection algorithm exhibits a higher computational efficiency in dealing with blocks with different sizes.

Fig. 43
figure 43

Total CPU time for ten times contact detections by the proposed contact detection algorithm

Fig. 44
figure 44

Total CPU time for ten times contact detections by the NBS contact detection algorithm

5.6 Failure Process Analysis of Wedge Slope

Wedge sliding is one of the most common failure forms of the rock slope. In Fig. 45, the analytical model slope with a wedge is shown. The wedge is formed by the surface of slope with left and right structural weak surfaces (LWSP, RWSP). The obliquity of the intersection between the structural surfaces is \(\theta\) which is set as 20, 30, and 40 degrees in this simulation. Table 8 shows the physical properties of the slope. In this example, the sliding process of the wedge is simulated under the static and dynamic loading, respectively.

Fig. 45
figure 45

Numerical model of the wedge slope, showing a the overall model and b the geometry of the wedge

Table 8 Material parameters of the slope

In the static analysis, the influence of friction coefficient and cohesion on LWSP and RWSR are ignored. The bottom of the slope is fixed on the ground. Thus, the wedge starts to slide along the weak structure surfaces driven by the gravity:

$$s=\frac{1}{2}g{t^2} \cdot \sin \theta .$$
(45)

Figure 46 provides a comparative analysis of the sliding displacement of the wedge between the numerical simulations and the analytical calculations by Eq. (45), revealing excellent match.

Fig. 46
figure 46

Time evolution of the displacement of wedge as calculated by the proposed numerical method and the theoretical expression (45)

The geometry of the wedge for the dynamic analysis is shown in Fig. 47. The numerical model and resisting parameters for this simulation are exhibited in Fig. 48 and Table 9, respectively. Figure 49 shows the horizontal acceleration–time-history that is applied on the wedge. The velocity and the cumulative displacement variation with time are presented in Figs. 50 and 51.

Fig. 47
figure 47

Wedge considered in this dynamic analysis

Fig. 48
figure 48

Numerical model of the wedge for dynamic analysis, showing a overall model and b geometry of the wedge, θ = 32.36°

Table 9 Resisting parameters of the wedge
Fig. 49
figure 49

The horizontal sinusoidal input function

Fig. 50
figure 50

Time evolution of the velocity of the wedge

Fig. 51
figure 51

Time evolution of the displacement of the wedge

From Figs. 50 and 51, it can be seen that the wedge remains stationary till t = 0.02 s when the exciting force is greater than the resistance against sliding. From time t = 0.02 s to t = 0.629 s the acceleration is positive. As a result, the velocity and displacement continuously increase, while the velocity obtains the maximum value at time t = 0.38 s. From t = 0.38 s to t = 0.629 s, although the acceleration becomes deceleration, the velocity is still greater than zero. Therefore, the sliding displacement continues, achieving its maximum value at t = 0.629 s, when the velocity comes to half. At the end of this stage, the displacement has a constant value. This whole phase begins at t = 0.02 s and lasts until t = 0.8 s. The same motion sequence of the wedge is repeated until the end of the calculation. Excellent agreement is exhibited between the computational and analytical predictions for the velocity and displacement in Figs. 50 and 51, respectively.

6 Conclusions

The current work developed a novel discrete-element method using a new definition of a distance potential function. It is applicable for three-dimensional arbitrary convex elements. This newly proposed method has constructed a basic function of the distance potential for an arbitrary convex element, a complete normal contact force calculation model, including the magnitude and direction. The normal contact force moment is determined within the framework of the distance potential. A fundamental algorithm is also developed for the tangential contact force. An improved non-uniform block contact detection algorithm for NBS contact detection method is introduced in detail. The calculation method is clear, efficient, and stable for 3D calculations.

To be specific, the main features of the proposed method can be summarized as follows:

  1. 1.

    Instead of using the standard potential function, the normal contact force is calculated with a new definition of a distance potential function. It presents an accurate potential value and a normal contact force without the influence of the element shape.

  2. 2.

    Compared with the potential calculation method discussed in FDEM, the proposed method can be implemented to deal with the problems involving arbitrary convex polygonal elements.

  3. 3.

    The proposed algorithm for the tangential contact force makes the simulation more accurate and reliable.

  4. 4.

    An improved non-uniform block discrete-element search algorithm is introduced to solve the contact detection problem of arbitrary convex elements with different sizes.