42 #ifndef ANASAZI_FACTORY_HPP
43 #define ANASAZI_FACTORY_HPP
85 template<
class ScalarType,
class MV,
class OP>
88 create (
const std::string& solverType,
93 std::string type = solverType;
94 std::transform(type.begin(), type.end(), type.begin(), ::tolower);
96 if (type ==
"block_davidson" || type ==
"block davidson")
99 else if (type ==
"block_krylov_schur" || type ==
"block krylov schur")
102 else if (type ==
"lobpcg")
105 else if (type ==
"rtr")
108 else if (type ==
"simple_lobpcg" || type ==
"simple lobpcg")
113 "Anasazi::Factory::create: Invalid solver type \"" << solverType <<
"\".");
116 template<
class MV,
class OP>
119 create (
const std::string& solverType,
123 using ScalarType = double;
125 std::string type = solverType;
126 std::transform(type.begin(), type.end(), type.begin(), ::tolower);
128 if (type ==
"block_davidson" || type ==
"block davidson")
131 else if (type ==
"block_krylov_schur" || type ==
"block krylov schur")
134 else if (type ==
"generalized_davidson" || type ==
"generalized davidson")
137 else if (type ==
"lobpcg")
140 else if (type ==
"rtr")
143 else if (type ==
"simple_lobpcg" || type ==
"simple lobpcg")
146 else if (type ==
"TRACE_MIN" || type ==
"trace min")
149 else if (type ==
"trace_min_davidson" || type ==
"trace min davidson")
154 "Anasazi::Factory::create: Invalid solverType type \"" << solverType <<
"\".");
158 template<
class ScalarType,
class MV,
class OP>
166 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.