1 Introduction

Mathematical modeling of materials was of great interest during the last century due to the invention of digital computers. As a result, constitutive models were proposed by researchers to simulate the response of materials under monotonic, as well as cyclic loading under the general framework of elasto-plasticity. Materials are often subjected to transient and cyclic stresses due to earthquakes or other sources of dynamic load. A number of models have been introduced by researchers to simulate the cyclic stress–strain behavior of materials, namely by Prager [22], Armstrong and Frederick [2], Mróz [19], Dafalias and Popov [5, 6], Ohno and Wang [20], Hossain [8], Hossain et al. [10], etc. The family of multi-surface models proposed by Mróz [19] and others follows the Masing’s law. These models were proposed for pressure-independent materials. In these models, the cyclic response of the material is simulated using kinematic hardening, isotropic hardening and/or a combination of both. However, most of these cyclic load models are unable to reproduce the memory effect of materials, which eventually produce a closed or near-closed hysteretic stress–strain loop. Dafalias and Feigenbaum [4] suggested combining the Armstrong/Frederick and kinematic hardening rules in a multiplicative way to obtain improved simulations of biaxial ratchetting. Karrech et al. [14] introduced rate dependency as a dissipative mechanism for the ratcheting effect within the framework of the non-associated plasticity. Qian et al. [23] used micro–macro framework and developed a mixed (isotropic–kinematic) hardening model based on the classical isotropic hardening theory, where evolution of back-stress is controlled by the fabric tensor. Chakraborty et al. [3] developed a model for the mechanical response of clays under multi-axial loading conditions and predicted the strain-rate-dependent behavior of clays and the drop in strength toward a residual value at very large shear strains. Yin et al. [33]] put forward a critical state double-yield-surface model with cyclic loading behavior for clay. Iraji et al. [12] modified the cyclic model of generalized plasticity model by Pastor–Zienkiewicz–Chan. These models are based on unconventional plasticity, while a conventional elasto-plastic framework is followed in the current research. Zhaoxia et al. [29] conducted experiments to reveal the inherent fabric anisotropy. Wichtmann et al. [31] and Mašín and Rott [16] explained a high-cycle plastic strain accumulation model. These are advanced features, which can easily be considered in the present formulation, just by modifying the shape of yield surface Tsegaye and Benz [30] worked on the stress-dilatancy behavior of geomaterial. Yao and Wang [32] used the SMP concept to transform the stress and project into a certain mobilized plain for generalizing soil models. In this research, a Drucker–Prager yield function and plastic potential are used for simplicity. Any other yield function like, Mohr–Coulomb or SMP or Lade can be used with in this framework of cyclic load modeling. Tatsuoka et al. [28] found that the behavior of dense Toyoura sand followed closed loops in cyclic PSC and PSE tests. Tatsuoka et al. proposed a one-dimensional formulation of the closed loop behavior of dense Toyoura sand by using extended Masing’s law.

In this paper, a novel formulation of kinematic hardening rule is developed by extending the one-dimensional Masing’s scaling law of curves to general three-dimensional stress space. Many materials follow Masing’s law during cyclic loading. The Masing’s law states that the unloading/reloading curve during cyclic loading keeps a homological ratio of two to one of the monotonic loading curve. The extension of this rule, observed during cyclic loading of most materials, is that the modeling of cyclic load behavior is based on the initial monotonic curve or on the previous reloading, once when the two are intersected [18]. In this paper, cyclic load behavior of soils is simulated by introducing a new framework. In this framework, the dimensionless kinematic hardening rate is varied according to the current value of the stress on a point along the stress path. When the direction of loading is reversed, the initial rate of hardening is restored and the rate of variation of hardening is scaled according to a modified Masing’s law. As a result, a closed hysteretic stress–strain loop is obtained during cyclic loading. A new hyperbolic plastic evolution function is formulated to control the rate of kinematic hardening. The novel cyclic model is applied to simulate the cyclic plane strain compression (PSC) and plane strain extension (PSE) tests of dense Toyoura sand. The Toyoura sand model (monotonic loading) of Tatsuoka et al. [27] is used as skeleton curve to predict its cyclic behavior by using a set of pre-defined rules.

2 General cyclic loading framework

2.1 Modified Masing’s law

Tatsuoka et al. [28] modified the original Masing’s rule to simulate the case of unsymmetric loading and unloading skeleton stress–strain curves including the case where the load–unload curve does not keep a homological ratio of two to the monotonic one.

In Fig. 1, stress–strain relationship τ = f(γ) represents the primary loading and unloading curves that are symmetric about the origin, i.e., f(−γ) = −f(γ). In this case, when the loading direction is reversed at point a \( (\tau_{a} ,\gamma_{a} ), \) the unloading curve is given as:

$$ \frac{{\left( {\tau - \tau_{a} } \right)}}{n} = f\left[ {\frac{{\left( {\gamma - \gamma_{a} } \right)}}{n}} \right] $$
(1)

where n = 2 (case 1). In this case, the unloading curve joins the unloading skeleton curve at the symmetric point b \( (\tau_{b} ,\gamma_{b} ) \) with \( \tau_{b} = - \tau_{a} \) and \( \gamma_{b} = - \gamma_{a} . \) On the other hand, many experimental results show that the unloading curve from point a does not join the skeleton curve at point b (case 2) [17]. In addition, the primary loading and unloading curves could be largely non-symmetric (case 3 and 4). In these cases, two different functions τ = f(γ) and τ = g(γ) should be assigned for loading and unloading curves. It could be assumed that the unloading curve from point a in this case is given by Eq. (2) as follows:

$$ \frac{{\left( {\tau - \tau_{a} } \right)}}{n} = g\left[ {\frac{{\left( {\gamma - \gamma_{a} } \right)}}{n}} \right] $$
(2)
Fig. 1
figure 1

Schematic diagram explaining the proportional rule [28]

