46 #ifndef MUELU_AGGREGATES_DECL_HPP
47 #define MUELU_AGGREGATES_DECL_HPP
49 #include <Xpetra_Map_fwd.hpp>
50 #include <Xpetra_Vector_fwd.hpp>
51 #include <Xpetra_VectorFactory_fwd.hpp>
52 #include <Xpetra_MultiVector_fwd.hpp>
60 #include "MueLu_IndexManager.hpp"
62 #define MUELU_UNAGGREGATED -1
65 #define MUELU_UNASSIGNED -1
103 #undef MUELU_AGGREGATES_SHORT
191 const RCP<const Map>
GetMap()
const;
218 void print(Teuchos::FancyOStream &out,
const Teuchos::EVerbosityLevel verbLevel = verbLevel_default)
const;
258 #define MUELU_AGGREGATES_SHORT
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Container class for aggregation information.
Teuchos::ArrayRCP< bool > isRoot_
Teuchos::ArrayRCP< LO > ComputeAggregateSizes(bool forceRecompute=false) const
Compute sizes of aggregates.
Aggregates(const GraphBase &graph)
Standard constructor for Aggregates structure.
GO GetNumGlobalAggregates() const
Get global number of aggregates.
LO nAggregates_
Number of aggregates on this processor.
RCP< IndexManager > geoData_
bool aggregatesIncludeGhosts_
Set to false iff aggregates do not include any DOFs belong to other processes.
RCP< IndexManager > & GetIndexManager()
Get the index manager used by structured aggregation algorithms.
void AggregatesCrossProcessors(const bool &flag)
Record whether aggregates include DOFs from other processes.
void print(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=verbLevel_default) const
Print the object with some verbosity level to an FancyOStream object.
const RCP< LOVector > & GetProcWinner() const
Returns constant vector that maps local node IDs to owning processor IDs.
bool AggregatesCrossProcessors() const
Return false if and only if no aggregates include DOFs from other processes.
const RCP< const Map > GetMap() const
returns (overlapping) map of aggregate/node distribution
void SetIsRoot(LO i, bool value=true)
Set root node information.
bool IsRoot(LO i) const
Returns true if node with given local node id is marked to be a root node.
RCP< LOVector > & GetProcWinnerNonConst()
Returns nonconstant vector that maps local node IDs to owning processor IDs.
std::string description() const
Return a simple one-line description of this object.
const RCP< LOMultiVector > & GetVertex2AggId() const
Returns constant vector that maps local node IDs to local aggregates IDs.
RCP< LOVector > procWinner_
RCP< LOMultiVector > & GetVertex2AggIdNonConst()
Returns a nonconstant vector that maps local node IDs to local aggregates IDs.
RCP< LOMultiVector > vertex2AggId_
Teuchos::ArrayRCP< LO > aggregateSizes_
Array of sizes of each local aggregate.
virtual ~Aggregates()
Destructor.
void ComputeNodesInAggregate(Array< LO > &aggPtr, Array< LO > &aggNodes, Array< LO > &unaggregated) const
Generates a compressed list of nodes in each aggregate, where the entries in aggNodes[aggPtr[i]] up t...
void SetIndexManager(RCP< IndexManager > &geoData)
Get the index manager used by structured aggregation algorithms.
LO GetNumAggregates() const
returns the number of aggregates of the current processor. Note: could/should be renamed to GetNumLoc...
void SetNumAggregates(LO nAggregates)
Set number of local aggregates on current processor.
Base class for MueLu classes.
MueLu representation of a graph.
Namespace for MueLu classes and methods.
KokkosClassic::DefaultNode::DefaultNodeType DefaultNode