Add refined-LagrangeBasis as alternative to P2 basis
Summary
The RefinedLagrangeBasis
is based on the RefinedP[0|1]LocalFiniteElement
and represents piecewise constant/linear Lagrange finite elements on a refined simplex element. The implementation is based on the code for LagrangeBasis
.
Example
Construct the RefinedLagrangeBasis
using the basis factory refinedLagrange<k>()
for k
in {0,1}
:
using namespace Dune::Functions::BasisFactory;
auto basis1 = makeBasis(gridView, refinedLagrange<1>());
// or with specified range type:
auto basis2 = makeBasis(gridView, refinedLagrange<1,float>());
Limitations
- The local finite-element implements only a 1-level refinement. Probably this could be extended to multi-level refinement (maybe also future work)
TODO
-
Add changelog entry -
Maybe simplify the code using mcmg mappers directly
Edited by Simon Praetorius