MueLu Version of the Day
Loading...
Searching...
No Matches
MueLu_FilteredAFactory_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_FILTEREDAFACTORY_DECL_HPP
11#define MUELU_FILTEREDAFACTORY_DECL_HPP
12
13#include <string>
14
15#include "MueLu_ConfigDefs.hpp"
17
18#include "MueLu_LWGraph.hpp"
19#include "MueLu_Level_fwd.hpp"
23namespace MueLu {
24
30template <class Scalar = DefaultScalar,
33 class Node = DefaultNode>
35#undef MUELU_FILTEREDAFACTORY_SHORT
37
38 public:
40
41
43
45 virtual ~FilteredAFactory() {}
46
47 RCP<const ParameterList> GetValidParameterList() const;
48
50
52
53
54 void DeclareInput(Level& currentLevel) const;
55
57
59
60
66 void Build(Level& currentLevel) const;
67
69 private:
70 void BuildReuse(const Matrix& A, const LWGraph& G, const bool lumping, double dirichletThresh, Matrix& filteredA) const;
71 void BuildNew(const Matrix& A, const LWGraph& G, const bool lumping, double dirichletThresh, Matrix& filteredA) const;
72 void BuildNewUsingRootStencil(const Matrix& A, const LWGraph& G, double dirichletThresh, Level& currentLevel, Matrix& filteredA, bool use_spread_lumping, double DdomAllowGrowthRate, double DdomCap) const;
73 void ExperimentalLumping(const Matrix& A, Matrix& filteredA, double rho, double rho2) const;
74
75}; // class FilteredAFactory
76
77} // namespace MueLu
78
79#define MUELU_FILTEREDAFACTORY_SHORT
80#endif // MUELU_FILTEREDAFACTORY_DECL_HPP
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
MueLu::DefaultNode Node
Factory for building filtered matrices using filtered graphs.
void BuildNewUsingRootStencil(const Matrix &A, const LWGraph &G, double dirichletThresh, Level &currentLevel, Matrix &filteredA, bool use_spread_lumping, double DdomAllowGrowthRate, double DdomCap) const
void BuildNew(const Matrix &A, const LWGraph &G, const bool lumping, double dirichletThresh, Matrix &filteredA) const
RCP< const ParameterList > GetValidParameterList() const
Return a const parameter list of valid parameters that setParameterList() will accept.
void DeclareInput(Level &currentLevel) const
Input.
void BuildReuse(const Matrix &A, const LWGraph &G, const bool lumping, double dirichletThresh, Matrix &filteredA) const
void ExperimentalLumping(const Matrix &A, Matrix &filteredA, double rho, double rho2) const
void Build(Level &currentLevel) const
Build method.
Lightweight MueLu representation of a compressed row storage graph.
Class that holds all level-specific information.
Base class for factories that use one level (currentLevel).
Namespace for MueLu classes and methods.
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar