An add-on to DUNE-FEM which aims at a convenient discretization of diffusion dominated problems with Adaptive Conforming Finite Elements.
|Maintainer:||The acfem team
An add-on to DUNE-FEM which aims at a convenient discretization of diffusion dominated problems with Adaptive Conforming Finite Elements. It is in spirit and origin based on the DUNE-FEM-HOWTO. “Conforming” means “continuous” if the non-discrete problem lives in an H1-context.
The idea was to factor out common code for the cG-FEM examples into a (template-) library. ACFem adds the possibility to build complicated models by forming algebraic expressions from a zoo of basic “atom” models like
myModel = laplaceModel + sinXFct*massModel + dirichletModel - rhsFct;
Care has been taken to do this in a way that the resulting code exhibits a decent performance by eliminating redundant “zero expressions” with template specializations. Still it is always possible to simply code the entire PDE in question into one monolithic model, or to augment the “model-zoo” by own models and combine those “hand-coded” models with some of the existing ones. There is an automatically generated Doxygen documentation of DUNE-ACFEM 2.5.1 and of the master branch (unstable).
With respect to the code base present in the Poisson- and Heat-equation examples from the DUNE-FEM-HOWTO ACFem adds more general boundary conditions and adaptive algorithms which resemble the state of the Fem-Toolbox Alberta in this respect.
ACFem requires a compiler with decent C++-14 support. gcc >= 5 should work, as well as recent clang versions.
An example usage can be found in this article.