ESScript
Revision_4488
Main Page
Namespaces
Classes
Files
File List
File Members
finley
src
Quadrature.h
Go to the documentation of this file.
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, Point */
20
21
/************************************************************************************/
22
23
#ifndef INC_FINLEY_QUADRATURE
24
#define INC_FINLEY_QUADRATURE
25
26
/************************************************************************************/
27
28
#include "
Finley.h
"
29
30
/************************************************************************************/
31
32
#define MAX_numQuadNodesLine 10
33
34
typedef
enum
{
35
PointQuad
,
36
LineQuad
,
37
TriQuad
,
38
RecQuad
,
39
TetQuad
,
40
HexQuad
,
41
NoQuad
/* marks end of list */
42
}
Finley_QuadTypeId
;
43
44
typedef
void (
Finley_Quad_getNodes
) (
dim_t
,
double
*,
double
*);
45
typedef
dim_t
(
Finley_Quad_getNumNodes
) (
dim_t
);
46
typedef
dim_t
(
Finley_Quad_getMacro
)(
dim_t
numSubElements,
int
numQuadNodes,
double
* quadNodes,
double
* quadWeights,
47
dim_t
numF,
double
* dFdv,
48
dim_t
new_len,
double
* new_quadNodes,
double
* new_quadWeights,
49
double
* new_dFfv );
50
51
typedef
struct
Finley_QuadInfo
{
52
Finley_QuadTypeId
TypeId
;
/* the id */
53
const
char
*
Name
;
/* the name in text form e.g. Line,Rec,... */
54
dim_t
numDim
;
/* spatial dimension */
55
dim_t
numVertices
;
/* number of vertices of the element */
56
Finley_Quad_getNodes
*
getQuadNodes
;
/* function to set the quadrature points for a given order */
57
Finley_Quad_getNumNodes
*
getNumQuadNodes
;
/* function selects the number of quadrature nodes for a given accuracy order */
58
Finley_Quad_getMacro
*
getMacro
;
/* transfers a given quadrature scheme to a macro element structure */
59
}
Finley_QuadInfo
;
60
61
/************************************************************************************/
62
63
/* Interfaces: */
64
65
66
Finley_Quad_getMacro
Finley_Quad_MacroPoint
;
67
Finley_Quad_getMacro
Finley_Quad_MacroLine
;
68
Finley_Quad_getMacro
Finley_Quad_MacroTri
;
69
Finley_Quad_getMacro
Finley_Quad_MacroRec
;
70
Finley_Quad_getMacro
Finley_Quad_MacroTet
;
71
Finley_Quad_getMacro
Finley_Quad_MacroHex
;
72
73
74
Finley_Quad_getNodes
Finley_Quad_getNodesTri
;
75
Finley_Quad_getNodes
Finley_Quad_getNodesTet
;
76
Finley_Quad_getNodes
Finley_Quad_getNodesRec
;
77
Finley_Quad_getNodes
Finley_Quad_getNodesHex
;
78
Finley_Quad_getNodes
Finley_Quad_getNodesLine
;
79
Finley_Quad_getNodes
Finley_Quad_getNodesPoint
;
80
Finley_Quad_getNodes
Finley_Quad_getNodesTriOnFace
;
81
Finley_Quad_getNodes
Finley_Quad_getNodesRecOnFace
;
82
Finley_Quad_getNodes
Finley_Quad_getNodesLineOnFace
;
83
Finley_Quad_getNodes
Finley_Quad_getNodesPointOnFace
;
84
Finley_Quad_getNodes
Finley_Quad_getNodesTriMacro
;
85
Finley_Quad_getNodes
Finley_Quad_getNodesTetMacro
;
86
Finley_Quad_getNodes
Finley_Quad_getNodesRecMacro
;
87
Finley_Quad_getNodes
Finley_Quad_getNodesHexMacro
;
88
Finley_Quad_getNodes
Finley_Quad_getNodesLineMacro
;
89
90
91
92
Finley_Quad_getNumNodes
Finley_Quad_getNumNodesPoint
;
93
Finley_Quad_getNumNodes
Finley_Quad_getNumNodesLine
;
94
Finley_Quad_getNumNodes
Finley_Quad_getNumNodesTri
;
95
Finley_Quad_getNumNodes
Finley_Quad_getNumNodesRec
;
96
Finley_Quad_getNumNodes
Finley_Quad_getNumNodesTet
;
97
Finley_Quad_getNumNodes
Finley_Quad_getNumNodesHex
;
98
99
void
Finley_Quad_makeNodesOnFace
(
dim_t
,
dim_t
,
double
*,
double
*,
Finley_Quad_getNodes
);
100
Finley_QuadInfo
*
Finley_QuadInfo_getInfo
(
Finley_QuadTypeId
id
);
101
102
#endif
/* #ifndef INC_FINLEY_QUADRATURE */
103
Generated on Fri Jun 28 2013 11:10:53 for ESScript by
1.8.1.2