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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6651 - (hide annotations)
Wed Feb 7 02:12:08 2018 UTC (20 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 jgs 82
2 jfenwick 3981 /*****************************************************************************
3 ksteube 1811 *
4 jfenwick 6651 * Copyright (c) 2003-2018 by The University of Queensland
5 jfenwick 3981 * http://www.uq.edu.au
6 ksteube 1811 *
7     * Primary Business: Queensland, Australia
8 jfenwick 6112 * Licensed under the Apache License, version 2.0
9     * http://www.apache.org/licenses/LICENSE-2.0
10 ksteube 1811 *
11 jfenwick 3981 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 jfenwick 4657 * Development 2012-2013 by School of Earth Sciences
13     * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 jfenwick 3981 *
15     *****************************************************************************/
16 jgs 82
17 ksteube 1811
18 caltinay 4492 /****************************************************************************
19 jgs 82
20 caltinay 4499 Finley: integration schemes for element shapes Tri, Quad, Hex, Tet, Line,
21 caltinay 4492 Point
22 jgs 82
23 caltinay 4492 *****************************************************************************/
24 jgs 82
25 caltinay 4492 #ifndef __FINLEY_QUADRATURE_H__
26     #define __FINLEY_QUADRATURE_H__
27 jgs 150
28     #include "Finley.h"
29    
30 jgs 82 #define MAX_numQuadNodesLine 10
31    
32 caltinay 4492 namespace finley {
33    
34 gross 2748 typedef enum {
35 caltinay 4492 PointQuad,
36     LineQuad,
37     TriQuad,
38     RecQuad,
39     TetQuad,
40     HexQuad,
41     NoQuad // marks end of list
42     } QuadTypeId;
43 gross 2748
44 caltinay 5097 typedef void (Quad_getNodes) (int, std::vector<double>&, std::vector<double>&);
45 caltinay 4492 typedef int (Quad_getNumNodes) (int);
46     typedef int (Quad_getMacro) (int numSubElements, int numQuadNodes,
47 caltinay 4499 const double* quadNodes,
48     const double* quadWeights,
49     int numF, const double* dFdv,
50 caltinay 4492 int new_len, double* new_quadNodes,
51     double* new_quadWeights, double* new_dFfv);
52 gross 2748
53 caltinay 4492 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 gross 2748
71 jgs 82
72 caltinay 4492 /****** Interfaces ******/
73 jgs 82
74 caltinay 4492 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 gross 2748
81 caltinay 4492 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 gross 2748
97 caltinay 4492 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 jgs 82
104 caltinay 4492 void Quad_makeNodesOnFace(int, int, double*, double*, Quad_getNodes);
105 caltinay 4499 const QuadInfo* QuadInfo_getInfo(QuadTypeId id);
106 gross 2748
107 caltinay 4492 } // namespace finley
108 gross 2748
109 caltinay 4492 #endif // __FINLEY_QUADRATURE_H__
110 jgs 82

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26