Class for constructing an R-Tree [6] of bounding boxes for elements in a mesh using a packing algorithm [8]. More...
#include <ptems/rtree.hpp>
Public Member Functions | |
| RTree (ParallelComm &mpi, const PFEMesh< DIM > &mesh) | |
| Construct an R-Tree of bounding boxes for the specified mesh. More... | |
| std::vector< std::vector< std::size_t > > | ExtractAgglomeration (std::size_t level) |
| Extract an agglomeration of the specified mesh from the specified level of the R-Tree. More... | |
| std::size_t | Levels () const |
| Gets the number of levels in the R-Tree. More... | |
Class for constructing an R-Tree [6] of bounding boxes for elements in a mesh using a packing algorithm [8].
This tree can then be used to constructed an agglomerated mesh by extract a specific level of the tree and agglomerating each node in that level into a sinlge agglomerated element.; cf [5].
| DIM | The dimension ( \(D\)) of the mesh to construct the R-Tree for |
| MAX | The maximum number of elements that a node in the R-Tree should hold (default = \(2^D\)) |
| MIN | The minimum number of elements that a node in the R-Tree should hold (default). Note that a node CAN hold less than this if the tree is underfull |
| OVERFLOW | Specifies the number of elements to remove and re-insert when a node overflows, rather than standard splitting ([1]) |
|
inline |
Construct an R-Tree of bounding boxes for the specified mesh.
| mpi | MPI communicator to ensure the tree is identical on all processes. |
| mesh | Specifies the mesh to construct the R-Tree for |
Distribution by MPI to other processes is done as follows:
|
inline |
Extract an agglomeration of the specified mesh from the specified level of the R-Tree.
The generated partition can be passed to FEMesh::Agglomerate(const Container& elements).
The number of elements in generated mesh should be roughly in the range \([MAX^{level-1}, MAX^{level}]\)
| level | The level of the R-Tree to extract: 0 = root (single element), 1 = first level, ..., Levels() = mesh elements (original mesh). |
|
inline |
Gets the number of levels in the R-Tree.