Is it possible to assemble a multilinear form involving functions from different function spaces?
What I would like to do is something along these lines:
mesh = Mesh('mesh.xml')
bmesh = BoundaryMesh(mesh)
V = FunctionSpace(mesh, 'CG', 1)
V_b = FunctionSpace(bmesh, 'CG', 1)
f1 = TrialFunction(V)
f2 = TestFunction(V_b)
ml_form = f1 * f2 * ds
ml_tensor = assemble(ml_form)
where the integration is supposed to be carried out on the surface of the mesh (i.e. the ds of mesh, but the dx of bmesh), and the resulting tensor will not be square.
Is there a way to do this? Obviously the above code cannot work in this form...