Anasazi
Version of the Day
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
epetra
src
ModalAnalysisSolvers
ARPACKm3.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 ARPACK_MODE3_H
20
#define ARPACK_MODE3_H
21
22
#include "Epetra_ConfigDefs.h"
23
24
#include "Epetra_Comm.h"
25
#include "Epetra_Operator.h"
26
#include "Epetra_Time.h"
27
28
#ifdef EPETRA_MPI
29
#include "Epetra_MpiComm.h"
30
#endif
31
32
#include "FortranRoutines.h"
33
#include "ModalAnalysisSolver.h"
34
#include "MyMemory.h"
35
#include "CheckingTools.h"
36
37
class
ARPACKm3 :
public
ModalAnalysisSolver {
38
39
private
:
40
41
const
CheckingTools myVerify;
42
const
FortranRoutines callFortran;
43
44
const
Epetra_Comm
&MyComm;
45
const
Epetra_Operator
*K;
46
const
Epetra_Operator
*M;
47
const
Epetra_Time
MyWatch;
48
49
double
tolEigenSolve;
50
int
maxIterEigenSolve;
51
52
char
*which;
53
54
int
verbose;
55
56
double
memRequested;
57
double
highMem;
58
59
int
massOp;
60
int
orthoOp;
61
int
outerIter;
62
int
stifOp;
63
64
double
timeMassOp;
65
double
timeOuterLoop;
66
double
timePostProce;
67
double
timeStifOp;
68
69
// Don't define these functions
70
ARPACKm3(
const
ARPACKm3 &ref);
71
ARPACKm3& operator=(
const
ARPACKm3 &ref);
72
73
public
:
74
75
ARPACKm3(
const
Epetra_Comm
&_Comm,
const
Epetra_Operator
*KK,
76
double
_tol = 1.0e-08,
int
_maxIter = 100,
int
_verb = 0);
77
78
ARPACKm3(
const
Epetra_Comm
&_Comm,
const
Epetra_Operator
*KK,
char
*_which,
79
double
_tol = 1.0e-08,
int
_maxIter = 100,
int
_verb = 0);
80
81
ARPACKm3(
const
Epetra_Comm
&_Comm,
const
Epetra_Operator
*KK,
const
Epetra_Operator
*MM,
82
double
_tol = 1.0e-08,
int
_maxIter = 100,
int
_verb = 0);
83
84
ARPACKm3(
const
Epetra_Comm
&_Comm,
const
Epetra_Operator
*KK,
const
Epetra_Operator
*MM,
85
char
*_which,
double
_tol = 1.0e-08,
int
_maxIter = 100,
int
_verb = 0);
86
87
~ARPACKm3() { }
88
89
int
solve(
int
numEigen,
Epetra_MultiVector
&Q,
double
*lambda);
90
91
int
reSolve(
int
numEigen,
Epetra_MultiVector
&Q,
double
*lambda,
int
startingEV = 0);
92
93
int
minimumSpaceDimension(
int
nev)
const
{
return
nev+1; }
94
95
void
initializeCounters();
96
97
void
algorithmInfo()
const
;
98
void
memoryInfo()
const
;
99
void
operationInfo()
const
;
100
void
timeInfo()
const
;
101
102
};
103
104
#endif
Epetra_MultiVector
Epetra_Time
Epetra_Comm
Epetra_Operator
Generated on Fri Jul 25 2025 09:18:08 for Anasazi by
1.8.5