00001 
00002 
00003 
00004 
00005 
00006 
00007 #ifndef SPECSOLNID_H
00008 #define SPECSOLNID_H
00009 
00010 #include "SpecSolution.h"
00011 #include "PhaseExceptions.h"
00012 
00025 class SpecSolNID: public SpecSolution {
00026  public:
00028   SpecSolNID();
00030   virtual ~SpecSolNID();
00031 
00032   
00034   virtual double getGibbs();    
00036   virtual double getSpecMu(int ispec);
00038   virtual double getEnthalpy(); 
00040   double getEntropy();  
00041 
00042  protected:
00044   double **Wh,**Ws;                                  
00045 
00046   
00048   virtual void init();
00050   virtual int speciate_function(double tol) throw(PhaseError *) ;
00054   virtual double mufunc(int p,double *x);    
00059   virtual double dmufunc(int m,int p,double *x);
00063   virtual double muxs(int ispec,double *x);
00068   virtual double dmuxs(int m,int p,double *x);
00071   virtual void getd2Gds2(double **d2gds2);
00073   virtual void getd3Gds2dT(double **d3gds2dt);
00077   virtual void getd3Gds3(double ***d3gds3);
00081  private:
00083   double *grad,*delxi,**H,*delta,*test,*b,*d,*smalldelta;
00084 };
00085 
00086 #endif
00087 
00088 
00089 
00090 
00091 
00092 
00093 
00094 
00095 
00096 
00097 
00098 
00099 
00100 
00101 
00102 
00103 
00104 
00105 
00106 
00107 
00108 
00109