38#ifndef DistributedDelaunayMesh_H
39#define DistributedDelaunayMesh_H
45#include "indexedVertex.H"
58template<
class Triangulation>
84 bool distributeBoundBoxes(
const boundBox& bb);
89 bool isLocal(
const label localProcIndex)
const;
94 const scalar radiusSqr
97 bool checkProcBoundaryCell
103 void findProcessorBoundaryCells
108 void markVerticesToRefer
183 bool iterateReferral =
true
189 template<
class Po
intIterator>
194 bool printErrors =
true
The vertex and cell classes must have an index defined.
Triangulation::Finite_vertices_iterator Finite_vertices_iterator
Triangulation::Finite_cells_iterator Finite_cells_iterator
void timeCheck(const string &description, const bool check=true) const
Write the cpuTime to screen.
DistributedDelaunayMesh(const Time &runTime)
Construct from components.
bool distribute(const boundBox &bb)
Triangulation::Vertex_handle Vertex_handle
Triangulation::Finite_vertices_iterator Finite_vertices_iterator
DistributedDelaunayMesh(const Time &runTime, const word &meshName)
Triangulation::All_cells_iterator All_cells_iterator
scalar calculateLoadUnbalance() const
static autoPtr< mapDistribute > buildMap(const List< label > &toProc)
Build a mapDistribute for the supplied destination processor data.
Triangulation::Cell_handle Cell_handle
labelPairHashSet rangeInsertReferredWithInfo(PointIterator begin, PointIterator end, bool printErrors=true)
Inserts points into the triangulation if the point is within.
Triangulation::Finite_cells_iterator Finite_cells_iterator
~DistributedDelaunayMesh()=default
Destructor.
void sync(const boundBox &bb)
Refer vertices so that the processor interfaces are consistent.
autoPtr< mapDistribute > distribute(const backgroundMeshDecomposition &decomposition, List< Foam::point > &points)
void sync(const boundBox &bb, PtrList< labelPairHashSet > &referralVertices, labelPairHashSet &receivedVertices, bool iterateReferral=true)
Refer vertices so that the processor interfaces are consistent.
Triangulation::Point Point
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
A HashTable with keys but without contents that is similar to std::unordered_set.
A HashTable to objects of type <T> with a label key.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Store a background polyMesh to use for the decomposition of space and queries for parallel conformalV...
A bounding box defined in terms of min/max extrema points.
CellSizeDelaunay::Cell_handle Cell_handle
CellSizeDelaunay::Vertex_handle Vertex_handle
CellSizeDelaunay::Point Point
A class for handling words, derived from Foam::string.