For case 3, we can find a point c \( (\tau_{C} ,\gamma_{C} ), \) which is the intersection of the straight line passing through the reversing point a and the origin and the intersecting unloading primary or skeleton curve τ = g(γ) at point c. For the current unloading curve to join the primary or skeleton unloading curve at point c, the factor n should be equal to −\(\frac{{(\tau_{A} - \tau_{C} )}}{{\tau_{C} }}( \ge 0). \) This value is usually different from the constant value of two assumed for the symmetric case and may have variable values during cyclic loading. This is required to correctly simulate the closed loop hysteretic stress–strain response during cyclic loading. The variable value of n is determined by a modified form of the Masing’s rule. The modified form of the Masing’s scaling law is termed here as the proportional rule. In the present model, the relationship between the shear stress variable τ and the plastic hardening parameter γ (in this case, it is the plastic shear strain γ) is used to obtain the instantaneous slope C of the cyclic stress–strain curve. The computed value of C is substituted in Prager’s kinematic hardening law to determine the degree of kinematic hardening in three-dimensional stress space.

2.2 Proportional rule

Masuda et al. [28] proposed a proportional rule to find the variable value of the parameter n, used in Eqs. (1) and (2). The parameter n is determined both for the case of unsymmetric loading and unloading skeleton curves. Depending on the current value of the shear strain γ, either one of two distinct set of rules, termed as the external and internal rule, is used as the proportional rule for computing the value of n. Upon the reversal of the loading direction, either the external or the internal rule is chosen. The selection of either the external or the internal rule depends on the current value of the plastic shear strain γ (or equivalently the plastic hardening parameter γ) with respect to a reference maximum and a reference minimum value of shear strains γ max and γ min (or alternatively maximum and minimum values γ max and γ min of the parameter γ). Figure 2 shows under what conditions either the external or the internal rule is chosen to compute the value of the parameter n.

Fig. 2
figure 2

Selection of external or internal rule depending on the current value of plastic shear strain γ [28]

In Fig. 2, the shear stress mentioned in this paper as τ is identified as s, the shear strain mentioned here as γ is identified as γ, and the maximum and minimum shear strain mentioned here are identified as γ max and γ min. To keep continuity between cyclic loading paths obtained using two distinct set of rules, namely the external rule and the internal rule, it is assumed that a pair of points having reference maximum and minimum shear strains γ max and γ min, respectively, are always located on opposite sides of the origin O, and both these points lie on a straight line passing through the origin (as shown in Fig. 2). The method of determining the maximum and minimum values of the reference shear strains γ max and γ min is explained in detail in Fig. 3 given below. Similar to Fig. 2, in Fig. 3, the shear stress mentioned in this paper as shear stress variable τ is identified as non-dimensional shear factor, s (=sin(φ mob)) and the shear strain mentioned here as γ for the two-dimensional plane strain idealization. In Fig. 3, other variables are defined as s v = vertical stress, s h = horizontal stress, e v = vertical strain and e h = horizontal strain.

Fig. 3
figure 3

Details of the proportional rule [28]

  1. 1.

    Suppose that loading starts from the origin and continues until Point 1 as shown in Fig. 3. At Point 1, γ max equals to the maximum value of γ ever achieved by loading, which equals to say γ A . In this case, γ max at Point 2 (located along the first unloading curve from Point 1) equals to γ A . When the current γ value will become larger than the previous value of γ max (i.e., when γ > γ max = γ A ), the previous value of γ max will be replaced by the current value of γ.

  2. 2.

    γ min is defined as the smaller value of (a) the smallest value of γ ever attained during unloading and (b) the value of γ at which the straight line starting from the point γ max (in this case, Point 1 in Fig. 3), and passing through the origin O, intersects the unloading skeleton curve s = g(γ). In this case, the point of intersection is Point C as shown in Fig. 3. The value of γ min at Point 2 equals to γ C , which is the value of γ at Point C.

  3. 3.

    γ max is defined as larger of (a) the largest value of γ ever attained during loading and (b) the value of γ at which the straight line starting from the point γ min (in this case, Point C in Fig. 3) and passing through the origin O intersects the loading skeleton curve s = f(γ).

The selection of the external and internal part of the proportional rule to obtain the hysteretic relationship for cyclic loads during loading and unloading is described below. The description below refers to Figs. 2 and 3.

  1. 1.

    Curves for reloading are obtained by applying the external and internal rule as follows:

    • When unloading is reversed to reloading, if at that instant the current value of γ is smaller than the existing reference value of γ min, then the reference value of γ min is updated using the current magnitude of plastic shear strain. The reloading curve is obtained in this case by following the external rule. This refers to the left of the γ min region in Fig. 2.

    • When unloading is reversed to reloading with \( \gamma_{\hbox{max} } > \gamma > \gamma_{\hbox{min} } , \) the existing values of γ max and γ min are maintained. The reloading curve in this case is obtained by following the internal rule. This refers to the region between γ min and γ max in Fig. 2.

    • When loading is continued so that the current value of \( \kappa \) becomes greater than the existing reference value of γ max, then the reference value of γ max is replaced by the current value of plastic shear strain and the loading skeleton curve s = f(γ) is followed. This refers to the right of the γ max region in Fig. 2. In this case, the external rule is followed.

  2. 2.

    Curves for unloading are obtained by applying the external and internal rule as follows:

    • When loading is reversed to unloading, if at that instant the current value of γ is greater than the existing reference value of γ max, then the reference value of γ max is replaced by the current magnitude of plastic shear strain. The unloading curve in this case is obtained by following the external rule. This refers to the right of the γ max region in Fig. 2.

    • When loading is reversed to unloading with \( \gamma_{\hbox{max} } > \gamma > \gamma_{\hbox{min} } , \) the existing values of γ max and γ min are maintained. The unloading curve in this case is obtained by following the internal rule. This refers to the region between γ min and γ max in Fig. 2.

    • When unloading is continued so that the current value of γ becomes smaller than the existing reference value of γ min, then the reference value of γ min is replaced by the current value of plastic shear strain and the unloading skeleton curve s = g(γ) is followed. This refers to the left of the γ min region in Fig. 2. In this case, the external rule is followed.

