1 Introduction

For many years, the finite element method (FEM) has been the most used numerical technique to analyse and design structures, but it is well known that it is often unable to handle large deformations. In FEM, the geometry of a problem is attached to a mesh, and if the mesh suffers large distortions, the analysis is unable to continue. The material point method (MPM) is a numerical technique that overcomes this limitation [28, 30], allowing for problems involving large deformations and multiple bodies to be analysed [5, 29, 33]. In MPM, the mechanical properties and the geometry of a problem are attached to a group of (material) points that move through an FEM mesh used to calculate the equation of motion in each time or load step. To enable this, the state variables are continuously mapped between the material points and the mesh. Many researchers have shown that MPM can be used to analyse some of the most common geotechnical problems, such as slope stability [1, 4, 9, 15, 31], foundation installation [17, 21, 25] and soil anchors [12]. However, the accuracy of MPM, in particular relating to the stress fields, is still far from the desired level. Indeed, it is noted that many publications do not display full results of the stresses, either presenting only deformations or limited data, and that the majority of work presented in the literature so far uses simple constitutive models. In some work, the stress oscillations and inaccuracies are acknowledged, and mainly attributed to the use of discontinuous finite element (FE) shape function (SF) gradients (e.g. [3, 26, 27, 34]). Hence, a number of techniques have been developed to keep the SF gradients continuous between element boundaries, i.e. C1-continuous, for example:

  • GIMP [6], which distributes the influence of each material point over a characteristic or support domain, possibly extending the influence to multiple elements at a time. Both the SF and the SF gradients are modified.

  • CPDI [24], which is an extension of GIMP in which the material point support domain can deform, maintaining the interaction between particles even after large extension. There are a number of CPDI variants, with different orientations and behaviour of the support domain.

  • B-spline MPM [26], which replaces the linear SFs by functions with higher-order B-spline basis functions, which are at least C1-continuous and positive definite.

  • DDMP [34], which preserves the linear SFs and replaces the SF gradients by smooth continuous functions, thereby allowing the usage of a local integration procedure rather than having a material point support domain.

These techniques have been proven to reduce the impact of cell crossing. Meanwhile, other techniques use material point integration together with Gauss point integration to reduce numerical inaccuracies [2, 16]. However, a complete investigation of the causes of the stress inaccuracies has not been presented. Moreover, these techniques typically involve explicit MPM schemes, thereby ignoring the errors the proposed solutions can cause in the integration of the stiffness matrix in implicit schemes and not exploiting the advantages of implicit time integration. Finally, examples have often been investigated only for 1D cases (usually with 2D elements), so that oscillations caused by other deformations, e.g. material rotation or distortion, have not been examined.

This paper first presents the theoretical background of implicit MPM. Then, two benchmark problems are introduced to illustrate the oscillation problem. In Sect. 4, the main causes of stress oscillations are investigated. Then, a series of existing and novel solutions are presented and investigated. Finally, a comparison of regular MPM and the new proposed oscillation-free MPM is given for the simulation of a vertical cut failure, in order to demonstrate the relative performance for a problem involving both 2D geometry and elasto-plasticity.

2 Theoretical formulation

MPM shares the same continuum mechanics background as FEM. The equation of conservation of momentum is given as

$$ \nabla {\varvec{\upsigma}} - \uprho {\mathbf{a}} + \uprho {\mathbf{b}} = 0 $$
(1)

where σ is the symmetric Cauchy stress tensor, a is the acceleration, b are the body forces, and ρ is the mass density. In MPM, because of the partition of unity of the SFs, mass is automatically conserved. The weak form of Eq. 1 including traction as a boundary condition is

$$ \int\limits_{\text{V}} {\left( {{\varvec{\upsigma}}\left( {\nabla \text{u}} \right) + \uprho {\mathbf{a}}\text{u} - \uprho {\mathbf{b}}\text{u}} \right){\text{dV}}} - \int\limits_{\Gamma } {{\varvec{\uptau}}\text{ud}\Gamma } = 0 $$
(2)

where u denotes the virtual displacement, τ is the traction at the surface Γ (i.e. the boundary condition), and V is the body volume. Following standard FEM discretisation, Eq. 2 can be expressed in the matrix form [8, 32]

$$ {\mathbf{M}}\overline{{\mathbf{a}}} + {\mathbf{K}}\overline{{\mathbf{u}}} = {\mathbf{F}}^{\rm ext} - {\mathbf{F}}^{\text{int}} $$
(3)

where M is the mass matrix, \( \overline{\textbf{a}} \) is the vector of nodal accelerations, K is the stiffness matrix, \( \overline{\textbf{u}} \) is the vector of nodal displacements, and Fext and Fint are the external and internal force vectors, respectively. A quasi-static formulation is obtained by removing the \( {\textbf{M}}\overline{\textbf{a}} \) term from Eq. 3. Using the Gauss–Legendre quadrature rule and discretising the continuum body using a finite set of material points, the element (nodal) mass matrix can be expressed as

$$ {\mathbf{M}} = \sum\limits_{{\text{p} = 1}}^{{\text{nmp}}} {\uprho_{\text{p}} {\mathbf{N}}({\mathbf{x}}_{\text{p}} )} \left| {\mathbf{J}} \right|\text{W} $$
(4)

where nmp is the number of material points in the element, ρρ is the material point density, N is the matrix of SFs evaluated at the material point position xp, J is the Jacobian matrix, and W is the material point integration weight (which is dimensionless and equal to the volume of the material point in local coordinates).

The element stiffness matrix K can be expressed in terms of a small or large strain formulation, but for simplicity it is expressed here in the small strain formulation (for details of the large strain formulation, see [32]), as

$$ {\mathbf{K}} = \sum\limits_{\rm p=1}^{{\rm nmp}} {{\mathbf{B}}^{\rm T} ({\mathbf{x}}_{\rm p} ){\mathbf{D}}_{\rm p} {\mathbf{B}}({\mathbf{x}}_{\rm p} )\left| {\mathbf{J}} \right|\text{W}} $$
(5)

where B is the strain–displacement matrix and Dp is the elastic matrix at the sampling point. The element (nodal) external forces Fext considering gravity and boundary tractions are

