Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

gllbasis.hpp

Go to the documentation of this file.
00001 //************************************************************************************//
00002 // Module       : gllbasis.hpp
00003 // Date         : 7/9/01 (DLR)
00004 // Copyright    : 2001-2006 Copyright University Corporation for Atmospheric
00005 //                Research
00006 // Description  : Encapsulates the methods and data associated with
00007 //                a spectral element nodal Gauss-Lobatto-Legendre (GLL) basis
00008 // Derived From : none.
00009 // Modifications:
00010 //************************************************************************************//
00011 #if !defined(GLLBASIS_HPP)
00012 #define GLLBASIS_HPP
00013 #include "gtypes.h"
00014 #include "gnbasis.hpp"
00015 #include "gtvector.hpp"
00016 #include "gtmatrix.hpp"
00017 
00018 class GLLBasis: public GNBasis
00019 {
00020 public:
00021 
00022                            GLLBasis();
00023                            GLLBasis(GINT  inorder);
00024                            GLLBasis(GINT  inorder, GINT  maxorder);
00025                            GLLBasis(const GLLBasis &);
00026 virtual                   ~GLLBasis();
00027 
00028 virtual  void              operator=(const GLLBasis &);
00029                    
00030          GDOUBLE             GetXimin ();
00031          GDOUBLE             GetXimax (); 
00032          GINT              GetOrder();
00033          GVector          *GetXiNodes(GVector *);
00034          GDOUBLE          *GetXiNodes(GDOUBLE   *, GINT  num);
00035          GTVector<GQUAD>  *GetXiNodes();
00036          GVector          *GetWeights(GVector *);
00037          GDOUBLE          *GetWeights(GDOUBLE   *, GINT  num);
00038          GTVector<GQUAD>  *GetWeights();
00039          GMatrix          *GetStiffMatrix(GMatrix *);
00040 //       GMatrix          *GetBasisAtNodes(GMatrix *);
00041          GMatrix          *GetDerivMatrix(GMatrix *);
00042 //       GDOUBLE            *GetDerivMatrix(GDOUBLE*, GINT  num);
00043          GMatrix          *GetLegMatrix(GMatrix *);
00044          void              SetOrder(GINT );
00045 virtual  GDOUBLE           EvalBasis (GINT  i, GDOUBLE xi);
00046 virtual  GVector          *EvalBasis (GINT  i, GVector *xi, GVector *vret);
00047 virtual  GMatrix          *EvalBasis (GVector *eta, GMatrix *mret);
00048 virtual  GMatrix          *EvalDBasis(GVector *eta, GMatrix *mret);
00049          GBOOL             Solve ();
00050 
00051 //       GMatrix          *GetDBasisAtNodes(GMatrix *);
00052 //       GMatrix          *GetMassMatrix(GMatrix *);
00053 //       void              SetXiDomain(GQUAD min, GQUAD max);
00054 
00055 // Protected methods:
00056 protected:
00057 
00058 virtual  GBOOL             ComputeNodes       ();
00059 virtual  GBOOL             ComputeWeights     ();
00060 virtual  GBOOL             ComputeDerivMatrix ();
00061 virtual  GBOOL             ComputeLegendreMatrix ();
00062 //virtual  GBOOL           ComputeBasisAtNodes();
00063          void              ComputeJacobi(GINT  &,GQUAD  alpha, GQUAD  beta, GQUAD &Pn, 
00064                                          GQUAD &dPn, GQUAD &Pnm1, GQUAD &dPnm1, GQUAD &Pnm2,
00065                                          GQUAD &dPnm2, GQUAD &xi);
00066 //virtual  GBOOL           ComputeMassMatrix();
00067 virtual  GBOOL             ComputeStiffMatrix();
00068 
00069 virtual  GBOOL             Resize(GINT  order);
00070 //       void              DeleteDynamic();
00071 
00072 
00073 // Protected data:
00074 GINT             Np;
00075 GINT             NpMax;
00076 GINT             kstop;
00077 GBOOL            bNeedNodes;
00078 GBOOL            bNeedWeights;
00079 GBOOL            bNeedDerivMatrix;
00080 GBOOL            bNeedBasis;
00081 GBOOL            bNeedDBasis;
00082 GBOOL            bNeedLegMat;
00083 GQUAD            alpha;
00084 GQUAD            beta;
00085 GQUAD            ximin;
00086 GQUAD            ximax;
00087 GQUAD            eps;
00088 GBasisVector     xiNodes;
00089 GBasisVector     Weights;
00090 GBasisVector     Pn;
00091 GBasisVector     dPn;
00092 GBasisMatrix     GXi;
00093 GBasisMatrix     Phi;
00094 GBasisMatrix     dPhi;
00095 GBasisMatrix     MassMatrix;
00096 GBasisMatrix     StiffMatrix;
00097 GBasisMatrix     LegMatrix;
00098 
00099 
00100 
00101 
00102 };
00103 
00104 #endif

Generated on Wed Dec 21 16:00:48 2005 for Geophysics & Astrophysics Spectral Element Adaptive Refinement (GASpAR) 2D Code by  doxygen 1.4.4