The rules for computing the variable value of the parameter n when using either the external or internal part of the proportional rule are described below in greater detail referring to Fig. 3 shown above.

  1. 1.

    During the first primary loading from origin O \( (\gamma_{0} ,s_{0} ), \) where \( \gamma = \gamma_{\hbox{min} } = 0, \) until Point 1, γ max is always equal to the current value of γ and the curve follows the loading skeleton curve η = f(γ). At Point 1 \( (\gamma_{A} ,s), \) we have γ max equals to γ A and γ min equals to γ C .

  2. 2.

    When loading is reversed at Point 1, the unloading curve bound for Point C is obtained by following the external rule (with γ max equals to γ A ) using the equation for the known unloading skeleton curve s = g(γ) and the coordinate at Point C (γ C , s C ), by computing the parameter n 1 as follows:

    $$ \frac{{\left( {s - s_{1} } \right)}}{{n_{1} }} = g\left[ {\frac{{\left( {\gamma - \gamma_{1} } \right)}}{{n_{1} }}} \right] $$
    (3a)
    $$ n_{1} = \frac{{( - s_{C} ) + s_{1} }}{{\left( { - s_{C} } \right)}} = \frac{{( - \gamma_{C} ) + \gamma_{1} }}{{\left( { - \gamma_{C} } \right)}} ( \ge 0) $$
    (3b)
  3. 3.

    When the unloading continues past Point C–Point 4, the curve follows the unloading skeleton curve s = g(γ) with γ min equal to the current value of γ at Point 4 and γ max equal to the value of γ at Point 5 opposite the origin O.

  4. 4.

    Here, the target plastic strain, corresponding to which target γ target is introduced, is defined as the value of γ for which either the load or unload curve is bound after the loading direction is reversed. For the unloading and reloading curves following the external rule, γ target is equal to γ min and γ max, respectively, as shown in Fig. 2. More specifically, in Fig. 3, γ target for the unloading curve starting from Point 1 and bound for Point C is γ min = γ C . Similarly, γ target for the loading curve starting from Point C and bound for Point 3 is γ max = γ, where γ A is the value of the plastic shear strain at Point 3.

  5. 5.

    In Fig. 3, when unloading is reversed to reloading at Point 2 \( (\gamma_{B} ,s_{B} ), \) where γ is between γ min = γ C and γ max = γ A , the reloading curve from Point 2 is obtained by following the internal rule. The target point is assumed to be the same as the last point before Point 2 (i.e., Point 1). In this case, the reloading curve is obtained by scaling the loading skeleton curve with the parameter n 2 , the value of which is computed as follows:

    $$ \frac{{\left( {s - s_{2} } \right)}}{{n_{2} }} = f\left[ {\frac{{\left( {\gamma - \gamma_{2} } \right)}}{{n_{2} }}} \right] $$
    (4a)
    $$ n_{2} = \frac{{s_{1} - s_{2} }}{{s_{d} }} = \frac{{\gamma_{1} - \gamma_{2} }}{{\gamma_{d} }} ( \ge 0) $$
    (4b)
    • Point d \( (\gamma_{d} ,s_{d} ) \) is the point at which the straight line starting from the origin O and parallel to the straight line between Points 2 and 1 intersects the loading skeleton curve s = f(γ).

  6. 6.

    In Fig. 3, when loading direction is again reversed at Point D, the re-unloading branch, which is bound for the latest previous point (i.e., Point 2), is obtained by Eq. 3a. However, in this case, another scaling factor n is computed as given by Eq. (5) below:

    $$ n_{3} = \frac{{( - s_{C} ) + s_{1} }}{{\left( { - s_{C} } \right)}}\frac{{s_{D} - s_{2} }}{{s_{1} - s_{2} }} = \frac{{( - \gamma_{C} ) + \gamma_{1} }}{{\left( { - \gamma_{C} } \right)}}\frac{{\gamma_{D} - \gamma_{2} }}{{\gamma_{1} - \gamma_{2} }} ( \ge 0) $$
    (5)
    • At Point 2, the re-unloading curve at Point D does not smoothly rejoin the previous unloading curve 1 → 2 → C. The unloading curve beyond Point 2 follows the curve 1 → 2 → C after joining at the Point 2 with changed slope.

  7. 7.

    When following the internal rule, the value of γ target is always equal to the value of γ at the immediate previous reversing point (before the current reversing point). For example, γ target is γ A  = γ max for the reloading branch 2 → 1 and γ B for the re-unloading branch D → 2.

  8. 8.

    Whenever the immediate previous reversing point is passed, all memory of previous cyclic loading history is erased. Hence, the reloading curve beyond Point 2 (say from Point E) is bound for Point 3 and not for Point D.

2.3 Drag rule

In order to address the effect of accumulation of plastic shear strains on the cyclic behavior of the model, the ‘drag rule’ is introduced [28]. According to this rule, any cyclic response will depend on the accumulated plastic shear strains up to the previous load reversal point. The proportional rule of the previous section will also hold true here, but the skeleton curves (both in compression and extension) will move away from the origin of axes by the amount of drag value defined as follows:

$$ h(\mu ) = \frac{\mu }{{\frac{\mu }{{\beta_{\hbox{max} } }} + \frac{1}{{F_{c} }}}} $$
(6)

In Eq. (6) above, µ is the accumulated plastic strain, β max is the maximum possible accumulated plastic strain, and F c is a fitting parameter. The rate of drag increases with increase in the value of the parameter F c .

3 Constitutive equations

3.1 Small strain theory

The present model has been developed for small strains. Thus, the total strain increment can be divided into its elastic and plastic parts as follows:

$$ {\text{d}}\epsilon_{ij} = {\text{d}}\epsilon_{ij}^{e} + {\text{d}}\varepsilon_{ij}^{p} $$
(7a)

In Eq. (7), \( {\text{d}}\epsilon_{ij}^{e} \) represents the elastic component of the incremental strain and \( {\text{d}}\varepsilon_{ij}^{p} \) represents the incremental plastic strain. As the material is pressure sensitive, both the total bulk modulus K t and elastic shear modulus G e are assumed to be variable and dependent on the mean effective pressure. These are computed using a modified from of the Hooke’s law. The incremental plastic strain components are determined by the flow rule and consistency condition as described below in the next section. The elastic shear modulus and bulk modulus were described as follows.

$$ G_{e} = G_{0} \left( {\frac{{\left( {2.17 - e} \right)^{2} }}{1 + e}} \right)\left( {\sigma_{m} } \right)^{m_0} $$
(7b)

