Go to the documentation of this file.
35 #ifndef pairPatchAgglomeration_H
36 #define pairPatchAgglomeration_H
40 #include "indirectPrimitivePatch.H"
102 const label fineLevelIndex
146 const bool additionalWeights =
false
192 const label fineLevelIndex
201 const label coarseLevelIndex
pairPatchAgglomeration(const pairPatchAgglomeration &)
Disallow default bitwise copy construct.
void operator=(const pairPatchAgglomeration &)
Disallow default bitwise assignment.
A class for managing temporary objects.
label mergeLevels_
Number of levels to merge, 1 = don't merge, 2 = merge pairs etc.
Primitive patch pair agglomerate method.
labelList nFaces_
The number of faces in each level.
scalar featureAngle_
Feature angle.
bool continueAgglomerating(const label fineLevelIndex)
Check the need for further agglomeration.
labelList restrictTopBottomAddressing_
Maps from finest to coarsest.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const labelList & restrictTopBottomAddressing() const
Return restriction from top level to bottom level.
Pre-declare SubField and related Field type.
runTime controlDict().lookup("adjustTimeStep") >> adjustTimeStep
EdgeMap< scalar > facePairWeight_
Edge weights.
A patch is a list of labels that address the faces in the global face list.
label size() const
Return size.
tmp< labelField > agglomerateOneLevel(label &nCoarseCells, const bPatch &patchLevel)
Agglomerate one level.
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....
~pairPatchAgglomeration()
label maxLevels_
Max number of levels.
PtrList< labelField > restrictAddressing_
Cell restriction addressing array.
void restrictField(Field< Type > &cf, const Field< Type > &ff, const label fineLevelIndex) const
Restrict (integrate by summation) cell field.
void mapBaseToTopAgglom(const label fineLevelIndex)
Maps current level with base patch.
PtrList< bPatch > patchLevels_
Hierarchy of patch addressing.
bool agglomeratePatch(const bPatch &patch, const labelList &fineToCoarse, const label fineLevelIndex)
Assemble coarse patch.
const FieldField< fvPatchField, Type > & ff(const FieldField< fvPatchField, Type > &bf)
void agglomerate()
Agglomerate patch.
void compactLevels(const label fineLevelIndex)
Shrink the number of levels to that specified.
PrimitivePatch< face, List, const pointField > bPatch
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
void setEdgeWeights(const label indexLevel)
Set edge weights.
void setBasedEdgeWeights()
Set base patch edge weights.
void prolongField(Field< Type > &ff, const Field< Type > &cf, const label coarseLevelIndex) const
Prolong (interpolate by injection) cell field.
label nFacesInCoarsestLevel_
Number of faces in coarsest level.
void combineLevels(const label curLevel)
Combine leves.
const bPatch & patchLevel(const label leveli) const
Return primitivePatch of given level.
A list of faces which address into the list of points.
const labelField & restrictAddressing(const label leveli) const
Return cell restrict addressing of given level.