Public Member Functions | Protected Attributes | List of all members
pairPatchAgglomeration Class Reference

Primitive patch pair agglomerate method. More...

Collaboration diagram for pairPatchAgglomeration:
Collaboration graph
[legend]

Public Member Functions

 pairPatchAgglomeration (const polyPatch &patch, const dictionary &controlDict, const bool additionalWeights=false)
 Construct given mesh and controls. More...
 
 ~pairPatchAgglomeration ()
 
void agglomerate ()
 Agglomerate patch. More...
 
label size () const
 Return size. More...
 
const labelListrestrictTopBottomAddressing () const
 Return restriction from top level to bottom level. More...
 
const bPatchpatchLevel (const label leveli) const
 Return primitivePatch of given level. More...
 
const labelFieldrestrictAddressing (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...
 

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< labelFieldrestrictAddressing_
 Cell restriction addressing array. More...
 
labelList restrictTopBottomAddressing_
 Maps from finest to coarsest. More...
 
PtrList< bPatchpatchLevels_
 Hierarchy of patch addressing. More...
 
EdgeMap< scalar > facePairWeight_
 Edge weights. More...
 

Detailed Description

Primitive patch pair agglomerate method.

Source files

Definition at line 57 of file pairPatchAgglomeration.H.

Constructor & Destructor Documentation

pairPatchAgglomeration ( const polyPatch patch,
const dictionary controlDict,
const bool  additionalWeights = false 
)

Definition at line 236 of file pairPatchAgglomeration.C.

References pairPatchAgglomeration::patchLevel().

Here is the call graph for this function:

Member Function Documentation

void agglomerate ( )
label size ( ) const
inline

Return size.

Definition at line 162 of file pairPatchAgglomeration.H.

References PtrList< T >::size().

Here is the call graph for this function:

const labelList& restrictTopBottomAddressing ( ) const
inline

Return restriction from top level to bottom level.

Definition at line 168 of file pairPatchAgglomeration.H.

References pairPatchAgglomeration::patchLevel(), and pairPatchAgglomeration::restrictTopBottomAddressing_.

Here is the call graph for this function:

const Foam::bPatch & patchLevel ( const label  leveli) const
const labelField& restrictAddressing ( const label  leveli) const
inline

Return cell restrict addressing of given level.

Definition at line 177 of file pairPatchAgglomeration.H.

References Foam::fv::ff(), pairPatchAgglomeration::prolongField(), and pairPatchAgglomeration::restrictField().

Here is the call graph for this function:

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, FatalErrorIn, forAll, pairPatchAgglomeration::prolongField(), List< Type >::size(), and List< T >::size().

Referenced by pairPatchAgglomeration::restrictAddressing().

Here is the call graph for this function:

Here is the caller graph for this function:

void prolongField ( Field< Type > &  ff,
const Field< Type > &  cf,
const label  coarseLevelIndex 
) const

Prolong (interpolate by injection) cell field.

Definition at line 64 of file pairPatchAgglomerationTemplates.C.

References forAll.

Referenced by pairPatchAgglomeration::restrictAddressing(), and pairPatchAgglomeration::restrictField().

Here is the caller graph for this function:

Member Data Documentation

label mergeLevels_
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().

label maxLevels_
protected

Max number of levels.

Definition at line 67 of file pairPatchAgglomeration.H.

Referenced by pairPatchAgglomeration::agglomerate().

label nFacesInCoarsestLevel_
protected

Number of faces in coarsest level.

Definition at line 70 of file pairPatchAgglomeration.H.

scalar featureAngle_
protected

Feature angle.

Definition at line 73 of file pairPatchAgglomeration.H.

labelList nFaces_
protected

The number of faces in each level.

Definition at line 76 of file pairPatchAgglomeration.H.

Referenced by pairPatchAgglomeration::agglomerate(), and pairPatchAgglomeration::pairPatchAgglomeration().

PtrList<labelField> restrictAddressing_
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().

labelList restrictTopBottomAddressing_
protected

Maps from finest to coarsest.

Definition at line 83 of file pairPatchAgglomeration.H.

Referenced by pairPatchAgglomeration::patchLevel(), and pairPatchAgglomeration::restrictTopBottomAddressing().

PtrList<bPatch> patchLevels_
protected
EdgeMap<scalar> facePairWeight_
protected

Edge weights.

Definition at line 89 of file pairPatchAgglomeration.H.

Referenced by pairPatchAgglomeration::agglomerate(), and pairPatchAgglomeration::patchLevel().


The documentation for this class was generated from the following files: