Go to the documentation of this file.
46 #ifndef MUELU_LEFTOVERAGGREGATIONALGORITHM_DECL_HPP
47 #define MUELU_LEFTOVERAGGREGATIONALGORITHM_DECL_HPP
49 #include <Xpetra_Vector_fwd.hpp>
50 #include <Xpetra_VectorFactory_fwd.hpp>
63 template <
class LocalOrdinal =
int,
class GlobalOrdinal = LocalOrdinal,
class Node = KokkosClassic::DefaultNode::DefaultNodeType>
65 #undef MUELU_LEFTOVERAGGREGATIONALGORITHM_SHORT
99 #define MUELU_NOSCORE -100
104 #define MUELU_DISTONE_VERTEX_WEIGHT 100
108 #define INCR_SCALING 3
119 #define MUELU_PENALTYFACTOR .30
328 #define MUELU_LEFTOVERAGGREGATIONALGORITHM_SHORT
329 #endif // MUELU_LEFTOVERAGGREGATIONALGORITHM_DECL_HPP
void SetMinNodesPerAggregate(int minNodesPerAggregate)
void SetPhase3AggCreation(double phase3AggCreation)
double phase3AggCreation_
Namespace for MueLu classes and methods.
Base class for MueLu classes.
Helper class for providing arbitrated communication across processors.
void AggregateLeftovers(GraphBase const &graph, Aggregates &aggregates) const
Take a partially aggregated graph and complete the aggregation.
double GetPhase3AggCreation() const
LeftoverAggregationAlgorithm()
Constructor.
int minNodesPerAggregate_
int RemoveSmallAggs(Aggregates &aggregates, int min_size, RCP< Xpetra::Vector< double, LO, GO, NO > > &distWeights, const MueLu::CoupledAggregationCommHelper< LO, GO, NO > &myWidget) const
Attempt to clean up aggregates that are too small.
void RootCandidates(my_size_t nVertices, ArrayView< const LO > &vertex2AggId, GraphBase const &graph, ArrayRCP< LO > &candidates, my_size_t &nCandidates, global_size_t &nCandidatesGlobal) const
Build a list of candidate root nodes.
int GetMinNodesPerAggregate() const
virtual ~LeftoverAggregationAlgorithm()
Destructor.