00001 /* Shape functions 00002 */ 00003 00004 #ifndef shapefunction_hh 00005 #define shapefunction_hh 00006 00007 #include "basics/outputOperator.hh" 00008 00009 namespace concepts { 00010 00011 // ********************************************************* ShapeFunction ** 00012 00021 template<class F> 00022 class ShapeFunction1D : public OutputOperator { 00023 public: 00029 ShapeFunction1D(const uint n, const uint nP) : 00030 values_(0), n_(n), nP_(nP) {} 00031 ~ShapeFunction1D() {} 00033 uint n() const { return n_; } 00036 uint nP() const { return nP_; } 00038 const F* values() const { return values_; } 00039 protected: 00040 virtual std::ostream& info(std::ostream& os) const = 0; 00041 00043 F* values_; 00044 private: 00046 uint n_; 00047 00049 uint nP_; 00050 }; 00051 00052 } // namespace concepts 00053 00054 #endif // shapefunction_hh