Fix nonoverlapping mode for Dune 2.4
Before we can release a PDELab 2.4, we have to make sure that nonoverlapping mode works without relying on the deprecated dune-grid feature of having GridViews with an explicit default PartitionIteratorType
that differs from the default AllPartition
. This patch series introduces a major change to the way PDELab works internally: Most of the machinery now uses a new object called EntitySet
instead of a GridView
. GridFunctionSpace
s now live on EntitySet
s, and if a user constructs a leaf space on a GridView
, we automatically wrap it in an AllEntitySet
. For 2.4, we explicitly will not commit to a specific API for those entity sets - right now, they are very similar to a GridView
, but they have a specific set of parallel partitions that they live on and provide an index set for those partitions only. They also have to be fed information about which codimensions they should contain.
Having the partitions available in the entity set allows us to get rid of a whole lot of clunky machinery that used the orderings for storing information about the parallelization model -- this patch set completely removes the PartitionInfoProvider and all of the fragile setup / update code associated with it.
Finally, it also deprecates the template parameter for the parallelization model on the GridOperator
, as this information can now be deduced from the EntitySet
.
Almost all of the tests in PDELab pass on my machine, except for testadaptivity
, which I'll have to look into, but I wanted to get this out to start a discussion about the whole approach.
Another important side effect of this patch set is that NonoverlappingConformingDirichletParameters
are now mostly unused, the only reason to keep them around is DG on a grid without overlap.
All of this also still needs to be documented correctly in the changelog.