hnstructureq42d.h

Go to the documentation of this file.
00001 #ifndef __HNStructureQ42d_h
00002 #define __HNStructureQ42d_h
00003 
00004 #include "hnstructureq22d.h"
00005 
00006 namespace Gascoigne
00007 {
00008 
00009 /**********************************************************/
00010 
00011   class HNStructureQ42d : public HNStructureQ22d
00012   {
00013     protected:
00014       nmatrix<double>                       M,Mq2;
00015       nvector<fixarray<5,double> >          w,wq2;
00016       const std::map<int,fixarray<6,int> > *q4edges;
00017 
00018       typedef std::map<int,fixarray<6,int> >::iterator       iteratorq4;
00019       typedef std::map<int,fixarray<6,int> >::const_iterator const_iteratorq4;
00020 
00021       void add_column(EntryMatrix& A, const EntryMatrix&B, int j1, int j2, double s=1.) const;
00022       void add_row(EntryMatrix& A, const EntryMatrix&B, int i1, int i2, double s=1.) const;
00023       void GetHangingIndices(std::vector<int>& hang, const IntVector& indices) const;
00024       fixarray<5,int> local_nodes(int e,int n) const;
00025       void modify_column_higher(EntryMatrix& E, const std::vector<int>& hang, const IntVector& indices) const;
00026       void modify_column_lower(EntryMatrix& E, const std::vector<int>& hang, const IntVector& indices) const;
00027       void modify_row_higher(EntryMatrix& E, const std::vector<int>& hang, const IntVector& indices) const;
00028       void modify_row_lower(EntryMatrix& E, const std::vector<int>& hang, const IntVector& indices) const;
00029       const fixarray<6,int>& regular_nodes(int i) const;
00030 
00031     public:
00032       HNStructureQ42d();
00033       ~HNStructureQ42d() { }
00034 
00035       void ReInit(const MeshInterface* m);
00036 
00037       void CondenseHanging(IntVector& indices) const;
00038       void CondenseHanging(EntryMatrix& E, IntVector& indices) const;
00039       void CondenseHangingLowerHigher(EntryMatrix& E, IntVector& indices) const;
00040       void CondenseHangingHigherLower(EntryMatrix& E, IntVector& indices) const;
00041       void MatrixDiag(int ncomp, MatrixInterface& A) const;
00042       void SparseStructureDiag(SparseStructure& S) const;
00043 
00044       void Zero(GlobalVector& u) const;
00045       void Average(GlobalVector& u) const;
00046       void Distribute(GlobalVector& u) const;
00047 
00048       bool ZeroCheck(const GlobalVector& u) const;
00049   };
00050 
00051 /**********************************************************/
00052 
00053 }
00054 
00055 #endif

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