1 Introduction

The classical flow plasticity based on the Huber-von Mises-Hencky (HMH) yield criterion is the theory which is the most commonly used for the description of the mechanical properties of metals, e.g., [27]. The constitutive equations of small strain plasticity utilizing the isotropic, the kinematic or the mixed hardening rules are available in practically every finite element (FE) program used for solving engineering problems, e.g., [6, 7, 9, 19]. The standard formulation of the kinematic hardening makes use of the linear rule developed by Prager [20]. This version of the kinematic hardening model is widely used for solving different boundary value problems of elastoplasticity. However, the Prager’s model is the most basic one, and often a need arises for a constitutive relation that would describe the material response more accurately.

Armstrong and Frederick [2] proposed an elastoplastic constitutive model which utilizes a more elaborate relation to describe the backstress evolution during the kinematic hardening phenomenon. This model is more suitable for the description of material behaviors associated with the cyclic loadings such as the Bauschinger effect. The model by Armstrong and Frederick was further extended by Chaboche and Rousselier by adding the isotropic hardening behavior [4, 5]. Thus, a mixed hardening rule was obtained this way. For the purpose of modeling the kinematic hardening, this constitutive model assumes that the total backstress is a sum of several components, each one evolving according to a separate Armstrong–Frederick (A-F) equation. The Voce law [25] was used by Chaboche and Rousselier in order to simulate the isotropic hardening behavior. It was assumed that the total yield stress is a sum of terms which evolve according to separate differential equations of the type defined by the Voce rule. The Chaboche and Rousselier (Ch-R) model and its modifications are often used for simulating the material response in the case of cyclic loadings, e.g., [6, 9, 19, 26]. A special case of the elastoplastic Ch-R model was considered by Yoshida et al. [29] where a single Voce term was used to describe the isotropic hardening behavior, whereas the total backstress associated with the kinematic hardening was assumed as a sum of two components. The evolution of the first backstress component was governed by the A-F law, while the second component was defined by the Prager rule. The rate-independent plasticity Ch-R model was generalized to take into account the viscous effects, cf [4, 5]. The Ch-R model is also a basis for the formulation of more elaborate constitutive equations which can take into account such effects as the cyclic shear softening, for instance, e.g., Kowalewski et al. [13].

The Ch-R constitutive model and its various modifications have been implemented into several commercial and non-commercial FE analysis programs, e.g., [6, 9, 19]. However, usually the details of the FE implementation, such as: the integration of the constitutive equation and the derivation of the tangent operator, are not covered in the available program’s documentation. On the other hand, Auricchio et al. [3] discussed the FE implementation of a small strain cyclic plasticity model being a slight modification of the constitutive relation by Chaboche and Rousselier. In the aforementioned work a modified formulation of the HMH yield criterion was utilized. The isotropic hardening was described by a linear function of the effective plastic strain, and a single backstress which evolves according to the A-F rule was used to simulate the kinematic hardening. This approach was further extended by Artioli et al. [1]. Moreover, Kobayashi and Ohno discussed the FE implementation of selected cyclic plasticity models [12]. Kullig and Wippler [14] utilized the implicit backward Euler method and the radial return mapping algorithm to develop an integration scheme for the viscoplastic Chaboche model. A method for calculating the tangent operator was presented as well. The obtained integration algorithm was used to implement the considered constitutive model into the FE system ABAQUS by taking advantage of the UMAT subroutine (User’s MATerial), cf [9]. Yang and Feng [28] used the radial return algorithm to implement a viscoplastic material model based on the A-F kinematic hardening law into ABAQUS. A proper UMAT code was written for that purpose.

In this work the FE implementation of the small strain cyclic plasticity is discussed. The radial return mapping algorithm is utilized to develop an integration scheme which is valid for a family of elastoplastic constitutive models assuming the mixed hardening behavior. The general form of the isotropic hardening rule is considered where the yield stress is an arbitrary function of the effective plastic strain. It is assumed that the kinematic hardening behavior is determined by a number of backstress variables which evolve according to the separate A-F equations. In the special case, when the function describing the isotropic hardening behavior is assumed in the form of the Voce law, the considered constitutive model takes the form of the Ch-R model.

A general relation for the consistent fourth-order tangent operator is derived. To the best of the author’s knowledge, this formula for the tangent operator of the considered model formulation has not been presented in the literature before. The fact that the fourth-order operator is consistent, i.e., in agreement with the radial return mapping algorithm used for the integration of the model equations, guarantees a quadratic rate of convergence during the numerical computations when the operator is entirely coded in an FE program, cf e.g., [1].

The developed model integration algorithm along with the tangent operator is utilized to implement the elastoplastic model proposed by Yoshida et al. [29] into the FE program CalculiX. For that purpose, the user subroutine UMAT has been written. Numerous FE simulations have been performed in order to verify the performance of the developed code. The obtained results are presented in this work. The UMAT code has been attached in the Appendix Section. It has a general form and can be easily modified to incorporate some different isotropic hardening laws (Ludwik [16], Swift [24] or numerous Voce terms etc.). The number of programmed backstresses defined by the A-F or the Prager laws can be easily increased as well.

2 Basic notions

The total stress tensor \({\varvec{\sigma }}\) can be decomposed into the volumetric stress p (opposite to the pressure) and the deviatoric stress \(\mathbf{s}\), e.g., [23], i.e.,

$$\begin{aligned} {\varvec{\sigma }}=p\mathbf{1}+\mathbf{s}, p=\frac{1}{3}{{\,\mathrm{tr}\,}}{\varvec{\sigma }}, \mathbf{s}={\varvec{\sigma }}-p\mathbf{1}. \end{aligned}$$
(1.1-3)

The volumetric stress and the stress deviator are associated with the elastic strain by the following relationships:

$$\begin{aligned} p=K \epsilon ^{e}, \mathbf{s}=2\mu \mathbf{e}^{e}, \end{aligned}$$
(2)

where K is the bulk (Helmholtz) modulus and \(\mu =G\) is the shear (Kirchhoff) modulus, whereas \(\epsilon ^{e}\) and \(\mathbf{e}^{e}\) are the elastic dilatation and the elastic deviatoric strain, respectively, i.e.,

$$\begin{aligned} \epsilon ^{e}= {{\,\mathrm{tr}\,}}{\varvec{\varepsilon }}^{e}, \mathbf{e}^{e}= {\varvec{\varepsilon }}^{e} - \frac{1}{3}\epsilon ^{e}{} \mathbf{1}, \end{aligned}$$
(3)

where \({\varvec{\varepsilon }}^{e}\) is the total elastic strain tensor. The shear and the bulk moduli are related to the engineering constants, i.e., Young’s modulus E and Poisson’s ratio \(\nu \), via the following equalities:

$$\begin{aligned} K=\frac{E}{3(1-2\nu )}, G=\frac{E}{2(1+\nu )}. \end{aligned}$$
(4)

It is assumed that the total small strain tensor \({\varvec{\varepsilon }}\) can be additively decomposed into its elastic and plastic components, i.e., \({\varvec{\varepsilon }}^{e}\) and \({\varvec{\varepsilon }}^{p}\), respectively [20, 23, 27]:

$$\begin{aligned} {\varvec{\varepsilon }}={\varvec{\varepsilon }}^{e} +{\varvec{\varepsilon }}^{p}, \end{aligned}$$
(5)

where \({\varvec{\varepsilon }}^{p}\) is the plastic strain tensor. The volume change is treated as fully elastic, thus \({{\,\mathrm{tr}\,}}{\varvec{\varepsilon }}^{p}=0\), so that \({\varvec{\varepsilon }}^{p}=\mathbf{e}^{p}\). It follows that in Eqs. (2) \(\epsilon ^{e}=\epsilon ={{\,\mathrm{tr}\,}}{\varvec{\varepsilon }}\) while \(\mathbf{e}^{e}=\mathbf{e}-\mathbf{e}^{p}\). Thus, another equation which governs the evolution of the plastic strain tensor is required.

The Huber-von Mises-Hencky (HMH) yield criterion has to be satisfied when plastic flow occurs [4, 5]:

$$\begin{aligned} F({\varvec{\sigma }},\mathbf{X}, \bar{e}^{p})=J_{2}(\mathbf{s}-\mathbf{X})-R(\bar{e}^{p})-k=0, J_{2}(\mathbf{s}-\mathbf{X})=\sqrt{\frac{3}{2}(\mathbf{s}-\mathbf{X})\cdot (\mathbf{s}-\mathbf{X})}, \end{aligned}$$
(6)

where \(\mathbf{X}\) is the backstress tensor, k is the initial yield stress, while \(R(\bar{e}^{p})\) is a function responsible for the isotropic hardening behavior (the expansion or the reduction in size of the yield function \(F({\varvec{\sigma }},\mathbf{X}, \bar{e}^{p})\)). The effective plastic strain \(\bar{e}^{p}\) is given by the following formulas:

$$\begin{aligned} \bar{e}^{p}=\int _{0}^{\bar{e}^{p}}\mathrm {d}\bar{e}^{p}, \mathrm {d}\bar{e}^{p}=\sqrt{\frac{2}{3}\mathrm {d}\mathbf{e}^{p} \cdot \mathrm {d}\mathbf{e}^{p}}. \end{aligned}$$
(7)

The evolution of the plastic strain is governed by the equation:

$$\begin{aligned} \mathrm {d}\mathbf{e}^{p}=\mathrm {d}\lambda \frac{\partial F}{\partial {\varvec{\sigma }}}=\frac{3}{2}\mathrm {d}\lambda \frac{\mathbf{s}-\mathbf{X}}{J_{2}(\mathbf{s}-\mathbf{X})}, \end{aligned}$$
(8)

where \(\mathrm {d}\lambda \) is the plastic multiplier. After some manipulation, it can be found from Eq. (8) that \(\mathrm {d}\lambda = \mathrm {d}{\bar{e}}^{p}\). Thus:

