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
ModeLaplace3DQ2.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 MODE_LAPLACE_3D_Q2_H
20
#define MODE_LAPLACE_3D_Q2_H
21
22
#include "Epetra_ConfigDefs.h"
23
24
#include "Epetra_Comm.h"
25
#include "Epetra_CrsMatrix.h"
26
#include "Epetra_MultiVector.h"
27
#include "Epetra_Operator.h"
28
#include "Epetra_RowMatrix.h"
29
30
#include "CheckingTools.h"
31
#include "ModeLaplace.h"
32
#include "SortingTools.h"
33
34
35
// Chaco partition routine
36
#ifdef _USE_CHACO
37
extern
"C"
{
38
int
interface(
int
,
int
*,
int
*,
int
*,
float
*,
float
*,
float
*,
float
*,
char
*,
39
char
*,
short
int
*,
int
,
int
,
int
[3],
double
*,
int
,
int
,
int
,
int
,
40
int
,
double
,
long
);
41
}
42
#endif
43
44
45
class
ModeLaplace3DQ2 :
public
ModeLaplace {
46
47
private
:
48
49
const
CheckingTools myVerify;
50
const
Epetra_Comm
&MyComm;
51
const
SortingTools mySort;
52
53
Epetra_Map
*Map;
54
Epetra_Operator
*K;
55
Epetra_Operator
*M;
56
57
double
Lx;
58
int
nX;
59
60
double
Ly;
61
int
nY;
62
63
double
Lz;
64
int
nZ;
65
66
double
*x;
67
double
*y;
68
double
*z;
69
70
static
const
int
dofEle;
71
static
const
int
maxConnect;
72
#ifndef M_PI
73
static
const
double
M_PI;
74
#endif
75
76
// Private member functions
77
void
preProcess();
78
void
makeMap();
79
int
countElements(
bool
*isTouched);
80
void
makeMyElementsTopology(
int
*elemTopo,
bool
*isTouched);
81
void
makeMyConnectivity(
int
*elemTopo,
int
numEle,
int
*connectivity,
int
*numNz);
82
void
makeStiffness(
int
*elemTopo,
int
numEle,
int
*connectivity,
int
*numNz);
83
void
makeElementaryStiffness(
double
*kel)
const
;
84
void
makeMass(
int
*elemTopo,
int
numEle,
int
*connectivity,
int
*numNz);
85
void
makeElementaryMass(
double
*kel)
const
;
86
87
// Don't define these functions
88
ModeLaplace3DQ2(
const
ModeLaplace3DQ2 &ref);
89
ModeLaplace3DQ2& operator=(
const
ModeLaplace3DQ2 &ref);
90
91
public
:
92
93
ModeLaplace3DQ2(
const
Epetra_Comm
&_Comm,
double
_Lx,
int
_nX,
double
_Ly,
int
_nY,
94
double
_Lz,
int
_nZ);
95
96
~ModeLaplace3DQ2();
97
98
const
Epetra_Operator
* getStiffness()
const
{
return
K; }
99
const
Epetra_Operator
* getMass()
const
{
return
M; }
100
101
double
getFirstMassEigenValue()
const
;
102
103
int
eigenCheck(
const
Epetra_MultiVector
&Q,
double
*lambda,
double
*normWeight)
const
;
104
105
void
memoryInfo()
const
;
106
void
problemInfo()
const
;
107
108
};
109
110
#endif
Epetra_MultiVector
Epetra_Map
Epetra_Comm
Epetra_Operator
Generated on Fri Jul 25 2025 09:18:08 for Anasazi by
1.8.5