1 Introduction

The response of granular media to applied shear deformation or shear stress is controlled by a interconnected network of load-bearing contacts (usually referred as the strong contacts network) [1]. Based on this observation, [1, 2] proposed a partition of the contact network into strong/weak sub-networks, based on whether the magnitude of the contact force is above/below the mean force in the system. Developing upon this simple approach to partitioning authors have argued that the overall contact network is formed by ‘primary’ load-carrying contacts, and ‘secondary’ contacts that mostly provide lateral support [1, 3,4,5,6,7]. Various studies have found that the distribution of contact forces follows a power law with few contacts carrying high forces, and most contacts carrying relatively low forces [1, 6, 8,9,10,11], and this distribution is independent of pressure, sample size and particle size distribution [1, 12]. However, [13] found that this approach to partitioning is not mechanically robust, and using the mean force to differentiate strong and weak contacts is not always appropriate.

Recent studies have used graph theory, representing particles and contacts as nodes and edges [14], to propose partitioning methods based on the topology of the contacts. For instance, [15,16,17] used persistent homology to study tapped granular media, the compression of soft granular matter, and the stick–slip events in granular media (respectively). Community detection and clustering have been used to study granular materials in the context of sound transmission [18], deformation localisation [19, 20], kinematics [21] among many others.

Flow networks (i.e. maximum flow and minimum-cut algorithms) have also been used to study the mechanical behaviour of granular media. [22, 23] applied the MFA to biaxially/triaxially loaded granular media, and found that the set of edges forming the bottleneck for force transmission in the system is located in the region of strain localisation (i.e., shear bands). Similarly, [24] developed a family of network flow models and used the MFA to find the percolating sub-network of contacts that transmits the highest units of force at least dissipated energy. These studies used expressions based on the local topology (3-cycle) and/or the magnitude of the relative displacement of the particles involved in the contact (edge) to set the capacity and/or cost of flow through each edge; effectively using the maximum flow as a relative measure of the force that could be transmitted through the contact network. Here we propose an algorithm that extends this capability, using the MFA on a directed network where the capacity of the edges is equal to the magnitude of the contact force in the direction of load transfer.

Other authors have found that the mechanical behavior of granular systems is controlled by the collective contribution of force chains, i.e. sets of particles that form ‘column-like’ structures that carry load [3, 5]. Methods used to identify force chains include ‘geometric-mechanic’ methods, which calculate the major principal stress orientation of the set of particles which is under above-average stress, and then defines force chains as the groups of particles which align with the principal stress orientation [25, 26]. Other ‘similarity’ methods use community detection, a clustering technique capable of finding chain-like structures in graphs [27]. Having identified individual force chains, prior researchers have studied force chain buckling [10], quantified their contribution to deviatoric stress [6], and tracked their temporal evolution [28,29,30,31,32].We propose an algorithm based on the widest-path problem to identify individual force chains from \(G_{perc}\) that collectively capture the force transmission across the granular media, and ultimately its mechanical response.

In this contribution we apply our developed algorithms to study the behaviour of granular media in contact with a rigid ribbed interface that applies a shear deformation in the direction of the initial major principal stress. This geometry and loading scenario has been used to measure soil properties in the laboratory [33] and for in-situ characterisation (using textured cone penetrometer sleeves) [34], and to study the seismic response of granular media inside gouges [35, 36]. These studies have found that the response of the interaction is controlled by the stress conditions, the density of the sample, and the relationship between particle size and the size of the ribs in the rigid body. Based on these observations, the dataset was developed using DEM to test the influence of different stress conditions and with different grain sizes.

2 DEM model

Fig. 1
figure 1

Sample preparation. a Random cubic sample with reduced PSD. b Random cubic sample with target PSD. c Tiled sample. d Final sample with ribbed wall. Example shown for \(PSD_{mid}\) and \(\mu _p = 0.25\)

The dataset considered in this study was developed by simulating a ribbed interface moving against a granular material at a constant velocity. The texture morphology illustrated in Fig. 1d was developed following work by [37,38,39,40], In the current context, the role of the data generated are to illustrate the new methods developed herein.

The DEM models were built using the molecular dynamics code LAMMPS [41]. The simplified Hertz-Mindlin contact model was used [42], the particle shear modulus \(G = {29}\,{\hbox {GPa}}\), the Poisson’s ratio \(\nu =0.12\), and the particle density \(\rho = {2600}\,{\hbox {kg}}\,\hbox {m}^{-3}\), are consistent with the properties of quartz. The use of spherical particles enabled large systems to be studied and minimize boundary effects. We acknowledge that excessive rotation of spheres does lead to a lower shear strength in comparison with sands. However, simulations using spheres capture key aspects of soil behaviour, e.g. the state dependency of strength and dilation, phase transformation, etc., as discussed in [43, 44].

