Diffpack Documentation


Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

BasisFuncGrid.h

Go to the documentation of this file.
00001 
00005 class BasisFuncGrid : public GridWithPts
00006 
00007 {
00008   friend class FieldFE;          
00009 
00010 
00011   Handle(GridFE)     geomt_grid;
00012   bool               isop;       
00013   int                nsd;
00014   int                nsd_phys;
00015 
00016   
00017   
00018 
00019   
00020   
00021   int                nno;        
00022   int                nbf;        
00023   int                nbe;        
00024   int                nne;        
00025   int                nbind;
00026   Handle(Indicators) essbind;
00027   MatSimple(real)    coor;
00028   String             elm_tp;
00029   HandleElmDefs      elmdef;
00030   MatSimple(int)     nodel;      
00031   
00032   MatSimple(int)     loc2glob_arr;
00033   VecSimple(int)     node2dof_arr;
00034   int                current_node; 
00035   bool               incorrect_coor;  
00036 
00037   void generateMesh ();  
00038 
00039 public:
00040   BasisFuncGrid ();
00041   BasisFuncGrid (const GridFE& grid);
00042   BasisFuncGrid (const BasisFuncGrid& bfgrid_);
00043  ~BasisFuncGrid ();
00044 
00045   void redim (const GridFE& grid);
00046 
00047   const GridFE& grid () const      { return geomt_grid(); }
00048         GridFE& grid ()            { return geomt_grid(); }
00049 
00050   void setElmType (const String& old_tp, const String& new_tp);
00051   void setElmType (const String& new_tp);
00052 
00053   bool update ();
00054 
00055   bool     ok () const;
00056 
00057   bool isoparametric () const     { return isop; }
00058   int  loc2glob (int e, int dof) const;
00059   void loc2glob (VecSimple(int)& l2g, int e) const;
00060   int  getNoNodesInElm (int e =1) const;      
00061   int  getNoBasisFuncInElm (int e =1) const;  
00062   int  getNoBasisFuncAtBasisNodeInElm (int elm_node, int e = 1) const;
00063   int  getBasisFuncNoInElm (int elm_node, int basis_func_no_at_this_node, 
00064                                int e = 1) const;
00065   int  getBasisFuncNode  (int global_basis_func_no) const;
00066   int  node2dof (int node) const;  
00067 
00068   int  getNoNodes () const;
00069   int  getNoBoInds() const { return essbind->getNoInds(); }
00070   int  getTotalNoDof () const;
00071   int  getNoSpaceDim () const { return nsd; }
00072   int  getNoPhysicalSpaceDim () const { return nsd_phys; }
00073   real getCoor (int node, int dir) const;
00074   Ptv(real) getCoor (int node) const;
00075   void getCoor (Ptv(real)& point, int node) const;
00076   void getMinMaxCoord (Ptv(real)& mincoord, Ptv(real)& maxcoord) const;
00077 
00078   String getElmType (int e =1) const;  
00079   bool allElmsOfSameType () const;
00080 
00081   const Indicators& getEssBoInds () const { return essbind.getRef(); }
00082         Indicators& getEssBoInds ()       { return essbind.getRef(); }
00083   void  setBoInd   (int node, int indno);
00084   void  clearBoInd (int node, int indno);
00085   void  attach (Indicators& essboinds, bool automatic_fill = true);
00086   void  fillIndicators (Indicators& bfind);
00087 
00088   bool notEqual (const BasisFuncGrid& bfnodes);
00089 
00090   
00091   
00092   bool essBoNode (int node, int indno) const;
00093   bool essBoNode (int node) const;
00094   bool essBoNodesInElm (int elm_no, int indno) const;
00095   bool essBoNodesInElm (int elm_no) const; 
00096 
00097   void print (Os os) const;
00098   void scan  (Is is);
00099 
00100   
00101   virtual void startIterator ();
00102   virtual bool nextPt (Ptv(real)& x);
00103           bool nextPt (Ptv(real)& x, int& node);
00104   
00105   virtual int  getNoPoints () const;
00106           int  isNode (const Ptv(real)& point);
00107   virtual int  nearestPoint
00108     (const Ptv(real)& point, real& distance, bool& exact);
00109   virtual void   scale ();  
00110   virtual void unscale ();  
00111           void attachScale (const SpaceTimeScale& scale);
00112 
00113   virtual void isToBeChanged ();  
00114   virtual void flipAroundSymmetryPlane (int dir, real plane);
00115 
00116   void move (const FieldsFE& displacement, real scale_factor = 1.0);
00117   
00118   void move (bool do_not_move_basis_function_nodes);  
00119 
00120   CLASS_INFO
00121   
00122   VIRTUAL_CAST(BasisFuncGrid)
00123 };
00124 
00125 

Copyright © 2003 inuTech GmbH. All rights reserved.