47#include "Teuchos_Assert.hpp"
51 const Teuchos::RCP<Teuchos::ParameterList>& params)
53 if (prec_name ==
"Ifpack")
56 else if (prec_name ==
"ML")
60 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
61 "Error! Unknown preconditioner type " << prec_name
62 <<
". Valid choices are \"Ifpack\" and \"ML\".");
65Teuchos::RCP<Epetra_Operator>
67compute(
const Teuchos::RCP<Epetra_Operator>& mat,
bool compute_prec)
69 return factory->compute(mat, compute_prec);
74recompute(
const Teuchos::RCP<Epetra_Operator>& mat,
75 const Teuchos::RCP<Epetra_Operator>& prec)
77 factory->recompute(mat, prec);
A factory for building Ifpack preconditioners.
A factory for building ML preconditioners.
PreconditionerFactory(const std::string &prec_name, const Teuchos::RCP< Teuchos::ParameterList > ¶ms)
Constructor.
virtual void recompute(const Teuchos::RCP< Epetra_Operator > &mat, const Teuchos::RCP< Epetra_Operator > &prec)
Recompute preconditioner operator for a new matrix.
Teuchos::RCP< Stokhos::AbstractPreconditionerFactory > factory
Preconditioner factory.
virtual Teuchos::RCP< Epetra_Operator > compute(const Teuchos::RCP< Epetra_Operator > &mat, bool compute_prec=true)
Compute preconditioner operator.