00001 #ifndef BERMANPHASE_H
00002 #define BERMANPHASE_H
00003
00004 #include "Phase.h"
00012 struct BermanData {
00014 char *label;
00016 char *formula;
00018 double mw;
00020 double hr;
00022 double sr;
00024 double k[4];
00026 double v[5];
00028 double Tt;
00030 double Ht;
00032 double l[2];
00033 };
00034
00041 class BermanPhase: public Phase {
00042 public:
00044 BermanPhase();
00046 BermanPhase(BermanData* dat);
00048 virtual void setPa(double lpa);
00049
00051 virtual double getGibbs();
00053 virtual double getEnthalpy();
00055 virtual double getEntropy();
00057 virtual double getCp();
00059 virtual double getdCpdT();
00061 virtual double getVolume();
00063 virtual double getdVdT();
00065 virtual double getdVdP();
00067 virtual double getd2VdT2();
00069 virtual double getd2VdTdP();
00071 virtual double getd2VdP2();
00072
00074 friend class BermanLambdaPhase;
00075 protected:
00077 BermanData *dat;
00079 virtual void init(BermanData* bd);
00080 private:
00082 const double pbr;
00084 double pb;
00086 double G(double tk,double pb);
00088 double H(double tk,double pb);
00090 double S(double tk,double pb);
00092 double Cp(double tk,double pb);
00094 double dCpdT(double tk,double pb);
00096 double V(double tk,double pb);
00098 double dVdT(double tk,double pb);
00100 double dVdP(double tk,double pb);
00102 double d2VdT2(double tk,double pb);
00104 double d2VdTdP(double tk,double pb);
00106 double d2VdP2(double tk,double pb);
00107 };
00108
00109 #endif
00110
00111
00112
00113
00114