46#ifndef MUELU_COUPLEDAGGREGATIONCOMMHELPER_DECL_HPP
47#define MUELU_COUPLEDAGGREGATIONCOMMHELPER_DECL_HPP
49#include <Xpetra_Import_fwd.hpp>
50#include <Xpetra_ImportFactory_fwd.hpp>
51#include <Xpetra_Vector_fwd.hpp>
52#include <Xpetra_MultiVector_fwd.hpp>
58#include "MueLu_Aggregates.hpp"
76#undef MUELU_COUPLEDAGGREGATIONCOMMHELPER_SHORT
187 void ArbitrateAndCommunicate(Vector &weight, LOVector &procWinner, LOMultiVector *companion,
const bool perturb)
const;
209 void NonUnique2NonUnique(
const Vector &source, Vector &dest,
const Xpetra::CombineMode what)
const;
249#define MUELU_COUPLEDAGGREGATIONCOMMHELPER_SHORT
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Container class for aggregation information.
const RCP< LOMultiVector > & GetVertex2AggId() const
Returns constant vector that maps local node IDs to local aggregates IDs.
const RCP< LOVector > & GetProcWinner() const
Returns constant vector that maps local node IDs to owning processor IDs.
Base class for MueLu classes.
Helper class for providing arbitrated communication across processors.
RCP< const Import > import_
~CoupledAggregationCommHelper()
Destructor.
ArrayRCP< GO > myWinners_
void NonUnique2NonUnique(const Vector &source, Vector &dest, const Xpetra::CombineMode what) const
Redistribute data in source to dest where both source and dest might have multiple copies of the same...
RCP< Import > pushWinners_
void ArbitrateAndCommunicate(Vector &weights, Aggregates &aggregates, const bool perturb) const
This method assigns unknowns to aggregates.
RCP< Vector > candidateWinners_
RCP< const Import > winnerImport_
Namespace for MueLu classes and methods.
KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar