46 #ifndef MUELU_DIRECTSOLVER_DECL_HPP 47 #define MUELU_DIRECTSOLVER_DECL_HPP 49 #include <Teuchos_ParameterList.hpp> 51 #include <Xpetra_Matrix_fwd.hpp> 56 #include "MueLu_SmootherPrototype.hpp" 76 template <class Scalar = SmootherPrototype<>::scalar_type,
81 #undef MUELU_DIRECTSOLVER_SHORT 91 DirectSolver(
const std::string& type =
"",
const Teuchos::ParameterList& paramList = Teuchos::ParameterList());
112 void Apply(MultiVector& X,
const MultiVector& B,
bool InitialGuessIsZero =
false)
const;
117 void SetFactory(
const std::string& varName,
const RCP<const FactoryBase>& factory);
120 RCP<SmootherPrototype>
Copy()
const;
133 return s_->getNodeSmootherComplexity();
155 RCP<SmootherPrototype>
s_;
165 #define MUELU_DIRECTSOLVER_SHORT 166 #endif // MUELU_DIRECTSOLVER_DECL_HPP void print(Teuchos::FancyOStream &out, const VerbLevel verbLevel=Default) const
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_
Base class for smoother prototypes.
Namespace for MueLu classes and methods.
LocalOrdinal local_ordinal_type
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 ...
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_
void DeclareInput(Level ¤tLevel) const
Input.
RCP< SmootherPrototype > sTpetra_
void SetFactory(const std::string &varName, const RCP< const FactoryBase > &factory)
Custom SetFactory.
GlobalOrdinal global_ordinal_type
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.
RCP< SmootherPrototype > Copy() const
When this prototype is cloned using Copy(), the clone is an Amesos or an Amesos2 smoother.