Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef INC_FINLEY_QUADRATURE
00022 #define INC_FINLEY_QUADRATURE
00023
00024
00025
00026 #include "Finley.h"
00027
00028
00029
00030 #define MAX_numQuadNodesLine 10
00031
00032 typedef enum {
00033 PointQuad,
00034 LineQuad,
00035 TriQuad,
00036 RecQuad,
00037 TetQuad,
00038 HexQuad,
00039 NoQuad
00040 } Finley_QuadTypeId;
00041
00042 typedef void (Finley_Quad_getNodes) (dim_t,double*,double*);
00043 typedef dim_t (Finley_Quad_getNumNodes) (dim_t);
00044 typedef dim_t(Finley_Quad_getMacro)(dim_t numSubElements, int numQuadNodes, double* quadNodes, double* quadWeights,
00045 dim_t numF, double* dFdv,
00046 dim_t new_len, double* new_quadNodes, double* new_quadWeights,
00047 double* new_dFfv );
00048
00049 typedef struct Finley_QuadInfo {
00050 Finley_QuadTypeId TypeId;
00051 char* Name;
00052 dim_t numDim;
00053 dim_t numVertices;
00054 Finley_Quad_getNodes* getQuadNodes;
00055 Finley_Quad_getNumNodes* getNumQuadNodes;
00056 Finley_Quad_getMacro *getMacro;
00057 } Finley_QuadInfo;
00058
00059
00060
00061
00062
00063
00064 Finley_Quad_getMacro Finley_Quad_MacroPoint;
00065 Finley_Quad_getMacro Finley_Quad_MacroLine;
00066 Finley_Quad_getMacro Finley_Quad_MacroTri;
00067 Finley_Quad_getMacro Finley_Quad_MacroRec;
00068 Finley_Quad_getMacro Finley_Quad_MacroTet;
00069 Finley_Quad_getMacro Finley_Quad_MacroHex;
00070
00071
00072 Finley_Quad_getNodes Finley_Quad_getNodesTri;
00073 Finley_Quad_getNodes Finley_Quad_getNodesTet;
00074 Finley_Quad_getNodes Finley_Quad_getNodesRec;
00075 Finley_Quad_getNodes Finley_Quad_getNodesHex;
00076 Finley_Quad_getNodes Finley_Quad_getNodesLine;
00077 Finley_Quad_getNodes Finley_Quad_getNodesPoint;
00078 Finley_Quad_getNodes Finley_Quad_getNodesTriOnFace;
00079 Finley_Quad_getNodes Finley_Quad_getNodesRecOnFace;
00080 Finley_Quad_getNodes Finley_Quad_getNodesLineOnFace;
00081 Finley_Quad_getNodes Finley_Quad_getNodesPointOnFace;
00082 Finley_Quad_getNodes Finley_Quad_getNodesTriMacro;
00083 Finley_Quad_getNodes Finley_Quad_getNodesTetMacro;
00084 Finley_Quad_getNodes Finley_Quad_getNodesRecMacro;
00085 Finley_Quad_getNodes Finley_Quad_getNodesHexMacro;
00086 Finley_Quad_getNodes Finley_Quad_getNodesLineMacro;
00087
00088
00089
00090 Finley_Quad_getNumNodes Finley_Quad_getNumNodesPoint;
00091 Finley_Quad_getNumNodes Finley_Quad_getNumNodesLine;
00092 Finley_Quad_getNumNodes Finley_Quad_getNumNodesTri;
00093 Finley_Quad_getNumNodes Finley_Quad_getNumNodesRec;
00094 Finley_Quad_getNumNodes Finley_Quad_getNumNodesTet;
00095 Finley_Quad_getNumNodes Finley_Quad_getNumNodesHex;
00096
00097 void Finley_Quad_makeNodesOnFace(dim_t, dim_t,double*,double*, Finley_Quad_getNodes);
00098 Finley_QuadInfo* Finley_QuadInfo_getInfo(Finley_QuadTypeId id);
00099
00100 #endif
00101