$$ {\mathbf{F}}^{{\rm ext}} = \sum\limits_{\rm p=1}^{{\rm nmp}} {\uprho_{\rm p} {\mathbf{N}}^{\rm T} ({\mathbf{x}}_{\rm p} ){\mathbf{g}}\left| {\mathbf{J}} \right|\text{W} + } \int\limits_{\Gamma} {{\mathbf{N}}{\varvec{\uptau}}_{\rm p} {\text{d}}\Gamma } $$
(6)

where g is the gravity vector. The element (nodal) internal forces Fint are

$$ {\mathbf{F}}^{{\rm int}} = \sum\limits_{\rm p=1}^{{\rm nmp}} {{\varvec{\upsigma}}_{\rm p} {\mathbf{B}}({\mathbf{x}}_{\rm p} )\left| {\mathbf{J}} \right|\text{W}} $$
(7)

where σp is the vector of material point stresses. Details of the axisymmetric form of the previous equations are presented in “Appendix A1”. Using Newmark’s [20] time integration scheme,

$$ \overline{{\mathbf{v}}}^{{\rm t} + \Delta {\rm t}} = \overline{{\mathbf{v}}}^{\rm t} + \left[ {\left( {1 - \updelta } \right)\overline{{\mathbf{a}}}^{\rm t} + \updelta \overline{{\mathbf{a}}}^{{\rm t} + \Delta {\rm t}} } \right]\Delta {\text{t}} $$
(8)
$$ \overline{{\mathbf{u}}}^{{\rm t} + \Delta {\rm t}} = \overline{{\mathbf{u}}}^{\rm t} + \overline{{\mathbf{v}}}^{\rm t} \Delta {\text{t}} + \left[ {\left( {\frac{1}{2} - \upalpha } \right)\overline{{\mathbf{a}}}^{\rm t} + \upalpha \overline{{\mathbf{a}}}^{{\rm t} + \Delta {\rm t}} } \right]\Delta {\text{t}}^{2} $$
(9)

where Δt is the time step, \( \overline{{\mathbf{u}}}^{{\rm t} + \Delta {\rm t}} \), \( \overline{{\mathbf{v}}}^{{\rm t} + \Delta {\rm t}} \) and \( \overline{{\mathbf{a}}}^{{\rm t} + \Delta {\rm t}} \) are the respective vectors of displacements, velocities and accelerations at time t +Δt, and α and δ are time stepping parameters that are chosen to be α = 0.25 and δ = 0.5 to give a constant-average-acceleration. Substituting Eq. 9 into Eq. 3 and rearranging leads to

$$ \left( {{\mathbf{K}}^{\rm t} + \frac{{{\mathbf{M}}^{\text{t}} }}{{\upalpha \Delta {\text{t}}^{2} }}} \right)\Delta \overline{{\mathbf{u}}} = {\mathbf{F}}_{\rm ext}^{\rm t} + {\mathbf{M}}^{\text{t}} \left( {\frac{1}{\upalpha \Delta {\text{t}}}\overline{{\mathbf{v}}}^{\rm t} + \left( {\frac{1}{2\upalpha } - 1} \right)\overline{{\mathbf{a}}}^{\rm t} } \right) - {\mathbf{F}}_{\rm int}^{\rm t} $$
(10)

where \( \Delta \overline{{\mathbf{u}}} = \overline{{\mathbf{u}}}^{{\rm t} + \Delta {\rm t}} - \overline{{\mathbf{u}}}^{\rm t} \) is the vector of incremental displacements. In “Appendix B”, a study of the conservation of mass and momentum of the implicit MPM is analysed.

The above equation governs the behaviour of the body and it is therefore important to accurately evaluate each of the terms in order to ensure realistic behaviour. Following the solution of the updated displacements, the trial incremental stresses at the material points can be computed using the strain–displacement matrix as

$$ \Delta {\varvec{\upsigma}}_{\rm p} = {\mathbf{D}}_{\rm p} {\mathbf{B}}({\mathbf{x}}_{\rm p} )\Delta \overline{{\mathbf{u}}} $$
(11)

For an elasto-plastic material, stresses which are found to exceed the yield surface are redistributed using a consistent plastic return algorithm such that a new body force is calculated, and Eq. 10 is again solved to give plastic deformations. This is iteratively performed until no stresses exceed the yield surface. For more details see, for example, Bathe [8].

2.1 Material point method

MPM discretises the material into a series of (material) points which carry the information of the material (density, mass, deformation, velocity, acceleration and stresses). A mapping phase occurs at the start and at the end of each time or load step. At the beginning of each step the values required at the nodes in Eq. 10 (velocity, acceleration, etc.) are mapped via the SFs (see Wang et al. [32] for details). The matrices required for the calculation are calculated via element integration, as shown in Sect. 2, typically using material points as the sampling points. Afterwards, element assembly results in a set of global matrices representing nodal equations. A finite element calculation is then performed, with the state variables calculated at the nodes, in order to compute the deformation of the domain. Finally, another mapping step is undertaken to update the position and state variables of the material points. In Fig. 1, a sketch of the steps followed in MPM is shown. The SFs used to carry out the mapping and the integration are usually first order (e.g. bi-linear in 2D) to avoid negative values which cause instability.

Fig. 1
figure 1

Steps followed in MPM. a Integration of material point variables to nodes at time t, b deformation of the domain as a result of the solution of the finite element calculation, and c update of material point variables and reset of the background mesh (t = t + Δt)

3 Benchmarks

Two benchmarks are introduced to demonstrate and investigate the inaccuracies which occur in MPM. The first benchmark consists of an elastic quasi-static axisymmetric problem. The second benchmark is a 2D dynamic, elasto-plastic, vertical cut problem.

3.1 Axisymmetric benchmark

The first benchmark is similar to that presented by Naylor [19] and Mar and Hicks [18] to explore stress recovery. It consists of a hollow cylinder which deforms due to an incremental pressure (Δps) applied on the internal boundary (s). The main benefit of this benchmark is that, unlike a 1D plane strain problem, the stresses inside the elements are not constant; moreover, they deviate from the real solution and, depending on the material point position, the deviation may be large or small.

