q2.h

Go to the documentation of this file.
00001 #ifndef  __Q2_h
00002 #define  __Q2_h
00003 
00004 #include  "patchdiscretization.h"
00005 #include  "hnstructureq1.h"
00006 
00007 namespace Gascoigne
00008 {
00009 
00014 
00018 
00019 class Q2 : public PatchDiscretization
00020 {
00021 protected:
00022   HNStructureQ1*    HN;
00023 
00024   nvector<int> GetLocalIndices(int iq) const {
00025     return *GetPatchMesh()->IndicesOfPatch(iq);
00026   }
00027   void LocalToGlobal(MatrixInterface& A, EntryMatrix& E, int iq, double s) const;
00028 
00029 public:
00030 
00031 //
00033 //
00034 
00035   Q2();
00036   ~Q2();
00037 
00038   int n() const;
00039   int nc() const;
00040   int n_withouthanging() const;
00041   void ReInit(const MeshInterface* MP);
00042 
00043   void Interpolate(GlobalVector& u, const DomainInitialCondition& U) const;
00044   void StrongDirichletMatrix(MatrixInterface& A, int col, const std::vector<int>& comp) const;
00045   void StrongDirichletMatrixOnlyRow(MatrixInterface& A, int col, const std::vector<int>& comp) const;
00046   void StrongDirichletVector(GlobalVector& u, const DirichletData& BF, int col, const std::vector<int>& comp, double d) const;
00047   void StrongDirichletVectorZero(GlobalVector& u, int col, const std::vector<int>& comp) const;
00048   void InterpolateSolution(GlobalVector& u, const GlobalVector& uold)const;
00049   void HNAverage   (GlobalVector& x) const;
00050   void HNDistribute(GlobalVector& x) const;
00051   void HNZero      (GlobalVector& x) const;
00052   bool HNZeroCheck (const GlobalVector& x) const;
00053   void Matrix(MatrixInterface& A, const GlobalVector& u, const Equation& EQ, double d) const;
00054   void MassMatrix(MatrixInterface& A) const;
00055   void Structure(SparseStructureInterface* SI) const;
00056   void InitFilter(nvector<double>& F) const;
00057 };
00058 }
00059 
00060 #endif

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