feminterface.h

Go to the documentation of this file.
00001 #ifndef  __FemInterface_h
00002 #define  __FemInterface_h
00003 
00004 #include  "vertex.h"
00005 #include  "nmatrix.h"
00006 #include  "gascoigne.h"
00007 #include  <string>
00008 
00009 /*-----------------------------------------*/
00010 
00011 namespace Gascoigne
00012 {
00013   class FemInterface
00014   {
00015     private:
00016 
00017     protected:
00018 
00019     public:
00020       typedef nmatrix<double>    Matrix;
00021 
00022       FemInterface() {}
00023       virtual ~FemInterface() {}
00024 
00025       virtual std::string GetName() const=0;
00026 
00027       virtual int    n() const=0;
00028       virtual double J() const=0;
00029       virtual double G() const=0;
00030 
00031       virtual void x(Vertex2d& v) const {
00032         std::cerr << "\"FemInterface::x\" not written!" << std::endl;
00033         abort();
00034       }
00035       virtual void x(Vertex3d& v) const {
00036         std::cerr << "\"FemInterface::x\" not written!" << std::endl;
00037         abort();
00038       }
00039 
00040       virtual void normal(Vertex2d& v) const {
00041         std::cerr << "\"FemInterface::normal\" not written!" << std::endl;
00042         abort();
00043       }
00044       virtual void normal(Vertex3d& v) const {
00045         std::cerr << "\"FemInterface::normal\" not written!" << std::endl;
00046         abort();
00047       }
00048 
00049       virtual void point(const Vertex2d& v) const {
00050         std::cerr << "\"FemInterface::point\" not written!" << std::endl;
00051         abort();
00052       }
00053       virtual void point(const Vertex3d& v) const {
00054         std::cerr << "\"FemInterface::point\" not written!" << std::endl;
00055         abort();
00056       }
00057 
00058       virtual void  point_boundary(int ie, const Vertex1d& v) const {
00059         std::cerr << "\"FemInterface::point_boundary\" not written!" << std::endl;
00060         abort();
00061       }
00062       virtual void  point_boundary(int ie, const Vertex2d& v) const {
00063         std::cerr << "\"FemInterface::point_boundary\" not written!" << std::endl;
00064         abort();
00065       }
00066 
00067       virtual void ReInit(const Matrix& M) const=0;
00068       virtual void init_test_functions(TestFunction& Phi, double w, int i) const=0;
00069       virtual void Anisotropy(DoubleMatrix& A) const { assert(0);};
00070   };
00071 }
00072 
00073 #endif

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