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);