This is a read only copy of the old FEniCS QA forum. Please visit the new QA forum to ask questions

Interpolate on different topology: Crashes

0 votes

Dear all,

I need to interpolate a function on a new mesh with different topology (I add nodes on the boundary), but I get a bad access error. Maybe I've made an error in my code:

    mesh.update(newNode);

    dolfin::Timer t1("interpolate");

    t1.start();

    elasticity::FunctionSpace VV(mesh.object); // On the new mesh

    dolfin::Function uu(VV);

    uu.interpolate(u); // <------ u is on the old mesh: BOOM!

    t1.stop();

    printf("interpolate %g\n", t1.value());

Is it possible, or must the meshed meet some requirements? The documentation says:

void interpolate(const GenericFunction& v)
     Interpolate function (on possibly non-matching meshes)

It works if I refine the mesh, but not if I change its topology.

Thanks!

asked Jun 14, 2016 by senseiwa FEniCS User (2,620 points)
...