add restrict prolong and vectorial bfs to lfe space
Note: requires the feature/lagrangeinterpolate_with_general_container branch of dune-localfunctions
This merge request adds the following features to the lfe spaces:
-
use of vectorial bfe if the underlying lfe is scalar. Note that at the moment vector valued spaces like RT are not available as
(V)^r
spaces -
generic restrict/prolong operators which are based on the underlying local interpolation. Should work in general but some tests i.e. with an RT space still need to be added. Note that this required a new method on the restrict/prolong operators
restrictFinalize
which is called afterrestrictLocal
has been called for all children on a given father. This approach assumes that onefather
element is completely finished before another coarse element is considered - if this does not hold the construction will fail. TheLocalRP
operators do not have a default interface class so therestrictFinalize
method can not be default implemented.
This MR also contains some other minor changes (which should not influence any code) which were required to make dune-fem play nicely with dune-localfunction.
The restrction/prolongation is now implemented as follows:
For the prolongation the interpolation on the children is directly used (without setting up a matrix), i.e., denoting with G_{CF}
the geometryInFather
:
u_C = I_C(u_F\circ G_{CF})
For the restriction I want to do the same, i.e.,
u_F = I_F(u_{\sum C}\circ (G_{CF})^{-1})
where \sum C
denotes the local function which is equal to u_C
on the child C
.
A caveat is when I_F
requires an evaluation at a point on the boundary between children, i.e., in the Lagrange case at a vertex shared by two children. This will lead to problem when simply implementing this in the prolongLocal
method using:
u_F = \sum_C I_F(u_C\circ (G_{CF})^{-1})
where u_C
is extended by zero outside of C
.
This leads to a doubling of the dof at the shared vertex. To avoid this problem the actual interpolation is performed in a new method restrictFinalize
and a suitable weighted value is returned at the shared points.