Skip to content

Add support for Hermite elements to the global interpolate() method

The selected approach relies on the fact that local interpolation of fLocal assumes that derivative(fLocal) is the localized version of the global derivative.

See #76 for a discussion of the two variants.

This also included support for local functions lf where derivative(lf) hands out a reference to a cached derivative. This potentially allows to avoid the creation and copy of those local derivatives on each element which can be relatively costly as e.g. in case of DiscreteGlobalBasisFunction.

Currently, the latter does not implement such caching. To improve performance for such function implementations this patch also implements local caching of the local derivative object. The derivative() method of the wrapper hands out a reference to a single local derivative object that is already approriately bound and thus mimics creation of a new local derivative for the bound local function.

This MR also adds a CubicHermitePreBasis that only serves for testing. It is is not meant to be used and will be replaced by a more generic concept soon.

Merge request reports