Allow flux reconstruction for non-conforming grids
The following discussion from !105 (merged) should be addressed:
-
@sospinar started a discussion: (+6 comments)
I have been thinking about the non-conforming grids for flux reconstruction. It is possible, but it is absolutely needed to do something more than local flux reconstruction (that is what this MR is about):
One has to solve the same problem but globally, and constraint the normal fluxes to be equal on the intersections. This procedure leads to the so-called hanging nodes. This is not needed for the conforming grids because normal fluxes are trivially equal for RT elements of the same order. In such a case, each grid entity has all the information to do the flux reconstruction, and computations become local. (Notice that p-adaptivity for the flux reconstruction also needs to solve the global problem).
In that case, some of the things implemented here need to be modified:
- Form a global linear system rather than a local linear system. It means that the Raviart Thomas local engine has to be modified so that it forms the right linear system. (Or just creating another local engine).
- Local Function Spaces (LFS) cannot be the one I implemented here: It can be either that the LFS of PDELab receives intersections, or that the
MinimalLocalFunctionSpace
can construct the DOF and can form a composite space (yeah, it implies usingTypeTree
). - One has to constrain the degrees of freedom associated to the entities of codimension 1 in a very similar way as for hanging nodes in normal FEM (PDELab has a quite old code for it, not sure if it would work).
- As well as for this MR, the lifting can be done separately (e.g. with this MR infrastructure), or directly together with the flux reconstruction RT elements.
- Check again the computations in the local operator for the non-conforming Raviart Thomas finite elements (and its test functions).
Since it is quite a lot of work I won't do what I just described and since local flux reconstruction in non-conforming grids is not useful at all for us, and I will disable local flux reconstruction computation for the cube-adaptative cases. @lriedel Are you fine with it?