Diffpack Documentation


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

GridFE2GridFV.h

Go to the documentation of this file.
00001 
00005 class GridFE2GridFV
00006 
00007 {
00008 protected:
00009 
00010   Handle(GridFE) gfe;  
00011   Handle(GridFV) gfv;  
00012 
00013   
00014   GridFVType strategy;
00015 
00016   
00017   bool merge_segments;
00018 
00019   
00020   Handle(MatSimpleH(real)) edge_pts;
00021   Handle(MatSimpleH(real)) elm_pts;
00022   Handle(MatSimpleH(real)) fem_node_coor; 
00023   
00024   
00025   VecSimple(int) edge_pts_map;
00026   VecSimple(int) elm_pts_map;
00027   VecSimple(int) fem_node_map;
00028 
00029   
00030   DpList(VolPolygonSegment),DpListItemInst local_face_forw_list;
00031   DpList(VolPolygonSegment),DpListItemInst local_face_back_list;
00032 
00033   
00034   
00035   GridFVSizeInfo size_info;
00036 
00037   
00038   Handle(MatSimpleH(int)) s2n_ptr;
00039   Handle(MatSimpleH(int)) s2e_ptr;
00040   Handle(MatSimpleH(int)) n2s_ptr;
00041   Handle(MatSimpleH(int)) e2s_ptr;
00042 
00043   
00044   VecSimple(VecSimple(int)) polygons;     
00045   
00046   
00047   int findNextSide4ElmNode  (int curr_e, int curr_n, int curr_s);
00048   int findNextElm4Side      (int curr_s, int curr_e);
00049   bool satisfyRightHandRule (int s1, int s2, int origo);
00050 
00051   bool walkFacePathForward  (int s0, int e1, int e2, int n);
00052   bool walkFacePathBackward (int s0, int e1, int e2, int n);
00053  
00054   
00055   void mergeSegments (VecSimple(int)& edge_pts_map, 
00056                        VecSimple(int)& fem_nodes_map);
00057   void checkRemovalOfPt   (VecSimple(int)& pol, int pol_num, 
00058                            int first_pt, int last_pt,
00059                            bool node_pt_centered, bool& remove);
00060   void putVertexCoor (int curr_node, const MatSimple(real)& src_coor,
00061                       int src_idx);
00062 
00063   void initBoundaryIndicators     ();
00064   void initBoundaryIndicatorsCVFE ();
00065 
00066   void fillNodeCoor           ();
00067   void computeCVFEVertices    ();
00068   void computeVoronoiVertices ();
00069   void computeGPEBIVertices   ();
00070   
00071   void constructPolygons ();
00072 
00073   
00074   void openPolygonStream  (int npol);
00075   void addPolygon         (const VolPolygon& pol);
00076   void closePolygonStream ();
00077   
00078 public:
00079 
00080   GridFE2GridFV () { strategy = FELATTICE_GRID; }
00081 
00082  ~GridFE2GridFV () {}
00083 
00084   void convert (GridFE& gfe_, GridFV& gfv_) { convert(gfe_,gfv_,strategy); }
00085   void convert (GridFE& gfe, GridFV& gfv, GridFVType strategy);
00086 
00087   void debugPrint (Os os) const;
00088 
00089   static void defineStatic (MenuSystem& menu, int level=MAIN);
00090 
00091   void define (MenuSystem& menu, int level=MAIN) {defineStatic (menu, level);}
00092   void scan   (MenuSystem& menu);
00093 };
00094 
00095 

Copyright © 2003 inuTech GmbH. All rights reserved.