Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

formula/elementFormula.hh
Go to the documentation of this file.
00001 /* element formula class
00002 */
00003 
00004 #ifndef elementformula_hh
00005 #define elementformula_hh
00006 
00007 #include "basics/cloneable.hh"
00008 #include "basics/outputOperator.hh"
00009 #include "basics/typedefs.hh"
00010 #include "toolbox/sharedPointer.hh"
00011 #include "space/element.hh"
00012 
00013 namespace concepts {
00014 
00015 
00016   // ******************************************************** ElementFormula **
00017 
00028   template<typename F, typename G = typename Realtype<F>::type>
00029   class ElementFormula : public Cloneable, public OutputOperator {
00030   public:
00031     typedef F value_type;
00032 
00038     virtual F operator() (const ElementWithCell<G>& elm, const Real p,
00039                           const Real t = 0.0) const = 0;
00040     virtual F operator() (const ElementWithCell<G>& elm, const Real2d& p,
00041                           const Real t = 0.0) const = 0;
00042     virtual F operator() (const ElementWithCell<G>& elm, const Real3d& p,
00043                           const Real t = 0.0) const = 0;
00045     virtual ElementFormula<F,G>* clone() const = 0;
00046 
00047     virtual ~ElementFormula() { }
00048 
00049 #if 0
00050     bool operator==(const ElementFormula& other) {
00051       return id == other.id; 
00052     }
00053   private:
00054     int id;
00055     static int CUR_ID;
00056 #endif
00057   };  
00058 
00059 } // namespace concepts
00060 
00061 #endif // elementformula_hh
00062 

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)