Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

feMat.h

Go to the documentation of this file.
00001 #ifndef __FE_MAT_H_
00002 #define __FE_MAT_H_
00003 
00004 #include "petscda.h"
00005 #include "oda.h"
00006 
00007 namespace ot {
00008   namespace fem {
00009 
00010     class feMat {
00011       public:
00013         enum daType {
00014           PETSC, OCT
00015         }; 
00016 
00018         feMat() { };
00019         feMat(daType da) {
00020 #ifdef __DEBUG__
00021           assert ( ( da == PETSC ) || ( da == OCT ) );
00022 #endif
00023           m_daType = da;
00024 
00025 
00026         }
00027         ~feMat() {
00028 
00029         }
00030 
00031         void setDA (_p_DA* da) { m_DA = da; }
00032         void setDA (ot::DA* da) { m_octDA = da; }
00033 
00034         _p_DA* getDA() { return m_DA; }
00035         ot::DA* getOctDA() { return m_octDA; }
00049         virtual bool MatVec(Vec _in, Vec _out, double scale=1.0) = 0;
00050         virtual bool MatGetDiagonal(Vec _diag, double scale=1.0) = 0;
00051 
00052 
00053         void setProblemDimensions(double x, double y, double z) {
00054           m_dLx = x;
00055           m_dLy = y;
00056           m_dLz = z;
00057         }
00058       protected:
00059 
00060         daType          m_daType;
00061 
00062         _p_DA*              m_DA;
00063         ot::DA*         m_octDA;
00065         double m_dLx;
00066         double m_dLy;
00067         double m_dLz;
00068     };
00069 
00070   } // end namespace fem
00071 } // end namespace ot
00072 
00073 #endif
00074 

Generated on Tue Mar 24 16:14:01 2009 for DENDRO by  doxygen 1.3.9.1