26 template <
int dim,
int spacedim>
39 template <
int dim,
int spacedim>
50 if (
tria.get_reference_cells().size() == 0)
52 tria_create_signal = tria.signals.create.connect([&]() {
53 Assert(tria.get_reference_cells().size() > 0, ExcInternalError());
54 Assert(tria.get_reference_cells().size() == 1, ExcNotImplemented());
55 mapping = &tria.get_reference_cells()[0]
56 .template get_default_linear_mapping<dim, spacedim>();
62 mapping = &tria.get_reference_cells()[0]
67 template <
int dim,
int spacedim>
78 template <
int dim,
int spacedim>
87 template <
int dim,
int spacedim>
89 std::set<typename Triangulation<dim, spacedim>::active_cell_iterator>> &
107 return vertex_to_cells;
112 template <
int dim,
int spacedim>
113 const std::vector<std::vector<Tensor<1, spacedim>>> &
132 return vertex_to_cell_centers;
137 template <
int dim,
int spacedim>
138 const std::map<unsigned int, Point<spacedim>> &
156 return used_vertices;
161 template <
int dim,
int spacedim>
175 std::vector<std::pair<Point<spacedim>,
unsigned int>> vertices(
179 vertices[i++] = std::make_pair(it.second, it.first);
186 return used_vertices_rtree;
191 template <
int dim,
int spacedim>
193 std::pair<BoundingBox<spacedim>,
206 std::vector<std::pair<
210 boxes.reserve(
tria->n_active_cells());
211 for (
const auto &cell :
tria->active_cell_iterators())
212 boxes.emplace_back(
mapping->get_bounding_box(cell), cell);
225 template <
int dim,
int spacedim>
227 std::pair<BoundingBox<spacedim>,
236 std::lock_guard<std::mutex> lock(
241 std::vector<std::pair<
248 boxes.reserve(parallel_tria->n_locally_owned_active_cells());
250 boxes.reserve(
tria->n_active_cells());
251 for (
const auto &cell :
tria->active_cell_iterators() |
253 boxes.emplace_back(
mapping->get_bounding_box(cell), cell);
266 template <
int dim,
int spacedim>
284 if (
const auto tria_mpi =
289 boxes, tria_mpi->get_communicator());
307 template <
int dim,
int spacedim>
308 const std::vector<std::set<unsigned int>> &
322 for (
const auto &cell :
tria->active_cell_iterators())
324 if (cell->is_ghost())
325 for (
const unsigned int v : cell->vertex_indices())
327 cell->subdomain_id());
338 template <
int dim,
int spacedim>
339 const std::map<unsigned int, std::set<types::subdomain_id>> &
362#include "grid_tools_cache.inst"
Abstract base class for mapping classes.
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
static ::ExceptionBase & ExcNotImplemented()
#define Assert(cond, exc)
TriaActiveIterator< CellAccessor< dim, spacedim > > active_cell_iterator
const Mapping< dim, spacedim > & get_default_linear_mapping(const Triangulation< dim, spacedim > &triangulation)
MappingQ< dim, spacedim > StaticMappingQ1< dim, spacedim >::mapping
std::vector< BoundingBox< boost::geometry::dimension< typename Rtree::indexable_type >::value > > extract_rtree_level(const Rtree &tree, const unsigned int level)
boost::geometry::index::rtree< LeafType, IndexType, IndexableGetter > RTree
RTree< typename LeafTypeIterator::value_type, IndexType, IndexableGetter > pack_rtree(const LeafTypeIterator &begin, const LeafTypeIterator &end)