Anasazi
Version of the Day
Loading...
Searching...
No Matches
epetra
src
ModalAnalysisSolvers
CheckingTools.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 CHECKING_TOOLS_H
20
#define CHECKING_TOOLS_H
21
22
#include "Epetra_ConfigDefs.h"
23
24
#include "Epetra_Comm.h"
25
#include "Epetra_LAPACK.h"
26
#include "Epetra_LocalMap.h"
27
#include "Epetra_Map.h"
28
#include "Epetra_MultiVector.h"
29
#include "Epetra_Operator.h"
30
#include "Epetra_Vector.h"
31
32
class
CheckingTools {
33
34
private
:
35
36
const
Epetra_Comm &MyComm;
37
38
public
:
39
40
CheckingTools(
const
Epetra_Comm &_Comm);
41
42
double
errorOrthogonality(
const
Epetra_MultiVector *X,
const
Epetra_MultiVector *R,
43
const
Epetra_Operator *M = 0)
const
;
44
45
double
errorOrthonormality(
const
Epetra_MultiVector *X,
const
Epetra_Operator *M = 0)
const
;
46
47
double
errorEquality(
const
Epetra_MultiVector *X,
const
Epetra_MultiVector *MX,
48
const
Epetra_Operator *M = 0)
const
;
49
50
int
errorSubspaces(
const
Epetra_MultiVector &Q,
const
Epetra_MultiVector &Qex,
51
const
Epetra_Operator *M)
const
;
52
53
void
errorEigenResiduals(
const
Epetra_MultiVector &Q,
double
*lambda,
54
const
Epetra_Operator *K,
const
Epetra_Operator *M,
55
double
*normWeight = 0)
const
;
56
57
void
errorEigenResiduals(
const
Epetra_MultiVector &Q,
double
*lambda,
58
const
Epetra_Operator *K,
const
Epetra_Operator *M,
59
const
Epetra_Operator *Msolver)
const
;
60
61
int
errorLambda(
double
*continuous,
double
*discrete,
int
numDiscrete,
double
*lambda,
62
int
nev)
const
;
63
64
int
inputArguments(
const
int
&numEigen,
const
Epetra_Operator *K,
65
const
Epetra_Operator *M,
const
Epetra_Operator *P,
66
const
Epetra_MultiVector &Q,
const
int
&minSize)
const
;
67
68
};
69
70
71
#endif
Generated on Thu Oct 9 2025 20:35:52 for Anasazi by
1.9.8