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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6939 - (show annotations)
Mon Jan 20 03:37:18 2020 UTC (4 months, 1 week ago) by uqaeller
File MIME type: text/plain
File size: 3449 byte(s)
Updated the copyright header.


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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26