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

helmholtzop.hpp

Go to the documentation of this file.
00001 //************************************************************************************//
00002 // Module       : helmholtzop.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 //                the (weak) Helmholtz operator class.
00008 //                  H = hc L + mc M
00009 //                where hc and mc are settable constants, and
00010 //                L is the Laplacian operator, and M is the mass operator
00011 // Derived From : LinOp.
00012 // Modifications:
00013 //************************************************************************************//
00014 #if !defined(HELMHOLTZOP_HPP)
00015 #define HELMHOLTZOP_HPP
00016 
00017 #include "linop.hpp"
00018 #include "elem2d.hpp"
00019 #include "massop.hpp"
00020 #include "laplacianop.hpp"
00021 
00022 class HelmholtzOp: public LinOp 
00023 {
00024 public:
00025                            HelmholtzOp();
00026                            HelmholtzOp(Elem2D *e);
00027 //                         HelmholtzOp(const HelmholtzOp &);
00028                           ~HelmholtzOp();
00029 
00030          GVector           operator*(GVector) ; // Multiply operator on the RHS by vector
00031          void              OpVec_prod(GVector &x, GVector &y);
00032          void              SetElem(Elem2D *);
00033          Elem2D            *GetElem();
00034          void              SetConst(GDOUBLE h, GDOUBLE m);
00035          void              SetConst(GDOUBLE h1, GDOUBLE h2, GDOUBLE m);
00036 
00037 //       friend ostream&   operator<<(ostream&, const HelmholtzOp&);
00038 
00039 private:
00040          GBOOL             DefmQuadOp(GVector *x, GVector *newx);
00041          GBOOL             RectQuadOp(GVector *x, GVector *newx);
00042          GBOOL             TriangleOp(GVector *x, GVector *newx);
00043   
00044          GDOUBLE          lc1;
00045          GDOUBLE          lc2;
00046          GDOUBLE          mc;
00047          MassOp          *Mass;
00048          LaplacianOp     *Laplacian;
00049          Elem2D          *elem;
00050 
00051 };
00052 
00053 #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