CHANGELOG dune-functions 2.11.0
Download the Dune 2.11.0 module sources
- dune-functions [ tarball: dune-functions-2.11.0.tar.gz , signature: dune-functions-2.11.0.tar.gz.asc ]
Release 2.11
Dune-functions no longer has a hard dependency on dune-typetree.
If dune-typetree is not present, all features of dune-functions
can be used, except for the deprecated NodeTag member typedefs
of the node classes. After 2.11 the optional dependency on
dune-typetree will be dropped, too. Hence downstream modules
depending on typetree features that have not been moved to
dune-common will have to make dune-typetree an explicit dependency.
New finite element bases
-
There is now an implementation of the Argyris finite element.
-
The
RaviartThomasBasiscan now be used with mixed grids in 3d including cubes, tetrahedra, pyramids, prisms. -
The
LagrangeDG(Pre)Basissupports selecting the polynomial order at runtime. Its static variablesLagrangeDGPreBasis::dofsPer.*are deprecated. -
Add
HierarchicalLagrangeWithElementBubblePreBasisimplemented in terms ofLFEPreBasisMixin -
The new
MorleyPreBasisimplements the non-conforming C1 Morley element on triangles. -
The new
CubicHermitePreBasisimplements the cubic Hermite basis on simplices in 1d, 2d, and 3d. This C1 element is in general non-conforming since differentiability is only guaranteed at vertices (except for 1d where it coincides with cubic C1 splines). For 2d there is also the reduced variant which is part of the mixed DKT-element.
Changes to the C++ interface
-
Dune-functions now only depends on the modernized typetree interface provided in the
dune/common/typetree/subdirectory of the dune-typetree module. The plan is to eventually move this code to the dune-common module and then drop dune-typetree as dependency of dune-functions. -
The nodes of a
LocalView::Treeno longer derive from the base classes in dune-typetree but are still compatible with the utilities and algorithms from dune-typetree. The node membersisLeaf,isPower,isComposite, andNodeTagare deprecated and the respective properties can be derived by checking the new node concepts fromdune/common/typetree/nodeconcepts.hh. The node membersChild<i>,ChildType, andChildTypesare deprecated in favour of usingDune::TypeTree::Child. -
Using the methods
powerorcompositeto construct function space basis trees without an explicit index merging strategy argument will now issue a warning. This warning informs that the default index merging strategy will change after the 2.11 release. More specifically, it will change fromBlockedLexicographictoFlatLexicographicfor thecompositemethod, and fromBlockedInterleavedtoFlatInterleavedfor thepowermethod. The consequence is that default indexing is always flat, which is the most common form of indexing. -
Similarly, when calling
functions.Powerto construct a product of finite element bases in a Python program, you will now get a warning saying that the default for thelayoutparameter will change fromlexicographictointerleavedafter the 2.11 release. After these changes, C++ and Python will have the same defaults. -
The
GridFunctionclass (and indeed everything else that inherits fromTypeErasureBase) now implements theoperator boolcast operator, which allows to check whether theGridFunctionobject contains a valid object or not. -
Add function wrappers
CoarseFunctionOnFineGridViewandFineFunctionOnCoarseGridViewthat allow to represent a grid function on a grid view if the function is itself only defined on an entity set that is coarser or finer than the the target grid view. -
Add the utility class
GeometryInAncestorproviding the geometric fine-in-coarse element embedding across multiple levels. -
Add the function
makeISTLVectorto construct andune-istlvector type compatible with a container descriptor of a basis. -
The new utility class
TransformedFiniteElementMixincan be used to implement local finite elements where the element specific basis functions are obtained by a linear transformation of the reference basis functions (additionally to the classical geometric pull back). This can be used, e.g., to implement Hermite-type C1 elements. -
The consistency guarantees between leaf-nodes and the corresponding finiteElement got relaxed. This is necessary to add multidomain support. The change is that if
node.size() == 0accessingfiniteElementorelement()is undefined behaviour. To check for this, the basis nodes have a new member functionnode.empty()which is equivalent tonode.size()==0. These changes are also reflected in the updated tests. -
Any global basis implementation is required to implement a method
.containerDescriptor()returning a container descriptor orContainerDescriptors::Unknownas a fallback type. The default behavior implemented inDefaultGlobalBasisis to return the container descriptor provided by its pre-basis.
Changes to the Python interface
- One overload of
forEachBoundaryDOFis now available via the Python interface.
Deprecations and removals
-
The deprecated header
functionspacebases/sizeinfo.hhhas been removed. -
The deprecated header
functionspacebases/defaultnodetorangemap.hhhas been removed. -
The deprecated header
functionspacebases/hierarchicvectorwrapper.hhhas been removed.
|
Legal Statements / Impressum |
Hosted by TU Dresden & Uni Heidelberg |
generated with Hugo v0.111.3
(Feb 9, 23:36, 2026)