55#ifndef backgroundMeshDecomposition_H
56#define backgroundMeshDecomposition_H
93class backgroundMeshDecomposition
101 const Time& runTime_;
138 scalar minCellSizeLimit_;
149 scalar maxCellWeightCoeff_;
154 void initialRefinement();
166 scalar& weightEstimate
178 void buildPatchAndTree();
181 backgroundMeshDecomposition
183 const backgroundMeshDecomposition&
187 void operator=(
const backgroundMeshDecomposition&) =
delete;
193 ClassName(
"backgroundMeshDecomposition");
199 backgroundMeshDecomposition
226 template<
class Po
intType>
244 const scalar radiusSqr
264 template<
class Po
intType>
280 bool includeOwnProcessor =
false
286 const scalar& radiusSqr
292 const scalar radiusSqr
CGAL data structures used for 3D Delaunay meshing.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
A list of faces which address into the list of points.
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.
bool overlapsThisProcessor(const point ¢re, const scalar radiusSqr) const
Does the given sphere overlap the faces of the boundary of this.
ClassName("backgroundMeshDecomposition")
Runtime type information.
backgroundMeshDecomposition(const Time &runTime, Random &rndGen, const conformationSurfaces &geometryToConformTo, const dictionary &coeffsDict, const fileName &decompDictFile="")
Construct from components in foamyHexMesh operation.
labelList processorNearestPosition(const List< point > &pts) const
What is the nearest processor to the given position?
pointIndexHit findLineAny(const point &start, const point &end) const
Find any intersection of line between start and end, (exposing.
bool overlapsThisProcessor(const treeBoundBox &box) const
Does the given box overlap the faces of the boundary of this.
bool positionOnThisProcessor(const point &pt) const
Is the given position inside the domain of this decomposition.
const treeBoundBox & procBounds() const
Return the boundBox of this processor.
labelList processorPosition(const List< PointType > &pts) const
What processor is the given position on?
autoPtr< mapDistributePolyMesh > distribute(volScalarField &cellWeights)
Redistribute the background mesh based on a supplied weight field,.
boolList positionOnThisProcessor(const List< point > &pts) const
Are the given positions inside the domain of this decomposition.
autoPtr< mapDistribute > distributePoints(List< PointType > &points) const
Distribute supplied the points to the appropriate processor.
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.
~backgroundMeshDecomposition()=default
Destructor.
static autoPtr< mapDistribute > buildMap(const labelUList &toProc)
Build a mapDistribute for the supplied destination processor data.
const labelList & cellLevel() const
Return the cell level of the underlying mesh.
const fvMesh & mesh() const
Return access to the underlying mesh.
const indexedOctree< treeDataBPatch > & tree() const
Return access to the underlying tree.
const labelList & pointLevel() const
Return the point level of the underlying mesh.
pointIndexHit findLine(const point &start, const point &end) const
Find nearest intersection of line between start and end, (exposing.
bool overlapsOtherProcessors(const point ¢re, const scalar &radiusSqr) const
labelList overlapProcessors(const point ¢re, const scalar radiusSqr) const
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A class for handling file names.
Mesh data needed to do the Finite Volume discretisation.
Refinement of (split) hexes using polyTopoChange.
Non-pointer based hierarchical recursive searching.
Mesh consisting of general polyhedral cells.
Standard boundBox with extra functionality for use in octree.
Encapsulation of data needed to search on PrimitivePatches.
An enumeration wrapper for classification of a location as being inside/outside of a volume.
#define ClassName(TypeNameString)
Add typeName information from argument TypeNameString to a class.
List< label > labelList
A List of labels.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
List< treeBoundBox > treeBoundBoxList
A List of treeBoundBox.
treeDataPrimitivePatch< bPatch > treeDataBPatch
vector point
Point is a vector.
List< bool > boolList
A List of bools.
PrimitivePatch<::Foam::List< face >, const pointField > bPatch
vectorField pointField
pointField is a vectorField.
PointIndexHit< point > pointIndexHit
A PointIndexHit with a 3D point.
UList< label > labelUList
A UList of labels.