47 lines
1.2 KiB
C++
47 lines
1.2 KiB
C++
#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
|
|
}; |