Basix
cell.h
1 // Copyright (c) 2020 Chris Richardson
2 // FEniCS Project
3 // SPDX-License-Identifier: MIT
4 
5 #pragma once
6 
7 #include <vector>
8 #include <xtensor/xtensor.hpp>
9 
10 namespace basix
11 {
12 
15 
16 namespace cell
17 {
18 
20 enum class type
21 {
22  point,
23  interval,
24  triangle,
25  tetrahedron,
26  quadrilateral,
27  hexahedron,
28  prism,
29  pyramid
30 };
31 
35 xt::xtensor<double, 2> geometry(cell::type celltype);
36 
40 std::vector<std::vector<std::vector<int>>> topology(cell::type celltype);
41 
47 xt::xtensor<double, 2> sub_entity_geometry(cell::type celltype, int dim,
48  int index);
49 
54 int sub_entity_count(cell::type celltype, int dim);
55 
59 int topological_dimension(cell::type celltype);
60 
66 cell::type sub_entity_type(cell::type celltype, int dim, int index);
67 
71 cell::type str_to_type(std::string name);
72 
74 const std::string& type_to_str(cell::type type);
75 
76 } // namespace cell
77 } // namespace basix
cell::type sub_entity_type(cell::type celltype, int dim, int index)
Definition: cell.cpp:188
int sub_entity_count(cell::type celltype, int dim)
Definition: cell.cpp:181
std::vector< std::vector< std::vector< int > > > topology(cell::type celltype)
Definition: cell.cpp:54
type
Cell type.
Definition: cell.h:21
cell::type str_to_type(std::string name)
Definition: cell.cpp:212
int topological_dimension(cell::type celltype)
Definition: cell.cpp:139
xt::xtensor< double, 2 > geometry(cell::type celltype)
Definition: cell.cpp:13
xt::xtensor< double, 2 > sub_entity_geometry(cell::type celltype, int dim, int index)
Definition: cell.cpp:163
const std::string & type_to_str(cell::type type)
Convert cell type enum to string.
Definition: cell.cpp:231
Placeholder.
Definition: brezzi-douglas-marini.h:10
int dim(int handle)
Definition: basix.cpp:201