To showcase the developed algorithms a parametric study was designed to consider a wide range of stress conditions and particle sizes to assess their influence in the response of the system. A total of 27 (\(3^3\)) simulations were performed, combining three particle size distributions, three vertical stresses (\(\sigma '_v: {50, 100, 150}\, \hbox {kPa}\)), and three particle friction coefficients during preparation (\(\mu _p: {0.01, 0.1, 0.25}\)). The preparation particle friction coefficient (\(\mu _p\)) determined the density and initial anisotropy of the samples. The particle size distributions (PSD) were scaled (scaling factor \(k={1,2,4}\)) from the PSD of Toyoura sand, a fine rounded sand with a mean particle size \(d_{50}= {0.22}\,\hbox {mm}\), coefficient of curvature \(C_c = 0.96\) and coefficient of uniformity \(C_u = 1.39\) [45]. The resulting PSD’s, referred herein as \(PSD_{std}\), \(PSD_{mid}\) and \(PSD_{lrg}\), have median particle diameters (\(d_{50}\)) of 0.22, 0.44, and \({0.88}\,\hbox {mm}\) respectively.

The sample creation process is illustrated in Fig. 1. The width of the model (\(W_m\)) was set to: \(W_m = h_r + 50 \cdot d_{50}\), while the depth was set to \(D_m = 15 \cdot d_{50}\), where \(d_{50}\) is the median particle diameter in the samples. The sample size (\(H_m \times W_m \times D_m\)) was achieved with copies of a random cubic sample of side \(15 \times d_{50}\) (see Fig. 1c). Random sphere packings yield relatively loose samples, therefore, an extra densification step was included to reduce the void ratio of the initial cubic sample, and with it, reduce the computational cost required to reach the desired confinement stress. In the first step, the spherical particles were placed randomly to create a cubic sample with a void ratio \(e = 1.0\) (see Fig. 1a). In this initial stage, the diameter of each particle was sampled from the target PSD, and reduced by a factor of 1.2 prior to its placement. In the second step, a simulation was set up to incrementally increase the diameter of the particles in the cubic sample until they equalled the original diameters sampled from the PSD (see Fig. 1b). After this step, the cubic sample had a new void ratio \(e = 0.67\). In the third step, copies of the cubic sample were tiled to reach the desired sample dimensions (see Fig. 1c). Lastly, the sample and the ribbed wall were merged, and any particles overlapping or penetrating the ribbed interface (described below) were removed (see Fig. 1d). A summary of the dimensions of the DEM models are shown in Table 1 where the values of \(H_m\) correspond to the densest scenarios (\(\mu _p=0.01\), \(\sigma '_v= {150}\,\hbox {kPa}\)).

Table 1 Particle size, domain size, number of particles and inertial numbers of the simulations for the different PSD tested

Planar periodic boundaries were inserted at the top and bottom of the sample (i.e. at the minimum and maximum z values) and at the front and back of the sample (i.e. at the minimum and maximum y values). The left boundary wall (parallel to the yz plane at \(x=0\)) was a planar rigid wall. A rigid, textured interface was inserted at the right hand side of the sample (i.e. the maximum values of x). The ribbed interface comprised wall particles with a diameter \(d_w = d_{min}/2\), where \(d_{min}\) is the minimum particle diameter the simulated sample. These particles were placed on a square grid with a centre-to-centre spacing of \(d_w\) and there were no bonds or interactions between them. The heights of the trapezoidal ribs (\(h_r = {5}\,\hbox {mm}\) ) correspond to about 23, 11 and 6 times \(d_{50}\) for each PSD tested; these values are sufficient to generate texture clogging and induce particle-to-particle shear response [46]. The ribbed geometry follows [34, 46], comprising alternating trapezoidal ribs with a height \(h_r = {5}\,\hbox {mm}\) and flat sections, with a length of \({9}\,\hbox {mm}\) each. The wall includes two rib-flat sections, for a height of \({36}\,\hbox {mm}\), plus an additional flat region (added to account for sample compression during confinement) of \({4}\,\hbox {mm}\) on top for a total sample height \(H_m = {40}\,\hbox {mm}\). The number of wall and sample particles for the different PSDs tested are shown in Table 1.

After sample preparation, the models were allowed to reach equilibrium to remove any initial overlap between particles, after which residual stresses were negligible. Then, a servo-control mechanism was used to confine the sample particles by adjusting the position of the top periodic boundary (parallel to the z-direction) until the target vertical effective stress value (\(\sigma '_v\)) was reached. The dimensions of the samples along the x- and y-directions remained unchanged during the simulation—therefore, the horizontal (x-axis) stress in the samples is consistent with \(K_0\) stress conditions (see Fig. 1d). Gravity was not considered in the simulations. The displacement of the vertical boundary did not affect the wall particles that make up the textured rigid wall. The vertical strains induced during this stress-controlled confinement, \(\varepsilon _{zz}\), ranged between \(4.53\%\) (for \(PSD_{std}\), \(\mu _p = 0.25\), \(\sigma '_v = {50}\,\hbox {kPa}\)), and \(13.48\%\) (for \(PSD_{mid}\), \(\mu _p = 0.01\), \(\sigma '_v = {150}\,\hbox {kPa}\)).

Once the target \(\sigma '_v\) was reached, the particle friction coefficient was changed to \(\mu _s = 0.25\), and kept constant during wall movement. To simulate interface shear, the ribbed interface was displaced vertically (i.e. in the z-direction, see Fig. 3a) at a velocity \(V_z = {25}\,\hbox {mm} \hbox {s}^{-1}\). During the interface shear the wall particles behaved as a rigid body moving at constant velocity. The chosen velocity is similar to the penetration speed of cone penetrometers [37]. Following [47], the inertial number (I) was calculated as shown in Eq. 1.

$$\begin{aligned} I = \dot{\gamma } d_{50}\sqrt{\frac{\rho }{P}} \end{aligned}$$
(1)

where \(\dot{\gamma }\) is the strain rate, \(d_{50}\) is the median particle diameter of the material, \(\rho \) is the particle density (\({2600}\,\hbox {kg}\, \hbox {m}^{-3}\)), and P is the stress level in the material, taken as \(\sigma '_v\). The strain rate is calculated according to [48, 49] as: \(\dot{\gamma } = V_z / L_p\); where \(L_p\) is the width of the shear zone developed adjacent to the textured wall. The shear zone thickness was calculated using the bi-linear relationship between \(L_p\) (normalized with by \(d_{50}\)) and the \(d_{50}\) defined by [50]. Following that relationship together with observations of the extent of the shear zone in the simulations, conservative values of \(L_p = 9, 7.5, 4 \times d_{50}\) were used for \(PSD_{std}\), \(PSD_{mid}\) and \(PSD_{lrg}\) respectively. Obtained values of I range between \({3.7\times 10^{-4}}\) (for \(PSD_{std}\) and \(\sigma '_v = {150}\,\hbox {kPa}\)) and \({1.4\times 10^{-3}}\) (for \(PSD_{lrg}\) and \(\sigma '_v = {50}\,\hbox {kPa}\)). The total displacement was \({36}\,\hbox {mm}\), equal to the total height of the ribbed wall.

3 Stress-deformation response

The average stress in the granular assembly during shear deformation is calculated from the contact forces and particle velocities according to [51] as:

$$\begin{aligned} \sigma '_{ij} = \frac{1}{V} \sum _{c=1}^{N_c} f_i l_j + \frac{1}{V} \sum _{p=1}^{N_p} m_p v_i v_j \end{aligned}$$
(2)

where V is the sample volume (excluding the volume of the textured wall), \(N_c\), \(N_p\) are the total number of contacts and particles (respectively), \(f_i\) is the ith component of the contact force vector, \(l_j\) is the jth component of the branch vector that joints the centers of the particles forming contact c, and \(v_i\) is the ith component of the particle velocity. According to CPT interface friction simulations from [49], quasi-static conditions are expected or \(I<{1\times 10^{-2}}\), as was the case here, however the dynamic component of the stress tensor (Eq. 2) was included in the calculations as a conservative measure. The magnitude of the dynamic component of stress remained \(< 5\%\) of the static component.

The stress anisotropy in the samples is quantified with the lateral earth pressure coefficient \(K_0 = \sigma '_{xx} / \sigma '_{zz}\), where \(\sigma '_{kk}\) is the normal component of stress in the direction of the k axis, calculated from Eq. 2. The inter-particle friction coefficient during initial compression (\(\mu _p\)) determined both the void ratio and initial stress anisotropy of the samples, with higher values of \(\mu _p\) promoting higher void ratios (lower packing density)—ranging between 0.35 and 0.40, and increased stress anisotropy following the initial sample consolidation, with \(K_0\) values between 0.65 and 0.91. The average values of e and \(K_0\) for different values of \(\mu _p\) are summarised in Table 2.

Table 2 Mean void ratio e and lateral earth pressure coefficient \(K_o\) for different values of \(\mu _p\)
Fig. 2
figure 2

Mobilised stress ratio \(q_{eq}/p'\) as a function of wall displacement for the three particle size distributions considered. The stress data were calculated considering the sample particles (i.e. excluding the wall particles)

The overall stress response during shear deformation, shown in Fig. 2, is quantified in terms of the mobilised stress ratio \(q_{eq}/p'\), where the mean effective stress \(p'\) is calculated as \(p' = \frac{1}{3} tr(\sigma ') = \frac{1}{3} \sum \sigma '_{ii}\) and the equivalent deviatoric stress is calculated as \(q_{eq} = \sqrt{3 J_2}\), where \(J_2\) is the second invariant of the deviatoric stress tensor \(\sigma '_{dev} = \sigma ' - p'I\), calculated as \(J_2 = \frac{1}{3} tr((\sigma '_{dev})^2)\).

The particle friction coefficient during preparation \(\mu _p\), is the variable with the biggest influence in the stress mobilisation in the system, as it controls the density of the material (in terms of e), and the stress in the x-direction \(\sigma '_{xx}\) (and hence \(K_0\)). Higher mobilised stress ratios (\(q_{eq}/p'\)) were obtained for denser samples and higher values of \(K_0\). Moreover, these dense, anisotropic samples reach a steady state at significantly larger wall displacements; arguably even longer than the \({36}\,\hbox {mm}\) of displacement tested in the simulations. These results are in agreement with the sleeve friction during CPT testing [52,53,54,55], and with results from interface friction with ribbed walls of similar geometry to this study [38,39,40].

The small increase in \(q_{eq}/p'\) (and its fluctuations) with PSD, is a phenomenon that has been attributed to particle size effects, and to changes in the relative roughness (\(R_r = h_r/d_{50}\)) of the ribbed wall. Butlanska et al. [56] modeled CPT tests with scaled PSD and found that the increase in the magnitude of the fluctuations of the soil response is related to the decrease in the number of particles in contact with the rigid surface. While [38] studied ribbed walls with the same geometry, and suggested that for higher \(R_r\) values the relatively small particles clog and mobilise the particle-particle shearing resistance, while in the case of lower \(R_r\) values, the larger particles are less prone to clogging and can therefore mobilise additional passive resistances during shear. \(\sigma '_v\) has little influence in \(q_{eq}/p'\), with tests on samples with a similar \(\mu _p\) and PSD but different \(\sigma '_v\) showing a similar response.

4 Percolating contacts network

In contrast to direct shear laboratory tests where the major principal stress is normal to the shearing direction, for the dataset considered here the shearing direction (z-axis) is parallel to the major principal stress orientation. Previous studies considering similar loading conditions [34, 37, 46] have shown that the response of the system is controlled by the force chains normal to the shearing direction, i.e. the x-direction in the current study. In this section, we propose a new method to partition the contact network into two complimentary sub-networks: (1) a principal network that transmits the force percolating through the sample in the x-direction, namely the percolating network \(G_{perc}\), and (2) a secondary contact network formed by the remaining particles and contacts that support the structure of the material but do not contribute directly to the force transmission in the x-direction, namely the supporting network \(G_{supp}\).

The partition of the contact network is achieved using network analysis. Particles and contacts in the samples are represented as nodes and edges (respectively) in a directed graph G, as described by [14]. The node (particle) information includes the particle diameter, position (x,y,z coordinates), coordination number (equivalent to the node degree in graph theory) and type (i.e wall or sample particle). The edge (contact) information includes the IDs of the particles forming the contact, and the force components (normal and tangential). The edge direction is set such that the contacts are oriented from the ribbed wall towards the planar rigid wall at \(x=0\) (i.e. the left wall see Fig. 3a which shows the complete sample) as:

$$\begin{aligned} c: {\left\{ \begin{array}{ll} (j,i), & \text {if}\quad x_j>x_i.\\ (i,j), & \text {otherwise}. \end{array}\right. } \end{aligned}$$
(3)

where \(x_i\) is the x-coordinate of node i, and the contact c(ij) is oriented from node i to node j.

The percolating network \(G_{perc}\) is found using the maximum flow algorithm (MFA). Finding the maximum flow between a source s and a target t node in a graph with edges of finite capacity is a classical problem in optimisation theory [57]. The solution involves finding the set of paths connecting s, t which form the bottleneck of flow in the network. Adopting this approach ensures that: (1) the flow through each edge in the graph does not exceed its capacity, (2) at every node (other than s and t) the values of in-flow and out-flow are equal, i.e. mass balance is preserved, and (3) no extra paths or extra flow can be added to the solution without violating the previous conditions.

Fig. 3
figure 3

Example model, percolating network and strongest force chains for a test with \(PSD_{mid}\), \(\mu _p = 0.25\) and \(\sigma '_v = 50 kPa\). a Complete sample, b particles that belong to the percolating network \(G_{perc}\), and c five strongest force chains in \(G_{perc}\)

The response of the system is controlled by the force transmission in the x-direction, therefore, the capacity \(C_\epsilon \) of edge \(\epsilon \) in the algorithm was set to the x-component of its contact force, namely \(C_\epsilon = \mid f_x^n + f_x^t \mid \), where \(f_x^n\) and \(f_x^n\) are the x- components of the normal and tangential forces. In this way, the flow through \(\epsilon \) corresponds to the percolating force transmitted by that given contact, and is \(\le C_\epsilon \). Virtual nodes were added to represent the ribbed interface (source s) and the opposite left wall at \(x=0\) (target t). Next, artificial edges of infinite capacity were added from s, to every wall particle, and from t to every particle in contact with the left wall. In this way, the algorithm captures all the paths of force transition in the x-direction between the left wall and the ribbed interface. Then, MATLAB’s [58] implementation of the Edmonds–Karp’s maximum flow algorithm [57] was used to find the maximum flow network and its maximum flow value.

The maximum flow value corresponds to the total percolating force in the sample in the x-direction, while the subset of edges (contacts) with non-zero flow (i.e. contacts that contribute to the percolating force) form the percolating network \(G_{perc}\). The resulting \(G_{perc}\) is fully connected, meaning that for every pair of nodes (particles) in \(G_{perc}\), a continuous path with non-zero percolating force exists. The mass-conservation principle of the algorithm ensures that the sum of the in-coming and out-going percolating forces on each particle (node) in \(G_{perc}\) are equal.

4.1 Characteristics of particles and contacts in the sub-networks

The characteristics of the sub-networks (\(G_{perc}\) and \(G_{supp}\)) are analysed for the interval \(X_p = [0, 36] \,\hbox {mm}\) of wall displacement, with only minor changes to the characteristics of the sub-networks during the interval. In the following, representative characteristics of the system are shown for \(X_p = {36}\,\hbox {mm}\). Figure 3b shows the particles in the percolating network \(G_{perc}\) for a representative sample.

Fig. 4
figure 4

Percentage of particles \(N_p\), contacts \(N_c\), in the percolating network \(G_{perc}\). Each boxplot represents the distribution of the quantity over the simulations with the same \(\mu _p\), PSD

Figure 4 summarises the proportion of particles, \(N_p\), and contacts, \(N_c\), in \(G_{perc}\) as a function of PSD and \(\mu _p\). \(G_{perc}\) contains between 40 and \(60\%\) of the total number of contacts in the network, and involves between 60 and \(85\%\) of the particles in the samples. The proportion of particles and contacts in \(G_{perc}\) increases with sample density (i.e. decreasing \(\mu _p\)), and with increasing particle size. This observation suggests that denser materials, with larger particles create more pathways to percolate force in the system, this observation is verified later in the study of the force chains in the system (see Fig. 11).

Fig. 5
figure 5

Cumulative distributions of a (normalised) particle size PSD, b contact force f and c \(\beta \) (the ratio between the tangential and normal contact force). Lines show the mean value across simulations and shaded regions show the inter-quartile range (IQR), namely the range between the 25th and 75th percentiles of the data from the 27 simulations

Figure 5 shows the cumulative distribution functions (CDF) of the particle sizes, the contact forces \(f_c\), and \(\beta \) (the ratio between the tangential and normal contact force) in \(G_{perc}\) and \(G_{supp}\). The particle sizes and contact forces are normalised as percentiles for easier comparison between simulations, while \(\beta \) is shown in the range \([0, \mu _s]\) (where \(\mu _s = 0.25\) is the inter-particle friction coefficient during shearing, equal for all simulations). Lines in Fig. 5 correspond to the mean CDF for all the simulations, while the interquartile range—IQR (i.e. the range between the 25th and 75th percentiles of the data) is shown as shaded regions. Due to the small differences between the CDF’s in Fig. 5, the region enclosed by IQR is virtually indistinguishable from the mean lines.

The results show that \(G_{perc}\) is formed by larger diameter particles and contact forces than \(G_{supp}\). However, both sub-networks contain particles of every size and contacts forces of every strength, rather than exclusively small/big particles or weak/strong contact forces, as suggested by a-priori partition techniques based on contact force [9, 22, 59]. The distribution of \(\beta \) shows that, on average, contacts in \(G_{supp}\) are closer to sliding than those in \(G_{perc}\), with \(38\%\) sliding contacts in \(G_{supp}\) and \(26\%\) sliding contacts in \(G_{perc}\); similar results have been observed by [1, 59].

Fig. 6
figure 6

Distributions of stress contributions of \(G_{perc}\). a Fraction of stress magnitude (as 2-norm of stress tensor), b isotropic stress \(p'\), and c deviatoric stress \(q_{eq}\), in \(G_{perc}\) relative to G. Each box-plot shows the distribution of the values for the 9 simulations with similar \(\mu _p\)

Fig. 7
figure 7

Rose diagrams showing the frequency of the orientation of contacts (shown as percentage of the total amount of contacts in the network), shading of each bin is proportional to the average contact force magnitude among the contacts in the bin. Results shown for sample with \(PSD_{mid}\), \(\mu _p = 0.1\), and \(\sigma '_v = {150}\,\hbox {kPa}\), other simulations show comparable distributions

4.2 Stress transmission in the sub-networks

Fig. 8
figure 8

Major principal stress orientation (\(\alpha _1\)) in G, \(G_{perc}\) and \(G_{perc}\). Orientation measured as the projection of the major principal direction of the stress tensor on the XZ plane. Values measured from the horizontal and positive in the clock-wise direction. Each box-plot shows the distribution of the values for the 9 simulations with similar \(\mu _p\)

The stress at steady state is measured from the stress tensor of the contact network at \({36}\,\hbox {mm}\) of wall displacement, as before. The stress tensor of each sub-network, i.e. \(\sigma '_{perc}\) and \(\sigma '_{supp}\) is calculated according to Eq. 2, including only the particles and contacts in \(G_{perc}\) and \(G_{supp}\) respectively. For each tensor, three components of stress: the 2-norm of the stress tensor \(\Vert \sigma ' \Vert _2\) (equivalent to the major principal stress \(\sigma '_1\)), the isotropic stress (\(p'\)), and the deviatoric stress (\(q_{eq}\)) components are calculated. Figure 6 shows the distribution of each component of stress in \(G_{perc}\) relative to G. Results show that \(G_{perc}\) carries most (80–\(95 \%\)) of the stress in the material, while having only 40–\(60\%\) of the contacts of the network. Moreover, the fraction of \(q_{eq}\) transmitted by \(G_{perc}\) appears to be slightly higher than the fraction of \(p'\) this partition transmits, although the difference is not significant. Previous studies on element tests based on strong and weak sub-networks [1, 5, 7], have also found (expectedly) that strong contacts (above the mean contact force in the system) carry most stress in the material.

Representative rose diagrams are presented on Fig. 7 for at simulation at \({36}\,\hbox {mm}\) of wall displacement (similar rose diagrams were obtained for all simulations). The rose diagrams show significant differences in the preferential contact orientation amongst the sub-networks. \(G_{perc}\) has the strongest contacts in the network, and exhibits a preferred orientation between \(35^\circ \) and \(55^\circ \) (measured from the horizontal), which indicates a re-orientation of the contacts during wall movement. Conversely, contacts \(G_{supp}\) are weaker in comparison, and their preferred orientation is closer to \(90^\circ \), i.e. close to the the vertical direction, consistent with the direction of the application of \(\sigma '_v\).

The projection in the XZ-plane of the orientation of the major principal stress (\(\alpha _1\)), is calculated as \(\alpha _1 = \tan ^{-1} (\eta _{z}/\eta _{x})\), where \(\eta _{x}\) and \(\eta _{z}\) are the x and z components of \(\eta \), the principal direction (eigenvector) associated with the major principal stress \(\sigma '_1\). \(\alpha _1\) is calculated for G, \(G_{perc}\) and \(G_{supp}\), and presented in Fig. 8, and as arrows in Fig. 7.

The results indicate that the displacement of the ribbed wall induces a rotation of the principal stresses in the material from its initial \(K_o\) state. This reorientation is reflected in the major principal stress orientation in \(G_{perc}\), while \(G_{supp}\) remains oriented closer to the vertical direction, consistent with the rose diagrams shown on Fig. 7. Comparable results were encountered by [24, 59] during uniaxial loading, where the strong network re orientates in the direction of loading, while the weak network remains mostly unchanged.

4.3 Contact and particle importance

The relative importance of the particles and contacts in \(G_{perc}\) is measured in terms of node/edge centrality. The contact/edge centrality (\(C_{cen}\)) is the percentage of the total percolating force transmitted by each contact in \(G_{perc}\), while the particle/node centrality (\(P_{cen}\)) is the percentage of the total percolating force transmitted through each particle. Centrality is grouped by percentiles, from the most (1st percentile) to the least (100th percentile) important groups of particles/contacts.

Fig. 9
figure 9

a Mean contact centrality \(\overline{C_{cen}}\), and b mean \(\beta \), i.e. \(\overline{\beta }\), of the contacts in \(G_{perc}\), as a function of percentiles of contact centrality. Lines show the mean value across simulations and shaded regions show the inter-quartile range (IQR), namely the range between the 25th and 75th percentiles of the data from the 27 simulations

Fig. 10
figure 10

a Mean particle centrality \(P_{cen}\), b mean normalised particle size \(D/D_{50}\), and c mean coordination number \(C_N\) of the particles in \(G_{supp}\), as a function of percentiles of particle centrality. Relative particle importance calculated as percentiles of particle centrality. Lines show the mean value across simulations and shaded regions show the inter-quartile range (IQR), namely the range between the 25th and 75th percentiles of the data from the 27 simulations

Figure 9 shows the distributions of \(\overline{C_{cen}}\) (the mean contact \(C_{cen}\)), and \(\overline{\beta }\) (the mean \(\beta \) at the contacts). The \(C_{cen}\) follows a exponential distribution, with few ‘highly important’ contacts. The values in Fig. 9a show that in dense samples (\(\mu _p = 0.01\)), each contact in \(G_{perc}\) transmits a higher percentage of the total percolating force when compared to less dense samples. The distribution of \(\overline{\beta }\) in in Fig. 9b indicates that contacts with higher centrality are, on average, further away from sliding.

Similarly, the distribution of the mean \(P_{cen}\), mean normalised particle size (\(d/d_{50}\)) and mean coordination number \(C_N\) of the particles in \(G_{perc}\) are presented on Fig. 10a, b and c respectively. The results show no significant differences between samples, with consistent exponential distributions of \(P_{cen}\), i.e. few ‘highly important’ particles. These highly important particles are in average \(10\%\) larger than \(d_{50}\), and have higher coordination numbers (between 6.5 and 7.0). The relation between particle importance with \(d/d_{50}\) and \(C_N\) follows a sigmoid, logistic function.

5 Micro-scale: force chains

The percolating network \(G_{perc}\) is the complete set of paths transmitting force across boundaries of the model, and thus can be decomposed into individual force chains, each of which transmits a unique value of percolating force. Each force chain is a simple path (i.e. a path without loops) of particles (and contacts between them) between the sink/source, which transmits a given force between the ribbed wall, and the opposite boundary, i.e. the force chain’s percolation force. Due to the orientation of the contacts in G (and subsequently in \(G_{perc}\)), particles in each force chain have an ordered set of x coordinates (see Eq. 3). Figure 3c shows an example of five force chains extracted from \(G_{perc}\).

Force chains are found using our implementation of the widest path problem based on Dijkstra’s algorithm, which is traditionally used to find shortest paths in graphs. The widest path, also known as ‘maximin’ path, is defined as the path between a sink and source in the graph, which maximises the weight of the minimum-weight among the edges in such path [6]. In our context, the widest path is the force chain that transfers most percolating force between the ribbed wall and the opposite wall.

The pseudo-code of the proposed algorithm is shown in Alg. 1.

figure a

In order to find all the force chains in the system, Alg. 1 is applied to \(G_{perc}\) sequentially. Once a force chain is found, it is recorded, and it’s percolating force removed from the contacts along its path, updating the graph. Due to the significant computational cost of the algorithm, we stop the computation when only \(10\%\) of the initial percolating force remains in the percolating network. The pseudo-code of the algorithm that splits the percolating network into individual force chains is shown in Alg. 2.

figure b

5.1 Distribution of force chains

The characterisation of the force chains in the system is done for the interval between \([33, 36]\,\hbox {mm}\) of wall displacement (a window of \({0.12}\,{\hbox {s}}\)). The interval is sampled every \({1d-4}\,{\hbox {s}}\), for a total of 1200 sampling points. The characteristics of the force chains were constant over time, with negligible differences between different points within the interval. The subsequent analysis on this section is based on the mean value of the quantities over the sampling interval.

Fig. 11
figure 11

a Distribution of percolating force in force chains, plotted as a survival plot. b Gini’s inequality coefficient (gc) of the percolating force distributions as a function of PSD; 9 values per boxplot. c Density of force chains \(D_{fc}\) as a function of GDS and \(\mu _p\); 3 values per boxplot. d Comparison between \(D_{fc}\) and average coordination number \(C_N\) in the network

The distribution of the percolating force transmitted by the force-chains is highly centralized, with the top \(10\%\) and \(20\%\) of the force chains carrying \(35\%\) and \(50\%\) of the total force percolating the sample. The overall distribution of the percolating force follows an exponential trend (see Fig. 11a), similar to the distributions of particle importance (in Fig. 10a) and contact importance (in Fig. 9a).

The overall system centrality (also called the concentration or inequality) is measured using the unitary Gini coefficient \(g_c\). A \(g_c\) value of zero corresponds to a system where all the force chains carry the same force (i.e. homogeneous system), and the value grows as the difference between forces increase (i.e. increased system centrality). Figure 11b summarizes the distribution of \(g_c\) as a function of PSD, variable that showed the largest statistical influence. Results indicate that samples with larger particles ‘depend’ more heavily on a relatively few number of strong force chains, whereas similar samples with smaller particles distribute the load among force chains more evenly.

The ‘density’ of force chains \(D_{fc}\) in the system is calculated as:

$$\begin{aligned} \begin{aligned} N_{pw}&= \frac{H_m \cdot D_m}{d_{50}^2}\\ D_{fc}&= \frac{N_{fc}}{N_{pw}} \end{aligned} \end{aligned}$$
(4)

where \(N_{pw}\) is the average number of particles in contact with the ribbed wall, and \(N_{fc}\) is the number of force chains that account for \(90\%\) of the total percolating force in the system (i.e., the maximum flow value transmitted by \(G_{perc}\)).

Figure 11c shows the distribution of \(D_{fc}\) for the 27 simulations as a function of PSD and \(\mu _p\). Figure 11d shows a direct relationship between the density of force chains per unit area \(D_{fc}\) and the average coordination number \(C_N\). This relationship is expected, as denser arrays have more contacts between particles, facilitating the creation of more pathways for force transmission. However, the range of \(C_N\) does not vary with particle size, indicating that the increase in \(D_{fc}\) with increasing PSD is not due to higher coordination numbers in the system, but instead, due a higher fraction of particles/contacts in \(G_{perc}\), in agreement with Fig. 4.

These results indicate that sample density, and \(K_o\) increase the density of force chains in the system, while making it more centralised (in terms of \(g_c\)). These findings agree with the trends observed in Fig. 2, linking the increase in the mobilised stress in the material with an increased force chain density and system centrality.

5.2 Life-span of force chains

Fig. 12
figure 12

Distribution of percolating force in force chains by duration. Groups show the distribution among the entire set of force chains (’All’), and among those with a duration above 2% and 5% of the time interval analysed \(T_t = {0.12}\,{\hbox {s}}\). Lines and shaded regions show the mean value and inter-quartile range (IQR) of the data in each group

The longevity or duration of force chains during the induced shear deformation, a matter also addressed by [28], is considered next. We measure the duration of each force chain in the system within the same interval: \([33, 36] \,\hbox {mm}\) of wall displacement (\({0.12}\,{\hbox {s}}\)), sampled every \({1d-4}\,{\hbox {s}}\), for a total of 1200 points.

The duration of a force chain in the contact network is equal to the sample interval (\({1d-4}\,{\hbox {s}}\)) times the number of consecutive intervals where the same force chain can be found. Each force chain \(fc_m\) is identified by as the set of contacts that form it, namely \(fc_m: \big \{ c_{i,j},c_{j,k},...\big \}\), where \(c_{i,j}\) is the contact between particles i and j. The similarity index, a modified version of the overlap coefficient [60], is used as the criteria to compare force chains at different times:

$$\begin{aligned} Sim_{(m,n)} = \frac{2(\mid fc_m \cap fc_n \mid )}{ \mid fc_m \mid + \mid fc_n \mid } \end{aligned}$$
(5)

The similarity index of force chains \(fc_m\) and \(fc_n\), namely \(Sim_{(m,n)}\), is calculated as the number of contacts common to both chains, divided by the average number of contacts in \(fc_m\) and \(fc_n\), as shown in Eq. 5. If two force chains in consecutive time steps (say \(fc_m\) and \(fc_n\)) have \(Sim_{(m,n)} \le 75 \%\), we consider them to be the same force chain, and increase its duration. In the vicinity of the start/end of the time window studied the algorithm may underestimate the duration of the force chains.

Once the duration of the force chains in the system was calculated, we studied the distribution of the force-chains’ percolating force for three groups of different duration: the baseline group contains all the force chains in the system regardless of their duration, namely ‘All’; the second group includes only the force-chains with a duration above \(2\%\) of the analysed time interval, namely \(t_{fc }> 2\% t_T \); similarly, the third group includes the force chains with a duration above \(5 \%\) of the analysed time window, namely \(t_{fc} > 5\% t_T\).

The results in Fig. 12 show that force chains with longer life-spans, i.e. long-lived force chains, are (in average) stronger than short-lived chains. These results are in agreement with Fig. 9, as strong, ‘important’ contacts in the long-lived force chains have lower values of \(\overline{\beta }\) (less prone to sliding), explaining their increased duration.

Moreover, the comparison between different PSDs in Fig. 12 shows that in samples with \(PSD_{lrg}\), long-lived chains are comparatively stronger that force chains of the same duration with smaller PSD. This observation is supported by the increased centrality of systems with larger particles shown in Fig. 11b.

6 Conclusions

This contribution has proposed new algorithms to: (1) extract the fully-connected set of percolating contacts (\(G_{perc}\)) that controls the stress/deformation response of granular systems, and to (2) decompose \(G_{perc}\) into the underlying set of force chains that form it. These algorithms were then applied to a particular scenario, the response of granular materials to shear deformation induced by a ribbed interface moving at a constant speed and the steady-state response of the material was considered here. The data show that granular materials behave as highly centralised systems, where the mechanical response to shear deformation is ultimately controlled by a small set of strong and long-lived force chains.

In Sect. 4, we proposed a partitioning method that splits the contact network into a stress-carrying percolating network \(G_{perc}\) and a supporting sub-network \(G_{supp}\). This approach is not the first to use the maximum flow algorithm, but (to the best of our knowledge) is the first to use directed edges with a physically based capacity (transmitted force). By doing so, \(G_{perc}\) captures the force percolating between boundaries, and all the paths that transmit it. Thus, this partitioning method has a stronger fundamental basis than the commonly used approach that splits the force network by considering the mean force.

Results show that \(G_{perc}\) contains 35–\(65\%\) of the contacts (see Fig. 4), but carries most of the stress in the sample (\(>80\%\), see Fig. 6). Interestingly, it was found that \(G_{perc}\) has a larger proportion of large particles, but both sub-networks include particles across the entire PSD. Similarly, the contact-force distribution shows that \(G_{perc}\) has stronger contact-forces in average, but both sub-networks contain weak to strong contacts. The major principal stress orientation shows that \(G_{perc}\) re-orientates at an angle between \(35^\circ \) - \(55^\circ \) as a response to the ribbed wall movement, while \(G_{supp}\) carries little stress and remains oriented along the vertical direction.

In Sect. 5, we proposed a method to split \(G_{perc}\) into individual force chains based on a new implementation of the widest path problem. With this method, each resulting force chain is an aligned set of particles/contacts in \(G_{perc}\) that transmits a specific value of percolating force.

The force chains in the system form a highly centralised system that follows an exponential distribution, with a small number of strong and long-lived force chains, and a large number of weaker, ephemeral chains. These observations have been related to the stress-deformation response of the system, showing that systems with a more centralised distribution of contacts and higher density of force chains are able to mobilise higher mobilised stress ratios during shear deformation, providing micro-mechanical insight to previous laboratory and in-situ testing observations.

The methods discussed here may be applicable to a wide range of applications in geomechanics, including boundary problems, monotonic/cyclic loading and even pore network modeling. Future studies may also focus on the role of poly-dispersity and particle shape in the centrality and density of the force chains in the material. Understanding the role of the particle-scale properties in the behavior of force chains may allow to design granular materials that maximise the performance or resiliency of the system, i.e. the capacity to accommodate changes in loading into the existent network of force chains, under specific loading cases.