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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4499 - (hide annotations)
Tue Jul 16 05:42:19 2013 UTC (6 years, 8 months ago) by caltinay
File MIME type: text/plain
File size: 3285 byte(s)
finley: mainly const'ness fixes, some formatting.

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 4499 Finley: integration schemes for element shapes Tri, Quad, Hex, Tet, Line,
20 caltinay 4492 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 caltinay 4499 const double* quadNodes,
47     const double* quadWeights,
48     int numF, const double* dFdv,
49 caltinay 4492 int new_len, double* new_quadNodes,
50     double* new_quadWeights, double* new_dFfv);
51 gross 2748
52 caltinay 4492 struct QuadInfo {
53     /// quadrature type id
54     QuadTypeId TypeId;
55     /// the name in text form e.g. "Line", "Rec", ...
56     const char* Name;
57     /// number of spatial dimensions
58     int numDim;
59     /// number of vertices of the element
60     int numVertices;
61     /// function that returns the quadrature points for a given order
62     Quad_getNodes* getQuadNodes;
63     /// function that returns the number of quadrature nodes for a given
64     /// accuracy order
65     Quad_getNumNodes* getNumQuadNodes;
66     /// transfers a given quadrature scheme to a macro element structure
67     Quad_getMacro *getMacro;
68     };
69 gross 2748
70 jgs 82
71 caltinay 4492 /****** Interfaces ******/
72 jgs 82
73 caltinay 4492 Quad_getMacro Quad_MacroPoint;
74     Quad_getMacro Quad_MacroLine;
75     Quad_getMacro Quad_MacroTri;
76     Quad_getMacro Quad_MacroRec;
77     Quad_getMacro Quad_MacroTet;
78     Quad_getMacro Quad_MacroHex;
79 gross 2748
80 caltinay 4492 Quad_getNodes Quad_getNodesTri;
81     Quad_getNodes Quad_getNodesTet;
82     Quad_getNodes Quad_getNodesRec;
83     Quad_getNodes Quad_getNodesHex;
84     Quad_getNodes Quad_getNodesLine;
85     Quad_getNodes Quad_getNodesPoint;
86     Quad_getNodes Quad_getNodesTriOnFace;
87     Quad_getNodes Quad_getNodesRecOnFace;
88     Quad_getNodes Quad_getNodesLineOnFace;
89     Quad_getNodes Quad_getNodesPointOnFace;
90     Quad_getNodes Quad_getNodesTriMacro;
91     Quad_getNodes Quad_getNodesTetMacro;
92     Quad_getNodes Quad_getNodesRecMacro;
93     Quad_getNodes Quad_getNodesHexMacro;
94     Quad_getNodes Quad_getNodesLineMacro;
95 gross 2748
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 caltinay 4499 const 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