where G 0 is a constant to be determined from relevant experimental result, e is void ratio, m 0 is an exponent to be determined, which is 0.4 for Toyoura sand [13], and σ m is the mean stress (σ 1 + σ 2 + σ 3)/3. Later on, this formulation was calibrated with static PSC test by Park [21], and similar results were obtained.

A total bulk modulus was formulated with a nonlinear equation, which is similar to Eq. (7c) as follows,

$$ K^{t} = K_{0} \left( {\frac{{\left( {2.17 - e} \right)^{2} }}{1 + e}} \right)\left( {\sigma_{m} } \right)^{m_0} $$
(7c)

where K 0 is a constant to be determined from relevant experimental result, e is void ratio, m 0 is an exponent to be determined, which is 0.45 for Toyoura sand [25]. The reason of formulating a total bulk modulus is the inability of a single yield model (a stress–dilatancy relation for shearing only) to capture the plastic volumetric strain characteristics for a wide range of stress path.

3.2 Yield and plastic potential function

The cyclic load model described in this paper is a generalized elasto-plastic, pure kinematic hardening model. A simple hyperbolic equation [9] has been used as the evolution function for the yield surface. The yield surface used is a generalized Drucker-Prager cone given by the following equation:

$$ F = \sqrt {J_{2} } - mI_{1} - K_{t} = 0 $$
(8)

In Eq. (8), I 1 is the first invariant of stress tensor (i.e., hydrostatic stress component), J2 is the second invariant of rotated deviatoric stress tensor \( s_{ij}^{{\prime }} , \) K t is the cohesive term (which is set to zero in for cohesionless soils), m is the slope in the meridian plane (which is set to a very small number for pure kinematic hardening). The rotated deviatoric stress tensor \( s_{ij}^{{\prime }} \) is defined as follows:

$$ s_{ij}^{{\prime }} = s_{ij} - (I_{1} /3)\alpha_{ij} $$
(9)

In Eq. (9) above, s ij is the pure deviatoric stress tensor component defined as follows,

$$ s_{ij} = \sigma_{ij} - (\delta_{ij } )I_{1} /3 $$
(10)

\( \alpha_{ij} \) is the components of back-stress responsible for kinematic hardening, and \( \delta_{ij} \) is the components of kronecker delta.

A plastic potential function H is selected such that the deviatoric plastic flow is associative. Thus, the deviatoric component of incremental plastic strains is obtained using a plastic potential function, which is identical to the yield function. A non-associative plastic flow rule is used for the dilatational component of the incremental plastic strain. The dilatational or plastic volumetric component of the plastic strain increment is given by Rowe’s stress–dilatancy relation given as follows:

$$ {\text{d}}\varepsilon_{v}^{p} = D \cdot {\text{d}}\gamma^{\text{p}} $$
(11a)

In Eq. (11), \( {\text{d}}\gamma^{\text{p}} \) is the maximum plastic shear strain \( (\varepsilon_{1}^{p} - \varepsilon_{3}^{p} ) \) and D is a material parameter of the model. D is given by Eqs. (11b) and (11c) for loading and unloading [28].

For loading:

$$ D = \frac{{s\left( {1 + \frac{1}{Kr}} \right) + \left( {1 - \frac{1}{Kr}} \right)}}{{s\left( {1 - \frac{1}{Kr}} \right) + \left( {1 + \frac{1}{Kr}} \right)}} $$
(11b)

For unloading:

$$ D = \frac{{s\left( {1 + \frac{1}{Kr}} \right) - \left( {1 - \frac{1}{Kr}} \right)}}{{ - s\left( {1 - \frac{1}{Kr}} \right) + \left( {1 + \frac{1}{Kr}} \right)}} $$
(11c)

where Kr is the constant given by the Rowe’s stress–dilatancy relationship. In this research, Kr = 3.5 is used for both loading and unloading.

3.3 Kinematic hardening rule in general 3D stress space

A purely deviatoric kinematic hardening rule is adapted following Prager’s equation given by

$$ {\text{d}}\alpha_{ij} = C\varepsilon_{ij}^{p} = \lambda C\frac{\partial H}{{\partial s_{ij} }} $$
(12a)

In Eq. (12a), C is the instantaneous slope of the kinematic hardening evolution curve \( (\alpha_{ij} \)\( \varepsilon_{ij }^{p} \) relationship) as shown in Eq. (12b). For constant C, the kinematic hardening rule reduces to Prager’s linear kinematic hardening rule. This results in linear stress–strain curves.

In the proposed model, an evolution rule for C is given as a function of the accumulative plastic strains. Upon reversal of loading, the loading and unloading skeleton curves are scaled according to a modified Masing’s rule. This results in closed hysteretic loops [28]. Then from the instantaneous slope of the curve, C is calculated as a model parameter. As a result, a closed hysteretic relationship of \( \alpha_{ij} \)\( \varepsilon_{ij }^{p} \) is obtained. Thus, the model simulates a nonlinear stress–strain relationship, which obeys the modified Masing’s rule.

In order to accommodate the effect of accumulated plastic strains into the model, Prager’s kinematic hardening rule is modified in the following way;

$$ {\text{d}}\alpha_{ij} = (1.0 + h(\mu ))C\varepsilon_{ij}^{p} = \lambda (1.0 + h(\mu ))C\frac{\partial H}{{\partial s_{ij} }} $$
(12b)

In Eq. (12b), \( h(\mu ) \) is the drag factor responsible for the effect of the accumulation of plastic strains into the model.

3.4 Evolution equation

The \( \alpha_{ij} \)\( \varepsilon_{ij }^{p} \) evolution equation turns out to be identical to the \( s_{ij} \)\( \varepsilon_{ij }^{p} \) relationship. This can be deduced from Eqs. (8) and (9). From Eqs. (8) and (9), it can be observed that as the parameter m is set to a very small quantity, J 2 must reduce to zero to fulfill the consistency condition at any load step. In order to comply with the consistency condition, it is necessary to substitute \( \alpha_{ij} = s_{ij} /p. \) Thus, \( \alpha_{ij} \) can be represented by a suitable measure of a non-dimensional stress quantity. In this paper, s = f(γ) relationship is used as the evolution equation, where s is defined to be q/p = sin(φ). The variables p and q are the mean pressure and deviatoric stresses in triaxial stress state.

