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