1 Introduction

The Mori–Tanaka (MT) scheme [1, 2] belongs to the wide class of mean-field homogenization methods that have been developed for predicting overall properties of heterogeneous materials. While more elaborate multiscale approaches, such as the FE\({}^2\) method [3,4,5], are readily available, the mean-field models are still attractive in view of their good predictive capabilities and low computational cost [6,7,8].

The MT method relies on the solution of Eshelby’s inclusion problem [9] that is valid for a matrix phase obeying linear elasticity. For an inelastic matrix, its response is thus linearized, and this leads to a family of incremental MT models. Such models have already been applied to numerous material systems and constitutive behaviors, e.g., metal-matrix composites [10,11,12], dual-phase and TRIP steels [13, 14], shape-memory alloys [15, 16], and others.

In view of its relatively low computational cost, the incremental MT scheme is particularly suitable for multiscale finite-element simulations of elasto-plastic composite materials. In that framework, the MT model is employed at the element Gauss points as a micromechanical constitutive model that describes the effective (macroscopic) response of a heterogeneous material. At the same time, the model provides additional information concerning local stresses and strains in the individual phases. For overall efficiency of such computations, it is crucial that the computer implementation is efficient and robust. Additionally, in the implicit finite-element framework, exact linearization, which yields an algorithmic (consistent) macroscopic tangent, is essential to achieve the quadratic convergence rate of the global Newton iterations.

While several finite-element implementations of the incremental MT scheme have been reported in the literature, dating back to [10, 11], it seems that computational efficiency, consistent linearization, and related issues have not attracted sufficient attention yet. This work is thus aimed at developing an efficient and robust incremental MT scheme and its finite-element implementation suitable for large-scale computations. Consistent linearization of the macroscopic stress predicted by the MT scheme is here considered a necessary condition to achieve this goal. In this work, the automatic differentiation (AD) technique has been employed for that purpose. Following [17, 18], an AD-based notation has been adopted, and the corresponding compact AD-based formulation of the incremental MT scheme has been introduced. The AD-based formulation constitutes the basis for finite-element implementation and for automation of the related tasks.

As discussed in detail in the paper, the incremental MT scheme involves a nested Newton-type algorithm with inner iterations corresponding to the equations of incremental plasticity formulated for the individual phases and with outer iterations corresponding to the micro–macro transition scheme of the MT method. Considering that equilibrium equations at the global finite-element level are also solved using the Newton method, the complete scheme can be classified as a doubly-nested iteration-subiteration scheme. Exact linearization has been performed at each level so that the Newton method can be used to efficiently solve the nonlinear equations at each level.

In the course of implementation of the incremental MT model, it turned out that exact linearization is not sufficient for achieving a fully robust computational scheme. Specifically, convergence problems were encountered in some situations, while in most cases the scheme behaved very well. It has been found that the problems were caused by discontinuities in the incremental finite-step response. The discontinuities may occur at the instant of the elastic-to-plastic transition in the matrix phase and result from the related abrupt change of the reference stiffness for which the MT interaction equation is formulated. As a remedy, the incremental MT scheme has been enhanced with a substepping strategy. A highly robust and efficient computational scheme has been finally obtained, as illustrated by the numerical examples below. A detailed analysis of the response discontinuities is provided in [19].

The paper is organized as follows. The basic formulation of the incremental MT scheme is recalled in Sect. 2. In Sect. 3, the AD-based notation is introduced along with the corresponding AD-based formulation of incremental plasticity. The AD-based formulation of the incremental MT scheme is then developed in Sect. 4. In Sect. 5, response discontinuities are discussed, and a substepping strategy is proposed as a remedy for the related problems. Finally, performance and robustness of the computational scheme are illustrated in Sect. 6.

2 Incremental Mori–Tanaka model

2.1 Rate formulation

The Mori–Tanaka model is a mean-field model originally developed for estimating effective properties of linearly elastic two-phase composites [1, 2]. The model is based on Eshelby’s solution to the problem of an ellipsoidal inclusion embedded into an infinite linearly elastic medium [9]. The main outcome of this solution is that the strain \({\varvec{\varepsilon }}_1\) inside the inclusion is uniform and related to the far-field strain \({\varvec{\varepsilon }}_0\) by a fourth-order (Eshelby) tensor. Hill [20] noticed an important consequence of Eshelby’s result, which can be written in the form of the so-called interaction equation,

$$\begin{aligned} {\varvec{\sigma }}_1-{\varvec{\sigma }}_0 = -\mathbb {L}_*\left( {\varvec{\varepsilon }}_1-{\varvec{\varepsilon }}_0\right) , \end{aligned}$$
(1)

in which \({\varvec{\sigma }}_1\) and \({\varvec{\sigma }}_0\) are, respectively, the stress tensor in the inclusion and the far-field stress tensor. The fourth-order tensor \(\mathbb {L}_*\), called the Hill tensor, can be conveniently expressed in terms of the polarization tensor \(\mathbb {P}\) [20],

$$\begin{aligned} \mathbb {L}_*= \mathbb {P}^{-1}-\mathbb {L}_0 , \qquad \mathbb {P} = \hat{\mathbb {P}}(\mathbb {L}_0) , \end{aligned}$$
(2)

and both \(\mathbb {L}_*\) and \(\mathbb {P}\) depend only on the elastic stiffness \(\mathbb {L}_0\) of the infinite medium and on the shape of the inclusion. Note that, whenever needed to avoid confusion, the superimposed hat is used to distinguish the function from its value. General formulae for the polarization tensor \(\mathbb {P}\) for a spherical inclusion and anisotropic matrix can be found, e.g., in [21]. The formula for the special case of a spherical inclusion and isotropic matrix is provided in “Appendix 2”.

The interaction equation (1) holds independently of the actual constitutive law for the inclusion and remains valid as long as the matrix follows a linear constitutive law. The interaction equation is the basis of several micro-macro transition schemes for estimating effective properties of heterogeneous materials [1, 2, 20, 22,23,24,25].

In particular, the MT scheme [1, 2] is obtained by identifying \({\varvec{\varepsilon }}_0\) and \({\varvec{\sigma }}_0\) with the average strain and stress in the matrix, while the elastic stiffness \(\mathbb {L}_0\) of the matrix is adopted as the reference stiffness that is used to determine \(\mathbb {L}_*\) in the interaction equation (1). The overall strain and stress in a two-phase composite are then obtained by applying the averaging rule,

$$\begin{aligned} \bar{{\varvec{\varepsilon }}} = (1-c) {\varvec{\varepsilon }}_0 + c {\varvec{\varepsilon }}_1, \qquad \bar{{\varvec{\sigma }}} = (1-c) {\varvec{\sigma }}_0 + c {\varvec{\sigma }}_1 , \end{aligned}$$
(3)

where c denotes the volume fraction of inclusions and subscripts ‘0’ and ‘1’ refer to the matrix and inclusion, respectively. The interaction equation (1) together with the averaging rule (3) and with the linear constitutive equations of the individual phases, \({\varvec{\sigma }}_i=\mathbb {L}_i{\varvec{\varepsilon }}_i\), \(i=0,1\), constitute a system of linear equations that fully specify the macroscopic and microscopic response of an elastic composite.

In order to apply the MT model for an elasto-plastic matrix exhibiting a non-linear behavior, linearization of the constitutive law must be performed. To this end, the incremental linearization proposed by Hill [20] is often adopted. Within that procedure, the rate form of the elasto-plastic stress-strain relation is employed,

$$\begin{aligned} \dot{{\varvec{\sigma }}}_0=\mathbb {L}^\mathrm{ep}_0 \, \dot{{\varvec{\varepsilon }}}_0 , \end{aligned}$$
(4)

where \(\mathbb {L}^\mathrm{ep}_0\) is the current elasto-plastic (constitutive) tangent stiffness tensor of the matrix. The interaction equation is also expressed in terms of rates,

$$\begin{aligned} \dot{{\varvec{\sigma }}}_1-\dot{{\varvec{\sigma }}}_0 = -\mathbb {L}_*\left( \dot{{\varvec{\varepsilon }}}_1-\dot{{\varvec{\varepsilon }}}_0\right) , \end{aligned}$$
(5)

and the Hill tensor \(\mathbb {L}_*\) is now determined in terms of the tangent stiffness \(\mathbb {L}^\mathrm{ep}_0\), thus \(\mathbb {L}_*=\mathbb {P}^{-1}-\mathbb {L}^\mathrm{ep}_0\) and \(\mathbb {P}=\hat{\mathbb {P}}(\mathbb {L}^\mathrm{ep}_0)\), cf. Eq. (2).

Note that the elasto-plastic tangent stiffness \(\mathbb {L}^\mathrm{ep}_0\) is anisotropic even if the material is isotropic. Numerous studies, e.g. [11, 26], see also Fig. 2 below, have shown that the macroscopic response predicted by the incremental MT model is too stiff when the actual anisotropic tangent is used to formulate the interaction equation, and several isotropization schemes have been proposed in order to circumvent that problem. This issue is discussed in more detail later.

Consider additionally the rate form of the constitutive equation of the inclusion,

$$\begin{aligned} \dot{{\varvec{\sigma }}}_1=\mathbb {L}^\mathrm{ep}_1 \dot{{\varvec{\varepsilon }}}_1, \end{aligned}$$
(6)

which provides a linear relationship between the stress and strain rates with \(\mathbb {L}^\mathrm{ep}_1\) denoting the corresponding elasto-plastic tangent. Using Eqs. (4) and (6), the interaction equation (5) can be written in the following equivalent form,

