11 #ifndef HIERARCHICAL_BASIS_HCURL_LINE_H
12 #define HIERARCHICAL_BASIS_HCURL_LINE_H
37 virtual void generateBasis(
double const &u,
double const &v,
double const &w,
38 std::vector<std::vector<double> > &vertexBasis,
39 std::vector<std::vector<double> > &edgeBasis,
40 std::vector<std::vector<double> > &faceBasis,
41 std::vector<std::vector<double> > &bubbleBasis,
42 std::string typeFunction)
44 if(typeFunction ==
"HcurlLegendre") {
47 else if(
"CurlHcurlLegendre" == typeFunction) {
51 throw std::runtime_error(
"unknown typeFunction");
55 orientEdge(
int const &flagOrientation,
int const &edgeNumber,
56 std::vector<std::vector<double> > &edgeBasis,
57 const std::vector<std::vector<double> > &eTablePositiveFlag,
58 const std::vector<std::vector<double> > &eTableNegativeFlag);
60 std::vector<std::vector<double> > &edgeFunctions);
62 int const &flag1,
int const &flag2,
int const &flag3,
int const &faceNumber,
63 const std::vector<std::vector<double> > &quadFaceFunctionsAllOrientation,
64 const std::vector<std::vector<double> > &triFaceFunctionsAllOrientation,
65 std::vector<std::vector<double> > &fTableCopy){};
66 virtual void getKeysInfo(std::vector<int> &functionTypeInfo,
67 std::vector<int> &orderInfo);
76 std::vector<std::vector<double> > &edgeBasis,
77 std::vector<std::vector<double> > &faceBasis,
78 std::vector<std::vector<double> > &bubbleBasis);
81 std::vector<std::vector<double> > &edgeBasis,
82 std::vector<std::vector<double> > &faceBasis,
83 std::vector<std::vector<double> > &bubbleBasis);
85 static double dotProduct(
const std::vector<double> &u,
86 const std::vector<double> &v);
87 virtual void orientOneFace(
double const &u,
double const &v,
double const &w,
88 int const &flag1,
int const &flag2,
89 int const &flag3,
int const &faceNumber,
90 std::vector<std::vector<double> > &faceFunctions,
91 std::string typeFunction){};