ParMooN
 All Classes Functions Variables Friends Pages
GridCell.h
1 
9 #ifndef __GRIDCELL__
10 #define __GRIDCELL__
11 
12 #include <BaseCell.h>
13 
15 class TGridCell : public TBaseCell
16 {
17  protected:
22 
25 
27  int RefLevel;
28 
29  public:
30  // Constructor
31  TGridCell(TRefDesc *refdesc, int reflevel);
32 
33  // Destructor
34  ~TGridCell();
35 
36  // Methods
38  virtual int SetVertex(int Vert_i, TVertex *Vert);
40  virtual TVertex *GetVertex(int Vert_i);
43  { return Vertices; }
44 
46  virtual int GetN_Children();
48  virtual int GetN_Parents();
49 
51  virtual TBaseCell *GetChild(int C_i);
53  virtual TBaseCell *GetParent();
55  virtual int SetParent(TBaseCell *parent);
57  virtual int GetChildNumber(TBaseCell *Me);
58 
60  virtual int Draw(std::ofstream &dat, double scale, double StartX,
61  double StartY);
63  virtual int PS(std::ofstream &dat, double scale, double StartX,
64  double StartY);
66  virtual int MD_raw(std::ofstream &dat);
67 
69  virtual int Derefine();
71  virtual int RefDeref();
73  virtual int Gen1RegMarks();
75  virtual int MakeConfClosure();
77  virtual int Refine(int RefLevel);
78 
79  #ifdef __MORTAR__
80 
81  virtual int RefineMortar(int RefLevel);
82  #endif
83 
85  virtual int Gen1RegGrid();
87  virtual int Ref1Reg(int LocJointNum, TBaseCell *&RefCell);
89  virtual int Check1Reg();
91  virtual int SetNoRefinement();
93  virtual int SetRegRefine();
95  virtual int Set1Refine(int i);
97  virtual int IsToRefine();
99  virtual int ExistChildren()
100  { return Children == NULL ? FALSE : TRUE; }
101 
102 #ifdef __2D__
103 
104  virtual int LineMidXY(int J_i, int P_j, double &X, double &Y);
106  virtual int LineMidT(int J_i, int SJ_j, double &T_0, double &T_1);
107 #else
108 
109  virtual bool PointInCell(double X, double Y, double Z);
110 #endif
111 
113  virtual bool PointInCell(double X, double Y);
114 
116  virtual double GetDiameter()
117  { return RefDesc->GetShapeDesc()->GetDiameter(Vertices); }
118 
120  virtual double GetShortestEdge()
122 
124  virtual double GetLengthWithReferenceMap()
126 
128  virtual double GetMeasure()
129  { return RefDesc->GetShapeDesc()->GetMeasure(Vertices); }
130 
132  virtual int GetGeoLevel();
133 
135  virtual int GetSubGridID();
136 
138  virtual int GetN_BoundaryEdges();
139 #ifdef __3D__
140 
141  virtual int GetN_BoundaryFaces();
142 #endif
143 
144  virtual int GetN_BoundaryVertices();
145 };
146 
147 #endif
virtual bool PointInCell(double X, double Y, double Z)
return whether a point is inside a cell
Definition: GridCell.C:1048
virtual double GetLengthWithReferenceMap()
return the length of the cell defined with the reference map
Definition: GridCell.h:124
virtual int GetGeoLevel()
get geometry level
Definition: GridCell.C:1100
virtual double GetMeasure(TVertex **Verts)=0
virtual int LineMidT(int J_i, int SJ_j, double &T_0, double &T_1)
return parameters on boundary of subedge SJ_j on edge J_i
Definition: GridCell.C:982
TVertex ** Vertices
field of all vertices
Definition: GridCell.h:24
virtual int GetN_BoundaryEdges()
compute number of edges at the boundary
Definition: GridCell.C:1120
virtual int SetNoRefinement()
set RefDesc to no refinement
Definition: GridCell.C:885
virtual int GetN_BoundaryFaces()
compute number of faces at the boundary
Definition: GridCell.C:1139
virtual int GetN_BoundaryVertices()
compute number of vertices at the boundary
Definition: GridCell.C:1163
virtual double GetShortestEdge()
get shortest edge of a cell
Definition: GridCell.h:120
virtual double GetMeasure()
get measure of a cell
Definition: GridCell.h:128
Definition: RefDesc.h:70
virtual int PS(std::ofstream &dat, double scale, double StartX, double StartY)
put out postscript data to a file
Definition: GridCell.C:99
virtual int Ref1Reg(int LocJointNum, TBaseCell *&RefCell)
set refinement for the neighbour of your parent on joint LocJointNum
Definition: GridCell.C:366
virtual TVertex * GetVertex(int Vert_i)
return the pointer to vertex with number i
Definition: GridCell.C:51
virtual double GetShortestEdge(TVertex **Verts)=0
virtual double GetLengthWithReferenceMap(TVertex **Verts)=0
virtual int GetN_Children()
return number of children
Definition: GridCell.C:56
virtual int RefDeref()
refine or derefine the cell according to cell&#39;s clipboard
Definition: Refinement.C:1140
virtual int GetSubGridID()
return subgrid ID
Definition: GridCell.C:1111
TBaseCell ** Children
field of pointer to children
Definition: GridCell.h:19
TVertex ** GetVertices()
return field of pointers to all vertices
Definition: GridCell.h:42
virtual int Gen1RegGrid()
generate a 2-regular grid
Definition: GridCell.C:252
virtual TBaseCell * GetChild(int C_i)
return pointer to child cell with number C_i
Definition: GridCell.C:69
virtual TBaseCell * GetParent()
return pointer to parent cell
Definition: GridCell.C:74
virtual int GetN_Parents()
return number of parents
Definition: GridCell.C:61
virtual int Draw(std::ofstream &dat, double scale, double StartX, double StartY)
put boundary and interface joints to postscript file
Definition: GridCell.C:206
virtual int SetVertex(int Vert_i, TVertex *Vert)
set the pointer to vertex with number i
Definition: GridCell.C:45
virtual int IsToRefine()
check whether a cell should be refined
Definition: GridCell.C:906
TBaseCell * Parent
pointer to parent cell
Definition: GridCell.h:21
virtual int Gen1RegMarks()
set marks in neighbour cells in order to maintain 1-regularity
Definition: Refinement.C:1161
TRefDesc * RefDesc
current property of refinement (including shape descriptor)
Definition: BaseCell.h:29
virtual int ExistChildren()
check whether exist some children
Definition: GridCell.h:99
virtual int SetRegRefine()
set RefDesc to regular refinement
Definition: GridCell.C:707
virtual int LineMidXY(int J_i, int P_j, double &X, double &Y)
return coordinates of mid point P_j on edge J_i
Definition: GridCell.C:913
information for finite element data structure
Definition: BaseCell.h:25
virtual double GetDiameter(TVertex **Verts)=0
virtual int Refine(int RefLevel)
refine a cell
Definition: Refinement.C:39
Definition: Vertex.h:19
TShapeDesc * GetShapeDesc()
Definition: RefDesc.h:350
virtual int RefineMortar(int RefLevel)
refine a mortar cell
Definition: RefineMortar.C:30
virtual int SetParent(TBaseCell *parent)
set parent
Definition: GridCell.C:79
virtual double GetDiameter()
get diameter of a cell
Definition: GridCell.h:116
virtual int MakeConfClosure()
generate conforming closures
Definition: GridCell.C:433
virtual int Check1Reg()
check whether the surroundings of cell is 1-regular
Definition: GridCell.C:670
represent geometric information of the cell
Definition: GridCell.h:15
int RefLevel
grid level on with this cell was generated
Definition: GridCell.h:27
virtual int Set1Refine(int i)
set RefDesc to adaptive refinement
Definition: GridCell.C:734
virtual int GetChildNumber(TBaseCell *Me)
return local number of child Me
Definition: GridCell.C:85
virtual int MD_raw(std::ofstream &dat)
put out raw data for MD-Format
Definition: GridCell.C:231
virtual int Derefine()
derefine the cell
Definition: Refinement.C:989