$$\begin{aligned} \dot{{\varvec{\varepsilon }}}_1= \big ( \mathbb {I}+\mathbb {P}\left( \mathbb {L}^\mathrm{ep}_1-\mathbb {L}^\mathrm{ep}_0\right) \big )^{-1} \dot{{\varvec{\varepsilon }}}_0. \end{aligned}$$
(7)

As in the case of a linear elastic composite, the rate equations provided above fully specify the macroscopic and microscopic rate-response of an elasto-plastic composite. The equations are linear in rates of local and macroscopic strains and stresses, and thus the overall tangent can be determined in a closed form. In order to use the model in practice, a time integration scheme must be applied to the above rate equations, and this is discussed next.

2.2 Incremental formulation

With reference to the usual displacement-based finite-element framework, a strain-controlled response of the composite is considered. In an incremental time stepping scheme, the variables at the previous time \(t_n\) are assumed to be known, and those at the current time \(t_{n+1}\) are to be determined as a response to a given finite increment \({\varDelta }\bar{{\varvec{\varepsilon }}}\) of the macroscopic strain. The ultimate goal is to determine the corresponding increment \({\varDelta }\bar{{\varvec{\sigma }}}\) of the macroscopic stress and the overall algorithmic tangent operator.

The finite-step incremental MT scheme will naturally involve an incremental finite-step constitutive response of the phases. The incremental response is typically determined by an algorithm, e.g., the return mapping algorithm [27], so that the stress increment \({\varDelta }{\varvec{\sigma }}_i\) can be written as a function of the strain increment \({\varDelta }{\varvec{\varepsilon }}_i\), thus

$$\begin{aligned} {\varDelta }{\varvec{\sigma }}_i = {\varDelta }\hat{{\varvec{\sigma }}}_i ( {\varDelta }{\varvec{\varepsilon }}_i ) , \qquad \mathbb {L}_i^\mathrm{alg} = \frac{\partial {\varDelta }{\varvec{\sigma }}_i}{\partial {\varDelta }{\varvec{\varepsilon }}_i} {} = \frac{\partial {\varvec{\sigma }}_i^{n+1}}{\partial {\varvec{\varepsilon }}_i^{n+1}} , \end{aligned}$$
(8)

where \(\mathbb {L}_i^\mathrm{alg}\) is the corresponding algorithmic (consistent) tangent, and \({\varDelta }(\cdot )=(\cdot )^{n+1}-(\cdot )^n\).

The MT model, notably the interaction equation (5), requires that the response of the matrix is linear. Following Pettermann et al. [10] and Doghri and Ouaar [11], the basic assumption in developing the present incremental formulation is that the algorithmic tangent \(\mathbb {L}^\mathrm{alg}_0\) is used for that purpose, thus

$$\begin{aligned} {\varDelta }{\varvec{\sigma }}_0 \approx \mathbb {L}^\mathrm{alg}_0 {\varDelta }{\varvec{\varepsilon }}_0 . \end{aligned}$$
(9)

Alternatively, just like in the rate formulation discussed above, the constitutive tangent \(\mathbb {L}^\mathrm{ep}_0\) could be used instead of \(\mathbb {L}^\mathrm{alg}_0\), as employed, for instance, in [26, 28, 29]. The rationale behind using the algorithmic tangent is that it results from linearization of the actual incremental (finite-step) response. This choice is also consistent with the AD-based approach advocated in this paper, in which the algorithmic tangent is obtained in a natural way by applying AD tools, see Sect. 3.2.

The interaction equation (5) is now written in terms of increments,

$$\begin{aligned} {\varDelta }{\varvec{\sigma }}_1-{\varDelta }{\varvec{\sigma }}_0 = -\mathbb {L}_*\left( {\varDelta }{\varvec{\varepsilon }}_1- {\varDelta }{\varvec{\varepsilon }}_0\right) , \end{aligned}$$
(10)

and the Hill tensor \(\mathbb {L}_*\) as well as the corresponding polarization tensor \(\mathbb {P}\),

$$\begin{aligned} \mathbb {L}_*= \mathbb {P}^{-1}-\mathbb {L}_0^\mathrm{alg} , \qquad \mathbb {P} = \hat{\mathbb {P}}(\mathbb {L}_0^\mathrm{alg}) , \end{aligned}$$
(11)

are determined in terms of the algorithmic tangent \(\mathbb {L}_0^\mathrm{alg}\) of the matrix, see “Appendices 1 and 2” for the specific formulae used in this work.

At this point, several incremental finite-step MT schemes can be developed based on the interaction equation (10). This is because the actual incremental response of the phases is nonlinear and the stress increments \({\varDelta }{\varvec{\sigma }}_i\) in Eq. (10) can be either substituted directly by those resulting from the incremental constitutive equations, cf. Eq. (8), or can be approximated by the linearization (9). In the former case, the linearization (9) is in fact not exploited directly, as it is only used to specify the reference stiffness of the matrix in the interaction equation (10). This approach is followed in the model developed in the present work.

If, alternatively, the linearization (9) is employed for both the matrix and the inclusion, and the corresponding approximate increments \({\varDelta }{\varvec{\sigma }}_i\) are substituted in the interaction equation (10), then the interaction equation can be expressed in the following form,

$$\begin{aligned} {\varDelta }{\varvec{\varepsilon }}_1= \big ( \mathbb {I}+\mathbb {P} (\mathbb {L}^\mathrm{alg}_1-\mathbb {L}^\mathrm{alg}_0 ) \big )^{-1} {\varDelta }{\varvec{\varepsilon }}_0 , \end{aligned}$$
(12)

which is a finite-step counterpart of Eq. (7).

The interaction equation (10), or its alternative form (12), combined with the incremental constitutive equations of the phases (8) and with the averaging rule (3) constitute a set of nonlinear equations that specify the overall incremental response of the composite. The algorithmic treatment of the problem is discussed in detail in Sect. 4.

3 AD-based formulation of incremental elasto-plasticity

In this section, we briefly introduce the AD-based formulation of small-strain elasto-plasticity which is a part of the micromechanical scheme that is developed later in Sect. 4. At the same time, the algorithmic treatment of the incremental MT scheme is a generalization of the treatment of incremental elasto-plasticity, hence it is worthwhile to introduce the main concepts in a considerably simpler context. The framework of incremental elasto-plasticity is standard [27], and the AD-based formulation follows that introduced by Korelc [17], see also [18].

3.1 Incremental elasto-plasticity

The total strain \({\varvec{\varepsilon }}\) is additively decomposed into elastic and plastic part, \({\varvec{\varepsilon }}^\mathrm{e}\) and \({\varvec{\varepsilon }}^\mathrm{p}\), respectively, and the free energy function \(\psi =\psi ({\varvec{\varepsilon }}^\mathrm{e},{\varvec{\alpha }})\) is introduced, so that we have

$$\begin{aligned} {\varvec{\varepsilon }} = {\varvec{\varepsilon }}^\mathrm{e} + {\varvec{\varepsilon }}^\mathrm{p} , \qquad {\varvec{\sigma }} = \frac{\partial \psi }{\partial {\varvec{\varepsilon }}^\mathrm{e}} , \qquad {\varvec{q}} = - \frac{\partial \psi }{\partial {\varvec{\alpha }}} , \end{aligned}$$
(13)

where \({\varvec{\sigma }}\) is the stress, and \({\varvec{q}}\) is the thermodynamic force conjugate to the hardening variables \({\varvec{\alpha }}\).

Equations that govern evolution of the plastic strain \({\varvec{\varepsilon }}^\mathrm{p}\) and internal variables \({\varvec{\alpha }}\) are provided below in an incremental form that results from application of the backward-Euler integration scheme to the corresponding rate equations, which are omitted here for brevity.

At the current time instant \(t=t_{n+1}\), the yield function \(\phi ({\varvec{\sigma }},{\varvec{q}})\) defines the admissible domain in the stress space,

$$\begin{aligned} \phi ^{n+1} = \phi ({\varvec{\sigma }}^{n+1},{\varvec{q}}^{n+1}) \le 0 . \end{aligned}$$
(14)

The flow rule and the hardening law are specified by the corresponding constitutive functions \({\varvec{r}}({\varvec{\sigma }},{\varvec{q}})\) and \({\varvec{h}}({\varvec{\sigma }},{\varvec{q}})\), namely

$$\begin{aligned} {\varvec{\varepsilon }}^{\mathrm{p},n+1}&= {\varvec{\varepsilon }}^{\mathrm{p},n} + {\varDelta }\gamma {\varvec{r}} ({\varvec{\sigma }}^{n+1},{\varvec{q}}^{n+1}) , \nonumber \\ {\varvec{\alpha }}^{n+1}&= {\varvec{\alpha }}^n + {\varDelta }\gamma {\varvec{h}} ({\varvec{\sigma }}^{n+1},{\varvec{q}}^{n+1}) , \end{aligned}$$
(15)

and the plastic multiplier \({\varDelta }\gamma \) satisfies the usual complementarity conditions

$$\begin{aligned} {\varDelta }\gamma \ge 0 , \qquad \phi ^{n+1} \le 0 , \qquad {\varDelta }\gamma \phi ^{n+1} = 0 . \end{aligned}$$
(16)

The above set of incremental equations and inequalities specifies the state update problem in which unknown are the current internal variables \(({\varvec{\varepsilon }}^{\mathrm{p},n+1},{\varvec{\alpha }}^{n+1})\), while given are the previous internal variables \(({\varvec{\varepsilon }}^{\mathrm{p},n},{\varvec{\alpha }}^n)\) and the current total strain \({\varvec{\varepsilon }}^{n+1}\).

