If we have a finite element function in some FunctionSpace and then refine the mesh and create a new FunctionSpace with the refined mesh, we can use the interpolate function to interpolate the function from the first space into the second or vice versa. Unfortunately, this works in serial, but not in parallel. (In parallel, if the "allow_extrapolation" parameter is not set, the code crashes, while if it is set, the code completes but gives the wrong answer.) This is discussed, for example, here.
If the FunctionSpaces use Lagrange elements, then instead of the usual interpolate function one can use LagrangeInterpolator().interpolate, and this gives correct results, also in parallel.
My question is: for non-Lagrange spaces, e.g., Nedelec spaces, is it possible to interpolate from a coarse mesh space to a refined mesh space in parallel or is this just not available in FEniCS?