So, foo**bar doesn't work at all for mixed spaces. This is the same as dolfin. I think it would be possible to make it work, but I'm not sure if it actually makes sense. The error is deep in UFL.
The component tensor error I think needs one to unpick more UFL classes.
The other option is to lie about the ufl_element in the mixed function spaces. If I say that
fs._ufl_element = self._function_spaces[0]._ufl_element then everything works. But that's tremendously icky.
So, foo**bar doesn't work at all for mixed spaces. This is the same as dolfin. I think it would be possible to make it work, but I'm not sure if it actually makes sense. The error is deep in UFL.
The component tensor error I think needs one to unpick more UFL classes.
The other option is to lie about the ufl_element in the mixed function spaces. If I say that
fs._ufl_element = self._function_ spaces[ 0]._ufl_ element then everything works. But that's tremendously icky.