53 #ifndef MUELU_INTERFACEAGGREGATIONALGORITHM_DEF_HPP_ 
   54 #define MUELU_INTERFACEAGGREGATIONALGORITHM_DEF_HPP_ 
   56 #include <Teuchos_Comm.hpp> 
   57 #include <Teuchos_CommHelpers.hpp> 
   61 #include "MueLu_InterfaceAggregationAlgorithm.hpp" 
   65 #include "MueLu_Aggregates.hpp" 
   71 template <
class LocalOrdinal, 
class GlobalOrdinal, 
class Node>
 
   76 template <
class LocalOrdinal, 
class GlobalOrdinal, 
class Node>
 
   78   Monitor m(*
this, 
"BuildAggregates");
 
   81   const int myRank = graph.
GetComm()->getRank();
 
   91   for(
int iNode1 = 0; iNode1 < nRows; ++iNode1) {
 
   96       int aggIndex = numLocalAggregates;
 
   97       std::vector<int> aggList;
 
   98       aggList.push_back(iNode1);
 
  101       for(
int j = 0; j < neighOfINode.
size(); ++j) {
 
  102         LO neigh = neighOfINode[j];
 
  106             aggList.push_back(neigh);
 
  111       for (
size_t k = 0; k < aggList.size(); k++) {
 
  113         vertex2AggId[aggList[k]] = aggIndex;
 
  114         procWinner[aggList[k]]   = myRank;
 
  116       ++numLocalAggregates;
 
  117       numNonAggregatedNodes -= aggList.
size();
 
const RCP< LOVector > & GetProcWinner() const 
Returns constant vector that maps local node IDs to owning processor IDs. 
Container class for aggregation information. 
virtual size_t GetNodeNumVertices() const =0
Return number of vertices owned by the calling node. 
void SetIsRoot(LO i, bool value=true)
Set root node information. 
LO GetNumAggregates() const 
returns the number of aggregates of the current processor. Note: could/should be renamed to GetNumLoc...
void BuildAggregates(Teuchos::ParameterList const ¶ms, GraphBase const &graph, Aggregates &aggregates, std::vector< unsigned > &aggStat, LO &numNonAggregatedNodes) const 
Local aggregation. 
virtual bool isLocalNeighborVertex(LocalOrdinal v) const =0
Return true if vertex with local id 'v' is on current process. 
const RCP< LOMultiVector > & GetVertex2AggId() const 
Returns constant vector that maps local node IDs to local aggregates IDs. 
virtual const RCP< const Teuchos::Comm< int > > GetComm() const =0
MueLu representation of a graph. 
Timer to be used in non-factories. 
InterfaceAggregationAlgorithm(RCP< const FactoryBase > const &graphFact=Teuchos::null)
Constructor. 
virtual Teuchos::ArrayView< const LocalOrdinal > getNeighborVertices(LocalOrdinal v) const =0
Return the list of vertices adjacent to the vertex 'v'. 
void SetNumAggregates(LO nAggregates)
Set number of local aggregates on current processor.