The ordering is:
q = u[0,0];
w = u[0,1];
e = u[1,0];
r = u[1,1];
New question: is there an easier way to determine this than
from fenics import *
mesh = UnitSquareMesh(1,1)
Q = FunctionSpace(mesh, 'CG', 1)
T = TensorFunctionSpace(mesh, 'CG', 1)
u = Function(T)
q,w,e,r = u.split()
ts = Function(Q)
ts.vector()[:] = 1.0
assq = FunctionAssigner(q.function_space(), Q)
assq.assign(q, ts)
ts.vector()[:] = 2.0
assw = FunctionAssigner(w.function_space(), Q)
assw.assign(w, ts)
ts.vector()[:] = 3.0
asse = FunctionAssigner(e.function_space(), Q)
asse.assign(e, ts)
ts.vector()[:] = 4.0
assr = FunctionAssigner(r.function_space(), Q)
assr.assign(r, ts)
project(u[0,0], Q).vector().max()
project(u[0,1], Q).vector().max()
project(u[1,0], Q).vector().max()
project(u[1,1], Q).vector().max()