46#ifndef MUELU_AGGREGATEQUALITYESTIMATEFACTORY_DECL_HPP
47#define MUELU_AGGREGATEQUALITYESTIMATEFACTORY_DECL_HPP
53#include <Xpetra_CrsMatrix_fwd.hpp>
54#include <Xpetra_Matrix_fwd.hpp>
55#include <Xpetra_MultiVector_fwd.hpp>
56#include <Xpetra_MapFactory_fwd.hpp>
57#include <Xpetra_Map_fwd.hpp>
58#include <Xpetra_Matrix_fwd.hpp>
59#include <Xpetra_MultiVector_fwd.hpp>
60#include <Xpetra_MultiVectorFactory_fwd.hpp>
61#include <Xpetra_Vector_fwd.hpp>
62#include <Xpetra_VectorFactory_fwd.hpp>
64#include <Xpetra_Import_fwd.hpp>
65#include <Xpetra_ImportFactory_fwd.hpp>
66#include <Xpetra_CrsMatrixWrap_fwd.hpp>
88 template <
class Scalar =
double,
class LocalOrdinal =
int,
class GlobalOrdinal = LocalOrdinal,
class Node = KokkosClassic::DefaultNode::DefaultNodeType>
90#undef MUELU_AGGREGATEQUALITYESTIMATEFACTORY_SHORT
97 typedef typename Teuchos::ScalarTraits<Scalar>::magnitudeType
magnitudeType;
133 static void ConvertAggregatesData(RCP<const Aggregates> aggs, ArrayRCP<LO>& aggSortedVertices, ArrayRCP<LO>& aggsToIndices, ArrayRCP<LO>& aggSizes);
142 void ComputeAggregateQualities(RCP<const Matrix> A, RCP<const Aggregates> aggs, RCP<Xpetra::MultiVector<magnitudeType,LO,GO,Node>> agg_qualities)
const;
144 void ComputeAggregateSizes(RCP<const Matrix> A, RCP<const Aggregates> aggs, RCP<LocalOrdinalVector> agg_sizes)
const;
151 void OutputAggQualities(
const Level& level, RCP<
const Xpetra::MultiVector<magnitudeType,LO,GO,Node>> agg_qualities)
const;
165#define MUELU_AGGREGATEQUALITYESTIMATEFACTORY_SHORT
An factory which assigns each aggregate a quality estimate. Originally developed by Napov and Notay i...
void OutputAggQualities(const Level &level, RCP< const Xpetra::MultiVector< magnitudeType, LO, GO, Node > > agg_qualities) const
void OutputAggSizes(const Level &level, RCP< const LocalOrdinalVector > agg_sizes) const
void Build(Level ¤tLevel) const
Build aggregate quality esimates with this factory.
RCP< const ParameterList > GetValidParameterList() const
Return a const parameter list of valid parameters that setParameterList() will accept.
void ComputeAggregateQualities(RCP< const Matrix > A, RCP< const Aggregates > aggs, RCP< Xpetra::MultiVector< magnitudeType, LO, GO, Node > > agg_qualities) const
void DeclareInput(Level ¤tLevel) const
Specifies the data that this class needs, and the factories that generate that data.
static void ConvertAggregatesData(RCP< const Aggregates > aggs, ArrayRCP< LO > &aggSortedVertices, ArrayRCP< LO > &aggsToIndices, ArrayRCP< LO > &aggSizes)
Build aggregate quality esimates with this factory.
Teuchos::ScalarTraits< Scalar >::magnitudeType magnitudeType
virtual ~AggregateQualityEstimateFactory()
Destructor.
AggregateQualityEstimateFactory()
Constructor.
void ComputeAggregateSizes(RCP< const Matrix > A, RCP< const Aggregates > aggs, RCP< LocalOrdinalVector > agg_sizes) const
Class that holds all level-specific information.
Base class for factories that use one level (currentLevel).
Namespace for MueLu classes and methods.