00001 #ifndef ORTHOPYROXENE_H
00002 #define ORTHOPYROXENE_H
00003
00004 #include "MeltsSolution.h"
00005 #include "BermanPhase.h"
00006
00023 class Orthopyroxene: public MeltsSolution {
00024 public:
00026 Orthopyroxene();
00028 virtual ~Orthopyroxene();
00030 const int NCOMP;
00032 const int DIOPSIDE;
00034 const int ENSTATITE;
00036 const int HEDENBERGITE;
00038 const int ALBUFFONITE;
00040 const int BUFFONITE;
00042 const int ESSENITE;
00044 const int JADEITE;
00045 protected:
00047 virtual void init();
00049 static BermanData ssdata[];
00050 };
00051
00053
00055
00058 extern int testOpx(int mask, double t, double p,int na,int nr,char **names,
00059 char **formulas,double *r,double *m);
00060
00063 extern void conOpx(int inpMask,int outMask,double t,double p,
00064 double *e,double *m,double *r,double *x,double **dm,
00065 double ***d2m,double **dr,double ****d3m);
00066
00069 extern void actOpx(int mask,double t,double p,double *x,
00070 double *a,double *mu,double **dr);
00071
00074 extern void gmixOpx(int mask,double t,double p,double *x,
00075 double *gmix,double *dr,double **dr2,
00076 double ***dr3);
00077
00080 extern void hmixOpx(int mask,double t,double p,double *x,
00081 double *hmix);
00084 extern void smixOpx(int mask,double t,double p,double *x,
00085 double *smix,double *dr,double **dr2);
00086
00089 extern void cpmixOpx(int mask,double t,double p,double *x,
00090 double *cpmix,double *dt,double *dr);
00091
00094 extern void vmixOpx(int mask,double t,double p,double *x,
00095 double *vmix,double *dr,double **dr2,
00096 double *dt,double *dp,double *dt2,
00097 double *dtdp,double *dp2,double *drdt,
00098 double *drdp);
00099
00100 #endif
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116