The state update problem is solved using the return mapping algorithm [27]. First, the elastic trial state is determined by assuming that the response is elastic,

$$\begin{aligned} {\varvec{\varepsilon }}^\mathrm{e,trial}&= {\varvec{\varepsilon }}^{n+1} - {\varvec{\varepsilon }}^{\mathrm{p},n} , \nonumber \\ {\varvec{\sigma }}^\mathrm{trial}&= \frac{\partial \psi ({\varvec{\varepsilon }}^\mathrm{e,trial},{\varvec{\alpha }}^n)}{\partial {\varvec{\varepsilon }}^\mathrm{e,trial}} , \nonumber \\ {\varvec{q}}^\mathrm{trial}&= -\frac{\partial \psi ({\varvec{\varepsilon }}^\mathrm{e,trial},{\varvec{\alpha }}^n)}{\partial {\varvec{\alpha }}^n} , \nonumber \\ \phi ^\mathrm{trial}&= \phi ({\varvec{\sigma }}^\mathrm{trial}, {\varvec{q}}^\mathrm{trial}) . \end{aligned}$$
(17)

If the trial state is admissible, i.e. if \(\phi ^\mathrm{trial}\le 0\), then the step is indeed elastic, and we have

$$\begin{aligned} {\varvec{\varepsilon }}^{\mathrm{p},n+1} = {\varvec{\varepsilon }}^{\mathrm{p},n} , \qquad {\varvec{\alpha }}^{n+1} = {\varvec{\alpha }}^n , \qquad {\varDelta }\gamma = 0. \end{aligned}$$
(18)

Otherwise, if \(\phi ^\mathrm{trial}>0\) then the step is plastic, and the following set of equations is solved for unknown \(({\varvec{\varepsilon }}^{\mathrm{p},n+1},{\varvec{\alpha }}^{n+1},{\varDelta }\gamma )\),

$$\begin{aligned} \begin{aligned} {\varvec{\varepsilon }}^{\mathrm{p},n+1} - {\varvec{\varepsilon }}^{\mathrm{p},n} - {\varDelta }\gamma {\varvec{r}} ({\varvec{\sigma }}^{n+1},{\varvec{q}}^{n+1})&= \mathbf{0} , \\ {\varvec{\alpha }}^{n+1} - {\varvec{\alpha }}^n - {\varDelta }\gamma {\varvec{h}} ({\varvec{\sigma }}^{n+1},{\varvec{q}}^{n+1})&= \mathbf{0} , \\ \phi ( {\varvec{\sigma }}^{n+1}, {\varvec{q}}^{n+1} )&= 0 , \end{aligned} \end{aligned}$$
(19)

where \({\varvec{\sigma }}^{n+1}\) and \({\varvec{q}}^{n+1}\) are explicitly given by the constitutive equations (13).

In the implicit finite-element method, in addition to the current stress \({\varvec{\sigma }}^{n+1}\), the algorithmic (consistent) tangent \(\mathbb {L}^\mathrm{alg}\) is also needed,

$$\begin{aligned} \mathbb {L}^\mathrm{alg}= & {} \frac{\partial {\varvec{\sigma }}^{n+1}}{\partial {\varvec{\varepsilon }}^{n+1}} \nonumber \\= & {} \frac{\partial ^2 \psi ^{n+1}}{\partial {\varvec{\varepsilon }}^{\mathrm{e},n+1}\partial {\varvec{\varepsilon }}^{\mathrm{e},n+1}} \left( \mathbb {I} - \frac{\partial {\varvec{\varepsilon }}^{\mathrm{p},n+1}}{\partial {\varvec{\varepsilon }}^{n+1}} \right) \nonumber \\&+ \, \frac{\partial ^2 \psi ^{n+1}}{\partial {\varvec{\varepsilon }}^{\mathrm{e},n+1}\partial {\varvec{\alpha }}^{n+1}} \frac{\partial {\varvec{\alpha }}^{n+1}}{\partial {\varvec{\varepsilon }}^{n+1}} , \end{aligned}$$
(20)

which involves linearization of the internal variables \({\varvec{\varepsilon }}^{\mathrm{p},n+1}\) and \({\varvec{\alpha }}^{n+1}\). Since \({\varvec{\varepsilon }}^{\mathrm{p},n+1}\) and \({\varvec{\alpha }}^{n+1}\) are obtained as a solution of the nonlinear system (19), their dependence on \({\varvec{\varepsilon }}^{n+1}\) is implicit, and determination of the corresponding derivatives occurring in Eq. (20) is not immediate. This is discussed next in a somewhat more general context.

In the following, the superscript \(n+1\) denoting the quantities evaluated at the current time instant \(t=t_{n+1}\) will be omitted in order to make the notation more compact. Further, let us denote by \(\mathbf{h}\) the vector of unknowns in the state update problem and by \(\mathbf{Q}\) the residual of the incremental equations that specify the state update problem, e.g., through the return mapping algorithm as specified above. In particular, in the case of the model discussed above, see Eq. (19), \(\mathbf{h}\) and \(\mathbf{Q}\) are defined as,

$$\begin{aligned} \mathbf{h}&= \{{\varvec{\varepsilon }}^\mathrm{p},{\varvec{\alpha }},\gamma \} , \nonumber \\ \mathbf{Q}({\varvec{\varepsilon }},\mathbf{h},\mathbf{h}^n)&= \left\{ \begin{array}{c} {\varvec{\varepsilon }}^\mathrm{p} - {\varvec{\varepsilon }}^{\mathrm{p},n} - (\gamma -\gamma ^n) {\varvec{r}} ({\varvec{\sigma }},{\varvec{q}}) \\ {\varvec{\alpha }} - {\varvec{\alpha }}^n - (\gamma -\gamma ^n) {\varvec{h}} ({\varvec{\sigma }},{\varvec{q}}) \\ \phi ( {\varvec{\sigma }}, {\varvec{q}} ) \end{array} \right\} . \end{aligned}$$
(21)

Even though \(\mathbf{h}^n\) is known and fixed at \(t=t_{n+1}\), it has been included as an argument of \(\mathbf{Q}\) in order to indicate that the problem is path-dependent.

Remark 1

The vector of unknowns \(\mathbf{h}\) may include symmetric tensors, for instance, the plastic strain \({\varvec{\varepsilon }}^\mathrm{p}\). The same applies to the residual vector \(\mathbf{Q}\) defined in Eq. (21). When defining the vectors \(\mathbf{h}\) and \(\mathbf{Q}\), the symmetry of tensors must thus be accounted for, for instance, by including only the independent components [18]. An adequate treatment of tensor quantities is tacitly assumed here and in the following.

With the above notation, the incremental constitutive equations can be written in the following form,

$$\begin{aligned} {\varvec{\sigma }} = \frac{\partial \psi ({\varvec{\varepsilon }},\mathbf{h})}{\partial {\varvec{\varepsilon }}} , \qquad \mathbf{Q}({\varvec{\varepsilon }},\mathbf{h},\mathbf{h}^n) = \mathbf{0} , \end{aligned}$$
(22)

where the free energy is now defined as a function of the total strain and internal variables, thus \(\psi =\psi ({\varvec{\varepsilon }},\mathbf{h})\), and the stress is defined accordingly. In the incremental setting, the current total strain \({\varvec{\varepsilon }}\) is prescribed, \(\mathbf{h}^n\) is known from the previous time step, and the current \(\mathbf{h}\) is to be found such that the incremental equations in the residual form \(\mathbf{Q}=\mathbf{0}\) are satisfied.

Equation \(\mathbf{Q}=\mathbf{0}\) is in general nonlinear, and the Newton method is applied to solve it for the unknown \(\mathbf{h}\). In the iterative Newton scheme, equation \(\mathbf{Q}=\mathbf{0}\) is linearized with respect to the current estimate \(\mathbf{h}^{(j)}\) at fixed \({\varvec{\varepsilon }}\). This yields a linear equation for the correction \({\varDelta }\mathbf{h}^{(j)}\),

$$\begin{aligned} \mathbf{A}^{(j)} {\varDelta }\mathbf{h}^{(j)} = -\mathbf{Q}^{(j)} , \qquad \mathbf{A}^{(j)} = \frac{\partial \mathbf{Q}^{(j)}}{\partial \mathbf{h}^{(j)}} , \end{aligned}$$
(23)

and, upon solving it, the unknown \(\mathbf{h}\) is updated,

$$\begin{aligned} \mathbf{h}^{(j+1)}=\mathbf{h}^{(j)} + {\varDelta }\mathbf{h}^{(j)} , \end{aligned}$$
(24)

until convergence is achieved.

The solution \({\mathbf{h}}\) implicitly depends on the current strain \({\varvec{\varepsilon }}\). The derivative of this dependence is obtained by differentiating the residual \(\mathbf{Q}({\varvec{\varepsilon }},\mathbf{h}({\varvec{\varepsilon }}),\mathbf{h}^n)=\mathbf{0}\) with respect to \({\varvec{\varepsilon }}\),

$$\begin{aligned} \frac{\partial \mathbf{Q}}{\partial {\varvec{\varepsilon }}} + \frac{\partial \mathbf{Q}}{\partial {\mathbf{h}}} \frac{\partial {\mathbf{h}}}{\partial {\varvec{\varepsilon }}} = \mathbf{0} , \end{aligned}$$
(25)

and by solving the resulting linear equation for the unknown derivative, thus

