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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6651 - (show annotations)
Wed Feb 7 02:12:08 2018 UTC (21 months ago) by jfenwick
File MIME type: text/plain
File size: 3373 byte(s)
Make everyone sad by touching all the files

Copyright dates update

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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26