55 #ifndef backgroundMeshDecomposition_H 56 #define backgroundMeshDecomposition_H 103 const Time& runTime_;
140 scalar minCellSizeLimit_;
151 scalar maxCellWeightCoeff_;
156 void initialRefinement();
168 scalar& weightEstimate
180 void buildPatchAndTree();
195 ClassName(
"backgroundMeshDecomposition");
228 template<
class Po
intType>
246 const scalar radiusSqr
266 template<
class Po
intType>
282 bool includeOwnProcessor =
false 288 const scalar& radiusSqr
294 const scalar radiusSqr
bool positionOnThisProcessor(const point &pt) const
Is the given position inside the domain of this decomposition.
PrimitivePatch<::Foam::List< face >, const pointField > bPatch
A class for handling file names.
const fvMesh & mesh() const
Return access to the underlying mesh.
~backgroundMeshDecomposition()=default
Destructor.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
const indexedOctree< treeDataBPatch > & tree() const
Return access to the underlying tree.
ClassName("backgroundMeshDecomposition")
Runtime type information.
This class describes the interaction of an object (often a face) and a point. It carries the info of ...
labelList overlapProcessors(const point ¢re, const scalar radiusSqr) const
An enumeration wrapper for classification of a location as being inside/outside of a volume...
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
static autoPtr< mapDistribute > buildMap(const List< label > &toProc)
Build a mapDistribute for the supplied destination processor data.
treeDataPrimitivePatch< bPatch > treeDataBPatch
A list of faces which address into the list of points.
labelList processorNearestPosition(const List< point > &pts) const
What is the nearest processor to the given position?
bool overlapsOtherProcessors(const point ¢re, const scalar &radiusSqr) const
Refinement of (split) hexes using polyTopoChange.
pointIndexHit findLine(const point &start, const point &end) const
Find nearest intersection of line between start and end, (exposing.
Encapsulation of data needed to search on PrimitivePatches.
List< List< pointIndexHit > > intersectsProcessors(const List< point > &starts, const List< point > &ends, bool includeOwnProcessor=false) const
Which processors are intersected by the line segment, returns all.
const labelList & cellLevel() const
Return the cell level of the underlying mesh.
autoPtr< mapDistribute > distributePoints(List< PointType > &points) const
Distribute supplied the points to the appropriate processor.
Container with cells to refine. Refinement given as single direction.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
constexpr auto end(C &c) -> decltype(c.end())
Return iterator to the end of the container c.
pointIndexHit findLineAny(const point &start, const point &end) const
Find any intersection of line between start and end, (exposing.
labelList processorPosition(const List< PointType > &pts) const
What processor is the given position on?
const labelList & pointLevel() const
Return the point level of the underlying mesh.
Non-pointer based hierarchical recursive searching.
Mesh data needed to do the Finite Volume discretisation.
Standard boundBox with extra functionality for use in octree.
Store a background polyMesh to use for the decomposition of space and queries for parallel conformalV...
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
autoPtr< mapDistributePolyMesh > distribute(volScalarField &cellWeights)
Redistribute the background mesh based on a supplied weight field,.
Mesh consisting of general polyhedral cells.
CGAL data structures used for 3D Delaunay meshing.
const treeBoundBox & procBounds() const
Return the boundBox of this processor.
bool overlapsThisProcessor(const treeBoundBox &box) const
Does the given box overlap the faces of the boundary of this.