Chapter 8


Theory and Implementation of the Finite Element Method




8.4 Finite element method for large deformations: hyperelastic materials

The finite element method can be used to solve problems involving large shape changes.  In this section, we show how to do this, using a solid made from a hyperelastic material as an example.

8.4.1 Summary of governing equations
To keep things as simple as possible we will devise a method to model a hyperelastic solid with a Neo-Hookean constitutive law as discussed in Section 3.4.


1.       The shape of the solid in its unloaded condition  (this will be taken as the stress free reference configuration)

2.       A body force distribution  acting on the solid (Note that in this section we return to using b to denote force per unit mass)

3.       Boundary conditions, specifying displacements  on a portion  or tractions  on a portion  of the boundary of  the deformed solid (note that tractions are specified as force per unit deformed area  but we could also specify the tractions  per unit undeformed area acting on  if this is more convenient);

4.       The material constants  for the Neo-Hookean constitutive law described in Section 3.4.5;

5.       The mass density of the solid in its reference configuration  


Calculate displacements , deformation gradient tensor  and Cauchy stresses  satisfying the governing equations and boundary conditions


with Cauchy stress related to left Cauchy-Green tensor through the neo-Hookean constitutive law




8.4.2 Governing equations in terms of the principle of virtual work


As always the stress equilibrium equation is replaced by the equivalent principle of virtual work  which now has to be in a form appropriate for finite deformations.  The virtual work equation is given in terms of various stress and deformation measures in Section 2.4.5.  For our purposes, a slightly modified form of the version in terms of Kirchhoff stress is the most convenient.  This states that


for all virtual velocity fields  and virtual velocity gradients  that satisfy  on .  Here  is the Kirchhoff stress.  Some notes on this equation

1.       The volume integrals in the virtual work equation are taken over the reference configuration  this is convenient, because in a real problem we can take the given initial shape of the solid as reference, whereas the deformed configuration is unknown.

2.       The area integral is taken over the deformed configuration, but can be mapped back to the reference configuration by computing the inverse surface Jacobian .  One way (although not the best way in practice) to calculate  would be through the relationship


where m is the normal to the surface in the reference configuration, and n is the normal to the surface in the deformed configuration.  Taking the magnitude of both sides gives


Then the virtual work equation becomes




8.4.3 Finite element equations


The finite element solution follows almost exactly the same procedure as before.  We first discretize the displacement field, by choosing to calculate the displacement field at a set of n nodes.  We will denote the coordinates of these special points in the reference configuration by , where the superscript a ranges from 1 to n.  The unknown displacement vector at each nodal point will be denoted by .

1.       The displacement field and virtual velocity field at an arbitrary point within the solid is again specified by interpolating between nodal values in some convenient way. 


Here, x denotes the coordinates of an arbitrary point in the reference configuration.  Note that the interpolation gives virtual velocity as a function of position x in the reference configuration, not y in the deformed configuration, so we have to be careful when computing the velocity gradient.

2.       Observe that we can compute the deformation corresponding to a given displacement field as


3.       The derivatives of shape functions with respect to reference coordinates are computed exactly as for small strain problems.  Let  denote the shape functions in terms of local element coordinates .  Then interpolate position within the element as


Define the Jacobian matrix




4.       Given the deformation gradients, we can compute any other deformation measure we need  we don’t need to spell out the details for now.   By substituting the appropriate deformation measure we could calculate the Kirchhoff stress.  Note that the Kirchhoff stress depends on displacements through the deformation gradient  we will express this functional relationship as  

5.       Note also that the virtual velocity gradient can be calculated as


6.       We can now substitute everything back into the virtual work equation


7.       Since this must hold for all  we must ensure that



This is a set of n nonlinear equations in n unknowns, very similar to those we obtained for hypoelastic problems  except that now we have to deal with all the additional geometric terms associated with finite deformations.  The procedure for solving these equations is outlined in the following sections.




8.4.4 Solution using Consistent Newton Raphson Iteration


As before, we can solve the nonlinear virtual work equation using Newton-Raphson iteration, as follows

