41 GAMGProcAgglomeration,
42 eagerGAMGProcAgglomeration,
57 mergeLevels_(
controlDict.getOrDefault<label>(
"mergeLevels", 1))
74 printStats(
Pout, agglom_);
77 if (agglom_.size() >= 1)
83 label fineLevelIndex = 2;
84 fineLevelIndex < agglom_.size();
88 if (agglom_.hasMeshLevel(fineLevelIndex))
91 const lduMesh& levelMesh = agglom_.meshLevel(fineLevelIndex);
92 label levelComm = levelMesh.comm();
101 forAll(procAgglomMap, proci)
103 procAgglomMap[proci] = proci/(1<<mergeLevels_);
110 List<label> agglomProcIDs;
150 Pout<<
nl <<
"Agglomerated mesh overview" <<
endl;
151 printStats(
Pout, agglom_);
A list of keyword definitions, which are a keyword followed by a number of values (eg...
constexpr char nl
The newline '\n' character (0x0a)
static label newCommunicator(const label parent, const labelRange &subRanks, const bool withComponents=true)
Create new communicator with sub-ranks on the parent communicator.
Ostream & endl(Ostream &os)
Add newline and flush stream.
static int myProcNo(const label communicator=worldComm)
Rank of this process in the communicator (starting from masterNo()). Negative if the process is not a...
virtual bool agglomerate()
Modify agglomeration. Return true if modified.
Macros for easy insertion into run-time selection tables.
#define forAll(list, i)
Loop across all elements in list.
static label nProcs(const label communicator=worldComm)
Number of ranks in parallel run (for given communicator). It is 1 for serial run. ...
runTime controlDict().readEntry("adjustTimeStep"
The central control dictionary, the contents of which are either taken directly from the FOAM_CONTROL...
eagerGAMGProcAgglomeration(const eagerGAMGProcAgglomeration &)=delete
No copy construct.
int debug
Static debugging option.
defineTypeNameAndDebug(combustionModel, 0)
virtual ~eagerGAMGProcAgglomeration()
Destructor.
virtual bool agglomerate()=0
Modify agglomeration.
Processor agglomeration of GAMGAgglomerations.
List< label > labelList
A List of labels.
Geometric agglomerated algebraic multigrid agglomeration class.
static void calculateRegionMaster(const label comm, const labelList &procAgglomMap, labelList &masterProcs, List< label > &agglomProcIDs)
Given fine to coarse processor map determine:
prefixOSstream Pout
OSstream wrapped stdout (std::cout) with parallel prefix.
addToRunTimeSelectionTable(functionObject, pointHistory, dictionary)