00001 #ifndef _VarSuperbee_H 00002 #define _VarSuperbee_H 00003 00004 00005 00062 #include <math.h> 00063 00064 00065 class VarSuperbee : public DoubleMinmod 00066 { 00067 private: 00068 double alpha; // [0.0,1.0] 00069 00070 public: 00071 VarSuperbee(double anAlpha=0.0){alpha= anAlpha;} 00072 virtual ~VarSuperbee(){} 00073 00074 00075 virtual double average(double a, double b) 00076 { 00077 double val=0.0; 00078 00079 if( (a*b) > 0.0 ) 00080 val= minmod( alpha*maxmod(a,b) + (1.0-alpha)*minmod(a,b), minmod(2.0*a,2.0*b) ); 00081 00082 return val; 00083 } 00084 }; 00085 00086 #endif