gascoignemeshconstructor.h

Go to the documentation of this file.
00001 #ifndef  __GascoigneMeshConstructor_h
00002 #define  __GascoigneMeshConstructor_h
00003 
00004 #include  "levelmesh2d.h"
00005 #include  "levelmesh3d.h"
00006 #include  "gascoignemultigridmesh.h"
00007 #include  "gascoignemesh2d.h"
00008 #include  "gascoignemesh3d.h"
00009 #include  "gascoigne.h"
00010 #include  <map>
00011 
00012 /*-----------------------------------------*/
00013 
00014 namespace Gascoigne
00015 {
00016     typedef std::map<int,int> IntMap;
00017 
00018 class GascoigneMeshConstructor
00019 {
00020  private:
00021     IntVector _cl2g,_pl2g;
00022     IntMap    _cg2l;
00023     
00024 protected:
00025   
00026   const HierarchicalMesh* HM;
00027   GascoigneMultiGridMesh* GMG;
00028 
00029   bool finestlevel;
00030 
00031   virtual void PatchToCell2d(PatchIndexHandler& PIH, const LevelMesh2d* LM) const;
00032   virtual void PatchToCell3d(PatchIndexHandler& PIH, const LevelMesh3d* LM) const;
00033 
00034   virtual void Construct2d(GascoigneMesh* NM, const LevelMesh2d* LM) const;
00035   virtual void Construct3d(GascoigneMesh* NM, const LevelMesh3d* LM) const;
00036 
00037   virtual LevelMesh2d* LevelUpdate2d(GascoigneMesh* GM, const IntSet& newquads, const IntSet& oldquads) const;
00038   virtual LevelMesh3d* LevelUpdate3d(GascoigneMesh* GM, const IntSet& newquads, const IntSet& oldquads) const;
00039   virtual void Loop2d();
00040   virtual void Loop3d();
00041 
00042 public:
00043   
00044   GascoigneMeshConstructor(const HierarchicalMesh* mm,
00045                            GascoigneMultiGridMesh* gmg);
00046   virtual ~GascoigneMeshConstructor() { }
00047 
00048   virtual void BasicInit();
00049   const IntVector& Patchl2g() const
00050       {return _pl2g;}
00051   const IntVector& Celll2g() const
00052       {return _cl2g;}
00053   const IntMap& Cellg2l() const {return _cg2l;}
00054 };
00055 }
00056 
00057 #endif

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