The nonlinear relation s = f(γ) can be numerically modeled using nonlinear stress–strain equations such as those given by Konder [15], Saenz [24], Griffith and Prevost [7], Tatsuoka et al. [27], Tanaka [26], Al-Karni and Alshenawy [1], and Hossain et al. [11]. According to Hossain et al. [11], the sγ relationship for loading can be defined as follows:

$$ s = f(\gamma ) = s_{\hbox{max} } \cdot \frac{{\kappa_{\hbox{max} } + a}}{{\kappa_{\hbox{max} }^{2} }} \cdot \gamma \cdot \left( {\frac{{\kappa_{\hbox{max} } + a}}{\gamma + a} - \frac{a}{{\kappa_{\hbox{max} } + a}}} \right) $$
(13)

In Eq. (13), a is a material parameter, which determines the shape of the curve [9]. The value of the parameter a can be evaluated from the initial value of the kinematic hardening parameter C. The material parameter \( \kappa_{\hbox{max} } \) represents the maximum cumulative plastic shear strains. It is directly related to the maximum reference shear strain \( \gamma_{\hbox{max} } \cdot s_{\hbox{max} } \) is the value of s at the peak stress state \( ( s_{\hbox{max} } = \sin (\varphi )_{\hbox{max} } ). \) Similarly, an unloading sγ relationship can also be obtained using Eq. 13, but with different set of parameters so that the loading and unloading skeleton curves remains non-symmetric.

4 The return mapping algorithm

In this algorithm, the deviatoric and hydrostatic components of the elastic trial stresses \( s_{ij}^{\text{tr}} \) and p tr is returned to the current updated yield surface, following the existing hardening law and flow rule. This integrates the incremental elasto-plastic stress–strain equations in a robust way. In this particular scheme, stress tensor \( \sigma_{ij} \) on the current yield surface is divided into two components, the deviatoric stress tensor component s ij and the hydrostatic stress tensor component \( p\delta_{ij} . \) The components of the tensor α ij defines the angle of the center line of the concentric cone. The tensor α ij determines kinematic hardening of the cone during cyclic loading. The current deviator and hydrostatic stress tensor components s ij and \( p\delta_{ij} \) and kinematic hardening tensor α ij satisfy the yield function F as given by Eq. (14) below:

$$ F(s_{ij} ,p,\alpha_{ij} ) = 0 $$
(14)

Expanding the yield function F around the neighborhood of the elastic trial stresses \( s_{ij}^{tr} \) and p tr into a Taylor’s series gives Eq. (15a) as follow:

$$ F\left( {s_{ij}^{\text{tr}} ,p^{\text{tr}} ,\alpha_{ij} } \right) = F\left( {s_{ij} ,p,\alpha_{ij} } \right) + \frac{\partial F}{{\partial s_{ij} }}{\text{d}}s_{ij} + \frac{\partial F}{\partial p}{\text{d}}p + \frac{\partial F}{{\partial \alpha_{ij} }}{\text{d}}\alpha_{ij} $$
(15a)

Substituting \( F(s_{ij} ,p,\alpha_{ij} ) = 0 \) from Eq. (14) into Eq. (15a), Eq. (15b) is obtained as follows:

$$ F\left( {s_{ij}^{\text{tr}} ,p^{\text{tr}} ,\alpha_{ij} } \right) = \frac{\partial F}{{\partial s_{ij} }}{\text{d}}s_{ij} + \frac{\partial F}{\partial p}{\text{d}}p + \frac{\partial F}{{\partial \alpha_{ij} }}{\text{d}}\alpha_{ij} $$
(15b)

For elastic trial stresses, the following relations hold between the incremental stresses \( {\text{d}}s_{ij} \) and dp.

$$ {\text{d}}s_{ij} = 2G \cdot {\text{d}}\gamma^{p} = 2G \cdot \lambda \frac{\partial H}{{\partial s_{ij} }} $$
(16)
$$ {\text{d}}p = K \cdot {\text{d}}\varepsilon_{v}^{p} = K \cdot \lambda D $$
(17a)

where H is the plastic potential function, defining the direction of plastic strain, \( {\text{d}}\gamma^{p} \) is the effective plastic strain and λ is the proportionality constant (plastic multiplier). Use of different plastic potential function makes the model to be using the ‘non-associated’ flow of plastic strain.

The relation in Eq. (17) is derived from Rowe’s stress–dilatancy relation \( D = \frac{{{\text{d}}\varepsilon_{v}^{p} }}{{{\text{d}}\gamma^{p} }}. \) From this relation, the following relation is derived:

$$ {\text{d}}\varepsilon_{v}^{p} = D \cdot {\text{d}}\gamma^{p} = D \cdot {\text{d}}\kappa = D \cdot \lambda $$
(17b)

It can be shown that for plane strain conditions that \( {\text{d}}\gamma^{p} = {\text{d}}\kappa = \lambda . \)

Combining Eqs. (15b), (16) and (17) and using Prager’s kinematic hardening rule defined in Eq. (13), the magnitude of the scalar plastic multiplier λ may be obtained as follows: \( F(s_{ij}^{\text{tr}} ,p^{\text{tr}} ,\alpha_{ij} ) - \frac{\partial F}{{\partial s_{ij} }}2G \cdot \lambda \frac{\partial H}{{\partial s_{ij} }} - \frac{\partial F}{\partial p}KD \cdot \lambda - \lambda \frac{\partial F}{{\partial \alpha_{ij} }}C\frac{\partial H}{{\partial s_{ij} }} = 0 \)

$$ \lambda = \frac{{F\left( {s_{ij}^{\text{tr}} ,p^{\text{tr}} ,\alpha_{ij} } \right)}}{{\frac{\partial F}{{\partial s_{ij} }}2G\frac{\partial H}{{\partial s_{ij} }} + \frac{\partial F}{\partial p}KD + \frac{\partial F}{{\partial \alpha_{ij} }}C\frac{\partial H}{{\partial s_{ij} }}}} $$
(18)

