00001 #ifndef _MY_CompositionalFlash_
00002 #define _MY_CompositionalFlash_
00003 #include "flashbase.h"
00004
00005
00009 class FlashCompositional : public FlashBase
00010 {
00011 private:
00012
00013 protected:
00014 FlashDataArray m_dataArray;
00015 const FlashDataArray& getFlashDataArray(){return m_dataArray;}
00016
00017 public:
00018
00019 FlashCompositional(unsigned n_phases,unsigned n_components);
00020 virtual ~FlashCompositional(){}
00021
00022
00023 void getNumericTotalVolumeDerivative(double P,const VecDouble &compTotalMoles,VecDouble &compTotalDeriv,double h);
00024 double getNumericFluidCompressibility(double P,const FlashData &data,double tol=1.e-6);
00025
00026 virtual void getPhasesVolume(double P, const FlashData &data, VecDouble &phasesVol);
00027 virtual void flash(double P, const VecDouble &compTotalMoles, FlashData &data);
00028 virtual void flash(Index cell, FlashData &data);
00029
00030 virtual void execute();
00031 virtual void printOutput();
00032
00033
00034 virtual const VecDouble& getComponentsMolarMass() const;
00036
00037 virtual double getFluidCompressibility(double P, FlashData &data);
00038 virtual void getPhasesViscosities(double P,const FlashData &data,VecDouble &visc);
00039 virtual void getTotalVolumeDerivatives(double P,FlashData &data,VecDouble &dv_dm);
00040 };
00041
00042 #endif