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

space/postProcess.hh
Go to the documentation of this file.
00001 /* post processing, ie. looping over all cells / elements
00002  * and doing something
00003  */
00004 
00005 #ifndef Postprocess_hh
00006 #define Postprocess_hh
00007 
00008 #include "basics/outputOperator.hh"
00009 #include "basics/typedefs.hh"
00010 
00011 namespace concepts {
00012 
00013   // forward declarations
00014   template<class F>
00015   class Space;
00016 
00017   template<class F>
00018   class Element;
00019 
00020   class Cell;
00021 
00022   class Mesh;
00023 
00024   // ******************************************************* CellPostprocess **
00025 
00035   template<class F>
00036   class CellPostprocess : public OutputOperator {
00037   public:
00042     virtual void operator() (const Element<F>& elm) = 0;
00043 
00048     virtual void operator() (const Cell& cell) = 0;
00049   protected:
00050     virtual std::ostream& info(std::ostream& os) const;
00051   };
00052 
00053   // ***************************************************** GlobalPostprocess **
00054 
00067   template<class F = Real>
00068   class GlobalPostprocess : public OutputOperator {
00069   public:
00073     GlobalPostprocess(const Space<F>& spc);
00074 
00078     GlobalPostprocess(Mesh& msh);
00079 
00086     void operator() (CellPostprocess<F>& perCell) const;
00087   protected:
00088     virtual std::ostream& info(std::ostream& os) const;
00089   private:
00091     const Space<F>* spc_;
00092 
00094     Mesh* msh_;
00095   };
00096 
00097 } // namespace concepts
00098 
00099 #endif // Postprocess_hh

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