00001 00005 class BoundaryFE : public BoundaryMesh 00006 00007 { 00008 GridFE& grid; 00009 00010 VecSimple(SetDistinct(int)) n2e; 00011 VecSimple(VecSimple(int)) b2n; 00012 VecSimple(SetDistinct(int)) n2b; 00013 VecSimple(VecSimple(int)) e2b; 00014 VecSimple(SetDistinct(int)) b2e; 00015 00016 int permute (const int, const int, const int, const int) const; 00017 00018 virtual GridFE* getGrid () const { return &grid; } 00019 00020 public: 00021 00022 BoundaryFE (GridFE&); 00023 ~BoundaryFE () {} 00024 00025 virtual int getNoElms () const { return e2b.size(); } 00026 virtual int getNoNodes () const { return n2e.size(); } 00027 virtual int getNoBounds () const { return b2n.size(); } 00028 00029 virtual int getNoNodeElms (const int) const; 00030 00031 virtual int getNoBoundNodes (const int) const; 00032 virtual int getNoNodeBounds (const int) const; 00033 00034 virtual int getNoElmBounds (const int) const; 00035 virtual int getNoBoundElms (const int) const; 00036 00037 virtual bool nodeOnBound (const int, const int) const; 00038 virtual bool boundOnElm (const int, const int) const; 00039 00040 virtual int getNodeElms (const int, VecSimplest(int))& const; 00041 00042 virtual int getBoundNodes (const int, VecSimplest(int))& const; 00043 virtual int getNodeBounds (const int, VecSimplest(int))& const; 00044 00045 virtual int getElmBounds (const int, VecSimplest(int))& const; 00046 virtual int getBoundElms (const int, VecSimplest(int))& const; 00047 }; 00048 00049