gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
GaussIntegration.h
Go to the documentation of this file.
1 // Gmsh - Copyright (C) 1997-2022 C. Geuzaine, J.-F. Remacle
2 //
3 // See the LICENSE.txt file in the Gmsh root directory for license information.
4 // Please report all issues on https://gitlab.onelab.info/gmsh/gmsh/issues.
5 
6 #ifndef GAUSS_INTEGRATION_H
7 #define GAUSS_INTEGRATION_H
8 
9 template <class scalar> class fullVector;
10 template <class scalar> class fullMatrix;
11 
12 struct IntPt {
13  double pt[3];
14  double weight;
15 };
16 
17 int GaussLegendreTri(int n1, int n2, IntPt *pts);
18 int GaussLegendreTet(int n1, int n2, int n3, IntPt *pts);
19 
20 int getNGQLPts(int order);
21 IntPt *getGQLPts(int order);
22 
23 int getNGQTPts(int order, bool forceTensorRule = false);
24 IntPt *getGQTPts(int order, bool forceTensorRule = false);
25 
26 int getNGQQPts(int order, bool forceTensorRule = false);
27 IntPt *getGQQPts(int order, bool forceTensorRule = false);
28 
29 int getNGQTetPts(int order, bool forceTensorRule = false);
30 IntPt *getGQTetPts(int order, bool forceTensorRule = false);
31 
32 int getNGQPriPts(int order, bool forceTensorRule = false);
33 IntPt *getGQPriPts(int order, bool forceTensorRule = false);
34 
35 int getNGQPyrPts(int order);
36 IntPt *getGQPyrPts(int order);
37 
38 int getNGQHPts(int order, bool forceTensorRule = false);
39 IntPt *getGQHPts(int order, bool forceTensorRule = false);
40 
42 public:
43  static void get(int elementType, int order, fullMatrix<double> &pts,
44  fullVector<double> &weights, bool forceTensorRule = false);
45  static void getTriangle(int order, fullMatrix<double> &pts,
46  fullVector<double> &weights);
47  static void getLine(int order, fullMatrix<double> &pts,
48  fullVector<double> &weights);
49  static void getQuad(int order, fullMatrix<double> &pts,
50  fullVector<double> &weights);
51  static void getTetrahedron(int order, fullMatrix<double> &pts,
52  fullVector<double> &weights);
53  static void getHexahedron(int order, fullMatrix<double> &pts,
54  fullVector<double> &weights);
55  static void getPrism(int order, fullMatrix<double> &pts,
56  fullVector<double> &weights);
57  static void getPyramid(int order, fullMatrix<double> &pts,
58  fullVector<double> &weights);
59 };
60 
61 #endif
getGQLPts
IntPt * getGQLPts(int order)
Definition: GaussQuadratureLin.cpp:12
fullVector
Definition: MElement.h:26
gaussIntegration::getLine
static void getLine(int order, fullMatrix< double > &pts, fullVector< double > &weights)
Definition: GaussIntegration.cpp:29
getGQTetPts
IntPt * getGQTetPts(int order, bool forceTensorRule=false)
Definition: GaussQuadratureTet.cpp:3346
getNGQHPts
int getNGQHPts(int order, bool forceTensorRule=false)
Definition: GaussQuadratureHex.cpp:115
IntPt::pt
double pt[3]
Definition: GaussIntegration.h:13
GaussLegendreTri
int GaussLegendreTri(int n1, int n2, IntPt *pts)
Definition: GaussLegendreSimplex.cpp:54
getNGQLPts
int getNGQLPts(int order)
Definition: GaussQuadratureLin.cpp:33
gaussIntegration::getHexahedron
static void getHexahedron(int order, fullMatrix< double > &pts, fullVector< double > &weights)
Definition: GaussIntegration.cpp:47
gaussIntegration
Definition: GaussIntegration.h:41
fullMatrix
Definition: MElement.h:27
getNGQPriPts
int getNGQPriPts(int order, bool forceTensorRule=false)
Definition: GaussQuadraturePri.cpp:47
IntPt::weight
double weight
Definition: GaussIntegration.h:14
getNGQTPts
int getNGQTPts(int order, bool forceTensorRule=false)
Definition: GaussQuadratureTri.cpp:904
GaussLegendreTet
int GaussLegendreTet(int n1, int n2, int n3, IntPt *pts)
Definition: GaussLegendreSimplex.cpp:33
getNGQQPts
int getNGQQPts(int order, bool forceTensorRule=false)
Definition: GaussQuadratureQuad.cpp:124
getNGQTetPts
int getNGQTetPts(int order, bool forceTensorRule=false)
Definition: GaussQuadratureTet.cpp:3362
getGQQPts
IntPt * getGQQPts(int order, bool forceTensorRule=false)
Definition: GaussQuadratureQuad.cpp:99
gaussIntegration::getPyramid
static void getPyramid(int order, fullMatrix< double > &pts, fullVector< double > &weights)
Definition: GaussIntegration.cpp:59
gaussIntegration::getQuad
static void getQuad(int order, fullMatrix< double > &pts, fullVector< double > &weights)
Definition: GaussIntegration.cpp:35
gaussIntegration::getTetrahedron
static void getTetrahedron(int order, fullMatrix< double > &pts, fullVector< double > &weights)
Definition: GaussIntegration.cpp:41
IntPt
Definition: GaussIntegration.h:12
getNGQPyrPts
int getNGQPyrPts(int order)
Definition: GaussQuadraturePyr.cpp:59
getGQTPts
IntPt * getGQTPts(int order, bool forceTensorRule=false)
Definition: GaussQuadratureTri.cpp:889
gaussIntegration::get
static void get(int elementType, int order, fullMatrix< double > &pts, fullVector< double > &weights, bool forceTensorRule=false)
Definition: GaussIntegration.cpp:65
gaussIntegration::getTriangle
static void getTriangle(int order, fullMatrix< double > &pts, fullVector< double > &weights)
Definition: GaussIntegration.cpp:23
getGQPyrPts
IntPt * getGQPyrPts(int order)
Definition: GaussQuadraturePyr.cpp:13
getGQPriPts
IntPt * getGQPriPts(int order, bool forceTensorRule=false)
Definition: GaussQuadraturePri.cpp:12
getGQHPts
IntPt * getGQHPts(int order, bool forceTensorRule=false)
Definition: GaussQuadratureHex.cpp:88
gaussIntegration::getPrism
static void getPrism(int order, fullMatrix< double > &pts, fullVector< double > &weights)
Definition: GaussIntegration.cpp:53