template < int dim >
void example<dim>::move_mesh(const TrilinosWrappers::MPI::Vector &state_change) const
{
pcout<<"moving the mesh ..." <<std::endl;
std::vector<bool> vertex_touched(triangulation.n_vertices(), false);
for (typename DoFHandler<dim>::active_cell_iterator cell =dof_handler.begin_active();cell != dof_handler.end(); ++cell)
if (cell->is_locally_owned())
for (unsigned int v = 0; v < GeometryInfo<dim>::vertices_per_cell; ++v)
{
if(vertex_touched[cell->vertex_index(v)] == false)
{
vertex_touched[cell->vertex_index(v)] = true;
Point<dim> vertex_displacement;
for (unsigned int d = 0; d < dim; ++d)
vertex_displacement[d] = state_change(cell->vertex_dof_index(v, d));
cell->vertex(v) += vertex_displacement;
}
}
}