The Holzapfel-Gasser-Ogden (HGO) model is one of the most popular anisotropic hyperelastic models. The HGO model is a built-in material model in Abaqus.

I have found that anisotropic hyperelastic material models are quite useful for many applications, for example:

- Biomaterials
- Reinforced rubbers and plastics
- Composites

Anisotropic hyperelasticity is also a useful building block for non-linear viscoplastic material models!

The original HGO model was developed for anisotropic arteries, where the material is represented using 2 families of collagen fibers embedded into an isotropic matrix.

\( \Psi(\mathbf{F}) = \Psi_{iso}(\mathbf{F}) + \Psi_{aniso}(\mathbf{F}, \mathbf{a}_1, \mathbf{a}_2) \)

The following sections summarize the constitutive equations for the original HGO model, the Abaqus modified HGO model, and the HGO model options available in the PolyUMod library. If you would like to learn more about the equations that I use to describe this model, then I recommend that you checkout my Polymer Mechanics book.

## Constitutive Equations - Original Model

The original HGO model used the following equations for the Helmholtz free energy:

\( \Psi_{iso}(I_1^*) = \displaystyle\frac{c}{2} (I_1^* – 3) \)

\( \Psi_{aniso}(\mathbf{I_4^*, I_6^*}) = \frac{k_1}{2k_2} \displaystyle\sum_{i=4,6} \left\{ \exp[k_2 (I_i^* – 1)^2] – 1 \right\} \)

where the invariants are defined by: \( I_1^* = \text{tr} [\mathbf{C}^*] \), \( I_4^* = \mathbf{C}^* : (\mathbf{a}_1 \otimes \mathbf{a}_1) \), and \( I_6^* = \mathbf{C}^* : (\mathbf{a}_2 \otimes \mathbf{a}_2) \). In these equations \( \mathbf{a}_1 \) and \( \mathbf{a}_2 \) are the initial orientations of the two fiber families.

## Constitutive Equations - Abaqus Implementation

Abaqus extended the original HGO model so that it allows for compressible deformations, uses an arbitrary number of fiber families, removes the fiber stiffness in compression, and introduces a dispersion parameter that smooths the fiber response.

\( \Psi(\mathbf{F}) = \Psi_{NH}(\mathbf{F}) + \frac{k_1}{2k_2} \displaystyle\sum_{\alpha=1}^N \left\{ \text{exp}[ k_2 \langle E_\alpha^*\rangle^2] – 1 \right\} \)

\( E_\alpha^* = \kappa(I_1^*-3) + (1-3\kappa) \cdot(I_{4\alpha}^*-1) \).

## Constitutive Equations - PolyUMod TNV Model Implementation

The PolyUMod TNV model is a super cool modular material model that is quite accurate for all types of polymers, including anisotropic rubbers, thermoplastics, and biomaterials. The TNV model supports a more advanced version of the HGO model than what is used by Abaqus. In TNV model implementation of the HGO model uses a Yeoh hyperelastic matrix material, and each fiber family can have different stiffnesses. The fibers can also be given a different (non-zero) stiffness in tension and compression. The details of the constitutive equations are given in the PolyUMod User’s Manual.

## Examples

The MCalibration software has a native built-in solver for the Abaqus HGO model. This makes it really quick and easy to examine how the HGO model works, and to calibrate the model to experimental data. In the first example here there is only one fiber family, and that fiber family is aligned along the 1-direction. The dispersity parameter (kappa) is set to 0, which means that the fibers are fully active. The figure to the right show that in this case the stress-strain response is stiffer in the 1-direction, just as expected.

If we switch the fiber orientation to the 2-direction (and keep everything else the same), then the stress becomes higher in the 2-direction. It is great when things make sense.

Now, if we have 2 fiber families: one in the 1-direction, and one in the 2-direction, then the stress response becomes the same in the 1- and 2-direction. The response in any other direction would be different.

Finally, if we switch back to only having fibers in the 1-direction, but we change the dispersity parameter kappa to a value of 1/3, then the material response becomes isotropic and we get the same stress in all directions.

## How to use the HGO Model in Abaqus

Since the HGO model is anisotropic it needs a local coordinate system when used in Abaqus. You can define a local coordinate system any way you like in Abaqus, and to help, the MCalibration exported material model contains both the material parameters and the local coordinate system. Here’s an example:

` ````
```*Material, name=MCal_Mat
** Calibrated with MCalibration
** Units: [length]=millimeter, [force]=Newton, [time]=seconds, [temperature]=Kelvin
** Calibration file name: Demonstration.mcal
*Density
1e-09
*Anisotropic Hyperelastic, Holzapfel, Local Directions=1
** C10, D, k1, k2, kappa
1, 0.02, 1, 0.1, 0.333333

The local coordinate system defined using inp-file commands. Here’s an example:

` ````
```*Orientation, name=rot, local directions=1, definition=coordinates, system=rectangular
** ax, ay, az, bx, by, bz, cx, cy, cz
1, 0, 0, 0, 1, 0, 0, 0, 0
** locDir, rot
3, 0
** local direction 1
1, 0, 0

You then need to assign both the material model and the local coordinate system using section command. Fore example:

` ````
```*Solid section, elset=all, material=MCal_Mat, orientation=rot, controls=jbcontrol