00001 /* PhaseVinetEOS header file 00002 * Implementation of Vinet pressure EOS for Phase class group. 00003 * Designed in such a way that it can be easily replaced with other 00004 * equations of state. 00005 * Based on code from gibbs.c in Ghiorso's lates xMelts implementation 10/24/07 00006 * Victor Kress 00007 */ 00008 #ifndef VINETEOS_H 00009 #define VINETEOS_H 00010 00011 #include "PhaseExceptions.h" 00012 00023 class VinetEOS { 00024 public: 00026 VinetEOS(void); 00028 virtual ~VinetEOS(void); 00030 double tk; 00032 double pa; 00034 double tr; 00036 double pr; 00038 double V0; 00040 double alphaT; 00042 double K; 00044 double Kprime; 00046 virtual void update(void) throw(PhaseError *); 00048 double getMolarVolume(void); 00050 double getMolarGibbsPTerm(void); 00052 double getMolarEnthalpyPTerm(void); 00054 double getMolarEntropyPTerm(void); 00056 double getMolarCpPTerm(void); 00058 double getMolardCpdTPTerm(void); 00060 double getMolardVdT(void); 00062 double getMolardVdP(void); 00064 double getMolard2VdT2(void); 00066 double getMolard2VdTdP(void); 00068 double getMolard2VdP2(void); 00069 00070 private: 00072 double x; 00074 double x0; 00076 double dxdt,d2xdt2,dxdp,d2xdtdp,d2xdp2,dx0dt,d2x0dt2; 00077 }; 00078 00079 #endif