Hello,
In Fenics/Dolfin, I can interpolate between different meshes, even with less basic elements like Raviart-Thomas. For example:
from fenics import *
mesh1 = UnitSquareMesh(1,1)
mesh2 = UnitSquareMesh(2,2)
V1 = FunctionSpace(mesh1,'RT',1)
V2 = FunctionSpace(mesh2,'RT',1)
u = Expression(('x[0] + 1','x[1]'),degree = 1)
U = interpolate(u,V1)
Uf = interpolate(U,V2)
Interpolating the function 'U' that is defined on one mesh can be moved to another in a fairly simple matter.
Trying something similar in Firedrake with 'project' instead of 'interpolate' results in an error message. A different error appears for nodal FE functions as well, when using 'interpolate'. However, in that case, I have developed a work-around using
mesh.coordinates.dat.data. However, I can't see how to extend this to nodal DG or Raviart-Thomas FE functions.
Can you access the coordinates of the degrees of freedom of an arbitrary function space? Barring that, is there some mechanism to move between meshes if I use a MeshHierarchy, for example?
Thanks,
Peter Sentz