00001 00005 class GlobalPolynSpace : public HandleId 00006 00007 { 00008 public: 00009 GlobalPolynSpace () {} 00010 virtual ~GlobalPolynSpace () {} 00011 00012 virtual void valuePt (Vec(real)& basis_func_at_x, const Ptv(real)& x) =0; 00013 virtual void derivativePt ( Mat(real)& Dbasis_func_at_x, 00014 const Vec(real)& basis_func_at_x, 00015 const Ptv(real)& x) = 0; 00016 virtual int getDim (int no_of_physical_space_dim) =0; 00017 }; 00018 00019 extern const char** hierGlobalPolynSpace (); 00020 extern GlobalPolynSpace* createGlobalPolynSpace 00021 (const String& classname); 00022 00023 00024 00025 00026 class MultiLinPolyn : public GlobalPolynSpace 00027 { 00028 public: 00029 MultiLinPolyn () {} 00030 virtual ~MultiLinPolyn () {} 00031 00032 virtual void valuePt (Vec(real)& basis_func_at_x, const Ptv(real)& x); 00033 virtual void derivativePt ( Mat(real)& Dbasis_func_at_x, 00034 const Vec(real)& basis_func_at_x, 00035 const Ptv(real)& x); 00036 virtual int getDim (int no_of_physical_space_dim); 00037 }; 00038 00039 00040 class QuadPolyn : public GlobalPolynSpace 00041 { 00042 public: 00043 QuadPolyn () {} 00044 virtual ~QuadPolyn () {} 00045 00046 virtual void valuePt (Vec(real)& basis_func_at_x, const Ptv(real)& x); 00047 virtual void derivativePt ( Mat(real)& Dbasis_func_at_x, 00048 const Vec(real)& basis_func_at_x, 00049 const Ptv(real)& x); 00050 virtual int getDim (int no_of_physical_space_dim); 00051 }; 00052 00053