Using the elastic trial stresses \( s_{ij}^{\text{tr}} \) and p tr, the updated integrated elasto-plastic stresses \( s_{ij}^{\text{updated}} \), \( p^{\text{updated}} \) and \( \sigma_{ij}^{\text{updated}} \) and kinematic hardening parameter \( \alpha_{ij}^{\text{updated}} \) are obtained as shown in Eqs. (19) and (20) as given below:

$$ s_{ij}^{\text{updated}} = s_{ij}^{\text{tr}} - \lambda \cdot 2G \cdot \frac{\partial F}{{\partial s_{ij} }} $$
(19a)
$$ p^{\text{updated}} = p^{\text{tr}} - \lambda \cdot K \cdot D $$
(19b)
$$ {\text{d}}\alpha_{ij} = \lambda C\frac{\partial H}{{\partial s_{ij} }} $$
(19c)
$$ \sigma_{ij}^{\text{updated}} = s_{ij}^{\text{updated}} + p^{\text{updated}} \delta_{ij} $$
(20a)
$$ \alpha_{ij}^{\text{updated}} = \alpha_{ij} + {\text{d}}\alpha_{ij} $$
(20b)

The updated values of the stresses \( s_{ij}^{\text{updated}} \) and \( p^{\text{updated}} \) and the kinematic hardening parameter \( \alpha_{ij}^{\text{updated}} \) obtained using the return mapping algorithm satisfy the updated yield function given by Eq. (21) as follows:

$$ F\left( {s_{ij}^{\text{updated}} ,p^{\text{updated}} ,\alpha_{ij}^{\text{updated}} } \right) = 0 $$
(21)

5 Implementation details

This section explains the integration of external rule, internal rule and the drag rule using the flow charts depicted in Fig. 4a–e. The meanings of the symbols used in these flowcharts are listed in the “Appendix”. The readers are advised to browse through the meaning of symbols for better understanding of the generation of cyclic loading response according to Masing’s law using these two simple rules.

Fig. 4
figure 4figure 4figure 4figure 4figure 4

a Flowchart showing the start–end module. b Flowchart for external curve: find C module for computing Prager’s kinematic hardening constant C. c Flowchart for start internal rule. d Flowchart for first internal curve. e Flowchart for calculation internal closing curve

There are five interconnected flowchart modules. The first module is shown in Fig. 4a. It may be termed as the ‘start–end’ module. That means all calculations start and end here. The second module is the ‘External Curve (find C) module. This is shown in Fig. 4b. The second module calculates the response parameters due to the external rule. The third part of the flowchart is the ‘Start Internal Rule’ module, which is shown in Fig. 4c. This module calculates and stores the pertinent parameters of the internal curve at the start of the internal load reversal. It does it only once for each internal load reversal. The fourth module is named as ‘First Internal Curve’, which is shown in Fig. 4d. This module calculates the first internal curve following the internal rule. The fifth part of the flowchart is the ‘Internal Closing Curve’, which is shown in Fig. 4e. This module calculates the closing internal curve following the internal rule. In the following sections, each of the flowchart modules is described in further detail.

In the ‘start–end’ module, values of constants (namely Gl, Gu, Lt and Ltt) are initialized. The current direction of loading (Lt) is then compared with the previous loading direction (L). It is to be noted that loading directions are quantified by +1 for compression and −1 for extension. Hence, a negative value of L × Lt implies a change in the loading direction, indicating that a load reversal is imminent. If the value (L × Lt = −1) is true, i.e., the loading direction is reversed, and two things are done. Firstly, internal curve flag, UR, is set to 1, clearing its previous state value, and drag factors are calculated using Eq. (6). In the drag factor calculation, sum of effective plastic shear strains is calculated from all previous cycles. Equation (6) is then used to compute the drag factor to use for the next cycle. This line of action connects to the ‘External Curve (find C)’ module. If the value of load reversal (L × Lt = −1) is false, the flow of action connects to the ‘External Curve (find C)’ module to follow the external curve. The calculation begins with the tracing of the external curve. This module saves the present state of loading direction in Lt variable (Lt = L) at the end before the module returns to its calling routine. Just before it saves the loading direction, a linkage node ‘Save/Return/End’ connects to it from modules ‘External Curve (find C)’, ‘Start Internal Rule’ and ‘Internal Closing Curve’.

‘External Curve (find C)’ module is devised to calculate the skeleton curves following the external part of the proportional rule. While it calculates the parameters of its own path, it also computes the required parameters for the case of future potential load/unload cases for an internal curve. The ‘External Curve (find C)’ module starts with checking whether the present status of the curve is internal or external (UR = 0). If it is true, it means the load path is on an external curve. Now it checks for the loading direction, loading or unloading (L = 1 for loading and vice versa). If the curve is set for the loading (compression) direction, then it will calculate current parameters (γ max, Sf max, slope and C) for the present loading curve and also calculate parameters (γ temp, Sf temp1, γ min, Sf min and Masing’s m) for computing the potential future unload curve. Similarly, if the loading direction is set for unloading (extension) direction, it will calculate current parameters (γ min, Sf min, slope and C) for the present unloading curve and also calculate parameters (γ temp, Sf temp1, γ max, Sf max and Masing’s m) for the potential future loading curve. At the end, current values of the parameters (γ, Sf and m) of the load/unload external curve are saved on arrays with a counter (‘Count’), which is initialized and incremented by a unit. This module then joins the ‘Start–End’ module at the end through the ‘Save/Return/End’ link. At the beginning of this module, if the checking of the present status of the curve (UR = 0) comes out false, the module connects to ‘Start Internal Rule’.

The module ‘Start Internal Rule’ is designed to calculate the loading/unloading parameters once at the reversal of internal load direction. First of all, it checks the internal load reversal by checking the product of load/unload variables (L × Lt × Ltt = 1). If it is false, then it goes to the next module of ‘First Interval Curve’. If the internal load reversal is true, first it retrieves the slope and Sf temp1 from the stored array. Then it checks for the loading/unloading variable (L = 1). After that, it calculates m, Sf and C using the retrieved variables slope and Sf temp1 for both loading and unloading internal curves. It increments the counter ‘Count’ by one and stores the variables γ, Sf, and m in arrays and sets the internal curve flag (Ltt) to −1. Just before storing variables, a node (‘Store γ, Sf, m, Ltt = 1’) from other two modules joins here. The module ends by returning to the start module at the end through ‘Save/Return/End’.

