hnstructureq12d.h

Go to the documentation of this file.
00001 #ifndef  __HNStructureQ12d_h
00002 #define  __HNStructureQ12d_h
00003 
00004 #include  "hnstructureq1.h"
00005 
00006 /*-----------------------------------------*/
00007 
00008 namespace Gascoigne
00009 {
00010 class HNStructureQ12d : public HNStructureQ1
00011 {
00012 protected:
00013 
00014   const std::map<int,EdgeVector>*        edges;
00015   DoubleVector                        wei;
00016   fixarray<4,fixarray<3,int> >           lnoe, lnop;
00017 
00018   double weight(int i) const { return wei[i];}
00019   int hanging(int i) const;
00020   const EdgeVector& regular_nodes(int i) const;
00021   
00022 public:
00023 
00024   HNStructureQ12d();
00025   ~HNStructureQ12d() {}
00026   int nhnodes() const {return edges->size();} 
00027   void SparseStructureDiag(SparseStructure* S) const;
00028   void ReInit(const MeshInterface* m);
00029   
00030   void MatrixDiag(int ncomp, MatrixInterface& A) const;
00031   void Average(GlobalVector& u) const;
00032   void Distribute(GlobalVector& u) const;
00033   void Zero(GlobalVector& u) const;
00034   bool ZeroCheck(const GlobalVector& u) const;
00035   
00036   void CondenseHanging(IntVector& indices) const;
00037   void CondenseHanging(EntryMatrix& E, IntVector& indices) const;
00038   void CondenseHangingPatch(EntryMatrix& E, IntVector& indices) const;
00039 };
00040 }
00041 
00042 #endif

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