brodbeck-m / dolfinx_eqlb

Efficient reconstruction of H(div) conforming fluxes in FEniCSx. These fluxes can be used to calculate a posteriori error estimates for adaptive FEM calculations.
GNU Lesser General Public License v3.0
2 stars 0 forks source link

Equilibration based on classes Equilibrator and EquilibrationProblem #46

Open brodbeck-m opened 22 hours ago

brodbeck-m commented 22 hours ago

Equilibration shall be defined based on an abstract class 'Equilibrator'. This class (which has a c++ analogon) holds the basic information of the equilibartion process and the precompiled integration kernels for BCs and the (constrained) minimisation problem. This class is therefore mesh-independent. For a given mesh an EquilibrationProblem is created from this definitions, which contains the actual solution process.

Open issue 1: The equilibration routines currently generates ProblemData, KernelData and optionally quadrature kernels. Assuming a persistent EquilibrationProblem, these classes could be initialised once and kept, as long as the mesh is not changed or the EquilibrationProblem exists. Should that be changed.

Open issue 2: How should fluxes with discontinuous coefficients be handled, as these coefficient functions are required for the primal as well as the dual problem?

brodbeck-m commented 22 hours ago

General outline of the class Equilibrator:

brodbeck-m commented 21 hours ago

General outline of the class EquilibrationProblem (Base class in section basic):

General outline of the class EquilibrationProblem (for the Ern and Vohralik strategy):

General outline of the class EquilibrationProblem (for the semi-explicit strategy):