meshinterface.h

Go to the documentation of this file.
00001 #ifndef  __MeshInterface_h
00002 #define  __MeshInterface_h
00003 
00004 #include  "vertex.h"
00005 #include  <set>
00006 #include  <string>
00007 #include  "gascoigne.h"
00008 #include  "paramfile.h"
00009 
00010 namespace Gascoigne
00011 {
00012   
00017 
00021 
00022   class MeshInterface
00023   {
00024     private:
00025 
00026     protected:
00027 
00028     public:
00029       MeshInterface() {}
00030       virtual ~MeshInterface() {}
00031 
00032       virtual void BasicInit(const ParamFile* pf)=0;
00033 
00034       virtual std::string GetName() const=0;
00035 
00036       virtual int  dimension() const=0;
00037       virtual int  nnodes()    const=0;
00038       virtual int  nhanging()  const {
00039         return 0;
00040       }
00041       virtual int  ncells()    const=0;
00042 
00043       virtual int  nodes_per_cell(int i)         const=0;
00044       virtual int  vertex_of_cell(int i, int ii) const=0;
00045       virtual const Vertex2d& vertex2d(int i)    const {
00046         std::cerr << "\"MeshInterface::vertex2d\" not written!" << std::endl;
00047         abort();
00048       }
00049       virtual const Vertex3d& vertex3d(int i)    const {
00050         std::cerr << "\"MeshInterface::vertex3d\" not written!" << std::endl;
00051         abort();
00052       }
00053       virtual       IntSet     GetColors()                const=0;
00054       virtual const IntVector* Vertexo2n()                const=0;
00055       virtual       IntVector  IndicesOfCell(int iq)      const {
00056         std::cerr << "\"MeshInterface::IndicesOfCell\" not written!" << std::endl;
00057         abort();
00058       }
00059       virtual const IntVector* CellOnBoundary(int color)  const {
00060         std::cerr << "\"MeshInterface::CellOnBoundary\" not written!" << std::endl;
00061         abort();
00062       }
00063       virtual const IntVector* LocalOnBoundary(int color) const {
00064         std::cerr << "\"MeshInterface::LocalOnBoundary\" not written!" << std::endl;
00065         abort();
00066       }
00067       virtual const IntVector* VertexOnBoundary(int col) const {
00068         std::cerr << "\"MeshInterface::VertexOnBoundary\" not written!" << std::endl;
00069         abort();
00070       }
00071       virtual int VtkType(int i) const=0;
00072   };
00073 }
00074 
00075 #endif

Generated on Thu Sep 14 10:34:36 2006 for Gascoigne by  doxygen 1.4.7