00001 #ifndef GARNET_H
00002 #define GARNET_H
00003
00004 #include "MeltsSolution.h"
00005 #include "BermanPhase.h"
00006
00026 class Garnet: public MeltsSolution {
00027 public:
00029 Garnet();
00031 virtual ~Garnet();
00033 const int NCOMP;
00035 const int ALMANDINE;
00037 const int GROSSULAR;
00039 const int PYROPE;
00040 protected:
00042 virtual void init();
00044 static BermanData ssdata[];
00045 };
00046
00048
00050
00053 extern int testGrn(int mask, double t, double p,int na,int nr,char **names,
00054 char **formulas,double *r,double *m);
00055
00058 extern void conGrn(int inpMask,int outMask,double t,double p,
00059 double *e,double *m,double *r,double *x,double **dm,
00060 double ***d2m,double **dr,double ****d3m);
00061
00064 extern void actGrn(int mask,double t,double p,double *x,
00065 double *a,double *mu,double **dr);
00066
00069 extern void gmixGrn(int mask,double t,double p,double *x,
00070 double *gmix,double *dr,double **dr2,
00071 double ***dr3);
00072
00075 extern void hmixGrn(int mask,double t,double p,double *x,
00076 double *hmix);
00079 extern void smixGrn(int mask,double t,double p,double *x,
00080 double *smix,double *dr,double **dr2);
00081
00084 extern void cpmixGrn(int mask,double t,double p,double *x,
00085 double *cpmix,double *dt,double *dr);
00086
00089 extern void vmixGrn(int mask,double t,double p,double *x,
00090 double *vmix,double *dr,double **dr2,
00091 double *dt,double *dp,double *dt2,
00092 double *dtdp,double *dp2,double *drdt,
00093 double *drdp);
00094
00095 #endif
00096