46 #ifndef MUELU_DIRECTSOLVER_DECL_HPP 47 #define MUELU_DIRECTSOLVER_DECL_HPP 51 #include <Xpetra_Matrix_fwd.hpp> 56 #include "MueLu_SmootherPrototype.hpp" 74 template <class Scalar = SmootherPrototype<>::scalar_type,
79 #undef MUELU_DIRECTSOLVER_SHORT 131 return s_->getNodeSmootherComplexity();
163 #define MUELU_DIRECTSOLVER_SHORT 164 #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...
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.
Class that holds all level-specific information.
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
Classes::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > MultiVector
virtual ~DirectSolver()
Destructor.
RCP< SmootherPrototype > sEpetra_
Smoother.
RCP< SmootherPrototype > s_
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.