Go to the documentation of this file.
41 GAMGProcAgglomeration,
42 eagerGAMGProcAgglomeration,
50 Foam::eagerGAMGProcAgglomeration::eagerGAMGProcAgglomeration
57 mergeLevels_(
controlDict.getOrDefault<label>(
"mergeLevels", 1))
83 printStats(
Pout, agglom_);
86 if (agglom_.size() >= 1)
92 label fineLevelIndex = 2;
93 fineLevelIndex < agglom_.size();
97 if (agglom_.hasMeshLevel(fineLevelIndex))
100 const lduMesh& levelMesh = agglom_.meshLevel(fineLevelIndex);
101 label levelComm = levelMesh.comm();
110 forAll(procAgglomMap, proci)
112 procAgglomMap[proci] = proci/(1<<mergeLevels_);
119 List<label> agglomProcIDs;
160 Pout<<
nl <<
"Agglomerated mesh overview" <<
endl;
161 printStats(
Pout, agglom_);
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
List< label > labelList
A List of labels.
Geometric agglomerated algebraic multigrid agglomeration class.
Ostream & endl(Ostream &os)
static void calculateRegionMaster(const label comm, const labelList &procAgglomMap, labelList &masterProcs, List< label > &agglomProcIDs)
static label allocateCommunicator(const label parent, const labelList &subRanks, const bool doPstream=true)
virtual bool agglomerate()=0
runTime controlDict().readEntry("adjustTimeStep"
virtual bool agglomerate()
static void freeCommunicator(const label communicator, const bool doPstream=true)
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Macros for easy insertion into run-time selection tables.
static int myProcNo(const label communicator=worldComm)
virtual ~eagerGAMGProcAgglomeration()
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
virtual label comm() const =0
#define forAllReverse(list, i)
Processor agglomeration of GAMGAgglomerations.
defineTypeNameAndDebug(combustionModel, 0)
static label nProcs(const label communicator=worldComm)
Abstract base class for meshes which provide LDU addressing for the construction of lduMatrix and LDU...