ESScript
Revision_
Main Page
Namespaces
Classes
Files
File List
File Members
finley
src
ShapeFunctions.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
#ifndef __FINLEY_SHAPEFUNCTIONS_H__
17
#define __FINLEY_SHAPEFUNCTIONS_H__
18
19
#include "
Finley.h
"
20
21
#include <boost/shared_ptr.hpp>
22
23
#define S_INDEX(_J_,_I_,_NUMNODES_) INDEX2(_J_,_I_,_NUMNODES_)
24
#define DSDV_INDEX(_J_,_K_,_I_,_NUMNODES_,_DIM_) INDEX3(_J_,_K_,_I_,_NUMNODES_,_DIM_)
25
26
namespace
finley {
27
28
typedef
enum
{
29
Point1Shape
,
30
Line2Shape
,
31
Line3Shape
,
32
Line4Shape
,
33
Tri3Shape
,
34
Tri6Shape
,
35
Tri9Shape
,
36
Tri10Shape
,
37
Rec4Shape
,
38
Rec8Shape
,
39
Rec9Shape
,
40
Rec12Shape
,
41
Rec16Shape
,
42
Tet4Shape
,
43
Tet10Shape
,
44
Tet16Shape
,
45
Hex8Shape
,
46
Hex20Shape
,
47
Hex27Shape
,
48
Hex32Shape
,
49
NoShape
// marks end of list
50
}
ShapeFunctionTypeId
;
51
52
53
typedef
void (
ShapeFunction_Evaluation
) (int,
double
*,
double
*,
double
*);
54
56
struct
ShapeFunctionInfo
{
58
ShapeFunctionTypeId
TypeId
;
60
const
char
*
Name
;
62
int
numDim
;
64
int
numShapes
;
66
int
numOrder
;
68
int
numVertices
;
70
ShapeFunction_Evaluation
*
getValues
;
71
};
72
73
75
struct
ShapeFunction
{
76
ShapeFunction
(
ShapeFunctionTypeId
id
,
int
numQuadDim,
int
numQuadNodes
,
77
const
std::vector<double>&
QuadNodes
,
78
const
std::vector<double>&
QuadWeights
);
79
80
ShapeFunctionTypeId
getTypeId
(
const
char
*);
81
82
static
const
ShapeFunctionInfo
*
getInfo
(
ShapeFunctionTypeId
id
);
83
85
const
ShapeFunctionInfo
*
Type
;
87
int
numQuadNodes
;
89
std::vector<double>
QuadNodes
;
91
std::vector<double>
QuadWeights
;
93
std::vector<double>
S
;
95
std::vector<double>
dSdv
;
96
};
97
98
typedef
boost::shared_ptr<const ShapeFunction>
const_ShapeFunction_ptr
;
99
100
ShapeFunction_Evaluation
Shape_Point1
;
101
ShapeFunction_Evaluation
Shape_Line2
;
102
ShapeFunction_Evaluation
Shape_Line3
;
103
ShapeFunction_Evaluation
Shape_Line4
;
104
ShapeFunction_Evaluation
Shape_Tri3
;
105
ShapeFunction_Evaluation
Shape_Tri6
;
106
ShapeFunction_Evaluation
Shape_Tri9
;
107
ShapeFunction_Evaluation
Shape_Tri10
;
108
ShapeFunction_Evaluation
Shape_Rec4
;
109
ShapeFunction_Evaluation
Shape_Rec8
;
110
ShapeFunction_Evaluation
Shape_Rec9
;
111
ShapeFunction_Evaluation
Shape_Rec12
;
112
ShapeFunction_Evaluation
Shape_Rec16
;
113
ShapeFunction_Evaluation
Shape_Tet4
;
114
ShapeFunction_Evaluation
Shape_Tet10
;
115
ShapeFunction_Evaluation
Shape_Tet16
;
116
ShapeFunction_Evaluation
Shape_Hex8
;
117
ShapeFunction_Evaluation
Shape_Hex20
;
118
ShapeFunction_Evaluation
Shape_Hex27
;
119
ShapeFunction_Evaluation
Shape_Hex32
;
120
121
}
// namespace finley
122
123
#endif // __FINLEY_SHAPEFUNCTIONS_H__
124
Generated on Thu Dec 12 2013 03:47:18 for ESScript by
1.8.1.2