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"
77 template <class Scalar = SmootherPrototype<>::scalar_type,
82#undef MUELU_DIRECTSOLVER_SHORT
92 DirectSolver(
const std::string& type =
"",
const Teuchos::ParameterList& paramList = Teuchos::ParameterList());
113 void Apply(MultiVector& X,
const MultiVector& B,
bool InitialGuessIsZero =
false)
const;
118 void SetFactory(
const std::string& varName,
const RCP<const FactoryBase>& factory);
121 RCP<SmootherPrototype> Copy()
const;
134 return s_->getNodeSmootherComplexity();
156 RCP<SmootherPrototype>
s_;
166#define MUELU_DIRECTSOLVER_SHORT
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Class that encapsulates direct solvers. Autoselection of AmesosSmoother or Amesos2Smoother according ...
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.
virtual ~DirectSolver()
Destructor.
std::string errorRefMaxwell_
std::string description() const
Return a simple one-line description of this object.
void Setup(Level ¤tLevel)
DirectSolver cannot be turned into a smoother using Setup(). Setup() always returns a RuntimeError ex...
void SetFactory(const std::string &varName, const RCP< const FactoryBase > &factory)
Custom SetFactory.
RCP< SmootherPrototype > sBelos_
size_t getNodeSmootherComplexity() const
Get a rough estimate of cost per iteration.
RCP< SmootherPrototype > sStratimikos_
RCP< SmootherPrototype > s_
RCP< SmootherPrototype > sEpetra_
Smoother.
std::string errorStratimikos_
RCP< SmootherPrototype > sRefMaxwell_
void DeclareInput(Level ¤tLevel) const
Input.
std::string type_
amesos1/2-specific key phrase that denote smoother type
RCP< SmootherPrototype > sTpetra_
Class that holds all level-specific information.
Base class for smoother prototypes.
GlobalOrdinal global_ordinal_type
LocalOrdinal local_ordinal_type
Namespace for MueLu classes and methods.