00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #if !defined(GNBASIS_HPP)
00013 #define GNBASIS_HPP
00014 #include "gtypes.h"
00015 #include "gtmatrix.hpp"
00016 #include "gtvector.hpp"
00017
00018
00019 class GNBasis
00020 {
00021 public:
00022
00023 GNBasis(){};
00024 GNBasis(GINT ){};
00025 GNBasis(GINT , GINT ){};
00026 ~GNBasis(){};
00027
00028
00029
00030 virtual GDOUBLE GetXimin ()=0;
00031 virtual GDOUBLE GetXimax ()=0;
00032 virtual GINT GetOrder()=0;
00033 virtual GVector *GetXiNodes(GVector *)=0;
00034 virtual GDOUBLE *GetXiNodes(GDOUBLE *, GINT num)=0;
00035 virtual QVector *GetXiNodes()=0;
00036 virtual GVector *GetWeights(GVector *)=0;
00037 virtual GDOUBLE *GetWeights(GDOUBLE *, GINT num)=0;
00038 virtual GMatrix *GetStiffMatrix(GMatrix *)=0;
00039
00040 virtual GMatrix *GetDerivMatrix(GMatrix *)=0;
00041
00042 virtual void SetOrder(GINT )=0;
00043 virtual GDOUBLE EvalBasis (GINT i, GDOUBLE xi)=0;
00044 virtual GVector *EvalBasis (GINT i, GVector *xi, GVector *vret)=0;
00045 virtual GMatrix *EvalBasis (GVector *eta, GMatrix *mret)=0;
00046 virtual GMatrix *EvalDBasis(GVector *eta, GMatrix *mret)=0;
00047 virtual GMatrix *GetLegMatrix(GMatrix *mret)=0;
00048
00049 virtual GBOOL Solve ()=0;
00050
00051 };
00052
00053 #endif