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

Annotation of /trunk/finley/src/Quadrature.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4492 - (hide annotations)
Tue Jul 2 01:44:11 2013 UTC (6 years, 9 months ago) by caltinay
File MIME type: text/plain
File size: 3236 byte(s)
Finley changes that were held back while in release mode - moved more stuff
into finley namespace.

1 jgs 82
2 jfenwick 3981 /*****************************************************************************
3 ksteube 1811 *
4 jfenwick 4154 * Copyright (c) 2003-2013 by University of Queensland
5 jfenwick 3981 * http://www.uq.edu.au
6 ksteube 1811 *
7     * Primary Business: Queensland, Australia
8     * Licensed under the Open Software License version 3.0
9     * http://www.opensource.org/licenses/osl-3.0.php
10     *
11 jfenwick 3981 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12     * Development since 2012 by School of Earth Sciences
13     *
14     *****************************************************************************/
15 jgs 82
16 ksteube 1811
17 caltinay 4492 /****************************************************************************
18 jgs 82
19 caltinay 4492 Finley: integration schemes for element shapes Tri, Quad, Hex, Tet, Line,
20     Point
21 jgs 82
22 caltinay 4492 *****************************************************************************/
23 jgs 82
24 caltinay 4492 #ifndef __FINLEY_QUADRATURE_H__
25     #define __FINLEY_QUADRATURE_H__
26 jgs 150
27     #include "Finley.h"
28    
29 jgs 82 #define MAX_numQuadNodesLine 10
30    
31 caltinay 4492 namespace finley {
32    
33 gross 2748 typedef enum {
34 caltinay 4492 PointQuad,
35     LineQuad,
36     TriQuad,
37     RecQuad,
38     TetQuad,
39     HexQuad,
40     NoQuad // marks end of list
41     } QuadTypeId;
42 gross 2748
43 caltinay 4492 typedef void (Quad_getNodes) (int, double*, double*);
44     typedef int (Quad_getNumNodes) (int);
45     typedef int (Quad_getMacro) (int numSubElements, int numQuadNodes,
46     double* quadNodes, double* quadWeights,
47     int numF, double* dFdv,
48     int new_len, double* new_quadNodes,
49     double* new_quadWeights, double* new_dFfv);
50 gross 2748
51 caltinay 4492 struct QuadInfo {
52     /// quadrature type id
53     QuadTypeId TypeId;
54     /// the name in text form e.g. "Line", "Rec", ...
55     const char* Name;
56     /// number of spatial dimensions
57     int numDim;
58     /// number of vertices of the element
59     int numVertices;
60     /// function that returns the quadrature points for a given order
61     Quad_getNodes* getQuadNodes;
62     /// function that returns the number of quadrature nodes for a given
63     /// accuracy order
64     Quad_getNumNodes* getNumQuadNodes;
65     /// transfers a given quadrature scheme to a macro element structure
66     Quad_getMacro *getMacro;
67     };
68 gross 2748
69 jgs 82
70 caltinay 4492 /****** Interfaces ******/
71 jgs 82
72 caltinay 4492 Quad_getMacro Quad_MacroPoint;
73     Quad_getMacro Quad_MacroLine;
74     Quad_getMacro Quad_MacroTri;
75     Quad_getMacro Quad_MacroRec;
76     Quad_getMacro Quad_MacroTet;
77     Quad_getMacro Quad_MacroHex;
78 gross 2748
79 caltinay 4492 Quad_getNodes Quad_getNodesTri;
80     Quad_getNodes Quad_getNodesTet;
81     Quad_getNodes Quad_getNodesRec;
82     Quad_getNodes Quad_getNodesHex;
83     Quad_getNodes Quad_getNodesLine;
84     Quad_getNodes Quad_getNodesPoint;
85     Quad_getNodes Quad_getNodesTriOnFace;
86     Quad_getNodes Quad_getNodesRecOnFace;
87     Quad_getNodes Quad_getNodesLineOnFace;
88     Quad_getNodes Quad_getNodesPointOnFace;
89     Quad_getNodes Quad_getNodesTriMacro;
90     Quad_getNodes Quad_getNodesTetMacro;
91     Quad_getNodes Quad_getNodesRecMacro;
92     Quad_getNodes Quad_getNodesHexMacro;
93     Quad_getNodes Quad_getNodesLineMacro;
94 gross 2748
95    
96 caltinay 4492 Quad_getNumNodes Quad_getNumNodesPoint;
97     Quad_getNumNodes Quad_getNumNodesLine;
98     Quad_getNumNodes Quad_getNumNodesTri;
99     Quad_getNumNodes Quad_getNumNodesRec;
100     Quad_getNumNodes Quad_getNumNodesTet;
101     Quad_getNumNodes Quad_getNumNodesHex;
102 jgs 82
103 caltinay 4492 void Quad_makeNodesOnFace(int, int, double*, double*, Quad_getNodes);
104     QuadInfo* QuadInfo_getInfo(QuadTypeId id);
105 gross 2748
106 caltinay 4492 } // namespace finley
107 gross 2748
108 caltinay 4492 #endif // __FINLEY_QUADRATURE_H__
109 jgs 82

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26