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

gadvect.hpp

Go to the documentation of this file.
00001 //************************************************************************************//
00002 // Module       : gadvect.hpp
00003 // Date         : 8/9/05 (DLR)
00004 // Copyright    : 2005-2006 Copyright University Corporation for Atmospheric
00005 //                Research
00006 // Description  : Encapsulates the access methods and data associated with
00007 //                an advection computation class.
00008 // Derived From : none.
00009 // Modifications:
00010 //************************************************************************************//
00011 #if !defined(GADVECTION_HPP)
00012 #define GADVECTION_HPP
00013 
00014 #include "gtypes.h"
00015 #include "gelemlist.hpp"
00016 #include "gfieldlist.hpp"
00017 #include "gobjlist.hpp"
00018 #include "gcomm.hpp"
00019 #include "ab.hpp"
00020 #include "ext.hpp"
00021 
00022 class GAdvect 
00023 {
00024 public:
00025          enum TIME_EVOLTYPE {TE_OIFS=0, TE_ABBDF, TE_EXBDF, TE_EXBDF_Weak};
00026 
00027                            GAdvect(GFieldList *ulist[], GINT nfields, GElemList *uelems);
00028                           ~GAdvect();
00029 
00030          GBOOL             Advect(GVecList *padv, GVecList *temp, GDOUBLE time, GDOUBLE dt);// do advection
00031          void              SetEvolType(TIME_EVOLTYPE itype);
00032          void              SetAdvOrder (GINT iorder);
00033          void              SetBDFOrder(GINT iorder);
00034          void              SetTimestepHistory(GDBuffer *dthist);
00035          void              SetDoAdvection(GBOOL bdoadvect);
00036          void              SetNSubcycles(GINT nsub);
00037          void              SetAdvVel(GFieldList *cadv[], GINT ncadv);
00038          void              SetDoDealiasing(GBOOL bflag);
00039          GVecOpList       *GetVecOp();
00040          GDOUBLE           GetBDFSum();
00041 
00042 
00043 private:
00044          GBOOL             AdvectABBDF     (GVecList *padv, GVecList *temp, GDOUBLE time, GDOUBLE dt);
00045          GBOOL             AdvectABBDF_Weak(GVecList *padv, GVecList *temp, GDOUBLE time, GDOUBLE dt);
00046          GBOOL             AdvectABBDF_D   (GVecList *padv, GVecList *temp, GDOUBLE time, GDOUBLE dt);
00047          GBOOL             AdvectRKBDF     (GVecList *padv, GVecList *temp, GDOUBLE time, GDOUBLE dt);
00048          GBOOL             AdvectInt       (GVector *uf[], GVector *ui[], GINT nf,
00049                                                                      GINT ilevel,  GDOUBLE dt, GINT  ie);               // Integrate advect. terms in OIFS
00050          GBOOL             FixedStepAdvRKK (GVector *uf[], GVector *ui[], GINT nf,
00051                                                                      GINT ilevel, GDOUBLE h, GINT  ie);         // Step advect integ. 
00052          void              ComputeTimeDepCoeffs();
00053          GBOOL             ResetExpandables();
00054          GBOOL             ElemListChange();
00055          void              BuildCoeffs();
00056 
00057          TIME_EVOLTYPE     itime_type_;
00058          GBOOL             bTimeDeriv_;
00059          GBOOL             bRotationalForm_;
00060          GBOOL             bDoAdvect_;
00061          GBOOL             bConstAdvVel_;
00062          GBOOL             bDoDealiasing_;
00063          GBOOL             bDealiasingEnabled_;
00064          GINT              irank_;
00065          GINT              nfields_;
00066          GINT              ntimelevels_;
00067          GINT              nelems_;
00068          GINT              iorderbdf_;
00069          GINT              iorderOIFS_RKK_;
00070          GINT              iorderadv_;
00071          GINT              nsubcycoifs_;
00072          GINT              nsubcycles_;
00073          GDOUBLE           c_bdf_[4][4];
00074          GDOUBLE           gamma0_;
00075          GDOUBLE           *alpha_;
00076          GDOUBLE           *beta_;
00077          AB                ab_;
00078          EXT               ext_;
00079          GDBuffer          *dthist_;
00080          GVecList          yt1[GDIM];
00081          GVecList          K1 [GDIM];
00082          GVecList          K2 [GDIM];
00083          GFieldList        *cadv_[GDIM];
00084 
00085 
00086          GElemList         *uelems_;
00087          GFieldList        *var_list_[GDIM];
00088          GVecOpList        vecop_;      // Vector collocation operator -- gives advection
00089 
00090 
00091 
00092 };
00093 
00094 #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