Agglomerate using the pair algorithm. More...
Public Member Functions | |
TypeName ("assembledFaceAreaPair") | |
Runtime type information. More... | |
~assemblyFaceAreaPairGAMGAgglomeration () | |
Destructor. More... | |
assemblyFaceAreaPairGAMGAgglomeration (const lduMatrix &matrix, const dictionary &controlDict) | |
Construct given mesh and controls. More... | |
assemblyFaceAreaPairGAMGAgglomeration (const lduMatrix &matrix, const scalarField &cellVolumes, const vectorField &faceAreas, const dictionary &controlDict) | |
Construct given mesh and controls. More... | |
Public Member Functions inherited from pairGAMGAgglomeration | |
TypeName ("pair") | |
Runtime type information. More... | |
pairGAMGAgglomeration (const lduMesh &mesh, const dictionary &controlDict) | |
Construct given mesh and controls. More... | |
Public Member Functions inherited from GAMGAgglomeration | |
TypeName ("GAMGAgglomeration") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, GAMGAgglomeration, lduMesh,(const lduMesh &mesh, const dictionary &controlDict),(mesh, controlDict)) | |
Runtime selection table for pure geometric agglomerators. More... | |
declareRunTimeSelectionTable (autoPtr, GAMGAgglomeration, lduMatrix,(const lduMatrix &matrix, const dictionary &controlDict),(matrix, controlDict)) | |
declareRunTimeSelectionTable (autoPtr, GAMGAgglomeration, geometry,(const lduMesh &mesh, const scalarField &cellVolumes, const vectorField &faceAreas, const dictionary &controlDict),(mesh, cellVolumes, faceAreas, controlDict)) | |
GAMGAgglomeration (const lduMesh &mesh, const dictionary &controlDict) | |
Construct given mesh and controls. More... | |
~GAMGAgglomeration () | |
Destructor. More... | |
label | size () const |
const lduMesh & | meshLevel (const label leveli) const |
Return LDU mesh of given level. More... | |
bool | hasMeshLevel (const label leveli) const |
Do we have mesh for given level? More... | |
const lduInterfacePtrsList & | interfaceLevel (const label leveli) const |
Return LDU interface addressing of given level. More... | |
const labelField & | restrictAddressing (const label leveli) const |
Return cell restrict addressing of given level. More... | |
const labelList & | faceRestrictAddressing (const label leveli) const |
Return face restrict addressing of given level. More... | |
const labelListList & | patchFaceRestrictAddressing (const label leveli) const |
const boolList & | faceFlipMap (const label leveli) const |
Return face flip map of given level. More... | |
label | nCells (const label leveli) const |
Return number of coarse cells (before processor agglomeration) More... | |
label | nFaces (const label leveli) const |
Return number of coarse faces (before processor agglomeration) More... | |
const labelList & | nPatchFaces (const label leveli) const |
template<class Type > | |
void | restrictField (Field< Type > &cf, const Field< Type > &ff, const label fineLevelIndex, const bool procAgglom) const |
Restrict (integrate by summation) cell field. More... | |
template<class Type > | |
void | restrictFaceField (Field< Type > &cf, const Field< Type > &ff, const label fineLevelIndex) const |
Restrict (integrate by summation) face field. More... | |
template<class Type > | |
void | restrictField (Field< Type > &cf, const Field< Type > &ff, const labelList &fineToCoarse) const |
Restrict (integrate by summation) cell field. More... | |
template<class Type > | |
void | prolongField (Field< Type > &ff, const Field< Type > &cf, const label coarseLevelIndex, const bool procAgglom) const |
Prolong (interpolate by injection) cell field. More... | |
bool | processorAgglomerate () const |
Whether to agglomerate across processors. More... | |
const labelList & | procAgglomMap (const label fineLeveli) const |
const labelList & | agglomProcIDs (const label fineLeveli) const |
bool | hasProcMesh (const label fineLeveli) const |
Check that level has combined mesh. More... | |
label | procCommunicator (const label fineLeveli) const |
Communicator for current level or -1. More... | |
const labelList & | cellOffsets (const label fineLeveli) const |
Mapping from processor to procMesh cells. More... | |
const labelListList & | faceMap (const label fineLeveli) const |
Mapping from processor to procMesh face. More... | |
const labelListList & | boundaryMap (const label fineLeveli) const |
Mapping from processor to procMesh boundary. More... | |
const labelListListList & | boundaryFaceMap (const label fineLeveli) const |
Mapping from processor to procMesh boundary face. More... | |
Public Member Functions inherited from MeshObject< lduMesh, GeometricMeshObject, GAMGAgglomeration > | |
MeshObject (const lduMesh &mesh) | |
Construct on Mesh type. More... | |
virtual | ~MeshObject ()=default |
Destructor. More... | |
const lduMesh & | mesh () const |
virtual bool | writeData (Ostream &os) const |
Additional Inherited Members | |
Static Public Member Functions inherited from pairGAMGAgglomeration | |
static tmp< labelField > | agglomerate (label &nCoarseCells, const lduAddressing &fineMatrixAddressing, const scalarField &faceWeights) |
Calculate and return agglomeration. More... | |
Static Public Member Functions inherited from GAMGAgglomeration | |
static const GAMGAgglomeration & | New (const lduMesh &mesh, const dictionary &controlDict) |
Return the selected geometric agglomerator. More... | |
static const GAMGAgglomeration & | New (const lduMatrix &matrix, const dictionary &controlDict) |
Return the selected matrix agglomerator. More... | |
static const GAMGAgglomeration & | New (const lduMesh &mesh, const scalarField &cellVolumes, const vectorField &faceAreas, const dictionary &controlDict) |
Return the selected geometric agglomerator. More... | |
static void | calculateRegionMaster (const label comm, const labelList &procAgglomMap, labelList &masterProcs, List< label > &agglomProcIDs) |
Given fine to coarse processor map determine: More... | |
static bool | checkRestriction (labelList &newRestrict, label &nNewCoarse, const lduAddressing &fineAddressing, const labelUList &restriction, const label nCoarse) |
Given restriction determines if coarse cells are connected. More... | |
Static Public Member Functions inherited from MeshObject< lduMesh, GeometricMeshObject, GAMGAgglomeration > | |
static const GAMGAgglomeration & | New (const lduMesh &mesh, Args &&... args) |
Get existing or create a new MeshObject. More... | |
static bool | Delete (const lduMesh &mesh) |
Static destructor. More... | |
Protected Member Functions inherited from pairGAMGAgglomeration | |
void | agglomerate (const lduMesh &mesh, const scalarField &faceWeights) |
Agglomerate all levels starting from the given face weights. More... | |
pairGAMGAgglomeration (const pairGAMGAgglomeration &)=delete | |
No copy construct. More... | |
void | operator= (const pairGAMGAgglomeration &)=delete |
No copy assignment. More... | |
Protected Member Functions inherited from GAMGAgglomeration | |
void | agglomerateLduAddressing (const label fineLevelIndex) |
Assemble coarse mesh addressing. More... | |
void | combineLevels (const label curLevel) |
Combine a level with the previous one. More... | |
void | compactLevels (const label nCreatedLevels) |
Shrink the number of levels to that specified. More... | |
bool | continueAgglomerating (const label nCells, const label nCoarseCells) const |
Check the need for further agglomeration. More... | |
void | clearLevel (const label leveli) |
void | procAgglomerateLduAddressing (const label comm, const labelList &procAgglomMap, const labelList &procIDs, const label allMeshComm, const label levelIndex) |
Collect and combine processor meshes into allMesh: More... | |
void | procAgglomerateRestrictAddressing (const label comm, const labelList &procIDs, const label levelIndex) |
Collect and combine basic restriction addressing: More... | |
GAMGAgglomeration (const GAMGAgglomeration &)=delete | |
No copy construct. More... | |
void | operator= (const GAMGAgglomeration &)=delete |
No copy assignment. More... | |
Protected Attributes inherited from GAMGAgglomeration | |
const label | maxLevels_ |
Max number of levels. More... | |
label | nCellsInCoarsestLevel_ |
Number of cells in coarsest level. More... | |
const lduInterfacePtrsList | meshInterfaces_ |
Cached mesh interfaces. More... | |
autoPtr< GAMGProcAgglomeration > | procAgglomeratorPtr_ |
labelList | nCells_ |
The number of cells in each level. More... | |
PtrList< labelField > | restrictAddressing_ |
Cell restriction addressing array. More... | |
labelList | nFaces_ |
The number of (coarse) faces in each level. More... | |
PtrList< labelList > | faceRestrictAddressing_ |
Face restriction addressing array. More... | |
PtrList< boolList > | faceFlipMap_ |
Face flip: for faces mapped to internal faces stores whether. More... | |
PtrList< labelList > | nPatchFaces_ |
The number of (coarse) patch faces in each level. More... | |
PtrList< labelListList > | patchFaceRestrictAddressing_ |
Patch-local face restriction addressing array. More... | |
PtrList< lduPrimitiveMesh > | meshLevels_ |
Hierarchy of mesh addressing. More... | |
PtrList< labelList > | procAgglomMap_ |
Per level, per processor the processor it agglomerates into. More... | |
PtrList< labelList > | agglomProcIDs_ |
Per level the set of processors to agglomerate. Element 0 is. More... | |
labelList | procCommunicator_ |
Communicator for given level. More... | |
PtrList< labelList > | procCellOffsets_ |
Mapping from processor to procMeshLevel cells. More... | |
PtrList< labelListList > | procFaceMap_ |
Mapping from processor to procMeshLevel face. More... | |
PtrList< labelListList > | procBoundaryMap_ |
Mapping from processor to procMeshLevel boundary. More... | |
PtrList< labelListListList > | procBoundaryFaceMap_ |
Mapping from processor to procMeshLevel boundary face. More... | |
Protected Attributes inherited from MeshObject< lduMesh, GeometricMeshObject, GAMGAgglomeration > | |
const lduMesh & | mesh_ |
Agglomerate using the pair algorithm.
Definition at line 50 of file assemblyFaceAreaPairGAMGAgglomeration.H.
Destructor.
Definition at line 58 of file assemblyFaceAreaPairGAMGAgglomeration.C.
assemblyFaceAreaPairGAMGAgglomeration | ( | const lduMatrix & | matrix, |
const dictionary & | controlDict | ||
) |
Construct given mesh and controls.
Definition at line 64 of file assemblyFaceAreaPairGAMGAgglomeration.C.
References pairGAMGAgglomeration::agglomerate(), cyclicAMIPolyPatch::AMI(), fvMesh::boundary(), polyMesh::boundaryMesh(), Foam::cmptMultiply(), polyPatch::faceCells(), Foam::faceMap(), forAll, GeometricField< Type, PatchField, GeoMesh >::internalField(), lduMesh::lduAddr(), Foam::mag(), fvMesh::magSf(), cyclicACMIPolyPatch::mask(), polyPatch::masterImplicit(), lduMatrix::mesh(), MeshObject< lduMesh, GeometricMeshObject, GAMGAgglomeration >::mesh(), patches, GeometricField< Type, PatchField, GeoMesh >::primitiveField(), fvMesh::Sf(), GAMGAgglomeration::size(), UList< T >::size(), Foam::sqrt(), AMIInterpolation::srcWeights(), cyclicACMIPolyPatch::tolerance(), lduAddressing::upperAddr(), and Foam::Zero.
assemblyFaceAreaPairGAMGAgglomeration | ( | const lduMatrix & | matrix, |
const scalarField & | cellVolumes, | ||
const vectorField & | faceAreas, | ||
const dictionary & | controlDict | ||
) |
Construct given mesh and controls.
Definition at line 218 of file assemblyFaceAreaPairGAMGAgglomeration.C.
References pairGAMGAgglomeration::agglomerate(), Foam::cmptMultiply(), Foam::mag(), lduMatrix::mesh(), and Foam::sqrt().
TypeName | ( | "assembledFaceAreaPair" | ) |
Runtime type information.