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