std::vector<typename MeshType::active_cell_iterator>
compute_active_cell_halo_layer
(const MeshType &mesh,
- const std_cxx11::function<bool (const typename MeshType::active_cell_iterator &)> &predicate);
+ const std::function<bool (const typename MeshType::active_cell_iterator &)> &predicate);
+
+ /**
+ * Extract and return the cell layer around a subdomain (set of
+ * cells) on a specified level of the @p mesh (i.e. those cells on
+ * that level that share a common set of vertices with the subdomain
+ * but are not a part of it). Here, the "subdomain" consists of exactly
+ * all of those cells for which the @p predicate returns @p true.
+ */
+ template <class MeshType>
+ std::vector<typename MeshType::cell_iterator>
+ compute_cell_halo_layer_on_level
+ (const MeshType &mesh,
+ const std_cxx11::function<bool (const typename MeshType::cell_iterator &)> &predicate,
+ const unsigned int level);
+
+
/**
* Extract and return ghost cells which are the active cell layer around all
* locally owned cells. This is most relevant for
if (allow_artificial_cells)
{
- // get halo layer of (ghost) cells
+ // get active halo layer of (ghost) cells
// parallel::shared::Triangulation<dim>::
- std_cxx11::function<bool (const typename parallel::shared::Triangulation<dim,spacedim>::active_cell_iterator &)> predicate
+ std::function<bool (const typename parallel::shared::Triangulation<dim,spacedim>::active_cell_iterator &)> predicate
= IteratorFilters::SubdomainEqualTo(this->my_subdomain);
const std::vector<typename parallel::shared::Triangulation<dim,spacedim>::active_cell_iterator>
template
std::vector<dealii::internal::ActiveCellIterator<deal_II_dimension, deal_II_space_dimension, X>::type>
compute_active_cell_halo_layer (const X &,
- const std_cxx11::function<bool (const dealii::internal::ActiveCellIterator<deal_II_dimension, deal_II_space_dimension, X>::type&)> &);
+ const std::function<bool (const dealii::internal::ActiveCellIterator<deal_II_dimension, deal_II_space_dimension, X>::type&)> &);
+ template
+ std::vector<X::cell_iterator>
+ compute_cell_halo_layer_on_level (const X &,
+ const std_cxx11::function<bool (const X::cell_iterator&)> &,
+ const unsigned int);
+
template
std::vector<dealii::internal::ActiveCellIterator<deal_II_dimension, deal_II_space_dimension, X>::type>
compute_ghost_cell_halo_layer (const X &);