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

vectorop.hpp

Go to the documentation of this file.
00001 //************************************************************************************//
00002 // Module       : vectorop.hpp
00003 // Date         : 6/4/02 (DLR)
00004 // Copyright    : 2002-2006 Copyright University Corporation for Atmospheric
00005 //                Research
00006 // Description  : Encapsulates the methods and data associated with
00007 //                defining a (collocated) vector operator object
00008 // Derived From : LinOp.
00009 // Modifications:
00010 //************************************************************************************//
00011 #if !defined(VECTOROP_HPP)
00012 #define VECTOROP_HPP 
00013 
00014 #include "gtvector.hpp"
00015 #include "elem2d.hpp"
00016 #include "gradop.hpp"
00017 #if defined(DO_BLAS_TIMING)
00018 #include "timer.h"
00019 #endif
00020 
00021 
00022 class VectorOp 
00023 {
00024 public:
00025                            VectorOp();
00026                            VectorOp(Elem2D *e, GVector *u1, GVector *u2, GVector *u3, GBOOL doconvect=TRUE);
00027                           ~VectorOp();
00028 
00029          GVector           Div() ;                                            // Divergence operator                
00030          void              Div(GVector &ret);
00031          GVector           Curl(GINT  idir);                                  // Curl operator              
00032          void              Curl(GINT  idir, GVector &ret);
00033          GVector           Advect(GVector &c);                               // Advection operator: advects quant. c
00034          void              Advect(GVector &c,  GVector &ret);
00035          void              Advect_Weak(GVector &c,  GVector &ret);
00036          void              Advect(GVector *ui[],  GVector *ret[]);           // Computes u.del u for all u components
00037          void              AdvectR(GVector *ui[], GVector *N[]);             // Computes rotat'l form of adv, less 0.5*Del(u.u)
00038 
00039          void              SetVec(GVector *u1, GVector *u2, GVector *u3=NULL);
00040          void              SetElem(Elem2D *e ); 
00041          void              DoConvectiveForm(GBOOL bflag);
00042 
00043          Elem2D            *GetElem();                                       // Returns base element  
00044 
00045 private:
00046 
00047         GBOOL              bConvectiveForm_;
00048         GVector            *v[3];
00049         Elem2D             *elem;
00050 
00051 #if defined(DO_BLAS_TIMING)
00052 public:
00053         GDOUBLE            GetTime(){return time_result;}
00054 private:
00055         GDOUBLE            time_result;
00056         GDOUBLE            tstart;
00057 #endif
00058 
00059 };
00060 
00061 #endif

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