65#ifndef Foam_hierarchGeomDecomp_H
66#define Foam_hierarchGeomDecomp_H
85 static label findLower
87 const UList<scalar>& list,
94 static void calculateSortedWeightedSizes
99 const label globalCurrentSize,
109 static bool findBinary
113 const label leftIndex,
114 const scalar leftValue,
116 const scalar wantedSize,
124 static bool findBinary
129 const label leftIndex,
130 const scalar leftValue,
132 const scalar wantedSize,
145 const label prevMult,
159 const label prevMult,
A packed storage of objects of type <T> using an offset table for access.
static const Field< scalar > & null() noexcept
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Templated 3D Vector derived from VectorSpace adding construction from 3 components,...
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Base for geometrical domain decomposition methods.
geomDecomp(const Vector< label > &divisions)
Construct with number of x/y/z division (no coefficients or constraints).
void checkDecompositionDirections(const Vector< label > &) const
Check that mesh directions are compatible with decomposition.
Does hierarchical decomposition of points, selectable as hierarchical.
hierarchGeomDecomp(const hierarchGeomDecomp &)=delete
No copy construct.
virtual bool parallelAware() const
Hierarchical is aware of processor boundaries.
virtual labelList decompose(const labelListList &globalCellCells, const pointField &cc, const scalarField &cWeights=scalarField::null()) const
Return for every coordinate the wanted processor number.
virtual labelList decompose(const pointField &points, const scalarField &weights=scalarField::null()) const
Return for every coordinate the wanted processor number. using uniform or specified point weights.
TypeName("hierarchical")
Runtime type information.
virtual labelList decompose(const polyMesh &mesh, const pointField &cc, const scalarField &cWeights=scalarField::null()) const
Return for every coordinate the wanted processor number.
virtual labelList decompose(const CompactListList< label > &globalCellCells, const pointField &cc, const scalarField &cWeights=scalarField::null()) const
Explicitly provided connectivity.
virtual ~hierarchGeomDecomp()=default
Destructor.
void operator=(const hierarchGeomDecomp &)=delete
No copy assignment.
Mesh consisting of general polyhedral cells.
A class for handling words, derived from Foam::string.
Foam::word regionName(args.getOrDefault< word >("region", Foam::polyMesh::defaultRegion))
List< labelList > labelListList
List of labelList.
List< label > labelList
A List of labels.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
vectorField pointField
pointField is a vectorField.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.