$$\begin{aligned} \frac{\partial {\mathbf{h}}}{\partial {\varvec{\varepsilon }}} = - \mathbf{A}^{-1} \frac{\partial \mathbf{Q}}{\partial {\varvec{\varepsilon }}} . \end{aligned}$$
(26)

Finally, the algorithmic tangent is obtained by differentiating the current stress \({\varvec{\sigma }}\), given by Eq. (22)\({}_1\), with respect to the current strain \({\varvec{\varepsilon }}\), viz.

$$\begin{aligned} \mathbb {L}^\mathrm{alg} = \frac{\partial {\varvec{\sigma }}}{\partial {\varvec{\varepsilon }}} = \frac{\partial ^2\psi }{\partial {\varvec{\varepsilon }}\partial {\varvec{\varepsilon }}} - \frac{\partial ^2\psi }{\partial {\varvec{\varepsilon }}\partial \mathbf{h}} \mathbf{A}^{-1} \frac{\partial \mathbf{Q}}{\partial {\varvec{\varepsilon }}} . \end{aligned}$$
(27)

Formula (20) for the algorithmic tangent is a special case of the above general formulation, and the implicit derivatives appearing in Eq. (20) are included in \(\partial \mathbf{h}/\partial {\varvec{\varepsilon }}\) derived above, Eq. (26).

3.2 Automation

Automation of implementation of incremental elasto-plasticity relies on the automatic differentiation (AD) technique enhanced with the AD exceptions introduced by Korelc [17]. The basic concepts of AD and the corresponding notation are briefly discussed below. Next, the AD-based formulation of incremental elasto-plasticity is provided.

Automatic differentiation is a technique to evaluate the derivative of a function defined by a computer program or algorithm, see [30] for an overview. To introduce the AD-based notation, let us consider a computer program that computes function f in terms of independent variables that are collected in vector \(\mathbf{a}\). Following [17, 18], we introduce the following notation to denote the derivative of f with respect to \(\mathbf{a}\), obtained by AD,

$$\begin{aligned} \frac{\hat{\delta } f(\mathbf{a})}{\hat{\delta } \mathbf{a}} \; \rightarrow \; \frac{\partial f(\mathbf{a})}{\partial \mathbf{a}} , \end{aligned}$$
(28)

and the expression following the arrow is the corresponding derivative in the traditional notation. We do not discuss here the principles of the AD technique itself, nor the specific implementation of the AD technique in the AceGen system, which is used in this work, see [18] for the respective details.

The AD procedure evaluates the derivative of the actual dependence of f on \(\mathbf{a}\) that exists in the program. In some situations, it can be desirable (e.g., to make the resulting code more efficient) or necessary (e.g., to introduce extra knowledge) to modify the action of the AD procedure by introducing so-called AD exceptions [17] that are denoted by

$$\begin{aligned} \left. \frac{\hat{\delta } f(\mathbf{a},\mathbf{b})}{\hat{\delta } \mathbf{a}} \right| _{\genfrac{}{}{}1{\mathrm{D}\mathbf{b}}{\mathrm{D}{\mathbf{a}}}=\mathbf{M}} \; \rightarrow \; \frac{\partial f(\mathbf{a},\mathbf{b})}{\partial \mathbf{a}} + \frac{\partial f(\mathbf{a},\mathbf{b})}{\partial \mathbf{b}} \mathbf{M} . \end{aligned}$$
(29)

Here, function f depends on variables \(\mathbf{a}\) and \(\mathbf{b}\), and the derivative of f with respect to \(\mathbf{a}\) is evaluated under the assumption that the derivative of \(\mathbf{b}\) with respect to \(\mathbf{a}\) is given by matrix \(\mathbf{M}\). The above AD exception overrides the actual dependence of \(\mathbf{b}\) on \(\mathbf{a}\) that exists in the program, and, instead, the supplied matrix \(\mathbf{M}\) is used as the corresponding derivative. As a special case, by setting \(\mathbf{M}=\mathbf{0}\), the existing dependence of \(\mathbf{b}\) on \(\mathbf{a}\) is suppressed so that the result of AD corresponds to the partial derivative, even if \(\mathbf{b}\) does depend on \(\mathbf{a}\),

$$\begin{aligned} \left. \frac{\hat{\delta } f(\mathbf{a},\mathbf{b})}{\hat{\delta } \mathbf{a}} \right| _{\mathbf{b}\,=\,\mathrm{const}} \; \rightarrow \; \frac{\partial f(\mathbf{a},\mathbf{b})}{\partial \mathbf{a}} . \end{aligned}$$
(30)

With the above notation, the AD-based formulation of incremental elasto-plasticity can be compactly written in the form of the pseudo-code provided in Algorithm 1. The incremental formulation is based on the return mapping algorithm, and the Newton method is applied to solve the equation \(\mathbf{Q}=\mathbf{0}\) in the plastic branch, as discussed in Sect. 3.1. The formulation includes consistent linearization of the stress that yields the algorithmic tangent \(\mathbb {L}^\mathrm{alg}\).

figure a

The formulation involves several calls to AD. In the Newton loop, the tangent operator \(\mathbf{A}\) is evaluated as the derivative of \(\mathbf{Q}\) with respect to \(\mathbf{h}\), cf. Eq. (23)\({}_2\). After the Newton scheme converges and the internal variables \(\mathbf{h}\) are thus found, the implicit dependence of \(\mathbf{h}\) on \({\varvec{\varepsilon }}\), cf. Eq. (26), is introduced through a global definition [17] of the AD exception of the type (29). In the elastic branch, we have \(\mathbf{h}=\mathbf{h}^n\) so that \(\mathbf{h}\) does not depend on \({\varvec{\varepsilon }}\), and the corresponding explicit derivative (equal to zero) does not require a special treatment.

After \(\mathbf{h}\) is found using the return mapping algorithm, the stress \({\varvec{\sigma }}\) is evaluated as a partial derivative of \(\psi \) with respect to \({\varvec{\varepsilon }}\), cf. Eq. (22). Here, the AD exception of the type (30) is applied to ensure that the dependence of \(\mathbf{h}\) on \({\varvec{\varepsilon }}\) is suppressed during this differentiation. Finally, the algorithmic tangent \(\mathbb {L}^\mathrm{alg}\) is evaluated by a single AD call. Here, the implicit dependence of \(\mathbf{h}\) on \({\varvec{\varepsilon }}\) is correctly accounted for thanks to the corresponding global AD exception introduced earlier.

Note that only a small modification of Algorithm 1 is needed to convert the above formulation to the one providing automation of the Gauss-point contribution to the element residual vector and tangent matrix in the finite element method [17, 18]. Generalization to finite-strain plasticity is also straightforward.

To conclude the AD-based formulation of elasto-plasticity, the complete set of constitutive equations specifying the small-strain \(J_2\) plasticity with isotropic hardening is provided in Box 1 as a simple illustrative example. Provided are also the relevant definitions of vectors \(\mathbf{h}\) and \(\mathbf{Q}\) that exploit the symmetry of the plastic strain tensor. Two places, in which automation of the formulation is possible, are indicated in Box 1.

figure b

4 AD-based formulation of incremental Mori–Tanaka scheme

In general terms, the algorithmic treatment of the incremental MT scheme follows the framework of incremental elasto-plasticity discussed above. However, several extensions are necessary, and these are discussed in this section. The formulation is limited to isotropic two-phase composites with spherical inclusions, and both phases are assumed to be elasto-plastic. Generalization to multi-phase composites with inclusions of diverse shape, possibly characterized by an anisotropic macroscopic response, requires only small modifications of the overall framework.

4.1 General structure

In the typical strain-controlled incremental setting, the current macroscopic strain \(\bar{{\varvec{\varepsilon }}}=\bar{{\varvec{\varepsilon }}}^n+{\varDelta }\bar{{\varvec{\varepsilon }}}\) is prescribed, and the current strains in the phases, \({\varvec{\varepsilon }}_0\) and \({\varvec{\varepsilon }}_1\), are sought such that the averaging rule (3)\(_1\) is fulfilled,

$$\begin{aligned} \bar{{\varvec{\varepsilon }}} = (1-c) {\varvec{\varepsilon }}_0 + c {\varvec{\varepsilon }}_1 , \end{aligned}$$

and the MT interaction equation (10) is satisfied,

$$\begin{aligned} {\varDelta }{\varvec{\sigma }}_1-{\varDelta }{\varvec{\sigma }}_0 = - \mathbb {L}_*\left( {\varDelta }{\varvec{\varepsilon }}_1- {\varDelta }{\varvec{\varepsilon }}_0\right) , \end{aligned}$$

both are repeated here for convenience. Here, the local stresses \({\varvec{\sigma }}_0\) and \({\varvec{\sigma }}_1\) result from the respective incremental constitutive equations,

$$\begin{aligned} {\varvec{\sigma }}_i = \frac{\partial \psi _i({\varvec{\varepsilon }}_i,\mathbf{h}_i)}{\partial {\varvec{\varepsilon }}_i} , \qquad \mathbf{Q}_i({\varvec{\varepsilon }}_i,\mathbf{h}_i,\mathbf{h}_i^n) = \mathbf{0} , \end{aligned}$$
(31)

for \(i=0,1\), and the algorithmic tangent \(\mathbb {L}_0^\mathrm{alg}\),

$$\begin{aligned} \mathbb {L}_0^\mathrm{alg} = \frac{\partial {\varvec{\sigma }}_0}{\partial {\varvec{\varepsilon }}_0} , \end{aligned}$$
(32)

