Algorithm =========== Pre-treatment -------------- The tensor of logarithmic deformations calculated by spectral decomposition: .. math:: : 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 :math:`{\lambda }^{(i)}` are the eigenvalues of :math:`{\mathrm{C}}_{n+1}` and :math:`{N}^{(i)}` the associated eigenvectors, then the deformation measure chosen is written as: .. math:: : 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: .. math:: :label: eq-29 \ mathrm {E} = {\ mathrm {E}}} ^ {e} + {\ mathrm {E}} ^ {p} With: .. math:: : 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 :math:`n` and the moment :math:`n+1`: .. math:: : label: eq-31 {\ mathrm {E}} _ {n+1} = {\ mathrm {E}} _ {n} +\ Delta\ mathrm {E} Connection to the law of behavior HPP ---------------------------------------- Behavioral law HPP should provide the :math:`\mathrm{T}` stress tensor, defined by: .. math:: : label: eq-32 {\ mathrm {T}} _ {n+1} =\ widehat {\ mathrm {T}}\ left (\ Delta\ mathrm {E}}; {\ mathrm {E}}} _ {n}} _ {n}, {n}}, {\ mathrm {T}}} _ {n}} _ {n}} _ {n}\ right) where :math:`{\beta }_{n}` represents the set of internal variables at time :math:`n` and :math:`{\mathrm{T}}_{n}` represents the constraints at time :math:`n`. It is therefore necessary to recalculate :math:`{\mathrm{T}}_{n}` according to the Cauchy constraints :math:`{\sigma }_{n}` stored at time :math:`n`. These constraints are spelled :math:`{\mathrm{T}}_{n}={\mathrm{S}}_{n}\mathrm{:}{\mathrm{P}}_{n}^{\text{-1}}`. However, this requires the transformation of :math:`{\sigma }_{n}` into :math:`{\mathrm{S}}_{n}` and the calculation of :math:`{\mathrm{P}}_{n}^{\text{-1}}` which can be expensive. We therefore choose to store :math:`\mathrm{T}` tensors as internal variables. *Note* Since :math:`\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 :math:`\mathrm{T}` (and not that of Cauchy :math:`\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) .* .. _RefNumPara__7456_1923707392: Post-treatment --------------- The second type of Piola-Kirchhoff stress tensor is obtained by: .. math:: :label: eq-33 {\ mathrm {S}} _ {n+1} = {\ mathrm {T}}} _ {n+1}\ mathrm {:} {\ mathrm {P}}} _ {n+1} With :math:`{\mathrm{P}}_{n+1}={\partial }_{\mathrm{C}}\left({\mathrm{E}}_{n+1}\right)`. This quantity is calculated*via* an algorithm presented in [:ref:`13 <13>`] and recalled in appendix 2. It is also recalled that the Cauchy stress tensor is obtained by: .. math:: :label: eq-34 J\ sigma =\ tau =\ mathrm {F}\ cdot\ mathrm {S}\ cdot {\ mathrm {F}} ^ {T} =\ mathrm {F}\ cdot (\ mathrm {T}\ cdot (\ mathrm {T}}\ mathrm {T}\ mathrm {T})\ cdot {\ mathrm {F}}\ cdot {F}}\ cdot {F}}\ cdot {F}}\ cdot {F}}\ cdot {F}}\ cdot {F}}\ cdot {F}}\ cdot {F}}\ cdot {F}}\ cdot {F}}\ cdot {F}}\ cdot {F} The tangent module is obtained, in a so-called "Lagrangian" configuration, by deriving :math:`{\mathrm{S}}_{n+1}`: .. math:: :label: eq-35 {\ dot {\ mathrm {S}}}} _ {n+1} = {\ mathrm {C}}} _ {n+1} ^ {\ mathit {ep}}\ mathrm {:}\ frac {1} {\ frac {1} {2} {\ dot {\ mathrm {C}}}} _ {n+1}} :math:`{\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 :math:`{\mathrm{L}}_{n+1}` is the sixth-order tensor (in 3D) defined by: .. math:: :label: eq-36 {\ mathrm {L}} _ {n+1} =4 {\ partial} =4 {\ partial} _ {\ mathrm {C}}\ mathrm {C}} ^ {2}\ left ({\ mathrm {E}}} = 4 {\ partial}} _ {n+1}\ right) We can then calculate on this configuration the internal forces and the tangent matrix, on the initial configuration, as in [:ref:`14 <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).