$$\begin{aligned} \mathrm {d}\mathbf{e}^{p}=\frac{3}{2}\mathrm {d}{\bar{e}}^{p}\bar{\mathbf{n}}, \bar{\mathbf{n}}=\frac{\mathbf{s}-\mathbf{X}}{J_{2}(\mathbf{s}-\mathbf{X})}, \end{aligned}$$
(9)

where \(\bar{\mathbf{n}}\) is the normalized effective stress tensor.

The total backstress tensor \(\mathbf{X}\) is assumed to be a sum of M components \(\mathbf{X}^{(i)}\) (\(i=1,2,\dots ,M\)) [4, 5], i.e.,

$$\begin{aligned} \mathbf{X}=\sum _{i=1}^{M}{} \mathbf{X}^{(i)}, \end{aligned}$$
(10)

which evolve according to the separate Armstrong–Frederick (A-F) equations, cf [2]:

$$\begin{aligned} \mathrm {d}\mathbf{X}^{(i)}=\frac{2}{3}C_{i}\mathrm {d}\mathbf{e}^{p}-\gamma _{i}\mathrm {d}{\bar{e}}^{p}{} \mathbf{X}^{(i)}, (i=1,2,\dots ,M), \end{aligned}$$
(11)

where \(C_{i}\) and \(\gamma _{i}\) are the kinematic hardening parameters. Some specific forms of \(R(\bar{e}^{p})\) are considered further in the text. In the following Section the discretization of the constitutive model equations is discussed.

3 Numerical integration of the constitutive model

The radial return mapping algorithm is utilized for the integration of the constitutive model, e.g., [1, 3, 14, 22]. The deviatoric stress in the increment \(n+1\) is given by the following relation:

$$\begin{aligned} \mathbf{s}_{n+1}=\mathbf{s}_{n}+2\mu \Delta \mathbf{e}^{e}, \Delta \mathbf{e}^{e}=\Delta \mathbf{e}-\Delta \mathbf{e}^{p}, \end{aligned}$$
(12)

thus:

$$\begin{aligned} \mathbf{s}_{n+1}=\mathbf{s}_{n+1}^{pr}-2\mu \Delta \mathbf{e}^{p}, \mathbf{s}_{n+1}^{pr}=\mathbf{s}_{n}+2\mu \Delta \mathbf{e}, \end{aligned}$$
(13.1,2)

with \(\mathbf{s}_{n+1}^{pr}\) being the predictor stress. Equations (11) are discretized by replacing the differentials with the finite differences, i.e.,

$$\begin{aligned} \Delta \mathbf{X}^{(i)}=\mathbf{X}^{(i)}_{n+1}-\mathbf{X}^{(i)}_{n}=\frac{2}{3}C_{i}\Delta \mathbf{e}^{p}-\gamma _{i} \mathbf{X}^{(i)}_{n+1} \Delta \bar{e}^{p}. \end{aligned}$$
(14)

After some rearrangements Eq. (14) can be rewritten as follows:

$$\begin{aligned} \mathbf{X}^{(i)}_{n+1}=w_{i}\left( \mathbf{X}^{(i)}_{n}+\frac{2}{3}C_{i}\Delta \mathbf{e}^{p} \right) , w_{i}=\frac{1}{1+\gamma _{i}\Delta \bar{e}^{p}}. \end{aligned}$$
(15.1,2)

Equations (9) can be written in incremental form, i.e.,

$$\begin{aligned} \Delta \mathbf{e}^{p}=\frac{3}{2}\Delta \bar{e}^{p}\bar{\mathbf{n}}_{n+1}, \bar{\mathbf{n}}_{n+1}=\frac{\mathbf{s}_{n+1}-\mathbf{X}_{n+1}}{J_{2} (\mathbf{s}_{n+1}-\mathbf{X}_{n+1})}. \end{aligned}$$
(16.1,2)

Subtracting Eq. (10) from Eq. (13.1) and substituting Eqs. (15.1) and (16.1) yields

$$\begin{aligned} \mathbf{s}_{n+1}-\mathbf{X}_{n+1}=\mathbf{s}^{pr}_{n+1}-2\mu \Delta \mathbf{e}^{p} - \sum _{i=1}^{M}{} \mathbf{X}^{(i)}_{n+1}= \mathbf{s}^{pr}_{n+1}-3 \mu \Delta \bar{e}^{p}\bar{\mathbf{n}}_{n+1}-\sum _{i=1}^{M}w_{i}\left( \mathbf{X}^{(i)}_{n}+C_{i}\Delta \bar{e}^{p}\bar{\mathbf{n}}_{n+1} \right) . \end{aligned}$$
(17)

After some manipulation Eq. (17) can be written as:

$$\begin{aligned} \mathbf{s}_{n+1}-\mathbf{X}_{n+1}=\mathbf{s}^{pr}_{n+1}-\left( 3 \mu +\sum _{i=1}^{M}w_{i}C_{i} \right) \Delta \bar{e}^{p}\bar{\mathbf{n}}_{n+1} - \sum _{i=1}^{M}w_{i}{} \mathbf{X}^{(i)}_{n}. \end{aligned}$$
(18)

Using Eq. (16.2) in Eq. (18) and some rearrangements lead to:

$$\begin{aligned} \left( \mathbf{s}_{n+1}-\mathbf{X}_{n+1}\right) \left[ 1+\left( 3 \mu +\sum _{i=1}^{M}w_{i}C_{i} \right) \frac{\Delta \bar{e}^{p}}{J_{2}(\mathbf{s}_{n+1}-\mathbf{X}_{n+1})} \right] =\mathbf{s}^{pr}_{n+1}- \sum _{i=1}^{M}w_{i}{} \mathbf{X}^{(i)}_{n}, \end{aligned}$$
(19)

where

$$\begin{aligned} J_{2}(\mathbf{s}_{n+1}-\mathbf{X}_{n+1})=k+R(\bar{e}^{p}_{n+1}), \end{aligned}$$
(20)

when the material is yielding. The following notations are introduced:

$$\begin{aligned} \alpha (\Delta \bar{e}^{p})=1+\left( 3 \mu +\sum _{i=1}^{M}w_{i}C_{i} \right) \frac{\Delta \bar{e}^{p}}{k+R(\bar{e}^{p}_{n+1})}, \end{aligned}$$
(21)

and

$$\begin{aligned} \mathbf{Z}=\mathbf{s}^{pr}_{n+1}- \sum _{i=1}^{M}w_{i}{} \mathbf{X}^{(i)}_{n}. \end{aligned}$$
(22)

After inserting Eqs. (20)–(22) into Eq. (19) it is found that:

$$\begin{aligned} \left( \mathbf{s}_{n+1}-\mathbf{X}_{n+1}\right) \alpha (\Delta \bar{e}^{p})=\mathbf{Z}. \end{aligned}$$
(23)

By performing some manipulations Eq. (23) can be converted into a scalar equation, i.e.,

$$\begin{aligned} \left( k+R(\bar{e}^{p}_{n+1})\right) \alpha (\Delta \bar{e}^{p})-J_{2}(\mathbf{Z})=0, \end{aligned}$$
(24)

where \(J_{2}(\mathbf{Z})=\sqrt{\frac{3}{2}{} \mathbf{Z}\cdot \mathbf{Z}}\) and \(\bar{e}^{p}_{n+1}=\bar{e}^{p}_{n}+\Delta \bar{e}^{p}\). Equation (24) is a nonlinear algebraic equation which has to be solved numerically for the effective plastic strain increment \(\Delta \bar{e}^{p}\). The solution of Eq. (24) by means of Newton’s iterative method is discussed in the Appendix. After determining the value of \(\Delta \bar{e}^{p}\) the backstress components can be updated according to Eq. (15.1) and the total backstress is calculated using Eq. (10). Subsequently, the deviatoric stress is updated using Eq. (23), i.e.,

$$\begin{aligned} \mathbf{s}_{n+1}=\mathbf{X}_{n+1}+\frac{\mathbf{Z}}{\alpha (\Delta \bar{e}^{p})}. \end{aligned}$$
(25)

It is important to note that using Eqs. (20), (23), and (24) it can be found that:

$$\begin{aligned} \bar{\mathbf{n}}_{n+1}=\frac{\mathbf{s}_{n+1}-\mathbf{X}_{n+1}}{J_{2}(\mathbf{s}_{n+1}-\mathbf{X}_{n+1})}=\frac{\mathbf{Z}}{J_{2}(\mathbf{Z})}. \end{aligned}$$
(26)

4 Consistent tangent operator

Taking the variation of Eq. (13.1) with respect to all quantities gives:

$$\begin{aligned} \delta \mathbf{s}_{n+1}=\delta \mathbf{s}_{n+1}^{pr}-3\mu \delta \bar{e}^{p}\bar{\mathbf{n}}_{n+1}-3\mu \Delta \bar{e}^{p} \delta \bar{\mathbf{n}}_{n+1},\nonumber \\ \end{aligned}$$
(27)

where the formulas for the variations \(\delta \bar{e}^{p}\) and \(\delta \bar{\mathbf{n}}_{n+1}\) have to be found. For the purpose of finding \(\delta \bar{e}^{p}\), the variation of Eq. (24) is taken, i.e.,

$$\begin{aligned} \delta R (\bar{e}^{p}) \alpha (\Delta \bar{e}^{p})+(k+R (\bar{e}^{p})) \delta \alpha (\Delta \bar{e}^{p})-\delta J_{2} (\mathbf{Z})=0, \end{aligned}$$
(28)

with \(\delta R (\bar{e}^{p})=\frac{\mathrm {d}R (\bar{e}^{p})}{\mathrm {d}\bar{e}^{p}} \delta \bar{e}^{p}\) which depends on the specific form of \(R (\bar{e}^{p})\) (see Table 1), whereas \(\delta \alpha (\Delta \bar{e}^{p})=\frac{\mathrm {d}\alpha (\Delta \bar{e}^{p})}{\mathrm {d}\Delta \bar{e}^{p}} \delta \bar{e}^{p}\) takes the form:

$$\begin{aligned} \delta \alpha (\Delta \bar{e}^{p}) = \frac{\delta \bar{e}^{p}}{k+R(\bar{e}^{p})} \left[ 3 \mu +\sum _{i=1}^{M}w_{i}C_{i}\left( 1-\gamma _{i}w_{i}\Delta \bar{e}^{p} \right) +\left( 1- \alpha (\Delta \bar{e}^{p}) \right) \frac{\mathrm {d}R (\bar{e}^{p})}{\mathrm {d}\bar{e}^{p}} \right] , \end{aligned}$$
(29)

see Appendix for the derivation. The variation \(\delta J_{2} (\mathbf{Z})\) is given by the following equation (see Appendix):

$$\begin{aligned} \delta J_{2}(\mathbf{Z}) =\frac{3}{2}\bar{\mathbf{n}}_{n+1} \cdot \delta \mathbf{s}_{n+1}^{pr}+ \frac{3}{2}\sum _{i=1}^{M} \gamma _{i}w_{i}^{2}\left( \bar{\mathbf{n}}_{n+1} \cdot \mathbf{X}^{(i)}_{n}\right) \delta \bar{e}^{p}. \end{aligned}$$
(30)

Substituting Eqs. (29) and (30) into Eq. (28) and solving it for \(\delta \bar{e}^{p}\) leads to the following relation:

$$\begin{aligned} \delta \bar{e}^{p} =\frac{\frac{3}{2}\bar{\mathbf{n}}_{n+1} \cdot \delta \mathbf{s}_{n+1}^{pr}}{3\mu +\sum _{i=1}^{M}w_{i}C_{i}\left( 1-\gamma _{i}w_{i}\Delta \bar{e}^{p}\right) + \left. \frac{\mathrm {d}R }{\mathrm {d}\bar{e}^{p}}\right| _{\bar{e}^{p}_{n+1}} -\frac{3}{2}\sum _{i=1}^{M} \gamma _{i}w_{i}^{2} \left( \bar{\mathbf{n}}_{n+1} \cdot \mathbf{X}^{(i)}_{n}\right) }. \end{aligned}$$
(31)

It is convenient to introduce the so-called effective hardening modulus:

$$\begin{aligned} h^{*}=\sum ^{M}_{i=1} w_{i} C_{i} (1-\gamma _{i}w_{i} \Delta \bar{e}^{p})+\left. \frac{\mathrm {d}R}{\mathrm {d}\bar{e}^{p}}\right| _{\bar{e}^{p}_{n+1}}- \frac{3}{2}\sum ^{M}_{i=1} \gamma _{i} w_{i}^{2}\left( \bar{\mathbf{n}}_{n+1} \cdot \mathbf{X}^{(i)}_{n}\right) . \end{aligned}$$
(32)

Thus, using Eq. (32) the formula for the effective plastic strain variation can be written as:

$$\begin{aligned} \delta \bar{e}^{p}= \frac{3}{2} \frac{\bar{\mathbf{n}}_{n+1} \cdot \delta \mathbf{s}_{n+1}^{pr}}{3\mu +h^{*}}. \end{aligned}$$
(33)

The variation of the normalized effective stress is given as (see Appendix):

$$\begin{aligned} \delta \bar{\mathbf{n}}_{n+1}=\frac{1}{J_{2}(\mathbf{Z})}\left( \mathbf{I}-\frac{3}{2}\bar{\mathbf{n}}_{n+1} \otimes \bar{\mathbf{n}}_{n+1} \right) \cdot \delta \mathbf{s}_{n+1}^{pr} + \frac{1}{J_{2}(\mathbf{Z})}\left( \mathbf{I}-\frac{3}{2}\bar{\mathbf{n}}_{n+1} \otimes \bar{\mathbf{n}}_{n+1} \right) \cdot \left( \sum _{i=1}^{M}\gamma _{i}w_{i}^{2} \mathbf{X}^{(i)}_{n} \delta \bar{e}^{p} \right) .\nonumber \\ \end{aligned}$$
(34)

Inserting Eqs. (33) and (34) into Eq. (27) leads to:

$$\begin{aligned} \begin{aligned} \delta \mathbf{s}_{n+1}&= \delta \mathbf{s}_{n+1}^{pr} -\frac{3\mu }{3\mu +h^{*}} \left( \frac{3}{2}\bar{\mathbf{n}}_{n+1} \cdot \delta \mathbf{s}_{n+1}^{pr} \right) \bar{\mathbf{n}}_{n+1} -\frac{3 \mu \Delta \bar{e}^{p}}{J_{2}(\mathbf{Z})}\left( \mathbf{I}-\frac{3}{2} \bar{\mathbf{n}}_{n+1}\otimes \bar{\mathbf{n}}_{n+1}\right) \cdot \delta \mathbf{s}_{n+1}^{pr}\\&\quad -\frac{3 \mu \Delta \bar{e}^{p}}{J_{2}(\mathbf{Z})} \left( \mathbf{I}-\frac{3}{2}\bar{\mathbf{n}}_{n+1}\otimes \bar{\mathbf{n}}_{n+1}\right) \cdot \left( \sum _{i=1}^{M}\gamma _{i}w_{i}^{2}{} \mathbf{X}^{(i)}_{n} \right) \frac{3}{2}\frac{\bar{\mathbf{n}}_{n+1} \cdot \delta \mathbf{s}_{n+1}^{pr}}{3\mu +h^{*}}, \end{aligned} \end{aligned}$$
(35)

which after some rearrangements can be expressed as:

$$\begin{aligned} \begin{aligned} \delta \mathbf{s}_{n+1}&=\left( 1-\frac{3 \mu \Delta \bar{e}^{p}}{J_{2}(\mathbf{Z})} \right) \delta \mathbf{s}_{n+1}^{pr}+ \frac{1}{2} \left[ \frac{h^{*}}{\mu (1+\frac{h^{*}}{3\mu })}-3\left( 1-\frac{3 \mu \Delta \bar{e}^{p}}{J_{2}(\mathbf{Z})} \right) \right] (\bar{\mathbf{n}}_{n+1}\otimes \bar{\mathbf{n}}_{n+1})\cdot \delta \mathbf{s}_{n+1}^{pr}\\&-\frac{3 \mu \Delta \bar{e}^{p}}{(3\mu +h^{*})J_{2}(\mathbf{Z})} \frac{3}{2} \sum ^{M}_{i=1}\gamma _{i} w_{i}^{2} \left[ \mathbf{X}^{(i)}_{n} \otimes \bar{\mathbf{n}}_{n+1}-\frac{3}{2}\left( \bar{\mathbf{n}}_{n+1} \cdot \mathbf{X}^{(i)}_{n}\right) \bar{\mathbf{n}}_{n+1}\otimes \bar{\mathbf{n}}_{n+1} \right] \cdot \delta \mathbf{s}_{n+1}^{pr}. \end{aligned} \end{aligned}$$
(36)

The effective shear modulus \(\mu ^{*}\) is introduced as:

$$\begin{aligned} \mu ^{*}=\mu \left( 1-\frac{3 \mu \Delta \bar{e}^{p}}{J_{2}(\mathbf{Z})} \right) . \end{aligned}$$
(37)

Moreover, the following relations are utilized:

$$\begin{aligned} \frac{3}{2} \frac{1}{3\mu +h^{*}}\left( -\frac{3 \mu \Delta \bar{e}^{p}}{J_{2}(\mathbf{Z})} \right) =\frac{1}{2\mu \left( 1+\frac{h^{*}}{3\mu } \right) }\left( -\frac{3 \mu \Delta \bar{e}^{p}}{J_{2}(\mathbf{Z})} \right) = -\frac{1}{2\mu } \frac{1-\frac{\mu ^{*}}{\mu }}{1+\frac{h^{*}}{3 \mu }}, \end{aligned}$$
(38)

and

$$\begin{aligned} \delta \mathbf{s}^{pr}_{n+1}=2 \mu \left( \delta {\varvec{\varepsilon }}_{n+1} -\frac{1}{3}{{\,\mathrm{tr}\,}}(\delta {\varvec{\varepsilon }}_{n+1})\mathbf{1}\right) . \end{aligned}$$
(39)

Substituting Eqs. (37)–(39) into Eq. (36) yields:

$$\begin{aligned} \begin{aligned} \delta \mathbf{s}_{n+1}&=-\frac{2}{3}\mu ^{*} {{\,\mathrm{tr}\,}}(\delta {\varvec{\varepsilon }}_{n+1}) \pmb {1}+ 2\mu ^{*}\delta {\varvec{\varepsilon }}_{n+1} + \left( \frac{h^{*}}{1+\frac{h^{*}}{3 \mu }} -3\mu ^{*}\right) (\bar{\mathbf{n}}_{n+1}\otimes \bar{\mathbf{n}}_{n+1})\cdot \delta {\varvec{\varepsilon }}_{n+1}\\&\quad -\frac{1-\frac{\mu ^{*}}{\mu }}{1+\frac{h^{*}}{3 \mu }} \sum ^{M}_{i=1}\gamma _{i} w_{i}^{2} \left[ \mathbf{X}^{(i)}_{n} \otimes \bar{\mathbf{n}}_{n+1}-\frac{3}{2}\left( \bar{\mathbf{n}}_{n+1} \cdot \mathbf{X}^{(i)}_{n}\right) \bar{\mathbf{n}}_{n+1}\otimes \bar{\mathbf{n}}_{n+1} \right] \cdot \delta {\varvec{\varepsilon }}_{n+1}, \end{aligned} \end{aligned}$$
(40)

