10 #ifndef ANASAZI_FACTORY_HPP
11 #define ANASAZI_FACTORY_HPP
53 template<
class ScalarType,
class MV,
class OP>
56 create (
const std::string& solverType,
61 std::string type = solverType;
62 std::transform(type.begin(), type.end(), type.begin(), ::tolower);
64 if (type ==
"block_davidson" || type ==
"block davidson")
67 else if (type ==
"block_krylov_schur" || type ==
"block krylov schur")
70 else if (type ==
"lobpcg")
73 else if (type ==
"rtr")
76 else if (type ==
"simple_lobpcg" || type ==
"simple lobpcg")
81 "Anasazi::Factory::create: Invalid solver type \"" << solverType <<
"\".");
86 template<
class MV,
class OP>
89 create (
const std::string& solverType,
93 using ScalarType = double;
95 std::string type = solverType;
96 std::transform(type.begin(), type.end(), type.begin(), ::tolower);
98 if (type ==
"block_davidson" || type ==
"block davidson")
101 else if (type ==
"block_krylov_schur" || type ==
"block krylov schur")
104 else if (type ==
"generalized_davidson" || type ==
"generalized davidson")
107 else if (type ==
"lobpcg")
110 else if (type ==
"rtr")
113 else if (type ==
"simple_lobpcg" || type ==
"simple lobpcg")
116 else if (type ==
"TRACE_MIN" || type ==
"trace min")
119 else if (type ==
"trace_min_davidson" || type ==
"trace min davidson")
124 "Anasazi::Factory::create: Invalid solverType type \"" << solverType <<
"\".");
126 return Teuchos::null;
130 template<
class ScalarType,
class MV,
class OP>
138 return create(solverType, eproblem, pl);
This class defines the interface required by an eigensolver and status test class to compute solution...
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
static Teuchos::RCP< SolverManager< ScalarType, MV, OP > > create(const std::string &solverType, const Teuchos::RCP< Eigenproblem< ScalarType, MV, OP > > problem, Teuchos::ParameterList &pl)
Create an instance of Anasazi::SolverManager given the string name of the solver type.
The Anasazi::RTRSolMgr provides a simple solver manager over the RTR eigensolver. For more informatio...
The Anasazi::TraceMinSolMgr provides a solver manager for the TraceMin eigensolver with a constant su...
The Anasazi::LOBPCGSolMgr provides a powerful solver manager for the LOBPCG eigensolver.
The Anasazi::BlockKrylovSchurSolMgr provides a flexible solver manager over the BlockKrylovSchur eige...
The Anasazi::BlockDavidsonSolMgr provides a solver manager for the BlockDavidson eigensolver.
Basic implementation of the Anasazi::Eigenproblem class.
The Anasazi::GeneralizedDavidsonSolMgr provides a solver manager for the GeneralizedDavidson eigensol...
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
The Anasazi::SimpleLOBPCGSolMgr provides a simple solver manager over the LOBPCG eigensolver.
Anasazi header file which uses auto-configuration information to include necessary C++ headers...
The Anasazi::TraceMinSolMgr provides a flexible solver manager over the TraceMin eigensolver.
The Anasazi::SimpleLOBPCGSolMgr provides a simple solver manager over the LOBPCG eigensolver.
The Anasazi::TraceMinDavidsonSolMgr provides a flexible solver manager over the TraceMinDavidson eige...
The Anasazi::TraceMinDavidsonSolMgr provides a solver manager for the TraceMinDavidson eigensolver wi...
This provides a basic implementation for defining standard or generalized eigenvalue problems...
static Teuchos::RCP< SolverManager< ScalarType, MV, OP > > create(const std::string &solverType, const Teuchos::RCP< BasicEigenproblem< ScalarType, MV, OP > > &problem, Teuchos::ParameterList &pl)
Specialize create for BasicEigenproblem type.
The Anasazi::RTRSolMgr provides a simple solver manager over the IRTR eigensolvers.
The BlockDavidsonSolMgr provides a powerful solver manager over the BlockDavidson eigensolver...
The Anasazi::BlockKrylovSchurSolMgr class provides a user interface for the block Krylov-Schur eigens...
Solver Manager for GeneralizedDavidson.
This provides a factory to build Anasazi solvers using parameter lists.
User interface for the LOBPCG eigensolver.