Rodin::Location module

Spatial indexing and geometric search.

AABB builds a bounding-volume hierarchy to locate physical coordinates in a mesh and recover the containing cell and reference coordinates. The resulting Point can be used for field sampling and evaluation at arbitrary locations. The locator must be rebuilt when the mesh geometry or topology changes.

Representative use

An AABB index first prunes candidate cells and then checks their inverse geometric maps. A query returns an optional mesh point:

Location::AABB locator(mesh);
const auto point = locator.locate(physicalCoordinates);

The mesh must remain fixed during queries. Geometry or topology changes require rebuilding the locator.

Classes

template<class MeshType>
class AABB
Bounding-volume-hierarchy point locator over axis-aligned boxes.
See specializations
SpecializationDescription
MeshType
Full specialization
template <
  class MeshType>
requires std::is_base_of_v<Geometry::Mesh<Context::MPI>, MeshType>
class AABB<
  MeshType> final;
Noncollective point location in owned entities of an MPI mesh.