Dune Assembler integration

Description

During last meeting with @christi and @peter, we agreed to bring latest advances from dune-assembler into dune-pdelab. The main idea is to unify the dune-functions interface of the function spaces with the requirements of PDELab and to re-implement on top of that the assemblers in a more composable form. The main reason to bring new function spaces (rather than dune-functions directly) is that the function spaces in dune-assembler are essentially a re-implementation of PDELab::GridFunctionSpace with extensive testing and extra features, meaning that current PDELab functionality could still be achieved when needed (e.g. local index sets for parallel grid based communications, multi-domain spaces, entity blocking, etc).

Thus, the following is a high level road map of how to achieve that:

Road Map

From Dune::Assembler into Dune::PDELab::inline Experimental.

The idea is to bring the objects, concepts, and helpers functions from Dune::Assembler into the Dune::PDELab::inline Experimental namespace. During the process, we can refine, document, and improve the current implementation in dune-assembler.

  • Basic Infrastructure !603 (closed)
    • Google testing
    • Perfetto tracing
    • Threading libraries
  • Common utilities
    • Property Tree !606
    • Entity sets definition
  • Basis functions !604 (closed)
    • Concept definition
    • New implementation
    • Wrapper for PDELab::GridFunctionSpace
    • Wrapper for Dune::Functions
  • Assemblers & Assembler infrastructure
    • Hierarchical Pattern creation (based on !561 (closed)) #181
    • Abstract base classes for Forward and Inverse operators
    • One step operator & Mass/Stiffness assembler
    • Newton operator
    • PDELab local operator wrapper for new assemblers

Integrate current PDELab practices with new infrastructure

Once, the experimental objects are in place, we can start to integrate them into PDELab current infrastructure:

  • Unify boundary conditions treatment
  • Use new basis concept in current assemblers
  • Wrap current solvers & grid operators into Forward and Inverse operators
Edited by Santiago Ospina De Los Ríos