where the fact that \(\mathbf{1} \cdot \bar{\mathbf{n}}_{n+1}={{\,\mathrm{tr}\,}}(\bar{\mathbf{n}}_{n+1})=0\) has been utilized. The variation of the total stress tensor at the increment \(n+1\), i.e., \({\varvec{\sigma }}_{n+1}\), is given as:

$$\begin{aligned} \delta {\varvec{\sigma }}_{n+1}= \delta \mathbf{s}_{n+1}+\delta p_{n+1} \pmb {1}, \delta p_{n+1}=K {{\,\mathrm{tr}\,}}(\delta {\varvec{\varepsilon }}_{n+1}). \end{aligned}$$
(41.1,2)

A relation between the stress and the strain variations can be obtained by inserting Eqs. (40) and (41.2) into Eq. (41.1), i.e.,

(42)

where is the consistent algorithmic tangent operator which is given by the following relation:

$$\begin{aligned} \begin{aligned} {\pmb {\mathcal {C}}}^{e-p}_{n+1}&=\lambda ^{*}\pmb {1}\otimes \pmb {1}+2 \mu ^{*} \mathbf{I}+ \left( \frac{h^{*}}{1+\frac{h^{*}}{3 \mu }} -3\mu ^{*}\right) \bar{\mathbf{n}}_{n+1}\otimes \bar{\mathbf{n}}_{n+1} \\&\quad -\frac{1-\frac{\mu ^{*}}{\mu }}{1+\frac{h^{*}}{3 \mu }} \sum ^{M}_{i=1}\gamma _{i} w_{i}^{2} \left[ \mathbf{X}^{(i)}_{n} \otimes \bar{\mathbf{n}}_{n+1}-\frac{3}{2}\left( \bar{\mathbf{n}}_{n+1} \cdot \mathbf{X}^{(i)}_{n}\right) \bar{\mathbf{n}}_{n+1}\otimes \bar{\mathbf{n}}_{n+1} \right] , \end{aligned} \end{aligned}$$
(43)

with

$$\begin{aligned} \lambda ^{*}=K-\frac{2}{3}\mu ^{*} \end{aligned}$$
(44)

being the effective Lamé parameter. It should be emphasized that the tangent operator given by Eq. (43) is non-symmetric, cf [3, 14]. For \(M=1\) and \(\gamma _{1}=0\) the tangent operator simplifies to the form corresponding to the mixed hardening model (with the kinematic hardening governed by the rule by Prager, cf [11]). Moreover, if it is further assumed that \(R(\bar{e}^{p})=0\) the tangent operator of the Prager’s kinematic hardening model is obtained, cf [22]. If one assumes \(M=0\) in Eq. (43) the tangent operator is reduced to the one of the isotropic hardening model [22].

If the equivalent HMH predictor stress does not satisfy the condition \(\overline{\sigma }^{pr}=J_{2}(\mathbf{s}^{pr}_{n+1}-\mathbf{X}_{n})>k+R(\bar{e}^{p}_{n})\), the tangent operator takes the form of the elasticity tensor, i.e.,

(45)

where \(\lambda =K-\frac{2}{3}\mu \) is the Lamé constant.

5 User material (UMAT) subroutine for cyclic elastoplasticity

Most of the commercial and non-commercial FE programs offer the option of using a user-written subroutine to define a constitutive relation which is unavailable in the program’s material library, e.g., [6, 7, 9, 19]. Usually such subroutines require from the user to define the stress update rule and the material tangent operator also known as the material Jacobian. The FE program CalculiX utilizes alternatively two different interfaces which can be used for coding a user-defined constitutive law, cf [7]. The first is the ABAQUS interface with the second being the CalculiX native interface.

In this study the stress update algorithm described in Section 3 and the tangent operator given by Eq. (43) were used to implement the small strain cyclic plasticity constitutive model into the FE program CalculiX via the UMAT subroutine (User MATerial). It was decided to utilize the CalculiX native interface due to its better performance compared to the ABAQUS UMAT used under CalculiX. The subroutine UMAT uses the small mechanical strain tensor components (the “emec” column matrix) as an input which is further used to calculate the stress tensor component matrix (“stre”) and the components of the tangent operator stored in a column matrix (“stiff”). It is assumed that the tangent operator is symmetric [7], i.e., when the tangent operator is written as a \(6\times 6\) matrix only the upper half of the components should be defined. The non-symmetric tangent operator tensors should be symmetrized as shown in the exemplary source files provided with CalculiX. It has been demonstrated in the literature that the performed symmetrization has no negative influence on the accuracy of the FE computations and very limited influence on their robustness, e.g., [10, 12]. Below the indexes of the fourth-order tensor components have been listed in the \(6\times 6\) matrix (the indexes of the “stiff” column matrix components are given in the brackets; the Voigt notation is not used):

(46)

The subroutine UMAT calculates the components of stress and material tangent operator at each Gauss integration point. These quantities are subsequently used by CalculiX to form up the element stiffness matrix. Finally, the global stiffness matrix is assembled by CalculiX using the element stiffness matrices. This procedure is repeated during every iteration of the Newton–Raphson process for all increments of the analysis (Fig. 1).

The UMAT subroutine is written in Fortran 77 language. In order to use it with CalculiX the code should be compiled to the dynamic link library file (DLL)Footnote 1. The DLL file should be placed in the same folder on the computer’s hard drive as the CalculiX solver executable. Proper references to the user subroutine should be included in the CalculiX input file on the *MATERIAL and *SOLID SECTION cards. That is:

*MATERIAL, NAME=@YOSHIDA

*USER MATERIAL, CONSTANTS=8

79308.361,0.3,843.902,-216.91355,213.92731,58791.656,147.73622,1803.7759

284

*DEPVAR 25

and

*SOLID SECTION, ELSET=SOLIDPART-1, MATERIAL=@YOSHIDA

where “YOSHIDA” is the name of the DLL file containing the compiled UMAT code for the elastoplastic model by Yoshida [29]. This UMAT code can be found in the Appendix Section. The calculations performed by the developed subroutine follow the list in the box below. In the case of the Yoshida elastoplastic model \(M=2\) with \(\gamma _{2}=0\), whereas the isotropic hardening behavior is simulated using the rule by Voce, cf [29].

figure a

The number of the utilized backstresses can be easily increased by a proper modification to the attached code. The UMAT subroutine has been written in a general form so that any other function than Voce defining the isotropic hardening behavior can be easily implemented by modifying the code. Some alternative forms of the function \(R(\bar{e}^{p})\) and its derivative are listed in Table 1.

It should be emphasized that the maximum number of material parameters which can be listed in a single row in the *Material card is eight. If there are more parameters, they should be listed in the subsequent rows. Moreover, if the number of the model’s parameters is precisely eight (as in the example given above) the temperature should be given in the subsequent row of the input file, regardless of the type of analysis [7].

Fig. 1
figure 1

Flowchart for the integration of CalculiX and UMAT

Table 1 Isotropic hardening functions and their derivatives (\(\sigma _{y}(\bar{e}^{p})=k+R(\bar{e}^{p})\))

6 Exemplary problems

Below some exemplary simulations are discussed which were utilized to verify the performance of the developed UMAT code. The verification tests included simulating processes with homogenous strain and stress fields: uniaxial tension/compression (UT/UC), equibiaxial tension/compression (BT/BC) and simple shear (SS). The radial return mapping algorithm was used to derive equation sets which describe the aforementioned processes. These equations were utilized to write simulation programs in Scilab software [21] which were further used to verify the results of the FE simulations performed with CalculiX. In addition to the problems mentioned above some more complex examples were considered as well.

6.1 Uniaxial tension/compression (UT/UC)

A uniaxial stress state is assumed. The matrices containing the components of the total stress tensor, its deviator (according to Eq. (1.3)) and the backstress tensor are given as:

$$\begin{aligned} {\varvec{\sigma }}_{3 \times 3}= \left[ \begin{array}{ccc} \sigma &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad 0 \end{array}\right] , \mathbf{s}_{3 \times 3}= \left[ \begin{array}{ccc} \frac{2}{3}\sigma &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad -\frac{1}{3}\sigma &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad -\frac{1}{3}\sigma \end{array}\right] , \mathbf{X}_{3 \times 3}= \left[ \begin{array}{ccc} \frac{2}{3} X &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad -\frac{1}{3}X &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad -\frac{1}{3}X \end{array}\right] . \end{aligned}$$
(47)

Thus:

$$\begin{aligned} (\mathbf{s}-\mathbf{X})_{3 \times 3}= \left[ \begin{array}{ccc} \frac{2}{3} (\sigma -X) &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad -\frac{1}{3}(\sigma -X) &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad -\frac{1}{3}(\sigma -X) \end{array}\right] , \end{aligned}$$
(48)

and the HMH equivalent stress takes the form:

$$\begin{aligned} J_{2}(\mathbf{s}-\mathbf{X})=\sqrt{\frac{3}{2}(\mathbf{s}-\mathbf{X}) \cdot (\mathbf{s}-\mathbf{X})}=\left| \sigma - X\right| . \end{aligned}$$
(49)

It follows from the generalized Hooke’s law given by Eqs. (1.1) and (2) that the axial elastic strain component is

$$\begin{aligned} \varepsilon _{11}^{e}=\frac{1}{E} \left[ \sigma _{11}-\nu (\sigma _{22}+\sigma _{33})\right] , \end{aligned}$$
(50)

where according to the assumed boundary conditions:

$$\begin{aligned} \sigma _{22}=\sigma _{33}=0, \sigma _{11}=\sigma , \end{aligned}$$
(51)

thus:

$$\begin{aligned} \sigma =E \varepsilon _{11}^{e}. \end{aligned}$$
(52)

