46 #ifndef MUELU_DIRECTSOLVER_DECL_HPP
47 #define MUELU_DIRECTSOLVER_DECL_HPP
51 #include <Xpetra_Matrix_fwd.hpp>
56 #include "MueLu_SmootherPrototype.hpp"
76 template <class Scalar = SmootherPrototype<>::scalar_type,
77 class LocalOrdinal =
typename SmootherPrototype<Scalar>::local_ordinal_type,
78 class GlobalOrdinal =
typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type,
79 class Node =
typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
81 #undef MUELU_DIRECTSOLVER_SHORT
112 void Apply(MultiVector& X,
const MultiVector& B,
bool InitialGuessIsZero =
false)
const;
133 return s_->getNodeSmootherComplexity();
165 #define MUELU_DIRECTSOLVER_SHORT
166 #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...
MueLu::DefaultLocalOrdinal LocalOrdinal
std::string errorStratimikos_
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.
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Class that holds all level-specific information.
RCP< SmootherPrototype > sBelos_
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_
RCP< SmootherPrototype > sStratimikos_
size_t getNodeSmootherComplexity() const
Get a rough estimate of cost per iteration.