19#ifndef MODE_LAPLACE_2D_Q1_H
20#define MODE_LAPLACE_2D_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,
45class ModeLaplace2DQ1 :
public ModeLaplace {
49 const CheckingTools myVerify;
50 const Epetra_Comm &MyComm;
51 const SortingTools mySort;
66 static const int dofEle;
67 static const int maxConnect;
69 static const double M_PI;
75 int countElements(
bool *isTouched);
76 void makeMyElementsTopology(
int *elemTopo,
bool *isTouched);
77 void makeMyConnectivity(
int *elemTopo,
int numEle,
int *connectivity,
int *numNz);
78 void makeStiffness(
int *elemTopo,
int numEle,
int *connectivity,
int *numNz);
79 void makeMass(
int *elemTopo,
int numEle,
int *connectivity,
int *numNz);
82 ModeLaplace2DQ1(
const ModeLaplace2DQ1 &ref);
83 ModeLaplace2DQ1& operator=(
const ModeLaplace2DQ1 &ref);
87 ModeLaplace2DQ1(
const Epetra_Comm &_Comm,
double _Lx,
int _nX,
double _Ly,
int _nY);
91 const Epetra_Operator* getStiffness()
const {
return K; }
92 const Epetra_Operator* getMass()
const {
return M; }
94 double getFirstMassEigenValue()
const;
96 int eigenCheck(
const Epetra_MultiVector &Q,
double *lambda,
double *normWeight)
const;
98 void memoryInfo()
const;
99 void problemInfo()
const;