00001 #include "flashcompositional.h"
00002 #include "orthomesh.h"
00003
00013 class FlashSimpleBlackOil : public FlashCompositional
00014 {
00015 private:
00016 VecDouble compMass;
00017 OrthoMesh &m_mesh;
00018 VecDoubleRef m;
00019 public:
00020 enum Phases {OIL=0,GAS=1};
00021
00022 FlashSimpleBlackOil(OrthoMesh &mesh);
00023 virtual ~FlashSimpleBlackOil();
00024
00025 virtual void execute(){}
00026 virtual void flash(Index cell, FlashData &data);
00027 virtual void flash(double P, const VecDouble &compTotalMoles, FlashData &data);
00028 virtual const VecDouble& getComponentsMolarMass() const;
00029 virtual void getPhasesViscosities(double P,const FlashData &data,VecDouble &visc);
00030
00031
00032
00033 virtual double getFluidCompressibility(double P, FlashData &data);
00034 virtual void getPhasesVolume(double P, const FlashData &data, VecDouble &phasesVol);
00036 double getBubblePressure(const FlashData &data);
00037
00038 void getTotalVolumeDerivatives(double P,FlashData &data,VecDouble &dv_dm);
00039 virtual void printOutput();
00040 };