1 Introduction

Discrete element methods are effective tools for addressing a variety of physics problems and are formulated in terms of a large number of discrete entities interacting with each other, as opposed to treating the material as a continuum. In the combined finite discrete element method (FDEM) [1,2,3,4,5], solid domains (called discrete elements) are discretized into finite elements; the finite element discretization is used for calculating material deformation and resolving contact interaction between discrete elements. Utilizing this approach, discretized contact solutions can then be used for both contact detection and contact interaction. Additionally, these features can be coupled with discrete crack initiation and fracture propagation models. In this way, FDEM bridges the gap between finite element methods and discrete element methods. As such, it has become a method of choice for problems involving large material deformation, contact, fracture and fragmentation [6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21].

One advantage of FDEM is the ability to handle complex contact/impact problems, especially under dynamic loading. Figure 1 shows a typical problem that can be simulated using FDEM. In this case, a raster of deformable particles with irregular shapes are given some initial velocity and their resultant collisions are simulated. Each particle can freely move and rotate in space until it is in contact with other particles. As a result, random collisions take place between the particles. Due to the complexity of the contact problem, contact interaction algorithms for FDEM must be robust and easy to implement while maintaining high computational efficiency.

Fig. 1
figure 1

Temporal evolution of the contact and interaction between irregularly shaped, deformable particles

Since the inception of FDEM, the potential-based penalty function method has been utilized to resolve mechanical contact [3]. Using this approach, the contact interaction force is calculated as the gradient of a contact potential function. As a result, the amplitude of the contact force is a function of the contact potential, while the direction of the contact force is governed by the gradient of the contact potential. Thus, the definition of the contact potential field is a fundamental aspect of the potential-based penalty function method.

Munjiza first proposed the potential-based penalty function method in FDEM [3, 22]. In its original form, each 2-D contactor triangle was divided into three sub-triangles while the contact potential was defined in terms of the shape functions at the contact point in the corresponding sub-triangle. As a result, the direction of the contact force calculated using this method changes when the contact point moves from one sub-triangle to another. Moreover, the amplitude of the contact force also changes when the contact point moves from one finite element to another, even when the amount of penetration is constant. To partially resolve these issues, Munjiza et al. [4] further proposed an approach where the boundary information of the discrete element was incorporated into the process. In this approach the contact potential was defined in terms of the shape functions of the contact point inside the finite elements located on the boundary of each discrete element [4]. This algorithm resolved the problem with the variation in contact direction change. However, it still does not resolve the issue of the contact force amplitude change. Yan and Zheng [23] have modified Munjiza’s original formula for the contact potential calculation. Instead of using shape functions, they introduced a characteristic length of the mesh to calculate the contact potential. This approach could reduce the influence of the mesh size on the contact force calculation in some special cases. However, most of the issues observed in Munjiza’s original approaches still exist. Recently, based on Munjiza’s original concept, Zhao et al. [24, 25] proposed another approach to define the potential over particles with select shapes. However, this solution is limited to the discrete element method and cannot be directly implemented in FDEM.

In the aforementioned work, the contact potential function is defined locally according to the geometry of each finite element. These approaches are satisfactory when each discrete element is represented by a single finite element. The main advantage of these approaches is their simplicity. However, the contact forces calculated experience a jump when the contact points move from one finite element to another finite element, as demonstrated in Fig. 2a where the contact potential, together with its contours as introduced by Munjiza et al. [4], are plotted. In this work, we propose to construct the contact potential function using the global geometrical information of the discrete elements in order to overcome the artificial numerical non-smoothness in the contact force, as demonstrated in Fig. 2b.

Fig. 2
figure 2

The contact potential field together with its contour defined in a previous work [4] and b current work. The amplitude of the contact force is usually a function of the contact potential, while the direction of the contact force is perpendicular to the contour of the contact potential field. Both the jump in the amplitude and direction of the contact force calculated in the previous work can be observed when the contact point moves from one finite element to another finite element. The contact force calculated in the current work is smooth both in terms of amplitude and direction as the contact point moves from one finite element to another

