Processor agglomeration of GAMGAgglomerations. Needs nAgglomeratingCells which is when to start agglomerating processors. Processors get agglomerated by constructing a single cell mesh for each processor with each processor interface a face. This then gets agglomerated using the pairGAMGAgglomeration algorithm with the number of faces on the original processor interface as face weight. More...
Public Member Functions | |
TypeName ("procFaces") | |
Runtime type information. More... | |
procFacesGAMGProcAgglomeration (GAMGAgglomeration &agglom, const dictionary &controlDict) | |
Construct given agglomerator and controls. More... | |
virtual | ~procFacesGAMGProcAgglomeration () |
Destructor. More... | |
virtual bool | agglomerate () |
Modify agglomeration. Return true if modified. More... | |
![]() | |
TypeName ("GAMGProcAgglomeration") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, GAMGProcAgglomeration, GAMGAgglomeration,(GAMGAgglomeration &agglom, const dictionary &controlDict),(agglom, controlDict)) | |
Runtime selection table for pure geometric agglomerators. More... | |
GAMGProcAgglomeration (GAMGAgglomeration &agglom, const dictionary &controlDict) | |
Construct given agglomerator and controls. More... | |
virtual | ~GAMGProcAgglomeration () |
Destructor. More... | |
Private Member Functions | |
autoPtr< lduPrimitiveMesh > | singleCellMesh (const label singleCellMeshComm, const lduMesh &mesh, scalarField &faceWeights) const |
Return (on master) all single-cell meshes collected. single-cell. More... | |
tmp< labelField > | processorAgglomeration (const lduMesh &) const |
Construct processor agglomeration: for every processor the. More... | |
bool | doProcessorAgglomeration (const lduMesh &) const |
Do we need to agglomerate across processors? More... | |
procFacesGAMGProcAgglomeration (const procFacesGAMGProcAgglomeration &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const procFacesGAMGProcAgglomeration &) |
Disallow default bitwise assignment. More... | |
Private Attributes | |
const label | nAgglomeratingCells_ |
When to processor agglomerate. More... | |
DynamicList< label > | comms_ |
Allocated communicators. More... | |
Additional Inherited Members | |
![]() | |
static autoPtr< GAMGProcAgglomeration > | New (const word &type, GAMGAgglomeration &agglom, const dictionary &controlDict) |
Return the selected agglomerator. More... | |
![]() | |
void | printStats (Ostream &os, GAMGAgglomeration &agglom) const |
Debug: write agglomeration info. More... | |
bool | agglomerate (const label fineLevelIndex, const labelList &procAgglomMap, const labelList &masterProcs, const List< label > &agglomProcIDs, const label procAgglomComm) |
Agglomerate a level. Return true if anything has changed. More... | |
![]() | |
static labelListList | globalCellCells (const lduMesh &) |
Debug: calculate global cell-cells. More... | |
![]() | |
GAMGAgglomeration & | agglom_ |
Reference to agglomeration. More... | |
Processor agglomeration of GAMGAgglomerations. Needs nAgglomeratingCells which is when to start agglomerating processors. Processors get agglomerated by constructing a single cell mesh for each processor with each processor interface a face. This then gets agglomerated using the pairGAMGAgglomeration algorithm with the number of faces on the original processor interface as face weight.
Definition at line 59 of file procFacesGAMGProcAgglomeration.H.
|
private |
Disallow default bitwise copy construct.
procFacesGAMGProcAgglomeration | ( | GAMGAgglomeration & | agglom, |
const dictionary & | controlDict | ||
) |
Construct given agglomerator and controls.
Definition at line 221 of file procFacesGAMGProcAgglomeration.C.
|
virtual |
Destructor.
Definition at line 233 of file procFacesGAMGProcAgglomeration.C.
References procFacesGAMGProcAgglomeration::comms_, forAllReverse, and UPstream::freeCommunicator().
|
private |
Return (on master) all single-cell meshes collected. single-cell.
meshes are just one cell with all proc faces intact.
Definition at line 55 of file procFacesGAMGProcAgglomeration.C.
References DynamicList::append(), DynamicList::clear(), forAll, forAllConstIter(), mesh, processorLduInterface::neighbProcNo(), autoPtr::reset(), UPtrList::set(), UPtrList::size(), and Foam::sort().
|
private |
Construct processor agglomeration: for every processor the.
coarse processor-cluster it agglomerates onto
Definition at line 147 of file procFacesGAMGProcAgglomeration.C.
References forAll, Foam::invert(), Foam::labelMax, mesh, Foam::min(), List::size(), Foam::sortedOrder(), and autoPtr::valid().
|
private |
Do we need to agglomerate across processors?
Definition at line 207 of file procFacesGAMGProcAgglomeration.C.
References mesh.
|
private |
Disallow default bitwise assignment.
TypeName | ( | "procFaces" | ) |
Runtime type information.
|
virtual |
Modify agglomeration. Return true if modified.
Implements GAMGProcAgglomeration.
Definition at line 247 of file procFacesGAMGProcAgglomeration.C.
References GAMGProcAgglomeration::agglomerate(), UPstream::allocateCommunicator(), GAMGAgglomeration::calculateRegionMaster(), lduMesh::comm(), Foam::endl(), Foam::nl, UPstream::nProcs(), Foam::Pout, and rndGen().
|
private |
When to processor agglomerate.
Definition at line 66 of file procFacesGAMGProcAgglomeration.H.
|
private |
Allocated communicators.
Definition at line 69 of file procFacesGAMGProcAgglomeration.H.
Referenced by procFacesGAMGProcAgglomeration::~procFacesGAMGProcAgglomeration().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.