integrationformulabase.h

Go to the documentation of this file.
00001 #ifndef  __IntegrationFormulaBase_h
00002 #define  __IntegrationFormulaBase_h
00003 
00004 #include  "integrationformulainterface.h"
00005 #include  "gascoigne.h"
00006 
00007 /*-----------------------------------------*/
00008 
00009 
00010 namespace Gascoigne
00011 {
00012 template<int DIM>
00013 class IntegrationFormulaBase : public IntegrationFormulaInterface
00014 {
00015 private:
00016 
00017   typedef Vertex<DIM>   VERTEX;
00018 
00019   int                 _in;
00020   DoubleVector     _iw;
00021   std::vector<VERTEX> _ic;
00022 
00023 protected:
00024 
00025   void ReInit(int n) {
00026     _in = n;
00027     _iw.reserve(n);      
00028     _iw.resize (n);
00029     _ic.reserve(n);      
00030     _ic.resize (n);
00031   }
00032 
00033 public:
00034 
00035   IntegrationFormulaBase<DIM>() : IntegrationFormulaInterface() {}
00036   IntegrationFormulaBase<DIM>(int n) {
00037     ReInit(n);
00038   } 
00039   IntegrationFormulaBase<DIM>(const IntegrationFormulaBase<DIM>& IF) 
00040     : _in(IF.n()), _iw(IF.w()), _ic(IF.c()) {}
00041  
00042   int    n()                 const { return _in;}
00043   double w(int k)            const { return _iw[k];}
00044   const DoubleVector& w() const { return _iw;}
00045 
00046   double& w(int k) { return _iw[k];}
00047   VERTEX& c(int k) { return _ic[k];}
00048 
00049   void xi(VERTEX& v, int k)  const { v = _ic[k];}
00050   const std::vector<VERTEX>& c()  const { return _ic;}
00051 
00052 };
00053 }
00054 
00055 #endif

Generated on Thu Sep 14 10:34:35 2006 for Gascoigne by  doxygen 1.4.7