is used as the reference stiffness in the interaction equation, thus

$$\begin{aligned} \mathbb {L}_*= \mathbb {P}^{-1} - \mathbb {L}_0^\mathrm{alg} , \qquad \mathbb {P} = \hat{\mathbb {P}}^\mathrm{(iso)}(\mathbb {L}_0^\mathrm{alg}) . \end{aligned}$$
(33)

As discussed in Sect. 2, isotropization of the reference stiffness is usually necessary to avoid overly stiff response of the elasto-plastic MT scheme. This is indicated above by introducing function \(\hat{\mathbb {P}}^\mathrm{(iso)}(\cdot )\) that returns the polarization tensor \(\mathbb {P}\) evaluated in terms of its isotropized argument, see “Appendices 1 and 2”.

The current macroscopic stress \(\bar{{\varvec{\sigma }}}=(1-c){\varvec{\sigma }}_0+c{\varvec{\sigma }}_1\) constitutes the macroscopic response of the incremental MT scheme. When the MT model is used as a material model in FE computations, the algorithmic tangent \(\bar{\mathbb {L}}^\mathrm{alg}=\partial \bar{{\varvec{\sigma }}}/\partial \bar{{\varvec{\varepsilon }}}\) is also needed.

The governing equations of the incremental MT model will be solved here using the Newton method in a nested iteration-subiteration scheme, see Fig. 1. In the outer loop, the local strains \({\varvec{\varepsilon }}_0\) and \({\varvec{\varepsilon }}_1\) are found by solving the interaction equation (10) combined with the averaging rule (3)\(_1\). It is convenient to introduce an auxiliary variable \({\varvec{\epsilon }}\),

$$\begin{aligned} {\varvec{\epsilon }}={\varvec{\varepsilon }}_1-{\varvec{\varepsilon }}_0 , \end{aligned}$$
(34)

and use it as the basic unknown in the outer Newton loop. Then, the local strains, explicitly expressed in terms of \(\bar{{\varvec{\varepsilon }}}\) and \({\varvec{\epsilon }}\),

$$\begin{aligned} {\varvec{\varepsilon }}_0=\bar{{\varvec{\varepsilon }}} - c {\varvec{\epsilon }} , \qquad {\varvec{\varepsilon }}_1=\bar{{\varvec{\varepsilon }}} + (1-c) {\varvec{\epsilon }}, \end{aligned}$$
(35)

automatically satisfy the averaging rule (3)\(_1\).

Fig. 1
figure 1

Incremental MT model: outline of the nested iteration-subiteration Newton scheme

The outer loop amounts thus to solving the interaction equation (10) for the unknown \({\varvec{\epsilon }}\) using the Newton method. The corresponding tangent matrix is obtained by linearizing the interaction equation. It follows that the tangent involves the second derivative of \(\mathbf{h}_0\) with respect to \({\varvec{\varepsilon }}_0\). This is because the interaction equation involves the algorithmic tangent \(\mathbb {L}_0^\mathrm{alg}\) which itself involves the first derivative, cf. Eq. (27). If the alternative form (12) of the interaction equation is used instead of Eq. (10) then linearization of \(\mathbb {L}_1^\mathrm{alg}\) is also performed, and the second derivative of \(\mathbf{h}_1\) is needed as well.

The incremental constitutive equations (31) are solved, each in the corresponding independent inner loop, at a fixed value of \({\varvec{\epsilon }}\), and thus at \({\varvec{\varepsilon }}_i\) fixed. The return mapping algorithm is applied in each case, and the formulation follows that presented in Algorithm 1. The difference is that the second derivative of \(\mathbf{h}_0\) with respect to \({\varvec{\varepsilon }}_0\) is now needed, as discussed above. Note that the dependence of \(\mathbf{h}_0\) on \({\varvec{\varepsilon }}_0\) is implicit, hence neither the first nor the second derivative of \(\mathbf{h}_0\) is available directly. The first derivative has been discussed in Sect. 3.1, cf. Eq. (26), along with its AD-based implementation in Sect. 3.2. The second derivative is considerably more involved. The corresponding derivation is given in Sect. 4.2. The state update algorithm including evaluation of the second derivative of internal variables is then discussed in Sect. 4.3.

4.2 Second derivative of implicit function

Consider a system of nonlinear equations \(\mathbf{Q}({\varvec{\varepsilon }},\mathbf{h})=\mathbf{0}\) with an unknown vector \(\mathbf{h}\) such that \(\mathbf{Q}\) additionally depends on a set of variables \({\varvec{\varepsilon }}\). This introduces an implicit dependence of the solution \(\mathbf{h}\) on \({\varvec{\varepsilon }}\), so that we have

$$\begin{aligned} \mathbf{Q} \left( {\varvec{\varepsilon }}, \mathbf{h} ( {\varvec{\varepsilon }} ) \right) = \mathbf{0} . \end{aligned}$$
(36)

The notation follows that adopted in Sect. 3.1, however, the discussion below is applicable in a more general context.

In order to obtain the derivative of \(\mathbf{h}\) with respect to \({\varvec{\varepsilon }}\), Eq. (36) is differentiated with respect to \({\varvec{\varepsilon }}\), viz.

$$\begin{aligned} \frac{\partial }{\partial {\varvec{\varepsilon }}} \mathbf{Q} \left( {\varvec{\varepsilon }}, \mathbf{h} \left( {\varvec{\varepsilon }} \right) \right) = \frac{\partial \mathbf{Q}}{\partial \mathbf{h}} \frac{\partial \mathbf{h}}{\partial {\varvec{\varepsilon }}} + \frac{\partial \mathbf{Q}}{\partial {\varvec{\varepsilon }}} = \mathbf{0} . \end{aligned}$$
(37)

The first derivative of \(\mathbf{h}\) is then obtained by solving the above linear equation, see Eq. (26),

$$\begin{aligned} \frac{\partial \mathbf{h}}{\partial {\varvec{\varepsilon }}} = \underbrace{ - \mathbf{A}^{-1} \frac{\partial \mathbf{Q}}{\partial {\varvec{\varepsilon }}} }_{\mathbf{G}} . \end{aligned}$$
(38)

In order to obtain the second derivative, Eq. (37) is differentiated with respect to \({\varvec{\varepsilon }}\), namely

$$\begin{aligned} \frac{\partial }{\partial {\varvec{\varepsilon }}} \underbrace{ \left( \frac{\partial \mathbf{Q}}{\partial \mathbf{h}} \left( {\varvec{\varepsilon }}, \mathbf{h} \left( {\varvec{\varepsilon }} \right) \right) \frac{\partial \mathbf{h}}{\partial {\varvec{\varepsilon }}} \left( {\varvec{\varepsilon }} \right) + \frac{\partial \mathbf{Q}}{\partial {\varvec{\varepsilon }}} \left( {\varvec{\varepsilon }}, \mathbf{h} \left( {\varvec{\varepsilon }} \right) \right) \right) }_{\mathbf{E}} = \mathbf{0} . \end{aligned}$$
(39)

While performing the differentiation, all the dependencies indicated above must be accounted for. As a result, the following equation is obtained,

$$\begin{aligned} \begin{aligned} \frac{\partial \mathbf{Q}}{\partial \mathbf{h}} \frac{\partial ^2 \mathbf{h}}{\partial {\varvec{\varepsilon }} \partial {\varvec{\varepsilon }}} +&\overbrace{ \frac{\partial ^2 \mathbf{Q}}{\partial {\varvec{\varepsilon }} \partial {\varvec{\varepsilon }}} + \left( \frac{\partial \mathbf{h}}{\partial {\varvec{\varepsilon }}} \right) ^\mathrm{ T} \frac{\partial ^2 \mathbf{Q}}{\partial \mathbf{h} \partial \mathbf{h}} \frac{\partial \mathbf{h}}{\partial {\varvec{\varepsilon }}} \;\;\;\;\;\;\;\;}\\&\underbrace{ \;\;\;\; {} + \frac{\partial ^2 \mathbf{Q}}{\partial {\varvec{\varepsilon }} \partial \mathbf{h}} \frac{\partial \mathbf{h}}{\partial {\varvec{\varepsilon }}} + \left( \frac{\partial \mathbf{h}}{\partial {\varvec{\varepsilon }}} \right) ^\mathrm{ T} \frac{\partial ^2 \mathbf{Q}}{\partial \mathbf{h} \partial {\varvec{\varepsilon }}}}_{\mathbf{F}} = \mathbf{0} , \end{aligned} \end{aligned}$$
(40)

where juxtaposition of matrices denotes contraction with respect to the components corresponding to \(\mathbf{h}\). Equation (40) is a linear equation for the second derivative of \(\mathbf{h}\), which upon solving yields

$$\begin{aligned} \frac{\partial ^2 \mathbf{h}}{\partial {\varvec{\varepsilon }} \partial {\varvec{\varepsilon }}} = \underbrace{ - \left( \frac{\partial \mathbf{Q}}{\partial \mathbf{h}} \right) ^{-1} \mathbf{F} }_{\mathbf{H}} , \end{aligned}$$
(41)

where \(\mathbf{F}\) denotes the sum of all terms indicated by the over- and underbrace in Eq. (40). Note that the tangent matrix \(\partial \mathbf{Q}/\partial \mathbf{h}\) above is exactly that used in the Newton method, cf. Eq. (23), and when computing the first derivative, cf. Eq. (37). The right-hand side expression involves the implicit first derivative of \(\mathbf{h}\), which must be evaluated beforehand, as well as explicit derivatives of \(\mathbf{Q}\). To automatize evaluation of the second derivative of \(\mathbf{h}\), the necessary explicit derivatives of \(\mathbf{Q}\) can be derived using AD so that formula (41) can be applied directly. That approach has been followed in [31]. A more compact, AD-based formulation that exploits the AD exceptions is presented below.

