Different interpolations in Ferrite.jl

In Ferrite.jl when initializing CellValues like CellScalarValues or CellVectorValues one supplies a quadrature rule along with a function interpolation. According to the documentation there is an optional argument geom_interpolationwhich is used to interpolate the geometry”, but what does that actually mean? Where mathematically does this extra interpolation enter?

It is used for example in the incompressible elasticity example, where for the function u the function interpolation is 2nd order Lagrange polynomials, but the geometry interpolation is 1st order Lagrange.

The geometric interpolation is used for the mapping between a reference element in \boldsymbol{\xi} coordinates to the real element in \boldsymbol{x} coordinates. In particular the mapping is used to transform derivatives of shape functions N from \frac{dN}{d\boldsymbol{\xi}} to \frac{dN}{d\boldsymbol{x}}.

Allowing for different interpolations for the approximated function and the geometry interpolation let’s you implement sub- and super-parametric elements. In the example you link to the reason is that a linear mesh is used (e.g. only nodes in the element corners) but we still want a quadratic interpolation for one of the fields.

I see, you wouldn’t happen to be able to refer me to a resource where I can read more about this particular concept? The Google-jungle is not being super useful to me with this.

NB. There seem to be a few missing latex commands in your message.

You should be able to find this in any introductory FEM book (keywords could be isoparametric mapping, reference element or something like that). Slide 1-6 here uses the same terminology as in Ferrite.jl at least.

Looks good to me, maybe you have JavaScript disabled or something? This is what I see:

Screenshot from 2021-09-09 10-22-50

Thanks

Strange, this is what I see