Introduction to Anisotropic Hyperelasticity


I have written extensively about hyperelasticity (see for example our material model summary). I have also written articles about the Ansys exponential and polynomial anisotropic hyperelastic material models. In this article I will give a more basic and general introduction to anisotropic hyperelasticity.

Anisotropic Materials

Review: Isotropic Material Models

Before jumping into the main topic, let’s quickly review isotropic material models. A linear elastic material model can be written \(\sigma_{ij} = f([E,\nu]; \varepsilon_{ij})\), which can be expressed in words as: the stress is given by a function that depends on two material parameters (elastic constants), and the applied strain state. This equation can also be written: \( \sigma_{ij} = 2\mu \varepsilon_{ij} + \lambda \varepsilon_{kk} \delta_{ij}\).

For finite strains it is better to use a hyperelastic material model. The most common way to write the stress response in this case is: \(\boldsymbol{\sigma}=f(\Psi(p_i; I_1^*, I_2^*, J); \mathbf{F})\). Note that this equation shows that the stress depends on another function \(\Psi\) which depends on material model parameters (\(p_i\)) and invariants of the applied deformation, and then also on the deformation gradient. This is fundamentally different than for the case with linear elasticity. The Cauchy stress can in this case be calculated from (see Chapter 5 in my book):

\[\boldsymbol{\sigma} = \frac{2}{J}
\left[ \frac{\partial\Psi}{\partial I_1^*} + \frac{\partial\Psi}{\partial I_2^*} I_1^* \right] \mathbf{b}^*
– \frac{2}{J} \frac{\partial\Psi}{\partial I_2^*} \left(\mathbf{b}^*\right)^2
+ \left[ \frac{\partial\Psi}{\partial J}
– \frac{2 I_1^*}{3J} \frac{\partial\Psi}{\partial I_1^*}
– \frac{4 I_2^*}{3J} \frac{\partial\Psi}{\partial I_2^*}
\right] \mathbf{I}\]

Anisotropic Linear Elastic

The most basic way to represent an anisotropic material is to use an anisotropic linear elastic material model, which can be written:

\sigma_{11} \\
\sigma_{22} \\
\sigma_{33} \\
\sigma_{12} \\
\sigma_{13} \\
C_{11} & C_{12} & C_{13} & C_{14} & C_{15} & C_{16} \\
C_{21} & C_{22} & C_{23} & C_{24} & C_{25} & C_{26} \\
C_{31} & C_{32} & C_{33} & C_{34} & C_{35} & C_{36} \\
C_{41} & C_{42} & C_{43} & C_{44} & C_{45} & C_{46} \\
C_{51} & C_{52} & C_{53} & C_{54} & C_{55} & C_{56} \\
C_{61} & C_{62} & C_{63} & C_{64} & C_{65} & C_{66}
\varepsilon_{11} \\
\varepsilon_{22} \\
\varepsilon_{33} \\
\varepsilon_{12} \\
\varepsilon_{13} \\

This equation shows how the stress can be calculated from the applied strains. Note that since this is a linear expression in terms of the strains, it should only be used when the strains are small.

Anisotropic Strain-Based Hyperelasticity

One way to express anisotropic hyperelasticity is to write a strain energy function that depends on the strain tensor:

\[\boldsymbol{\sigma} = \frac{1}{J} \mathbf{F} \frac{\partial \Psi}{\partial\mathbf{E}^*} \mathbf{F}^\top + \frac{\partial\Psi}{\partial J}\mathbf{I}\]

This approach is used in some of the work by Fung, and has been applied to soft tissue modeling. I’m not a super fan of this approach, and I instead promote invariant-based hyperelasticity, which is the topic of the next section.

Anisotropic Invariant-Based Hyperelasticity

Anisotropic invariant-based hyperelasticity is a brilliant extension of traditional hyperelasticity where we simply add additional invariants to the strain energy function: \(\Psi = \Psi_1(I_1^*, I_2^*, J) + \Psi_2(I_4, I_5)\), where \(I_4=(\mathbf{F}\mathbf{a}_0)\cdot(\mathbf{F}\mathbf{a}_0) = \mathbf{a}_0 \cdot \mathbf{C} \mathbf{a}_0 = \lambda_F^2\), and \(I_5 = \mathbf{a}_0 \cdot \mathbf{C}^2 \mathbf{a}_0\). The easiest way to think about this is to consider \(\mathbf{a}_0\) as the unit vector specifying the direction of “reinforcing fibers”. \(I_4\) is the squared stretch of those fibers, and \(I_5\) describes the coupling between the fibers and the matrix.

MCalibration Demo

To demonstrate the use of anisotropic hyperelasticity I will use MCalibration with the Parallel Network model in the PolyUMod library. I will specifically use the Bergstrom Anisotropic Eight-Chain model that I created a few years ago. The theory for this model is shown in the screenshot from the PolyUMod User’s Manual shown below. 

Etype 7

The following figure shows the MCalibration predicted stress-strain response for this material model in uniaxial tension in two orthogonal directions. In this case there are only fibers in the 1-dir and the 2-dir, and as a result the material is stiffer when stretched in that direction. Note that it is easy to calibrate this material model, and any other anisotropic material model, you just need to provide experimental data in different directions. MCalibration will then automatically perform the calibration

MCalibration EType 7.


  • Anisotropic hyperelastic is easy to use and calibrate once you have enough experimental data
  • Anisotropic hyperelasticity can be a useful building block for more advanced viscoplastic material models
  • It is easy to explore anisotropic hyperelasticity using MCalibration

More to explore

Leave a Comment