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_);
160 Pout<<
nl <<
"Agglomerated mesh overview" <<
endl;
161 printStats(
Pout, agglom_);
int debug
Static debugging option.
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
Geometric agglomerated algebraic multigrid agglomeration class.
static label nProcs(const label communicator=0)
Number of processes in parallel run.
Ostream & endl(Ostream &os)
Add newline and flush stream.
prefixOSstream Pout
An Ostream wrapper for parallel output to std::cout.
#define forAll(list, i)
Loop across all elements in list.
static void calculateRegionMaster(const label comm, const labelList &procAgglomMap, labelList &masterProcs, List< label > &agglomProcIDs)
Given fine to coarse processor map determine:
static label allocateCommunicator(const label parent, const labelList &subRanks, const bool doPstream=true)
Allocate a new communicator.
virtual bool agglomerate()=0
Modify agglomeration. Return true if modified.
runTime controlDict().readEntry("adjustTimeStep"
virtual bool agglomerate()
Modify agglomeration. Return true if modified.
static void freeCommunicator(const label communicator, const bool doPstream=true)
Free a previously allocated communicator.
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=0)
Number of this process (starting from masterNo() = 0)
virtual ~eagerGAMGProcAgglomeration()
Destructor.
virtual label comm() const =0
Return communicator used for parallel communication.
#define forAllReverse(list, i)
Reverse loop across all elements in list.
Processor agglomeration of GAMGAgglomerations.
defineTypeNameAndDebug(combustionModel, 0)
Abstract base class for meshes which provide LDU addressing for the construction of lduMatrix and LDU...