/[escript]/branches/domexper/dudley/src/ShapeTable.h
ViewVC logotype

Annotation of /branches/domexper/dudley/src/ShapeTable.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3210 - (hide annotations)
Mon Sep 27 04:13:19 2010 UTC (8 years, 6 months ago) by jfenwick
File MIME type: text/plain
File size: 2934 byte(s)


1 jfenwick 3184
2     /*******************************************************
3     *
4     * Copyright (c) 2003-2010 by University of Queensland
5     * Earth Systems Science Computational Center (ESSCC)
6     * http://www.uq.edu.au/esscc
7     *
8     * Primary Business: Queensland, Australia
9     * Licensed under the Open Software License version 3.0
10     * http://www.opensource.org/licenses/osl-3.0.php
11     *
12     *******************************************************/
13    
14    
15     /* Shape Function info
16     These tables are a much simplified version of content from finley's ShapeFunctions files
17    
18     This file is not to be included in .h files - only .c files should have any use for it
19     */
20    
21     #ifndef SHAPETABLE_DUDLEY
22     #define SHAPETABLE_DUDLEY
23    
24 jfenwick 3196 #include "paso/Common.h" // I just want the types not all the includes that get dragged in - fix that
25    
26 jfenwick 3210 #include "ReferenceElements.h" // This is just for the elementTypes
27    
28 jfenwick 3197 // These are constructed from dsdv in ShapeFunction.c in finley
29 jfenwick 3196 // The first two are just there for functions that want a pointer
30     static const double DTDV_0D[1][1]={{0}};
31 jfenwick 3197 static const double DTDV_1D[2][2]={{-1.,1},{-1.,1.}};
32 jfenwick 3184 static const double DTDV_2D[3][2]={{-1,-1}, {1,0}, {0,1}};
33     static const double DTDV_3D[4][3]={{-1, -1, -1}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}};
34    
35    
36 jfenwick 3197 // If these appear to be in a different order to finley it is because finley uses macros to hide Fortran array ordering
37     static const double DTDV_2D_alt[3*3][2]={{-1,1}, {0,-1.}, {0,1},
38     {-1,1}, {0,-1.}, {0,1},
39     {-1,1}, {0,-1.}, {0,1}
40     };
41     // the repetition is a hack
42     // Why didn't I just reorder DTDV_2D? Well some code apparently depends on the order as written.
43     // should probably fix that
44    
45 jfenwick 3210 // Index by ElementTypeID
46     // The number of local dimensions (as opposed to dimension of the embedding space)
47     static const dim_t localDims[8]={0,1,2,3,0,1,2,0};
48 jfenwick 3197
49 jfenwick 3210 /* the following lists are only used for face elements defined by numNodesOnFace>0 */
50     static const dim_t numNodesOnFaceMap[8]={1,2,3,4,1,2,4,-1}; /* if the element is allowed as a face element, numNodesOnFace defines the number of nodes defining the face */
51     static const dim_t shiftNodesMap[8][4]={{0}, { 1, 0 }, { 1, 2, 0 }, {-1}, { 0, 1, 2}, { 1, 0, 2 }, {1, 2, 0, 3 }, {0}};/* defines a permutation of the nodes which rotates the nodes on the face */
52     static const dim_t reverseNodesMap[8][4]={{-1}, {-1 }, { 0, 2, 1}, {-1}, {-1}, {-1}, { 0, 2, 1, 3 }, {0}};/* reverses the order of the nodes on a face. the permutation has keep 0 fixed. */
53     /* shiftNodes={-1} or reverseNodes={-1} are ignored. */
54    
55    
56    
57 jfenwick 3196 // [0] is reduced quadrature, [1] is full quadrature
58     // in order the positions are POINT, LINE, TRI, TET
59     static const double QuadWeight[4][2]={{0, 0}, {1., 0.5}, {0.5, 1./6}, {1./6, 1./24}};
60 jfenwick 3184
61 jfenwick 3196 static const dim_t QuadNums[4][2] ={{0,0}, {1,2}, {1,3}, {1,4}};
62    
63     //shape functions at quadrature nodes
64     bool_t getQuadShape(dim_t sim, bool_t reduced, const double** shapearr);
65    
66 jfenwick 3210 const char* getElementName(ElementTypeId id);
67    
68 jfenwick 3184 #endif
69    
70    
71    

  ViewVC Help
Powered by ViewVC 1.1.26