Close this search box.

Calibrating the Mooney-Rivlin Model

Believe It or Not! The Mooney-Rivlin model can (sometimes) be calibrated to a single tension test.


The Mooney-Rivlin model is one of the most well-known hyperelastic material models. A lot of people seem to like this model, although I personally virtually never use it (for reasons I will describe below). When I started this study I thought that the Mooney-Rivlin model always needed experimental data from 2 or more loading modes. It turns out that is not true. As I will mathematically show below, you can find both the \(C_{10}\) and \(C_{01}\) parameters from a SINGLE uniaxial tension test. But I will also show why in most cases this is not a good idea. Fascinating, isn’t it 😲?

Melvin Mooney

Ronald Rivlin

Theory Background

All hyperelastic material models are based on a strain energy function that determines how much energy is stored in the material as a function of the applied deformation (see Chapter 5 of my book). Since the energy must be independent of rigid body rotations, the strain energy function is often written in terms of its invariants: \([I_1^*, I_2^*, J]\). If we Taylor series expand this function and only keep the first order terms then we get the Mooney-Rivlin model: 

\( \Psi = C_{10}(I_1^*-3) + C_{01}(I_2^*-3) + \displaystyle\frac{\kappa}{2} (J-1)^2\).

Note 1: Some FE solvers (for example Ansys) allows for higher order terms in the Taylor series expansion. I will not cover those higher order models here.

Note 2: Different FE solver use different expressions for the volumetric energy. Here I will only focus on an incompressible version of the model in order to simplify the equations and arguments.

For incompressible loading the stress a function of the applied stretch (\(\lambda = L/L_0\)) is given by the following expressions in 3 common loading modes:

\( \sigma_{uniax} = 2 \displaystyle\left( \lambda^2 – \frac{1}{\lambda} \right) \left[ C_{10} + \frac{C_{01}}{\lambda} \right] \),

\( \sigma_{planar} = 2 \displaystyle\left( \lambda^2 – \frac{1}{\lambda^2} \right) \left[ C_{10} + C_{01} \right] \),

\( \sigma_{biaxial} = 2 C_{10}\displaystyle\left( \lambda^2 – \frac{1}{\lambda^4} \right) + 2C_{01}\displaystyle\left( \lambda^4 – \frac{1}{\lambda^2} \right) \).

If we define \(E = d\sigma/d\varepsilon\), then we get the following equations for the initial slope of the stress-strain curve in the 3 loading modes:

\( E_{uniax} = 6 (C_{10} + C_{01}) \),

\( E_{planar} = 8 (C_{10} + C_{01}) \),

\( E_{biaxial} = 12 (C_{10} + C_{01}) \).

Another quantity that we can easily calculate is the true (Cauchy) stress at an engineering strain of 100% (i.e. \(\lambda=2\)):

\(\sigma_{uniax} = 7 \displaystyle\left( C_{10} + \frac{C_{01}}{2} \right) \),

\(\sigma_{planar} = \displaystyle \frac{15}{2} \left( C_{10} + C_{01}\right) \),

\(\sigma_{biaxial} = \displaystyle \frac{63}{2} \left( \frac{C_{10}}{4} + C_{01}\right) \).

So, if we know \(E_{uniax}\) in the unloaded state, and \(\sigma_{uniax}\) at 100% engineering strain, then we can calculate \(C_{10}\) and \(C_{01}\) from the following equations:

\(C_{10} = \displaystyle \frac{2\sigma_{uniax}}{7} – \frac{E_{uniax}}{6} \),

\(C_{01} = \displaystyle \frac{E_{uniax}}{3} – \frac{2\sigma_{uniax}}{7} \).

This shows that you can find both Mooney-Rivlin parameters from a single uniaxial tension test!

Note that I picked an engineering strain of 100% for no particular reason. Other strain values will work too.

Demo 1: Extract [C10, C01] from E and σ

Let’s try the equations derived above. I used MCalibration to calculate the stress-strain response up to an engineering strain of 100% using a virtual experiment and a Mooney-Rivlin material model with the parameters: \(C_{10}=1.1\) MPa and \(C_{01}=0.12\) MPa. As shown in the figure below, MCalibration gave the following values \(E_{uniax}=7.32264\) MPa, and \(\sigma_{uniax}=8.11803\) MPa. If I plug these values in to the equations in the yellow box above I get: \(C_{10}=1.099\) MPa, and \(C_{01}=0.121\) MPa. This confirms that it is possible to determine both Mooney-Rivlin parameters from one single tension test.

Demo 2: Extract [C10, C01] from Stress-strain

In this example I will first generate a stress-strain prediction using a Mooney-Rivlin material model with the parameters \(C_{10}=1.1\) MPa and \(C_{01}=0.12\) MPa. Then I will open a new MCalibration window and read in the generated stress-strain data, and select the Mooney-Rivlin material model with the following parameter guess: \(C_{10}=0.2\) MPa and \(C_{01}=0.2\) MPa. Finally, I will run the material model calibration from that starting position. The figures below show that in this case MCalibration recovers the original material parameters very well: \(C_{10}=1.0995\) MPa, \(C_{01}=0.1205\) MPa. Also in this case it is possible to determine both Mooney-Rivlin parameters from one single tension test.

Demo 3: Extract [C10, C01] from Stress-Strain with Noise

To find out if this calibration procedure still works if the stress data contain noise, I added some random noise (with a zero mean value) to the stress column in the MCalibration Data Tab, and then repeated the steps in Demo 2. I used exactly the same parameter guess, and then ran the calibration again. The results are shown in the figures below. The calibration of both parameters work reasonably well also in this case.

Demo 4: What if C01=0 During the Calibration?

To better understand the influence of the second invariant \(I_2\), I used the same procedure to calibrate the Mooney-Rivlin model with the additional constraint that \(C_{01}=0\) MPa. As shown in the figure below, the calibration results look really good even with this restriction. The average error in the model predictions is 0.8%. In other words, the \(I_2\) term does not strongly influence the stress-strain predictions in uniaxial loading.

If I then take the true material model (with the known material parameters) and predict the biaxial tension response I get the purple curve in the figure below. The green curve shows the predicted biaxial response for the case when \(C_{01}=0\) MPa.

So even though the \(I_1\) term does not influence the uniaxial response very much, it has a very strong dependence on the biaxial response. In other words, small experimental errors in the uniaxial stress-strain data can cause relatively large errors in the \(C_{01}\) term, which then can cause large errors in biaxial-dominated deformation fields. For this reason it is safer to include biaxial test data when calibrating the Mooney-Rivlin model.


  • The Mooney-Rivlin model can in theory be calibrated to data from a single uniaxial tension test.
  • In practice it is better (basically necessary) to use experimental data from 2 or more loading modes.
  • The traditional (linear) Mooney-Rivlin model is often not able to accurately predict the experimentally observed stress-strain response since the strain energy function is linearly dependent on the first and second invariants.
  • For these reasons I usually use a higher-order \(I_1\)-based hyperelastic model like the Arruda-Boyce Eight-Chain model, or the Yeoh model.

More to explore

Leave a Comment