00001 #ifndef _MY_FaceFluxSimpleBlackOil_ 00002 #define _MY_FaceFluxSimpleBlackOil_ 00003 #include "facefluxfunction.h" 00004 #include "flashcompositional.h" 00005 #include "fchaventmobility.h" 00006 #include "dfchaventmobility.h" 00007 #include "globals.h" 00008 #include "orthomesh.h" 00009 00010 00014 class FaceFluxSimpleBlackOil : public FaceFluxFunction 00015 { 00016 protected: 00017 OrthoMesh &m_mesh; 00018 FlashCompositional &m_flash; 00019 FChaventMobility m_mob; 00020 DFChaventMobility m_Dmob; 00021 VecDouble m_vNormalVel; 00022 const VecDouble *m_pP; 00023 double m_Sw1,m_Sw2,m_cell1,m_cell2; 00024 VecDouble m_vViscosities1; 00025 VecDouble m_vViscosities2; 00026 bool m_bUnsaturated; 00027 double m_cl11,m_cl12,m_cl21,m_cl22; 00028 double m_cd11,m_cd12,m_cd21,m_cd22; 00029 protected: 00030 00031 public: 00032 FaceFluxSimpleBlackOil(OrthoMesh &mesh,FlashCompositional &flash); 00033 ~FaceFluxSimpleBlackOil(){} 00034 00035 00036 00037 virtual void fluxAtFace(VecDouble &vFlux, const FaceInfo &face,const VecDouble &Q1,const VecDouble &Q2); 00038 virtual double maxLocalCharVelocity(const FaceInfo &face,const VecDouble &Q1, const VecDouble &Q2); 00039 00040 00041 virtual void updateDynamicData(DynamicBase &dynMod); 00042 virtual void maxGlobalCharVelocity(double vel[3]); 00043 virtual void transformToFlash(VecDouble &vec); 00044 virtual const VecDouble& getPressure(){assert(m_pP);return *m_pP;} 00045 00046 00047 00048 }; 00049 00050 #endif 00051