[examples] Add hyperelasticity example
This adds an example of a hyperelastic problem
with Neo-Hook material. The problem is solved
using a plain Newton method. Assemblers are
implemented using Dune::Fufem::Forms
.
Some remarks:
- The density is implemented in a relatively
flexible way. Using other material laws
with a different dependence on
det(F)
should be easy. - This requires some utilities for derivatives
of the determinante function. We may want to
add those to
Dune::Fufem::
. Second order derivatives are only implemented directionally. A rudimentary test is contained in the example. - Quadrature order is currently deduced as if the coefficients are gradients from the FE space. One may want to lift the order.
- My impression is that the assembler is currently very
slow. I'm unsure if this is unavoidable, due
to plenty of determinant/cofactor computations,
if it's slow because of inefficient formulas for
determinant derivatives, or if this is caused by the
Dune::Fufem::Forms::
assembler.
In summary: There's several things that one may want to improve. But the current status documents how far you can get starting from scratch in one day.