The rest of the paper is organized as follows: The algorithm for the contact distance field calculation is introduced in Sect. 2, where the solution for a general case and two special cases are presented. In Sect. 3, a new generalized contact interaction law, which is constructed based on the contact distance field introduced in Sect. 2, is derived in detail; contact forces together with the energy dissipation mechanisms are discussed. Some numerical validations are introduced in Sect. 4, demonstrating the robustness of the proposed algorithm for discrete elements of complex shapes. In Sect. 5, three numerical examples are presented to test the accuracy of the proposed algorithm. Finally, conclusions are given in Sect. 6.

2 The contact distance field

In FDEM, solid bodies (i.e., discrete elements) are discretized into a grid of simplex shapes (i.e., finite elements) such as triangles in 2-D, Fig. 3. The finite element discretization of solid domains is used to resolve the contact between discrete elements. The finite element discretization contains two types of objects: nodes and elements. In order to speed up contact processing, both nodes and elements can be further classified into either boundary nodes/elements or inner nodes/elements, as shown in Fig. 3. The boundary nodes are the nodes on the boundary of the discrete element, while the rest of the nodes are defined as the inner nodes. Similarly, the boundary elements are those that are connected with at least one boundary node. In the potential-based penalty function method, only the boundary nodes and boundary elements participate in contact detection and contact interaction, thus improving CPU efficiency.

Fig. 3
figure 3

Discretization of the discrete element: the solid domain is discretized with a group of finite elements and nodes

2.1 Finite element

In this paper, the 6-noded composite element proposed by the authors in [26] is used to demonstrate the algorithm. The 6-noded composite finite element features a multiplicative, decomposition-based, selective integration approach that avoids volumetric locking issues associated with constant strain triangular elements. Moreover, the 6-noded composite element works well with some robust contact interaction algorithms since the low order sub-element is used for deformation and stress calculation. Following the same logic as in [26], each composite finite element is divided into four sub-elements (3-noded triangles), as shown in Fig. 4. The contact potential, as well as the contact interaction, is calculated using these sub-elements.

Fig. 4
figure 4

The composite element and its sub-elements

It is worth noting that the implementation of the proposed algorithm on the simpler constant strain triangular finite element is straightforward since both elements have similar topology. In fact, the principle introduced in this paper can be applied to any type of finite element.

2.2 Nodal contact distance

For each inner node, the shortest distance between that node and the boundary is calculated. In the following text, that shortest distance for each node is referred to as the nodal contact distance, which is used to construct the contact potential. Obviously, the nodal contact distance for the boundary nodes is zero, while the nodal contact distances for the inner nodes are calculated by looping over all boundary elements.

For a specific inner node, the nodal contact distance can be calculated from

$$ d_{o} = \frac{2A}{l} $$
(1)

where \( A \) is the surface area of the sub-element that has two boundary nodes, while \( l \) is the length of the edge on the boundary, as shown in Fig. 5a. However, in some cases, the nodal contact distance of an inner node depends on the triangle used for its calculation, as shown in Fig. 5b. In this case, the nodal contact distance of the inner node is defined as the minimum value over the contact distance calculated from different triangles, thus

Fig. 5
figure 5

The nodal contact distance for node \( n_{o} \): a general case, b special case when the contact distance is calculated from two triangles

$$ d_{o} = \hbox{min} (d_{i} ,d_{j} ) $$
(2)

2.3 Contact distance field

Once the nodal contact distance is obtained, a continuous scalar field defining the distance from the boundary of the discrete element to every point within the boundary triangle is built. In this work, the distance field across a boundary triangle \( \Delta_{123} \) is calculated as

$$ d = N_{1} d_{1} + N_{2} d_{2} + N_{3} d_{3} $$
(3)

where \( d_{1} \), \( d_{2} \), and \( d_{3} \) are the nodal contact distances at nodes 1, 2, and 3, respectively, which are calculated using Eqs. (1) and (2), while the shape functions are defined as

$$ N_{1} = \frac{{A_{1} }}{A} ;\quad N_{2} = \frac{{A_{2} }}{A};\quad N_{3} = \frac{{A_{3} }}{A} $$
(4)

where \( A = A_{1} + A_{2} + A_{3} \) is the surface area of the boundary triangle while \( A_{1} \), \( A_{2} \), and \( A_{3} \) are the surface areas of the sub-triangles shown in Fig. 6.

