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

linop.hpp

Go to the documentation of this file.
00001 //************************************************************************************//
00002 // Module       : linop.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 linear operator interface class. This pure virtual
00008 //                class is to represent all those operators that 
00009 //                derive from the geometry of the input element 
00010 //                primarily through the weak (integrated) forms.
00011 // 
00012 // Derived From : none.
00013 // Modifications:
00014 //************************************************************************************//
00015 #if !defined(LINOP_HPP)
00016 #define LINOP_HPP
00017 
00018 
00019 #include "gtypes.h"
00020 #include "gtvector.hpp"
00021  
00022 class Elem2D;
00023 
00024 class LinOp 
00025 {
00026 public:
00027                            LinOp();
00028                            LinOp(LinOp *){};
00029                            LinOp(Elem2D*){};
00030 virtual                   ~LinOp(){};
00031 
00032 virtual  GVector          operator*(GVector){cout << "LinOp::*: illegal entry; check derived operator API" 
00033                                                     << endl; exit(1); GVector v; return v;} 
00034                            // Could not make \* pure virtual if we want GTMatrix to be a LinOp
00035 virtual  void              OpVec_prod(GVector &x, GVector &ret)
00036                                               {cout << "LinOp::OpVec_prod: illegal entry; check derived operator API" 
00037                                                     << endl; exit(1); } 
00038  
00039 virtual  void              SetConst(GDOUBLE c)
00040                                               {cout << "LinOp::SetConst: illegal entry; check derived operator API" 
00041                                                     << endl; exit(1); } 
00042 virtual  void              SetElem()
00043                                               {cout << "LinOp::SetElem: illegal entry; check derived operator API" 
00044                                                     << endl; exit(1); } 
00045 virtual  Elem2D            *GetElem()
00046                                               {cout << "LinOp::GetElem: illegal entry; check derived operator API" 
00047                                                     << endl; exit(1); return NULL;} 
00048 virtual  GINT              GetNumIntermedProd()
00049                                               {cout << "LinOp::GetIntermedProd: illegal entry; check derived operator API" 
00050                                                     << endl; exit(1); return 0; } 
00051 virtual  LinOp             *GetIntermedOp()
00052                                               {cout << "LinOp::GetIntermedOp: illegal entry; check derived operator API" 
00053                                                     << endl; exit(1); return NULL; } 
00054 virtual  GVector          *GetIntermedProd(GINT  itag)
00055                                               {cout << "LinOp::GetIntermedProd: illegal entry; check derived operator API" 
00056                                                     << endl; exit(1); return NULL; } 
00057 virtual  void              SetMask(GVector *m);
00058 
00059 
00060 protected:
00061          GVector          *mask;
00062 
00063 };
00064 
00065 #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