Vector function spaces (+ FOG support)
This issue shall collect discussions around the implementation of vector function spaces and their integration into the full operator generation.
Issues and open questions:
-
ATheTensorialVectorFunctionSpace
already exists. We may want to streamline the members/methods if necessary.TensorialVectorFunctionSpace
implementsV_i = \{ q(\cdot) {\bf e}_i | ({e}_i)_j = \delta_{ij}, q \in P^1(\Omega), 1 \leq j \leq d \}
which is just a part of the full vectorial space (we would like to haveV = V_1 + \dots + V_d
) - thanks @wagnandr for explaining that to me :) -
Why does it have acomponent
member? -
We need support for HyTeG's VectorFunction
types in the FOG. -
Implementing vector spaces in the FOG would automatically improve communication patterns and reduce the need to fix terraneo/hyteg-form-generator#40 (however, composite operators may still benefit). -
Can we generalize the forms? For instance, the scalar diffusion \nabla u \cdot \nabla v
could be replaced by the vector valued version\nabla u : \nabla v
, since the double contraction:
just automatically collapses to the product\cdot
in the scalar case. This may allow us to removeforms_vectorial.py
or rather replace the contents offorms.py
with the contents offorms_vectorial.py
.
Edited by Marcus Mohr