Paraview's TemporalInterpolator with adaptive mesh

46 views
Skip to first unread message

Francis Giraldeau

unread,
Jul 12, 2019, 7:18:22 PM7/12/19
to deal.II User Group
To have smooth animation, Paraview has a TemporalInterpolator which renders intermediate frames by interpolating the solution between time steps.

However, it works only using a constant mesh. If the mesh changes between two time step, then the interpolator fails with this error: 

  Warning: vtkTemporalInterpolator: Interpolation aborted for points because the number of tuples/components in each time step are different

One solution could be to export the solution on a fixed mesh, but maybe there are other solutions?

Thanks!


  

Francis Giraldeau

unread,
Jul 12, 2019, 9:51:49 PM7/12/19
to deal.II User Group
I tried SolutionTransfer class, but because the DoFHandler is set in the constructor and assumed to be refined (or coarsen), we cannot use that solution to interpolate to a completely different mesh. Instead, a solution is to use VectorTools::interpolate_to_different_mesh() to a mesh that stays constant:

    Vector<double> interpolated_solution;
    interpolated_solution.reinit(dof_handler_export.n_dofs());
    VectorTools::interpolate_to_different_mesh(dof_handler, solution, dof_handler_export, interpolated_solution);

The result can be interpolated using vtkTemporalInterpolator. I uploaded the result at 60fps of step-26 here: https://www.youtube.com/watch?v=1jUUlwOA2fU

Cheers,

Bruno Blais

unread,
Aug 14, 2019, 2:54:13 PM8/14/19
to deal.II User Group
Francis (^^)
If you look at the documentation of the temporal interpolator of paraview ( https://www.paraview.org/Wiki/Advanced_Animations) you will see that it enforces that the support for your data (the mesh) remains constant throughout the time series. Consequently, you cannot use it with adaptative mesh refinement.

I think your solution is the best one there is. It might be a good idea, for visualization purposes, to project your solution on a refined mesh instead of the original coarse one. This way your projection will take into account the additional degrees of freedom due to the mesh refinement and you will not use too much information in projecting to a static grid. In your current case, all of the additional precision due to adaptative mesh refinement is lost for the visualization.

Cheers!
Reply all
Reply to author
Forward
0 new messages