meshagentinterface.h

Go to the documentation of this file.
00001 #ifndef  __MeshAgentInterface_h
00002 #define  __MeshAgentInterface_h
00003 
00004 
00005 #include  "meshinterface.h"
00006 #include  "multigridmeshinterface.h"
00007 #include  "meshtransferinterface.h"
00008 #include  "paramfile.h"
00009 #include  "boundaryfunction.h"
00010 #include  <string>
00011 
00012 namespace Gascoigne
00013 {
00014   
00019 
00023 
00024   class MeshAgentInterface
00025   {
00026     private:
00027 
00028     protected:
00029 
00030     public:
00031       //
00033       //
00034       MeshAgentInterface() {}
00035       virtual ~MeshAgentInterface() {}
00036 
00037       virtual int GetDimension() const=0;
00038 
00039       virtual void BasicInit(const ParamFile* pf)=0;
00040       virtual void BasicInit(const std::string& gridname, int dim, int patchdepth, int epatcher, bool goc2nc=false)=0;
00041 
00042       virtual int nnodes() const=0;
00043       virtual int ncells() const=0;
00044       virtual int nlevels() const=0;
00045 
00046       virtual void read_gup(const std::string& fname)=0;
00047       virtual void read_gip(const std::string& fname)=0;
00048       virtual void write_gup(const std::string& fname) const=0;
00049       virtual void write_gip(const std::string& fname) const=0;
00050       virtual void write_inp(const std::string& fname) const=0;
00051       virtual const MeshInterface* GetMesh(int l) const=0;
00052 
00053       virtual void global_patch_coarsen(int n)=0;
00054       virtual void global_refine(int n)=0;
00055       virtual void refine_nodes(IntVector& refnodes, IntVector& coarsenodes)=0;
00056       virtual void refine_nodes(IntVector& refnodes)=0;
00057       virtual void refine_cells(IntVector& refnodes)=0;
00058       virtual void random_patch_refine(double p, int n)=0;
00059       virtual void random_patch_coarsen(double p, int n)=0;
00060       virtual const MeshTransferInterface* GetTransfer(int l) const=0; 
00061       virtual const std::set<int> Cello2n(int i)const=0;
00062       virtual const int Cello2nFather(int i)const=0;
00063       virtual const bool Goc2nc()const=0;
00064 
00065       virtual void AddShape(int col, BoundaryFunction<2>* f) {std::cerr << "MeshAgentInterface::AddShape not written" << std::endl; abort();}
00066       virtual void AddShape(int col, BoundaryFunction<3>* f) {std::cerr << "MeshAgentInterface::AddShape not written" << std::endl; abort();}
00067   };
00068 }
00069 
00070 #endif

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