1 Introduction

Soil laboratory testing and numerical simulations have mostly been carried out to study proportional loading with a stress history in which the deviatoric stress components are kept in constant ratio to each other, and the soil, if it has an anisotropic fabric, does not rotate with reference to the frame of the principal stresses [1]. The stress path that soils experience in practical engineering however often deviates severely from proportional loading. A typical example involving non-proportional loading is earthquake engineering, which has motivated extensive experimental and modelling work since 1970s’.

Evidence of significance of stress rotation can be traced back to Peacock and Seed [2] who showed that the resistance to liquefaction under simple shear condition was about one third of the resistance under the analogous conditions in the triaxial apparatus. Ishihara and Li [3] devised the torsional shear apparatus and demonstrated the sensitivity of material behaviour to strain-controlled cyclic torsional shear on initial \(\hbox {K}_{0}\) and lateral confinement. Arthur et al. [4] applied controlled changes of principal stress axes with the Directional Shear Cell and studied sample behaviour to shearing after a pre-loading to a high stress ratio and a rotation of principal stress axes. Extensive experimental observations on sand responses to principal stress rotation have been published since the 1980s’ [510] using the hollow cylindrical device which offers independent control of the magnitudes and directions of principal stresses. Non-coaxial deformation and volume contraction are typical deformation characteristics observed when rotating the principal stress axes [6, 7, 1115].

For constitutive theories developed for proportional loading, the strains can be expressed in terms of the final state of stresses, while for general loading paths involving stress rotation, the incremental theory of plasticity [16] relating increments of plastic strain to stress increments and stress history has general validity [17]. The introduction of an additional deformation mechanism associated with loading orthogonal to the current stress state is often the practice [1, 18, 19]. This however implies a large number of model parameters which are often difficult to calibrate.

Micromechanics and multi-scale investigation have been proven powerful during the last few decades. Calvetti et al. [20] presented the evolution of material anisotropy under complex loading condition including principal axes rotations based on laboratory tests on wooden roller stacks. Numerically, discrete element method (DEM) [21] has been used in numerous studies on material responses to biaxial/triaxial shearing and direct/simple tests [2226]. Responses of two dimensional granular materials to rotation of principal stress axes have been investigated [27, 28]. The trend of non-coaxial deformation and contractive volume changes have been qualitatively reproduced and explained based on structural evolution.

Broadly speaking, when studying the elementary material behaviour, the specimen can be modeled as a periodic or non-periodic cell. External loading is applied on the boundary consisting of a string of boundary particles [26, 2831] or a set of rigid mass-less surfaces [21, 27, 32]. For particle-based boundaries, the boundary particles are often chosen according to their positions as the out-most particles. External forces can be applied directly. However, due to the highly heterogeneous nature of particle displacements, attention should be placed on the deformation calculation. The relative positions of the particles continuously evolve as the specimen is deformed. A boundary particle at the current computation step may become a non-boundary particle at the next time step based on the updated location, and vice versa. The list of boundary particles needs to be regularly updated, in particular at large strain levels. This requires additional computational power, and may also cause local force re-distribution. Alternatively, the rigid surface boundaries can be used to define the geometries of the representative element. The external surrounding interacts with the granular assembly through interacting forces arising from the overlapping between the boundary walls and the boundary particles. It is convenient to impose a perfectly-uniform strain field and a servo-control mechanism has been developed to achieve general loading paths. In the authors’ previous work [27], the latter has been used.

This paper aims at extending the previous work into three dimensional granulate systems, a closer analogy to real soil. Section 2 presents details of numerical implementation. The macro-scale deformation characteristics are to be presented in Sect. 3 and the observations on fabric evolution in Sect. 4. Section 5 extends the discussion to the effect of the intermediate principal stress ratio. And Sect. 6 draws concluding remarks from this study. In this paper, the summation convention over tensor indices is followed.

2 Numerical implementation

Li et al. [33] proposed a numerical technique to achieve general loading path by imposing translational and rotational motion of rigid frictional boundaries. In this paper, we implement it in the commercial DEM package—Particle Flow Code in Three Dimensions (PFC3D) [34] to reproduce the material deformation characteristics to rotation of principal stress axes. For better sample uniformity, it is suggested that the rigid massless boundary surfaces are to be generated forming a polyhedron with obtuse angles between any two neighbouring boundaries. The boundary control algorithm detailed in [33] has been used to control the displacements of boundary walls synchronously to impose the strain-controlled boundary, and to monitor the stress-controlled boundary with a servo-controlled mechanism.

A material point can be identified by its spatial position, denoted by the position vectors \(\mathbf{x}\) and \(\mathbf{X}\) in the deformed (current) and undeformed (reference) configurations, respectively. With respect to rectangular Cartesian coordinate systems \(\mathbf{x} = x_\mathrm{i}{} \mathbf{e}_{i}\) and \(\mathbf{X} = X_\mathrm{I}{} \mathbf{e}_{I}\), where \(\mathbf{e}_{i}\,(\hbox {i}=1, 2, 3)\) and \(\mathbf{e}_{I}(\hbox {I}=1, 2, 3)\) are the unit base vectors of the respective reference frames. In this study, they are fixed in space and coincide with each other, i.e., \(\mathbf{e}_i =\mathbf{e}_I\). Because of the high sensitivity of material behaviour to volume change, finite strain definition is necessary for accurately describing and controlling material strain state. The knowledge of sample strain can be obtained from the deformation gradient tensor

$$\begin{aligned} \mathbf{F}={\partial \mathbf{x}}/{\partial \mathbf{X}}\quad \hbox {or}\quad F_{iJ} ={\partial x_i }/{\partial X_J}. \end{aligned}$$
(1)

The Biot strain definition is used to describe the specimen deformation [33]. For simplicity, in this study, we impose zero rigid body rotation, and fix the position of specimen origin O throughout the simulation. With the absence of rigid body rotation, the Biot strain becomes:

$$\begin{aligned} {\varvec{{\upvarepsilon }}}=\mathbf{1}-\mathbf{F} \end{aligned}$$
(2)

This is consistent with the common sign convention in soil mechanics that the positive normal strain indicates compression and the negative value extension. The Cauchy stress definition is used to describe material stress state and defined based on the boundary traction acting on current boundary configuration.

Considering the heterogeneity nature of granular materials, the continuum concepts, stress/strain tensors, are to be defined and calculated from the forces/displacements of the boundaries.

2.1 Strain

2.1.1 Strain evaluation

With the uniformity assumption and using Gauss’ theorem, the deformation gradient tensor \(F_{iJ}\) can be evaluated as its volumetric average, i.e.,

$$\begin{aligned} F_{iJ} =\frac{1}{V}\oint _V {x_{i,J} dV} =-\frac{1}{V}\oint _S {x_i N_J dS} \end{aligned}$$
(3)

in which V and S are the volume and boundary surface in the undeformed configuration. \(N_I\) is the unit vector normal to the boundary surface increment dS in the undeformed configuration, pointing inward and the minus sign is needed here when applying the divergence theorem. For polyhedral specimens, the specimen boundary can be discretized into a number of polygonal surfaces and the deformation gradient tensor \(F_{iJ} \) becomes

$$\begin{aligned} F_{iJ} =-\frac{1}{V}\sum {x_i^c N_J \Delta S} \end{aligned}$$
(4)

where \(x_i^c\) is the area centre of surface element \(\Delta S\) in the current deformed configuration. Once the deformation gradient tensor is obtained, the Biot strain tensor can be calculated based on Eq. (2).

2.1.2 Applying a strain increment

Sample deformation can be imposed by specifying synchronically the movements of boundary surfaces. This is intrinsically the strain-controlled loading mode. Denote the center and normal direction of boundary surface element w as \(\mathbf{X}_o^w , \mathbf{N}_o^w \) in the initial configuration and \(\mathbf{x}_o^w , \mathbf{n}_o^w \) in the deformed configuration, respectively. With the position of specimen origin O being fixed, the coordinate of the wall centre in the current configuration can be found as:

