38 GAMGProcAgglomeration,
39 masterCoarsestGAMGProcAgglomeration,
82 printStats(
Pout, agglom_);
85 if (agglom_.size() >= 1)
89 label fineLevelIndex = agglom_.size()-1;
91 if (agglom_.hasMeshLevel(fineLevelIndex))
94 const lduMesh& levelMesh = agglom_.meshLevel(fineLevelIndex);
145 Pout<<
nl <<
"Agglomerated mesh overview" <<
endl;
146 printStats(
Pout, agglom_);
virtual bool agglomerate()
Modify agglomeration. Return true if modified.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
A list of keyword definitions, which are a keyword followed by any number of values (e...
static int myProcNo(const label communicator=0)
Number of this process (starting from masterNo() = 0)
Ostream & endl(Ostream &os)
Add newline and flush stream.
Abstract base class for meshes which provide LDU addressing for the construction of lduMatrix and LDU...
#define forAllReverse(list, i)
Reverse loop across all elements in list.
virtual ~masterCoarsestGAMGProcAgglomeration()
Destructor.
virtual label comm() const =0
Return communicator used for parallel communication.
Macros for easy insertion into run-time selection tables.
addToRunTimeSelectionTable(ensightPart, ensightPartCells, istream)
defineTypeNameAndDebug(combustionModel, 0)
masterCoarsestGAMGProcAgglomeration(GAMGAgglomeration &agglom, const dictionary &controlDict)
Construct given agglomerator and controls.
virtual bool agglomerate()=0
Modify agglomeration. Return true if modified.
static label nProcs(const label communicator=0)
Number of processes in parallel run.
prefixOSstream Pout(cout, "Pout")
Processor agglomeration of GAMGAgglomerations.
static label allocateCommunicator(const label parent, const labelList &subRanks, const bool doPstream=true)
Allocate a new communicator.
T & last()
Return the last element of the list.
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:
static void freeCommunicator(const label communicator, const bool doPstream=true)
Free a previously allocated communicator.