4.3 State update algorithm and second derivative of internal variables

The AD-based formulation of incremental elasto-plasticity outlined in Sect. 3.2, see Algorithm 1, is extended here to include evaluation of the second derivative of internal variables. In the nested iteration-subiteration scheme discussed in Sect. 4.1, the state update algorithm constitutes the inner loop that is evaluated individually for each phase (\(i=0,1\)). Given the current strain \({\varvec{\varepsilon }}_i\) and the previous internal variables \(\mathbf{h}_i^n\), the goal is to find the current internal variables \(\mathbf{h}_i\) along with the first and second derivatives of \(\mathbf{h}_i\) with respect to \({\varvec{\varepsilon }}_i\), as well as the stress \({\varvec{\sigma }}_i\) and the algorithmic tangent \(\mathbb {L}_i^\mathrm{alg}\).

The AD-based form of the state update algorithm is provided in Algorithm 2. The structure of the return mapping algorithm is followed here just like in Algorithm 1. The second derivative of \(\mathbf{h}_i\) with respect to \({\varvec{\varepsilon }}_i\) is obtained by applying AD with adequate AD exceptions, as suggested by J. Korelc (private communication, 2015). This compact formulation avoids evaluating the individual explicit derivatives that are involved in the formulation presented in Sect. 4.2. Instead, auxiliary intermediate quantities \(\mathbf{E}_i\) and \(\mathbf{F}_i\), indicated in Eqs. (39) and (40), respectively, are obtained by invoking AD calls. The second derivative \(\mathbf{H}_i\) is then evaluated according to Eq. (41). The output of the state update algorithm is the current vector of internal variables \(\mathbf{h}_i\) along with its first derivative \(\mathbf{G}_i\). The derivatives of \(\mathbf{h}_i\) and \(\mathbf{G}_i\) are defined through the respective global AD exceptions.

figure c

4.4 Outer loop: the Mori–Tanaka interaction equation

The interaction equation (10) is solved in the outer loop of the nested iteration-subiteration scheme. Algorithm 3 summarizes the corresponding AD-based formulation. The current macroscopic strain \(\bar{{\varvec{\varepsilon }}}\) and the history variables known from the previous step constitute the input. The latter include the previous stresses \({\varvec{\sigma }}_0^n\) and \({\varvec{\sigma }}_1^n\), as these are needed to compute stress increments that are involved in the interaction equation (10). The goal is to compute the current macroscopic stress \(\bar{{\varvec{\sigma }}}\) and the macroscopic algorithmic tangent \(\bar{\mathbb {L}}^\mathrm{alg}\), as well as the updated history variables.

figure d

In order to avoid inverting the polarization tensor \(\mathbb {P}\), the interaction equation (10) is written in the following equivalent form,

$$\begin{aligned} \mathbf{R}({\varvec{\epsilon }},\bar{{\varvec{\varepsilon }}}) = \mathbb {P} ( {\varDelta }{\varvec{\sigma }}_1-{\varDelta }{\varvec{\sigma }}_0 ) + (\mathbb {I} - \mathbb {P}\mathbb {L}_0^\mathrm{alg}) ({\varvec{\epsilon }}-{\varvec{\epsilon }}^n) = \mathbf{0} , \end{aligned}$$
(42)

where \(\mathbf{R}\) denotes the corresponding residual vector. As mentioned earlier, \({\varvec{\epsilon }}\) is here the basic unknown, and \(\bar{{\varvec{\varepsilon }}}\) is fixed. The tangent matrix \(\mathbf{B}\) is obtained by linearizing the residual \(\mathbf{R}\), and this involves linearization of the internal variables \(\mathbf{h}_0\) and \(\mathbf{h}_1\), and of the algorithmic tangent \(\mathbb {L}_0^\mathrm{alg}\). The corresponding dependencies are implemented using the AD exceptions introduced in Algorithm 2. It is recalled that linearization of the algorithmic tangent \(\mathbb {L}_0^\mathrm{alg}\) involves the second derivative of \(\mathbf{h}_0\) that has been discussed in Sects. 4.2 and 4.3.

The polarization tensor \(\mathbb {P}\) is evaluated in terms of isotropized algorithmic tangent \(\mathbb {L}_0^\mathrm{alg}\) of the matrix phase. The details are provided in “Appendices 1 and 2”. Since a closed-form expression is available for \(\mathbb {P}\), including isotropization of \(\mathbb {L}_0^\mathrm{alg}\), its linearization is immediate.

Once convergence of the outer Newton loop is obtained, the implicit derivative of the solution with respect to the macroscopic strain \(\bar{{\varvec{\varepsilon }}}\) is evaluated by linearizing the residual equation \(\mathbf{R}({\varvec{\epsilon }}(\bar{{\varvec{\varepsilon }}}),\bar{{\varvec{\varepsilon }}})=\mathbf{0}\), following the scheme discussed in Sect. 3.1, see Eqs. (25)–(26), thus yielding

$$\begin{aligned} \frac{\partial {\varvec{\epsilon }}}{\partial \bar{{\varvec{\varepsilon }}}} = - \mathbf{B}^{-1} \frac{\partial \mathbf{R}}{\partial \bar{{\varvec{\varepsilon }}}} , \qquad \mathbf{B} = \frac{\partial \mathbf{R}}{\partial {\varvec{\epsilon }}} . \end{aligned}$$
(43)

This derivative is introduced through the global AD exception.

The macroscopic stress \(\bar{{\varvec{\sigma }}}=(1-c){\varvec{\sigma }}_0+c{\varvec{\sigma }}_1\) is then obtained as a partial derivative of the macroscopic free energy \(\bar{\psi }\),

$$\begin{aligned} \bar{\psi } = (1-c) \psi _0 ({\varvec{\varepsilon }}_0,\mathbf{h}_0) + c \psi _1 ({\varvec{\varepsilon }}_1,\mathbf{h}_1) , \end{aligned}$$
(44)

so that

$$\begin{aligned} \bar{{\varvec{\sigma }}} = \frac{\partial \bar{\psi }(\bar{{\varvec{\varepsilon }}},{\varvec{\epsilon }},\mathbf{h}_0,\mathbf{h}_1)}{\partial \bar{{\varvec{\varepsilon }}}} , \end{aligned}$$
(45)

where \({\varvec{\varepsilon }}_0\) and \({\varvec{\varepsilon }}_1\) are given by Eq. (35). Correct evaluation of \(\bar{{\varvec{\sigma }}}\) is ensured by introducing the AD exception that locally hides the dependence of \({\varvec{\epsilon }}\), \(\mathbf{h}_0\) and \(\mathbf{h}_1\) on \(\bar{{\varvec{\varepsilon }}}\).

Finally, linearization of the macroscopic stress \(\bar{{\varvec{\sigma }}}\) yields the algorithmic tangent \(\bar{\mathbb {L}}^\mathrm{alg}\). Exact linearization of the nested iteration-subiteration Newton scheme is obtained thanks to the global AD exceptions that introduce the implicit derivatives of \({\varvec{\epsilon }}\), \(\mathbf{h}_0\) and \(\mathbf{h}_1\). As a result, the present incremental MT scheme can be effectively used in finite element simulations as a constitutive model specifying the (macroscopic) material response at individual Gauss points. Considering that the global equilibrium equations in the finite element method are usually solved iteratively using the Newton method, the overall scheme is, in fact, a doubly-nested iteration-subiteration scheme, and the present AD-based formulation guarantees consistent linearization and thus optimal convergence behavior at each level of the nested scheme.

Remark 2

The formulation of the incremental MT model advocated in this work is based on the interaction equation (10). An alternative version of the incremental MT scheme is based on the interaction equation specified by Eq. (12). The general scheme remains then essentially unchanged with the outer-loop residual \(\mathbf{R}\) defined by Eq. (42) replaced by

$$\begin{aligned} \mathbf{R}({\varvec{\epsilon }},\bar{{\varvec{\varepsilon }}}) = \left( \mathbb {I} + \mathbb {P} ( \mathbb {L}_1^\mathrm{alg}-\mathbb {L}_0^\mathrm{alg} ) \right) {\varDelta }{\varvec{\varepsilon }}_1 - {\varDelta }{\varvec{\varepsilon }}_0 = \mathbf{0} . \end{aligned}$$
(46)

In this model, both \(\mathbb {L}_0^\mathrm{alg}\) and \(\mathbb {L}_1^\mathrm{alg}\) must be linearized so that the second derivatives of both \(\mathbf{h}_0\) and \(\mathbf{h}_1\) are needed. This may be associated with an additional computational cost, as compared to the reference model in which only \(\mathbb {L}_0^\mathrm{alg}\) is linearized. For elastic inclusions, the difference between the two formulations is not significant, according to our experience.

5 Response discontinuities and a substepping strategy

It has been shown in [19] that, for a finite strain increment \({\varDelta }\bar{{\varvec{\varepsilon }}}\), the incremental MT model may exhibit discontinuities in the overall response at the instant of the elastic-to-plastic transition in the matrix phase. The discontinuities are related to an abrupt change of the reference stiffness for which the interaction equation (10), specifically the Hill tensor \(\mathbb {L}_*\), is formulated. Depending on the version of the MT model and on the properties of the phases, either no solution exists for a range of strain increments, or two solutions exist with a non-zero stress jump between the two solutions. Both situations are highly undesirable in practical applications, notably in the finite element method, as the discontinuities dramatically hinder the convergence behavior, particularly for fine meshes when the probability of encountering the related problems is high. Detailed analysis of the response discontinuities, including a simple example with an analytical solution, is presented in [19].

