/[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

trunk/esys2/finley/src/finleyC/ReferenceElements.h revision 82 by jgs, Tue Oct 26 06:53:54 2004 UTC temp_trunk_copy/finley/src/ReferenceElements.h revision 1384 by phornby, Fri Jan 11 02:29:38 2008 UTC
# Line 1  Line 1 
1    
2  /* $Id$ */  /* $Id$ */
3    
4  #ifndef INC_FINLEY_REFERENCEELEMENTS  /*******************************************************
5  #define INC_FINLEY_REFERENCEELEMENTS   *
6     *           Copyright 2003-2007 by ACceSS MNRF
7     *       Copyright 2007 by University of Queensland
8     *
9     *                http://esscc.uq.edu.au
10     *        Primary Business: Queensland, Australia
11     *  Licensed under the Open Software License version 3.0
12     *     http://www.opensource.org/licenses/osl-3.0.php
13     *
14     *******************************************************/
15    
16  /**************************************************************/  /**************************************************************/
17    
# Line 9  Line 19 
19    
20  /**************************************************************/  /**************************************************************/
21    
22  /*   Copyrights by ACcESS Australia 2003 */  #ifndef INC_FINLEY_REFERENCEELEMENTS
23  /*   Author: gross@access.edu.au */  #define INC_FINLEY_REFERENCEELEMENTS
24  /*   Version: $Id$ */  
25    
26  /**************************************************************/  /**************************************************************/
27    
28  #include "Common.h"  #include "Finley.h"
29  #include "ShapeFunctions.h"  #include "ShapeFunctions.h"
30  #include "Quadrature.h"  #include "Quadrature.h"
31    
# Line 44  typedef enum { Line 54  typedef enum {
54    Tet16,    Tet16,
55    Hex8,    Hex8,
56    Hex20,    Hex20,
57      Hex27,
58    Hex32,    Hex32,
59    Line2Face,    Line2Face,
60    Line3Face,    Line3Face,
# Line 62  typedef enum { Line 73  typedef enum {
73    Tet16Face,    Tet16Face,
74    Hex8Face,    Hex8Face,
75    Hex20Face,    Hex20Face,
76      Hex27Face,
77    Hex32Face,    Hex32Face,
78    Point1_Contact,    Point1_Contact,
79    Line2_Contact,    Line2_Contact,
# Line 92  typedef enum { Line 104  typedef enum {
104    Tet10Face_Contact,    Tet10Face_Contact,
105    Tet16Face_Contact,    Tet16Face_Contact,
106    Hex8Face_Contact,    Hex8Face_Contact,
107    Hex20Face_Contact,    Hex20Face_Contact,
108      Hex27Face_Contact,
109    Hex32Face_Contact,    Hex32Face_Contact,
110    NoType   /* marks end of list */    NoType   /* marks end of list */
111  } ElementTypeId;  } ElementTypeId;
# Line 104  typedef enum { Line 117  typedef enum {
117  typedef struct Finley_RefElementInfo {  typedef struct Finley_RefElementInfo {
118    ElementTypeId TypeId;                      /* the id */    ElementTypeId TypeId;                      /* the id */
119    char* Name;                                /* the name in text form e.g. Line1,Rec12,... */    char* Name;                                /* the name in text form e.g. Line1,Rec12,... */
120    int numDim;                                /* dimension of the element */    dim_t numLocalDim;                         /* local dimension of the element */
121    int numNodes;                              /* number of nodes defining the element*/    dim_t numDim;                              /* dimension of the element */
122    int numShapes;                             /* number of shape functions, typically = numNodes*/    dim_t numNodes;                            /* number of nodes defining the element*/
123    int numOrder;                              /* order of the shape functions */    dim_t numShapes;                           /* number of shape functions, typically = numNodes*/
124    int numVertices;                           /* number of vertices of the element */    dim_t numOrder;                            /* order of the shape functions */
125      dim_t numVertices;                         /* number of vertices of the element */
126    ElementTypeId LinearTypeId;                /* id of the linear version of the element */    ElementTypeId LinearTypeId;                /* id of the linear version of the element */
127    int linearNodes[MAX_numNodes];             /* gives the list of nodes defining the linear element, typically it is linearNodes[i]=i */    index_t linearNodes[MAX_numNodes];         /* gives the list of nodes defining the linear element, typically it is linearNodes[i]=i */
128    Finley_Shape_Function* getValues;          /* function to evaluate the shape functions at a set of points */    Finley_Shape_Function* getValues;          /* function to evaluate the shape functions at a set of points */
129    Finley_Quad_getNodes* getQuadNodes;        /* function to set the quadrature points */    Finley_Quad_getNodes* getQuadNodes;        /* function to set the quadrature points */
130    Finley_Quad_getNumNodes* getNumQuadNodes;  /* function selects the number of quadrature nodes for a given accuracy order */    Finley_Quad_getNumNodes* getNumQuadNodes;  /* function selects the number of quadrature nodes for a given accuracy order */
131    int numGeoNodes;                           /* nuber of nodes used to describe the geometry of the geometrically relevant part of the element */    dim_t numGeoNodes;                         /* nuber of nodes used to describe the geometry of the geometrically relevant part of the element */
132                                               /* typically this is numNodes but for volumenic elements used to descrbe faces this is the number of */                                               /* typically this is numNodes but for volumenic elements used to descrbe faces this is the number of */
133                                               /* nodes on the particular face */                                               /* nodes on the particular face */
134    int geoNodes[MAX_numNodes];                /* list to gather the geometrically relevant nodes */    index_t geoNodes[MAX_numNodes];            /* list to gather the geometrically relevant nodes */
135    int numNodesOnFace;                        /* if the element is allowed as a face element, numNodesOnFace defines the number of nodes */    dim_t numNodesOnFace;                      /* if the element is allowed as a face element, numNodesOnFace defines the number of nodes */
136                                               /* defining the face */                                               /* defining the face */
137                  /* the following lists are only used for face elements defined by numNodesOnFace>0 */                  /* the following lists are only used for face elements defined by numNodesOnFace>0 */
138    int faceNode[MAX_numNodes];             /* list of the nodes defining the face */    index_t faceNode[MAX_numNodes];             /* list of the nodes defining the face */
139    int shiftNodes[MAX_numNodes];             /* defines a permutation of the nodes which rotates the nodes on the face */    index_t shiftNodes[MAX_numNodes];           /* defines a permutation of the nodes which rotates the nodes on the face */
140    int reverseNodes[MAX_numNodes];           /* reverses the order of the nodes on a face. teh permutation has keep 0 fixed. */    index_t reverseNodes[MAX_numNodes];         /* reverses the order of the nodes on a face. teh permutation has keep 0 fixed. */
141                                              /* shiftNodes={-1} or reverseNodes={-1} are ignored. */                                                /* shiftNodes={-1} or reverseNodes={-1} are ignored. */
142  }  Finley_RefElementInfo;  }  Finley_RefElementInfo;
143    
144  /**************************************************************/  /**************************************************************/
# Line 149  void Finley_RefElement_dealloc(Finley_Re Line 163  void Finley_RefElement_dealloc(Finley_Re
163  ElementTypeId Finley_RefElement_getTypeId(char*);  ElementTypeId Finley_RefElement_getTypeId(char*);
164    
165  #endif /* #ifndef INC_FINLEY_REFERENCEELEMENTS */  #endif /* #ifndef INC_FINLEY_REFERENCEELEMENTS */
   
 /*  
  * $Log$  
  * Revision 1.1  2004/10/26 06:53:57  jgs  
  * Initial revision  
  *  
  * Revision 1.1.1.1  2004/06/24 04:00:40  johng  
  * Initial version of eys using boost-python.  
  *  
  *  
  */  

Legend:
Removed from v.82  
changed lines
  Added in v.1384

  ViewVC Help
Powered by ViewVC 1.1.26