TODO:
This is just a first step to improve the code structure. The overall form/operator generation process has not really changed but this MR gets rid of a lot of duplicated code.
It introduces integrand.py to facilitate the writing of new forms. Conceptually, integrands are specified as before, but there is now much less boilerplate. See docstrings in integrand.py for details.
List of major changes:
forms.py
and forms_boundary.py
(manifolds postponed)hog/recipes/integrands/
and split into dedicated filessingle_component
in TensorialVectorFunctionSpace to avoid duplicate integrand formulations for scalar components and proper vector function spacesgenerate_all_operators.py
script to also be able to generate mixed or pure boundary operators