ESScript  Revision_4488
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 {
41  NoQuad /* marks end of list */
43 
44 typedef void (Finley_Quad_getNodes) (dim_t,double*,double*);
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 */
60 
61 /************************************************************************************/
62 
63 /* Interfaces: */
64 
65 
72 
73 
89 
90 
91 
98 
101 
102 #endif /* #ifndef INC_FINLEY_QUADRATURE */
103