gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
HierarchicalBasisH1.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_H
12 #define HIERARCHICAL_BASIS_H1_H
13 #include "HierarchicalBasis.h"
15 protected:
16  virtual void orientOneFace(double const &u, double const &v, double const &w,
17  int const &flag1, int const &flag2,
18  int const &flag3, int const &faceNumber,
19  std::vector<double> &faceFunctions) = 0;
20 
21  virtual void orientOneFace(double const &u, double const &v, double const &w,
22  int const &flag1, int const &flag2,
23  int const &flag3, int const &faceNumber,
24  std::vector<std::vector<double> > &faceFunctions,
25  std::string typeFunction = "GradH1Legendre") = 0;
26 
27 public:
28  virtual ~HierarchicalBasisH1() = 0;
29 
30  virtual void generateBasis(double const &u, double const &v, double const &w,
31  std::vector<double> &vertexBasis,
32  std::vector<double> &edgeBasis,
33  std::vector<double> &faceBasis,
34  std::vector<double> &bubbleBasis) = 0;
35 
36  virtual void generateBasis(double const &u, double const &v, double const &w,
37  std::vector<std::vector<double> > &vertexBasis,
38  std::vector<std::vector<double> > &edgeBasis,
39  std::vector<std::vector<double> > &faceBasis,
40  std::vector<std::vector<double> > &bubbleBasis,
41  std::string typeFunction = "GradH1Legendre") = 0;
42  virtual void
43  orientEdge(int const &flagOrientation, int const &edgeNumber,
44  std::vector<std::vector<double> > &edgeBasis,
45  const std::vector<std::vector<double> > &eTablePositiveFlag,
46  const std::vector<std::vector<double> > &eTableNegativeFlag) = 0;
47  virtual void orientEdge(int const &flagOrientation, int const &edgeNumber,
48  std::vector<double> &edgeFunctions,
49  const std::vector<double> &eTablePositiveFlag,
50  const std::vector<double> &eTableNegativeFlag) = 0;
52  std::vector<std::vector<double> > &edgeFunctions) = 0;
53  virtual void
54  orientEdgeFunctionsForNegativeFlag(std::vector<double> &edgeFunctions) = 0;
55  virtual void addAllOrientedFaceFunctions(
56  double const &u, double const &v, double const &w,
57  const std::vector<double> &faceFunctions,
58  std::vector<double> &quadFaceFunctionsAllOrientations,
59  std::vector<double> &triFaceFunctionsAllOrientations);
60  virtual void addAllOrientedFaceFunctions(
61  double const &u, double const &v, double const &w,
62  const std::vector<std::vector<double> > &faceFunctions,
63  std::vector<std::vector<double> > &quadFaceFunctionsAllOrientations,
64  std::vector<std::vector<double> > &triFaceFunctionsAllOrientations,
65  std::string typeFunction = "GradH1Legendre");
66  virtual void
67  orientFace(int const &flag1, int const &flag2, int const &flag3,
68  int const &faceNumber,
69  const std::vector<double> &quadFaceFunctionsAllOrientations,
70  const std::vector<double> &triFaceFunctionsAllOrientations,
71  std::vector<double> &fTableCopy) = 0;
72  virtual void orientFace(
73  int const &flag1, int const &flag2, int const &flag3, int const &faceNumber,
74  const std::vector<std::vector<double> > &quadFaceFunctionsAllOrientations,
75  const std::vector<std::vector<double> > &triFaceFunctionsAllOrientations,
76  std::vector<std::vector<double> > &fTableCopy) = 0;
77  virtual void getKeysInfo(std::vector<int> &functionTypeInfo,
78  std::vector<int> &orderInfo) = 0;
79 };
80 
81 #endif
HierarchicalBasisH1::addAllOrientedFaceFunctions
virtual void addAllOrientedFaceFunctions(double const &u, double const &v, double const &w, const std::vector< double > &faceFunctions, std::vector< double > &quadFaceFunctionsAllOrientations, std::vector< double > &triFaceFunctionsAllOrientations)
Definition: HierarchicalBasisH1.cpp:11
HierarchicalBasisH1::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")=0
HierarchicalBasisH1
Definition: HierarchicalBasisH1.h:14
HierarchicalBasisH1::orientEdgeFunctionsForNegativeFlag
virtual void orientEdgeFunctionsForNegativeFlag(std::vector< std::vector< double > > &edgeFunctions)=0
HierarchicalBasisH1::orientEdge
virtual void orientEdge(int const &flagOrientation, int const &edgeNumber, std::vector< double > &edgeFunctions, const std::vector< double > &eTablePositiveFlag, const std::vector< double > &eTableNegativeFlag)=0
HierarchicalBasisH1::getKeysInfo
virtual void getKeysInfo(std::vector< int > &functionTypeInfo, std::vector< int > &orderInfo)=0
HierarchicalBasisH1::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 > &faceFunctions)=0
HierarchicalBasisH1::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)=0
HierarchicalBasis
Definition: HierarchicalBasis.h:18
HierarchicalBasisH1::~HierarchicalBasisH1
virtual ~HierarchicalBasisH1()=0
Definition: HierarchicalBasisH1.cpp:9
HierarchicalBasis.h
HierarchicalBasisH1::orientEdgeFunctionsForNegativeFlag
virtual void orientEdgeFunctionsForNegativeFlag(std::vector< double > &edgeFunctions)=0
HierarchicalBasisH1::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")=0
HierarchicalBasisH1::orientFace
virtual void orientFace(int const &flag1, int const &flag2, int const &flag3, int const &faceNumber, const std::vector< double > &quadFaceFunctionsAllOrientations, const std::vector< double > &triFaceFunctionsAllOrientations, std::vector< double > &fTableCopy)=0
HierarchicalBasisH1::orientFace
virtual void orientFace(int const &flag1, int const &flag2, int const &flag3, int const &faceNumber, const std::vector< std::vector< double > > &quadFaceFunctionsAllOrientations, const std::vector< std::vector< double > > &triFaceFunctionsAllOrientations, std::vector< std::vector< double > > &fTableCopy)=0
HierarchicalBasisH1::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)=0