Go to the documentation of this file.00001
00002
00003
00004 #ifndef linearForm_hh
00005 #define linearForm_hh
00006
00007 #include "basics/outputOperator.hh"
00008 #include "basics/typedefs.hh"
00009
00010 namespace concepts {
00011
00012 template<class F>
00013 class Element;
00014
00015 template<class F>
00016 class ElementMatrix;
00017
00018 class BoundaryConditions;
00019
00020
00021
00026 template<class F, class G = typename Realtype<F>::type>
00027 class LinearForm : virtual public OutputOperator {
00028 public:
00034 virtual void operator()(const Element<G>& elm, ElementMatrix<F>& em) = 0;
00035 protected:
00036 virtual std::ostream& info(std::ostream& os) const;
00037 };
00038
00039
00040
00053 template<class F>
00054 class Neumann : public concepts::LinearForm<F> {
00055 public:
00060 Neumann(const BoundaryConditions* bc);
00061 virtual ~Neumann();
00062 protected:
00063 virtual std::ostream& info(std::ostream& os) const;
00065 std::auto_ptr<BoundaryConditions> bc_;
00066 };
00067
00068 }
00069
00070 #endif // linearForm_hh