facemanager.h

Go to the documentation of this file.
00001 #ifndef __facemanager_h
00002 #define __facemanager_h
00003 
00004 #include  <set>
00005 #include  "edge.h"
00006 #include  "hexlawandorder.h" 
00007 #include  "hangcontainer3d.h" 
00008 #include  "gascoigne.h"
00009 
00010 /*---------------------------------------------------*/
00011 
00012 namespace Gascoigne
00013 {
00014 class FaceManager
00015 {
00016   typedef fixarray<4,int>  FaceVector;
00017 
00018  protected:
00019 
00020   std::vector<Edge>&          edges;
00021   std::vector<Hex>&           hexs;
00022   const IntVector&            co2n;
00023         IntVector&            eo2n;
00024 
00025   IntVector                SwappedEdge;
00026   HexLawAndOrder           HexLaO;
00027 
00028   void Update      ();
00029   void InnerFaces  (const IntSet& CellRefList);
00030   void OuterFaces  (const HangContainer3d& hangset);
00031   void OldHangings (HangContainer3d& hangset3d, const IntSet& CellRefList);
00032   void SwappedFaces();
00033   void NeighbourTester() const;
00034   void FillNeighbourFaces(const Hex& M, const Hex& S, const FaceVector& Face);
00035 
00036  public:
00037 
00038   FaceManager(std::vector<Edge>&, std::vector<Hex>&, const IntVector& con, IntVector& eon);
00039 
00040   const Hex&  hex(int i)           const { return hexs[i];}
00041         Hex&  hex(int i)                 { return hexs[i];}
00042 
00043   fixarray<2,int> ChildrenOfFace(int e) const;
00044 
00045   bool EdgeIsHanging(int e) const;
00046   bool EdgeIsHanging(const Edge& e) const;
00047 
00048   void LoadFaceElimination(IntVector& edel, 
00049                            const IntSet& CellCoarseList,
00050                            const HangContainer3d& hangset) const;
00051   void Build( const IntSet& CellRefList, HangContainer3d&);
00052   void DeleteFaces();
00053   void InitFaces();
00054   void SortHangings();
00055   void Check(const HangContainer3d& hangset) const;
00056 };
00057 }
00058 
00059 /*---------------------------------------------------*/
00060 
00061 #endif

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