10#ifndef ANASAZI_FACTORY_HPP
11#define ANASAZI_FACTORY_HPP
53 template<
class ScalarType,
class MV,
class OP>
55 Teuchos::RCP<SolverManager<ScalarType,MV,OP> >
58 Teuchos::ParameterList &
pl ) {
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>
88 Teuchos::RCP<SolverManager<double,MV,OP> >
91 Teuchos::ParameterList &
pl ) {
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>
132 Teuchos::RCP<SolverManager<ScalarType,MV,OP> >
135 Teuchos::ParameterList &
pl ) {
136 Teuchos::RCP<Eigenproblem<ScalarType,MV,OP>>
eproblem =
137 Teuchos::rcp_static_cast<Eigenproblem<ScalarType,MV,OP>>(
problem);
Basic implementation of the Anasazi::Eigenproblem class.
The Anasazi::BlockDavidsonSolMgr provides a solver manager for the BlockDavidson eigensolver.
The Anasazi::BlockKrylovSchurSolMgr class provides a user interface for the block Krylov-Schur eigens...
Anasazi header file which uses auto-configuration information to include necessary C++ headers.
The Anasazi::GeneralizedDavidsonSolMgr provides a solver manager for the GeneralizedDavidson eigensol...
The Anasazi::LOBPCGSolMgr provides a powerful solver manager for the LOBPCG eigensolver.
The Anasazi::RTRSolMgr provides a simple solver manager over the IRTR eigensolvers.
The Anasazi::SimpleLOBPCGSolMgr provides a simple solver manager over the LOBPCG eigensolver.
The Anasazi::TraceMinDavidsonSolMgr provides a solver manager for the TraceMinDavidson eigensolver wi...
The Anasazi::TraceMinSolMgr provides a solver manager for the TraceMin eigensolver with a constant su...
The Anasazi::TraceMinDavidsonSolMgr provides a flexible solver manager over the TraceMinDavidson eige...
The Anasazi::TraceMinSolMgr provides a flexible solver manager over the TraceMin eigensolver.
This provides a factory to build Anasazi solvers using parameter lists.
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.
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.
Anasazi's templated virtual class for constructing an operator that can interface with the OperatorTr...
Namespace Anasazi contains the classes, structs, enums and utilities used by the Anasazi package.