In legacy FEniCS, you could make eg VectorElement(BDM, 2) and this would give matrix-valued functions. This was removed as the terminology was confusing. It would be nice to add back a way of doing this as being able to apply things like trace to these functions is nice