gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
HierarchicalBasisH1Point.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 // Contributed by Ismail Badia.
7 // Reference : "Higher-Order Finite Element Methods"; Pavel Solin, Karel
8 // Segeth ,
9 // Ivo Dolezel , Chapman and Hall/CRC; Edition : Har/Cdr (2003).
10 
11 #ifndef HIERARCHICAL_BASIS_H1_POINT_H
12 #define HIERARCHICAL_BASIS_H1_POINT_H
13 
14 #include "HierarchicalBasisH1.h"
15 /*
16  *
17  *
18  *
19  *
20  */
22 public:
24  virtual ~HierarchicalBasisH1Point();
25  virtual unsigned int getNumberOfOrientations() const;
26  // vertexBasis=[v0]
27  virtual void generateBasis(double const &u, double const &v, double const &w,
28  std::vector<double> &vertexBasis,
29  std::vector<double> &edgeBasis,
30  std::vector<double> &faceBasis,
31  std::vector<double> &bubbleBasis);
32  virtual void generateBasis(double const &u, double const &v, double const &w,
33  std::vector<std::vector<double> > &vertexBasis,
34  std::vector<std::vector<double> > &edgeBasis,
35  std::vector<std::vector<double> > &faceBasis,
36  std::vector<std::vector<double> > &bubbleBasis,
37  std::string typeFunction = "GradH1Legendre")
38  {
39  generateGradientBasis(u, v, w, vertexBasis, edgeBasis, faceBasis,
40  bubbleBasis);
41  }
42 
43  virtual void orientEdge(int const &flagOrientation, int const &edgeNumber,
44  std::vector<double> &edgeFunctions,
45  const std::vector<double> &eTablePositiveFlag,
46  const std::vector<double> &eTableNegativeFlag){};
47  virtual void
48  orientEdge(int const &flagOrientation, int const &edgeNumber,
49  std::vector<std::vector<double> > &edgeBasis,
50  const std::vector<std::vector<double> > &eTablePositiveFlag,
51  const std::vector<std::vector<double> > &eTableNegativeFlag){};
52 
53  virtual void
54  orientEdgeFunctionsForNegativeFlag(std::vector<double> &edgeFunctions){};
56  std::vector<std::vector<double> > &edgeFunctions){};
57  virtual void
58  orientFace(int const &flag1, int const &flag2, int const &flag3,
59  int const &faceNumber,
60  const std::vector<double> &quadFaceFunctionsAllOrientation,
61  const std::vector<double> &triFaceFunctionsAllOrientation,
62  std::vector<double> &fTableCopy){};
63  virtual void orientFace(
64  int const &flag1, int const &flag2, int const &flag3, int const &faceNumber,
65  const std::vector<std::vector<double> > &quadFaceFunctionsAllOrientation,
66  const std::vector<std::vector<double> > &triFaceFunctionsAllOrientation,
67  std::vector<std::vector<double> > &fTableCopy){};
68 
69  virtual void getKeysInfo(std::vector<int> &functionTypeInfo,
70  std::vector<int> &orderInfo);
71 
72 private:
73  void generateGradientBasis(double const &u, double const &v, double const &w,
74  std::vector<std::vector<double> > &gradientVertex,
75  std::vector<std::vector<double> > &gradientEdge,
76  std::vector<std::vector<double> > &gradientFace,
77  std::vector<std::vector<double> > &gradientBubble);
78  virtual void orientOneFace(double const &u, double const &v, double const &w,
79  int const &flag1, int const &flag2,
80  int const &flag3, int const &faceNumber,
81  std::vector<double> &faceBasis){};
82  virtual void orientOneFace(double const &u, double const &v, double const &w,
83  int const &flag1, int const &flag2,
84  int const &flag3, int const &faceNumber,
85  std::vector<std::vector<double> > &faceFunctions,
86  std::string typeFunction = "GradH1Legendre"){};
87 };
88 
89 #endif
HierarchicalBasisH1Point::orientOneFace
virtual void orientOneFace(double const &u, double const &v, double const &w, int const &flag1, int const &flag2, int const &flag3, int const &faceNumber, std::vector< double > &faceBasis)
Definition: HierarchicalBasisH1Point.h:78
HierarchicalBasisH1Point::generateBasis
virtual void generateBasis(double const &u, double const &v, double const &w, std::vector< std::vector< double > > &vertexBasis, std::vector< std::vector< double > > &edgeBasis, std::vector< std::vector< double > > &faceBasis, std::vector< std::vector< double > > &bubbleBasis, std::string typeFunction="GradH1Legendre")
Definition: HierarchicalBasisH1Point.h:32
HierarchicalBasisH1Point::HierarchicalBasisH1Point
HierarchicalBasisH1Point()
Definition: HierarchicalBasisH1Point.cpp:13
HierarchicalBasisH1Point::orientEdge
virtual void orientEdge(int const &flagOrientation, int const &edgeNumber, std::vector< std::vector< double > > &edgeBasis, const std::vector< std::vector< double > > &eTablePositiveFlag, const std::vector< std::vector< double > > &eTableNegativeFlag)
Definition: HierarchicalBasisH1Point.h:48
HierarchicalBasisH1Point::~HierarchicalBasisH1Point
virtual ~HierarchicalBasisH1Point()
Definition: HierarchicalBasisH1Point.cpp:26
HierarchicalBasisH1
Definition: HierarchicalBasisH1.h:14
HierarchicalBasisH1Point::orientEdgeFunctionsForNegativeFlag
virtual void orientEdgeFunctionsForNegativeFlag(std::vector< double > &edgeFunctions)
Definition: HierarchicalBasisH1Point.h:54
HierarchicalBasisH1Point::orientEdgeFunctionsForNegativeFlag
virtual void orientEdgeFunctionsForNegativeFlag(std::vector< std::vector< double > > &edgeFunctions)
Definition: HierarchicalBasisH1Point.h:55
HierarchicalBasisH1Point::orientOneFace
virtual void orientOneFace(double const &u, double const &v, double const &w, int const &flag1, int const &flag2, int const &flag3, int const &faceNumber, std::vector< std::vector< double > > &faceFunctions, std::string typeFunction="GradH1Legendre")
Definition: HierarchicalBasisH1Point.h:82
HierarchicalBasisH1Point::getKeysInfo
virtual void getKeysInfo(std::vector< int > &functionTypeInfo, std::vector< int > &orderInfo)
Definition: HierarchicalBasisH1Point.cpp:53
HierarchicalBasisH1Point
Definition: HierarchicalBasisH1Point.h:21
HierarchicalBasisH1Point::getNumberOfOrientations
virtual unsigned int getNumberOfOrientations() const
Definition: HierarchicalBasisH1Point.cpp:28
HierarchicalBasisH1Point::orientFace
virtual void orientFace(int const &flag1, int const &flag2, int const &flag3, int const &faceNumber, const std::vector< double > &quadFaceFunctionsAllOrientation, const std::vector< double > &triFaceFunctionsAllOrientation, std::vector< double > &fTableCopy)
Definition: HierarchicalBasisH1Point.h:58
HierarchicalBasisH1Point::orientFace
virtual void orientFace(int const &flag1, int const &flag2, int const &flag3, int const &faceNumber, const std::vector< std::vector< double > > &quadFaceFunctionsAllOrientation, const std::vector< std::vector< double > > &triFaceFunctionsAllOrientation, std::vector< std::vector< double > > &fTableCopy)
Definition: HierarchicalBasisH1Point.h:63
HierarchicalBasisH1.h
HierarchicalBasisH1Point::generateGradientBasis
void generateGradientBasis(double const &u, double const &v, double const &w, std::vector< std::vector< double > > &gradientVertex, std::vector< std::vector< double > > &gradientEdge, std::vector< std::vector< double > > &gradientFace, std::vector< std::vector< double > > &gradientBubble)
Definition: HierarchicalBasisH1Point.cpp:43
HierarchicalBasisH1Point::generateBasis
virtual void generateBasis(double const &u, double const &v, double const &w, std::vector< double > &vertexBasis, std::vector< double > &edgeBasis, std::vector< double > &faceBasis, std::vector< double > &bubbleBasis)
Definition: HierarchicalBasisH1Point.cpp:33
HierarchicalBasisH1Point::orientEdge
virtual void orientEdge(int const &flagOrientation, int const &edgeNumber, std::vector< double > &edgeFunctions, const std::vector< double > &eTablePositiveFlag, const std::vector< double > &eTableNegativeFlag)
Definition: HierarchicalBasisH1Point.h:43