FunctionAssigner fails for TensorFunctionSpace or VectorFunctionSpace of BDM vector-element

Issue #256 duplicate
Mikael Mortensen created an issue

This bug was reported by D. Arnold on the Q&A

from dolfin import *
# create a mixed function space X = X0 x X1
mesh = UnitSquareMesh(1, 1)
X0 = VectorFunctionSpace(mesh, 'BDM', 1)
X1 = FunctionSpace(mesh, 'DG', 0)
X = MixedFunctionSpace([X0, X1])
# create any nonzero functions in X0 and X1
x0 = interpolate(Constant((("1", "2"), ("3", "4"))), X0)
x1 = interpolate(Constant("5"), X1)
xassign = Function(X)
assign(xassign.sub(0), x0)
assign(xassign.sub(1), x1)
print  "Evaluating assigned fn.  Should give 1, 2, 3, 4, 5."
print xassign(.1, .1)

Evaluating assigned fn. Should give 1, 2, 3, 4, 5.

[ 1.4 2. -1.5 -0.5 5. ]

The bug is there for a regular TensorFunctionSpace instead of the BDM space as well.