43#ifdef HAVE_IFPACK_AMESOS
46#ifdef HAVE_IFPACK_HIPS
49#ifdef HAVE_IFPACK_SUPERLU
57#include "Teuchos_StringToIntMap.hpp"
60std::map<std::string, Ifpack_DynamicFactory::builderFunction>
79#ifdef HAVE_IFPACK_AMESOS
99#ifdef HAVE_IFPACK_SPARSKIT
104#ifdef HAVE_IFPACK_HIPS
114#ifdef HAVE_IFPACK_SUPERLU
122#ifdef HAVE_IFPACK_EPETRAEXT
131 #ifdef HAVE_IFPACK_AMESOS
135 #ifdef HAVE_IFPACK_SPARSKIT
138 #ifdef HAVE_IFPACK_HIPS
144 #ifdef HAVE_IFPACK_SUPERLU
148 #ifdef HAVE_IFPACK_EPETRAEXT
160 const std::string PrecName,
173 os <<
"Ifpack_DynamicFactory registered preconditioners: " << std::endl;
174 for (std::map<std::string, builderFunction>::const_iterator it =
PreconditionerMap_.begin();
176 os << it->first << std::endl;
184 bool overrideSerialDefault)
186 bool serial = (Matrix->
Comm().NumProc() == 1);
188 std::map<std::string, builderFunction>::const_iterator it
193 return f(Matrix, Overlap, serial, overrideSerialDefault);
virtual const Epetra_Comm & Comm() const=0
static int NumPreconditioners_
Ifpack_Preconditioner *(* builderFunction)(Epetra_RowMatrix *, int, bool, bool)
static int RegisterPreconditioner(const std::string PrecName, builderFunction PrecBuilder)
Register a new preconditioner with the factory.
static std::map< std::string, builderFunction > PreconditionerMap_
static void Print(std::ostream &os=std::cout)
Prints the current list of registered preconditioners.
static bool Initialize()
Initializes the static data of the Ifpac_DynamicFactory class.
static Ifpack_Preconditioner * buildPreconditioner(Epetra_RowMatrix *Matrix, int Overlap, bool Serial, bool OverrideSerialDefault)
Ifpack_Preconditioner * Create(const std::string PrecType, Epetra_RowMatrix *Matrix, const int overlap=0, bool overrideSerialDefault=false)
Creates an instance of Ifpack_Preconditioner given the std::string name of the preconditioner type (c...
Ifpack_Preconditioner: basic class for preconditioning in Ifpack.