The module ‘First Internal Curve’ is designed to calculate the strength (Sf) and deformation (γ) variable following the internal rule of modified Masing’s law. At first, the nature of the internal curve is determined by checking the counter (‘Count = 1’). If it is false, it means that the internal curve is a closing curve and the control is transferred to ‘Internal Closing Curve’ module. If it is true, it means that the curve is a starting internal curve. Depending on the loading or unloading branch of the curve, a variable γ temp is calculated. If the value of γ temp is within the bounds of minimum and maximum values of effective plastic shear strain (γ temp < γ max − γ min), internal curve parameters are calculated (Sf and C) using the retrieved value of m from stored array for either the loading or unloading internal curve. At any point of loading or unloading, if γ temp value exceeds the minimum or maximum permissible value for internal curve, the module transfers the control to ‘External Curve (find C)’ module. At the end of the module, it joins the ‘Start Internal Rule’ module through the connecting node (‘Store γ, Sf, m, Ltt = 1’).

The module ‘Internal Closing Curve’ is formulated to calculate the strength (Sf) and deformation (γ) variables following the internal rule of modified Masing’s law to close a previous set of internal curves. Firstly, the loading/unloading (L = 1) condition is checked. Depending on the loading or unloading branch of the curve, a variable γ temp is calculated. If the value of γ temp is within the bounds of minimum and maximum value of effective plastic shear strains (γ temp < γ max − γ min), internal curve parameters are calculated (Sf and C), using the retrieved value of m from stored array for either the loading or unloading internal curve. At any point of loading or unloading, if the γ temp value exceeds the minimum or maximum permissible value for the internal curve, the counter is decreased by 2 (‘Count = −2’). If the value of Count is reduced to zero, then value of ‘UR’ is set to zero (‘UR = 0’) and the control is transferred to ‘External Curve (find C)’ module. At the end of the module, it joins the ‘Start Internal Rule’ module through the connecting node (‘Store γ, Sf, m, Ltt = 1’).

6 Results of the parametric study

The model is based on the definitions of stresses and strains of the elastic and plastic component of soil behavior. The elastic part of the model is described in the beginning of Sect. 3 of this paper. The plastic part of the model is described by a simple combination of Prager’s kinematic hardening law and Masing’s modified scaling law. In the plastic part, a Drucker–Prager type yield function, an evolution function and Rowe’s stress-dilatancy rule is applied in a simple way. The values of the parameters used in the parametric study are depicted on the figures. Values of other necessary variables are discussed wherever felt necessary.

Figure 5 shows the variation of sin(\( \phi \))–γ relationship with respect to varying κ max. The variables of this figure are shown in Eq. (13). The value of γ max is sin(\( \phi \))max. Displacement controlled loading is used and the pattern of loading is shown in the inset of Fig. 5. In Sect. 2, the modified Masing’s law is explained. Although unsymmetric loading and unloading skeleton curves may be used, symmetric loading and unloading skeleton curves are shown in Fig. 5. The value of κ max used in Eq. (13) is varied from 0.5 to 1.0 in six steps. It can be observed that there is little softening effect on the cyclic response, which is expected.

Fig. 5
figure 5

Sin(\( \phi \))–γ for varying γ max

Figure 6 shows the variation of sin(\( \phi \))–γ relationship with respect to varying sin(\( \phi \)). Keeping κ max fixed to a value of 1.0. Displacement controlled loading is used here and the pattern of loading is shown in the inset of Fig. 6. Although unsymmetric loading and unloading skeleton curves may be used, symmetric loading and unloading skeleton curves are shown in Fig. 6. The value of sin(\( \phi \)) used in Eq. (13) is varied from 0.5 to 1.0 in six steps. It can be observed that there is a significant effect in the response as expected.

Fig. 6
figure 6

Sin(\( \phi \))–γ for varying sin(\( \phi \))max for symmetric skeleton curve

Figures 7 and 8 show the variation of sin(\( \phi \))–γ relationship with respect to varying sin(\( \phi \)), keeping \( \gamma \) max fixed to a value of 1.0 for unsymmetric load and unload skeleton curves. Displacement controlled loading is used and the pattern of loading is shown in the inset of Figs. 7 and 8. An unsymmetric unloading skeleton curve is used in Fig. 7. An unsymmetric loading skeleton curve is used in Fig. 8. The value of sin(\( \phi \)) in Eq. (13) is varied from 0.5 to 1.0 in six steps for both the figures. It can be observed that there is a significant effect in response. This follows from the modified Masing’s law.

Fig. 7
figure 7

Sin(\( \phi \))–γ for varying sin(\( \phi \))max for unsymmetric skeleton curve (unloading)

Fig. 8
figure 8

Sin(\( \phi \))–γ for varying sin(\( \phi \))max for unsymmetric skeleton curve (loading)

Figures 9, 10 and 11 show the cyclic response of the model for a fixed amplitude load or displacement controlled loading with or without drag factor. The importance of the drag factor is observed here. Figure 9 shows the cyclic response of the model for fixed amplitude displacement loading without drag factor. It is observed that there is little or no movement of the cycles. Figure 10 shows the cyclic response of the model for fixed amplitude load controlled loading with drag factor. It can be observed that the cyclic response shows significant stiffening, which occurs in cyclic pre-straining of granular soil. Figure 11 shows the cyclic response of the model for a fixed amplitude displacement controlled loading with drag factor. It may be noted that the cyclic response shows significant stiffening. The parameters of the model are adjusted to show the stiffening in an exaggerated way in Figs. 10 and 11.

Fig. 9
figure 9

Sin(\( \phi \))–γ for fixed displacement amplitude cycles without drag factor

Fig. 10
figure 10

Sin(\( \phi \))–γ for fixed load amplitude cycles with drag factor

Fig. 11
figure 11

Sin(\( \phi \))–γ for fixed displacement amplitude cycles with drag factor

