Anasazi  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ModalAnalysisSolver.h
1 // @HEADER
2 // *****************************************************************************
3 // Anasazi: Block Eigensolvers Package
4 //
5 // Copyright 2004 NTESS and the Anasazi contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 // This software is a result of the research described in the report
11 //
12 // "A comparison of algorithms for modal analysis in the absence
13 // of a sparse direct method", P. Arbenz, R. Lehoucq, and U. Hetmaniuk,
14 // Sandia National Laboratories, Technical report SAND2003-1028J.
15 //
16 // It is based on the Epetra, AztecOO, and ML packages defined in the Trilinos
17 // framework ( http://trilinos.org/ ).
18 
19 #ifndef MODAL_ANALYSIS_SOLVER_H
20 #define MODAL_ANALYSIS_SOLVER_H
21 
22 class ModalAnalysisSolver {
23 
24  public:
25 
26  virtual ~ModalAnalysisSolver() { }
27 
28  virtual int solve(int numEigen, Epetra_MultiVector &Q, double *lambda) = 0;
29 
30  virtual int reSolve(int numEigen, Epetra_MultiVector &Q, double *lambda, int startingEV=0)=0;
31 
32  virtual int minimumSpaceDimension(int nev) const = 0;
33 
34  virtual void initializeCounters() { }
35 
36  virtual void algorithmInfo() const = 0;
37  virtual void historyInfo() const { }
38  virtual void memoryInfo() const { }
39  virtual void operationInfo() const { }
40  virtual void timeInfo() const { }
41 
42 };
43 
44 
45 #endif