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

bem/operator.hh
Go to the documentation of this file.
00001 /* Operators for the boundary element method
00002  */
00003 
00004 #ifndef bemOperator_hh
00005 #define bemOperator_hh
00006 
00007 #ifdef __GUNG__
00008   #pragma interface
00009 #endif
00010 
00011 #include "basics/exceptions.hh"
00012 #include "operator/compositions.hh"
00013 #include "bem/space.hh"
00014 
00015 namespace bem {
00016 
00017   // ********************************************************************* D **
00018 
00023   template <class F = concepts::Real>
00024   class D : public concepts::Operator<F> {
00025   public:
00029     D(const concepts::Space<F>& spc);
00031     ~D() {delete[] val_;}
00032 
00036     void operator()(const concepts::Function<F>& fncY,
00037                     concepts::Function<F>& fncX);
00038     void operator()(const concepts::Vector<F>& fncY,
00039                     concepts::Vector<F>& fncX);
00040   protected:
00042     std::ostream& info(std::ostream& os) const;
00043 
00044   private:
00046     concepts::Real* val_;
00047   };
00048 
00049   // ******************************************************************* D_1 **
00050 
00056   template <class F = concepts::Real>
00057   class D_1 : public concepts::Operator<F> {
00058   public:
00062     D_1(const concepts::Space<F>& spc);
00064     ~D_1() {delete[] val_;}
00065 
00069     void operator()(const concepts::Function<F>& fncY,
00070                     concepts::Function<F>& fncX);
00071     void operator()(const concepts::Vector<F>& fncY,
00072                     concepts::Vector<F>& fncX);
00073   protected:
00075     std::ostream& info(std::ostream& os) const;
00076 
00077   private:
00079     concepts::Real* val_;
00080   };
00081 
00082 } // namespace bem
00083 
00084 #endif // bemOperator_hh

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