The axial stress component in the increment \(n+1\) is given as:

$$\begin{aligned} \sigma _{n+1}=\sigma _{n}+E \Delta \varepsilon _{11}^{e}, \end{aligned}$$
(53)

with the axial elastic strain component

$$\begin{aligned} \Delta \varepsilon _{11}^{e}=\Delta \varepsilon _{11}-\Delta \varepsilon _{11}^{p}. \end{aligned}$$
(54)

The total strain and plastic strain matrices take the form:

$$\begin{aligned} {\varvec{\varepsilon }}_{3 \times 3}= \left[ \begin{array}{ccc} \varepsilon _{a} &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad \varepsilon _{l} &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad \varepsilon _{l} \end{array}\right] , {\varvec{\varepsilon }}^{p}_{3 \times 3}= \left[ \begin{array}{ccc} \varepsilon ^{p} &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad -\frac{1}{2} \varepsilon ^{p} &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad -\frac{1}{2} \varepsilon ^{p} \end{array}\right] , \end{aligned}$$
(55)

where \(\varepsilon _{a}\) is the total axial strain, \(\varepsilon _{l}\) is the total lateral strain, whereas \(\varepsilon ^{p}\) is the axial plastic strain component. It follows from Eqs. (54) and (55) that Eq. (53) can be rewritten as:

$$\begin{aligned} \sigma _{n+1}=\sigma _{n+1}^{pr}-E \Delta \varepsilon _{11}^{p}, \sigma _{n+1}^{pr}=\sigma _{n}+E\Delta \varepsilon _{a}. \end{aligned}$$
(56.1,2)

The components of the \(\mathbf{Z}\) stress are assumed in the following form:

$$\begin{aligned} \mathbf{Z}_{3 \times 3}= \left[ \begin{array}{ccc} \frac{2}{3} Z &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad -\frac{1}{3}Z &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad -\frac{1}{3}Z \end{array}\right] . \end{aligned}$$
(57)

Thus, it follows from Eq. (26) that the axial component of the normalized effective stress is:

$$\begin{aligned} (\bar{\mathbf{n}}_{n+1})_{11}=\frac{\frac{2}{3}Z}{\left| Z \right| }=\frac{2}{3}{{\,\mathrm{sgn}\,}}(Z). \end{aligned}$$
(58)

After substituting Eq. (58) into Eq. (16.1) it is found that:

$$\begin{aligned} \Delta \varepsilon ^{p}_{11}=\Delta \bar{e}^{p}{{\,\mathrm{sgn}\,}}(Z). \end{aligned}$$
(59)

Inserting Eq. (59) into Eq. (56.1) results in

$$\begin{aligned} \sigma _{n+1}=\sigma _{n+1}^{pr}-E\Delta \bar{e}^{p}{{\,\mathrm{sgn}\,}}(Z). \end{aligned}$$
(60)

According to Eq. (15.1) the axial component of the i-th backstress in the increment \(n+1\) is

$$\begin{aligned} X_{11 \, n+1}^{(i)}=w_{i} \left( X_{11 \, n}^{(i)}+\frac{2}{3}C_{i} \Delta \varepsilon _{11}^{p}\right) , \end{aligned}$$
(61)

while it follows from Eq. (10) that the total axial backstress is

$$\begin{aligned} X_{11}=\sum _{i=1}^{M} X_{11}^{(i)}, \end{aligned}$$
(62)

whereas \(X_{11}=\frac{2}{3}X\) and \(X_{11}^{(i)}=\frac{2}{3}X^{(i)}\), thus

$$\begin{aligned} X=\sum _{i=1}^{M}X^{(i)}. \end{aligned}$$
(63)

After inserting Eq. (59) into Eq. (61) it is found that

$$\begin{aligned} X_{n+1}^{(i)}=w_{i} \big (X_{n}^{(i)}+C_{i} \Delta \bar{e}^{p}{{\,\mathrm{sgn}\,}}(Z)\big ). \end{aligned}$$
(64)

Subtracting Eq. (63) from Eq. (60) and substituting Eq. (64) gives:

$$\begin{aligned} \sigma _{n+1}-X_{n+1}=\sigma ^{pr}_{n+1}-\sum _{i=1}^{M} w_{i}X_{n}^{(i)}-\left( E+\sum _{i=1}^{M}w_{i}C_{i} \right) \Delta \bar{e}^{p}{{\,\mathrm{sgn}\,}}(Z). \end{aligned}$$
(65)

It follows from Eqs. (26), (47), and (57) that

$$\begin{aligned} \frac{\frac{2}{3}(\sigma -X)}{\left| \sigma -X\right| }= \frac{\frac{2}{3}Z}{\left| Z\right| }, \end{aligned}$$
(66)

thus

$$\begin{aligned} {{\,\mathrm{sgn}\,}}(\sigma -X)={{\,\mathrm{sgn}\,}}(Z). \end{aligned}$$
(67)

According to Eq. (20) the following equality should hold when the material is actively yielding:

$$\begin{aligned} \left| \sigma _{n+1}-X_{n+1}\right| =k+R(\bar{e}^{p}_{n+1}). \end{aligned}$$
(68)

Substituting Eq. (68) into Eq. (67) leads to:

$$\begin{aligned} {{\,\mathrm{sgn}\,}}(Z)=\frac{\sigma _{n+1}-X_{n+1}}{k+R(\bar{e}^{p}_{n+1})}. \end{aligned}$$
(69)

Thus, after inserting Eq. (69) into Eq. (65) and some rearrangements it is found that:

$$\begin{aligned} \left( \sigma _{n+1}-X_{n+1}\right) \left[ 1+\left( E+\sum _{i=1}^{M}w_{i}C_{i} \right) \frac{\Delta \bar{e}^{p}}{k+R(\bar{e}^{p}_{n+1})}\right] =\sigma ^{pr}_{n+1}- \sum _{i=1}^{M}w_{i}X_{n}^{(i)}, \end{aligned}$$
(70)

where \(\bar{e}^{p}_{n+1}=\bar{e}^{p}_{n}+\Delta \bar{e}^{p}\). The following notation is used:

$$\begin{aligned} \alpha (\Delta \bar{e}^{p})=1+\left( E+\sum _{i=1}^{M}w_{i}C_{i} \right) \frac{\Delta \bar{e}^{p}}{k+R(\bar{e}^{p}_{n}+\Delta \bar{e}^{p})}. \end{aligned}$$
(71)

It follows from Eqs. (22), (47), and (57) that

$$\begin{aligned} Z=\sigma _{n+1}^{pr}-\sum _{i=1}^{M}w_{i}X_{n}^{(i)}. \end{aligned}$$
(72)

Substituting Eqs. (71) and (72) into Eq. (70) after some rearrangements gives:

$$\begin{aligned} \sigma _{n+1}=X_{n+1}+\frac{Z}{\alpha (\Delta \bar{e}^{p})}. \end{aligned}$$
(73)

The following equation is also valid:

$$\begin{aligned} \left| \sigma _{n+1}-X_{n+1}\right| \alpha (\Delta \bar{e}^{p})=\left| Z\right| . \end{aligned}$$
(74)

Inserting Eq. (68) into Eq. (74) and further rearrangement yields:

$$\begin{aligned} \big (k+R(\bar{e}^{p}_{n}+\Delta \bar{e}^{p})\big )\alpha (\Delta \bar{e}^{p})-\left| Z\right| =0, \end{aligned}$$
(75)

which is the nonlinear algebraic equation that should be solved for the effective plastic strain increment \(\Delta \bar{e}^{p}\). If the isotropic hardening function is assumed in the form proposed by Chaboche and Rousselier, then:

$$\begin{aligned} R(\bar{e}^{p}_{n}+\Delta \bar{e}^{p})=\sum _{i=1}^{N} Q_{i} \left( 1-e^{-b_{i}(\bar{e}_{n}^{p}+\Delta \bar{e}^{p})}\right) . \end{aligned}$$
(76)

The derived set of equations was utilized to write a Scilab program designated for simulating uniaxial tension and compression processes. The computations performed by the program have been listed in the box below. The Scilab function fsolve [21] was used for solving the nonlinear algebraic equation given by Eq. (75). The developed program was used to verify the results of the FE simulations performed using the UMAT code.

The data for DP1000 steel by Zimniak and Wiewiórska [30] were utilized to determine the material parameters of the elastoplastic constitutive model by Yoshida. The evaluated parameter values are listed in Table 2. This material parameter set was used for the numerical simulations both in CalculiX and Scilab. In the case of the Yoshida model \(M=2\) in Eq. (62) with \(\gamma _{2}=0\) and \(N=1\) in Eq. (76).

The simulation of the uniaxial tension/compression process was performed in CalculiX using a cubic geometrical model with the dimensions 1mm\(\times \)1mm\(\times \)1mm. The cube was meshed with a single C3D8 elementFootnote 2. In Fig. 2a the applied boundary conditions have been illustrated. A kinematic excitation was assumed. A ramp displacement \(\delta \) in the direction “1” of the rectangular coordinate system was applied to the cube’s frontal face ABCD (see Fig. 2c). The following boundary conditions were applied to the other faces of the cube: a zero displacement in the direction “1” was set on the face EFGH, a zero displacement in the direction “2” on the face AEHD, and a zero displacement in the direction “3” on the face ABFE. After reaching the maximum value of \(\delta =0.07\) mm the displacement started decreasing linearly with the analysis time. The simulation ended with \(\delta =0\) mm. The axial strain is calculated as: \(\varepsilon _{a}=\delta /1=\delta \).

figure b
Fig. 2
figure 2

Boundary conditions used for FE simulations: a uniaxial tension/compression, b equibiaxial tension/compression, c faces of the finite element used to apply boundary conditions

