Skip to content

Add Python demo for adaptive finite element method for linear problems #4141

@brodbeck-m

Description

@brodbeck-m

Aims and Scope

FEniCSx by default supports most of the relevant parts for the design of adaptive finite element algorithms, such as mesh-independent form compilation, evaluating the (cell-wise) errors, refining the mesh and resolving the problem. Nevertheless, a comprehensive demo combining these features, as this was done in the legacy version as well as performant implementations of cell marking and interaction with (facet-based) refinement routines, is missing. This is also not covered by external demos including fenicsx-error-estimation or the FEniCSx tutorials

Planed features

As nearly every relevant error estimator is initially introduced for the Poisson problem, the demo will focus on the adaptive solution of a Poisson problem in both primal as well as mixed form. In order to keep the complexity of the actual error estimation low, residual-type error estimators (see e.g. Carstensen 1) are considered. The classical L-shaped domain or a unit square with varying coefficient 2 could serve as test problem.

Prerequisites

For the marking routines we suggest to implement in C++:

  • Convenience functionality to identify the closure of topological entities based on their connectivity to neighboring entities of different topological dimensions. This allows the conversion from cell-wise markers to an edge list or alike.
  • A scalable implementation of the classical maximum strategy 3 and Doerfler marking 4 to demonstrate their different behavior

Metadata

Metadata

Labels

demoNew demo or demo enhancements/improvementsproposalSuggested change or addition

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions