Anasazi  Version of the Day
AnasaziSolverManager.hpp
Go to the documentation of this file.
1 // @HEADER
2 // ***********************************************************************
3 //
4 // Anasazi: Block Eigensolvers Package
5 // Copyright (2004) Sandia Corporation
6 //
7 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8 // license for use of this work by or on behalf of the U.S. Government.
9 //
10 // This library is free software; you can redistribute it and/or modify
11 // it under the terms of the GNU Lesser General Public License as
12 // published by the Free Software Foundation; either version 2.1 of the
13 // License, or (at your option) any later version.
14 //
15 // This library is distributed in the hope that it will be useful, but
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 // Lesser General Public License for more details.
19 //
20 // You should have received a copy of the GNU Lesser General Public
21 // License along with this library; if not, write to the Free Software
22 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
23 // USA
24 // Questions? Contact Michael A. Heroux (maherou@sandia.gov)
25 //
26 // ***********************************************************************
27 // @HEADER
28 
29 #ifndef ANASAZI_SOLVERMANAGER_HPP
30 #define ANASAZI_SOLVERMANAGER_HPP
31 
36 #include "AnasaziConfigDefs.hpp"
37 #include "AnasaziTypes.hpp"
38 #include "AnasaziEigenproblem.hpp"
39 
41 #include "Teuchos_RCP.hpp"
42 #include "Teuchos_Array.hpp"
43 #include "Teuchos_Time.hpp"
44 
50 namespace Anasazi {
51 
52 template<class ScalarType, class MV, class OP>
54 
55  public:
56 
58 
59 
62 
64  virtual ~SolverManager() {};
66 
68 
69 
71  virtual const Eigenproblem<ScalarType,MV,OP>& getProblem() const = 0;
72 
74  virtual int getNumIters() const = 0;
75 
78  {
80  return null_time;
81  }
82 
84 
86 
87 
96  virtual ReturnType solve() = 0;
98 
99 };
100 
101 } // end Anasazi namespace
102 
103 #endif /* ANASAZI_SOLVERMANAGER_HPP */
virtual Teuchos::Array< Teuchos::RCP< Teuchos::Time > > getTimers() const
Return the timers for this object.
virtual int getNumIters() const =0
Get the iteration count for the most recent call to solve().
This class defines the interface required by an eigensolver and status test class to compute solution...
The Anasazi::SolverManager is a templated virtual base class that defines the basic interface that an...
virtual ReturnType solve()=0
This method performs possibly repeated calls to the underlying eigensolver&#39;s iterate() routine until ...
Namespace Anasazi contains the classes, structs, enums and utilities used by the Anasazi package...
Abstract base class which defines the interface required by an eigensolver and status test class to c...
ReturnType
Enumerated type used to pass back information from a solver manager.
Anasazi header file which uses auto-configuration information to include necessary C++ headers...
SolverManager()
Empty constructor.
virtual const Eigenproblem< ScalarType, MV, OP > & getProblem() const =0
Return the eigenvalue problem.
virtual ~SolverManager()
Destructor.
Types and exceptions used within Anasazi solvers and interfaces.