void
clear_despite_subscriptions();
+ /**
+ * Reset triangulation policy.
+ */
+ void
+ reset_policy();
+
/**
* For all cells, set the active cell indices so that active cells know the
* how many-th active cell they are, and all other cells have an invalid
reset_global_cell_indices();
}
+ reset_policy();
bool my_check_for_distorted_cells;
ar & my_check_for_distorted_cells;
}
+template <int dim, int spacedim>
+void
+Triangulation<dim, spacedim>::reset_policy()
+{
+ this->update_reference_cells();
+
+ if (this->all_reference_cells_are_hyper_cube())
+ {
+ this->policy =
+ std::make_unique<internal::TriangulationImplementation::PolicyWrapper<
+ dim,
+ spacedim,
+ internal::TriangulationImplementation::Implementation>>();
+ }
+ else
+ {
+#ifndef DEAL_II_WITH_SIMPLEX_SUPPORT
+ Assert(false, ExcNeedsSimplexSupport());
+#endif
+
+ this->policy =
+ std::make_unique<internal::TriangulationImplementation::PolicyWrapper<
+ dim,
+ spacedim,
+ internal::TriangulationImplementation::ImplementationMixedMesh>>();
+ }
+}
+
+
template <int dim, int spacedim>
void
{
internal::TriangulationImplementation::Implementation::
create_triangulation(v, cells, subcelldata, *this);
-
- this->update_reference_cells();
}
catch (...)
{
throw;
}
- if (this->all_reference_cells_are_hyper_cube())
- {
- this->policy =
- std::make_unique<internal::TriangulationImplementation::PolicyWrapper<
- dim,
- spacedim,
- internal::TriangulationImplementation::Implementation>>();
- }
- else
- {
-#ifndef DEAL_II_WITH_SIMPLEX_SUPPORT
- Assert(false, ExcNeedsSimplexSupport());
-#endif
-
- this->policy =
- std::make_unique<internal::TriangulationImplementation::PolicyWrapper<
- dim,
- spacedim,
- internal::TriangulationImplementation::ImplementationMixedMesh>>();
- }
+ reset_policy();
// update our counts of the various elements of a triangulation, and set
// active_cell_indices of all cells