46#ifndef MUELU_MERGEDSMOOTHER_DECL_HPP
47#define MUELU_MERGEDSMOOTHER_DECL_HPP
51#include "MueLu_SmootherPrototype.hpp"
61 template <class Scalar = SmootherPrototype<>::scalar_type,
66#undef MUELU_MERGEDSMOOTHER_SHORT
74 MergedSmoother(ArrayRCP<RCP<SmootherPrototype> >& smootherList,
bool verbose =
false);
80 RCP<SmootherPrototype>
Copy()
const;
116 void Apply(MultiVector& X,
const MultiVector& B,
bool InitialGuessIsZero =
false)
const;
121 void SetFactory(
const std::string& varName,
const RCP<const FactoryBase>& factory);
127 ArrayRCP<RCP<SmootherPrototype> >
SmootherListDeepCopy(
const ArrayRCP<
const RCP<SmootherPrototype> >& srcSmootherList);
150#define MUELU_MERGEDSMOOTHER_SHORT
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Class that holds all level-specific information.
size_t getNodeSmootherComplexity() const
Get a rough estimate of cost per iteration.
RCP< SmootherPrototype > Copy() const
Copy method (performs a deep copy of input object)
virtual ~MergedSmoother()
Destructor.
void DeclareInput(Level ¤tLevel) const
Input.
void print(Teuchos::FancyOStream &out, const VerbLevel verbLevel=Default) const
ArrayRCP< RCP< SmootherPrototype > > smootherList_
ArrayRCP< RCP< SmootherPrototype > > SmootherListDeepCopy(const ArrayRCP< const RCP< SmootherPrototype > > &srcSmootherList)
void Setup(Level &level)
Set up.
void SetFactory(const std::string &varName, const RCP< const FactoryBase > &factory)
Custom SetFactory.
void Apply(MultiVector &X, const MultiVector &B, bool InitialGuessIsZero=false) const
Apply.
void CopyParameters(RCP< SmootherPrototype > src)
const ArrayRCP< const RCP< SmootherPrototype > > GetSmootherList() const
bool GetReverseOrder() const
Base class for smoother prototypes.
GlobalOrdinal global_ordinal_type
LocalOrdinal local_ordinal_type
Namespace for MueLu classes and methods.