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)
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()). Can be negative if the process i...
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.
static label allocateCommunicator(const label parent, const labelRange &subRanks, const bool withComponents=true)
Allocate new communicator with contiguous sub-ranks on the parent communicator.
addToRunTimeSelectionTable(functionObject, pointHistory, dictionary)