11 #ifndef HIERARCHICAL_BASIS_HCURL_TRIA_H
12 #define HIERARCHICAL_BASIS_HCURL_TRIA_H
43 virtual void generateBasis(
double const &u,
double const &v,
double const &w,
44 std::vector<std::vector<double> > &vertexBasis,
45 std::vector<std::vector<double> > &edgeBasis,
46 std::vector<std::vector<double> > &faceBasis,
47 std::vector<std::vector<double> > &bubbleBasis,
48 std::string typeFunction)
50 if(typeFunction ==
"HcurlLegendre") {
53 else if(
"CurlHcurlLegendre" == typeFunction) {
57 throw std::runtime_error(
"unknown typeFunction");
61 orientEdge(
int const &flagOrientation,
int const &edgeNumber,
62 std::vector<std::vector<double> > &edgeBasis,
63 const std::vector<std::vector<double> > &eTablePositiveFlag,
64 const std::vector<std::vector<double> > &eTableNegativeFlag);
66 std::vector<std::vector<double> > &edgeFunctions);
68 int const &flag1,
int const &flag2,
int const &flag3,
int const &faceNumber,
69 const std::vector<std::vector<double> > &quadFaceFunctionsAllOrientation,
70 const std::vector<std::vector<double> > &triFaceFunctionsAllOrientation,
71 std::vector<std::vector<double> > &fTableCopy);
73 virtual void getKeysInfo(std::vector<int> &functionTypeInfo,
74 std::vector<int> &orderInfo);
88 std::vector<std::vector<double> > &edgeBasis,
89 std::vector<std::vector<double> > &faceBasis,
90 std::vector<std::vector<double> > &bubbleBasis);
93 std::vector<std::vector<double> > &edgeBasis,
94 std::vector<std::vector<double> > &faceBasis,
95 std::vector<std::vector<double> > &bubbleBasis);
97 static double dotProduct(
const std::vector<double> &u,
98 const std::vector<double> &v);
99 virtual void orientOneFace(
double const &u,
double const &v,
double const &w,
100 int const &flag1,
int const &flag2,
101 int const &flag3,
int const &faceNumber,
102 std::vector<std::vector<double> > &faceFunctions,
103 std::string typeFunction);