19#ifndef MODE_LAPLACE_1D_Q2_H
20#define MODE_LAPLACE_1D_Q2_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 ModeLaplace1DQ2 :
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 makeElementaryStiffness(
double *kel)
const;
65 void makeMass(
int *elemTopo,
int numEle,
int *connectivity,
int *numNz);
66 void makeElementaryMass(
double *mel)
const;
69 ModeLaplace1DQ2(
const ModeLaplace1DQ2 &ref);
70 ModeLaplace1DQ2& operator=(
const ModeLaplace1DQ2 &ref);
74 ModeLaplace1DQ2(
const Epetra_Comm &_Comm,
double _Lx,
int _nX);
78 const Epetra_Operator* getStiffness()
const {
return K; }
79 const Epetra_Operator* getMass()
const {
return M; }
81 double getFirstMassEigenValue()
const;
83 int eigenCheck(
const Epetra_MultiVector &Q,
double *lambda,
double *normWeight)
const;
85 void memoryInfo()
const;
86 void problemInfo()
const;