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