Figure 12 shows the cyclic response of the model for variable displacement amplitude without any drag factor. The variable displacement amplitude is shown in the inset of the figure. The response shows a demonstration of the proposed internal rule. There are two internal loops, one in loading cycle and one in the unloading cycle. It can be observed that the loops close perfectly, which is observed in many geomaterials. Figure 13 also shows the cyclic response of the model for variable displacement amplitude without any drag factor. This figure shows an internal loop within an internal loop and both close perfectly following the proposed internal rule.

Fig. 12
figure 12

Typical internal cycles of sin(\( \phi \))–γ without drag factor

Fig. 13
figure 13

Typical internal cycles within an internal cycle of sin(\( \phi \))–γ without drag factor

Figure 14 shows the cyclic response of the model for pseudo-random displacement amplitude without any drag factor. The pseudo-random displacement amplitude and the model parameters are shown in inset of the figure. It is observed that the response of the pseudo-random loading is meaningful. The cyclic response comprises of internal and external cycles. These cycles are modeled by the proposed external and internal rule in a simple way using cyclic plasticity theory.

Fig. 14
figure 14

Sin(\( \phi \))–γ for pseudo-random loading without drag factor

7 FEM simulation of cyclic response of Toyoura sand

Masuda et al. [17] performed a series of PSC, PSE and plane strain cyclic loading tests on Toyoura sand using a plane strain apparatus originally developed for conventional PSC tests. Toyoura sand used here was a fine poorly graded quartz-rich subangular sand (D 50 = 0.2 mm; U c = 1.44; e max = 0.977; and e min = 0.597). The specimens were 20 cm in height, 16 cm in length (in the direction of zero normal strain), and 8 cm in width. The specimens were made of relatively dense sand (D r = 90 %). Each specimen was placed between a pair of vertical rigid confining platens. The major and minor principal stresses were applied in the vertical and horizontal directions to the rigid and flexible boundaries of the specimen. Using a general elasto-plastic model within the kinematic hardening framework and incorporating Masing’s scaling law, the plane strain cyclic load tests results were simulated. The results of the simulation are shown in Figs. 15, 16 and 17. In those figures, a_L and a_U are defined as ‘a’ (controls the nonlinearity of the stress–strain curve, Eq. 13) for loading and unloading skeleton curves, respectively. \( \kappa_{\hbox{max} \_L} \) and \( \kappa_{{{ \hbox{max} }\_U}} \) are defined as ‘\( \kappa_{ \hbox{max} } \)’ (Eq. 13) for loading and unloading skeleton curves, respectively. \( {\text{Sin}}(\varphi )_{\hbox{max} \_L} \) and \( \sin (\varphi )_{\hbox{max} \_U} \) are defined as ‘\( \sin (\varphi )_{\hbox{max} } \)’ (Eq. 13) for loading and unloading skeleton curves, respectively. The values of \( \kappa_{\hbox{max} \_L} \) and \( \kappa_{{{ \hbox{max} }\_U}} \) in Figs. 15, 16 and 17 vary from those of the other parametric studies of the model as these data values (\( \kappa_{\hbox{max} \_L} \) = \( \kappa_{{{ \hbox{max} }\_U}} \) = 0.08) are calibrated against the cyclic loading tests of Toyoura sand. The values of other parameters (\( \kappa_{\hbox{max} \_L} \) and \( \kappa_{{{ \hbox{max} }\_U}} \)) are also changed from previous parametric studies as well to fit the experimental data. The drag parameter \( \beta_{ \hbox{max} } \) = 0.6 is used to accommodate the drag effect of plastic strain accumulation due to subsequent cyclic loading. The value of \( \sin (\varphi )_{\hbox{max} \_L} \) = 1.25, which is more than 1.0 in Eq. 13. The mentioned equation is a hyperbolic equation, where \( \sin (\varphi )_{\hbox{max} \_L} \) is the upper asymptotic value required to calibrate a certain set of cyclic test results in loading. This does not mean to violate the \( \sin (\varphi )_{\text{mob}} \le 1.0 \), rather it is always fulfilled.

Fig. 15
figure 15

FEM simulation of σ vε v for Toyoura sand with appropriate drag factor

Fig. 16
figure 16

FEM simulation of sin(ϕ)–γ for Toyoura sand with appropriate drag factor

Fig. 17
figure 17

FEM simulation of ε volγ for Toyoura sand with appropriate drag factor

Figure 15 shows the variation of σ vε v relationship for Toyoura sand incorporating appropriate drag factor values in addition to other parameters. The vertical displacements applied in the actual experiment were used as input boundary loading. It can be observed that the variation of vertical stress with the vertical strain simulated by the hardening kinematic model matches very well with experimental results. Figure 16 shows the FEM simulation of sin(ϕ)–γ relationship for Toyoura sand, considering appropriate values for the drag factor. From the figure, it can be observed that the experimental curves of sin(ϕ)–γ relationships are well simulated by the model. Figure 17 shows the FEM simulation of ε volγ relationship for Toyoura sand, taking into account appropriate drag factors. Although the maximum shear strain observed in the experiment is simulated well by the model, the generated volumetric strain does not match with the experimental data. A possible reason for the mismatch may be the use of Rowe’s stress–dilatancy relation both for loading and unloading cycles.

8 Conclusion

A model has been proposed here for the cyclic loading of cohesionless soils based on a general elasto-plastic kinematic hardening framework. The model is developed by replacing the constant term of Prager’s kinematic hardening rule with an instantaneous slope found from nonlinear loading/unloading skeleton curves. The scaling of the loading/unloading curves is controlled by a modified form of the Masing’s law and combined with Prager’s modified kinematic hardening law. This concept gives rise to a novel and robust framework for the modeling of plastic strains of cohesionless soils during cyclic loading. The proposed model has the ability to simulate nonlinear cyclic stress–strain behavior of engineering materials. It also has the ability to follow the Masing’s rule and its modification as proposed here. It can simulate closed loop cyclic stress–strain behavior of both cohesive and cohesionless soil. As the proposed model is based on kinematic hardening rule with a non-dimensional parameter C, it has the ability to simulate cyclic loads using three-dimensional elasto-plastic stress–strain relations. Thus, the model can be applied to obtain the cyclic response of geologic materials for generalized loading conditions.