00001 #ifndef OLIVINE_H
00002 #define OLIVINE_H
00003
00004 #include "MeltsSolution.h"
00005 #include "BermanPhase.h"
00006
00031 class Olivine: public MeltsSolution {
00032 public:
00034 Olivine();
00036 virtual ~Olivine();
00038 const int NCOMP;
00040 const int TEPHROITE;
00042 const int FAYALITE;
00044 const int CO_OLIVINE;
00046 const int NI_OLIVINE;
00048 const int MONTICELLITE;
00050 const int FORSTERITE;
00051 protected:
00053 virtual void init();
00055 static BermanData ssdata[];
00056 };
00057
00059
00061
00064 extern int testOlv(int mask, double t, double p,int na,int nr,char **names,
00065 char **formulas,double *r,double *m);
00066
00069 extern void conOlv(int inpMask,int outMask,double t,double p,
00070 double *e,double *m,double *r,double *x,double **dm,
00071 double ***d2m,double **dr,double ****d3m);
00072
00075 extern void actOlv(int mask,double t,double p,double *x,
00076 double *a,double *mu,double **dr);
00077
00080 extern void gmixOlv(int mask,double t,double p,double *x,
00081 double *gmix,double *dr,double **dr2,
00082 double ***dr3);
00083
00086 extern void hmixOlv(int mask,double t,double p,double *x,
00087 double *hmix);
00090 extern void smixOlv(int mask,double t,double p,double *x,
00091 double *smix,double *dr,double **dr2);
00092
00095 extern void cpmixOlv(int mask,double t,double p,double *x,
00096 double *cpmix,double *dt,double *dr);
00097
00100 extern void vmixOlv(int mask,double t,double p,double *x,
00101 double *vmix,double *dr,double **dr2,
00102 double *dt,double *dp,double *dt2,
00103 double *dtdp,double *dp2,double *drdt,
00104 double *drdp);
00105
00106 #endif