00001 /* Abscissa & weights for cases of common panel, edge and vertex 00002 single layer potential, constant test/trial functions 00003 */ 00004 00005 #ifndef constSLP_aw_hh 00006 #define constSLP_aw_hh 00007 00008 #include "bemInt/exceptns.hh" 00009 #include "basics/typedefs.hh" 00010 00011 namespace bem { 00012 00013 using concepts::Real; 00014 00015 // *************************************************** ConstSLPAbscWghtPnl ** 00016 00020 class ConstSLPAbscWghtPnl { 00021 static const Real* const abswght_[10]; 00022 public: 00023 inline const Real* const operator[](uint i) const; 00024 }; 00025 00026 inline const Real* const ConstSLPAbscWghtPnl::operator[](uint i) const { 00027 if (i >= 10) throw conceptsException(NoOfIntegrationPointsToHigh()); 00028 return abswght_[i]; 00029 } 00030 00031 // *************************************************** ConstSLPAbscWghtEdg ** 00032 00036 class ConstSLPAbscWghtEdg { 00037 static const Real* const abswght_[10]; 00038 public: 00039 inline const Real* const operator[](uint i) const; 00040 }; 00041 00042 inline const Real* const ConstSLPAbscWghtEdg::operator[](uint i) const { 00043 if (i >= 10) throw conceptsException(NoOfIntegrationPointsToHigh()); 00044 return abswght_[i]; 00045 } 00046 00047 // *************************************************** ConstSLPAbscWghtVtx ** 00048 00052 class ConstSLPAbscWghtVtx { 00053 static const Real* const abswght_[10]; 00054 public: 00055 inline const Real* const operator[](uint i) const; 00056 }; 00057 00058 inline const Real* const ConstSLPAbscWghtVtx::operator[](uint i) const { 00059 if (i >= 10) throw conceptsException(NoOfIntegrationPointsToHigh()); 00060 return abswght_[i]; 00061 } 00062 00063 } // namespace bem 00064 00065 #endif // constSLP_aw_hh 00066