• Main Page
  • Classes
  • Files
  • File List

Feldspar.h

00001 #ifndef FELDSPAR_H
00002 #define FELDSPAR_H
00003 
00004 #include "MeltsSolution.h"
00005 #include "BermanPhase.h"
00006 
00021 class Feldspar: public MeltsSolution {
00022  public:
00024   Feldspar();
00026   virtual ~Feldspar();
00028   const int NCOMP;
00030   const int ALBITE;
00032   const int ANORTHITE;
00034   const int SANIDINE;
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 gDisAb; 
00074   double hDisAb; 
00076   double sDisAb; 
00078   double cpDisAb; 
00080   double dcpdtDisAb; 
00082   double vDisAb; 
00084   double dvdtDisAb; 
00086   double dvdpDisAb;
00088   double d2vdt2DisAb; 
00090   double d2vdtdpDisAb; 
00092   double d2vdp2DisAb;
00094   double gDisSn; 
00096   double hDisSn; 
00098   double sDisSn; 
00100   double cpDisSn; 
00102   double dcpdtDisSn; 
00104   double vDisSn; 
00106   double dvdtDisSn; 
00108   double dvdpDisSn;
00110   double d2vdt2DisSn; 
00112   double d2vdtdpDisSn; 
00114   double d2vdp2DisSn;
00115 };
00116 
00118 // Function prototypes for relevant MELTS routines
00120 
00123 extern int testFld(int mask, double t, double p,int na,int nr,char **names,
00124                    char **formulas,double *r,double *m);
00125 
00128 extern void conFld(int inpMask,int outMask,double t,double p,
00129                    double *e,double *m,double *r,double *x,double **dm,
00130                    double ***d2m,double **dr,double ****d3m);
00131 
00134 extern void actFld(int mask,double t,double p,double *x,
00135                    double *a,double *mu,double **dr);
00136 
00139 extern void gmixFld(int mask,double t,double p,double *x,
00140                     double *gmix,double *dr,double **dr2,
00141                     double ***dr3);
00142 
00145 extern void hmixFld(int mask,double t,double p,double *x,
00146                     double *hmix);
00149 extern void smixFld(int mask,double t,double p,double *x,
00150                     double *smix,double *dr,double **dr2);
00151 
00154 extern void cpmixFld(int mask,double t,double p,double *x,
00155                      double *cpmix,double *dt,double *dr);
00156 
00159 extern void vmixFld(int mask,double t,double p,double *x,
00160                     double *vmix,double *dr,double **dr2,
00161                     double *dt,double *dp,double *dt2,
00162                     double *dtdp,double *dp2,double *drdt,
00163                     double *drdp);
00164                     
00167 extern void albite(double p, double t, double *gDis, double *hDis, 
00168                    double *sDis, double *cpDis, double *dcpdtDis, 
00169                    double *vDis, double *dvdtDis, double *dvdpDis, 
00170                    double *d2vdt2Dis, double *d2vdtdpDis, double *d2vdp2Dis);
00171     
00172 #endif  
00173 

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