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

gmortar1d.hpp

Go to the documentation of this file.
00001 //************************************************************************************//
00002 // Module       : gmortar1d.cpp
00003 // Date         : 7/10/03 (DLR)
00004 // Copyright    : 2003-2006 Copyright University Corporation for Atmospheric
00005 //                Research
00006 // Description  : Encapsulates the methods and data associated with
00007 //                a 'mortar' object, which provides all the information
00008 //                required to maintain connectivity between spectral
00009 //                elements. Mortar in this class represents the true
00010 //                global degrees of freedom.
00011 // Derived From : none.
00012 // Modifications:
00013 //************************************************************************************//
00014 #if !defined(G_MORTAR1D_HPP)
00015 #define G_MORTAR1D_HPP
00016 
00017 #include "gtypes.h"
00018 #include "gnbasis.hpp"
00019 #include "gtvector.hpp"
00020 #include "gtmatrix.hpp"
00021 #include "gtbuffer.hpp"
00022 #include "elem2d.hpp"
00023 #include "point.hpp"
00024 
00025 class Elem2D;
00026 class GMortar1D
00027 {
00028 public:
00029          GMatrix           *IH2M_;    // interp matrix: host -->mortar
00030          GMatrix           *IM2H_;    // interp matrix: mortar->host
00031 
00032                            GMortar1D(GNBasis *b=NULL);
00033                           ~GMortar1D();
00034 
00035          void              SetBasis(GNBasis *b);                                // Set basis
00036          void              SetBdyPoints(Point3D &p_orig, Point3D &p_end);       // Set bdy points defining mortar geom.
00037          void              SetNodeIDs(GINT  n, GINT  *ids);                     // Set mortar's nodal ids (overrides any defaults)
00038          void              SetHostGrid(GVector **xhost, GINT  nc, 
00039                                        GINT  *indices, GINT  ni);               // Set host's grid corresp to mortar nodes
00040          GNBasis           *GetBasis();                                         // Get basis in direction idir
00041          Point3D           *GetBdyPoints(GINT  &nbdy);                          // Get bdy points and number
00042          GVector           *GetNodeIDs();                                       // Get global node ids
00043          GVector           *GetSpGrid(GINT  idir);                              // Get spatial mortar grid points for direction idir
00044          GVector           *GetArcPoints();                                     // Get spatial mortar points along mortar
00045          GVector           *GetMortarField();                                   // Get mortar internal field variable
00046          void              Mortar2Host(GVector *uout, GINT  *indices, GINT  ni,
00047                                        GINT  istart, GBOOL bAdd=FALSE);
00048          void              Mortar2Host(GDOUBLE   *uout, GINT  nu, GINT  *indices, GINT  ni, 
00049                                        GINT  istart, GBOOL bAdd=FALSE);         // Get mortar field interpolated to host gri
00050          void              Host2Mortar(Elem2D *ehost, GVector *uhost, GINT  &istart, GINT  &iend); 
00051                                                                                 // Set mortar field from host element/field
00052          void              Host2Mortar(GVector *uin, GINT  *indices, GINT  ni, GINT  istart);
00053          void              Host2Mortar(GDOUBLE   *uin, GINT  nu, GINT  *indices, GINT  ni, GINT  istart);
00054                                                                                 // Set mortar field from host element/field
00055          GBOOL            &isConforming();                                      // Get flag treating mortar as conforming wrt host       
00056 
00057 private:
00058          // Methods:
00059          void              DeleteDynamic();
00060          void              Resize(GINT  newN);
00061 
00062          // Member data:
00063          GINT              nBdy_;
00064          GINT              NN_;
00065          GINT              istart_;
00066          GINT              *iorder_;
00067          GBOOL             bConforming_;
00068          GBOOL             bHostGrid_;
00069          GQUAD             len_;
00070          GQUAD             ilen_;
00071          GQUAD             smin_;
00072          GQUAD             smax_;
00073          GDOUBLE             *xBdy_[GDIM];           
00074          Point3D           *pBdy_;
00075          GIBuffer          *node_ids_;
00076          GNBasis           *mtr_basis_;
00077          GNBasis           *hst_basis_;
00078          GVector           *u_mtr_;
00079          GVector           *u_mtr1_;
00080          GVector           *xi_mtr_;
00081          GVector           *s_mtr_;
00082          GVector           *x_mtr_[GDIM];
00083          GVector           *u_hst_;
00084          GVector           *xi_hst_;
00085          GVector           *x_hst_[GDIM];
00086 };
00087 
00088 #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