35 #ifndef pairPatchAgglomeration_H
36 #define pairPatchAgglomeration_H
102 const label fineLevelIndex
113 void combineLevels(
const label curLevel);
116 void compactLevels(
const label fineLevelIndex);
119 bool continueAgglomerating(
const label fineLevelIndex);
122 void setEdgeWeights(
const label indexLevel);
125 void setBasedEdgeWeights();
128 void mapBaseToTopAgglom(
const label fineLevelIndex);
140 const bool additionalWeights =
false
189 const label fineLevelIndex
198 const label coarseLevelIndex
A list of faces which address into the list of points.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
A list of keyword definitions, which are a keyword followed by any number of values (e....
Primitive patch pair agglomerate method.
void prolongField(Field< Type > &ff, const Field< Type > &cf, const label coarseLevelIndex) const
Prolong (interpolate by injection) cell field.
void restrictField(Field< Type > &cf, const Field< Type > &ff, const label fineLevelIndex) const
Restrict (integrate by summation) cell field.
const bPatch & patchLevel(const label leveli) const
Return primitivePatch of given level.
const labelList & restrictTopBottomAddressing() const
Return restriction from top level to bottom level.
~pairPatchAgglomeration()
PtrList< bPatch > patchLevels_
Hierarchy of patch addressing.
labelList nFaces_
The number of faces in each level.
void operator=(const pairPatchAgglomeration &)=delete
Disallow default bitwise assignment.
void agglomerate()
Agglomerate patch.
pairPatchAgglomeration(const polyPatch &patch, const dictionary &controlDict, const bool additionalWeights=false)
Construct given mesh and controls.
EdgeMap< scalar > facePairWeight_
Edge weights.
label mergeLevels_
Number of levels to merge, 1 = don't merge, 2 = merge pairs etc.
scalar featureAngle_
Feature angle.
label size() const
Return size.
label maxLevels_
Max number of levels.
label nFacesInCoarsestLevel_
Number of faces in coarsest level.
PtrList< labelField > restrictAddressing_
Cell restriction addressing array.
const labelField & restrictAddressing(const label leveli) const
Return cell restrict addressing of given level.
labelList restrictTopBottomAddressing_
Maps from finest to coarsest.
A patch is a list of labels that address the faces in the global face list.
A class for managing temporary objects.
const FieldField< fvPatchField, Type > & ff(const FieldField< fvPatchField, Type > &bf)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
PrimitivePatch< faceList, const pointField > bPatch
runTime controlDict().lookup("adjustTimeStep") >> adjustTimeStep