MueLu  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MueLu_AggregateQualityEstimateFactory_decl.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // MueLu: A package for multigrid based preconditioning
4 //
5 // Copyright 2012 NTESS and the MueLu contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef MUELU_AGGREGATEQUALITYESTIMATEFACTORY_DECL_HPP
11 #define MUELU_AGGREGATEQUALITYESTIMATEFACTORY_DECL_HPP
12 
13 #include "MueLu_ConfigDefs.hpp"
16 
17 #include <Xpetra_Matrix_fwd.hpp>
19 #include <Xpetra_Map_fwd.hpp>
21 #include <Xpetra_Vector_fwd.hpp>
23 
24 #include "MueLu_Aggregates_fwd.hpp"
25 #include "MueLu_Level_fwd.hpp"
26 
27 namespace MueLu {
28 
44 template <class Scalar = DefaultScalar,
47  class Node = DefaultNode>
48 class AggregateQualityEstimateFactory : public TwoLevelFactoryBase {
49 #undef MUELU_AGGREGATEQUALITYESTIMATEFACTORY_SHORT
50 #include "MueLu_UseShortNames.hpp"
51 
52  public:
54 
55 
57 
60 
63 
65 
67 
69 
70 
76  void DeclareInput(Level& fineLevel, Level& coarseLevel) const;
77 
79 
81 
82 
84  void Build(Level& fineLevel, Level& coarseLevel) const;
85 
87 
89 
90 
92  static void ConvertAggregatesData(RCP<const Aggregates> aggs, ArrayRCP<LO>& aggSortedVertices, ArrayRCP<LO>& aggsToIndices, ArrayRCP<LO>& aggSizes);
93 
95 
96  private:
98 
99 
101 
103 
105 
107 
108 
109  void OutputAggQualities(const Level& level, RCP<const Xpetra::MultiVector<magnitudeType, LO, GO, Node>> agg_qualities) const;
110 
111  void OutputAggSizes(const Level& level, RCP<const LocalOrdinalVector> agg_sizes) const;
112 
114 
115 }; // class AggregateQualityEsimateFactory();
116 
117 } // namespace MueLu
118 
119 #define MUELU_AGGREGATEQUALITYESTIMATEFACTORY_SHORT
120 #endif // MUELU_DEMOFACTORY_DECL_HPP
MueLu::DefaultLocalOrdinal LocalOrdinal
void OutputAggQualities(const Level &level, RCP< const Xpetra::MultiVector< magnitudeType, LO, GO, Node >> agg_qualities) const
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
void ComputeAggregateSizes(RCP< const Matrix > A, RCP< const Aggregates > aggs, RCP< LocalOrdinalVector > agg_sizes) const
void Build(Level &fineLevel, Level &coarseLevel) const
Build aggregate quality esimates with this factory.
MueLu::DefaultNode Node
RCP< const ParameterList > GetValidParameterList() const
Return a const parameter list of valid parameters that setParameterList() will accept.
MueLu::DefaultScalar Scalar
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Class that holds all level-specific information.
Definition: MueLu_Level.hpp:63
void DeclareInput(Level &fineLevel, Level &coarseLevel) const
Specifies the data that this class needs, and the factories that generate that data.
void ComputeAggregateQualities(RCP< const Matrix > A, RCP< const Aggregates > aggs, RCP< Xpetra::MultiVector< magnitudeType, LO, GO, Node >> agg_qualities) const
void OutputAggSizes(const Level &level, RCP< const LocalOrdinalVector > agg_sizes) const
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