19#ifndef MODE_LAPLACE_3D_Q1_H
20#define MODE_LAPLACE_3D_Q1_H
22#include "Epetra_ConfigDefs.h"
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"
30#include "CheckingTools.h"
31#include "ModeLaplace.h"
32#include "SortingTools.h"
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,
44class ModeLaplace3DQ1 :
public ModeLaplace {
48 const CheckingTools myVerify;
49 const Epetra_Comm &MyComm;
50 const SortingTools mySort;
69 static const int dofEle;
70 static const int maxConnect;
72 static const double M_PI;
78 int countElements(
bool *isTouched);
79 void makeMyElementsTopology(
int *elemTopo,
bool *isTouched);
80 void makeMyConnectivity(
int *elemTopo,
int numEle,
int *connectivity,
int *numNz);
81 void makeStiffness(
int *elemTopo,
int numEle,
int *connectivity,
int *numNz);
82 void makeMass(
int *elemTopo,
int numEle,
int *connectivity,
int *numNz);
85 ModeLaplace3DQ1(
const ModeLaplace3DQ1 &ref);
86 ModeLaplace3DQ1& operator=(
const ModeLaplace3DQ1 &ref);
90 ModeLaplace3DQ1(
const Epetra_Comm &_Comm,
double _Lx,
int _nX,
double _Ly,
int _nY,
95 const Epetra_Operator* getStiffness()
const {
return K; }
96 const Epetra_Operator* getMass()
const {
return M; }
98 double getFirstMassEigenValue()
const;
100 int eigenCheck(
const Epetra_MultiVector &Q,
double *lambda,
double *normWeight)
const;
102 void memoryInfo()
const;
103 void problemInfo()
const;