gascoignemesh.h

Go to the documentation of this file.
00001 #ifndef  __GascoigneMesh_h
00002 #define  __GascoigneMesh_h
00003 
00004 #include  "patchmesh.h"
00005 #include  "patchindexhandler.h"
00006 #include  "boundaryindexhandler.h"
00007 #include  "hangingindexhandler.h"
00008 #include  "gascoigne.h"
00009 
00010 /*-----------------------------------------*/
00011 
00012 namespace Gascoigne
00013 {
00014 class GascoigneMesh : public PatchMesh
00015 {
00016 protected:
00017 
00018   IntVector              nc, vo2n;
00019   PatchIndexHandler      PatchHandler;
00020   BoundaryIndexHandler   BoundaryHandler;
00021   HangingIndexHandler    HangingHandler;
00022 
00023 public:
00024 
00025   GascoigneMesh();
00026   virtual ~GascoigneMesh();
00027 
00028         void BasicInit(const ParamFile* pf) {assert(0);}
00029 
00030   const IntVector&               GetCellVector()          const  { return nc;}
00031   const PatchIndexHandler&    GetPatchIndexHandler()   const  { return PatchHandler;}
00032   const BoundaryIndexHandler&    GetBoundaryIndexHandler()const  { return BoundaryHandler;}
00033   const HangingIndexHandler&  GetHangingIndexHandler() const  { return HangingHandler;}
00034   const IntVector*               Vertexo2n()              const  { return &vo2n;}
00035 
00036   IntVector&               GetCellVector()           { return nc;}
00037   PatchIndexHandler&    GetPatchIndexHandler()    { return PatchHandler;}
00038   BoundaryIndexHandler&    GetBoundaryIndexHandler() { return BoundaryHandler;}
00039   HangingIndexHandler&  GetHangingIndexHandler()  { return HangingHandler;}
00040   IntVector*               Vertexo2n()               { return &vo2n;}
00041 
00042   int  nodes_per_patch()   const { return PatchHandler.nodes_per_patch();}
00043   int  nodes_per_q4patch() const { return PatchHandler.nodes_per_q4patch();}
00044   bool HasPatch()          const { return PatchHandler.HasPatch();}
00045   bool HasQ4Patch()        const { return PatchHandler.HasQ4Patch();}
00046   int  npatches()          const { return PatchHandler.npatches(); }
00047   int  nq4patches()        const { return PatchHandler.nq4patches(); }
00048 
00049   const IntVector* IndicesOfPatch    (int i)     const { return &(PatchHandler.IndicesOfPatch(i));}
00050   const IntVector* IndicesOfQ4Patch  (int i)     const { return &(PatchHandler.IndicesOfQ4Patch(i));}
00051   const IntVector* VertexOnBoundary(int color) const { return &(BoundaryHandler.Verteces(color)); }
00052   const IntVector* CellOnBoundary  (int color) const { return &(BoundaryHandler.Cells(color));    }
00053   const IntVector* LocalOnBoundary (int color) const { return &(BoundaryHandler.Localind(color)); }
00054   
00055   std::set<int> GetColors()             const { return BoundaryHandler.GetColors();}
00056   IntVector  Q2IndicesOfQ4Patch(int i)  const { return PatchHandler.Q2IndicesOfQ4Patch(i);}
00057   IntVector  CoarseIndices(int iq)   const { return PatchHandler.CoarseIndices(iq);}
00058   IntVector  CoarseIndicesQ4(int iq) const { return PatchHandler.CoarseIndicesQ4(iq);}
00059 
00060   // wird von GascoigneMesh2d/3d ueberschrieben
00061   virtual IntVector  IndicesOfCell(int iq) const{ assert(0); return IntVector(); }
00062   
00063   virtual bool CellIsCurved(int iq) const { return 0;}
00064   virtual int  nedges()    const { return 0; }
00065 };
00066 }
00067 
00068 #endif

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