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

pcblockjac_lap.hpp

Go to the documentation of this file.
00001 //************************************************************************************//
00002 // Module       : pcblockjac_lap.hpp
00003 // Date         : 7/17/02 (DLR)
00004 // Copyright    : 2002-2006 Copyright University Corporation for Atmospheric
00005 //                Research
00006 // Description  : Encapsulates the methods and data associated with
00007 //                a block Jacobi preconditioner object to be used
00008 //                for preconditioning the Laplacian operator
00009 // Derived From : none.
00010 // Modifications:
00011 //************************************************************************************//
00012 #if !defined(PCBLOCKJAC_LAP_HPP)
00013 #define PCBLOCKJAC_LAP_HPP
00014 #include "linop.hpp"
00015 #include "elem2d.hpp"
00016 #include "gnbasis.hpp"
00017 
00018 class PCBlockJac_Lap: public LinOp
00019 {
00020 public:
00021                            PCBlockJac_Lap();
00022                            PCBlockJac_Lap(LinOp *A);
00023                            PCBlockJac_Lap(Elem2D *e);
00024 //                         PCBlockJac_Lap(const PCBlockJac_Lap &);
00025                           ~PCBlockJac_Lap();
00026 
00027          GVector           operator*(GVector) ; // Multiply precond by right-vector
00028          void              OpVec_prod(GVector &q, GVector &ret);
00029          void              SetInterpBasis(GNBasis *b1, GNBasis *b2);
00030          void              SetConst(GDOUBLE clc);
00031          void              SetConst(GDOUBLE clc1, GDOUBLE iclc2);
00032          void              SetElem(Elem2D *e);
00033          void              SetMask(GVector *m);
00034          GMatrix          *GetInverse() { return iL; }
00035 
00036 
00037 private:
00038          GBOOL             DefmQuadL();
00039          GBOOL             RectQuadL();
00040          GBOOL             TriangleL();
00041          GBOOL             ComputeOp();
00042 
00043          GINT              N1;     // 1-size
00044          GINT              N2;     // 2-size
00045          GINT              NN;     // 1 X 2 - size
00046          GDOUBLE             lc1;    // Laplacian-multiplicative constant
00047          GDOUBLE             lc2;    // Laplacian-multiplicative constant
00048          Elem2D           *elem;   // Associated element
00049          GVector          *vtmpv0; // V-space temp vector
00050          GVector          *vtmpv1; // V-space temp vector
00051          GVector          *mask  ; // Dirichlet masking vector 
00052          GMatrix          *L;      // Laplacian operator
00053          GMatrix          *iL;     // inverse Laplacian
00054          GMatrix          *I1;     // 1-interpolation operator
00055          GMatrix          *I2;     // 2-interpolation operator
00056          GMatrix          *I1T;    // 1-interpolation operator -- transpose
00057          GMatrix          *I2T;    // 2-interpolation operator -- transpose
00058 
00059 
00060 };
00061 
00062 #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