I am a bit confused with the following dxd(u) – based upon which mesh the derivative is calculated?
Tho=Th;
fespace Vh(Th,P2);
fespace Vho(Tho,P2);
Vh u;
Vho uo;
…
Tho=Th;
uo=u;
Th=movemesh (Th, …); dxd(u); //first
u=u; // Is this just an interpolation? dxd(u); // second
u[ ] = uo[ ]; // is this a Larangian update? dxd(u); //third
Can I say the first dxd(u) is computed using the old mesh, and the second dxd(u) uses the new mesh, but the derivatives are the same? both of which are different to the third dxd(u)?
The problem is when you say u==x, this is still a Eulerian view, isn’t it? Once you define u=x, for example the density function, on a mesh, then you move (may twist or squeeze) the mesh and let the assiciated u follow the mesh, i.e. a Lagrangian movement, the u cannot be x on the new mesh anymore.
Anyway, can I confirm that in FreeFEM++, u[ ]=uold[ ] is just a Lagrangian update?