#pragma once #include"../common/define.h" #include"../common/util.h" #include"../Eigen/Dense" #define BF_INPUT int order, int numBF, double u, double v, double w, Eigen::Vector3d& o void BF_Line_Lagrange(BF_INPUT); void BF_Line_Grad_Lagrange(BF_INPUT); void BF_Line_Curl_Lagrange(BF_INPUT); void BF_Triangle_Lagrange(BF_INPUT); void BF_Triangle_Grad_Lagrange(BF_INPUT); void BF_Triangle_Curl_Lagrange(BF_INPUT); void BF_Triangle_Nedelec(BF_INPUT); void BF_Triangle_Curl_Nedelec(BF_INPUT); void BF_Quadrangle_Lagrange(BF_INPUT); void BF_Quadrangle_Grad_Lagrange(BF_INPUT); void BF_Quadrangle_Curl_Lagrange(BF_INPUT); void BF_Quadrangle_Nedelec(BF_INPUT); void BF_Quadrangle_Curl_Nedelec(BF_INPUT); void BF_Tetrahedron_Nedelec(BF_INPUT); void BF_Tetrahedron_Curl_Nedelec(BF_INPUT); void BF_Prism_Nedelec(BF_INPUT); void BF_Prism_Curl_Nedelec(BF_INPUT); class BF { public: int GetNbrBF(int dim, int type, int typeBF, int order); int GetNbrBF(); void GetValueBF(int numBF, double u, double v, double w, Eigen::Vector3d& o); private: int _mNbrBF = 0; //number of basis function int _mDim = 0; //geo dimension int _mGeoType = 0; //line tri quad tetrahedron prism int _mBFType = 0; //original grad curl int _mOrder = 1; //order of basis function };