Tabulation Project basix
basix.h
1 
2 #include <Eigen/Core>
3 #include <utility>
4 #include <vector>
5 
6 namespace basix
7 {
8 
10 int register_element(const char* family_name, const char* cell_type,
11  int degree);
12 
14 void release_element(int handle);
15 
17 std::vector<Eigen::ArrayXXd> tabulate(int handle, int nd,
18  const Eigen::ArrayXXd& x);
19 
21 const char* cell_type(int handle);
22 
24 int degree(int handle);
25 
27 int value_size(int handle);
28 
30 const std::vector<int>& value_shape(int handle);
31 
33 int dim(int handle);
34 
36 const char* family_name(int handle);
37 
39 const char* mapping_name(int handle);
40 
42 const std::vector<std::vector<int>>& entity_dofs(int handle);
43 
45 const std::vector<Eigen::MatrixXd>& base_permutations(int handle);
46 
48 const Eigen::ArrayXXd& points(int handle);
49 
51 const Eigen::MatrixXd& interpolation_matrix(int handle);
52 
54 Eigen::ArrayXXd geometry(const char* cell_type);
55 
57 std::vector<std::vector<std::vector<int>>> topology(const char* cell_type);
58 
60 std::pair<Eigen::ArrayXXd, Eigen::ArrayXd>
61 make_quadrature(const char* rule, const char* cell_type, int order);
62 
63 } // namespace basix
basix
Definition: basix.h:7
std::vector< std::vector< std::vector< int > > > topology(const char *cell_type)
Cell topology.
Definition: basix.cpp:105
std::vector< Eigen::ArrayXXd > tabulate(int handle, int nd, const Eigen::ArrayXXd &x)
Tabulate.
Definition: basix.cpp:37
const char * cell_type(int handle)
Cell type.
Definition: basix.cpp:44
const std::vector< std::vector< int > > & entity_dofs(int handle)
Number of dofs per entity, ordered from vertex, edge, facet, cell.
Definition: basix.cpp:80
int register_element(const char *family_name, const char *cell_type, int degree)
Create element in global registry and return handle.
Definition: basix.cpp:21
int value_size(int handle)
Value size.
Definition: basix.cpp:56
std::pair< Eigen::ArrayXXd, Eigen::ArrayXd > make_quadrature(const char *rule, const char *cell_type, int order)
Create quadrature points and weights.
Definition: basix.cpp:112
int dim(int handle)
Finite Element dimension.
void release_element(int handle)
Delete from global registry.
Definition: basix.cpp:29
const std::vector< Eigen::MatrixXd > & base_permutations(int handle)
Base permutations.
Eigen::ArrayXXd geometry(const char *cell_type)
Cell geometry.
Definition: basix.cpp:98
const std::vector< int > & value_shape(int handle)
Value shape.
Definition: basix.cpp:62
const Eigen::MatrixXd & interpolation_matrix(int handle)
Interpolation matrix.
Definition: basix.cpp:74
const char * family_name(int handle)
Family name.
Definition: basix.cpp:86
const char * mapping_name(int handle)
Mapping name (affine, piola etc.)
Definition: basix.cpp:92
int degree(int handle)
Degree.
Definition: basix.cpp:50
const Eigen::ArrayXXd & points(int handle)
Interpolation points.
Definition: basix.cpp:68