Table 2 Material parameters of the Yoshida model determined for DP1000 steel
Fig. 3
figure 3

Metal cube undergoing uniaxial tension/compression: a stress vs axial strain, b lateral strain vs axial strain

The results obtained using the finite element method (FEM) in CalculiX were compared to those generated by the simulation using the Scilab program. In Fig. 3a the comparison of the stress–axial strain responses produced independently by the two aforementioned methods can be seen. In Fig. 3b the obtained plots of the axial strain (\(\varepsilon _{a}\)) vs the lateral strain (\(\varepsilon _{l}\)) are compared. An excellent agreement is found in both cases.

Another uniaxial tension/compression simulation was performed using the same FE model and set of boundary conditions with a more complex loading history. In this approach the displacement of the cube’s ABCD face was defined using the increasing saw function. It can be seen in Fig. 4a and b that again an excellent agreement was found between the results produced by CalculiX and Scilab. In Fig. 4c the assumed complex loading history can be seen.

Both of the described FE simulations were repeated for the cube meshed with twenty-seven C3D8 elements. Again a very good agreement was observed between the results generated using CalculiX and Scilab. The simulations described above were also performed for different types of finite elements, i.e., C3D20Footnote 3, C3D4Footnote 4 and C3D10Footnote 5. No decrease in the performance of the developed UMAT code was observed.

Fig. 4
figure 4

Metal cube undergoing uniaxial cyclic tension/compression: a stress vs axial strain, b lateral strain vs axial strain, c axial strain vs analysis time

6.2 Equibiaxial tension/compression (BT/BC)

An equibiaxial stress state is assumed. The stress tensor components and the volumetric stress are given as:

$$\begin{aligned} {\varvec{\sigma }}_{3 \times 3}= \left[ \begin{array}{ccc} \sigma &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad \sigma &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad 0 \end{array}\right] , p=\frac{{{\,\mathrm{tr}\,}}({\varvec{\sigma }})}{3}=\frac{2}{3}\sigma . \end{aligned}$$
(77)

It follows that the components of the stress deviator take the form:

$$\begin{aligned} \mathbf{s}_{3 \times 3}= \left[ \begin{array}{ccc} \frac{1}{3}\sigma &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad \frac{1}{3}\sigma &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad -\frac{2}{3}\sigma \end{array}\right] . \end{aligned}$$
(78)

The backstress and the auxiliary stress \(\mathbf{Z}\) are assumed in a similar form to the stress deviator, i.e.,

$$\begin{aligned} \mathbf{X}_{3 \times 3}= \left[ \begin{array}{ccc} \frac{1}{3}X&{} 0 &{} 0 \\ 0 &{} \frac{1}{3}X &{} 0 \\ 0 &{} 0 &{} -\frac{2}{3}X \end{array}\right] , \mathbf{Z}_{3 \times 3}= \left[ \begin{array}{ccc} \frac{1}{3}Z&{} \quad 0 &{} \quad 0 \\ 0 &{} \quad \frac{1}{3}Z &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad -\frac{2}{3}Z \end{array}\right] , \end{aligned}$$
(79.1,2)

whereas, due to the plastic incompressibility (\({{\,\mathrm{tr}\,}}({\varvec{\varepsilon }}^{p})=0\)), the plastic strain has the following components:

$$\begin{aligned} {\varvec{\varepsilon }}_{3 \times 3}^{p}= \left[ \begin{array}{ccc} \varepsilon ^{p} &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad \varepsilon ^{p} &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad -2 \varepsilon ^{p} \end{array}\right] . \end{aligned}$$
(80)

It follows from Eqs. (78) and (79.1) that

$$\begin{aligned} \left( \mathbf{s}-\mathbf{X}\right) _{3 \times 3}= \left[ \begin{array}{ccc} \frac{1}{3}(\sigma -X) &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad \frac{1}{3}(\sigma -X) &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad -\frac{2}{3}(\sigma -X) \end{array}\right] , \end{aligned}$$
(81)

thus the HMH equivalent stress takes the form:

$$\begin{aligned} J_{2}(\mathbf{s}-\mathbf{X})=\sqrt{\frac{3}{2}\left[ \frac{2}{9}(\sigma -X)^{2} \, 2+\frac{4}{9}(\sigma -X)^{2}\right] }=\left| \sigma -X\right| . \end{aligned}$$
(82)

According to the generalized Hooke’s law as given by Eqs. (1.1) and (2) after some rearrangements the elastic strain components are given as:

$$\begin{aligned} \varepsilon ^{e}_{11}=\frac{1}{E}\left[ \sigma _{11}-\nu (\sigma _{22}+\sigma _{33})\right] , \varepsilon ^{e}_{22}=\frac{1}{E}\left[ \sigma _{22}-\nu (\sigma _{11}+\sigma _{33})\right] , \varepsilon ^{e}_{33}=\frac{1}{E}\left[ \sigma _{33}-\nu (\sigma _{11}+\sigma _{22})\right] . \end{aligned}$$
(83)

After taking into account that \(\sigma _{11}=\sigma _{22}=\sigma \) and \(\sigma _{33}=0\) and some further manipulations it is found that:

$$\begin{aligned} \sigma =\frac{E}{1-\nu }\varepsilon _{11}^{e}=\frac{E}{1-\nu }\varepsilon _{22}^{e}, \varepsilon _{33}^{e}=-\frac{\nu }{E}\sigma . \end{aligned}$$
(84)

The matrix of the components of the total strain tensor takes the form:

$$\begin{aligned} {\varvec{\varepsilon }}_{3 \times 3}= \left[ \begin{array}{ccc} \varepsilon _{a} &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad \varepsilon _{a} &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad \varepsilon _{l} \end{array}\right] . \end{aligned}$$
(85)

It follows from Eqs. (85) and (5) that:

$$\begin{aligned} {\varvec{\varepsilon }}_{3 \times 3}^{e}= \left[ \begin{array}{ccc} \varepsilon _{a}-\varepsilon ^{p}_{11} &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad \varepsilon _{a}-\varepsilon ^{p}_{22} &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad \varepsilon _{l}-\varepsilon ^{p}_{33} \end{array}\right] . \end{aligned}$$
(86)

Thus, Eq. (84.1) can be written in the following incremental form:

$$\begin{aligned} \Delta \sigma =\frac{E}{1-\nu }\Delta \varepsilon ^{e}_{11}=\frac{E}{1-\nu }(\Delta \varepsilon _{a}-\Delta \varepsilon ^{p}_{11}), \end{aligned}$$
(87)

so that the stress in the increment \(n+1\) is given as:

$$\begin{aligned} \sigma _{n+1}=\sigma _{n}+\Delta \sigma =\sigma _{n}+\frac{E}{1-\nu }\Delta \varepsilon _{a}-\frac{E}{1-\nu }\Delta \varepsilon ^{p}_{11}. \end{aligned}$$
(88)

After introducing the predictor stress Eq. (88) takes the form:

$$\begin{aligned} \sigma _{n+1}=\sigma ^{pr}_{n+1}-\frac{E}{1-\nu }\Delta \varepsilon ^{p}_{11}, \sigma _{n+1}^{pr}=\sigma _{n}+\frac{E}{1-\nu }\Delta \varepsilon _{a}. \end{aligned}$$
(89.1,2)

It follows from Eqs. (79.1,2) and (26) that

$$\begin{aligned} J_{2}(\mathbf{Z})=\left| Z\right| , (\bar{\mathbf{n}}_{n+1})_{11}=\frac{\frac{1}{3}Z}{\left| Z\right| }=\frac{1}{3} {{\,\mathrm{sgn}\,}}(Z). \end{aligned}$$
(90.1,2)

According to Eqs. (16.1) and (90.2) the plastic strain increment \(\Delta \varepsilon ^{p}_{11}\) is given by the following relation:

$$\begin{aligned} \Delta \varepsilon ^{p}_{11}=\frac{3}{2}\Delta \bar{e}^{p} \, \frac{1}{3}\frac{Z}{\left| Z\right| }=\frac{1}{2}\Delta \bar{e}^{p} {{\,\mathrm{sgn}\,}}(Z). \end{aligned}$$
(91)

Assuming \(X_{11}^{(i)}=\frac{1}{3}X^{(i)}\), it follows from Eqs. (79.1), (10), (15.1) and (91) that

$$\begin{aligned} X_{n+1}=\sum _{i=1}^{M} X_{n+1}^{(i)}, X_{n+1}^{(i)}=w_{i}\left( C_{i}\Delta \bar{e}^{p} {{\,\mathrm{sgn}\,}}(Z)+X_{n}^{(i)}\right) . \end{aligned}$$
(92.1,2)

Subtracting Eq. (92.1) from Eq. (89.1) and substituting Eq. (92.2) after some rearrangements gives:

$$\begin{aligned} \sigma _{n+1}-X_{n+1}=\sigma ^{pr}_{n+1}-\sum ^{M}_{i=1} w_{i}X^{(i)}_{n}-\left( \frac{E}{2(1-\nu )}+\sum _{i=1}^{M}w_{i}C_{i}\right) \Delta \bar{e}^{p} {{\,\mathrm{sgn}\,}}(Z). \end{aligned}$$
(93)

It follows from Eqs. (26), (78), and (79.2) that

$$\begin{aligned} {{\,\mathrm{sgn}\,}}(\sigma -X)={{\,\mathrm{sgn}\,}}(Z), \end{aligned}$$
(94)

whereas inserting Eq. (82) into Eq. (20) results in

$$\begin{aligned} \left| \sigma _{n+1}-X_{n+1}\right| =k +R(\bar{e}^{p}_{n+1})=k+R(\bar{e}^{p}_{n}+\Delta \bar{e}^{p}). \end{aligned}$$
(95)

The \(Z_{11}\) component of the auxiliary stress is given as:

