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