*/
virtual void set_mesh_smoothing (const MeshSmoothing mesh_smoothing);
+ /**
+ * Return the mesh smoothing requirements that are obeyed.
+ */
+ virtual const Triangulation<dim, spacedim>::MeshSmoothing &get_mesh_smoothing() const;
+
/**
* If @p dim==spacedim, assign a boundary object to a certain part of the
* boundary of a the triangulation. If a face with boundary number @p number
(void)old_fe;
Assert(old_fe == &fe, ExcMessage("You are required to use the same FE for level and active DoFs!") );
+ Assert((tria->get_mesh_smoothing() & Triangulation<dim, spacedim>::limit_level_difference_at_vertices)==true,
+ ExcMessage("The mesh smoothing requirement 'limit_level_difference_at_vertices' has to be set for using multigrid!"));
+
clear_mg_space();
internal::DoFHandler::Implementation::reserve_space_mg (*this);
+template <int dim, int spacedim>
+const typename Triangulation<dim, spacedim>::MeshSmoothing &
+Triangulation<dim,spacedim>::get_mesh_smoothing() const
+{
+ return smooth_grid;
+}
+
+
+
template <int dim, int spacedim>
void
Triangulation<dim, spacedim>::set_boundary (const types::manifold_id m_number,
}
+
template <int dim, int spacedim>
void
Triangulation<dim, spacedim>::add_periodicity
update_periodic_face_map();
}
+
+
template <int dim, int spacedim>
const typename std::map<std::pair<typename Triangulation<dim, spacedim>::cell_iterator, unsigned int>,
std::pair<std::pair<typename Triangulation<dim, spacedim>::cell_iterator, unsigned int>, std::bitset<3> > > &
}
+
template <int dim, int spacedim>
void
Triangulation<dim, spacedim>::execute_coarsening_and_refinement ()