Hyperelastic materials are the special class of materials which respond elastically even when they are subjected to large deformations. They show both a nonlinear material behavior as well as large shape changes. They are characterized by:

Can undergo large elastic deformations in order of 100 to 700% which are fully recoverable, i.e., the initial shape is recovered when load is removed.

Are nearly incompressible, which means that they change can their shape but overall volume remains almost constant.

Show a highly nonlinear stress-strain relation.

The material softens and then becomes stiffer again when applied to tension whereas, under compression, they have a quite stiff response.

Many polymers show hyperelastic behavior, such as elastomers, rubbers, and other similar soft flexible materials.

Hyperelastic materials are mostly used in applications where high flexibility, in the long run, is required, under the presence of high loads. Some typical examples of their use are as elastomeric pads in bridges, rail pads, car door seal, car tires, and fluid seals.

Hyperelasticity Theory

In finite element analysis, the hyperelasticity theory is used to represent the non-linear response of hyperelastic materials at large deformations. Hyperelasticity is popular due to its ease of use in finite element models. Usually, stress-strain curve data from experimental tests is used to fit the constants of theoretical models, thus approximating the material response.

The choices of hyperelasticity models which are available in SimScale platform are:

Neo-Hookean (first order reduced polynomial)

Mooney-Rivlin (first order complete polynomial)

Signorini (second order reduced polynomial)

Calculating the Stress-Strain Relation From Strain Energy Density Function

The stress-strain relation for hyperelastic materials is normally calculated with a strain energy density function. A brief theoretical description follows.

Consider a solid body subjected to a great deformation. A point inside the body with position \(X\) with respect to the original configuration is displaced to the position \(x\) in the final configuration through the displacement vector \(u\):

$$ x = X + u $$

The tensor of the gradient of the deformation \(F\) relating the initial configuration to the final configuration is given by:

$$ F = \frac{ \partial x }{ \partial X } = I + \nabla_{X} u $$

The local change of volume \(J\) is given by its determinant \(J = det(F)\). This tensor turns out to not be the best way to describe large deformations, so the right Cauchy-Green tensor is used instead:

$$ C = F^T F $$

This tensor is symmetrical, with its invariants given by:

where \( \varepsilon_i \) are the nominal strains in the principal directions (measured in the original configuration). Notice that the stretches \( \lambda_i \) are the components of the gradient of deformation tensor \(F\).

It is assumed that a strain energy density function \(U\) exists such that the hyperelastic (second) Piola-Kirchhoff stress tensor \(S\) in the material can be related to the right Cauchy-Green deformation tensor:

$$ S = 2 \frac{ \partial U }{ \partial C } $$

The true stress tensor on the material is related to the second Piola-Kirchhoff stress tensor. It can be expressed (after some algebra, not shown here) in terms of the right Cauchy-Green tensor and the strain energy density function:

Here, \(p\) is the hydrostatic external pressure, which causes pure volumetric change, and \(delta_{ij}\) is the kronecker delta. Notice that due to the incompressibility assumption, the \(J\) term is dropped.

For the material models available in SimScale, the strain energy density function is given by:

$$ U = C_{10}(I_1 – 3) + C_{01}(I_2 – 3) + C_{20}(I_1 -3)^2 + \frac{1}{2} K (J – 1)^2 $$

$$ I_1 = \mathrm{I}_c J^{-\frac{2}{3}} $$

$$ I_2 = \mathrm{II}_c J^{-\frac{4}{3}} $$

$$ J = \mathrm{III}_c^{\frac{1}{2}} $$

You will find that in the user interface, the compressibility is controlled by the \(D_1\) constant, given by:

$$ D_1 = \frac{2}{K} $$

Particular Strain Energy Density Forms of the Available Hyperelasticity Models

Before giving the appropriate material parameters to define specific hyperelastic materials, one should know the strain energy density forms of the hyperelasticity models. Following are the strain energy density forms of all the available hyperelasticity models on the SimScale platform (as mentioned above).

Neo-Hookean

With \( C_{01} = C_{20} = 0 \) in the above formulation, one obtains the most basic form known as neo-Hookean, given by:

The final piece of the puzzle to be able to fully characterize the hyperelastic material is the definition of the stretches \( \lambda_i \), which are determined by the loading state. The same material will have different behavior depending on how it is loaded, as shown in the following plot (taken from Axel Product, Inc.). In a typical test, the specimen is subjected to the desired load state, and the stress-strain relation is measured.

Uniaxial Tension

For the case of uniaxial tension loading of an incompressible material, the specimen is loaded along one axis. The stretches are given by:

$$ \lambda_1 = 1 + \varepsilon $$

$$ \lambda_2 = \lambda_3 = \lambda_1^{ -1/2 } $$

Equibiaxial Tension

For the case of equibiaxial tension loading of an incompressible material, the specimen is loaded along two perpendicular axes with the same magnitude. The stretches are given by:

$$ \lambda_1 = \lambda_2 = 1 + \varepsilon $$

$$ \lambda_3 = \lambda_1^{ -2 } $$

Pure Shear

For the case of pure shear loading of an incompressible material, the specimen is loaded in two perpendicular directions, one in tension and the other in compression. Plane strain condition is assumed, so there is no deformation in the unloaded direction. The stretches are given by:

$$ \lambda_1 = 1 + \varepsilon $$

$$ \lambda_2 = 1 $$

$$ \lambda_3 = \lambda_1^{ -1 } $$

Getting Material Parameters From Experimental Data

In order to fit the material properties to the experimental stress-strain curve, one has to take into account all the relations presented above. Combining the equations, the stress is expressed in terms of the strain, and the constants of the model are determined through a least-squares fit of that function to the test data. In most of the cases, the accuracy of the fit increases with the increasing order of the model.

As an example, let us consider a stress-strain relation of an incompressible uniaxial case for a Signorini model:

This completes the stress-strain function that should be input to the least-square fit algorithm to determine the \( C_{10}, C_{01}, C_{20} \) constants.

Important

Notice that when using the equations as defined in this procedure for the relations among stretch, strain and stress, the input quantities for the parameter curve fitting should be nominal (engineering) strain and true stress.

Similar expressions can also be derived for the equibiaxial tension case:

Notice that due to the incompressibility condition, the \(D_1\) parameter can not be estimated with this procedure. The recommendation is to give an approximate value using the elasticity relations:

$$ D_1 = \frac{ 1 – 2 \nu }{ C_{01} + C_{10} } $$

For an almost incompressible material, the value of \( \nu \) is close to 0.5.

Giving Material Parameters in SimScale

Once the material constants of a specific model are obtained from a good fit to experimental data, one can input these constants to the specified material model in SimScale under material properties:

The provided constants can be the proper combinations of C_{10}, C_{01}, and C_{20} as obtained from fitting.

It is observed that in some cases, if any of the obtained constant value is comparatively higher from the other constants, than the results obtained after the simulation are not accurate.

For the incompressible case, one can:

Use the recommended value for D_{1} with ν = 0.499 as a first approximation.

Get more accurate results by giving smaller values to D_{1}. This will make the material closer to fully incompressible.

If you run into convergence issues, stop giving smaller values to D_{1}.

Give value to D_{1} at least 1×10^{ − 10}.

Last updated: August 25th, 2020

Did you find this article helpful?

How can we do better?

We appreciate and value your feedback.

Contents

Cookie Policy

SimScale uses cookies to improve your user experience. By using this website you consent to our cookie policy.

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Strictly Necessary Cookies

Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.

If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.