At this point, the derivation of the stresses and material tangent is presented. First, the stresses are generally given in standard Voigt notation by
$$\begin{aligned} \tilde{\varvec{\sigma }} = \tilde{\varvec{\sigma }} ( \tilde{\varvec{\varepsilon }}, \varvec{d}) = \bar{f}(\varvec{d})\ \tilde{\mathbb {E}}_0 \cdot \tilde{\varvec{\varepsilon }} \ , \end{aligned}$$
(40)
where
\(\varvec{d}\) is the damage variable of length
n, which is the number of sub-domains. According to Taylor’s theorem, the the stresses at the end of the time increment may be approximated as
$$\begin{aligned} \tilde{\varvec{\sigma }}^{m+1} = \tilde{\varvec{\sigma }}^{m} + \left. \dfrac{\partial \tilde{\varvec{\sigma }}}{\partial \tilde{\varvec{\varepsilon }}}\right| ^{m} \cdot \Delta \tilde{\varvec{\varepsilon }} + \left. \dfrac{\partial \tilde{\varvec{\sigma }}}{\partial \varvec{d}}\right| ^{m} \cdot \Delta \varvec{d}\ , \end{aligned}$$
(41)
with
\(\Delta \tilde{\varvec{\varepsilon }}=\tilde{\varvec{\varepsilon }}^{m+1}-\tilde{\varvec{\varepsilon }}^{m}\) describing the increment of strains and
\(\Delta \varvec{d}=\varvec{d}^{m+1}-\varvec{d}^{m}\) as the increment of the damage variable. The derivatives are matrices of dimensions
\(6\times 6\) for
\(\partial \tilde{\varvec{\sigma }}/\partial \tilde{\varvec{\varepsilon }}\) and
\(6\times n\) for
\(\partial \tilde{\varvec{\sigma }}/\partial \varvec{d}\), respectively. The individual terms are determined as
$$\begin{aligned} \tilde{\varvec{\sigma }}^{m}= & {} \bar{f}(\varvec{d}^m)\ \tilde{\mathbb {E}}_0 \cdot \tilde{\varvec{\varepsilon }}^{m} \ , \nonumber \\ \left. \dfrac{\partial \tilde{\varvec{\sigma }}}{\partial \tilde{\varvec{\varepsilon }}}\right| ^{m}= & {} \bar{f}(\varvec{d}^m)\ \tilde{\mathbb {E}}_0 \ , \end{aligned}$$
(42)
and for the derivative of the stress vector with respect to all individual damage variables in the ERVE as
$$\begin{aligned} { \left. \left( \dfrac{\partial \tilde{\varvec{\sigma }}}{\partial d_j}\right) \right| ^{m} = \left( \tilde{\mathbb {E}}_0\cdot \tilde{\varvec{\varepsilon }}^m\right) \dfrac{f'(d_j^m)}{n f(d_j^m)^{2}} \bar{f}(\varvec{d}^m). } \end{aligned}$$
(43)
From Eq. (
41), we compute the semi-implicit consistent material tangent
\(\partial \tilde{\varvec{\sigma }}^{m+1}/\partial \tilde{\varvec{\varepsilon }}^{m+1}\) is given by
$$\begin{aligned} \left. \dfrac{\;\!\mathrm {d}\tilde{\varvec{\sigma }}}{\;\!\mathrm {d}\tilde{\varvec{\varepsilon }}}\right| ^{m+1} = \left. \dfrac{\partial \tilde{\varvec{\sigma }}}{\partial \tilde{\varvec{\varepsilon }}}\right| ^{m} + \left. \dfrac{\partial \tilde{\varvec{\sigma }}}{\partial \varvec{d}}\right| ^{m} \cdot \left. \dfrac{\partial \varvec{d}}{\partial \tilde{\varvec{\varepsilon }}}\right| ^{m+1} \ , \end{aligned}$$
(44)
where
\(\left( \partial \varvec{d}/ \partial \tilde{\varvec{\varepsilon }} \right) \left. \right| ^{m+1}\) remains to be determined. In the case of, e.g., viscous damage modeling, the missing derivative
\(\partial \varvec{d}/\partial \tilde{\varvec{\varepsilon }}\) can be computed analytically. In our model, however, the update is described by an iterative algebraic scheme (see Algorithm 1). This renders an analytic computation of the derivative intricate. It is therefore convenient to perform a numerical strategy to compute the derivative. To this end, we make use of
\(\varvec{d}=\varvec{d}(\psi _0(\varvec{\varepsilon }))\). Application of the chain rule thus yields
$$\begin{aligned} \left. \dfrac{\partial \varvec{d}}{\partial \tilde{\varvec{\varepsilon }}}\right| ^{m+1} = \left. \dfrac{\partial \varvec{d}}{\partial \psi _0}\right| ^{m+1} \otimes \left. \dfrac{\partial \psi _0}{\partial \tilde{\varvec{\varepsilon }}}\right| ^{m+1} = \left. \dfrac{\partial \varvec{d}}{\partial \psi _0}\right| ^{m+1} \otimes \left( \tilde{\mathbb {E}}_0 \cdot \tilde{\varvec{\varepsilon }}^{m+1}\right) . \end{aligned}$$
(45)
Consequently, the (numerical) computation of the unknown derivative
\(\partial \varvec{d}/\partial \tilde{\varvec{\varepsilon }}\) transforms to the (numerical) computation of
\(\partial \varvec{d}/\partial \psi _0\). Since the derivative of the vector of damage variables in the ERVE in the current integration point
\(\varvec{d}\) with respect to the strains reduces to the derivative with respect to the (scalar-valued) free energy
\(\psi _0\), a numerical evaluation is computationally very cheap and is performed by
$$\begin{aligned} \left. \dfrac{\partial \varvec{d}}{\partial \psi _0}\right| ^{m+1} = \dfrac{\varvec{d}^{m+1}(\psi _0^{m+1}+tol)-\varvec{d}^{m+1}(\psi _0^{m+1})}{tol} \ . \end{aligned}$$
(46)
where the tolerance
\(tol=10^{-8}\) is applied. The derivative of the damage variable
\(\varvec{d}\) with respect to the strain vector is finally given by
$$\begin{aligned} \left. \dfrac{\partial \varvec{d}}{\partial \tilde{\varvec{\varepsilon }}}\right| ^{m+1} = \dfrac{\varvec{d}^{m+1}(\psi _0^{n+1}+tol)-\varvec{d}^{m+1}(\psi _0^{m+1})}{tol} \otimes \left( \tilde{\mathbb {E}}_0 \cdot \tilde{\varvec{\varepsilon }}^{m+1}\right) . \end{aligned}$$
(47)
In case of no evolving damage, the last term in Equation (
44) is equal to zero.