Basix 0.4.0

Home     Installation     Demos     C++ docs     Python docs

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 
11 
14 namespace basix::cell
15 {
16 
18 enum class type
19 {
20  point = 0,
21  interval = 1,
22  triangle = 2,
23  tetrahedron = 3,
24  quadrilateral = 4,
25  hexahedron = 5,
26  prism = 6,
27  pyramid = 7
28 };
29 
33 xt::xtensor<double, 2> geometry(cell::type celltype);
34 
38 std::vector<std::vector<std::vector<int>>> topology(cell::type celltype);
39 
50 std::vector<std::vector<std::vector<std::vector<int>>>>
52 
58 xt::xtensor<double, 2> sub_entity_geometry(cell::type celltype, int dim,
59  int index);
60 
68 int num_sub_entities(cell::type celltype, int dim);
69 
73 int topological_dimension(cell::type celltype);
74 
80 cell::type sub_entity_type(cell::type celltype, int dim, int index);
81 
85 double volume(cell::type cell_type);
86 
90 xt::xtensor<double, 2> facet_outward_normals(cell::type cell_type);
91 
96 xt::xtensor<double, 2> facet_normals(cell::type cell_type);
97 
102 std::vector<bool> facet_orientations(cell::type cell_type);
103 
107 xt::xtensor<double, 1> facet_reference_volumes(cell::type cell_type);
108 
112 std::vector<std::vector<cell::type>> subentity_types(cell::type cell_type);
113 
117 xt::xtensor<double, 3> facet_jacobians(cell::type cell_type);
118 
119 } // namespace basix::cell
basix::cell::topological_dimension
int topological_dimension(cell::type celltype)
Definition: cell.cpp:298
basix::cell::facet_outward_normals
xt::xtensor< double, 2 > facet_outward_normals(cell::type cell_type)
Definition: cell.cpp:397
basix::cell::type
type
Cell type.
Definition: cell.h:18
basix::cell::facet_jacobians
xt::xtensor< double, 3 > facet_jacobians(cell::type cell_type)
Definition: cell.cpp:552
basix::cell::topology
std::vector< std::vector< std::vector< int > > > topology(cell::type celltype)
Definition: cell.cpp:56
basix::cell::facet_reference_volumes
xt::xtensor< double, 1 > facet_reference_volumes(cell::type cell_type)
Definition: cell.cpp:477
basix::cell::facet_normals
xt::xtensor< double, 2 > facet_normals(cell::type cell_type)
Definition: cell.cpp:411
basix::cell::volume
double volume(cell::type cell_type)
Definition: cell.cpp:372
basix::cell::subentity_types
std::vector< std::vector< cell::type > > subentity_types(cell::type cell_type)
Definition: cell.cpp:490
basix::cell::num_sub_entities
int num_sub_entities(cell::type celltype, int dim)
Definition: cell.cpp:341
basix::cell::geometry
xt::xtensor< double, 2 > geometry(cell::type celltype)
Definition: cell.cpp:13
basix::cell::facet_orientations
std::vector< bool > facet_orientations(cell::type cell_type)
Definition: cell.cpp:456
basix::cell::sub_entity_connectivity
std::vector< std::vector< std::vector< std::vector< int > > > > sub_entity_connectivity(cell::type celltype)
Definition: cell.cpp:147
basix::cell::sub_entity_geometry
xt::xtensor< double, 2 > sub_entity_geometry(cell::type celltype, int dim, int index)
Definition: cell.cpp:323
basix::cell::sub_entity_type
cell::type sub_entity_type(cell::type celltype, int dim, int index)
Definition: cell.cpp:348
basix::cell
Information about reference cells.
Definition: cell.h:14