00001
00002
00003
00004
00005
00006 #ifndef DMWVAPOR_H
00007 #define DMWVAPOR_H
00008
00009
00010 #include "Phase.h"
00011 #include "SpecSolNID.h"
00012
00026 class DMWvapor: public SpecSolNID {
00027
00028 public:
00029
00031 const int NCOMP;
00033 const int NSPEC;
00035 const int H2DEX;
00037 const int N2DEX;
00039 const int O2DEX;
00041 const int S2DEX;
00043 const int CL2DEX;
00045 const int CODEX;
00047 const int H2SDEX;
00049 const int CH4DEX;
00051 const int CO2DEX;
00053 const int H2ODEX;
00055 const int SO2DEX;
00056
00057
00059 DMWvapor();
00061 virtual ~DMWvapor();
00062
00063
00065 virtual void setTk(double ltk);
00067 virtual void setPa(double lpq);
00069 virtual double getGibbs();
00071 virtual double getEnthalpy();
00073 virtual double getEntropy();
00075 virtual void getVolume();
00076
00077 protected:
00079 double pb
00081 double Z;
00083 double B,C,D,E;
00085 double dZdVm,dZdTm;
00087 double Tm;
00089 double Pm;
00091 double Vm;
00093 double sigma;
00095 double epsilon;
00097 virtual void init();
00099 double sigmavec[11];
00101 double epsilonvec[11];
00103 static double a[15];
00105 static double **k[2];
00107 static double allstoich[11][6];
00111 virtual double mufunc(int p,double *x);
00116 virtual double dmufunc(int m,int p,double *x);
00120 virtual double muxs(int ispec,double *x);
00125 virtual double dmuxs(int m,int p,double *x);
00127 virtual void update() {
00128 if (!updated) {
00129 updateMvars();
00130 SpecSolution::update();
00131 }
00132 return;
00133 }
00135 virtual void updateMvars() throw(PhaseError *);
00136 };
00137
00138 #endif
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153