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

TriMeshRefinement.h

Go to the documentation of this file.
00001 // Copyright (C) 2003 Johan Hoffman and Anders Logg.
00002 // Licensed under the GNU GPL Version
00003 
00004 #ifndef __TRI_MESH_REFINEMENT_H
00005 #define __TRI_MESH_REFINEMENT_H
00006 
00007 #include <dolfin/MeshRefinement.h>
00008 
00009 namespace dolfin {
00010 
00011   class Mesh;
00012   class Cell;
00013 
00017   
00018   class TriMeshRefinement : public MeshRefinement {
00019   public:
00020 
00022     static bool checkRule(Cell& cell, int no_marked_edges);
00023 
00025     static void refine(Cell& cell, Mesh& mesh);
00026 
00027     // Friends
00028     friend class MeshRefinement;
00029 
00030   private:
00031 
00032     static bool checkRuleRegular   (Cell& cell, int no_marked_edges);
00033     static bool checkRuleIrregular1(Cell& cell, int no_marked_edges);
00034     static bool checkRuleIrregular2(Cell& cell, int no_marked_edges);
00035 
00036     static void refineNoRefine  (Cell& cell, Mesh& mesh);
00037     static void refineRegular   (Cell& cell, Mesh& mesh);
00038     static void refineIrregular1(Cell& cell, Mesh& mesh);
00039     static void refineIrregular2(Cell& cell, Mesh& mesh);
00040 
00041     static Cell& createCell(Node& n0, Node& n1, Node& n2, Mesh& mesh,
00042                             Cell& cell);
00043     
00044   };
00045 
00046 }
00047 
00048 #endif


Documentation automatically generated with Doxygen on 10 Sep 2004.