3. Algorithm#
3.1. Pre-treatment#
The tensor of logarithmic deformations calculated by spectral decomposition:
: label: eq-27
{mathrm {E}} _ {n+1}} =frac {1} {2}mathrm {log}left [{mathrm {F}}} _ {n+1} ^ {T}cdot {mathrm {F}}cdot {mathrm {F}}}cdot {mathrm {F}}}cdot {mathrm {F}}} _ {n+1} {2}mathrm {log}cdot {mathrm {F}}}cdot {mathrm {F}}} _ {mathrm {log}cdot {mathrm {F}}} C}} _ {n+1}
That is to say, if \({\lambda }^{(i)}\) are the eigenvalues of \({\mathrm{C}}_{n+1}\) and \({N}^{(i)}\) the associated eigenvectors, then the deformation measure chosen is written as:
: label: eq-28
{mathrm {E}} _ {n+1} =frac {1} {2} =frac {1} {2}}mathrm {log} ({lambda} ^ {(i)}) {N} ^ {(i)}) {N} ^ {(i)}) {N} ^ {(i)}) {N} ^ {(i)}) {N} ^ {(i)}) {N}
This measurement makes it possible to obtain an additive decomposition:
With:
: label: eq-30
{mathrm {E}} ^ {p} =frac {1} {2}mathrm {log}left [{mathrm {F}} ^ {p, T}cdot {mathrm {F}}} ^ {p}right]
In addition, we can also write, between the moment \(n\) and the moment \(n+1\):
: label: eq-31
{mathrm {E}} _ {n+1} = {mathrm {E}} _ {n} +Deltamathrm {E}
3.2. Connection to the law of behavior HPP#
Behavioral law HPP should provide the \(\mathrm{T}\) stress tensor, defined by:
: label: eq-32
{mathrm {T}} _ {n+1} =widehat {mathrm {T}}left (Deltamathrm {E}}; {mathrm {E}}} _ {n}} _ {n}, {n}}, {mathrm {T}}} _ {n}} _ {n}} _ {n}right)
where \({\beta }_{n}\) represents the set of internal variables at time \(n\) and \({\mathrm{T}}_{n}\) represents the constraints at time \(n\). It is therefore necessary to recalculate \({\mathrm{T}}_{n}\) according to the Cauchy constraints \({\sigma }_{n}\) stored at time \(n\). These constraints are spelled \({\mathrm{T}}_{n}={\mathrm{S}}_{n}\mathrm{:}{\mathrm{P}}_{n}^{\text{-1}}\). However, this requires the transformation of \({\sigma }_{n}\) into \({\mathrm{S}}_{n}\) and the calculation of \({\mathrm{P}}_{n}^{\text{-1}}\) which can be expensive. We therefore choose to store \(\mathrm{T}\) tensors as internal variables.
Note
Since \(\mathrm{T}\) tensors are stored as internal variables, the user wishing to impose an initial constraint state should use the VARIet DEPLdu operands keyword factor ETAT_INIT of the STAT_NON_LINE command. Indeed, it is necessary to give as input the stress tensor defined in the logarithmic space \(\mathrm{T}\) (and not that of Cauchy \(\sigma\)). The user wishing to use the GDEF_LOG formalism with an initial constraint field (ETAT_INIT) is advised to refer to the test case*ssnp159b (V6.03.159) .*
3.3. Post-treatment#
The second type of Piola-Kirchhoff stress tensor is obtained by:
With \({\mathrm{P}}_{n+1}={\partial }_{\mathrm{C}}\left({\mathrm{E}}_{n+1}\right)\). This quantity is calculated*via* an algorithm presented in [13] and recalled in appendix 2. It is also recalled that the Cauchy stress tensor is obtained by:
The tangent module is obtained, in a so-called « Lagrangian » configuration, by deriving \({\mathrm{S}}_{n+1}\):
\({\mathrm{E}}_{n+1}^{\mathit{ep}}=\frac{\partial {\mathrm{T}}_{n+1}}{\partial {\mathrm{E}}_{n+1}}\) represents the tangent operator from the law of behavior and \({\mathrm{L}}_{n+1}\) is the sixth-order tensor (in 3D) defined by:
We can then calculate on this configuration the internal forces and the tangent matrix, on the initial configuration, as in [14]. Objectivity is maintained (invariant constraints by rotation in isotropic and kinematic work hardening) and the precision is good (results identical to SIMO_MIEHE in isotropic).