Fig. 6
figure 6

Interpolation of the distance to the closes boundary using the shape functions of the triangle

2.4 Special cases for defining the contact distance field

Depending on the number of boundary edges contained in a discrete element, two special cases for the calculation of the continuous contact distance field are considered:

Case 1 only two edges of the boundary finite element are on the boundary of the discrete element. As shown in Fig. 7, the shadowed composite element, defined by nodes \( n_{1} - n_{2} - n_{3} - n_{4} - n_{5} - n_{6} \), contains two boundary edges (\( n_{1} - n_{2} - n_{3} \) and \( n_{5} - n_{6} - n_{1} \)) and one inner edge (\( n_{3} - n_{4} - n_{5} \)). In this case, the three nodes defining the sub-element \( n_{1} - n_{2} - n_{6} \) are on the boundary. Thus, the standard method introduced in Sect. 2 does not work for this case. To overcome this issue, two approaches are proposed, as shown in Fig. 8, where the basic idea is to introduce additional “inner nodes” for each sub-element. In one approach, as demonstrated in Fig. 8a, the composite element is split into ten sub-elements by introducing three inner nodes (\( n_{7} \), \( n_{8} \) and \( n_{9} \)). Thus, there are four inner nodes (i.e., \( n_{4} \), \( n_{7} \), \( n_{8} \), and \( n_{9} \)) which can be used to calculate the contact distance field, while each sub-element has more than one inner node. Another approach, as demonstrated in Fig. 8b, divides the composite element into four sub-elements that share inner node \( n_{4} \).

Fig. 7
figure 7

Special case 1: two edges are on the boundary while the other one is inner

Fig. 8
figure 8

Two possible solutions that handle the exception for special case 1: a divide the composite finite element into then sub-elements and introduce three inner nodes \( n_{7} \), \( n_{8} \) and \( n_{9} \), b divide the composite finite element into four sub-elements without introducing any inner node

Case 2 all edges of the boundary finite element are on the boundary of the discrete element, as shown in Fig. 9. In this case, the discrete element contains only one finite element and all of the nodes in the discrete element are on the boundary. Thus, the standard method introduced in Sect. 2 does not work. To overcome this issue, two approaches are proposed, as shown in Fig. 10. Again, the basic idea is to introduce some additional “inner nodes” for each sub-element. In one approach, as demonstrated in Fig. 10a, the composite element is split into ten sub-elements by introducing three inner nodes (i.e., \( n_{7} \), \( n_{8} \), and \( n_{9} \)). Thus, each sub-element has more than one inner node. In another approach, as demonstrated in Fig. 10b, an inner node \( n_{7} \) is created at the center of the composite element. The composite element is then divided into six sub-elements that share the temporarily created inner node.

Fig. 9
figure 9

Special case 2: all nodes/edges are on the boundary

Fig. 10
figure 10

Two possible solutions that handle the exception for the special case 2: a divide the composite finite element into ten sub-elements and introduce three temporarily created inner nodes \( n_{7} \), \( n_{8} \), and \( n_{9} \), b divide the composite finite element into six sub-elements and introduce one temporarily created inner node \( n_{7} \)

3 Generalized contact interaction law

In FDEM, the potential-based penalty function method enables many different implementations in terms of contact kinematics. In earlier FDEM work, a “triangle-to-triangle” contact interaction was implemented in 2-D [3, 22]. The “triangle-to-triangle” approach exactly considered the geometry of both the contactor and the target triangles and the integration of the contact forces distributed along the edges of the discrete elements was done analytically. Since this approach integrated contact forces exactly, it was quite time consuming. To simplify the calculation and improve the computational efficiency, recent versions of FDEM employed “triangle-to-point” contact interaction kinematics [4]. In this case, the contactor triangles also interact with target triangles. However, in order to integrate the distributed contact forces, the target triangles are represented as a series of points distributed on the free boundary lines of the discrete elements [12], as shown in Fig. 11.

Fig. 11
figure 11

Triangle to point: contactor triangle and contact force integration points (target points). The target points are distributed on the free boundary lines of the target triangle

