Loading...
Searching...
No Matches
cell.h
// Copyright (c) 2020 Chris Richardson
// FEniCS Project
// SPDX-License-Identifier: MIT
#pragma once
#include <array>
#include <concepts>
#include <utility>
#include <vector>
namespace basix::cell
{
enum class type : int
{
point = 0,
interval = 1,
triangle = 2,
tetrahedron = 3,
quadrilateral = 4,
hexahedron = 5,
prism = 6,
pyramid = 7
};
template <std::floating_point T>
std::pair<std::vector<T>, std::array<std::size_t, 2>>
geometry(cell::type celltype);
std::vector<std::vector<std::vector<int>>> topology(cell::type celltype);
std::vector<std::vector<std::vector<std::vector<int>>>>
sub_entity_connectivity(cell::type celltype);
template <std::floating_point T>
std::pair<std::vector<T>, std::array<std::size_t, 2>>
sub_entity_geometry(cell::type celltype, int dim, int index);
int num_sub_entities(cell::type celltype, int dim);
int topological_dimension(cell::type celltype);
cell::type sub_entity_type(cell::type celltype, int dim, int index);
template <std::floating_point T>
T volume(cell::type cell_type);
template <std::floating_point T>
std::pair<std::vector<T>, std::array<std::size_t, 2>>
facet_outward_normals(cell::type cell_type);
template <std::floating_point T>
std::pair<std::vector<T>, std::array<std::size_t, 2>>
scaled_facet_normals(cell::type cell_type);
template <std::floating_point T>
std::pair<std::vector<T>, std::array<std::size_t, 2>>
facet_normals(cell::type cell_type);
std::vector<bool> facet_orientations(cell::type cell_type);
template <std::floating_point T>
std::vector<T> facet_reference_volumes(cell::type cell_type);
std::vector<std::vector<cell::type>> subentity_types(cell::type cell_type);
template <std::floating_point T>
std::pair<std::vector<T>, std::array<std::size_t, 3>>
entity_jacobians(cell::type cell_type, std::size_t e_dim);
template <std::floating_point T>
std::pair<std::vector<T>, std::array<std::size_t, 3>>
facet_jacobians(cell::type cell_type);
template <std::floating_point T>
std::pair<std::vector<T>, std::array<std::size_t, 3>>
edge_jacobians(cell::type cell_type);
} // namespace basix::cell
basix::cell
Information about reference cells.
Definition cell.h:17
basix::cell::facet_orientations
std::vector< bool > facet_orientations(cell::type cell_type)
Definition cell.cpp:556
basix::cell::num_sub_entities
int num_sub_entities(cell::type celltype, int dim)
Definition cell.cpp:345
basix::cell::type
type
Cell type.
Definition cell.h:21
basix::cell::facet_jacobians
std::pair< std::vector< T >, std::array< std::size_t, 3 > > facet_jacobians(cell::type cell_type)
Definition cell.cpp:693
basix::cell::sub_entity_type
cell::type sub_entity_type(cell::type celltype, int dim, int index)
Definition cell.cpp:379
basix::cell::facet_reference_volumes
std::vector< T > facet_reference_volumes(cell::type cell_type)
Definition cell.cpp:587
basix::cell::topology
std::vector< std::vector< std::vector< int > > > topology(cell::type celltype)
Definition cell.cpp:52
basix::cell::subentity_types
std::vector< std::vector< cell::type > > subentity_types(cell::type cell_type)
Definition cell.cpp:598
basix::cell::edge_jacobians
std::pair< std::vector< T >, std::array< std::size_t, 3 > > edge_jacobians(cell::type cell_type)
Definition cell.cpp:707
basix::cell::entity_jacobians
std::pair< std::vector< T >, std::array< std::size_t, 3 > > entity_jacobians(cell::type cell_type, std::size_t e_dim)
Definition cell.cpp:662
basix::cell::topological_dimension
int topological_dimension(cell::type celltype)
Definition cell.cpp:294
basix::cell::sub_entity_connectivity
std::vector< std::vector< std::vector< std::vector< int > > > > sub_entity_connectivity(cell::type celltype)
Definition cell.cpp:143
basix::cell::sub_entity_geometry
std::pair< std::vector< T >, std::array< std::size_t, 2 > > sub_entity_geometry(cell::type celltype, int dim, int index)
Definition cell.cpp:321
basix::cell::facet_normals
std::pair< std::vector< T >, std::array< std::size_t, 2 > > facet_normals(cell::type cell_type)
Definition cell.cpp:450
basix::cell::scaled_facet_normals
std::pair< std::vector< T >, std::array< std::size_t, 2 > > scaled_facet_normals(cell::type cell_type)
Definition cell.cpp:507
basix::cell::volume
T volume(cell::type cell_type)
Definition cell.cpp:404
basix::cell::facet_outward_normals
std::pair< std::vector< T >, std::array< std::size_t, 2 > > facet_outward_normals(cell::type cell_type)
Definition cell.cpp:431
basix::cell::geometry
std::pair< std::vector< T >, std::array< std::size_t, 2 > > geometry(cell::type celltype)
Definition cell.cpp:20