```matlab
jj = max(i, j)
c
index = ii + jj*(jj-1)/2
c
return
end
c
c
C Generate enumeration of Anisotropic Pseudo Invariants of
C type 4
c
integer function indexInv4(i, j)
c
include 'aba_param.inc'
c
ii = min(i, j)
jj = max(i, j)
c
indexInv4 = 4 + jj*(jj-1) + 2*(ii-1)
c
return
end
c
c
C Generate enumeration of Anisotropic Pseudo Invariants of
C type 5
c
integer function indexInv5(i, j)
c
include 'aba_param.inc'
c
ii = min(i, j)
jj = max(i, j)
c
indexInv5 = 5 + jj*(jj-1) + 2*(ii-1)
c
return
end
```
# Additional reference
• Kaliske, M., and J. Schmidt, “Formulation of Finite Nonlinear Anisotropic Elasticity,” CADFEM GmbH Infoplaner 2/2005, vol. 2, pp. 22–23, 2005.
# 1.1.21 UANISOHYPER\_STRAIN: User subroutine to define anisotropic hyperelastic material behavior based on Green strain.
Product: Abaqus/Standard
# References
• “Anisotropic hyperelastic behavior,” Section 22.5.3 of the Abaqus Analysis User’s Guide
• \*ANISOTROPIC HYPERELASTIC
• “UANISOHYPER\_INV and VUANISOHYPER\_INV,” Section 4.1.13 of the Abaqus Verification Guide
# Overview
User subroutine UANISOHYPER\_STRAIN:
• can be used to define the strain energy potential of anisotropic hyperelastic materials as a function of the components of the Green strain tensor;
• is called at all material calculation points of elements for which the material definition contains user-defined anisotropic hyperelastic behavior with a Green strain-based formulation (“Anisotropic hyperelastic behavior,” Section 22.5.3 of the Abaqus Analysis User’s Guide);
• can include material behavior dependent on field variables or state variables;
• requires that the values of the derivatives of the strain energy density function of the anisotropic hyperelastic material be defined with respect to the components of the modified Green strain tensor; and
• is called twice per material point in each iteration.
# Storage of strain components
In the array of modified Green strain, EBAR, direct components are stored first, followed by shear components. There are NDI direct and NSHR tensor shear components. The order of the components is defined in “Conventions,” Section 1.2.2 of the Abaqus Analysis User’s Guide. Since the number of active stress and strain components varies between element types, the routine must be coded to provide for all element types with which it will be used.
# Storage of arrays of derivatives of the energy function
The array of first derivatives of the strain energy function, DU1, contains NTENS+1 components, with NTENS=NDI+NSHR. The first NTENS components correspond to the derivatives with respect to each component of the modified Green strain, ${ \partial U } / { \partial \overline { { \varepsilon } } _ { i j } ^ { G } }$ . The last component contains the derivative with respect to the volume ratio, .
The array of second derivatives of the strain energy function, DU2, contains (NTENS+1)\*(NTENS+2)/2 components. These components are ordered using the following triangular storage scheme:
| Component | 2D Case | 3D Case |
| 1 | $\partial^{2}U/\partial\overline{\varepsilon}_{11}^{G}\partial\overline{\varepsilon}_{11}^{G}$ | $\partial^{2}U/\partial\overline{\varepsilon}_{11}^{G}\partial\overline{\varepsilon}_{11}^{G}$ |
| 2 | $\partial^{2}U/\partial\overline{\varepsilon}_{11}^{G}\partial\overline{\varepsilon}_{22}^{G}$ | $\partial^{2}U/\partial\overline{\varepsilon}_{11}^{G}\partial\overline{\varepsilon}_{22}^{G}$ |
| 3 | $\partial^{2}U/\partial\overline{\varepsilon}_{22}^{G}\partial\overline{\varepsilon}_{22}^{G}$ | $\partial^{2}U/\partial\overline{\varepsilon}_{22}^{G}\partial\overline{\varepsilon}_{22}^{G}$ |
| 4 | $\partial^{2}U/\partial\overline{\varepsilon}_{11}^{G}\partial\overline{\varepsilon}_{33}^{G}$ | $\partial^{2}U/\partial\overline{\varepsilon}_{11}^{G}\partial\overline{\varepsilon}_{33}^{G}$ |
| 5 | $\partial^{2}U/\partial\overline{\varepsilon}_{22}^{G}\partial\overline{\varepsilon}_{33}^{G}$ | $\partial^{2}U/\partial\overline{\varepsilon}_{22}^{G}\partial\overline{\varepsilon}_{33}^{G}$ |
| 6 | $\partial^{2}U/\partial\overline{\varepsilon}_{33}^{G}\partial\overline{\varepsilon}_{33}^{G}$ | $\partial^{2}U/\partial\overline{\varepsilon}_{33}^{G}\partial\overline{\varepsilon}_{33}^{G}$ |
| 7 | $\partial^{2}U/\partial\overline{\varepsilon}_{11}^{G}\partial\overline{\varepsilon}_{12}^{G}$ | $\partial^{2}U/\partial\overline{\varepsilon}_{11}^{G}\partial\overline{\varepsilon}_{12}^{G}$ |
| 8 | $\partial^{2}U/\partial\overline{\varepsilon}_{22}^{G}\partial\overline{\varepsilon}_{12}^{G}$ | $\partial^{2}U/\partial\overline{\varepsilon}_{22}^{G}\partial\overline{\varepsilon}_{12}^{G}$ |
| 9 | $\partial^{2}U/\partial\overline{\varepsilon}_{33}^{G}\partial\overline{\varepsilon}_{12}^{G}$ | $\partial^{2}U/\partial\overline{\varepsilon}_{33}^{G}\partial\overline{\varepsilon}_{12}^{G}$ |
| 10 | $\partial^{2}U/\partial\overline{\varepsilon}_{12}^{G}\partial\overline{\varepsilon}_{12}^{G}$ | $\partial^{2}U/\partial\overline{\varepsilon}_{12}^{G}\partial\overline{\varepsilon}_{12}^{G}$ |
| 11 | $\partial^{2}U/\partial\overline{\varepsilon}_{11}^{G}\partial J$ | $\partial^{2}U/\partial\overline{\varepsilon}_{11}^{G}\partial\overline{\varepsilon}_{13}^{G}$ |
| 12 | $\partial^{2}U/\partial\overline{\varepsilon}_{22}^{G}\partial J$ | $\partial^{2}U/\partial\overline{\varepsilon}_{22}^{G}\partial\overline{\varepsilon}_{13}^{G}$ |
| 13 | $\partial^{2}U/\partial\overline{\varepsilon}_{33}^{G}\partial J$ | $\partial^{2}U/\partial\overline{\varepsilon}_{33}^{G}\partial\overline{\varepsilon}_{13}^{G}$ |
| 14 | $\partial^{2}U/\partial\overline{\varepsilon}_{12}^{G}\partial J$ | $\partial^{2}U/\partial\overline{\varepsilon}_{12}^{G}\partial\overline{\varepsilon}_{13}^{G}$ |
| 15 | $\partial^{2}U/\partial J^{2}$ | $\partial^{2}U/\partial\overline{\varepsilon}_{13}^{G}\partial\overline{\varepsilon}_{13}^{G}$ |
| 16 | | $\partial^{2}U/\partial\overline{\varepsilon}_{11}^{G}\partial\overline{\varepsilon}_{23}^{G}$ |
| 17 | | $\partial^{2}U/\partial\overline{\varepsilon}_{22}^{G}\partial\overline{\varepsilon}_{23}^{G}$ |
| 18 | | $\partial^{2}U/\partial\overline{\varepsilon}_{33}^{G}\partial\overline{\varepsilon}_{23}^{G}$ |
| 19 | | $\partial^{2}U/\partial\overline{\varepsilon}_{12}^{G}\partial\overline{\varepsilon}_{23}^{G}$ |
| 20 | | $\partial^{2}U/\partial\overline{\varepsilon}_{13}^{G}\partial\overline{\varepsilon}_{23}^{G}$ |
| 21 | | $\partial^{2}U/\partial\overline{\varepsilon}_{23}^{G}\partial\overline{\varepsilon}_{23}^{G}$ |
| 22 | | $\partial^{2}U/\partial\overline{\varepsilon}_{11}^{G}\partial J$ |
| 23 | | $\partial^{2}U/\partial\overline{\varepsilon}_{22}^{G}\partial J$ |
| 24 | | $\partial^{2}U/\partial\overline{\varepsilon}_{33}^{G}\partial J$ |