/[escript]/trunk/finley/src/ReferenceElements.h
ViewVC logotype

Diff of /trunk/finley/src/ReferenceElements.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3258 by caltinay, Mon Feb 1 01:23:46 2010 UTC revision 3259 by jfenwick, Mon Oct 11 01:48:14 2010 UTC
# Line 37  Line 37 
37  #define MAX_numSides 2  #define MAX_numSides 2
38    
39  typedef enum {  typedef enum {
40    Point1,    Finley_Point1,
41    Line2,    Finley_Line2,
42    Line3,    Finley_Line3,
43    Line4,    Finley_Line4,
44    Tri3,    Finley_Tri3,
45    Tri6,    Finley_Tri6,
46    Tri9,    Finley_Tri9,
47    Tri10,    Finley_Tri10,
48    Rec4,    Finley_Rec4,
49    Rec8,    Finley_Rec8,
50    Rec9,    Finley_Rec9,
51    Rec12,    Finley_Rec12,
52    Rec16,    Finley_Rec16,
53    Tet4,    Finley_Tet4,
54    Tet10,    Finley_Tet10,
55    Tet16,    Finley_Tet16,
56    Hex8,    Finley_Hex8,
57    Hex20,    Finley_Hex20,
58    Hex27,    Finley_Hex27,
59    Hex32,    Finley_Hex32,
60    Line2Face,    Finley_Line2Face,
61    Line3Face,    Finley_Line3Face,
62    Line4Face,    Finley_Line4Face,
63    Tri3Face,    Finley_Tri3Face,
64    Tri6Face,    Finley_Tri6Face,
65    Tri9Face,    Finley_Tri9Face,
66    Tri10Face,    Finley_Tri10Face,
67    Rec4Face,    Finley_Rec4Face,
68    Rec8Face,    Finley_Rec8Face,
69    Rec9Face,    Finley_Rec9Face,
70    Rec12Face,    Finley_Rec12Face,
71    Rec16Face,    Finley_Rec16Face,
72    Tet4Face,    Finley_Tet4Face,
73    Tet10Face,    Finley_Tet10Face,
74    Tet16Face,    Finley_Tet16Face,
75    Hex8Face,    Finley_Hex8Face,
76    Hex20Face,    Finley_Hex20Face,
77    Hex27Face,    Finley_Hex27Face,
78    Hex32Face,    Finley_Hex32Face,
79    Point1_Contact,    Finley_Point1_Contact,
80    Line2_Contact,    Finley_Line2_Contact,
81    Line3_Contact,    Finley_Line3_Contact,
82    Line4_Contact,    Finley_Line4_Contact,
83    Tri3_Contact,    Finley_Tri3_Contact,
84    Tri6_Contact,    Finley_Tri6_Contact,
85    Tri9_Contact,    Finley_Tri9_Contact,
86    Tri10_Contact,    Finley_Tri10_Contact,
87    Rec4_Contact,    Finley_Rec4_Contact,
88    Rec8_Contact,    Finley_Rec8_Contact,
89    Rec9_Contact,    Finley_Rec9_Contact,
90    Rec12_Contact,    Finley_Rec12_Contact,
91    Rec16_Contact,    Finley_Rec16_Contact,
92    Line2Face_Contact,    Finley_Line2Face_Contact,
93    Line3Face_Contact,    Finley_Line3Face_Contact,
94    Line4Face_Contact,    Finley_Line4Face_Contact,
95    Tri3Face_Contact,    Finley_Tri3Face_Contact,
96    Tri6Face_Contact,    Finley_Tri6Face_Contact,
97    Tri9Face_Contact,    Finley_Tri9Face_Contact,
98    Tri10Face_Contact,    Finley_Tri10Face_Contact,
99    Rec4Face_Contact,    Finley_Rec4Face_Contact,
100    Rec8Face_Contact,    Finley_Rec8Face_Contact,
101    Rec9Face_Contact,    Finley_Rec9Face_Contact,
102    Rec12Face_Contact,    Finley_Rec12Face_Contact,
103    Rec16Face_Contact,    Finley_Rec16Face_Contact,
104    Tet4Face_Contact,    Finley_Tet4Face_Contact,
105    Tet10Face_Contact,    Finley_Tet10Face_Contact,
106    Tet16Face_Contact,    Finley_Tet16Face_Contact,
107    Hex8Face_Contact,    Finley_Hex8Face_Contact,
108    Hex20Face_Contact,    Finley_Hex20Face_Contact,
109    Hex27Face_Contact,    Finley_Hex27Face_Contact,
110    Hex32Face_Contact,    Finley_Hex32Face_Contact,
111    Line3Macro,    Finley_Line3Macro,
112    Tri6Macro,    Finley_Tri6Macro,
113    Rec9Macro,    Finley_Rec9Macro,
114    Tet10Macro,    Finley_Tet10Macro,
115    Hex27Macro,    Finley_Hex27Macro,
116    NoRef   /* marks end of list */    Finley_NoRef   /* marks end of list */
117  } ElementTypeId;  } Finley_ElementTypeId;
118    
119  /**************************************************************/  /**************************************************************/
120    
121  /*  this struct holds the definition of the reference element: */  /*  this struct holds the definition of the reference element: */
122    
123  typedef struct Finley_ReferenceElementInfo {  typedef struct Finley_ReferenceElementInfo {
124    ElementTypeId TypeId;                      /* the id */    Finley_ElementTypeId TypeId;               /* the id */
125    char* Name;                                /* the name in text form e.g. Line1,Rec12,... */    char* Name;                                /* the name in text form e.g. Line1,Rec12,... */
126    dim_t numNodes;                            /* number of nodes defining the element*/    dim_t numNodes;                            /* number of nodes defining the element*/
127    dim_t numSubElements;                      /* number of subelements. >1 is macro elements are used. */    dim_t numSubElements;                      /* number of subelements. >1 is macro elements are used. */
# Line 132  typedef struct Finley_ReferenceElementIn Line 132  typedef struct Finley_ReferenceElementIn
132    index_t offsets[MAX_numSides+1];           /* offset to the side nodes: offsets[s]...offset[s+1]-1 referes to the nodes to be used for side s*/                                  index_t offsets[MAX_numSides+1];           /* offset to the side nodes: offsets[s]...offset[s+1]-1 referes to the nodes to be used for side s*/                              
133    
134        
135    ElementTypeId LinearTypeId;                /* id of the linear version of the element */    Finley_ElementTypeId LinearTypeId;         /* id of the linear version of the element */
136        
137    index_t linearNodes[MAX_numNodes*MAX_numSides];         /* gives the list of nodes defining the linear or macro element */    index_t linearNodes[MAX_numNodes*MAX_numSides];  /* gives the list of nodes defining the linear or macro element */
138        
139    Finley_QuadTypeId Quadrature;                /* quadrature scheme */    Finley_QuadTypeId Quadrature;                /* quadrature scheme */
140    Finley_ShapeFunctionTypeId Parametrization;  /* shape function for parametrization of the element */    Finley_ShapeFunctionTypeId Parametrization;  /* shape function for parametrization of the element */
# Line 182  typedef struct Finley_ReferenceElement { Line 182  typedef struct Finley_ReferenceElement {
182    
183  /*    interfaces: */  /*    interfaces: */
184    
185  Finley_ReferenceElement* Finley_ReferenceElement_alloc(ElementTypeId,int);  Finley_ReferenceElement* Finley_ReferenceElement_alloc(Finley_ElementTypeId,int);
186  void Finley_ReferenceElement_dealloc(Finley_ReferenceElement*);  void Finley_ReferenceElement_dealloc(Finley_ReferenceElement*);
187  ElementTypeId Finley_ReferenceElement_getTypeId(char*);  Finley_ElementTypeId Finley_ReferenceElement_getTypeId(char*);
188  Finley_ReferenceElement* Finley_ReferenceElement_reference(Finley_ReferenceElement* in);  Finley_ReferenceElement* Finley_ReferenceElement_reference(Finley_ReferenceElement* in);
189  Finley_ReferenceElementInfo* Finley_ReferenceElement_getInfo(ElementTypeId id);  Finley_ReferenceElementInfo* Finley_ReferenceElement_getInfo(Finley_ElementTypeId id);
190    
191    
192  #define Finley_ReferenceElement_getNumNodes(__in__) (__in__)->Type->numNodes  #define Finley_ReferenceElement_getNumNodes(__in__) (__in__)->Type->numNodes
193    
194  #endif /* #ifndef INC_FINLEY_REFERENCEELEMENTS */  #endif /* #ifndef INC_FINLEY_REFERENCEELEMENTS */
195    

Legend:
Removed from v.3258  
changed lines
  Added in v.3259

  ViewVC Help
Powered by ViewVC 1.1.26