|
Anasazi
Version of the Day
|
Go to the documentation of this file.
42 #ifndef ANASAZI_FACTORY_HPP
43 #define ANASAZI_FACTORY_HPP
85 template<
class ScalarType,
class MV,
class OP>
87 Teuchos::RCP<SolverManager<ScalarType,MV,OP> >
88 create (
const std::string& solverType,
90 Teuchos::ParameterList &pl ) {
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")
112 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
113 "Anasazi::Factory::create: Invalid solver type \"" << solverType <<
"\".");
116 template<
class MV,
class OP>
118 Teuchos::RCP<SolverManager<double,MV,OP> >
119 create (
const std::string& solverType,
121 Teuchos::ParameterList &pl ) {
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")
153 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
154 "Anasazi::Factory::create: Invalid solverType type \"" << solverType <<
"\".");
158 template<
class ScalarType,
class MV,
class OP>
160 Teuchos::RCP<SolverManager<ScalarType,MV,OP> >
163 Teuchos::ParameterList &pl ) {
164 Teuchos::RCP<Eigenproblem<ScalarType,MV,OP>> eproblem =
166 return create(solverType, eproblem, pl);
The Anasazi::BlockKrylovSchurSolMgr class provides a user interface for the block Krylov-Schur eigens...
The Anasazi::SimpleLOBPCGSolMgr provides a simple solver manager over the LOBPCG eigensolver.
Solver Manager for GeneralizedDavidson.
The Anasazi::TraceMinSolMgr provides a solver manager for the TraceMin eigensolver with a constant su...
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::TraceMinDavidsonSolMgr provides a flexible solver manager over the TraceMinDavidson eige...
The Anasazi::LOBPCGSolMgr provides a powerful solver manager for the LOBPCG eigensolver.
The Anasazi::BlockDavidsonSolMgr provides a solver manager for the BlockDavidson eigensolver.
The Anasazi::BlockKrylovSchurSolMgr provides a flexible solver manager over the BlockKrylovSchur eige...
This provides a basic implementation for defining standard or generalized eigenvalue problems.
The Anasazi::TraceMinSolMgr provides a flexible solver manager over the TraceMin eigensolver.
The Anasazi::RTRSolMgr provides a simple solver manager over the RTR eigensolver. For more informatio...
Namespace Anasazi contains the classes, structs, enums and utilities used by the Anasazi package.
The Anasazi::SimpleLOBPCGSolMgr provides a simple solver manager over the LOBPCG eigensolver.
This class defines the interface required by an eigensolver and status test class to compute solution...
User interface for the LOBPCG eigensolver.
This provides a factory to build Anasazi solvers using parameter lists.
The Anasazi::GeneralizedDavidsonSolMgr provides a solver manager for the GeneralizedDavidson eigensol...
Basic implementation of the Anasazi::Eigenproblem class.
Anasazi header file which uses auto-configuration information to include necessary C++ headers.
The Anasazi::TraceMinDavidsonSolMgr provides a solver manager for the TraceMinDavidson eigensolver wi...
The BlockDavidsonSolMgr provides a powerful solver manager over the BlockDavidson eigensolver.
The Anasazi::RTRSolMgr provides a simple solver manager over the IRTR eigensolvers.
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.