$$\begin{aligned} Z_{11}=\frac{1}{3}\sigma ^{pr}_{n+1}-\sum _{i=1}^{M}w_{i} \, \frac{1}{3}X_{n}^{(i)}=\frac{1}{3}\left( \sigma ^{pr}_{n+1}- \sum _{i=1}^{M}w_{i}X^{(i)}_{n}\right) . \end{aligned}$$
(96)

Thus, according to Eqs. (79.2) and (96):

$$\begin{aligned} Z_{11}=\frac{1}{3} Z, Z=\sigma ^{pr}_{n+1}-\sum _{i=1}^{M}w_{i}X^{(i)}_{n}. \end{aligned}$$
(97.1,2)

After substituting Eqs. (94), (95) and (97.2) into Eq. (93) and some manipulations it is found that:

$$\begin{aligned} (\sigma _{n+1}-X_{n+1})\alpha (\Delta \bar{e}^{p})=Z, \end{aligned}$$
(98)

where the following notation is adapted:

$$\begin{aligned} \alpha (\Delta \bar{e}^{p})=1+\left( \frac{E}{2(1-\nu )}+ \sum _{i=1}^{M}w_{i}C_{i}\right) \frac{\Delta \bar{e}^{p}}{k+R(\bar{e}^{p}_{n+1})}, \end{aligned}$$
(99)
Fig. 5
figure 5

Metal cube undergoing equibiaxial tension/compression: a stress vs axial strain, b lateral strain vs axial strain

with \(w_{i}\) (\(i=1,2,\dots ,M\)) given by Eq. (15.2). Equation (98) can be transformed into the form:

$$\begin{aligned} \left( k+R(\bar{e}^{p}_{n}+\Delta \bar{e}^{p})\right) \alpha (\Delta \bar{e}^{p})-\left| Z\right| =0, \end{aligned}$$
(100)

which is the nonlinear algebraic equation that has to be solved numerically for the effective plastic strain increment \(\Delta \bar{e}^{p}\). The following relation which follows from Eq. (98) is used for updating the stress when the plastic strain increment is determined:

$$\begin{aligned} \sigma _{n+1}=X_{n+1}+\frac{Z}{\alpha (\Delta \bar{e}^{p})}. \end{aligned}$$
(101)

In the case of the Yoshida model \(M=2\) with \(\gamma _{2}=0\), whereas the isotropic hardening is described using the model by Voce (\(N=1\) in Eq. (76)).

The derived equations were used to write a Scilab program designated for simulating the equibiaxial tension/compression processes. The calculations performed by the program during every computational step have been gathered in the box below. The fsolve function offered by Scilab was utilized for solving Eq. (100). The developed Scilab program was used to verify the results of the FE simulations performed using the UMAT code. In Table 2 the material parameter values which were used for the simulations are gathered.

The simulation of the equibiaxial tension/compression process was performed in CalculiX using a cubic geometrical model with the dimensions 1mm\(\times \)1mm\(\times \)1mm. The cube was meshed with a single C3D8 element. In Fig. 2b the applied boundary conditions have been illustrated. A kinematic excitation was assumed. A ramp displacement \(\delta \) in the direction “1” of the rectangular coordinate system was applied to the two of the cube’s faces, i.e., ABCD and BFGC (see Fig. 2c). The following boundary conditions were applied to the other faces of the cube: a zero displacement in the direction “1” was set on the face EFGH, a zero displacement in the direction “2” on the face AEHD, and a zero displacement in the direction “3” on the face ABFE. After reaching the maximum value of \(\delta =0.05\) mm the displacement started decreasing linearly with the analysis time. The simulation ended when \(\delta =0\) mm.

The results obtained in CalculiX were compared with those generated by Scilab program. In Fig. 5a the stress–axial strain (the strain in the axes of tension) response produced by FEM simulation was compared with that generated by the Scilab program. In Fig. 5b the obtained plots of the lateral strain vs the axial strain are compared. In both cases an excellent agreement is found between the results generated by CalculiX and Scilab. The same analysis was repeated for a larger number and different types of finite elements (C3D4, C3D10, C3D20). Again, a very good agreement between the results obtained using CalculiX and Scilab was found.

figure c
figure d

6.3 Simple shear (SS)

In the case of SS process the stress, the backstress, and the auxiliary stress tensors have the following components:

$$\begin{aligned} {\varvec{\sigma }}_{3 \times 3}=\mathbf{s}_{3 \times 3}= \left[ \begin{array}{ccc} 0 &{} \sigma &{} 0 \\ \sigma &{} 0 &{} 0 \\ 0 &{} 0 &{} 0 \end{array}\right] , \mathbf{X}_{3 \times 3}= \left[ \begin{array}{ccc} 0 &{} \quad X &{} \quad 0 \\ X &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad 0 \end{array}\right] , \mathbf{Z}_{3 \times 3}= \left[ \begin{array}{ccc} 0 &{} \quad Z &{} \quad 0 \\ Z &{} \quad 0 &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad 0 \end{array}\right] , \end{aligned}$$
(102.1-3)

It follows from Eqs. (2) and (5) that the total shear stress in the \(n+1\) increment can be expressed as

$$\begin{aligned} \sigma _{n+1}=\sigma _{n+1}^{pr}-2 \mu \Delta \varepsilon _{12}^{p}, \sigma ^{pr}_{n+1}=\sigma _{n}+2 \mu \Delta \varepsilon . \end{aligned}$$
(103.1,2)

It is seen in Eq. (102.2) that \(X_{12}=X\), whereas \(X_{12}^{(i)}=X^{(i)}\); thus, according to Eqs. (10) and (15.1) for the increment \(n+1\) we have:

$$\begin{aligned} X_{n+1}=\sum _{i=1}^{M}X_{n+1}^{(i)}, X_{n+1}^{(i)}=w_{i}\left( \frac{2}{3}C_{i} \Delta \varepsilon ^{p}_{12}+X_{n}^{(i)} \right) , \end{aligned}$$
(104.1,2)

where \(w_{i}\) (\(i=1,2,\dots ,M\)) is given by Eq. (15.2). Subtracting Eq. (104.1) from Eq. (103.1) and substituting Eq. (104.2) yields

$$\begin{aligned} \sigma _{n+1}-X_{n+1}=\sigma ^{pr}_{n+1}-\sum _{i=1}^{M}w_{i}X^{(i)}_{n}-2\mu \Delta \varepsilon ^{p}_{12}-\sum _{i=1}^{M}\frac{2}{3}w_{i}C_{i}\Delta \varepsilon ^{p}_{12}. \end{aligned}$$
(105)

It follows from Eqs. (22) and (102.3) that

$$\begin{aligned} Z_{12}=Z=\sigma ^{pr}_{n+1}-\sum ^{M}_{i=1}w_{i}X^{(i)}_{n}. \end{aligned}$$
(106)

According to Eqs. (102.3) and (26):

$$\begin{aligned} J_{2}(\mathbf{Z})=\sqrt{3}\left| Z\right| , (\bar{\mathbf{n}}_{n+1})_{11}=\frac{Z}{\sqrt{3}\left| Z\right| }. \end{aligned}$$
(107.1,2)

Thus, using Eqs. (16.1) and (107.2) the following relation for the component of the shear plastic strain increment is found:

$$\begin{aligned} \Delta \varepsilon ^{p}_{12}=\frac{3}{2}\Delta \bar{e}^{p}\frac{Z}{\sqrt{3}\left| Z\right| }=\frac{\sqrt{3}}{2}\Delta \bar{e}^{p} {{\,\mathrm{sgn}\,}}(Z). \end{aligned}$$
(108)

Utilizing Eqs. (106) and (108) in Eq. (105) leads to the following relationship:

$$\begin{aligned} \sigma _{n+1}-X_{n+1}=Z-\sqrt{3}\left( \mu -\frac{1}{3}\sum _{i=1}^{M}w_{i}C_{i}\right) \Delta \bar{e}^{p} {{\,\mathrm{sgn}\,}}(Z). \end{aligned}$$
(109)

It follows from Eqs. (102.1) and (102.2) that the HMH equivalent stress is in the considered case given by the formula:

$$\begin{aligned} J_{2}(\mathbf{s}-\mathbf{X})=\sqrt{\frac{3}{2} \, 2(\sigma -X)^{2}}=\sqrt{3}\left| \sigma -X\right| . \end{aligned}$$
(110)

Thus, according to Eqs. (26), (107.1,2), and (110) we have:

$$\begin{aligned} (\bar{\mathbf{n}}_{n+1})_{11}=\frac{\sigma -X}{\sqrt{3} \left| \sigma -X\right| }=\frac{Z}{\sqrt{3}\left| Z\right| }, {{\,\mathrm{sgn}\,}}(\sigma -X)={{\,\mathrm{sgn}\,}}(Z), \end{aligned}$$
(111)

while inserting Eq. (110) into Eq. (20) gives

$$\begin{aligned} \sqrt{3}\left| \sigma _{n+1}-X_{n+1}\right| =k+R(\bar{e}^{p}_{n+1}). \end{aligned}$$
(112)

Substituting Eqs. (111.2) and (112) into Eq. (109) after some rearrangements yields

$$\begin{aligned} \left( \sigma _{n+1}-X_{n+1}\right) \alpha (\Delta \bar{e}^{p})=Z, \end{aligned}$$
(113)

where

$$\begin{aligned} \alpha (\Delta \bar{e}^{p})=1+\left( 3\mu -\sum _{i=1}^{M}w_{i}C_{i}\right) \frac{\Delta \bar{e}^{p}}{k+R(\bar{e}^{p}_{n+1})}. \end{aligned}$$
(114)

It follows from Eq. (113) that

$$\begin{aligned} \left| \sigma _{n+1}-X_{n+1}\right| \alpha (\Delta \bar{e}^{p})=\left| Z\right| . \end{aligned}$$
(115)

