• Main Page
  • Classes
  • Files
  • File List

Melilite.h

00001 #ifndef MELILITE_H
00002 #define MELILITE_H
00003 
00004 #include "MeltsSolution.h"
00005 #include "BermanPhase.h"
00006 
00019 class Melilite: public MeltsSolution {
00020  public:
00022   Melilite();
00024   virtual ~Melilite();
00026   const int NCOMP;
00028   const int AKERMANITE  ;
00030   const int GEHLENITE;
00032   const int FEAKERMANITE;
00034   const int NAMELILITE;
00036   virtual double getGibbs();    // overrides MeltsSolution
00038   virtual double getMu(int i);  // overrides MeltsSolution
00040   virtual double getEnthalpy(); // overrides MeltsSolution
00042   virtual double getEntropy();  // overrides MeltsSolution
00044   virtual double getCp();       // overrides MeltsSolution
00046   virtual double getdCpdT();    // overrides MeltsSolution
00048   virtual double getVolume();   // overrides MeltsSolution
00050   virtual double getdVdT();     // overrides MeltsSolution
00052   virtual double getdVdP();     // overrides MeltsSolution
00054   virtual double getd2VdT2();   // overrides MeltsSolution
00056   virtual double getd2VdTdP();  // overrides MeltsSolution
00058   virtual double getd2VdP2();   // overrides MeltsSolution
00059  protected:
00061   virtual void init();
00063   static BermanData ssdata[];
00064  private:
00066   double lastTk;
00068   double lastPb;
00070   void updateDisorder(double tk,double pb);
00072   double gDisGh; 
00074   double hDisGh; 
00076   double sDisGh; 
00078   double cpDisGh; 
00080   double dcpdtDisGh; 
00082   double vDisGh; 
00084   double dvdtDisGh; 
00086   double dvdpDisGh;
00088   double d2vdt2DisGh; 
00090   double d2vdtdpDisGh; 
00092   double d2vdp2DisGh;
00093 };
00094 
00096 // Function prototypes for relevant MELTS routines
00098 
00101 extern int testMel(int mask, double t, double p,int na,int nr,char **names,
00102                    char **formulas,double *r,double *m);
00103 
00106 extern void conMel(int inpMask,int outMask,double t,double p,
00107                    double *e,double *m,double *r,double *x,double **dm,
00108                    double ***d2m,double **dr,double ****d3m);
00109 
00112 extern void actMel(int mask,double t,double p,double *x,
00113                    double *a,double *mu,double **dr);
00114 
00117 extern void gmixMel(int mask,double t,double p,double *x,
00118                     double *gmix,double *dr,double **dr2,
00119                     double ***dr3);
00120 
00123 extern void hmixMel(int mask,double t,double p,double *x,
00124                     double *hmix);
00127 extern void smixMel(int mask,double t,double p,double *x,
00128                     double *smix,double *dr,double **dr2);
00129 
00132 extern void cpmixMel(int mask,double t,double p,double *x,
00133                      double *cpmix,double *dt,double *dr);
00134 
00137 extern void vmixMel(int mask,double t,double p,double *x,
00138                     double *vmix,double *dr,double **dr2,
00139                     double *dt,double *dp,double *dt2,
00140                     double *dtdp,double *dp2,double *drdt,
00141                     double *drdp);
00142     
00143 #endif  
00144 

Generated on Fri Aug 6 2010 13:30:28 for phases by  doxygen 1.7.1