00001 #ifndef _MY_FaceFluxWithGravity_
00002 #define _MY_FaceFluxWithGravity_
00003 #include "facefluxfunction.h"
00004 #include "sfunctions.h"
00005 #include "orthomesh.h"
00006
00017 class FaceFluxWithGravity : public FaceFluxFunction
00018 {
00019 private:
00020 Function1D &m_fMobW,&m_DfMobW,&m_fMobGrav,&m_DfMobGrav;
00021 double m_gc;
00022 double m_maxK;
00023 VecDouble m_Vn;
00024 OrthoMesh &m_mesh;
00025 const VecDouble &m_cK;
00026
00027 protected:
00028
00029 public:
00030 FaceFluxWithGravity(OrthoMesh &mesh,Function1D &fMobW,Function1D &DfMobW,Function1D &fMobGrav,Function1D &DfMobGrav,const VecDouble &cK,double gc);
00031 virtual ~FaceFluxWithGravity(){}
00032 const VecDouble& getPermeability(){return m_cK;}
00033
00034 virtual void fluxAtFace(VecDouble &vFlux, const FaceInfo &face,const VecDouble &Q1,const VecDouble &Q2);
00035
00036 virtual void exactFluxAtFace(VecDouble &vFlux, const FaceInfo &face,const VecDouble &Q1,const VecDouble &Q2);
00037
00038 virtual double maxLocalCharVelocity(const FaceInfo &face,const VecDouble &Q1, const VecDouble &Q2);
00039
00040 virtual void updateDynamicData(DynamicBase &dynMod);
00041 virtual void maxGlobalCharVelocity(double vel[3]);
00042 virtual void transformToFlash(VecDouble &vec){}
00043
00044
00045 };
00046
00047
00048 #endif