46 #ifndef MUELU_DIRECTSOLVER_DECL_HPP
47 #define MUELU_DIRECTSOLVER_DECL_HPP
56 #include "MueLu_SmootherPrototype.hpp"
74 template <class Scalar = SmootherPrototype<>::scalar_type,
75 class LocalOrdinal =
typename SmootherPrototype<Scalar>::local_ordinal_type,
76 class GlobalOrdinal =
typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type,
77 class Node =
typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
79 #undef MUELU_DIRECTSOLVER_SHORT
110 void Apply(MultiVector& X,
const MultiVector& B,
bool InitialGuessIsZero =
false)
const;
131 return s_->getNodeSmootherComplexity();
163 #define MUELU_DIRECTSOLVER_SHORT
164 #endif // MUELU_DIRECTSOLVER_DECL_HPP
void Apply(MultiVector &X, const MultiVector &B, bool InitialGuessIsZero=false) const
DirectSolver cannot be applied. Apply() always returns a RuntimeError exception.
void Setup(Level ¤tLevel)
DirectSolver cannot be turned into a smoother using Setup(). Setup() always returns a RuntimeError ex...
void DeclareInput(Level ¤tLevel) const
Input.
Base class for smoother prototypes.
std::string type_
amesos1/2-specific key phrase that denote smoother type
DirectSolver(const std::string &type="", const Teuchos::ParameterList ¶mList=Teuchos::ParameterList())
Constructor Note: only parameters shared by Amesos and Amesos2 should be used for type and paramList ...
Class that encapsulates direct solvers. Autoselection of AmesosSmoother or Amesos2Smoother according ...
RCP< SmootherPrototype > Copy() const
When this prototype is cloned using Copy(), the clone is an Amesos or an Amesos2 smoother.
void print(Teuchos::FancyOStream &out, const VerbLevel verbLevel=Default) const
std::string description() const
Return a simple one-line description of this object.
Class that holds all level-specific information.
RCP< SmootherPrototype > sTpetra_
void SetFactory(const std::string &varName, const RCP< const FactoryBase > &factory)
Custom SetFactory.
virtual ~DirectSolver()
Destructor.
RCP< SmootherPrototype > sEpetra_
Smoother.
RCP< SmootherPrototype > s_
size_t getNodeSmootherComplexity() const
Get a rough estimate of cost per iteration.