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

stokesop.hpp

Go to the documentation of this file.
00001 //************************************************************************************//
00002 // Module       : stokesop.hpp
00003 // Date         : 7/4/02 (DLR)
00004 // Copyright    : 2002-2006 Copyright University Corporation for Atmospheric
00005 //                Research
00006 // Description  : Encapsulates the methods and data associated with
00007 //                the pdV work operator. This weak operator is associated with
00008 //                the following:
00009 //                   (p,Div _v_)
00010 //                The action of the operator is to multiply the
00011 //                interpolated derivative (I2 X D1 or D2 X I1), by the
00012 //                input vector. I1(2) is the interpolation operator,
00013 //                I_ij = h_j(eta_i), where h_j is the basis fcn for
00014 //                v in the 1(2) direction, and eta_i is the 1(2)
00015 //                parent node of p. D1(2)_ij = dh_j(eta_i)/dxi.
00016 //
00017 //                Thus, the operator is actually a weak (integrated)
00018 //                derivative  operator acting on the vector space of
00019 //                the parent domain (the velocity-space), to produce
00020 //                a vector in the subspace (the pressure-space).
00021 
00022 //                This (Stokes) operator is somewhat different
00023 //                from the others, in that it is assumed that p and v
00024 //                reside on different grid nodal points within the same
00025 //                element, thus requiring that a complete geometric 
00026 //                description of both field quantities be provided. 
00027 //                
00028 // Derived From : LinOp.
00029 // Modifications:
00030 //************************************************************************************//
00031 #if !defined(PDVOP_HPP)
00032 #define PDVOP_HPP
00033 
00034 #include "linop.hpp"
00035 #include "elem2d.hpp"
00036 
00037 class StokesOp: public LinOp 
00038 {
00039 public:
00040                            StokesOp();
00041                            StokesOp(Elem2D *ve, Elem2D *pe, GINT  idir);
00042 //                         StokesOp(const StokesOp &);
00043                           ~StokesOp();
00044 
00045          GVector           operator*(GVector) ; // Multiply operator on the RHS by vector
00046          void              OpVec_prod(GVector &x, GVector &ret);
00047          void              SetElem(Elem2D *ve, Elem2D *pe);
00048          void              SetDir(GINT  idir);
00049          void              SetConst(GDOUBLE c);
00050          void              Transpose();
00051 
00052 //       friend ostream&   operator<<(ostream&, const StokesOp&);
00053 
00054 private:
00055          GBOOL             DefmQuadOp(GVector *x, GVector *newx);
00056          GBOOL             RectQuadOp(GVector *x, GVector *newx);
00057          GBOOL             TriangleOp(GVector *x, GVector *newx);
00058   
00059          GINT             icomp;
00060          GSHORT           Np1 ;
00061          GSHORT           Nv1 ;
00062          GSHORT           Np2 ;
00063          GSHORT           Nv2 ;
00064          GBOOL            bTranspose;
00065          GDOUBLE          pConst;
00066          GVector          vtmp;
00067          Elem2D           *velem;
00068          Elem2D           *pelem;
00069 };
00070 
00071 #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