Figure 2a, b shows the initial conditions of the benchmark; that is, the top view of the cylinder and the finite element discretization of the cylinder wall, respectively. In both figures, the position of the boundary material point is shown (i.e. the material point nearest to the cylinder axis), which is used to determine the position of the boundary (s). Figure 2c and d illustrate that, during the loading, the distance ri to the inner wall (s) changes, and is equal to the distance between the cylinder axis and the nearest active node (this implies that ri remains constant until the boundary material point jumps to the next element). To enable the numerical (large strain) solution to be interpreted in terms of the analytical (small strain) solution, the methodology includes the following three features: (1) the applied pressure Δps on the boundary (s) is applied to the outer nodes of the elements containing the outer most material points; (2) due to the new location of the inner wall, Δps is re-evaluated as Δps(ri) = A/r2i + 2C, where A and C are constants associated with the initial geometry and boundary conditions of the benchmark, as shown in Fig. 3 (a description of the analytical solution and the constants A and C are presented in “Appendix A2”); (3) instead of accumulated stresses, incremental stresses at the material points are used throughout the analysis. These three features ensure that the incremental stress at the material points, for an arbitrary position of the cylinder wall, can be compared to the analytical stress related to the original geometry of the cylinder.

Fig. 2
figure 2

Axisymmetric model of a hollow cylinder under internal pressure. a top view of the benchmark, b domain and boundary conditions, c initial internal boundary location, and d internal boundary location at a given step

Fig. 3
figure 3

Incremental pressure (Δps) as a function of ri

The inner (initial) and outer cylinder boundaries are located at ri = 0.5 m and re = 1.5 m, respectively. The cylinder domain is discretised by elements of dimension Δr = Δy = 0.20 m, and each element initially contains four material points equally spaced. The elastic properties are Young’s modulus, E = 1000 kPa, and Poisson’s ratio, ν = 0.30. The initial applied pressure increment is Δps = 100 kPa, and A and C are 19.56 kN and 10.87 kPa, respectively.

In Fig. 4, the incremental stress invariants (deviatoric stress \( \Delta {\text{q}} \) and mean stress \( \Delta \upsigma_{\text{m}} \)) at material point mp1 are plotted and compared to the analytical solution over 25 Δps increments. It is evident that the stress invariants can deviate strongly from the analytical solution.

Fig. 4
figure 4

Evolution of mp1 stresses relative to rmp1. a deviatoric stress Δq, and b mean stress Δσm

3.2 Vertical cut benchmark

A 2D elasto-plastic vertical cut problem has been simulated using the Von Mises constitutive model incorporating post-peak softening as described in Wang et al. [32]. Figure 5 shows the domain, boundary conditions and discretisation. The height H of the cut and length L of the domain are 3.0 m and 6.0 m, respectively; the element size is Δx = Δy = 0.10 m and each element contains initially four equally distributed material points. The elastic parameters are E = 1000 kPa and ν = 0.35, whereas the peak cohesion is cp = 12 kPa, the residual cohesion is cr = 3 kPa, and the softening modulus is Hs = − 30 kPa. At the left boundary, the nodes are partly fixed to avoid displacement in the horizontal direction, whereas the nodes are fully fixed at the bottom boundary. The initial stresses in the domain are generated by fixing the locations of the material points and applying gravity loads until the internal and external forces are in equilibrium. After equilibrium is reached, the material points are released and deformation takes place.

Fig. 5
figure 5

Sketch of the cutting stability problem

Figure 6a, b shows contours of the deviatoric and mean stresses, respectively. It is seen that during the movement of material points, both deviatoric and mean stress oscillations occur, although the overall failure mechanism is as expected. For Fig. 6b, the shown range was fixed between 10 and − 30 kPa because the oscillations are enormous in and around the shear band.

Fig. 6
figure 6

MPM stresses after 1.0 m of horizontal displacement at the toe. a deviatoric stress, and b mean stress

4 Oscillations in MPM

The MPM technique can be seen as an FE stepwise procedure, in which the integration points (now called material points) move together with the mesh, but keep their new positions while the mesh returns to its original position. This allows the simulation of large deformations since extreme distortion of the mesh is avoided, although the process is found to cause stress oscillations. There are a number of contributing factors causing these oscillations, which are investigated below.

4.1 Stress recovery

As is typical in many implicit FEM formulations, displacements have been used as the primary variable and stresses are back-calculated using the strain–displacement matrix and the elastic matrix (Eq. 11). During the back calculation of stresses, an oscillation occurs because the stresses inside the elements, interpolated using the element SF gradients, do not agree with the analytical stresses except at the superconvergent positions [7, 19, 35]. This problem is not observed in problems where the analytical stress is uniform across the element, e.g. as in a 1D bar. Figure 7 illustrates the radial stress inside a linear or quadratic axisymmetric element. It is seen that the computed stress distribution across the linear element (σL) is different from that across the quadratic element (σQ), and that both are different from the analytical stress (σA). However, the linear and quadratic stresses (σL and σQ, respectively) match the analytical solution exactly at the Gauss point locations. This means that, depending on the position of the material point, the recovered stresses can be either higher or lower than the analytical stresses, as illustrated in Fig. 4.

Fig. 7
figure 7

Radial stress inside an axisymmetric element

Figure 8 shows the analytical radial stress distribution and the stress recovered using MPM (or FEM) at any stress recovery position for the first load step in the axisymmetric benchmark. It is evident that the exact solution is near the centre of the elements, and recovering stresses at any other position will cause oscillations. It can also be seen that there will be a large oscillation whenever a material point crosses an element boundary, since the radial stress is discontinuous across inter-element boundaries.

Fig. 8
figure 8

Analytical radial stress and stresses recovered using MPM in the axisymmetric benchmark

4.2 Nodal integration using SF gradients

The nodal integrations of Fint and K are performed using SF gradients and the material point positions. However, considering that the SF gradients used in MPM are bi-linear (linear elements) and discontinuous, and that the material point positions change each time step, the resulting nodal values are inaccurate, especially if material points cross element boundaries. Next, a description of the SF gradients in MPM and the consequences of using them are presented.

4.2.1 2D bi-linear shape functions

