Primitive patch pair agglomerate method. More...
Public Member Functions | |
pairPatchAgglomeration (const polyPatch &patch, const dictionary &controlDict, const bool additionalWeights=false) | |
Construct given mesh and controls. More... | |
pairPatchAgglomeration (const pairPatchAgglomeration &)=delete | |
Disallow default bitwise copy construction. More... | |
~pairPatchAgglomeration () | |
void | agglomerate () |
Agglomerate patch. More... | |
label | size () const |
Return size. More... | |
const labelList & | restrictTopBottomAddressing () const |
Return restriction from top level to bottom level. More... | |
const bPatch & | patchLevel (const label leveli) const |
Return primitivePatch of given level. More... | |
const labelField & | restrictAddressing (const label leveli) const |
Return cell restrict addressing of given level. More... | |
template<class Type > | |
void | restrictField (Field< Type > &cf, const Field< Type > &ff, const label fineLevelIndex) const |
Restrict (integrate by summation) cell field. More... | |
template<class Type > | |
void | prolongField (Field< Type > &ff, const Field< Type > &cf, const label coarseLevelIndex) const |
Prolong (interpolate by injection) cell field. More... | |
void | operator= (const pairPatchAgglomeration &)=delete |
Disallow default bitwise assignment. More... | |
Protected Attributes | |
label | mergeLevels_ |
Number of levels to merge, 1 = don't merge, 2 = merge pairs etc. More... | |
label | maxLevels_ |
Max number of levels. More... | |
label | nFacesInCoarsestLevel_ |
Number of faces in coarsest level. More... | |
scalar | featureAngle_ |
Feature angle. More... | |
labelList | nFaces_ |
The number of faces in each level. More... | |
PtrList< labelField > | restrictAddressing_ |
Cell restriction addressing array. More... | |
labelList | restrictTopBottomAddressing_ |
Maps from finest to coarsest. More... | |
PtrList< bPatch > | patchLevels_ |
Hierarchy of patch addressing. More... | |
EdgeMap< scalar > | facePairWeight_ |
Edge weights. More... | |
Primitive patch pair agglomerate method.
Definition at line 57 of file pairPatchAgglomeration.H.
pairPatchAgglomeration | ( | const polyPatch & | patch, |
const dictionary & | controlDict, | ||
const bool | additionalWeights = false |
||
) |
Construct given mesh and controls.
Definition at line 190 of file pairPatchAgglomeration.C.
References PrimitivePatch< FaceList, PointField >::localFaces(), PrimitivePatch< FaceList, PointField >::localPoints(), pairPatchAgglomeration::nFaces_, and pairPatchAgglomeration::patchLevels_.
|
delete |
Disallow default bitwise copy construction.
Definition at line 236 of file pairPatchAgglomeration.C.
References pairPatchAgglomeration::patchLevel().
void agglomerate | ( | ) |
Agglomerate patch.
Definition at line 354 of file pairPatchAgglomeration.C.
References Foam::exit(), PrimitivePatch< FaceList, PointField >::faceFaces(), pairPatchAgglomeration::facePairWeight_, Foam::FatalError, FatalErrorInFunction, forAll, pairPatchAgglomeration::maxLevels_, pairPatchAgglomeration::mergeLevels_, pairPatchAgglomeration::nFaces_, pairPatchAgglomeration::patchLevels_, Foam::reduce(), tmp< T >::ref(), and pairPatchAgglomeration::restrictAddressing_.
|
inline |
Return size.
Definition at line 159 of file pairPatchAgglomeration.H.
References UPtrList< T >::size().
|
inline |
Return restriction from top level to bottom level.
Definition at line 165 of file pairPatchAgglomeration.H.
References pairPatchAgglomeration::patchLevel(), and pairPatchAgglomeration::restrictTopBottomAddressing_.
const Foam::bPatch & patchLevel | ( | const label | leveli | ) | const |
Return primitivePatch of given level.
Definition at line 243 of file pairPatchAgglomeration.C.
References Foam::abort(), Foam::e, Foam::endl(), Foam::exit(), pairPatchAgglomeration::facePairWeight_, Foam::FatalError, FatalErrorInFunction, forAll, Foam::invertOneToMany(), Foam::max(), Foam::min(), pairPatchAgglomeration::patchLevels_, PrimitivePatch< FaceList, PointField >::points(), Foam::renumber(), pairPatchAgglomeration::restrictAddressing_, pairPatchAgglomeration::restrictTopBottomAddressing_, and List< T >::size().
Referenced by pairPatchAgglomeration::restrictTopBottomAddressing(), and pairPatchAgglomeration::~pairPatchAgglomeration().
|
inline |
Return cell restrict addressing of given level.
Definition at line 174 of file pairPatchAgglomeration.H.
References Foam::fv::ff(), pairPatchAgglomeration::operator=(), pairPatchAgglomeration::prolongField(), and pairPatchAgglomeration::restrictField().
void restrictField | ( | Field< Type > & | cf, |
const Field< Type > & | ff, | ||
const label | fineLevelIndex | ||
) | const |
Restrict (integrate by summation) cell field.
Definition at line 32 of file pairPatchAgglomerationTemplates.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, forAll, pairPatchAgglomeration::prolongField(), List< Type >::size(), List< T >::size(), and Foam::Zero.
Referenced by pairPatchAgglomeration::restrictAddressing().
void prolongField | ( | Field< Type > & | ff, |
const Field< Type > & | cf, | ||
const label | coarseLevelIndex | ||
) | const |
Prolong (interpolate by injection) cell field.
Definition at line 60 of file pairPatchAgglomerationTemplates.C.
References forAll.
Referenced by pairPatchAgglomeration::restrictAddressing(), and pairPatchAgglomeration::restrictField().
|
delete |
Disallow default bitwise assignment.
Referenced by pairPatchAgglomeration::restrictAddressing().
|
protected |
Number of levels to merge, 1 = don't merge, 2 = merge pairs etc.
Definition at line 64 of file pairPatchAgglomeration.H.
Referenced by pairPatchAgglomeration::agglomerate().
|
protected |
Max number of levels.
Definition at line 67 of file pairPatchAgglomeration.H.
Referenced by pairPatchAgglomeration::agglomerate().
|
protected |
Number of faces in coarsest level.
Definition at line 70 of file pairPatchAgglomeration.H.
|
protected |
Feature angle.
Definition at line 73 of file pairPatchAgglomeration.H.
|
protected |
The number of faces in each level.
Definition at line 76 of file pairPatchAgglomeration.H.
Referenced by pairPatchAgglomeration::agglomerate(), and pairPatchAgglomeration::pairPatchAgglomeration().
|
protected |
Cell restriction addressing array.
Maps from the finer to coarse level
Definition at line 80 of file pairPatchAgglomeration.H.
Referenced by pairPatchAgglomeration::agglomerate(), and pairPatchAgglomeration::patchLevel().
|
protected |
Maps from finest to coarsest.
Definition at line 83 of file pairPatchAgglomeration.H.
Referenced by pairPatchAgglomeration::patchLevel(), and pairPatchAgglomeration::restrictTopBottomAddressing().
Hierarchy of patch addressing.
Definition at line 86 of file pairPatchAgglomeration.H.
Referenced by pairPatchAgglomeration::agglomerate(), pairPatchAgglomeration::pairPatchAgglomeration(), and pairPatchAgglomeration::patchLevel().
|
protected |
Edge weights.
Definition at line 89 of file pairPatchAgglomeration.H.
Referenced by pairPatchAgglomeration::agglomerate(), and pairPatchAgglomeration::patchLevel().