In this work, similar to the “triangle-to-point” approach, a “triangle-to-node” scheme is proposed. In this case, the interaction points of the target triangles are assigned to their nodes as shown in Fig. 12. Thus the “triangle-to-node” approach belongs to the concentrated contact force approach in the penalty function method. In contrast to the well-known “node-to-surface” approach widely implemented in the finite element codes [27], the contact force in the “triangle-to-point” is calculated using the contact potential constructed from the nodal distance field, which avoids the “dead zone” issue observed in the “node-to-surface” approach. Moreover, since the principles are similar, the fundamental equations proposed in this work can also work, with minor modifications, with the “triangle-to-point” contact interaction approach.

Fig. 12
figure 12

Triangle to node: contactor triangle and contact force integration points (target points). The target points are defined at the nodes of the target triangle

In the contactor, the contact potential field \( \varphi \) is defined as a function of the distance field \( d \) introduced in Sect. 2, which yields

$$ \varphi = \varphi \left( d \right) $$
(5)

where \( \varphi \) can be constructed with a certain amount of freedom. For example, one can assume that \( \varphi \) is a power function of \( d \), such as \( \varphi = d^{n} \). It is worth noting that \( n \) should be always greater than one to represent reasonable physical responses. In this case, the contact force calculated using the contact potential field increases with the distance field \( d \). More specifically, if \( \varphi = d^{2} \), the contact force is linearly proportional to the distance field \( d \).

It is further assumed that the normal contact force acting on the target point (node of the target triangle) is proportional to the gradient of the potential function as

$$ {\mathbf{f}}_{n} = - k_{n} \nabla \varphi \left( d \right) = - k_{n} g\left( d \right)\nabla d $$
(6)

where \( k_{n} \) is the normal penalty parameter, while \( \nabla \) is the gradient operator. The function

$$ g\left( d \right) = \frac{\partial \varphi \left( d \right)}{\partial d} $$
(7)

defines the relationship between the contact force and the distance field \( d \).

The gradient of the distance field \( \nabla d \), which defines the direction of the normal contact force and is always parallel to the normal of the contours of the distance field, is given by

$$ \begin{aligned} \nabla d & = \nabla N_{1} d_{1} + \nabla N_{2} d_{2} + \nabla N_{3} d_{3} \\ & = - \left( {\frac{{{\mathbf{n}}_{1} }}{2A}d_{1} + \frac{{{\mathbf{n}}_{2} }}{2A}d_{2} + \frac{{{\mathbf{n}}_{3} }}{2A}d_{3} } \right) \\ \end{aligned} $$
(8)

where \( A \) is the surface area of the contactor, while \( {\mathbf{n}}_{1} \), \( {\mathbf{n}}_{2} \), and \( {\mathbf{n}}_{3} \) are the face normal vectors shown in Fig. 13 which can be calculated from

$$ \begin{aligned} {\mathbf{n}}_{1} & = \left( {{\mathbf{x}}_{3} - {\mathbf{x}}_{2} } \right) \times {\mathbf{o}} \\ {\mathbf{n}}_{2} & = \left( {{\mathbf{x}}_{1} - {\mathbf{x}}_{3} } \right) \times {\mathbf{o}} \\ {\mathbf{n}}_{3} & = \left( {{\mathbf{x}}_{2} - {\mathbf{x}}_{1} } \right) \times {\mathbf{o}} \\ \end{aligned} $$
(9)

where \( {\mathbf{x}}_{1} \), \( {\mathbf{x}}_{2} \), and \( {\mathbf{x}}_{3} \) are the global coordinates of the nodes 1, 2, and 3 in the contactor triangle, respectively, while \( {\mathbf{o}} \) is a unit vector defined as

Fig. 13
figure 13

The face normal vectors of the contactor triangle

$$ {\mathbf{o}} = \frac{{\left( {{\mathbf{x}}_{2} - {\mathbf{x}}_{1} } \right) \times \left( {{\mathbf{x}}_{3} - {\mathbf{x}}_{1} } \right)}}{{\left| {\left( {{\mathbf{x}}_{2} - {\mathbf{x}}_{1} } \right) \times \left( {{\mathbf{x}}_{3} - {\mathbf{x}}_{1} } \right)} \right|}} $$
(10)