Figure 9 shows the SF (Fig. 9b) and the horizontal and vertical SF gradients (Fig. 9c, d) of node 1 of a 4-node square element (Fig. 9a). It is noticed that the SF gradient is a maximum at the node, constant in the direction associated with the SF gradient, and decreases down to zero in the orthogonal direction. When a material point crosses an element boundary, the combination of the two element SFs must be considered.

Fig. 9
figure 9

a Element local numbering, b regular SF associated with node 1, c horizontal SF gradient associated with node 1, and d vertical SF gradient associated with node 1. Ni is the shape function for node i, and ξ and η are local coordinates

In Fig. 10, two elements are shown: E1 and E2 (Fig. 10a). The SFs and SF gradients in both directions of node 5 are shown in Fig. 10b–d, respectively. Figure 10b shows that the SFs are continuous between elements, while Fig. 10d shows that the vertical SF gradient is continuous between elements in the horizontal direction and constant in the vertical direction. On the other hand, Fig. 10c shows that the horizontal SF gradients at the inter-element boundary are discontinuous, and that they decrease in the vertical direction.

Fig. 10
figure 10

a Connected elements E1 and E2, b regular SFs for node 5, c SF gradients in the horizontal direction, and d SF gradients in the vertical direction. In this figure, the superscript and subscript refer to the node and element numbering, respectively

4.2.2 Integration of the internal forces Fint and stiffness K

Using SF gradients in the integration of any variable (i.e. Fint and K) results in an inadequate nodal distribution, whereas, if regular SFs are used, the nodal distribution is smoother (M and Fext). Moreover, two differences should be noticed between the integration of Fint and K. The first is that, to integrate Fint, the strain–displacement matrix (B) is used once (Eq. 7), whereas the element stiffness is computed using both B and its transpose BT (Eq. 5). The second is that to integrate Fint, the stresses of the material points are used, whereas to integrate K the elastic properties of the material points are used. The significance of this is that the elastic properties are constant throughout the analysis, whereas the material point stresses change during the analysis, causing possible accumulation of errors.

As an example of the inaccuracies caused by using SF gradients, the vertical and horizontal nodal internal force distributions (\( \text {F}_{\text {x}}^{\text {int}} \) and \( \text {F}_{\text {y}}^{\text {int}} \)) and the diagonal entries of the stiffness matrix (Eq. 5) corresponding to the vertical and horizontal degrees of freedom (Kx and Ky) using two different material point distributions, are computed for nodes 1–5 of the plane strain finite element mesh shown in Fig. 11. In both cases the material points are equally distributed inside the elements; in the first case (Fig. 11a) the material points are located inside each element, whereas in the second case (Fig. 11b) the material points have moved and some are located at the inter-element boundaries. After the movement, the material points are still located inside their original element, except for material points a-d which have crossed the boundary by an infinitesimal distance. Stress components of σx = σy = − 1.0 MPa and σxy = 0, a Young’s modulus of E = 1.0 kPa and a Poisson’s ratio of ν = 0 for each material point have been considered, while the distance between the nodes is 1 m and the material point weights are equal to 1.

Fig. 11
figure 11

Investigation of internal forces and stiffness calculation using a material points inside elements, and b displaced material points where some material points (e.g. a–d) have crossed the inter-element boundaries. Nodal force distribution c before boundary crossing and d after boundary crossing, and stiffness distribution e before boundary crossing and f after boundary crossing

In Fig. 11c, d, the vertical internal force is equal to zero in both cases. The force is unchanged because the horizontal displacement of the material points does not affect the values of the vertical SF gradients, and equals zero because the internal vertical forces on both sides of the nodes are the same but with an opposite sign. However, the distribution of the horizontal internal force is highly inaccurate due to the material point crossing the element boundary and the discontinuity of the horizontal SF gradients (Fig. 11d). When integrating the nodal stiffness, the horizontal and vertical stiffnesses are initially similar (Fig. 11e). However, as the material points cross an element boundary (Fig. 11f), the inaccuracies are evident again, although they are smaller than those of the internal forces. This is because the product BBT returns positive nodal values, so avoiding the change in sign of the SF gradients.

4.3 Nodal integration of the mass M and external forces Fext using SFs

The integration of M and Fext is performed using SFs rather than SF gradients, so that discontinuities between elements do not occur. In this example, only the external forces caused by gravity are considered. Since a lumped form of the mass matrix is used, and also because of the partition of unity of SFs, any initial distribution of material points inside the elements results in the same nodal mass (or external force), as long as the distribution is symmetrical. As an example, Fig. 12 shows two different material point distributions inside an element, but the nodal mass and nodal external forces are the same in both cases.

Fig. 12
figure 12

Different symmetric material point distributions in two elements

Figure 13 shows the distribution of M for the same problem as in Fig. 11. It is clear that the movement of material points and the crossing of nodes does not cause any trouble for the nodal integration because of the continuity of the SFs. Also, since the integration of Fext is performed in a similar manner to M, the distribution would be similar to the one in Fig. 13.

Fig. 13
figure 13

Nodal mass distribution considering a initial material point distribution, and b material point distribution after horizontal movement

4.4 Plastic stress redistribution

The stress oscillation caused by the plastic stress redistribution is an extension of the oscillations explained in the previous sections. As the stresses exceeding the yield surface are integrated as a new external force computed with SF gradients, additional oscillations comparable to the Fint oscillations are introduced. Moreover, oscillating stresses could cause some points to yield spuriously, leading to an unrealistic system behaviour.

5 Improvements to reduce stress oscillations

5.1 GIMP

The generalised interpolation material point (GIMP) method [6] was proposed to reduce oscillations derived from material points crossing element boundaries. In GIMP, FE SFs are replaced by functions constructed based on the linear FE SF and a material point support domain (SD). This means that each material point has a domain over which its influence is distributed. The GIMP SF (Sip) and its gradient (∇Sip) in one dimension are computed as

