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;
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