q12d.h

Go to the documentation of this file.
00001 #ifndef  __Q1Simple_h
00002 #define  __Q1Simple_h
00003 
00004 #include  "q1.h"
00005 #include  "edgeinfocontainer.h"
00006 #include  "energyestimatorintegrator.h"
00007 
00008 namespace Gascoigne
00009 {
00010 
00018 
00019 class Q12d : public Q1
00020 {
00021  protected:
00022 
00023   HNStructureInterface* NewHNStructure();
00024 
00025   void EEJumps(EdgeInfoContainer<2>& EIC, const GlobalVector& u, const EnergyEstimatorIntegrator<2>& EEI, const HierarchicalMesh2d* HM) const;
00026   void EEJumpNorm(EdgeInfoContainer<2>& EIC, DoubleVector& eta, const EnergyEstimatorIntegrator<2>& EEI, const HierarchicalMesh2d* HM) const;
00027   void EEResidual(DoubleVector& eta, const GlobalVector& u, const Equation& EQ, const DomainRightHandSide* RHS, const EnergyEstimatorIntegrator<2>& EEI) const;
00028   int GetCellNumber(const Vertex2d& p0, Vertex2d& p) const;
00029   void VertexTransformation(const Vertex2d& p0, Vertex2d& p, int iq) const;
00030 
00031 public:
00032 
00033   //
00035   //
00036   
00037   Q12d();
00038 
00039   std::string GetName() const {return "Q12d";}
00040   
00041   void BasicInit(const ParamFile* pf);
00042 
00043   void Interpolate(GlobalVector& u, const DomainInitialCondition& U) const;
00044   void InterpolateSolutionByPatches(GlobalVector& u, const GlobalVector& uold) const;
00045   void ConstructInterpolator(MgInterpolatorInterface* I, const MeshTransferInterface* MT);
00046   void StrongDirichletVector(GlobalVector& u, const DirichletData& BF, int col, const std::vector<int>& comp, double d) const;
00047 
00048   void EnergyEstimator(EdgeInfoContainerInterface& EIC, DoubleVector& eta, const GlobalVector& u, const Equation& EQ, const DomainRightHandSide* RHS, const std::string & s_energytype, double d_visc) const;
00049 
00050   nmatrix<double> GetLocalInterpolationWeights() const;
00051 
00052 };
00053 }
00054 
00055 #endif

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