$$\begin{aligned} x^w_{oi} =F_{iJ} X^w_{oJ} . \end{aligned}$$
(5)

Points in the same plane in the undeformed configuration remain in the same plane after deformation. Following Eq. (5), a vector \(\mathbf{T}\) in the undeformed configuration becomes

$$\begin{aligned} t_i =F_{iJ} T_J . \end{aligned}$$
(6)

in the deformed configuration.

To determine the boundary wall normal direction \(\mathbf{n}_o^w \) after deformation, information of two in-plane vectors \(\mathbf{T}_1^w \) and \(\mathbf{T}_2^w \) is required. The surface normal direction in the undeformed configuration can be written as \(\mathbf{N}_o^w =\frac{\mathbf{T}_1^w \times \mathbf{T}_2^w }{\left\| {\mathbf{T}_1^w \times \mathbf{T}_2^w } \right\| }\), where \(\left\| *\right\| \) represents the Euclidean normal of vector *. The two in-plane vectors \(\mathbf{t}_1^w \) and \(\mathbf{t}_2^w \) in the deformed configuration can be calculated from Eq. (6), and used to determine the wall normal direction in the deformed configuration \(\mathbf{n}_o^w \) as

$$\begin{aligned} \mathbf{n}_o^w =\frac{\mathbf{t}_1^w \times \mathbf{t}_2^w }{\left\| {\mathbf{t}_1^w \times \mathbf{t}_2^w } \right\| }. \end{aligned}$$
(7)

Hence, to achieve a strain increment \(\Delta \varepsilon _{IJ}\) in one time step \(\Delta t\), the translational velocities of the boundary surface centres are to be set as:

$$\begin{aligned} v^w_{oi} ={\Delta x^w_{oi}}/{\Delta t}={\Delta F_{iJ} X^w_{oJ}}/{\Delta t}=-{\Delta \varepsilon _{iJ} X^w_{oJ}}/{\Delta t}. \end{aligned}$$
(8)

To set the boundary wall rotation, we calculate the wall normal direction at the current strain level \(\mathbf{n}_o^w \) and the target strain level \(\mathbf{n}_o^{wt} \) based on two in-plane vectors first. The boundary wall rotational velocities are hence to be set as:

$$\begin{aligned} \mathbf{w}^w ={\mathbf{n}^w \times \mathbf{n}^{wt}}/{\Delta t}. \end{aligned}$$
(9)

2.1.3 Hydro-shear decomposition

Knowing the three principal values and their respective directions, the Biot strain tensor can be uniquely defined as in “Appendix 1”. A strain controlled loading path can be expressed in terms of principal strain values and directions.

Due to the high sensitivity of granular material behavior on volume, the material volume must be precisely controlled and quantified. It is worthy pointing out that the summation of the principal strains \(J_1 ({\varvec{{\upvarepsilon }}})\) is not a proper measure of volumetric strain. Although it provides a reasonable estimation in the case of infinitesimal deformation, the error becomes significant when the deformation is finite. The Jacobian determinant \(J=\det \left( \mathbf{F} \right) \) relates the exact specimen volume as:

$$\begin{aligned} v=\det \left( \mathbf{F} \right) V=JV \end{aligned}$$
(10)

where v and V are the volumes in the deformed and undeformed configurations. The volumetric strain is hence expressed as:

$$\begin{aligned} \varepsilon _v =\frac{dV-dv}{dV}=1-J \end{aligned}$$
(11)

In three dimensional spaces, the deformation gradient \(\mathbf{F}\) can be expressed as the product of a volumetric term and a deviatoric term as:

$$\begin{aligned} \mathbf{F}=\underbrace{(J^{1/3}{} \mathbf{1})}_{\mathbf{F}_v }\cdot \underbrace{(J^{-1/3}{} \mathbf{F})}_{\mathbf{F}_d }=\mathbf{F}_v \cdot \mathbf{F}_d \end{aligned}$$
(12)

Note that \(J(\mathbf{F}_d )=\det \mathbf{F}_d =\det (J^{-1/3}\mathbf{F})=J^{-1}\det \mathbf{F}=J^{-1}J=1\), i.e., the deviatoric part is totally independent of any volume change, and \(J(\mathbf{F}_v )=\det \mathbf{F}_v =\det (J^{1/3}{} \mathbf{1})=J\), i.e., the volumetric part contains only the information of volume change [27]. Therefore, the material state of deformation can be uniquely defined by the three invariants, i.e., the volumetric strain \(\varepsilon _v =\frac{dV-dv}{dV}=1-J\), the deviatoric strain \(\varepsilon _q =2\sqrt{{J_{2D} \left( {\mathbf{F}_d } \right) }/3}\) and the intermediate principal strain ratio \(b_\varepsilon ={\left( {\varepsilon ^2 -\varepsilon ^3 } \right) }/{\left( {\varepsilon ^1 -\varepsilon ^3 } \right) }\) alongside the three principal directions \(\mathbf{n}_\varepsilon ^I \left( {I=1,2,3} \right) \). Note that \(b_\varepsilon =b_F =\frac{F^{2}-F^{3}}{F^{1}-F^{3}}=b_{Fd} =\frac{F_d^{2}-F_d^{3}}{F_d^{1}-F_d^{3}}\).

Should the loading path be specified in terms of \(\varepsilon _v , \varepsilon _q , b_\varepsilon \) and the three principal directions, the volumetric deformation gradient tensor \(\mathbf{F}_v \) can be determined from \(\varepsilon _v \) as \(\mathbf{F}_v =J^{1/3}\mathbf{1}=\left( {1-\varepsilon _v } \right) ^{1/3}{} \mathbf{1}\), and the deviatoric deformation gradient tensor \(\mathbf{F}_d \) can be determined from \(\varepsilon _q , b_\varepsilon \) and the three principal directions as introduced in “Appendix 2”. The deformation gradient tensor \(\mathbf{F}\) can be hence calculated from Eq. (12) and used to determine the translations and rotations of boundary surfaces to impose the specific strain-controlled loading path.

2.2 Cauchy stress

2.2.1 Stress evaluation

Cauchy stress describes the boundary forces acting over current configuration. When the representative element being subjected to the distributed forces \(p_i (\mathbf{x})\) applied on the current assembly boundary s and the body forces \(g_i \left( \mathbf{x} \right) \) acting within the volume v, the average stress tensor expressed as \(\bar{{\sigma }}_{ij} =\frac{1}{v}\oint _v {\sigma _{ij} \hbox {d}v} \) can be evaluated as:

$$\begin{aligned} \bar{{\sigma }}_{ij} =-\frac{1}{v}\left( {\oint _s {x_i p_j \hbox {d}s} +\oint _v {\rho x_i g_j \hbox {d}v}} \right) \end{aligned}$$
(13)

Note a minus is necessary when applying the divergence theorem with the inward normal direction being positive. On the local scale, the boundary traction can be viewed as discrete forces exerted at different boundary points, i.e., \(\oint \nolimits _s {x_i p_j \hbox {d}s} =\sum \nolimits _{\beta \in s} {x_i^\beta F_j^\beta } \), in which \(F_i^\beta \) is the external force exerted at discrete boundary points \(\beta \) with the coordinates of \(x_i^\beta \). The body and internal forces could be estimated as \(\oint \nolimits _v {\rho x_i g_j \hbox {d}v} =\sum \nolimits _{P\in v} {x_i^P G_j^P } \), in which \(G_i^P \) is the volumetric force of granular particle P acting at the centre of gravity \(x_i^P \). Hence, Eq. (13) can be discretized as:

$$\begin{aligned} \bar{{\sigma }}_{ij} =-\frac{1}{v}\left( {\sum \limits _{\beta \in s} {x_i^\beta F_j^\beta } +\sum \limits _{P\in v} {x_i^P G_j^P }} \right) . \end{aligned}$$
(14)

This expression has be used in DEM simulate to estimate the element stress.

2.2.2 Applying a stress increment

