diff --git a/python/dune/codegen/__init__.py b/python/dune/codegen/__init__.py index e892baf44c4c9fb301536c15c40059a5acc5d602..196419782487f33f13cf797d19c1fbdcbd13d946 100644 --- a/python/dune/codegen/__init__.py +++ b/python/dune/codegen/__init__.py @@ -10,3 +10,6 @@ import dune.codegen.loopy.symbolic # noqa import dune.codegen.pdelab # noqa import dune.codegen.sumfact # noqa import dune.codegen.blockstructured # noqa + +# Trigger imports that register finite elements in UFL +import dune.codegen.ufl.finiteelement # noqa diff --git a/python/dune/codegen/ufl/finiteelement.py b/python/dune/codegen/ufl/finiteelement.py new file mode 100644 index 0000000000000000000000000000000000000000..ae0ef35f2a3b30cd2837525447233dfe017cd76d --- /dev/null +++ b/python/dune/codegen/ufl/finiteelement.py @@ -0,0 +1,43 @@ +""" Registering finite elements that we have, but FEniCS does not """ + +from ufl import register_element, L2 + + +register_element("Discontinuous Gauss-Lobatto-Legendre", + "DGLL", + 0, + L2, + "identity", + (0, None), + ('interval',), + ) + + +register_element("Monomials", + "Monom", + 0, + L2, + "identity", + (0, None), + ('interval',), + ) + + +register_element("L2-Orthonormal Polynomials", + "OPB", + 0, + L2, + "identity", + (0, None), + ('interval',), + ) + + +register_element("Rannacher-Turek", + "RaTu", + 0, + L2, + "identity", + (1, 1), + ('quadrilateral', 'hexahedron'), + )