22#include "Epetra_ConfigDefs.h"
24#include "Epetra_Comm.h"
25#include "Epetra_Operator.h"
26#include "Epetra_Time.h"
29#include "Epetra_MpiComm.h"
32#include "FortranRoutines.h"
33#include "ModalAnalysisSolver.h"
35#include "CheckingTools.h"
37class ARPACKm1 :
public ModalAnalysisSolver {
41 const CheckingTools myVerify;
42 const FortranRoutines callFortran;
44 const Epetra_Comm &MyComm;
45 const Epetra_Operator *K;
46 const Epetra_Time MyWatch;
49 int maxIterEigenSolve;
67 ARPACKm1(
const ARPACKm1 &ref);
68 ARPACKm1& operator=(
const ARPACKm1 &ref);
72 ARPACKm1(
const Epetra_Comm &_Comm,
const Epetra_Operator *KK,
73 double _tol = 1.0e-08,
int _maxIter = 100,
int _verb = 0);
75 ARPACKm1(
const Epetra_Comm &_Comm,
const Epetra_Operator *KK,
char *_which,
76 double _tol = 1.0e-08,
int _maxIter = 100,
int _verb = 0);
80 int solve(
int numEigen, Epetra_MultiVector &Q,
double *lambda);
82 int reSolve(
int numEigen, Epetra_MultiVector &Q,
double *lambda,
int startingEV = 0);
84 int minimumSpaceDimension(
int nev)
const {
return nev+1; }
86 void initializeCounters();
88 void algorithmInfo()
const;
89 void memoryInfo()
const;
90 void operationInfo()
const;
91 void timeInfo()
const;