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