navierstokes2d.h

Go to the documentation of this file.
00001 #ifndef  __NavierStokes2d_h
00002 #define  __NavierStokes2d_h
00003 
00004 #include  "equation.h"
00005 #include  "paramfile.h"
00006 
00007 /*-----------------------------------------*/
00008 
00009 namespace Gascoigne
00010 {
00011 class NavierStokes2d : public virtual Equation
00012 {
00013 protected:
00014 
00015   mutable double _h, _visc;
00016   double _penalty,_cut;
00017 
00018   double Laplace(const TestFunction& U, const TestFunction& N) const;
00019   double Convection(const FemFunction& U, const TestFunction& N) const;
00020 
00021   double Divergence(const FemFunction& U) const;
00022 
00023 public:
00024 
00025   ~NavierStokes2d();
00026   NavierStokes2d();
00027   NavierStokes2d(const ParamFile* pf);
00028 
00029   void OperatorStrong(DoubleVector& b, const FemFunction& U) const;
00030 
00031   std::string GetName() const { return "NavierStokes2d";}
00032   double Getpenalty()const {return _penalty;}
00033 
00034   int  GetNcomp() const { return 3; }
00035 
00036   //
00037   // Time
00038   //
00039 
00040   void SetTimePattern(TimePattern& P) const;
00041 
00042   //
00045   //
00046   void point(double h, const FemFunction& U, const Vertex2d& v) const { _h = h;}
00047 
00048   //
00049   // Semilinear Form
00050   //
00051 
00052   void Form(VectorIterator b, const FemFunction& U, const TestFunction& N) const;
00053 
00054   void Matrix(EntryMatrix& A, const FemFunction& U, const TestFunction& M, const TestFunction& N) const;
00055 };
00056 }
00057 
00058 #endif

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