As mentioned, the response discontinuities are observed for finite strain increments. At the same time, a robust implementation of the incremental MT scheme is desired that could proceed with possibly large strain increments. As the discontinuities are associated with an abrupt change of the tangent stiffness of the matrix phase at the elastic-to-plastic transition, a possible remedy is to define the Hill tensor \(\mathbb {L}_*\) in the interaction equation (10) in terms of the reference stiffness defined by

$$\begin{aligned} \mathbb {L}_0^{\mathrm{alg},n+\theta } = (1-\theta ) \mathbb {L}_0^{\mathrm{alg},n} + \theta \mathbb {L}_0^{\mathrm{alg},n+1} , \end{aligned}$$
(47)

where \(0 \le \theta \le 1\), and \(\mathbb {L}_0^{\mathrm{alg},n}\) and \(\mathbb {L}_0^{\mathrm{alg},n+1}=\mathbb {L}_0^\mathrm{alg}\) denote the algorithmic tangent at the previous and current time step, respectively. The case of \(\theta =0.5\) corresponds to the mid-point rule that has been used in [11], while a MT scheme that employs a heuristic method of determination of \(\theta \) has been proposed in [32]. Our experience shows that this treatment indeed improves the robustness of the incremental MT scheme, but it does not solve the problem completely. Additionally, when parameter \(\theta \) is reduced below unity, which is beneficial for the robustness of the MT scheme, the macrosopic response may become too stiff, particularly for large strain increments, see Fig. 3c below.

In this work, an alternative strategy based on substepping is adopted. Specifically, the step involving the transition from the elastic state in the matrix phase to the plastic state is split into two substeps according to

$$\begin{aligned} \bar{{\varvec{\varepsilon }}}^{n+\beta } = \bar{{\varvec{\varepsilon }}}^n + \beta {\varDelta }\bar{{\varvec{\varepsilon }}} , \qquad \bar{{\varvec{\varepsilon }}} = \bar{{\varvec{\varepsilon }}}^{n+\beta } + (1-\beta ) {\varDelta }\bar{{\varvec{\varepsilon }}} , \end{aligned}$$
(48)

where \(0<\beta <1\), and \({\varDelta }\bar{{\varvec{\varepsilon }}}=\bar{{\varvec{\varepsilon }}}-\bar{{\varvec{\varepsilon }}}^n\) is a prescribed increment of the macroscopic strain. The fraction \(\beta \) is found such that the first substep is purely elastic and ends exactly at the instant of the elastic-to-plastic transition. The second step proceeds then in a purely plastic regime. This treatment ensures that the response discontinuities are not encountered.

The substepping strategy has been implemented for the case of a composite material with elastic inclusions. This requires only a small modification of the algorithm, as described below:

  1. (i)

    The substepping strategy is initiated only if the matrix was in the elastic state at the previous time step, i.e. if \(\phi _0^n<0\). Otherwise, Algortithm 3 is directly applied.

  2. (ii)

    If \(\phi _0^n<0\) then a trial elastic step is first considered. The corresponding solution of the elastic MT scheme is found in a closed form, and the trial value \(\phi _0^\mathrm{trial}\) of the yield function is computed.

  3. (iii)

    If \(\phi _0^\mathrm{trial}\le 0\) then the step is indeed elastic, and the trial solution is the actual solution.

  4. (iv)

    If \(\phi _0^\mathrm{trial}>0\) then the step is elastic–plastic, and substepping is applied. Considering that the first substep is elastic, the fraction \(\beta \) is found from the condition \(\phi _0^{n+\beta }=0\). When the yield function is of the \(J_2\)-type, this yields a quadratic equation for \(\beta \). Once \(\beta \) is determined, the step is divided according to Eq. (48). The solution corresponding to the elastic substep is obtained by scaling the earlier trial elastic solution. The solution corresponding to the plastic substep is then obtained by applying Algortithm 3.

Further details and the AD-based formulation are omitted here as they are rather technical. Importantly, the above substepping algorithm admits exact linearization so that consistent overall tangent can be obtained. Robustness of the incremental MT scheme enhanced with the substepping strategy is illustrated in Sect. 6.

6 Numerical examples

6.1 Verification: metal-matrix composite under uniaxial tension

This subsection is aimed at verification of the present formulation and implementation of the incremental MT model. To this end, a metal-matrix composite (MMC) under uniform uniaxial tension is studied, and our predictions are compared to those reported by Doghri and Ouaar [11]. As in [11], an elasto-plastic matrix (aluminium alloy) reinforced with spherical ceramic inclusions of volume fraction \(c=0.2\) is considered. Material parameters of the phases can be found in [11, Section 9.2].

Our predictions obtained with and without isotropization, i.e. for \(\mathbb {P}=\hat{\mathbb {P}}^\mathrm{(iso)}(\mathbb {L}_0^\mathrm{alg})\) and \(\mathbb {P}=\hat{\mathbb {P}}(\mathbb {L}_ 0^\mathrm{alg})\), respectively, are shown in Fig. 2. A very good agreement with the corresponding results reported in [11, Fig. 3] is visible. The results of finite-element unit-cell computations [11] are also included in Fig. 2 to indicate that isotropization is indeed necessary to obtain realistic hardening response of the incremental MT scheme.

Fig. 2
figure 2

Metal-matrix composite under uniaxial tension: comparison of the present predictions with the results of Doghri and Ouaar [11]

The effect of step size on the macroscopic stress–strain response is illustrated in Fig. 3. The simulations reported in Fig. 2 have been carried out with a very small increment of macroscopic strain \({\varDelta }\bar{\varepsilon }=0.0001\). Results corresponding to 10 and 100 times larger strain increments are additionally included in Fig. 3 for the MT scheme without and with substepping, and for the mid-point rule (47) with \(\theta =0.5\). It is apparent that application of the substepping strategy reduces the time integration error. Note that substepping influences here only one step—the one during which the elastic-to-plastic transition occurs. It follows that the difference between the two schemes is essentially due to the error appearing during that single step. Thus, in addition to increased robustness of the incremental MT scheme, as illustrated later, the substepping strategy is also beneficial for its accuracy. On the contrary, the mid-point rule (47) may yield significantly inaccuarate predictions for large strain increments, cf. Fig. 3c.

Fig. 3
figure 3

Metal-matrix composite (\(c=0.2\)) under uniaxial tension: influence of step size on the macroscopic stress–strain relation: a basic MT scheme (no substepping, \(\theta =1\)), b MT scheme with substepping, c MT scheme with mid-point rule (47), \(\theta =0.5\)

6.2 Two-phase composite and equivalent \(J_2\) plasticity model

In the reminder of Sect. 6, efficiency and robustness of the present MT scheme will be studied for a two-phase material composed of an elasto-plastic matrix and elastic spherical inclusions. The matrix is modeled using the \(J_2\) plasticity model with isotropic hardening specified by

$$\begin{aligned} \sigma _\mathrm{y}(\alpha ) = \sigma _0 + K \alpha + \sigma _\infty (1-e^{-\delta \alpha }) , \end{aligned}$$
(49)

where \(\alpha \) is the equivalent plastic strain, and \(\sigma _0\), \(\sigma _\infty \), K and \(\delta \) are hardening parameters. Material parameters of the phases, corresponding roughly to an aluminum alloy matrix and ceramic inclusions, are provided in Table 1. Two volume fractions of inclusions will be considered: \(c=0.02\) and \(c=0.2\).

Table 1 Material parameters of the matrix and inclusions

As a reference for the MT model of the two-phase composite, the \(J_2\) plasticity model with isotropic hardening (49) has been calibrated such that the uniaxial-tension stress–strain response of the MT model is represented by the \(J_2\) plasticity model. That model will be referred to as the equivalent \(J_2\) plasticity model. Two sets of hardening parameters corresponding to the two volume fractions c considered are given in Table 2. As shown in Fig. 4, the equivalent \(J_2\) plasticity model approximates the uniaxial stress–strain response predicted by the MT model very well for both \(c=0.02\) and \(c=0.2\).

Table 2 Parameters of the equivalent \(J_2\) plasticity model
Fig. 4
figure 4

Comparison of the uniaxial stress–strain response predicted by the MT model (markers) and its approximation by the equivalent \(J_2\) plasticity model (solid lines) for \(c=0.02\) and \(c=0.2\). Stress–strain curve of the matrix itself (\(c=0\)) is also depicted (dashed line)

It is worthwhile to examine the computational cost associated with evaluation of the constitutive model specified by the MT scheme with respect to that of the simple \(J_2\) plasticity model. To this end, a cube divided into \(50\times 50\times 50\) elements has been subjected to a uniform uniaxial tension, and the time spent on evaluation of the element residual vector and tangent matrix has been measured (the strain is uniform within the cube; the mesh of 125,000 elements has been used to ensure that the measurement is possibly objective). Three steps have been considered, namely an elastic step, an elastic–plastic step and a plastic step. The elastic–plastic step involves the transition from the elastic state to the plastic state so that the substepping procedure can then be applied.

