FEniCSx-Error-Estimation

See all the details in the dedicated publication and the code repository.

What is FEniCSx-EE ?

FEniCSx-EE is an open source library for the finite element software FEniCSx. The goal of this library is to provide an implicit hierarchical a posteriori error estimation method. The method used in FEniCSx-EE has been introduced by R. E. Bank and A. Weiser in this research paper.

The Bank-Weiser estimator

The Bank-Weiser estimator is computed from local solves of Neumann boundary value problems at the level of the mesh cells.

This estimator has several advantages:

Details on our algorithm implemented in FEniCSx-EE and examples of applications can be found in the dedicated publication.

The derivation of the Bank-Weiser estimator

We consider the following standard Laplacian equation on a bounded domain with homogeneous Dirichlet boundary condition in weak formulation: we seek uH01(Ω) such that

(1)(u,v)L2(Ω)=(f,v)L2(Ω)vH01(Ω).

Given a mesh T on Ω and an associated finite element space VH01(Ω) the finite element discretization of (14) reads: seek uVV such that

(2)(uV,v)L2(Ω)=(f,v)L2(Ω)vV.

From (14) and (15) we can derive a local equation for the approximation discrepancy given by the function e:=uuV. If we denote T a cell of T, T the set of edges of T and E the edges, the restriction eT:=e|T is solution to the following local Neumann problem in weak formulation

(3)(eT,v)L2(T)=(rT,v)L2(T)+12ET(JE,v)L2(E)vH01(Ω),

where rT and JE are computable functions depending on fV (the L2 projection of f onto V) and uV only.

The core idea of the Bank-Weiser error estimation is to pick a proper space Vbw(T) to discretize (16) and obtain a computable function eTbw, solution to

(4)(eTbw,v)L2(T)=(rT,v)L2(T)+12ET(JE,v)L2(E)vVbw(T).

Note that, since these problems are fully independent from a cell T to another, they can be solved in parallel. Thus, for a given norm, the local finite element error is approached by the Bank-Weiser estimator defined as follow

(5)eTeTbw=:ηTbw.

The quantity ηTbw can be used to perform adaptive refinement and to approach the global finite element error as follow

(6)e2TTηTbw2.

In here we develop a new parallel implementation of the Bank-Weiser a posteriori error estimator and we apply it to various problems such as adaptive refinement for standard Laplacian equations with different kinds of boundary conditions, for nearly-incompressible linear elasticity equations and for goal-oriented error estimation.

Above are two meshes adapted using the Bank-Weiser estimator. On the left is a standard Laplacian equation on a 2D L-shaped domain. On the right is the mesh of a femur bone on which nearly-incompressible linear elasticity equations are applied. The mesh on the right is adapted with respect to a quantity of interest centered in the middle part of the bone.

Above is the plot showing the strong scaling of our parallel implementation of the Bank-Weiser estimator.

Getting started

To download and get started with FEniCSx-EE, please follow the instructions from the README file on the github repository.

FEniCSx-EE is not currently compatible with the last stable version of FEniCSx. Maintaining FEniCSx-EE is not part of my current position but I try to update it when I find some time. 👷