diff --git a/ufl/pullback.py b/ufl/pullback.py index 831dda026..c2bf18d84 100644 --- a/ufl/pullback.py +++ b/ufl/pullback.py @@ -157,7 +157,7 @@ def physical_value_shape(self, element, domain) -> typing.Tuple[int, ...]: The value shape when the pull back is applied to the given element """ gdim = domain.geometric_dimension() - return (gdim,) + element.reference_value_shape[1:] + return element.reference_value_shape[:-1] + (gdim,) class CovariantPiola(AbstractPullback): @@ -200,7 +200,7 @@ def physical_value_shape(self, element, domain) -> typing.Tuple[int, ...]: The value shape when the pull back is applied to the given element """ gdim = domain.geometric_dimension() - return (gdim,) + element.reference_value_shape[1:] + return element.reference_value_shape[:-1] + (gdim,) class L2Piola(AbstractPullback): @@ -283,7 +283,7 @@ def physical_value_shape(self, element, domain) -> typing.Tuple[int, ...]: The value shape when the pull back is applied to the given element """ gdim = domain.geometric_dimension() - return (gdim, gdim) + return element.reference_value_shape[:-2] + (gdim, gdim) class DoubleCovariantPiola(AbstractPullback): @@ -326,7 +326,7 @@ def physical_value_shape(self, element, domain) -> typing.Tuple[int, ...]: The value shape when the pull back is applied to the given element """ gdim = domain.geometric_dimension() - return (gdim, gdim) + return element.reference_value_shape[:-2] + (gdim, gdim) class CovariantContravariantPiola(AbstractPullback): @@ -371,7 +371,7 @@ def physical_value_shape(self, element, domain) -> typing.Tuple[int, ...]: The value shape when the pull back is applied to the given element """ gdim = domain.geometric_dimension() - return (gdim, gdim) + return element.reference_value_shape[:-2] + (gdim, gdim) class MixedPullback(AbstractPullback):