The evaluation times normalized by the evaluation time corresponding to the elastic step of the equivalent \(J_2\) plasticity model are reported in Table 3 and are also shown in Fig. 5. The numbers in parentheses in Table 3 are the values normalized by the evaluation time of the equivalent \(J_2\) plasticity model for the respective step type. As expected, the MT scheme is computationally more intensive than the simple \(J_2\) plasticity model. However, in the case of the elastic–plastic and plastic steps, the ratio of about 10 with respect to the \(J_2\) plasticity model can be considered reasonably low considering the complexity of the incremental MT model. Note that the additional computational cost associated with the substepping procedure is not significant. Actually, in the case of the elastic step, application of the substepping procedure reduces the computational cost. This is because the effective response is then computed in a closed form, and the general iterative scheme, see Algorithm 3, is not invoked.

Table 3 Normalized time of evaluation of the element residual vector and tangent matrix (the numbers in parentheses are normalized columnwise)
Fig. 5
figure 5

Normalized time of evaluation of the element residual vector and tangent matrix

6.3 Rectangular plate with a hole

Tension of a rectangular composite plate of the length \(L=20\) mm and cross-section of \(10\times 1\) mm with a hole of the diameter of 5 mm, see Fig. 6, is studied in this subsection. The plate is loaded in tension by prescribing the corresponding displacement component at one end and by constraining it at the other end, the lateral displacements being free at both ends. The deformation is here clearly non-uniform and non-proportional.

Isoparametric 8-node tri-linear elements with \(2\times 2\times 2\) Gauss quadrature have been used in the computations. At the Gauss-point level, behavior of the two-phase composite material is described by the incremental MT model with the parameters specified in Sect. 6.2. As a reference, the computations have also been carried out for the equivalent \(J_2\) plasticity model, cf. Sect. 6.2.

Fig. 6
figure 6

Rectangular plate with a hole: a coarse mesh (\(\mathrm{MD}=1\)). Equivalent plastic strain in the matrix phase (MT model, \(c=0.2\), fine mesh, \(\mathrm{MD}=4\)) at the normalized elongation b \({\varDelta }L/L=0.001\) and c \({\varDelta }L/L=0.025\)

Table 4 Rectangular plate with a hole: mesh densities
Fig. 7
figure 7

Rectangular plate with a hole (\(\mathrm{MD}=4\)): tensile force as a function of normalized elongation for a equivalent \(J_2\) plasticity model, b MT scheme without substepping, and c MT scheme enhanced by substepping. Volume fraction of elastic inclusions: \(c=0.02\) (top row) and \(c=0.2\) (bottom row)

Three mesh densities have been used in the computations. The coarse mesh (\(\mathrm{MD}=1\)) is shown in Fig. 6a. In the case of the intermediate mesh (\(\mathrm{MD}=2\)) and fine mesh (\(\mathrm{MD}=4\)), the element size is reduced by the factor of 2 and 4, respectively. For each mesh density, the number of elements and the number of degrees of freedom are reported in Table 4.

Figure 7 shows the load–displacement curves corresponding to the MT model, both with and without substepping, and for the equivalent \(J_2\) plasticity model, in all cases for the fine mesh (\(\mathrm{MD}=4\)). In each case, two load incrementation schemes have been applied. Firstly, an adaptive load incrementation scheme has been applied in which the load increment has been automatically adjusted such that the computations could proceed with possibly large load increments. The corresponding results are indicated by dots in Fig. 7. As a reference, the computations have been repeated with the load increment restricted to the fraction of 0.02 of the total load. The corresponding results are indicated by solid lines in Fig. 7. It can be seen that the response is not visibly affected by the size of load increment.

In terms of convergence, the performance of the MT scheme enhanced by the substepping strategy is essentially identical to the performance of the equivalent \(J_2\) plasticity model. In both cases, the simulation proceeded with large load increments so that it was completed in 10–11 steps. Convergence behavior of the MT scheme without substepping is not as good. This is particularly visible for the high volume fraction of inclusions (\(c=0.2\)) when the number of steps is significantly higher (49 steps).

The deteriorated convergence behavior of the MT scheme without substepping is caused by the response discontinuities discussed in Sect. 5. The probability of encountering the discontinuity increases with increasing number of elements (and Gauss points). This is illustrated in Fig. 8 which shows the number of steps, that are needed to complete the simulation, as a function of mesh density. In the case of the MT scheme without substepping, the number of steps increases with increasing mesh density and also with increasing volume fraction c. At the same time, it is approximately constant for the MT scheme with substepping and for the equivalent \(J_2\) plasticity model. The substepping strategy proves thus to be an efficient remedy for the problem of response discontinuities, and the enhanced MT scheme appears to be as robust as the simple \(J_2\) plasticity model.

Fig. 8
figure 8

Rectangular plate with a hole: number of steps (in a logarithmic scale) needed to complete the simulation as a function of mesh density for \(c=0.02\) (dashed lines) and \(c=0.2\) (solid lines)

Fig. 9
figure 9

Rectangular plate with a hole: total computation time as a function of mesh density

The dependence of the total computation time on the mesh density is illustrated in Fig. 9 for the three models (the total time includes the time used by the linear solver). The overall computational cost for the MT scheme with substepping is approximately twice higher than that for the equivalent \(J_2\) plasticity model. This is clearly because evaluation of the element residual and tangent is more expensive for the former than for the latter, as illustrated in Fig. 5. Recalling that the number of steps is practically identical for the two models, the number of evaluations of the element residual and tangent is approximately equal for the two models. At the same time, in the case of the MT scheme without substepping, the number of steps is considerably higher. The associated additional computational cost increases significantly with increasing mesh density.

6.4 Spherical indentation

In this subsection, finite-element simulations of spherical indentation into a composite material are reported. As the aim is to further illustrate the performance of the incremental MT scheme, a three-dimensional model of spherical indentation is employed despite the problem considered is actually axisymmetric. Note that contact problems, due to the additional nonlinearity introduced by unilateral contact, are particularly demanding concerning the robustness and consistent linearization of the constitutive model of the solid.

As in the previous subsection, the material is a two-phase composite with an elasto-plastic matrix and elastic spherical inclusions of the volume fraction \(c=0.2\). Material parameters are specified in Table 1.

The indenter is modeled as a rigid sphere of the radius \(R=1\) mm. Frictionless contact is assumed, and unilateral contact constraints are enforced using the augmented Lagrangian method [33, 34]. The computations are carried out for one quarter of a truncated half-space with adequate symmetry conditions enforced on two perpendicular planes. The finite element mesh (108,780 tri-linear elements, 331,505 d.o.f.) is shown in Fig. 10a. The mesh is refined towards the contact zone.

Fig. 10
figure 10

Spherical indentation: a finite element mesh and b distribution of the equivalent plastic strain in the matrix phase

Figure 10b shows the deformation pattern imposed by the indenter and the distribution of the equivalent plastic strain in the matrix at the maximum indentation force. To illustrate the predictive capabilities of the incremental MT scheme, the equivalent macroscopic stress after unloading and the corresponding equivalent stresses in the individual phases are shown in Fig. 11. The stresses exhibit small oscillations along the boundary of the contact zone, which indicates that the mesh is not sufficiently fine with respect to the high strain gradients in that region.

Fig. 11
figure 11

Spherical indentation. Equivalent residual stresses (in MPa) after unloading: a macroscopic stress, b local stress in the matrix phase, c local stress in the inclusions

Figure 12 shows the load–penetration depth curves obtained for the MT model with and without substepping, and for the equivalent \(J_2\) plasticity model. As in Fig. 7, the solid lines and dots denote the solution obtained using, respectively, small and large load increments. In the latter case, an adaptive load incrementation scheme was used that adjusted the increment size based on the current convergence behavior. The performance of the different models is here similar to that obtained for the rectangular plate in Sect. 6.3. The MT scheme enhanced by the substepping strategy proves as robust as the simple \(J_2\) plasticity model, while the basic MT scheme is significantly less robust: the basic MT scheme required 43 steps to complete the simulation as compared to 24 and 23 steps for the MT scheme with substepping and for the equivalent \(J_2\) plasticity model, respectively.

Fig. 12
figure 12

Indentation curves for: a equivalent \(J_2\) plasticity model, b MT scheme without substepping and c MT scheme enhanced by substepping

7 Conclusion

A computationally efficient and robust finite-element implementation of the incremental Mori–Tanaka model for elasto-plastic composites has been developed. The MT model itself is standard, the original contribution of this work is in consistent algorithmic treatment of the finite-step incremental model and in automation of the tasks related to computer implementation of the complete micromechanical scheme. The automation relies on the automatic differentiation technique. For that purpose, an AD-based formulation of the MT scheme has been developed. Based on this general symbolic description of the MT-based micromechanical mean-field model, the computer code has been automatically generated using AceGen, a code generation system that employs the AD technique. The automation includes derivation and coding of the algorithmic (consistent) macroscopic tangent for the doubly-nested iteration-subiteration scheme.

Three-dimensional finite-element simulations have been carried out in order to demonstrate the performance of the developed computational scheme. It has been shown that the convergence behavior of the MT model is similar to the behavior of a simple \(J_2\) plasticity model, and thus the incremental finite-element solution may proceed with relatively large load increments, despite the considerable complexity of the micromechanical model. Two aspects have turned out crucial for achieving high efficiency and robustness of the computational scheme. Firstly, the doubly-nested iteration-subiteration scheme has been consistently linearized so that quadratic convergence rate has been achieved at each level of the nested scheme. Secondly, a substepping strategy has been implemented as a remedy for the convergence problems that are caused by discontinuities in the response at finite strain increments.