Inserting Eq. (112) into Eq. (115) gives

$$\begin{aligned} \left( k+R(\bar{e}^{p}_{n}+\Delta \bar{e}^{p})\right) \alpha (\Delta \bar{e}^{p})-\sqrt{3}\left| Z\right| =0, \end{aligned}$$
(116)

which is the nonlinear algebraic equation that has to be solved numerically for \(\Delta \bar{e}^{p}\) at every computational step of the simulation. When the law by Chaboche and Rousselier is applied to simulate the isotropic hardening behavior, the function \(R(\bar{e}^{p}_{n}+\Delta \bar{e}^{p})\) is given by Eq. (76). Substituting Eq. (108) into Eq. (104.2) results in the following formula for updating the backstress:

$$\begin{aligned} X^{(i)}_{n+1}=w_{i}\left( \frac{1}{\sqrt{3}}C_{i}\Delta \bar{e}^{p}{{\,\mathrm{sgn}\,}}(Z)+X_{n}^{(i)}\right) , (i=1,2,\dots ,M). \end{aligned}$$
(117)

The derived set of equations was utilized to write a Scilab program which can be used for performing simulations of the SS processes. The calculations performed by the Scilab program at every computational step of the numerical simulation are listed in the box. The fsolve function was utilized for solving Eq. (116). Again, in the considered case of the Yoshida model \(M=2\), \(\gamma _{2}=0\), while the isotropic hardening behavior is governed by the Voce rule (\(N=1\) in Eq. (76)).

The developed Scilab program was used to validate the results generated by CalculiX during the SS process simulation. The material parameter set given in Table 2 was utilized. The boundary conditions used for the simulation performed in CalculiX are illustrated in Fig. 6a. A cube was meshed with a single C3D8 finite element. The displacements on the ABCD face of the cube (see Fig. 6b) were set to zero. The displacements in the directions “2” and “3” were set to zero on the face EFGH. The displacement \(\delta \) of the face EFGH in the direction “1” was used as the kinematic excitation which increased linearly up to the maximum value of \(\delta =0.2\) mm. After reaching the maximum the displacement value started decreasing linearly to zero. Since \(\delta = \tan \gamma \approx \gamma \) (Fig. 6), it follows that the shear strain \(\varepsilon =\gamma /2=\delta /2\). In Fig. 7 the comparison of the results produced by Scilab and CalculiX is presented. An excellent agreement was found. The simulation was repeated for the cube meshed using C3D4, C3D10, and C3D20 elements. In all the considered cases a very good agreement was found between the results generated by the Scilab program and those obtained from the FE simulation in CalculiX.

Fig. 6
figure 6

Simple shear FE simulation: a boundary conditions, b faces of the finite element used to apply the boundary conditions

Fig. 7
figure 7

Metal cube undergoing simple shear: shear stress vs shear strain

6.4 Cyclic biaxial tension/compression

In order to investigate the accuracy of the FE computations performed using the developed UMAT subroutine a simulation of cyclic biaxial tension/compression was performed in CalculiX. Again, a cube with the edge length of 1mm, meshed with a single C3D8 element, was used for the simulation. A kinematic excitation was assumed. A displacement \(\delta _{1}\) in the direction “1” of the rectangular coordinate system was applied to the cube’s face ABCD, Fig. 2c. The time history of \(\delta _{1}\) is shown in Fig. 8. Another displacement \(\delta _{2}\) in the direction “2” was defined on the cube’s BFGC face. The history of \(\delta _{2}\) can be seen in Fig. 8. The following boundary conditions were applied to the other faces of the cube: a zero displacement in the direction “1” was set on the face EFGH, a zero displacement in the direction “2” on the face AEHD, and a zero displacement in the direction “3” on the face ABFE.

The simulation was repeated for different sizes of the fixed time increment \(\Delta t\), i.e., 1E-2, 1E-3, 1E-4, and 1E-5 s. The FE solution obtained for \(\Delta t= 1E-5\) s was assumed as exact. The following normalized error function was used to estimate the accuracy of FE computations for different incrementation size:

$$\begin{aligned} error=\frac{\left\| {\varvec{\sigma }}^{com}-{\varvec{\sigma }}^{exa} \right\| }{\left\| {\varvec{\sigma }}^{exa}\right\| }, \left\| {\varvec{\sigma }}^{com}-{\varvec{\sigma }}^{exa}\right\| = \sqrt{({\varvec{\sigma }}^{com}-{\varvec{\sigma }}^{exa}) \cdot ({\varvec{\sigma }}^{com}-{\varvec{\sigma }}^{exa})}, \end{aligned}$$
(118)

with \({\varvec{\sigma }}^{exa}\) being the Cauchy stress tensor calculated for \(\Delta t= 1E-5\) s, whereas \({\varvec{\sigma }}^{com}\) is the stress tensor computed for another increment size for which the error value is being calculated. In Fig. 9a and b the stress–strain histories that were computed for the selected increment sizes are shown. In Fig. 9c the time history of the error calculated using Eqs. (118) for different incrementations can be seen. The obtained error values are negligible and proportional to the increment size value. By comparing Figs. 8 and 9c it can be noticed that any non-smoothness in the assumed displacement history results in an instantaneous jump of the error.

Fig. 8
figure 8

Metal cube undergoing biaxial tension/compression: displacement histories

Fig. 9
figure 9

Metal cube undergoing biaxial tension/compression: (a) stress vs. strain for direction “1” and different incrementation, (b) stress vs. strain for direction “2” and different incrementation, (c) normalized error of FE computations for different increment sizes

6.5 Flat bar with hole in tension

6.5.1 Ramp loading

A notched bar in tension was considered as a performance test for the developed UMAT subroutine. Due to the symmetries of the problem only one 8-th of the bar can be considered. The dimensions of the bar and the applied boundary conditions are shown in Fig. 10a. A ramp displacement \(\delta \) of the bar’s upper face was used as a kinematic excitation. The bar was elongated until the maximum value of \(\delta =1\) mm was reached. The bar was meshed using C3D8 elements (see Fig. 10b). The material parameter values gathered in Table 2 were used for the Yoshida elastoplastic model defined by subroutine UMAT.

In Fig. 11 the results of the FE simulation are presented. The largest residual force (LRF) values recorded during the subsequent iterations are gathered in Table 3. It can be seen that for some increments the quadratic convergence of solution was achieved.

Fig. 10
figure 10

Flat notched bar in tension: a boundary conditions, b FE mesh

Fig. 11
figure 11

Flat notched bar in tension: a displacement magnitude, b HMH equivalent stress, c total strain component in the direction of elongating

Table 3 Values of the largest residual force (LRF)

6.5.2 Cyclic loading

In the second approach the same set of boundary conditions as before was used; however, the time history of the displacement \(\delta \) (Fig. 10a) was defined using a triangular wave function, Fig. 12a. The simulation was performed for different fixed increment sizes, i.e., 5E-3, 2.5E-3, and 1E-3 s. The total reaction force F at the bar’s upper face was calculated for each increment. The plot of F vs. \(\delta \) for selected incrementations can be seen in Fig. 12b.

In Table 4 the analysis time values obtained for different increment sizes are gatheredFootnote 6. It is seen that the analysis time is approximately inversely proportional to the increment size.

Fig. 12
figure 12

Flat notched bar under cyclic loading: a displacement history, b total reaction force on the bar’s upper face versus the face’s displacement for different incrementations

Table 4 Values of analysis time for different incrementations

6.6 Hollow cylinder under cyclic tension/compression and torsion

A hollow cylinder subjected to cyclic axial tension/compression and torsion was considered. The cylinder was meshed with 19440 C3D8 elements, Fig. 13a. One end of the cylinder was assumed fixed with all displacements set to zero. An axial displacement was defined on the cylinder’s frontal face. Moreover, a rotation of the frontal face around the cylinder’s axis was applied. The assumed time histories of the axial displacement \(\delta \) and the angle of twist \(\alpha \) are shown in Fig. 13b. The maximum values were \(\delta _{max}=1.08\) mm for the axial displacement and \(\alpha _{max}=9.8^{o}\) for the angle of twist.

The simulation was performed in two variants using the automatic incrementation option. For the first variant the maximum time increment size \(\Delta t_{max}\) was set to 1E-1 s, while for the second variant it was set to 2.5E-2 s. The computed results that were saved for the selected finite element no. 29983 (Fig. 13a) can be seen in Fig. 14. Very similar results were obtained for both considered incrementation methods.

Fig. 13
figure 13

Hollow cylinder under cyclic tension/compression and torsion: a FE mesh and boundary conditions, b axial displacement \(\delta \) and angle of twist \(\alpha \) time histories

Fig. 14
figure 14

Hollow cylinder under cyclic tension/compression and torsion: a axial stress vs. axial strain for different incrementations, b shear stress vs. shear strain for different incrementations

7 Conclusions

In this work the FE implementation of cyclic elastoplasticity was discussed. The radial return mapping algorithm was used to develop a numerical integration scheme for a group of constitutive equations based on the elastoplastic model proposed by Chaboche and Rousselier [4, 5]. A fourth-order tangent operator was derived which is consistent with the utilized algorithm of integrating the constitutive model. To the best of the author’s knowledge this particular form of the tangent operator has not been presented in the literature before.

A subroutine UMAT was developed which allows to implement the elastoplastic model by Yoshida [29] into the FE program CalculiX. The UMAT code has a general form which allows to easily modify the isotropic hardening rule used by the model. The number of the utilized backstress variables can be increased easily as well. Many validation tests were performed in order to verify the performance of the developed UMAT subroutine. An excellent agreement was found between the results produced by UMAT and those of the verification programs. What is more, a quadratic convergence was observed during the Newton–Raphson iterative process.