Neo-Hookean Solid Model Example in FEniCS

Bilgin Koçak
4 min readMay 19, 2022

A neo-Hookean solid model is a hyperelastic material model, and it is similar to Hooke’s law. Neo-Hookean model can be used for predicting the nonlinear stress-strain behavior of materials undergoing large deformations. The model was proposed by Ronald Rivlin in 1948. In all mostly used hyperelastic models, the neo-Hookean model has the simplest form. It is a “Hello World!” example in hyperelasticity.

The stress-strain curve of a neo-Hookean material is not entirely linear, unlike linear elastic materials. Initially, the relationship between applied stress and strain is linear, but the stress-strain curve will plateau at a certain point. The dissipative release of energy is not accounted for by the neo-Hookean model. At all deformation phases, perfect elasticity is assumed. It means that permanent deformation won’t occur.

FEniCS is a popular open-source (LGPLv3) computing platform to solve partial differential equations (PDEs) by using finite element method.

In this exercise, we will solve the equations of nonlinear elasticity (hyperelasticity) with FEniCS:

Problem definition is given below

We will use the Neo-Hookean model expressed by the strain energy density.

We will use the following data:

We keep fixed left boundary of domain and we add load (100 MN) to the right boundary of domain. After that we will obtain deformed shape of the domain.

In this article, solid mechanics problem is given as an FEniCS example. First of all, fenics library is imported mesh and necessary function space is created. The code snippet below creates mesh which has 5x1x1 size. It also creates finite dimensional vector function space that contains only first order lagrangian polynomials. The full code of the problem is given at the end of the article.

Mesh of Domain

Next, we need to implement boundary and initial conditions. In this case we only have boundary conditions. In our problem, we have zero displacement at the left side of the domain. In other words, we keep fixed nodes that is in the right side of the domain.

Now we will define the weak form of the formulation.

The following expressions can be used to define the first Piola-Kirchoff stress tensor

Note that the derivative term will be calculated using FEniCS by diff(W, F). We can also use the our derivation for the derivate term.

Now we can solve the nonlinear problem.

Solution are shown below.

Displacement Field Before Loading
Displacement Field After Loading

Full Code

Thanks for reading my article! I’d really appreciate any feedback on my writing (criticisms, where I can improve on, etc.) On that note, feel free to comment to ask questions or approach me directly on LinkedIn. Also, you can visit my website.

--

--