1.       Start with some initial guess for  - say  (we can start with zero displacements, or for incremental solutions we can use the solution at the end of the preceding increment).  This solution will not satisfy the governing equation (unless you are very lucky)

2.       Next, attempt to correct this guess to bring it closer to the proper solution by setting .  Ideally, we would want the correction to satisfy


where  denotes the deformation gradient for the updated solution. This equation cannot be solved for  in its present form.

3.       To make progress, linearize in , just as for the hypoelastic problem discussed in the preceding section.  The linearization (derived in detail below) yields a system of linear equations




which can be solved for .

4.       If you prefer, you can use a slightly simpler set of formulas for the stiffness matrix and force vector


where we have defined


Note that the formula for stiffness is very similar to the result for small strain problems, except for two additional terms.  These additional terms are called the `geometric stiffness’ because they arise as a result of accounting properly for finite geometry changes.  In addition, note that while the first integral in the stiffness is symmetric, the second and third are not.  There is therefore some additional computational cost associated with finite strain problems, since it is necessary to store and solve an unsymmetric system of equations. 

5.       After solving the system of equations in (3) for , check for convergence (you can use the magnitude of  or the magnitude of the force vector  as a measure of error).  If the solution has not yet converged, go back to (3) and correct the solution again.


Linearizing the virtual work equation:  This is a tedious, but straightforward calculation.  Start with


Note that


We also have that


In addition,


Substituting these expansions in the virtual work equation, and retaining linear terms in dw leads to the results given in step (3) above.



8.4.5 Tangent stiffness for the neo-Hookean material


The tangent stiffness is defined as


The Neo-Hookean solid has a stress-strain relation given by


Evaluating the derivatives is a tedious but straightforward exercise in index notation. The following identity is helpful






8.4.6 Evaluating the boundary traction integrals


Finally, we need to address how to calculate the factor  and its derivative in the surface integrals.


There are two common cases we need to deal with.  In some problems, we find it convenient to specify the nominal traction (force per unit undeformed area) acting on part of a solid.  For example, if you were to model the behavior of a bar under uniaxial tension, you might know the force you are going to apply to the bar.  Since you know the cross sectional area of the undeformed bar, you could easily calculate nominal traction.  However, in this case you would have no idea what the true traction acting on the bar is  to calculate that, you have to know the cross sectional area of the deformed bar.


In other problems you need to be able to impose a certain force per unit deformed area  i.e. to specify the true traction distribution.  This would be the case if you wanted to model fluid or aerodynamic forces acting on part of the solid.


We will deal with both cases.  The first case is easy  note that the nominal and true traction are related by .  The expression for the external forcing can therefore be written


and since this expression does not involve  the last term in the expression for stiffness vanishes.


The second case is a pain.  It is simplest to treat the surface integrals directly.  Consider a general 3D element face, with nodal coordinates (in the deformed configuration)   for a=1..n. Introduce a convenient interpolation scheme to define the shape of the element face in terms of its nodal coordinates


where  with  denote a suitable set of local coordinates that will specify position within an element face, and  are a set of interpolation functions.


We now evaluate the surface integral as


where  must be computed by finding the two natural basis vectors


and then using  .  A straightforward exercise shows that


With this in hand, we can calculate




so that the last term in the stiffness can be evaluated as




8.4.7 Example hyperelastic finite element code


It is evidently quite straightforward to extend a nonlinear small-strain finite element code to account for finite strains.  The only changes necessary are:

(1)    The general finite deformation measures must be calculated;

(2)    The material tangent stiffness is now a function of strain;

(3)    Two additional geometric terms must be added to the stiffness matrix  one of these is a volume integral over all the elements, the second is an integral over the boundary;

(4)    We have to deal with an unsymmetric stiffness matrix.


An example code is provided in the file FEM_2Dor3D_hyperelastic_static.mws.  For simplicity, the example is coded to apply a fixed nominal traction to the boundary (the geometric terms in the surface integral outlined above are not included).


An input file Hyperelastic_quad4.txt is also provided: the file sets up a simple 1 element problem.





(c) A.F. Bower, 2008
This site is made freely available for educational purposes.
You may extract parts of the text
for non-commercial purposes provided that the source is cited.
Please respect the authors copyright.