Replace `not isinstance(element, MixedElement)` with `element.num_sub_elements == 0`
This allows me to use control the behaviour of (eg) TrialFunctions for custom elements.
~As a side effect, this may change the result of calling TrailFunctions on VectorElements and TensorElements, although this new behaviour is probably what I'd have expected it to do.~ Edit: VectorElement inherits from MixedElement, so the behaviour probably hasn't changed
I think this looks fine. I have started https://github.com/firedrakeproject/firedrake/pull/2568 running just to make sure.
I think this looks fine. I have started firedrakeproject/firedrake#2568 running just to make sure.
So it turns out that the sobolev spaces change (which hadn't yet been merged to Firedrake) failed to set the sobolev_space method on BrokenElement which causes this to fail Firedrake tests. I am testing a fix.