To achieve the target stress state \(\sigma _{ij}^t \), the stress increment \(\Delta \sigma _{ij}=\sigma _{ij}^t -\sigma _{ij}\) is to be imposed on the specimen boundary using the following servo-control mechanism. Expressing the stress increment \(\Delta \sigma _{ij}\) in terms of its invariants \(\left( {\Delta \sigma } \right) ^{I},(I=1,2,3)\) and the principal directions \(\left( {\alpha _{\Delta \sigma }} \right) ^{I},(I=1,2,3)\), the strain increment can be determined by taking analogy of an isotropic elastic constitutive relationship as:

$$\begin{aligned} \left\{ {\begin{array}{l} \left( {\Delta \varepsilon } \right) ^I =\frac{1+\nu }{E}\left( {\Delta \sigma } \right) ^{I} -\frac{\nu }{E}\Delta \sigma _{kk} \\ \left( {\alpha _{\Delta \varepsilon }} \right) ^I =\left( {\alpha _{\Delta \sigma }} \right) ^I \\ \end{array}} \right. \end{aligned}$$
(15)

where E and \(\nu \) are the nominal Young’s modulus and Poisson’s ratio and \(\left( {\alpha _{\Delta \varepsilon }} \right) ^{I}\) denotes the principal directions of the strain increment \(\Delta \varepsilon _{IJ} \). The principal values and directions are to be used to determine the strain increment in the component form as introduced in “Appendix 1”, which is then applied on the simulated sample by specifying the boundary translational and rotational velocities as introduced in Section 2.1.2.

In this study, it is set \(\nu =0.5\) and E is estimated as follows. Denote A as the influential area of one particle, \(\overline{r} \) as the average particle radius. The influential area is a rough estimation of the projection area that one granular particle may have on a plane. \(A=\left( {2\overline{r} } \right) ^{2}\) has been used here for three-dimensional simulations. To impose the normal surface traction increment \(\Delta \sigma \), the boundary force increment over the influential area A is to be \(\Delta F=\Delta \sigma \cdot A\), and results in the change in the boundary-particle overlapping \(\Delta D={\Delta F}/{k_n }\), where \(k_n \) is the particle stiffness. Estimated over the sample dimension L, this is equivalent to the strain increment \(\Delta \varepsilon ={\Delta D}/L\). To prevent overshooting of the target stress state, only a portion of the above strain increment \(\varsigma \Delta \varepsilon \) is imposed in one time step, in which \(\varsigma \) is a relaxation factor, and \(\varsigma <1\). The nominal Young’s modulus used in the simulation can hence be determined as:

$$\begin{aligned} E={\Delta \sigma }/{\varsigma \Delta \varepsilon }={k_n L}/{\varsigma A}. \end{aligned}$$
(16)

In this study, it is set as default that \(\varsigma =0.8\) and \(L=2R_e \), where \(R_e \) is the radius of the circumscribed sphere of initial sample geometry used in this study.

For a given specimen with pre-set particle properties, the nominal Young’s modulus estimated from Eq. (16) is a constant throughout the loading process. Granular material usually behaves differently from the above nominal isotropic elastic constitutive relationship. The induced change in the specimen stress state is hence expected to be different from the desired stress increment \(\Delta \sigma _{ij}\), meaning that the target stress \(\sigma _{ij}^t\) has not been realized. In the next calculation cycle, the stress increment \(\Delta \sigma _{ij} =\sigma _{ij}^t -\sigma _{ij}\) is then calculated based on the updated stress state \(\sigma _{ij}\), and hence the new strain increment. By repeating doing so, the specimen stress gradually approaches the target stress state. When the difference between the current stress state and the target stress state is smaller than the preset tolerance, the stress boundary condition is considered to be satisfied.

2.2.3 Hydro-shear decomposition

A three dimensional Cauchy stress tensor \({\varvec{{\upsigma }}}=\sigma _{ij} \mathbf{e}_i \otimes \mathbf{e}_j \) can be decomposed as \(\sigma _{ij} ={\sigma _{kk} \delta _{ij}}/3+s_{ij} =p\delta _{ij} +s_{ij} \), in which the mean normal stress \(p={\sigma _{ii}}/3={J_1 \left( {\varvec{{\upsigma }}} \right) }/3\) denotes the hydrostatic pressure and \(s_{ij} =\sigma _{ij} -p\delta _{ij} \) is a deviatoric tensor denoting the shear stress components. While p itself is an invariant, the deviatoric stress tensor \(\mathbf{s}=s_{ij} \mathbf{e}_i \otimes \mathbf{e}_j \) has two non-trivial invariants \(J_2 \left( \mathbf{s} \right) =J_{2D} \left( {\varvec{{\upsigma }}} \right) =J_2 \left( {\varvec{{\upsigma }}} \right) -{J_1 \left( {\varvec{{\upsigma }}} \right) ^{2}}/6\) and \(J_3 \left( \mathbf{s} \right) =J_{3D} \left( {\varvec{{\upsigma }}} \right) =J_3 ({\varvec{{\upsigma }}})-2J_1 ({\varvec{{\upsigma }}})J_2 ({\varvec{{\upsigma }}})/3+2J_1 ({\varvec{{\upsigma }}})^{3}/27\). As functions of the invariants are still invariants, the shear stress \(q=\sqrt{3J_{2D} \left( {\varvec{{\upsigma }}} \right) }={\sqrt{\left( {\sigma ^{1}-\sigma ^{2}} \right) ^{2}+\left( {\sigma ^{2}-\sigma ^{3}} \right) ^{2}+\left( {\sigma ^{1}-\sigma ^{3}} \right) ^{2}}}/2\) and the deviatoric stress ratio \(\eta =q/p\) are also non-trivial invariants, where \(\sigma ^{1}, \sigma ^{2}\) and \(\sigma ^{3}\) denote the major, intermediate and minor principal values respectively \(\left( {\sigma ^{1}\ge \sigma ^{2}\ge \sigma ^{3}} \right) \). In the sequel, the mean normal stress p, the deviatoric stress ratio \(\eta \) and the intermediate principal stress ratio \(b_\sigma =(\sigma ^{2}-\sigma ^{3})/(\sigma ^{1}-\sigma ^{3})\) which describes the relative magnitudes of the three principal stresses, together with the three principal directions \(\mathbf{n}_\sigma ^I \) can uniquely define the sample stress state. They are used in this study to describe the loading path with rotational principal stress axes for convenience.

For a given stress state with the invariants \(p\hbox {, }\eta \hbox {, }b_\sigma \) and the principal directions \(\mathbf{n}_\sigma ^I \), the stress Lode angle can be determined from \(b_\sigma \) as \(\hbox { tan }\theta _\sigma ={\sqrt{3}b_\sigma }/{\left( {2-b_\sigma } \right) }\). With \(J_1 \left( {\varvec{{\upsigma }}} \right) =3p\) and \(\sqrt{J_{2D} \left( {\varvec{{\upsigma }}} \right) }={\eta p}/{\sqrt{3}}\), the three principal stresses can be expressed as

$$\begin{aligned} \left\{ {{\begin{array}{l} {\sigma ^{1}=p\left[ {1+\frac{2}{3}\eta \cos \theta _\sigma } \right] } \\ {\sigma ^{2}=p\left[ {1+\frac{2}{3}\eta \cos \left( {\frac{2\pi }{3}-\theta _\sigma } \right) } \right] } \\ {\sigma ^{3}=p\left[ {1+\frac{2}{3}\eta \cos \left( {\frac{2\pi }{3}+\theta _\sigma } \right) } \right] } \\ \end{array}}} \right. \end{aligned}$$
(17)

Together with the information on the principal directions, the stress tensor in component form can be determined as in “Appendix 1”.

2.3 Polyhedral specimen geometry

For non-proportional loading paths, the tangential surface traction is required. The boundary surfaces must be frictional. This however increases the possibility for arching to develop between neighboring surfaces. For better uniformity, the near-spherical sample dimensions are desired. There are infinite ways to define such geometries. In 2D spaces, the convenient choice is convex regular n-sided polygons. An increasing number in sides brings the sequence of regular polygons into a circle. In 3D spaces, there are however only 5 finite convex regular polyhedron. We propose the protocol detailed in “Appendix 3” to generate a tangential polyhedron characterized by the inscribed sphere of radius \(R_e \), controlling sample sizes, and the side number n, defining sample shape. n is an even number and \(n \ge \) 4. The angle between every two neighbouring walls is obtuse when \(n\ge 6\). If n is sufficiently large, the shape of polyhedron boundary approaches a sphere. Figure 1 gives examples of such defined polyhedrons with \(n=6, n=8\) and \(n=10\), respectively.

Fig. 1
figure 1

Examples of polyhedral sample geometries. a \(n=6\); b \(n=8\); c \(n=10\)

2.4 Numerical implementations

Non-spherical particles are used in this study. They are formed by two overlapping spheres as shown in Fig. 2 using the clump logic in PFC3D [34]. The distance between the centres of two constitutive spheres is 1.4r and all the particles are attributed with the same solid density \(\rho \) of \(2700\,\hbox {kg/m}^{3}\). The constitutive spheres making up of a clump possess the same motion. They are rigid bodies without any internal forces arising in between. No crushing mechanism has been considered. The samples have been generated using the gravitational deposition method with the particle radius uniformly distributed within [0.3, 0.5] mm.

Fig. 2
figure 2

Geometry of non-spherical particle

The linear contact model has been used with constant normal and tangential stiffnesses \( k_n =k_s =1\times 10^{5}\,\hbox {N/m}\). The critical time step \( \Delta t\) used in the simulation is automatically determined by the minimum particle size and the contact stiffness within PFC3D. The magnitude of contact stiffness has been reduced for computational efficiency. At the maximal confining pressure, the particle overlapping is around 0.4 % of the average particle diameter and is believed small enough to satisfy the point contact assumption. The time step used in the numerical simulation is \(1.02 \times 10^{-6}\,\hbox {s}\). Sliding occurs when the tangential contact force exceeds the maximum allowable tangential force \(F_{max}^t =\mu F^{n}\) with the frictional coefficient set as \(\mu =0.5\). No contact cohesion has been used. The boundaries surfaces are rigid walls with the same mechanical properties as the granular particles.

Sample preparation starts with generating spheres within the cuboidal region whose horizontal cross section is \(0.0192\hbox { m} \times 0.0192\hbox { m}\) and height 0.133 m. 18,876 spheres have been generated. The horizontal cross section is larger than the target sample diameter to mitigate the boundary effect on packing uniformity. The cuboid is high enough to ensure no overlapping between any two of the generated spheres. After generation, the spheres are replaced with clumps of equal volume and random orientations. They then deposit under the vertical gravitational acceleration \(g=-100\hbox { m/s}^{2}\). Local damping mechanism of PFC3D [34] has been used for energy dissipation and the magnitude is controlled by the damping coefficient \(\xi \). During deposition, the local damping has been set as \(\xi =0.2\) for dynamic simulation, the particle and boundary frictions have been set as \(\mu _g =0.01\) to form a dense packing. The deposition process terminates when the ratio between the unbalanced force and the average contact force \(f_{tol} =f_{unb} /f_{av} \) is no larger than 0.01 %. After deposition, the gravity field is removed. The local damping is set as \(\xi =0.7\), and the particle and boundary friction coefficients are set to be \( \mu =0.5\) for the following static simulations. The specimens prepared by gravitational deposition method are anisotropic.

Fig. 3
figure 3

Stress–strain responses in triaxial shearing with \(\hbox {b}=0.5\)

The boundary walls were generated inside the deposited packing to form a representative element with \(n=8,R=0.0066\hbox { m}\). The sample size is chosen as a compromise to make meaningful observations and to achieve the large number of rotation cycles required in this study. Particles with the centre of any constitutive spheres falling outside of the boundary walls are deleted. The remaining 5,188 particles form the representative element for simulation. The sample is re-equilibrated by cycling with fixed boundaries until \(f_{tol} \le 0.01\,\% \), and then consolidated to the isotropic stress state of \(p=500\,\hbox {kPa}\). The sample has been monotonically sheared in triaxial model by loading in the z axis direction. The intermediate principal stress has been fixed in the y axis direction with constant intermediate stress ratio \(b_\sigma =0.5\). The stress–strain responses are plotted in Fig. 3. It exhibits dense material behavior, dilative and softening after the peak stress ratio \(\eta _p =1.2\). At large strain level, the specimen approaches the critical stress ratio \(\eta _{cs} =0.96\) and the critical void ratio \(e_{cs} =0.70\).

A series of numerical experiments have been carried out to simulate the granulate system responses to rotation of principal stress axes at different stress ratios. Information is summarized in Table 1. The specimen sheared up to the preset stress ratios \((\eta =0.5, \eta =0.6, \eta =0.7, \eta = 0.9\)) have been saved and then subjected to stress rotation. The mean normal stress \( p=500\) kPa, the preset stress ratio and the intermediate stress ratio \(b_\sigma =0.5\) have been maintained constant throughout. The intermediate principal stress has been fixed in the y axis direction. The major principal stress axis rotates in the \(\left( {x,z} \right) \) plane for \( 3\times 10^{-4}\) degrees per loading increment. This is a completely stress controlled loading path achieved using the servo-control mechanism described in Sect. 2.2.3. Loading is applied only when the sample is considered equilibrium \((f_{tol} \le 0.01\,\% )\) and the boundary stress condition is closely monitored.

Table 1 Numerical test programme
Fig. 4
figure 4

Stress invariants and principal stress directions. a stress invariants, b principal stress directions

The stress paths for the simulation DEB05Y05 are plotted in Fig. 4, confirming that the mean normal stress, the deviatoric stress and the b value have been kept constant. The deviation of the major principal stress axis to the z axis is denoted as angle \(\alpha \). Figure 5 plots the six stress components and its trajectory in the \(\left( {x,z} \right) \) plane, which is a circle as expected.

Fig. 5
figure 5

Stress paths during rotation of principal stress directions. a stress components, b stress trajectory

Fig. 6
figure 6

Deformation due to rotation of principal stress direction

3 Deformation to rotation of principal stress axes

3.1 Strain components

The strain developed during rotation of principal stress axes is plotted in Fig. 6. The strain components \(\varepsilon _{yx} ,\varepsilon _{yz}\) are observed to be nearly zero, indicating the y axis coincides one of the principal strain directions. \(\varepsilon _{yy}\) continuously accumulates during rotation even though the stress component \(\sigma _{yy} \) has been maintained constant. \(\varepsilon _{yy} \) has been observed to be positive indicating volume contraction. A higher value of \(\varepsilon _{yy} \) is observed at a larger stress ratio. The rate of change flattens when rotation of principal stress axes continues.

The three strain components in the \(\left( {x,z} \right) \) plane \(\varepsilon _{xx} ,\varepsilon _{xz} ,\varepsilon _{zz} \) vary cyclically. There are un-recoverable strains developed in each cycle, more significant during the first few cycles than later. These are clear evidences of plastic deformation caused by rotation of principal stress axes. Similar observations have been reported in experimental hollow cylinder test results on sand [9, 35].

3.2 Strain trajectories

The three cyclic strain components \(\varepsilon _{xx} ,\varepsilon _{xz} ,\varepsilon _{zz} \) are plotted in Fig. 7 in the \(\left( {x,z} \right) \) plane. Only data from cycle 1, 10, 30 and 50 are extracted and plotted for clarity. Different from the circular stress trajectory, the strain trajectories are initially spiral. The vector from the start to finishing point of each cycle indicates the amount of plastic deformation, which are significant during the first few cycles. The strain trajectories gradually approaches circular and become closed as rotation continues. A larger strain trajectory is observed at a greater stress ratio, similar to previous numerical and experimental observations [8, 9, 27, 35]. However experimental observations report elliptical strain trajectories [35]. The difference may be due to the idealization in DEM simulation or the non-uniformity in developed hollow cylindrical testing, and is subject to more investigation.

Fig. 7
figure 7

Strain trajectories at different stress ratios

The normalized strain increment defined as \(\Delta \varepsilon _{IJ}^R =\lim _{\Delta \alpha \rightarrow 0} \left( {{\Delta \varepsilon _{IJ}}/{\Delta \alpha }} \right) \) has been proposed to quantify the amount of strain increment per unit amount of stress rotation. With the y axis being the principal strain direction and \(\varepsilon _{yy}^R \) plotted in Fig. 6, what of interest is the deformation in the \(\left( {x,z} \right) \) plane, which can be presented in terms of \(\left( {\Delta \varepsilon } \right) _v^R =\Delta \varepsilon _{xx}^R +\Delta \varepsilon _{zz}^R , \left( {\Delta \varepsilon } \right) _q^R =\sqrt{{\left( {\Delta \varepsilon _{xx}^R -\Delta \varepsilon _{zz}^R } \right) ^{2}}/4+\Delta \varepsilon _{xz}^R \Delta \varepsilon _{zx}^R }\) and \(\alpha _{\Delta \varepsilon }^R ={\hbox {atan}\left[ {{2\Delta \varepsilon _{xz}^R }/{\left( {\Delta \varepsilon _{zz}^R -\Delta \varepsilon _{xx}^R } \right) }} \right] }/2\), in which \(\left( {\Delta \varepsilon } \right) _q^R \) equals the diameter of the osculating circle for the strain trajectories in the \(\left( {x,z} \right) \) plane. \(\left( {\Delta \varepsilon } \right) _q^R \) in the \(50\mathrm{th}\) cycle is plotted in Fig. 8 showing that much more significant strain increments at higher stress ratios.

3.3 Volume contraction

The volumetric strain \(\varepsilon _v \) has been plotted in Fig. 9. Although the specimen is categorized as dense, and excess volume dilation occurs in monotonic shearing as shown in Fig. 3, the sample contracts when subjected to rotation of principal stress axes. The rate of volume contraction becomes smaller with the number of cycles increases. Although 50 cycles are not sufficient to bring the sample into the ultimate void ratio, it is anticipated that the volume strain reaches the limit should the stress rotation continue. The specimen hence reaches the ultimate state. As previously reported, the specimen approaches a denser state at the higher stress ratio. This is similar to the experimental observation reported on the drained response of sand under rotational shear [9, 35]; and shares the same mechanism with the larger pore pressure build-up at higher stress ratio in the undrained rotational shear [36, 37].

The volumetric strain might be contributed by compression in the y direction or contraction in the \(\left( {x,z} \right) \) plane. As observed in Fig. 6, \(\varepsilon _{yy} \) is always compressive, more significant at a higher stress ratio. Comparing the volumetric strain in Fig. 9 and \(\varepsilon _{yy} \) in Fig. 6, it is seen that the sample contracts in the \(\left( {x,z} \right) \) plane at \(\eta =0.5, \eta =0.6, \eta =0.7\), while in the case of \(\eta =0.9\), the sample experiences significant dilation in the \(\left( {x,z} \right) \) planes.

3.4 Deformation non-coaxiality

Deformation non-coaxiality is an interesting feature of granular materials. The degree of non-coaxiality, defined as the difference between the normalized strain increment direction \(\alpha _{\Delta \varepsilon }^R \) and the principal stress direction \(\alpha \) has been plotted in Fig. 10. The elastic strain increment is believed to be small in comparison with the plastic strain increment, the total strain increment can be used to determine approximately the plastic strain increment direction, as suggested by Gutierrez et al. [38]. Such an approximation is followed here for data analyzing.

Fig. 8
figure 8

\(\left( {\Delta \varepsilon } \right) _q^R \) at different stress ratios

Fig. 9
figure 9

Volumetric strain

Fig. 10
figure 10

Effect of stress ratios on deformation non-coaxiality

The strain increments \(\Delta \varepsilon _{IJ}\) occurred during stress rotation of \(\Delta \alpha \approx 3^{\circ }\) have been extracted to calculate the normalized strain increment \(\Delta \varepsilon _{IJ}^R \) and hence the principal direction \(\alpha _{\Delta \varepsilon }^R \). It varies between \(30^{\circ }\) and \(40^{\circ }\). The degree of non-coaxiality is smaller, i.e., the deformation is more coaxial when the stress ratio gets higher, consistent with previous numerical and experimental observations [79, 27, 35].

4 Charactersation and observation of internal structure

Discrete element simulation provides not only macro information of the representative element but also detailed data on internal structure and particle interactions. In this section, we present the evolution of internal structure during rotation of principal stress axes in terms of contact normal-based fabric tensor. In this study, we differentiate the contact \(C^{AB}\), denoting the point on particle A from the contact point \(C^{BA}\), denoting the point on particle B between a particle pair in contact. Each contact has a unique normal direction, pointing from the contact point towards particle interior.

4.1 Contact normal-based fabric tensor

It is of interest to characterize the directional distribution of contact normal density. Kanatani [39] established a mathematical theory to describe the directional distributions of orientations. The \(2\mathrm{nd}\) order polynomial approximation of the probability density function \(E(\mathbf{n})\) takes the form:

$$\begin{aligned} E(\mathbf{n})=\frac{1}{E_0 }\left( {1+D_{ij} n_i n_j } \right) \end{aligned}$$
(18)

where \(E_0 =4\pi , D_{ij} \) is deviatoric and symmetric, referred to as the anisotropy tensor. We can further propose a function

$$\begin{aligned} C^{p}(\mathbf{n})=\frac{\omega }{E_0 }\left( {1+D_{ij} n_i n_j } \right) \end{aligned}$$
(19)

describing the likelihood of one particle having a contact in the direction \(\mathbf{n}\), where \(\omega ={N_c }/{N_p }\) is the ratio of contact number over particle number, known as particle coordination number.

In this expression, two parameters are necessary to characterize the material internal structure. \(\omega \) is an index on particle packing density and \(D_{ij} \) characterizes the anisotropy in contact normal density distribution. They can be determined by calculating the following moment tensor:

$$\begin{aligned} M_{ij} =\frac{1}{N_p }\sum \limits _{k=1}^{N_c } {n_i^k n_j^k } \end{aligned}$$
(20)

where \(n_i^k \) is the k-th contact normal vector. The coordination number can be found as \(\omega =M_{ii} \), while the anisotropy tensor \(D_{ij} \) can be found as

$$\begin{aligned} D_{ij} =\frac{15}{2}\left( \frac{M_{ij}}{\omega }-\frac{1}{3}\delta _{ij}\right) \end{aligned}$$
(21)

where \(\delta _{ij} \) is the Kronecker delta [40, 41].

Figure 11 plots the evolution of particle coordination number and anisotropic fabric during monotonic shearing with \(b=0.5\). Upon shearing, the sample coordination number reduces while the fabric anisotropy develops. The points where stress rotation has been subsequently applied are marked with the stars.

Fig. 11
figure 11

Fabric evolution during monotonic shearing. a Coordination number, b anisotropy tensor

4.2 Fabric evolution during rotation of principal stress axes

The particle coordination number during stress rotation has been plotted in Fig. 12. The particle coordination number sees a trend of decreasing during the first few cycles, and then rebounding slightly while keeping cycling.

Fig. 12
figure 12

Evolution of coordination number at different stress ratios

Fig. 13
figure 13

Evolution of \(D_{yy}\) at different stress ratios

The internal structure shows a cyclic change during the rotation of major principal stress axis. The y axis remains a principal direction. During rotation of the major principal stress direction, the yaxis remains as the principal fabric direction during rotation in the \(\left( {x,z} \right) \) plane, however there is a clear change in \(D_{yy} \) as shown in Fig. 13. \(D_{yy} \) is larger at the higher stress ratio, indicating a larger percentage of contact orientates in the y axis direction at the higher stress ratio.

The anisotropy tensor components in the \(\left( {x,z} \right) \) plane have been plotted in Fig. 14 in terms of \(D_{xz} \) against \({\left( {D_{xx} -D_{zz}} \right) }/2\). It is clear that the anisotropy tensor follows a periodic change. The fabric trajectories approach circles quickly. Comparing the fabric trajectories under different stress ratios, it is evident that the higher the stress ratio, the larger the fabric trajectory is, indicating the higher level of fabric re-organization. The centres of these fabric trajectories are seen different from the origin. As a result, the major principal fabric direction, defined as the angle between the major principal fabric direction and the vertical z-axis, \(\alpha _{F}\), may deviate significantly the major principal stress direction.

Fig. 14
figure 14

Fabric trajectories at different stress ratios

Fig. 15
figure 15

Non-coincidence between the principal stress and fabric axes

The deviation of the principal fabric direction from the principal stress direction \(\left( {\alpha -\alpha _F } \right) \) has been plotted in Fig. 15. At the low stress level \((\eta =0.5)\), the fabric trajectory is of limited size and completely lies in the negative side of the horizontal axis. The principal fabric direction is \(\alpha _F =90^{\circ }\) (vertical) when the principal stress direction is near \(\alpha =90^{\circ }\) (vertical) as well as \(\alpha =0^{\circ }\) (horizontal) when \(\left( {\alpha -\alpha _F } \right) \) goes up nearly \(90^{\circ }\), as seen in Fig. 16a. Higher stress ratio promotes more extensive structure re-organisation. The centre of fabric trajectories approaches the origin and the size of the fabric trajectories increases. The fabric anisotropy follows more closely to the stress state. The principal fabric direction becomes more inclined to the principal stress direction. \(\left( {\alpha -\alpha _F } \right) \) varies periodically but is of a very small magnitude, as seen in Fig. 16b–d.

The centres of fabric trajectory lie on the negative side of the horizontal axis, suggesting more contacts in the z axis direction than those in the x axis direction. The centre coordinates in the \(50\mathrm{th}\) cycle as well as the diameter of the fabric trajectory have been plotted in Fig. 16. The centre of fabric trajectories approaches the origin as the stress ratio increases.

Fig. 16
figure 16

Characteristics of fabric trajectories at different stress ratios. a Centre coordinate, b diameter

4.3 Anisotropy in particle orientation

The previous 2D simulation however reports that the fabric and stress principal directions mostly coincide with each other, with the principal fabric direction lagging behind the principal stress direction, although only a few degrees. The difference is believed to be the closely associated with material anisotropy developed during deposition. In this study, the particles are non-spherical and the samples are prepared using particle deposition method. Anisotropy in particle orientation is expected. The anisotropy tensor \(D_{ij}^{p}\) is used to quantify the anisotropy in particle orientations, defined such that the particle orientation density can be approximated by the function \(E^{p}(\mathbf{n})=\frac{1}{E_0 }\left( {1+D_{ij}^{p}n_i n_j } \right) \). They can be determined using the similar methodology of calculating contact anisotropy tensor. Anisotropy in particle orientation is plotted in Fig. 17. Figure 17(a) plots the information during monotonic shearing while Fig. 17(b) plots particle anisotropy in stress rotation. Only data for the sample DEB05Y05 is presented to exemplify the fabric evolution .

Fig. 17
figure 17

Anisotropy in particle orientation. a monotonic loading, b rotational shear

It is seen that there are very few particles orientated in the vertical z direction after deposition. In monotonic shearing, there are more and more particles inclined to the x axis direction as shear continues, while in stress rotation, the particle orientation is persistent and only decreases slights after a larger number of cycles. With more particles lie in the horizontal plane, there are larger surface areas orientated in the vertical direction, and hence the stronger contact normal anisotropy with the z axis as the principal fabric direction.

Furthermore, an isotropic specimen has been prepared and simulated following the same loading path. The radius expansion method has been used and the prepared sample is expected to be isotropic. The void ratio prior to the rotation of principal stresses is 0.6. The sample is subjected to stress rotation at \(p=500\,\hbox {kPa}, \eta =0.5\) and \(b=0.5\) and labelled as REB05Y05. Its fabric trajectories are presented in Fig. 18. It is evident that the specimen with isotropic particle orientation has the fabric trajectory centred in the origin, confirming the offset is the results of anisotropy in particle orientation. Comparing the shape of the fabric trajectory in Fig. 18 and that in Fig. 14, the particle orientation anisotropy seems to have little effect on the shape of the ultimate fabric trajectory.

Fig. 18
figure 18

Fabric trajectories of initially isotropic sample prepared by radius expansion

Fig. 19
figure 19

The effect of b value on strain trajectory

5 Discussion on the effect of b-value

5.1 Observation of macro deformation

It is known that the intermediate principal stress has a significant effect on the material deformation to stress rotation [15, 28]. To investigate this effect, the specimen has been sheared at different b values \((b=0.0, b=0.5\) and \(b=1.0)\), and then subjected to principal stress rotation with \(\eta =0.9\). The specimen with \(b=1.0\) could sustain the level of stress ratio and soon reached the failure upon stress rotation. Figure 19 compares the strain trajectory of specimen sheared at \(b=0.0, \eta =0.9\), labelled as DEB00Y09 and DEB05Y09. The pattern is observed to be similar while sample DEB00Y09 experiences less irrecoverable plastic deformation, and also approach a circular strain trajectory. The size of strain trajectory for \(b=0.5\) is generally larger than that with \(b=0\), indicating a larger strain increment rate at a greater b value during rotational shear. And the principal direction of strain increment aligns more in the stress increment direction, as shown in Fig. 20, consistent with experimental study [15, 28].

The volumetric strain of the two specimens is compared in Fig. 21a while the out-of-plane strain \(\varepsilon _{yy}\) is plotted in Fig. 21b. Sample DEB00Y09 is less contractive than sample DEB00Y09, consistent with the experimental observation [15, 28]. It is interesting to note that the sample sheared at low b value \((b=0.0)\) experience a dilative strain in the out-of the plain with \(\varepsilon _{yy} \) being negative while sheared at a higher b value \((b=0.5), \varepsilon _{yy}\) is highly contractive. In the (x,z) plane, DEB00Y09 behaves highly contractive, while DEB05Y09 behaves slightly dilative.

Fig. 20
figure 20

The effect of b value: degree of non-coaxiality

Fig. 21
figure 21

The effect of b value on volumetric strain. a Volumetric strain, b \(\varepsilon _{yy}\)

Fig. 22
figure 22

Effect of b value: fabric trajectory

5.2 Observation on fabric evolution

As shown in Sect. 4, the contact-based fabric tensor has a close correlation with stress rotation. The fabric components \(D_{xx},D_{xz},D_{zz}\) of the two specimens, DEB00Y09 and DEB05Y09, are plotted in the deviatoric space, as shown in Fig. 22. The centres of the fabric trajectory locate in the negative side of the horizontal axis due to effects. As discussed in Sect. 4.3, this is the result of particle orientation anisotropy formed during deposition, as a result, there are contacts being more likely formed in the vertical direction. The fact that the two centres are in a similar position further confirms the hypothesis.

The fabric trajectory of DEB00Y09 approaches a circle, which is smaller than that of DEB05Y09. Viewing the change in the contact normal anisotropy as a measure of internal structural re-organisation, a smaller fabric trajectory suggests less significant deformation, as observed in Fig. 19.

The evolution of the coordination number and the out-of the plane fabric component during rotational shear are shown in Fig. 23. After monotonically sheared up to stress ratio \(\eta =0.9\), the coordination number of DEB00Y09 is higher than that of DEB00Y09, and remains larger during stress rotation. The evolution of the out-of plane fabric component \(D_{yy}\) is however opposite. The stress rotation causes a gradually increase in \(D_{yy}\) for the sample with a higher b value \(\hbox {b}=0.5\) but a continuous reduction in sample DEB00Y09.

Fig. 23
figure 23

The effect of b value: coordination number. a Coordination number, b anisotropy fabric component \(\hbox {D}_\mathrm{yy}\)

6 Concluding remarks

The virtual experiment procedure proposed by Li et al. [33] has been implemented in the commercial software PFC3D to reproduce the behavior of three dimensional granular materials subjected to continuous rotation of principal stress axes. The samples are considered as the representative elements. The sample deformation is described using the Biot strain and quantified via boundary surface movements. The stress state is described in terms of the Cauchy stress tensor and quantified with the boundary-wall interactions. The samples are initially tangential polyhedron.

Numerical simulations have been carried out. A dense specimen has been prepared using the deposition method and sheared up to different stress ratios and then subjected to continuous rotation of principal stress axes. Significant plastic deformation has been observed despite that the principal stresses are kept constant. This contradicts the classical plasticity theory, but is in agreement with previous laboratory observations on sand and glass beads. It confirms the capability of the developed numerical technique as a useful tool to facilitate multi-scale investigation on the constitutive theories of granular material. The specimen shows a more contractive behavior at the higher stress ratio, which is partially contributed by the compressive out-of-plane strain component \(\varepsilon _{yy} \). The strain rate direction fells between the principal directions of stress and stress rate. After a larger number of rotational cycles, the sample approaches the ultimate state with constant void ratio and periodic strain path.

The internal structure anisotropy has been quantified using contact-based fabric tensor. Rotation of principal stress axes leads to a denser packing, evidenced by larger coordination numbers, and a cyclic variation in material anisotropy. After a large number of cycles, they approach the periodic trajectories in the (xz) plane, associated with the observed strain trajectories. The larger the stress ratio, the structure becomes more anisotropic. The fabric trajectory become larger, suggesting more significant structure re-organization and explaining the larger strain rate.

Since the samples have been preparing by depositing non-spherical particles, a significant anisotropy in particle orientation has been observed. The likelihood to form contact in the vertical direction is increased. The contact normal anisotropy is hence inclined in the z axis direction. This causes the shift of the fabric trajectory towards the minus \(\left( {D_{xx} -D_{zz}} \right) \) side. Upon continuous rotation, the particle anisotropy weakens, but very slowly.

Simulation has also been conducted to study the effect of the intermediate principal stress ratio. The sample sheared at a lower intermediate principal stress ratio \((b=0.0)\) has been observed to approach a smaller strain trajectory as compared to the case \(b=0.5\), consistent with a smaller fabric trajectory and less significant structural re-organisation. It also experiences less volume contraction with the out-of plane strain component being dilative. Observations on micro-structure and macro-behaviour provide valuable insights for developing the micro-mechanics based constitutive models in order to realistically capture the behavior of granular materials under general loading paths.

7 Appendix 1: Tensor invariants

A three-dimensional symmetric second order tensor \(\mathbf{A}=A_{ij} \mathbf{e}_i \,\otimes \, \mathbf{e}_j \) possesses three such invariants, \(J_1 \left( \mathbf{A} \right) =tr\left( \mathbf{A} \right) =A_{ii} , J_2 \left( \mathbf{A} \right) ={A_{ij} A_{ji}}/2, J_3 \left( \mathbf{A} \right) ={A_{ij} A_{jk} A_{ki}}/3\), and three mutually orthogonal principal directions. \(A_{ij} \) can be decomposed as \(A_{ij} ={A_{kk} \delta _{ij}}/3+a_{ij} =m\delta _{ij} +a_{ij} \), in which \(m={A_{ii}}/3={J_1 \left( \mathbf{A} \right) }/3\) denotes the hydrostatic mean, \(m\delta _{ij} \) is the isotropic part, and \(a_{ij} =A_{ij} -m\delta _{ij} \) is a trace-less term. While m itself is an invariant, the deviatoric stress tensor \(\mathbf{a}=a_{ij}\, \mathbf{e}_i \otimes \mathbf{e}_j \) has two non-trivial invariants \(J_2 \left( \mathbf{a} \right) =J_{2D} \left( \mathbf{A} \right) =J_2 \left( \mathbf{A} \right) -{J_1 \left( \mathbf{A} \right) ^{2}}/6\) and \(J_3 \left( \mathbf{a} \right) =J_{3D} \left( \mathbf{A} \right) =J_3 (\mathbf{A})-2J_1 (\mathbf{A})J_2 (\mathbf{A})/3\,+\,2J_1 (\mathbf{A})^{3}/27\).

A three-dimensional symmetric second order tensor \(\mathbf{A}=A_{ij} \mathbf{e}_i \otimes \mathbf{e}_j \) can also be written in the spectral form as \(\mathrm{A}=\sum \nolimits _{I=1}^3 {A^{I}{} \mathbf{n}_A^I \otimes \mathbf{n}_A^I}\) with \(A^I \left( {I=1,2,3} \right) \) being the principal values and \(\mathbf{n}_A^I \left( {I=1,2,3} \right) \) being the corresponding principal directions, which are mutually orthogonal. Following the convention in mechanics, the superscripts 1, 2 and 3 are assigned to the major, intermediate and minor principal values, respectively \(\left( { A^{1}\ge A^{2}\ge A^{3}} \right) \). Knowing the principal values \(A^I \) and the corresponding directions \(\mathbf{n}_A^I \), the tensor in component form \(A_{ij} \) can be determined from the principal tensor \(\mathbf{B}=\small {\left( {{\begin{array}{lll} {A^{1}}&{} 0&{} 0 \\ 0&{} {A^{2}}&{} 0 \\ 0&{} 0&{} {A^{3}} \\ \end{array}}} \right) }\) and the rotation matrix \(R_{ij} =\small {\left( {{\begin{array}{lll} {n_1^{1}}&{} {n_2^{1}}&{} {n_3^{1}} \\ {n_1^{2}}&{} {n_2^{2}}&{} {n_3^{2}} \\ {n_1^{3}}&{} {n_2^{3}}&{} {n_3^{3}} \end{array}}} \right) }\), where \(n_j^{I}\) represents the j-th component of the principal direction \(\mathbf{n}_A^I \), using the following transformation:

$$\begin{aligned} A_{ij} =R_{ik}^T B_{kl} R_{lj} \end{aligned}$$
(22)

8 Appendix 2: Calculating the deviatoric deformation gradient tensor \(\mathbf{F}_d \)

When the invariants \(\varepsilon _q \hbox {, }b_\varepsilon \) and the principal direction being specified, we can determine the deviatoric deformation gradient tensor \(\mathbf{F}_d \). First, calculate the Lode angle \(\left( {0^{\circ }\le \theta \le 60^{\circ }} \right) \) from

$$\begin{aligned} \tan \theta =\tan \theta _{Fd} =\tan \theta _\varepsilon =\frac{\sqrt{3}b_\varepsilon }{\left( {2-b_\varepsilon } \right) } \end{aligned}$$
(23)

\(J_{2D} \left( {\mathbf{F}_d } \right) \) can be determined from \(\varepsilon _q \) as \(\sqrt{J_{2D} \left( {\mathbf{F}_d } \right) }=\sqrt{J_{2D} \left( {\varvec{{\upvarepsilon }}} \right) }={\sqrt{3}\varepsilon _q }/2\). Denoting \(a=\frac{2}{\sqrt{3}}\sqrt{J_{2D} \left( {\mathbf{F}_d } \right) }\cos \theta , b=\frac{2}{\sqrt{3}}\sqrt{J_{2D} \left( {\mathbf{F}_d } \right) }\cos \left( {\frac{2\pi }{3}-\theta } \right) \) and \(c=\frac{2}{\sqrt{3}}\sqrt{J_{2D} \left( {\mathbf{F}_d } \right) }\cos \left( {\frac{2\pi }{3}+\theta } \right) \), we have the three principal values written as:

$$\begin{aligned} F_d^1 =\frac{J_1 \left( {\mathbf{F}_d } \right) }{3}+a, F_d^2 =\frac{J_1 \left( {\mathbf{F}_d } \right) }{3}+b, F_d^3 =\frac{J_1 \left( {\mathbf{F}_d } \right) }{3}+c\nonumber \\ \end{aligned}$$
(24)

where \(a+b+c=0, ab+bc+ca=-J_{2D} \left( {\mathbf{F}_d } \right) , abc=J_{3D} \left( {\mathbf{F}_d } \right) \). Note that when the deformation is isotropic, \(\sqrt{J_{2D} \left( {\mathbf{F}_d } \right) }=0\), and \(J_1 (\mathbf{F}_d )=3\).

Since the determinant of \(\mathbf{F}_d \) is equal to 1, i.e., \(J(\mathbf{F}_d )=1, J_1 (\mathbf{F}_d )\) can be found by solving the cubic equation

$$\begin{aligned} J(\mathbf{F}_d )= & {} \left( {x+a} \right) \left( {x+b} \right) \left( {x+c} \right) \nonumber \\= & {} x^{3}-J_{2D} \left( {\mathbf{F}_d } \right) x+J_{3D} \left( {\mathbf{F}_d } \right) =1 \end{aligned}$$
(25)

where \(x=\frac{J_1 \left( {\mathbf{F}_d } \right) }{3}\) is denoted for convenience. The discriminant of Eq. (25) is \(\Delta =-\frac{J_{2D} \left( {\mathbf{F}_d } \right) ^{3}}{27}+\frac{\left[ {J_{3D} \left( {\mathbf{F}_d } \right) -1} \right] ^{2}}{4}\). For the practical range of deformation in material stress–strain study, \(\Delta >0\). Hence Eq. (25) has only one real root, which is:

$$\begin{aligned} x= & {} \left( {-\frac{J_{3D} \left( {\mathbf{F}_d } \right) -1}{2}+\sqrt{\Delta }} \right) ^{1/3}\nonumber \\&+\left( {-\frac{J_{3D} \left( {\mathbf{F}_d } \right) -1}{2}-\sqrt{\Delta }} \right) ^{1/3} \end{aligned}$$
(26)

Once x and equivalently \(J_1 (\mathbf{F}_d )\) are determined, the three principal values can be found from Eq. (24). Together with information of principal directions, the deviatoric deformation gradient tensor \(\mathbf{F}_d \) can be calculated as introduced in “Appendix 1”.

Fig. 24
figure 24

The protocol to generate a tangential convex polyhedron. a The horizontal projection, b the vertical intersection

9 Appendix 3: Polyhedral specimen

The specimen boundary is constructed such that:

  1. (a)

    The polyhedron has a top face and a bottom face. They both are parallel to the x–y plane, and referred to as the end walls. The end walls are made to be regular n-sided polygons. The vertices of the two end walls share the same \(\left( {x,y} \right) \) coordinates. The projection of the polyhedron in the \(\left( {x,y} \right) \) plane is shown as Fig. 24a, in which the end walls are marked in shadow. In this example, the coordinates are normalized by R and \(n=10\). The distance between the two end walls is set as \(\hbox {2}R\). The two end walls are centred at (0, 0, R) and \((0, 0,-R)\), respectively.

  2. (b)

    Take a line passing through the mid-points of a pair of parallel sides, as the dashed line in Fig. 24a. The plane formed by this dashed line and the z axis is set as a symmetric plane of the polyhedron boundary. It intersects the specimen boundary and forms also a regular n-sided polygon, whose radius can be also easily found as R, shown in Fig. 24b. Denoting \(\varpi ={180^{\circ }}/n\), the side length of this vertical polygons is \(L=2R\tan \varpi \).

  3. (c)

    In total, we can have n/2 such vertical symmetric planes and n/2 vertical polygons. Due to symmetry, the vertices of these vertical polygons, such as point A, A’, B, B’, C and \(C'\), lie on n / 2 horizontal planes, as seen in Fig. 24b. Also the set of vertices on the same horizontal plane lie on the same circle, as in Fig. 24a. Since the two sides of the vertical polygon lies in the end walls and are the diameters of the inscribed circle of the two end wall polygons, we can find the side length of the two end wall polygons as \(l=2R\tan ^{2}\varpi \).

  4. (d)

    Using this circle as the inscribe circle, we can define a n-sided regular polygon whose sides are parallel to those of the end walls. As such we have in total \(n/2\,n\)-sided regular polygons, including the two defined in Step 1, as shown in Fig. 24a. The total number of vertices of the polyhedron is \(n^{2}/2\). For convenience, we label the vertex sequentially as shown in Fig. 25.

    The superscript indicates the vertex ID number. It starts in the top layer and goes counter-clockwisely with the ID assigned from 1 to n subsequently, and then continues in the layer one level lower. The vertex in the i-th layer can be denoted by \(v^{\left[ {(i-1)n+j} \right] }\) where i ranges from 1 to n / 2 and j ranges from 1 to n. Looking into the horizontal projections, the vertices sharing the same j have the equal angular coordinates.

  5. (e)

    Using these \(n^{2}/2\) vertices, we construct a convex polyhedron, which is used in the simulations here as the specimen initial boundary. The faces of the specimen boundary, besides the two end walls, are referred to as the side walls. There are \(\left( {n/2-1} \right) n\) side walls, which are quadrangles of four vertices and are tangential to the inscribed sphere. For convenience, they are labelled top-down and counter-clockwisely. As shown in Fig. 25, the side wall formed by the four vertices \(v^{1},v^{n},v^{n+1},v^{2n}\) is given the ID 1. Following this convention, the wall with ID \(\left[ {\left( {i-1} \right) n+j} \right] \), where i ranges from 1 to \(\left( {n/2-1} \right) \) and j ranges from 1 to n, is the side wall formed by the set of the four vertices with ID \(\left[ {\left( {i-1} \right) n+j} \right] , \left[ {\left( {i-1} \right) n+\left( {j-1} \right) } \right] , \left[ {i\cdot n+j} \right] \) and \(\left[ {i\cdot n+\left( {j-1} \right) } \right] \) when \(j\ne 1\), or the set of fourpagnpagn vertices with ID \(\left[ {\left( {i-1} \right) n+j} \right] , \left[ {\left( {i-1} \right) n+n} \right] , \left[ {i\cdot n+j} \right] \) and \(\left[ {i\cdot n+n} \right] \) when \(j=1\). The top and bottom walls are labelled as ID \(\left[ {\left( {n/2-1} \right) n+1} \right] \) and ID \(\left[ {\left( {n/2-1} \right) n+2} \right] \).

Fig. 25
figure 25

Labelling the vertex and the side walls with IDs

In 3D spaces, a plane can be generated by specifying the coordinates of a point on the place and the normal direction. In DEM softwares, a rigid wall boundary can be normally defined by a point on the surface and a unit direction. Using the spherical coordinate system, a unit direction tensor can be represented by an inclination angle \(\theta \) and an azimuth angle \(\varphi \). In respect to the symmetry of the polyhedral boundary, for the side wall with ID \(\left[ {\left( {i-1} \right) n+j} \right] \), it can be easily determined that \(\theta ^{w}=2i\cdot \varpi \) and \(\varphi ^{w}=2\left( {j-1} \right) \cdot \varpi \). The tangent point of the side wall on the sphere \(\mathbf{X}^{w}_t \) can hence be represented by its spherical coordinates \(\left( {R,2i\cdot \varpi ,2\left( {j-1} \right) \cdot \varpi } \right) \). Since the polyhedron defined as above is a tangential polyhedron inscribed by a sphere of radius R and centred in the origin O, all the side walls are tangent planes to the inscribed sphere. The out normal direction of the side wall can be found as \(\mathbf{n}^{w}={\mathbf{X}^{w}_t }/{\left\| {\mathbf{X}^{w}_t } \right\| }\), where \(\left\| *\right\| \) denotes the Euclidean norm, representing the length of vector * . The side wall plane can hence be determined as \(\left( {\mathbf{x}-\mathbf{X}^{w}_t } \right) \times \mathbf{n}^{w}=0\), or equivalently \(\left( {\mathbf{x}-\mathbf{X}^{w}_t } \right) \times \mathbf{X}^{w}_t =0\). For the two end walls, the tangent points are their centres, (0, 0, R) and (0, 0,\(_{ }-R)\), with the normal direction being (0, 0, 1) and \((0, 0, -1)\), respectively. This hence allows the generation of the complete set of wall boundaries. Loading is applied by imposing a translation velocity to the wall centres and the rotational velocity to the wall normal directions.