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> >
 
   56  create ( 
const std::string& solverType,
 
   58           Teuchos::ParameterList &pl ) {
 
   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")
 
   80      TEUCHOS_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
 
   81        "Anasazi::Factory::create: Invalid solver type \"" << solverType << 
"\".");
 
 
   86  template<
class MV, 
class OP>
 
   88  Teuchos::RCP<SolverManager<double,MV,OP> >
 
   89  create ( 
const std::string& solverType,
 
   91           Teuchos::ParameterList &pl ) {
 
   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")
 
  123      TEUCHOS_TEST_FOR_EXCEPTION( 
true, std::invalid_argument,
 
  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);
 
  138    return create(solverType, eproblem, pl);
 
 
 
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...
 
This provides a basic implementation for defining standard or generalized eigenvalue problems.
 
The BlockDavidsonSolMgr provides a powerful solver manager over the BlockDavidson eigensolver.
 
The Anasazi::BlockKrylovSchurSolMgr provides a flexible solver manager over the BlockKrylovSchur eige...
 
This class defines the interface required by an eigensolver and status test class to compute solution...
 
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.
 
Solver Manager for GeneralizedDavidson.
 
User interface for the LOBPCG eigensolver.
 
The Anasazi::RTRSolMgr provides a simple solver manager over the RTR eigensolver. For more informatio...
 
The Anasazi::SimpleLOBPCGSolMgr provides a simple solver manager over the LOBPCG eigensolver.
 
Namespace Anasazi contains the classes, structs, enums and utilities used by the Anasazi package.