46#ifndef MUELU_COUPLEDAGGREGATIONFACTORY_DEF_HPP
47#define MUELU_COUPLEDAGGREGATIONFACTORY_DEF_HPP
51#include "MueLu_Graph.hpp"
52#include "MueLu_Aggregates.hpp"
54#include "MueLu_AmalgamationInfo.hpp"
58 template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
61 TEUCHOS_TEST_FOR_EXCEPTION(algo2_.GetMinNodesPerAggregate() != algo1_.GetMinNodesPerAggregate(),
Exceptions::RuntimeError,
"");
64 template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
66 Input(currentLevel,
"Graph");
70 template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
75 RCP<Aggregates> aggregates;
80 RCP<const GraphBase> graph = Get< RCP<GraphBase> >(currentLevel,
"Graph");
84 aggregates->setObjectLabel(
"UC");
86 algo1_.CoarsenUncoupled(*graph, *aggregates);
87 algo2_.AggregateLeftovers(*graph, *aggregates);
91 aggregates->AggregatesCrossProcessors(
true);
92 aggregates->ComputeAggregateSizes(
true);
95 Set(currentLevel,
"Aggregates", aggregates);
98 aggregates->describe(GetOStream(
Statistics0), getVerbLevel());
Container class for aggregation information.
void Build(Level ¤tLevel) const
Build aggregates.
CoupledAggregationFactory()
Constructor.
void DeclareInput(Level ¤tLevel) const
Input.
Exception throws to report errors in the internal logical of the program.
Timer to be used in factories. Similar to Monitor but with additional timers.
Class that holds all level-specific information.
Namespace for MueLu classes and methods.
@ Statistics0
Print statistics that do not involve significant additional computation.