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. | |
![]() | |
MeshObject (const lduMesh &mesh) | |
virtual | ~MeshObject () |
const lduMesh & | mesh () const |
virtual bool | writeData (Foam::Ostream &) const |
Pure virtual writaData function. | |
![]() | |
TypeName ("regIOobject") | |
Runtime type information. | |
regIOobject (const IOobject &, const bool isTime=false) | |
Construct from IOobject. Optional flag for if IOobject is the. | |
regIOobject (const regIOobject &) | |
Construct as copy. | |
regIOobject (const regIOobject &, bool registerCopy) | |
Construct as copy, and transferring registry registration to copy. | |
virtual | ~regIOobject () |
bool | checkIn () |
Add object to registry. | |
bool | checkOut () |
Remove object from registry. | |
bool | ownedByRegistry () const |
Is this object owned by the registry? | |
void | store () |
Transfer ownership of this object to its registry. | |
void | release () |
Release ownership of this object from its registry. | |
label | eventNo () const |
Event number at last update. | |
label & | eventNo () |
Event number at last update. | |
bool | upToDate (const word &) const |
Am I uptodate with respect to other regIOobjects. | |
bool | upToDate (const word &, const word &) const |
bool | upToDate (const word &, const word &, const word &) const |
bool | upToDate (const word &, const word &, const word &, const word &) const |
void | setUpToDate () |
Flag me as up to date. | |
virtual void | rename (const word &newName) |
Rename. | |
Istream & | readStream (const word &) |
Return Istream and check object type against that given. | |
void | close () |
Close Istream. | |
virtual bool | readData (Istream &) |
Virtual readData function. | |
virtual bool | read () |
Read object. | |
virtual bool | modified () const |
Return true if the object's file has been modified. | |
virtual bool | readIfModified () |
Read object if modified. | |
virtual bool | writeObject (IOstream::streamFormat, IOstream::versionNumber, IOstream::compressionType) const |
Write using given format, version and compression. | |
virtual bool | write () const |
Write using setting from DB. | |
void | operator= (const IOobject &) |
![]() | |
TypeName ("IOobject") | |
Runtime type information. | |
IOobject (const word &name, const fileName &instance, const objectRegistry ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true) | |
Construct from name, instance, registry, io options. | |
IOobject (const word &name, const fileName &instance, const fileName &local, const objectRegistry ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true) | |
Construct from name, instance, local, registry, io options. | |
IOobject (const fileName &path, const objectRegistry ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true) | |
Construct from path, registry, io options. | |
Foam::autoPtr< IOobject > | clone () const |
Clone. | |
virtual | ~IOobject () |
const Time & | time () const |
Return time. | |
const objectRegistry & | db () const |
Return the local objectRegistry. | |
const word & | name () const |
Return name. | |
const word & | headerClassName () const |
Return name of the class name read from header. | |
string & | note () |
Return non-constant access to the optional note. | |
const string & | note () const |
Return the optional note. | |
bool | registerObject () const |
Register object created from this IOobject with registry if true. | |
readOption | readOpt () const |
readOption & | readOpt () |
writeOption | writeOpt () const |
writeOption & | writeOpt () |
const fileName & | rootPath () const |
const fileName & | caseName () const |
const fileName & | instance () const |
fileName & | instance () |
const fileName & | local () const |
fileName | path () const |
Return complete path. | |
fileName | path (const word &instance, const fileName &local="") const |
Return complete path with alternative instance and local. | |
fileName | objectPath () const |
Return complete path + object name. | |
fileName | filePath () const |
Return complete path + object name if the file exists. | |
bool | readHeader (Istream &) |
Read header. | |
bool | headerOk () |
Read and check header info. | |
bool | writeHeader (Ostream &) const |
Write header. | |
bool | good () const |
bool | bad () const |
InfoProxy< IOobject > | info () const |
Return info proxy. |
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. | |
![]() | |
static const GAMGAgglomeration & | New (const lduMesh &mesh) |
static const GAMGAgglomeration & | New (const lduMesh &mesh, const Data1 &d) |
static const GAMGAgglomeration & | New (const lduMesh &mesh, const Data1 &, const Data2 &) |
static const GAMGAgglomeration & | New (const lduMesh &mesh, const Data1 &, const Data2 &, const Data3 &) |
static const GAMGAgglomeration & | New (const lduMesh &mesh, const Data1 &, const Data2 &, const Data3 &, const Data4 &) |
static bool | Delete (const lduMesh &mesh) |
![]() | |
template<class Type > | |
static Type & | store (Type *) |
Transfer ownership of the given object pointer to its registry. | |
template<class Type > | |
static Type & | store (autoPtr< Type > &) |
Transfer ownership of the given object pointer to its registry. | |
![]() | |
static bool | fileNameComponents (const fileName &path, fileName &instance, fileName &local, word &name) |
Split path into instance, local, name components. | |
template<class Stream > | |
static Stream & | writeBanner (Stream &os, bool noHint=false) |
Write the standard OpenFOAM file/dictionary banner. | |
template<class Stream > | |
static Stream & | writeDivider (Stream &os) |
Write the standard file section divider. | |
template<class Stream > | |
static Stream & | writeEndDivider (Stream &os) |
Write the standard end file divider. |
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. | |
![]() | |
const lduMesh & | mesh_ |
|
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().
|
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(), List< T >::size(), UPtrList< T >::size(), lduAddressing::size(), UList< T >::size(), and lduAddressing::upperAddr().
|
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().
|
protected |
Check the need for further agglomeration.
Definition at line 54 of file GAMGAgglomeration.C.
References Foam::reduce().
|
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
|
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().
|
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().
|
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.
|
inline |
Return cell restrict addressing of given level.
Definition at line 207 of file GAMGAgglomeration.H.
References GAMGAgglomeration::restrictAddressing_.
|
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.
|
protected |
Max number of levels.
Definition at line 68 of file GAMGAgglomeration.H.
|
protected |
Number of cells in coarsest level.
Definition at line 71 of file GAMGAgglomeration.H.
|
protected |
The number of cells in each level.
Definition at line 74 of file GAMGAgglomeration.H.
Referenced by pairGAMGAgglomeration::combineLevels(), and GAMGAgglomeration::compactLevels().
|
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().
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().
|
protected |
Hierarchy of mesh addressing.
Definition at line 89 of file GAMGAgglomeration.H.
Referenced by pairGAMGAgglomeration::combineLevels(), GAMGAgglomeration::compactLevels(), and GAMGAgglomeration::size().
|
protected |
Hierarchy interfaces.
Warning: Needs to be deleted explicitly.
Definition at line 93 of file GAMGAgglomeration.H.
Referenced by pairGAMGAgglomeration::combineLevels(), and GAMGAgglomeration::compactLevels().