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

bemInt/arbKrnlGal000.hh
Go to the documentation of this file.
00001 /* Bilinear form for arbitrary kernel with NO singularities.
00002     constant test/trial functions,
00003     all cases by Radon's fifth-degree formula
00004 */
00005 
00006 #ifndef bemIntArbKrnlGal000_hh
00007 #define bemIntArbKrnlGal000_hh
00008 
00009 #ifdef __GNUG__
00010 #pragma interface
00011 #endif
00012 
00013 #include "bem/element.hh"
00014 
00015 namespace bem {
00016 
00017   // *************************************************** ArbKrnlGal000Traits **
00018 
00019   template <class F, class K>
00020   class ArbKrnlGal000Traits {
00021   public:
00022     static F eval(K& k, const concepts::Real3d& x, const concepts::Real3d& y) {
00023       return k(x, y);
00024     }
00025   };
00026 
00027   // ********************************************************* ArbKrnlGal000 **
00028 
00037   template <class F, class K>
00038   class ArbKrnlGal000 {
00039   public:
00040     typedef ArbKrnlGal000Traits<F,K> Traits;
00041 
00042     // Constructor
00043     ArbKrnlGal000(K& k) : k_(k) {}
00044 
00050     void operator()(const Constant3d000<F>& elmX,
00051         const Constant3d000<F>& elmY, F* em) const;
00052     void operator()(const Constant3d001<F>& elmX,
00053         const Constant3d001<F>& elmY, F* em) const;
00054     void operator()(const Constant3d002<F>& elmX,
00055         const Constant3d002<F>& elmY, F* em) const;
00056   private:
00057     K& k_;
00058 
00059     static const concepts::Real N_;
00060     static const concepts::Real radonWght_[21];
00061   };
00062 
00063 } // namespace bem
00064 
00065 #endif // bemIntArbKrnlGal000_hh

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