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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4492 - (show annotations)
Tue Jul 2 01:44:11 2013 UTC (5 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
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2013 by University of Queensland
5 * http://www.uq.edu.au
6 *
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 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development since 2012 by School of Earth Sciences
13 *
14 *****************************************************************************/
15
16
17 /****************************************************************************
18
19 Finley: integration schemes for element shapes Tri, Quad, Hex, Tet, Line,
20 Point
21
22 *****************************************************************************/
23
24 #ifndef __FINLEY_QUADRATURE_H__
25 #define __FINLEY_QUADRATURE_H__
26
27 #include "Finley.h"
28
29 #define MAX_numQuadNodesLine 10
30
31 namespace finley {
32
33 typedef enum {
34 PointQuad,
35 LineQuad,
36 TriQuad,
37 RecQuad,
38 TetQuad,
39 HexQuad,
40 NoQuad // marks end of list
41 } QuadTypeId;
42
43 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
51 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
69
70 /****** Interfaces ******/
71
72 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
79 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
95
96 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
103 void Quad_makeNodesOnFace(int, int, double*, double*, Quad_getNodes);
104 QuadInfo* QuadInfo_getInfo(QuadTypeId id);
105
106 } // namespace finley
107
108 #endif // __FINLEY_QUADRATURE_H__
109

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26