00001 #ifndef _MY__FlashHenryLaw_
00002 #define _MY_FlashHenryLaw_
00003 #include "flashcompositional.h"
00004 #include "orthomesh.h"
00005
00006
00015 class FlashHenryLaw : public FlashCompositional
00016 {
00017 private:
00018 double m_invKh,m_c,m_mc,m_mw,m_vc,m_vw;
00019 double m_co2MV,m_H2OMV;
00020 VecDouble m_components_molar_mass;
00021 OrthoMesh &m_mesh;
00022 protected:
00023
00024 public:
00025 enum Phases {AQUEOUS, CO2_RICH, SOLID};
00026 enum Components {WATER,CO2};
00027
00028 FlashHenryLaw(OrthoMesh &mesh,double Kh,double vn,double R,double T,double mc,double mw,double vc,double vw);
00029 ~FlashHenryLaw();
00030 virtual void getPhasesVolume(double P, const FlashData &data, VecDouble &phasesVol);
00031 virtual void flash(double P, const VecDouble &compTotalMoles, FlashData &data);
00032 virtual const VecDouble& getComponentsMolarMass() const;
00033 virtual void getPhasesViscosities(double P,const FlashData &data,VecDouble &visc);
00034 virtual void printOutput();
00035
00036 };
00037
00038 #endif