In its original form, the potential-based penalty function method features a path independent function \( g\left( d \right) \). In this case, assuming the target node penetrates the contactor through any arbitrary path defined by end points \( A \) and \( B \), the total work of the contact force calculated from Eq. (6) only depends on the contact potentials at the end points \( A \) and \( B \), which yields

$$ W = \int_{A}^{B} {{\mathbf{f}}_{n} \cdot {\text{d}}{\mathbf{r}}} = k_{n} \left( {\varphi \left( {d_{A} } \right) - \varphi \left( {d_{B} } \right)} \right) $$
(11)

which indicates that the energy balance during the contact process is always preserved as long as \( \varphi \left( {d_{A} } \right) = \varphi \left( {d_{B} } \right) \). The preservation of energy balance is one of main advantages over some other implementations of penalty function methods.

One way to construct a dissipative contact interaction law is to define a path dependent function \( g\left( d \right) \) as shown in Fig. 14, where the energy dissipation due to contact is dominated by the area between the loading and unloading curves. Since \( g\left( d \right) \) can be defined in any form, it is convenient to define different functions for loading and unloading. For example, one can assume that

$$ g\left( d \right) = \left\{ {\begin{array}{*{20}l} {d^{\alpha } } \hfill & { ( {\text{loading)}}} \hfill \\ {d^{\beta } } \hfill & { ( {\text{unloading)}}} \hfill \\ \end{array} } \right. $$
(12)

where \( \alpha \le \beta \), and \( \alpha \) and \( \beta \) are the parameters that control the shape of the loading and unloading curves.

Fig. 14
figure 14

Path dependent contact interaction law

In addition, one can also introduce contact damping as a mechanism to dissipate energy. In this case, the damping contact force acting on the target node is calculated from

$$ {\mathbf{f}}_{\text{d}} = \gamma {\mathbf{v}}_{\text{r}} $$
(13)

where \( \gamma \) is the contact damping coefficient, \( {\mathbf{v}}_{\text{r}} = {\mathbf{v}}_{\text{c}} - {\mathbf{v}}_{\text{t}} \) is the relative contact velocity between the contactor and the target at the contact point, \( {\mathbf{v}}_{\text{t}} \) is the velocity of the target node while \( {\mathbf{v}}_{\text{c}} \) is the velocity at the corresponding contact point in the contactor.

Another mechanism for energy dissipation in contact is frictional forces. For instance, frictional forces could be calculated based on Coulomb’s friction law

$$ {\mathbf{f}}_{\text{t}} = \hbox{min} \left( {\mu \left| {{\mathbf{f}}_{\text{n}} } \right|,k_{\text{t}} s} \right){\mathbf{t}} $$
(14)

where \( \mu \) and \( k_{\text{t}} \) are the friction coefficient and tangential penalty parameter, respectively. \( {\mathbf{t}} \) is a unit vector defining the contact tangential direction

$$ {\mathbf{t}} = {\mathbf{o}} \times {\mathbf{n}} $$
(15)

where \( {\mathbf{n}} \) is a unit vector defining the normal direction

$$ {\mathbf{n}} = \frac{\nabla d}{{\left| {\nabla d} \right|}} $$
(16)

The relative tangential contact displacement between the contactor and the target is calculated using an incremental formula

$$ s = \hat{s} + \left( {{\mathbf{v}}_{\text{r}} \cdot {\mathbf{t}}} \right)\Delta t $$
(17)

where \( \hat{s} \) is the relative tangential contact displacement between the contactor and the target in the previous time step, while \( \Delta t \) is the time step size.

The total contact force due to the penetration, damping, as well as friction acting on the target node is then given by

$$ {\mathbf{f}} = {\mathbf{f}}_{\text{n}} + {\mathbf{f}}_{\text{d}} + {\mathbf{f}}_{\text{t}} $$
(18)

The contact force calculated from Eq. (18) would still yield a contact force jump, specifically for cases where re-meshing (e.g., nodes splitting) is necessary during fracture processes. To overcome this issue and ensure the continuity of the contact force, Eq. (18) is modified as

$$ {\mathbf{f}} = \frac{m}{{\bar{m}}}\left( {{\mathbf{f}}_{\text{n}} + {\mathbf{f}}_{\text{d}} + {\mathbf{f}}_{\text{t}} } \right) $$
(19)

where \( m \) is the mass of the target node, \( \bar{m} \) is the characteristic mass of the system which is a constant during the simulation. In this work, \( \bar{m} \) is set to be the mass of the smallest element in the system. Because of the conservation of mass in FDEM, the conservation of the contact force is naturally enforced even when re-meshing is conducted (say in problems with fracture).

The contact force is distributed to the nodes of the contactor through

$$ \begin{aligned} {\mathbf{f}}_{1} = - N_{1} {\mathbf{f}} \hfill \\ {\mathbf{f}}_{2} = - N_{2} {\mathbf{f}} \hfill \\ {\mathbf{f}}_{3} = - N_{3} {\mathbf{f}} \hfill \\ \end{aligned} $$
(20)

4 Validation of contact distance field

In this section, the proposed algorithm is demonstrated by means of examples, where the contact distance field of discrete elements is calculated. The proposed algorithm is validated in an incremental fashion, starting from the simplest cases and building in complexity. Figures 15 and 16 show the contact distance field together with its contours (defined in two different ways introduced in Sect. 2) in a single 6-node composite finite element. The contact distance fields are smooth in both cases and the contours exactly represent the shape of the triangle.

Fig. 15
figure 15

A triangular discrete element: a the finite element mesh, b handling exception, and c the distance field

Fig. 16
figure 16

A triangular discrete element: a the finite element mesh, b handling exception, and c the nodal distance field

Figures 17 and 18 show the contact distance field together with its contours (defined in two different ways introduced in Sect. 2) for a diamond-shaped discrete element. In both cases, the diamond discrete element is discretized into two 6-node composite finite elements. Obviously, the contact distance fields are smooth in both cases and the contours exactly represent the shape of the discrete element.

Fig. 17
figure 17

A diamond discrete element: a the finite element mesh, b handling exception, and c the distance field

Fig. 18
figure 18

A diamond discrete element: a the finite element mesh, b handling exception, and c the distance field

In the rest of the section, the contact distance fields of more general shaped discrete elements are shown. Figure 19 illustrates the nodal distance field for a rectangular discrete element. In this case, the rectangular discrete element is discretized into four structured 6-node composite finite elements. Only the contact distance field in the sub-triangles that define the boundary of the discrete element is plotted. The contact distance fields are smooth and the contours of the contact field follow the same shape of the discrete element.

Fig. 19
figure 19

The contact distance field for a rectangle discrete element discretized into structured finite elements

Figure 20 shows the contact distance field for an elliptic discrete element. In this case, the discrete element is discretized into unstructured 6-node composite finite elements. Only the contact distance field in the sub-elements that define the boundary of the discrete elements is plotted. The contact distance fields are smooth and the contours of the contact field follow the same shape of the discrete element.

Fig. 20
figure 20

The contact distance field for an elliptic discrete element discretized into unstructured finite elements

Figures 21 and 22 show the contact distance field for L-shaped and V-shaped discrete elements. In this case, both discrete elements are discretized into unstructured 6-node composite finite elements. Only the contact distance field in the sub-triangles that define the boundary of the discrete elements is plotted. The contact distance fields are smooth, and the contours of the contact field follow the same shape of the discrete element.

Fig. 21
figure 21

The contact distance field for an L-shaped discrete element discretized into unstructured finite elements

Fig. 22
figure 22

The contact distance field for a V-shaped discrete element discretized into unstructured finite elements

5 Numerical examples

In this section, the proposed algorithm is validated through three numerical examples. In the first example, the influence of the contact viscosity introduced in Sect. 3 on the energy dissipated during the contact processes is demonstrated.

The model setup and the finite element mesh used in this example are shown in Fig. 23. A 1.25 m × 0.2 m rigid base (target) is impacted by 1 m × 1 m elastic block (impactor) with an initial velocity of 10 m/s. All degrees of freedom of the target are fixed. The material of the impactor is assumed linear elastic with the parameters described by the Young’s modulus \( E \) = 1.0 GPa, Poisson’s ratio \( \nu \) = 0.0 and density  ρ = 1000 kg/m3. The total kinetic energy in the system as a function of time was studied for four different cases. As shown in Fig. 24, the energy balance during the contact process is preserved when no damping is used. In addition, the restitution of kinetic energy in the system decreases with the increase in the contact viscosity.

Fig. 23
figure 23

The model setup and finite element mesh for the simulation of impact between two blocks

Fig. 24
figure 24

The total kinetic energy as a function of time, obtained using different viscosity coefficients during the impact between two blocks

In the second example, the influence of the loading and unloading parameters introduced in Eq. (12) and Fig. 14 on the energy dissipated during the contact processes is demonstrated. The model setup and the finite element mesh used in this example are shown in Fig. 25. In this case, the target disk (the right one shown in Fig. 25) is impacted by another disk (the left one in Fig. 25) with the same size and material properties traveling at a speed of 10 m/s. The radius of both disks is 1 m. The material is assumed linear elastic with the parameters described by the Young’s modulus \( E \) = 1.0 GPa, Poisson’s ratio \( \nu \) = 0.0 and density  ρ = 1000 kg/m3. The obtained total kinetic energy in the system as functions of time for four different cases was studied. As shown in Fig. 26, the energy balance during the contact process is preserved when no damping is used. In addition, the restitution of kinetic energy in the system decreases with the increase in the unloading parameter β.

Fig. 25
figure 25

The model setup and finite element mesh for the simulation of impact between two elastic circular disks

Fig. 26
figure 26

The total kinetic energy as a function of time, obtained using different loading and unloading coefficients during the impact between two circular disks

In the third example, a virtual experiment was designed to examine the performance of the proposed algorithm. The results obtained from this approach are compared against those calculated from the algorithm proposed by Munjiza et al. [4] and its analytical solutions. In this case, the sliding friction behavior of a 1 m × 1 m block, which is moving on a 10 m long horizontal platform is simulated (as shown in Fig. 27). To get rid of the influence of the deformation in the platform, it is assumed to be rigid. The block is assumed to be linear elastic with the parameters described a Young’s modulus \( E \) = 1.0 GPa, Poisson’s ratio \( \nu \) = 0.0 and density  ρ = 1000 kg/m3. The simulations are conducted in two steps: In the first step, the system is allowed to relax in order to reach the steady state of the normal contact force between the block and platform; in step two, an initial velocity is assigned to the block and its movement is simulated.

Fig. 27
figure 27

The model setup and finite element mesh for the sliding friction simulation

The Coulomb’s friction force is

$$ f_{s} = \left( {mg} \right)\mu = 4900\;{\text{N}} $$
(21)

where \( m = \left( {1\;{\text{m}}^{3} } \right) \times \left( {1000\;{\text{kg/m}}^{3} } \right) = 1000\;{\text{kg}} \), \( g = 9.8\;{\text{kg/m}}^{3} \) and \( \mu = 0.5 \) are the mass of the block, the gravitational acceleration and the friction coefficient, respectively.

The sliding velocity as a function of time is given by

$$ v = v_{i} - \left( {\frac{mg\mu }{m}} \right)t = v_{i} - \left( {g\mu } \right)t $$
(22)

where \( v_{i} \) and \( t \) are the initial velocity and time.

The sliding displacement as a function of time yields

$$ d = v_{i} t - \frac{g\mu }{2}t^{2} $$
(23)

The maximum sliding displacement, which is defined as the sliding displacement at the moment that the block stops moving, is calculated as

$$ d_{\hbox{max} } = \frac{{v_{i}^{2} }}{2g\mu } $$
(24)

The comparison of the sliding velocity as a function of time, sliding displacement as a function of time, as well as the maximum sliding displacement as a function of initial velocity for the numerical results and the analytical solutions are presented in Figs. 28, 29 and 30. In all cases, the results obtained from the proposed approach and from the approach introduced in [4] are in very good agreement with the analytical solutions. However, due to the reason explained in Sect. 1, the noise in the friction forces calculated using the approach introduced in [4] can be observed during the whole sliding process, as demonstrated in Fig. 31. The friction force calculated from the present algorithm is shown in Fig. 32. At the beginning of the simulation, oscillations of the friction force are seen due to the transition from its static state to dynamic state. Once the block reaches its steady state, a constant friction force that matches the analytical solution is obtained.

Fig. 28
figure 28

The obtained sliding velocity as a function of time when \( v_{i} = 8\;{\text{m/s}} \)

Fig. 29
figure 29

The obtained sliding displacement as a function of time when \( v_{i} = 8\;{\text{m/s}} \)

Fig. 30
figure 30

The obtained maximum sliding displacement as a function of initial velocity

Fig. 31
figure 31

Comparison of the friction force as a function of sliding distance when \( v_{i} = 8\;{\text{m/s}} \) for the results obtained using the approach proposed by Munjiza et al. [4] and the analytical results

Fig. 32
figure 32

Comparison of the friction force as a function of sliding distance when \( v_{i} = 8\;{\text{m/s}} \) for the results obtained using the proposed algorithm and the analytical results

In order to further demonstrate the advantage of the proposed algorithm, another set of tests were conducted wherein the vertical degree of freedom of the block is fixed in the second step. In this way, the amount of the penetration is kept constant during the sliding process seen in step two. Thus, the change of the friction force reflects the change of the normal contact force as well as the potential field, and the influence of any artificial numerical non-smoothness can now be readily identified.

The comparison of the sliding velocity as a function of time, the sliding displacement as a function of time as well as the maximum sliding displacement as a function of initial velocity for the numerical results and analytical solutions are presented in Figs. 33, 34 and 35. In all cases, the results obtained from the proposed approach are in very good agreement with the analytical solutions. However, we can see a large difference between the results calculated from the approach introduced in [4] and the analytical solutions. This difference is more obvious in the friction force calculated from the approach introduced in [4], as shown in Fig. 36. However, the proposed approach produces a constant friction force with the same amount of penetration, as shown in Fig. 37. This example further demonstrates the robustness and accuracy of the proposed approach.

Fig. 33
figure 33

The obtained sliding velocity as a function of time when \( v_{i} = 8\;{\text{m/s}} \). In this case, the vertical degree of freedom of the block is fixed in the second step

Fig. 34
figure 34

The obtained sliding displacement as a function of time when \( v_{i} = 8\;{\text{m/s}} \). In this case, the vertical degree of freedom of the block is fixed in the second step

Fig. 35
figure 35

The obtained maximum sliding displacement as a function of initial velocity. In this case, the vertical degree of freedom of the block is fixed in the second step

Fig. 36
figure 36

Comparison of the friction force as a function of sliding distance when \( v_{i} = 8\;{\text{m/s}} \) for the results obtained using the approach proposed by Munjiza et al. [4] and the analytical results. In this case, the vertical degree of freedom of the block is fixed in the second step

Fig. 37
figure 37

Comparison of the friction force as a function of sliding distance when \( v_{i} = 8\;{\text{m/s}} \) for the results obtained using the proposed algorithm and the analytical results. In this case, the vertical degree of freedom of the block is fixed in the second step

Our previous studies indicated that the accuracy of the contact forces calculated from earlier algorithms introduced in [3, 4] are greatly reliant upon the mesh used to discretize the discrete elements. To improve the accuracy of the contact force calculation, one has to be very careful when generating the mesh for contact surface interactions, such as the earthquake rupture modeling in [16]. The examples introduced in this paper demonstrate that the proposed smooth contact potential can rectify the artificial numerical non-smoothness seen in other existing approaches.

6 Conclusions

Traditionally, it was “a priori” assumed that the potential attached to the finite element mesh necessarily leads to non-smooth contact interaction. In this work, it has been proven that it is possible to calculate the contact potential in such a way that a smooth contact evolution for a smooth surface is recovered. The algorithm proposed calculates contact potential at nodes of the finite element mesh by taking into account nodal connectivity and existing discrete element boundaries. The proposed algorithm is relatively easy to implement and it has been demonstrated in this paper that it leads to relatively smooth potential for both concave and convex bodies of complex shapes.

It is worth noting that the proposed algorithm is not the only one that can yield smooth potentials and it is possible that future research in the field may produce an alternative or similar algorithmic solutions for distributed contact force approaches.

In principle, it is possible to expand the traditional combined finite discrete element method to problems where interaction between smooth particle surfaces is simulated accurately. Of course, this may require application of higher order finite elements.