$$ \text{S}_{{\text{ip}}} = \frac{1}{{\rm {V}_{\rm p} }}\int_{{\Omega_{\rm p} \cap \Omega }} {\upchi_{\rm p} \left( \text{x} \right)\text{N} _{\rm i} \left( \text{x} \right)\text{dx}} $$
(12)
$$ \nabla {\rm {S}}_{\rm ip} = \frac{1}{{\rm{V}_{\rm p} }}\int_{{\Omega_{\rm p} \cap \Omega }} {\upchi_{\rm p} \left( \text{x} \right)\nabla \text{N}_{\rm i} \left({\text{x}} \right)\text{dx}} $$
(13)

where Vp is the material point volume, Ω is the problem domain, Ωp is the material point support domain, i is the node, and χp is the characteristic function delimiting the area of influence of the material point and is given as

$$ {\upchi}_{\rm p} \left( {\text{x}} \right)\left\{ {\begin{array}{*{20}c} {1,\quad {\rm if}\,{\text{x}}\, \cap \,\Omega_{\rm p} } \\ {0,\quad \text{otherwise}} \\ \end{array} } \right. $$
(14)

The support domain is often assumed to be square, with a size of 2lp (lp = half of the material point support domain), which is obtained by dividing the element size by the number of material points. In Fig. 14, a 1D comparison between an FE SF and a GIMP SF is plotted, considering a distribution of two equally-distributed material points per element. It is seen that the GIMP SF and GIMP SF gradients are no longer exclusive to a single element and that the GIMP SF gradients are continuous between elements.

Fig. 14
figure 14

a GIMP shape function (Sip) and regular FE shape function (Ni) of node i, and b GIMP shape function gradient (∇Sip) and regular FE shape function gradient (∇Ni) for node i

The GIMP SFs in 2D and 3D are computed as products of the 1D GIMP SF in each direction; that is, \( {\rm S}_{\rm i} ({\rm x}) = {\rm S}_{\rm ip}^{1} ({\rm x}_{1} ) \cdot {\rm S}_{\rm ip}^{2} ({\rm x}_{2} ) \) in 2D and \( {\rm S}_{\rm i} ({\rm x}) = {\rm S}_{\rm ip}^{1} ({\rm x}_{1} ) \cdot {\rm S}_{\rm ip}^{2} ({\rm x}_{2} ) \cdot {\rm S}_{\rm ip}^{3} ({\rm x}_{3} ) \) in 3D, where \( {\rm S}_{\rm ip}^{\rm k} \) is the 1D GIMP SF in the k-direction. An additional advantage of including a support domain is that the material boundary is explicitly defined, and can be used to apply boundary conditions.

5.2 Modified integration weights

To reduce the problems caused by an irregular number of material points inside an element, it is here proposed to modify the material point integration weight to

$$ \text{W}^{*} = \text{W}\frac{{\text{omp}}}{{\mathrm{cmp}}} $$
(15)

where W* is the modified material point weight (dimensionless), cmp is the current number of material points in the element, and omp is the original number of material points in the element. This modified weight is used considering only structured meshes, i.e. a mesh composed of equal-sized square elements, and equal mass material points, and its use with unstructured meshes or unequal mass material points is not part of this work. This modified weight technique differs from the approach of other researchers who have modified the weights based on volumetric strain (e.g. [11]), which, while compensating for 1D deformations of the material points (compression or extension), does not reduce the problems caused by the rotation or advection of the material points. Finally, it should be noted that for four noded elements this modified weight value reduces to 4.0/cmp.

5.3 Double mapping (DM)

Integration using SF gradients is seen to work only at Gauss point locations, whereas material point integration is stable when based on SFs. Therefore, mapping to the Gauss point locations using shape functions (via the nodes) is proposed. As an example, the stiffness matrix is used. The elastic matrix is mapped to the nodes from the material points and then to the Gauss points, prior to the integration. Using FE SFs, the material point elastic matrix is mapped to the element nodes as

$$ {\mathbf{D}}_{\rm i} = \sum\limits_{\rm p=1}^{{\rm cmp}} {\rm{N}_{\rm i} ({\mathbf{x}}_{\rm p} ){\mathbf{D}}_{\rm p} } {\text{W}}^{*} $$
(16)

were Di is the elastic matrix at node i, and Dp is the elastic matrix of material point p.

At this point, the total stiffness contribution of the material points is accumulated at the nodes, and this contribution is then redistributed to the original Gauss positions as

$$ {\mathbf{D}}_{\rm g} = \sum\limits_{\rm i=1}^{\rm nn} {\rm{N}_{\rm i} ({\mathbf{x}}_{\rm g} ){\mathbf{D}}_{\rm i} } $$
(17)

were Dg is the elastic matrix at the Gauss point, Ni(xg) is the nodal SF evaluated at the Gauss points, and nn is the number of nodes of the element. By substituting Eq. 16 into Eq. 17, Dg is obtained as

$$ {\mathbf{D}}_{\rm g} = \sum\limits_{\rm i=1}^{\rm nn} {\left( {\rm{N}_{\rm i} ({\mathbf{x}}_{\rm g} )\sum\limits_{\rm p=1}^{\rm cmp} {\rm{N}_{\rm i} ({\mathbf{x}}_{\rm p} ){\mathbf{D}}_{\rm p} \rm{W}^{*}} } \right)} $$
(18)

Finally, combining Eqs. 18 and 5 (in FEM form) results in the nodal stiffness:

$$ {\mathbf{K}} = \sum\limits_{\rm g = 1}^{\rm ngauss} {{\mathbf{B}}^{\rm T} ({\mathbf{x}}_{\rm g} )\left[ {\sum\limits_{\rm i = 1}^{\rm nn} {\left( {\text{N}_{\rm i} ({\mathbf{x}}_{\rm g} )\sum\limits_{\rm p = 1}^{\rm cmp} {\text{N}_{\rm i} ({\mathbf{x}}_{\rm p} ){\mathbf{D}}_{\rm p} \text{W}^{*}} } \right)} } \right]} {\mathbf{ B}}({\mathbf{x}}_{\rm g} )\,\left| {\mathbf{J}} \right| \text{W}^{\rm FE} $$
(19)

where ngauss is the number of Gauss points in the element and WFE is the weight associated with Gauss point g (as in FEM).

5.4 DM-GIMP (DM-G)

As mentioned in Sect. 5.1, the GIMP method was created to avoid problems caused by the use of discontinuous FE SF gradients. However, a simple example in calculating the stiffness reveals a key problem. Figure 15 shows the same problem as in Fig. 11, but in this case the stiffness is computed using regular SFs and GIMP SF gradients.

Fig. 15
figure 15

Nodal stiffness computed using regular SFs and GIMP SFs considering a initial material point positions, and b after displacement of material points

As shown in Fig. 15a, for the initial configuration of material points, the nodal stiffness distributions remain the same for both techniques, because at this position the MPM and GIMP SFs and SF gradients are the same. With the movement of the material points (Fig. 15b), the nodal stiffness computed with GIMP decreases, as the GIMP SF gradients drop to zero at the inter-element boundaries (as shown in Fig. 14). In addition, the contribution of material points in neighbouring elements is not capable of compensating for this drop. This would be the case for other methods, including DDMP and CDPI, that have this same characteristic.

To overcome the problems of using GIMP to integrate nodal stiffness, it has been proposed that the double mapping approach be used alongside the local GIMP SFs [10]. The local GIMP SFs (Sip*) are similarly created as regular GIMP SFs, but the influence of the material point support domain affects only the nodal FE SF in a single element rather than contributing to all contiguous elements. In Fig. 16, an illustration of the development of regular and local GIMP shape functions of a node is shown.

Fig. 16
figure 16

a Nodal FE SF and interaction with the material point support domain, b original GIMP SF (Sip), c nodal FE SF and interaction with the material point support domain in a single element, and d local GIMP SF (Sip*)

In a similar manner to the double mapping technique using regular SFs, by using local GIMP SFs it is possible to distribute the elastic matrix to the nodes of an element and afterwards to the Gauss positions. The element stiffness matrix is then constructed as

$$ {\mathbf{K}}_{\rm el} = \sum\limits_{\rm g = 1}^{\rm ngauss} {{\mathbf{B}^{\text{T}}}({\mathbf{x}}_{\rm g} ) \left[ {\sum\limits_{\rm i = 1}^{\rm nn} {\left( {{\text{N}}_{\rm i} ({\mathbf{x}}_{\rm g} )\sum\limits_{\rm p = 1}^{\rm smp} {{\rm S}_{\rm ip*} ({\mathbf{x}}_{\rm p} ){\mathbf{D}}_{\rm p} {\text{W}}} } \right)} } \right]} {\mathbf{B}}({\mathbf{x}}_{\rm g} )\left| {\mathbf{J}} \right|{\text{W}}^{\text{FE}} $$
(20)

where Sip* is the local GIMP SF of node i evaluated at the material point position, and smp is the number of material points with a support domain inside the element. The algorithm to compute the stiffness matrix using DM and DM-G is given in “Appendix C”, together with a study of the computational performance.

5.5 Composite material point method (CMPM)

The composite material point method (CMPM) [14] is a modification of the composite finite element method (CFEM), proposed by Sadeghirad & Astaneh [23], in which the support domain used to recover the stresses is extended, i.e. a patch, improving the accuracy of the stresses computed. New shape functions enveloping all neighbouring elements of the element containing the material point are developed using Lagrange interpolation. In Fig. 17, the C2 shape functions are shown in 1D, in which each shape function N2 envelopes the local element plus the neighbouring elements.

Fig. 17
figure 17

CMPM shape functions with C2 continuity for a central local element

Using Lagrange interpolation, each of the N2 shape functions is computed as

$$ {\text{N}}_{\rm n}^{2} (\upxi ) = \prod\limits_{{\begin{array}{*{20}c} {{\rm m} = 1} \\ {{\rm m} \ne {\rm j}} \\ \end{array} }}^{\rm{n}} {\frac{{\upxi - \upxi_{\rm m} }}{{\upxi_{\rm j} - \upxi_{\rm m} }}} $$
(21)

where ξ is the nodal local coordinate in the extended domain, n is the number of nodes, ξj is the local coordinate of the N2i shape function, and ξm is the local coordinate of the remaining nodes. Solving Eq. 21 for each node, the CMPM shape functions for an element with two neighbours are

$$ \left[ {\begin{array}{*{20}c} {{\text{N}}_{\rm i}^{2} } \\ {{\text{N}}_{\rm j}^{2} } \\ {{\text{N}}_{\rm k}^{2} } \\ {{\text{N}}_{\rm l}^{2} } \\ \end{array} } \right] = \frac{1}{16}\left[ {\begin{array}{*{20}c} { - \frac{{\upxi^{3} - 3\upxi^{2} - \upxi + 3}}{3}} \\ {\upxi^{3} - \upxi^{2} - 9\upxi + 9} \\ { - \upxi^{3} - \upxi^{2} + 9\upxi + 9} \\ {\frac{{\upxi^{3} + 3\upxi^{2} - \upxi - 3}}{3}} \\ \end{array} } \right] $$
(22)

If the material point is located at the boundary, as in Fig. 18, the CMPM shape functions are then

Fig. 18
figure 18

CMPM shape function with C1 continuity for a boundary local element

$$ \left[ {\begin{array}{*{20}c} {{\text{N}}_{\rm i}^{1} } \\ {{\text{N}}_{\rm j}^{1} } \\ {{\text{N}}_{\rm k}^{1} } \\ \end{array} } \right] = \frac{1}{4}\left[ {\begin{array}{*{20}c} {\frac{{\upxi^{2} - 4\upxi + 3}}{2}} \\ { - \upxi^{2} + 2\upxi + 3} \\ {\frac{{\upxi^{2} + 4\upxi + 3}}{2}} \\ \end{array} } \right] $$
(23)

It is important to mention that although the CMPM SFs extend beyond the limits of an element, the range of the functions remains between − 1 ≤ ξ ≤ 1. Also, this solution can only be used with a structured mesh. To extend the solution to a 2D domain, the new SFs are the product of the SFs in each direction. Finally, trial stresses using CMPM are computed as

$$ \Delta {\varvec{\upsigma}}_{\rm p} = {\mathbf{D}}_{\rm p} \nabla {\mathbf{N}}^{2} (\bf{x}_{\rm p} )\Delta {\overline{\mathbf{u}}}^{\rm ext} $$
(24)

where \( \nabla {\mathbf{N}}^{2} \) is the matrix of the CMPM SF gradients, and \( {\overline{\mathbf{u}}}^{\rm ext} \) is the vector of nodal displacements in the extended domain.

6 Testing of proposed techniques

Since the novel techniques presented in this paper are designed for the integration of the stiffness, the testing performed in this section is focused on the stiffness matrix. To compare the stiffness using each technique, the stiffness magnitude is used, and this is computed as

$$ {\text{K}}_{\rm mag} = \sqrt {{\text{K}}_{\rm x}^{2} + {\text{K}}_{\rm y}^{2} } $$
(25)

The test consists of computing the stiffness of an infinite space made up of square elements that are full of equally spaced material points, four per element, as shown in Fig. 19a. The infinite domain is then rotated 20° degrees around its centre (C), as in Fig. 19b. The elastic properties of the material are E = 1000 kN/m2 and ν = 0.30. Figure 20 presents the stiffness computed using regular MPM and DM and the results are compared with the FEM stiffness, computed using four Gauss integration points (Kmag = 3263.57 kN/m2). In addition, the stiffness using the modified integration weights (W*) and Gauss mapping (GM) separately (the two components of DM) are shown to highlight their comparative effects. Since the material points remain equally distributed after rotation, the stiffness of the domain should not change (i.e. be mesh independent). Finally, a further test is performed using two materials, by considering the properties of material points below line A–A′ to be E = 1500 kN/m2 and ν = 0.25.

Fig. 19
figure 19

Infinite domain full of equally spaced material points a before and b after rotation

Fig. 20
figure 20

Stiffness distribution considering rotation of the domain, using one and two materials, computed with FEM, MPM, W*, GM and DM

Theoretically, the stiffness of the domain should be independent of the rotation of the field of material points, and should be equal to the FEM stiffness before rotation (for the case with one material). As can be observed in Fig. 20, the stiffness obtained using regular MPM is not accurate and improvements are needed. After including the modified integration weight (W*), which accounts for a varying amount of material points per element, the stiffness distribution oscillates, although with a different spatial pattern than in regular MPM. Using GM the oscillation also persists, as the number of material points per cell is still incorrect, but it is less than in regular MPM because it helps to reduce errors due to material point position. It is noted that including W* or GM separately is unable to fix the stiffness oscillation, and that the spatial distribution is almost opposite in pattern, i.e. where high values occur in GM, low values occur in W*, and vice versa. Using DM, i.e. combining GM and W*, the stiffness oscillation is reduced significantly, as it accounts for both the material point position and the number of material points per element. Moreover, the transition is smooth over the elements when two materials are used.

In Fig. 21, the tests from Fig. 19 have been performed using GIMP and DM-G. As can be observed, the stiffness obtained using GIMP integration is significantly more inaccurate when compared to MPM integration, as it both oscillates and reduces in magnitude. Note that the results for GIMP are shown using a different contour range; this is because using GIMP SF gradients the stiffness reduces significantly, and it is necessary to change the contour range to visualize the stiffness distribution. On the other hand, using DM-G the stiffness oscillation is reduced further than using DM. This is because the W* approach, which only allows the impact of a discrete number of points in each element to be considered, is not being used. Utilising DM-G allows a gradual transition of mass from one element to another. Moreover, using DM-G, the transitions between materials appears sharper than in regular FEM due to an increase in the accuracy of the material stiffness distribution between the interface nodes.

Fig. 21
figure 21

Stiffness distribution considering rotation of the domain, using one and two materials, computed with GIMP and DM-G

In Table 1, the difference between the stiffness obtained using each technique is shown relative to the nodal stiffness magnitude of the real FEM stiffness. In this comparison, only the homogenous material is considered. As can be observed, regular MPM and GIMP give large stiffness oscillations relative to the FEM stiffness, but in the case of GIMP the stiffness only decreases (as observed also in Fig. 15b). Using only the modified integration weight the stiffness oscillation increases, whereas using the GM stiffness the oscillation decreases (compared to regular MPM), but not significantly. Using DM and DM-G, the dependence between the mesh and the position of the material points is reduced, and the nodal stiffness oscillations reduce significantly, especially using DM-G where the variation is smaller than 1%.

Table 1 Relative differences in stiffness magnitude between FEM and other methods for homogeneous material

7 Benchmark problems including improvements

The benchmark problems introduced in Sect. 3 are now re-analysed using the improvements described in Sect. 5.

7.1 Axisymmetric benchmark

Figure 8 showed the stress oscillation caused by using regular SFs to recover stresses in the cylinder wall. In Fig. 22, GIMP and CMPM are compared against regular MPM for a single (i.e. the first) load step. As can be seen, the GIMP oscillation is the same as MPM close to the centre of the element, because there the SF gradients are the same for both techniques. However, stresses are continuous between the elements, due to the continuous gradients of GIMP. On the other hand, using CMPM the stresses remain discontinuous between elements, but the reduction of oscillation when compared to the analytical solution is significant.

Fig. 22
figure 22

Analytical, MPM, GIMP and CMPM radial stresses through the cylinder wall

In Fig. 23, the evolution of the incremental deviatoric and mean stresses of material point mp1 (over 25 load steps) are shown, comparing the stresses obtained using normal MPM (as shown in Fig. 4), DM and DM-CMPM (DM-C). As can be seen, there is a significant increase in the accuracy of the stresses recovered using the DM technique, due to the improved stress recovery and stiffness integration. Moreover, if CMPM is included in the analysis, the stress oscillation reduces still further to give stresses close to the analytical solution.

Fig. 23
figure 23

a Deviatoric, and b mean stress recovered from mp1 at different positions using DM and DM-C

Next, the same example using DM-G and DM-GIMP-CMPM (DM-GC) is studied. Using DM-G, the stiffness is computed with the DM-G method and the stresses are recovered using GIMP SFs. Using DM-GC, the DM-G method is again used to compute the stiffness, but the stresses are now recovered using CMPM rather than GIMP. In addition, since the inner wall boundary can be determined accurately using the material point support domain (as mentioned in Sect. 5.1), the distance between the cylinder axis and the inner boundary (s) is ri = rmp1 − lp as in Fig. 24. Then, the applied pressure Δps is distributed linearly to the nodes of the boundary element based on proximity.

Fig. 24
figure 24

Internal boundary location at a given step using the GIMP support domain

In Fig. 25 it can be seen that, using DM-G and DM-GC, the results approximate the analytical solution even better than DM and DM-C, respectively. This is because the stiffness computed using DM-G is closer to the FEM stiffness and also due to the accurate distribution of the external pressure considering the accurate location of the internal boundary.

Fig. 25
figure 25

a Deviatoric, and b mean stress recovered from mp1 at different positions using DM-G and DM-GC

7.2 Vertical cut benchmark

Figure 26 shows the elastic stiffness magnitude in the vertical cut benchmark problem, using regular MPM and DM-GC. As can be observed in Fig. 26a–d, using regular MPM large stiffness oscillations occur, from the beginning (small deformations) up until the end (large deformations) of the analysis. In contrast, using DM-GC (Fig. 26e–h) the stiffness oscillation reduces significantly, although some small oscillation can be observed in the shear band and along the edge of the domain.

Fig. 26
figure 26

Stiffness magnitude in the body using regular MPM (ad) and DM-GC (eh) after a horizontal toe displacement of a & e 0.10 m, b & f 0.30 m, c & g 0.50 m, and d & h 1.0 m

In Fig. 27 the nodal Fint magnitude is shown, once again comparing regular MPM and DM-GC. Analogous to Eq. 25, the magnitude of the nodal internal force is computed as

Fig. 27
figure 27

Fint magnitude in the body using regular MPM (ad) and DM-GC (eh) after a horizontal toe displacement of a & e 0.10 m, b & f 0.30 m, c & g 0.50 m, and d & h 1.0 m

$$ {\text{F}}_{\rm mag}^{\text{int}} = \sqrt {{\text{F}}_{\rm x}^{\text{int}} + {\text{F}}_{\rm y}^{\text{int}} } $$
(26)

It is seen that if GIMP and CMPM are included in the solution, a large reduction in the oscillations of Fint is obtained. Using GIMP, the oscillation caused by the material points crossing cell boundaries is reduced. Furthermore, by including CMPM, the recovered stresses are improved, reducing the oscillation caused by the stress recovery position.

Figure 28 shows the deviatoric stress contours from both analyses. It is evident that, after reducing the oscillation in the stiffness and the internal nodal forces by using DM-GC, the deviatoric stress distribution in the domain is significantly smoother. Similarly, Fig. 29 shows the comparison of mean stresses during the analyses, demonstrating that the mean stress oscillations are reduced with DM-GC. In this case, as in the axisymmetric benchmark, some oscillation of the mean stresses still occurs, but this is thought to be due to incompressibility during plastic yielding. For methods to reduce locking behaviour in MPM using low order shape functions the reader is referred to Coombs et al. [13].

Fig. 28
figure 28

Deviatoric stresses in the body using regular MPM (ad) and DM-GC (eh) after a horizontal toe displacement of a & e 0.10 m, b & f 0.30 m, c & g 0.50 m, and d & h 1.0 m

Fig. 29
figure 29

Mean stress in the body using regular MPM (ad) and DM-GC (eh) after a horizontal toe displacement of a & e 0.10 m, b & f 0.30 m, c & g 0.50 m, and d & h 1.0 m

As can be seen from previous figures, the oscillation of material point stresses, nodal stiffness and internal nodal forces are reduced significantly using DM-GC. Plots for the nodal mass and external nodal forces are not included in the results, since the oscillation for both MPM and DM-GC is small.

Finally, p-q curves have been plotted for 3 material points at key positions in the soil body. Figure 30 shows the location of the points chosen; material point A is located at the toe of the cutting, material point B is found in the middle of the soil layer in the shear band, and material point C is in the centre of the sliding block.

Fig. 30
figure 30

Material points selected to plot stresses in p-q space

Figure 31 shows the p-q stress paths at the 3 points, as computed using both techniques, as well as the initial position of the yield surface for a Von Mises material (FVM). It is seen that, for material point A, both techniques give reasonable results; this is because the bottom of the domain is fully fixed, so that the material point does not move much throughout the analysis. For material points B and C, if regular MPM is used (Fig. 31b, c), the oscillations are extreme. It is evident that were a constitutive model different from Von Mises to be used, in which plasticity does not depend only on the deviatoric stress, regular MPM would not perform well. On the other hand, using DM-GC, the stress path appears to be well-behaved (Fig. 31e, f), with only some small oscillations.

Based on the results obtained with the benchmarks, Table 2 summarises the advantages and disadvantages of each of the methods studied in this paper.

Fig. 31
figure 31

p-q curves using MPM (ac), and DM-GC (df)

Table 2 Summary of advantages and disadvantages of the methods studied

8 Conclusion

MPM is a technique that is able to handle problems involving large deformations, since material properties and the body geometry are no longer attached to a mesh. Unfortunately, the use of regular bi-linear finite element shape functions causes significant oscillations when integrating internal forces and stiffness, decreasing the accuracy of the simulations. Moreover, the grid crossing of a material point between elements and poor stress recovery create additional oscillations. A series of improvements, both novel and building upon the work of others, have been studied and combined to obtain an almost oscillation free version of MPM. It has been shown that GIMP reduces the errors caused by grid crossing, but integration using SF gradients, shown via an example using the stiffness matrix, is inaccurate due to the use of SF gradients that drop to zero at the inter-element boundaries. Using GIMP together with a double mapping integration procedure significantly reduces the stiffness matrix oscillation. Also, it has been proven that CMPM increases the accuracy of the stresses computed at the material points compared to typical MPM and GIMP. These techniques combined (termed DM-GC) increases considerably the accuracy of the MPM simulations. Moreover, since it has been observed that DM performs well when using typical finite element shape functions, and better still when using GIMP shape functions, the combination of DM with other C1-continuous methods, such as CPDI, B-spline MPM or DDMP, is a possibility which can be studied in the future. The DM and DM-G methods have the benefit of being able to be implemented implicitly or explicitly with typical elasto-plastic constitutive models.