1- Not a FEniCS question (but in short: just like any other equation)
2- If V is a vector function space, then anything you'll interpolate in V will be vector valued
V = VectorFunctionSpace(mesh, "Lagrange", 1)
u1= interpolate(Constant((0.0, 0.0)), V)
u0= interpolate(Constant((0.0, 0.0)), V)
Note that when you initialize a function on a function space, it is zero by default:
u1= Function(V)
u0= Function(V)
As you are applying divergences to you unknown field, you'll probably need H(div) vector elements, e.g.,
V = FunctionSpace(mesh, "RT", 1)
Note that Raviart-Thomas (RT) elements are vectorial, so you have a (scalar) function space of vector elements, in stead of a vector function space of scalar elements)