00001 #ifndef _MY_DFChaventMobility_
00002 #define _MY_DFChaventMobility_
00003 #include "sfunctions.h"
00004
00005
00009 class DFChaventMobility : public Function1D
00010 {
00011 private:
00012
00013 protected:
00014 double m_M;
00015 double MinSo,MinSw,MaxSo,MaxSw;
00016 double _c,_d,_a1,_a2,_a3;
00017
00018 double m_inflectPoint;
00019 double m_inflectPointDeriv;
00020
00021
00022 public:
00023 DFChaventMobility(double vw,double vo,double Srw,double Sro);
00024 virtual ~DFChaventMobility();
00025 virtual double operator()(double x,unsigned cmp=0) const;
00026
00027 virtual void getMinMaxValues(double a, double b,double &min,double &max) const;
00028 virtual double getMaxNorm(double a, double b) const;
00029 void updateInflectionPoint();
00030 double getInflectionDerivativePoint(double M);
00031 virtual void setParameters(const VecDouble &v);
00032
00033
00034 };
00035
00036 #endif