19#ifndef MODE_LAPLACE_1D_Q1_H
20#define MODE_LAPLACE_1D_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"
34class ModeLaplace1DQ1 :
public ModeLaplace {
38 const CheckingTools myVerify;
39 const Epetra_Comm &MyComm;
40 const SortingTools mySort;
51 static const int dofEle;
52 static const int maxConnect;
54 static const double M_PI;
60 int countElements(
bool *isTouched);
61 void makeMyElementsTopology(
int *elemTopo,
bool *isTouched);
62 void makeMyConnectivity(
int *elemTopo,
int numEle,
int *connectivity,
int *numNz);
63 void makeStiffness(
int *elemTopo,
int numEle,
int *connectivity,
int *numNz);
64 void makeMass(
int *elemTopo,
int numEle,
int *connectivity,
int *numNz);
67 ModeLaplace1DQ1(
const ModeLaplace1DQ1 &ref);
68 ModeLaplace1DQ1& operator=(
const ModeLaplace1DQ1 &ref);
72 ModeLaplace1DQ1(
const Epetra_Comm &_Comm,
double _Lx,
int _nX);
76 const Epetra_Operator* getStiffness()
const {
return K; }
77 const Epetra_Operator* getMass()
const {
return M; }
79 double getFirstMassEigenValue()
const;
81 int eigenCheck(
const Epetra_MultiVector &Q,
double *lambda,
double *normWeight)
const;
83 void memoryInfo()
const;
84 void problemInfo()
const;