FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

Geometric agglomerated algebraic multigrid agglomeration class. More...

#include <OpenFOAM/GAMGAgglomeration.H>


Detailed Description

Geometric agglomerated algebraic multigrid agglomeration class.

Source files

Definition at line 59 of file GAMGAgglomeration.H.

Inheritance diagram for GAMGAgglomeration:
Collaboration diagram for GAMGAgglomeration:

List of all members.

Public Member Functions

 TypeName ("GAMGAgglomeration")
 Runtime type information.
 declareRunTimeSelectionTable (autoPtr, GAMGAgglomeration, lduMesh,(const lduMesh &mesh, const dictionary &controlDict),(mesh, controlDict))
 Runtime selection table for pure geometric agglomerators.
 declareRunTimeSelectionTable (autoPtr, GAMGAgglomeration, lduMatrix,(const lduMatrix &matrix, const dictionary &controlDict),(matrix, controlDict))
 Runtime selection table for matrix or mixed geometric/matrix.
 GAMGAgglomeration (const lduMesh &mesh, const dictionary &controlDict)
 Construct given mesh and controls.
 ~GAMGAgglomeration ()
label  size () const
const lduMesh &  meshLevel (const label leveli) const
 Return LDU mesh of given level.
const lduInterfacePtrsList &  interfaceLevel (const label leveli) const
 Return LDU interface addressing of given level.
const labelField &  restrictAddressing (const label leveli) const
 Return cell restrict addressing of given level.
const labelList &  faceRestrictAddressing (const label leveli) const
 Return face restrict addressing of given level.
template<class Type >
void  restrictField (Field< Type > &cf, const Field< Type > &ff, const label fineLevelIndex) const
 Restrict (integrate by summation) cell field.
template<class Type >
void  restrictFaceField (Field< Type > &cf, const Field< Type > &ff, const label fineLevelIndex) const
 Restrict (integrate by summation) face field.
template<class Type >
void  prolongField (Field< Type > &ff, const Field< Type > &cf, const label coarseLevelIndex) const
 Prolong (interpolate by injection) cell field.

Static Public Member Functions

static const GAMGAgglomeration &  New (const lduMesh &mesh, const dictionary &controlDict)
 Return the selected geometric agglomerator.
static const GAMGAgglomeration &  New (const lduMatrix &matrix, const dictionary &controlDict)
 Return the selected matrix agglomerator.

Protected Member Functions

void  agglomerateLduAddressing (const label fineLevelIndex)
 Assemble coarse mesh addressing.
void  compactLevels (const label nCreatedLevels)
 Shrink the number of levels to that specified.
bool  continueAgglomerating (const label nCoarseCells) const
 Check the need for further agglomeration.
 GAMGAgglomeration (const GAMGAgglomeration &)
 Disallow default bitwise copy construct.
void  operator= (const GAMGAgglomeration &)
 Disallow default bitwise assignment.

Protected Attributes

label  maxLevels_
 Max number of levels.
label  nCellsInCoarsestLevel_
 Number of cells in coarsest level.
labelList  nCells_
 The number of cells in each level.
PtrList< labelField >  restrictAddressing_
 Cell restriction addressing array.
PtrList< labelList >  faceRestrictAddressing_
 Face restriction addressing array.
PtrList< lduPrimitiveMesh >  meshLevels_
 Hierarchy of mesh addressing.
PtrList< lduInterfacePtrsList >  interfaceLevels_
 Hierarchy interfaces.

Constructor & Destructor Documentation

GAMGAgglomeration ( const GAMGAgglomeration &    ) [protected]

Disallow default bitwise copy construct.

GAMGAgglomeration ( const lduMesh &   mesh,
const dictionary &   controlDict  
)

Construct given mesh and controls.

Definition at line 68 of file GAMGAgglomeration.C.

Definition at line 197 of file GAMGAgglomeration.C.

References forAll, and UPtrList< T >::set().


Member Function Documentation

void compactLevels ( const label   nCreatedLevels  ) [protected]
bool continueAgglomerating ( const label   nCoarseCells  ) const [protected]

Check the need for further agglomeration.

Definition at line 54 of file GAMGAgglomeration.C.

References Foam::reduce().

void operator= ( const GAMGAgglomeration &    ) [protected]

Disallow default bitwise assignment.

TypeName ( "GAMGAgglomeration"    )

Runtime type information.

declareRunTimeSelectionTable ( autoPtr   ,
GAMGAgglomeration   ,
lduMesh   ,
(const lduMesh &mesh, const dictionary &controlDict)   ,
(mesh, controlDict)    
)

Runtime selection table for pure geometric agglomerators.

declareRunTimeSelectionTable ( autoPtr   ,
GAMGAgglomeration   ,
lduMatrix   ,
(const lduMatrix &matrix, const dictionary &controlDict)   ,
(matrix, controlDict)    
)

Runtime selection table for matrix or mixed geometric/matrix.

agglomerators

const Foam::GAMGAgglomeration & New ( const lduMesh &   mesh,
const dictionary &   controlDict  
) [static]
const Foam::GAMGAgglomeration & New ( const lduMatrix &   matrix,
const dictionary &   controlDict  
) [static]
label size (  ) const [inline]

Definition at line 192 of file GAMGAgglomeration.H.

References GAMGAgglomeration::meshLevels_, and PtrList< T >::size().

const Foam::lduMesh & meshLevel ( const label   leveli  ) const

Return LDU mesh of given level.

Definition at line 219 of file GAMGAgglomeration.C.

const Foam::lduInterfacePtrsList & interfaceLevel ( const label   leveli  ) const

Return LDU interface addressing of given level.

Definition at line 235 of file GAMGAgglomeration.C.

const labelField& restrictAddressing ( const label   leveli  ) const [inline]

Return cell restrict addressing of given level.

Definition at line 207 of file GAMGAgglomeration.H.

References GAMGAgglomeration::restrictAddressing_.

const labelList& faceRestrictAddressing ( const label   leveli  ) const [inline]

Return face restrict addressing of given level.

Definition at line 213 of file GAMGAgglomeration.H.

References GAMGAgglomeration::faceRestrictAddressing_.

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 GAMGAgglomerationTemplates.C.

References Foam::abort(), Foam::FatalError, FatalErrorIn, forAll, List< T >::size(), and List< Type >::size().

void restrictFaceField ( Field< Type > &   cf,
const Field< Type > &   ff,
const label   fineLevelIndex  
) const

Restrict (integrate by summation) face field.

Definition at line 64 of file GAMGAgglomerationTemplates.C.

References forAll.

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

Prolong (interpolate by injection) cell field.

Definition at line 88 of file GAMGAgglomerationTemplates.C.

References forAll.


Member Data Documentation

label maxLevels_ [protected]

Max number of levels.

Definition at line 68 of file GAMGAgglomeration.H.

label nCellsInCoarsestLevel_ [protected]

Number of cells in coarsest level.

Definition at line 71 of file GAMGAgglomeration.H.

labelList nCells_ [protected]

The number of cells in each level.

Definition at line 74 of file GAMGAgglomeration.H.

Referenced by pairGAMGAgglomeration::combineLevels(), and GAMGAgglomeration::compactLevels().

Cell restriction addressing array.

Maps from the finer to the coarser level.

Definition at line 78 of file GAMGAgglomeration.H.

Referenced by pairGAMGAgglomeration::combineLevels(), GAMGAgglomeration::compactLevels(), and GAMGAgglomeration::restrictAddressing().

Face restriction addressing array.

Maps from the finer to the coarser level. Positive indices map the finer faces which form part of the boundary of the coarser cells to the corresponding coarser cell face. Negative indices map the finer faces which are internal to the coarser cells to minus the corresponding coarser cell index minus 1.

Definition at line 86 of file GAMGAgglomeration.H.

Referenced by pairGAMGAgglomeration::combineLevels(), and GAMGAgglomeration::faceRestrictAddressing().

Hierarchy interfaces.

Warning: Needs to be deleted explicitly.

Definition at line 93 of file GAMGAgglomeration.H.

Referenced by pairGAMGAgglomeration::combineLevels(), and GAMGAgglomeration::compactLevels().


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