Geometric agglomerated algebraic multigrid agglomeration class. More...
#include <OpenFOAM/GAMGAgglomeration.H>
Geometric agglomerated algebraic multigrid agglomeration class.
Definition at line 59 of file GAMGAgglomeration.H.
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.
|
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.
~GAMGAgglomeration | ( | ) |
Definition at line 197 of file GAMGAgglomeration.C.
References forAll, and UPtrList< T >::set().
void agglomerateLduAddressing | ( | const label | fineLevelIndex ) | [protected]
|
Assemble coarse mesh addressing.
Definition at line 32 of file GAMGAgglomerateLduAddressing.C.
References Foam::abort(), Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, forAll, forAllReverse, lduMesh::lduAddr(), lduAddressing::lowerAddr(), Foam::min(), lduAddressing::patchSchedule(), UPtrList< T >::set(), List< T >::setSize(), UPtrList< T >::size(), lduAddressing::size(), List< T >::size(), UList< T >::size(), and lduAddressing::upperAddr().
void compactLevels | ( | const label | nCreatedLevels ) | [protected]
|
Shrink the number of levels to that specified.
Definition at line 44 of file GAMGAgglomeration.C.
References GAMGAgglomeration::interfaceLevels_, GAMGAgglomeration::meshLevels_, GAMGAgglomeration::nCells_, GAMGAgglomeration::restrictAddressing_, PtrList< T >::setSize(), and List< T >::setSize().
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]
|
Return the selected geometric agglomerator.
Definition at line 92 of file GAMGAgglomeration.C.
References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, objectRegistry::foundObject(), dictionary::lookup(), objectRegistry::lookupObject(), dlLibraryTable::open(), and lduMesh::thisDb().
const Foam::GAMGAgglomeration & New | ( | const lduMatrix & | matrix, |
const dictionary & | controlDict | ||
) | [static]
|
Return the selected matrix agglomerator.
Definition at line 145 of file GAMGAgglomeration.C.
References objectRegistry::foundObject(), dictionary::lookup(), objectRegistry::lookupObject(), lduMatrix::mesh(), dlLibraryTable::open(), and lduMesh::thisDb().
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.
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.
The number of cells in each level.
Definition at line 74 of file GAMGAgglomeration.H.
Referenced by pairGAMGAgglomeration::combineLevels(), and GAMGAgglomeration::compactLevels().
PtrList<labelField> restrictAddressing_ [protected]
|
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().
PtrList<labelList> faceRestrictAddressing_ [protected]
|
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().
PtrList<lduPrimitiveMesh> meshLevels_ [protected]
|
Hierarchy of mesh addressing.
Definition at line 89 of file GAMGAgglomeration.H.
Referenced by pairGAMGAgglomeration::combineLevels(), GAMGAgglomeration::compactLevels(), and GAMGAgglomeration::size().
PtrList<lduInterfacePtrsList> interfaceLevels_ [protected]
|
Hierarchy interfaces.
Warning: Needs to be deleted explicitly.
Definition at line 93 of file GAMGAgglomeration.H.
Referenced by pairGAMGAgglomeration::combineLevels(), and GAMGAgglomeration::compactLevels().