Loading...
Searching...
No Matches
basix::cell Namespace Reference

Information about reference cells. More...

## Enumerations

enum class | type : int { point = 0 , interval = 1 , triangle = 2 , tetrahedron = 3 , quadrilateral = 4 , hexahedron = 5 , prism = 6 , pyramid = 7 }
| Cell type.

## Functions

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)

## Detailed Description

Information about reference cells.

This namespace include functions that can be used to obtain geometric and topological information about reference cells

## Function Documentation

## geometry()

template<std::floating_point T>

std::pair< std::vector< T >, std::array< std::size_t, 2 > > basix::cell::geometry | ( | cell::type | celltype | ) |

Cell geometry

Parameters

  celltype | Cell Type

Returns
  (0) Vertex point data of the cell and (1) the shape of the data array. The points are stored in row-major format and the shape is is (npoints, gdim)

## topology()

std::vector< std::vector< std::vector< int > > > basix::cell::topology | ( | cell::type | celltype | ) |

Cell topology

Parameters

  celltype | Cell Type

Returns
  List of topology (vertex indices) for each dimension (0..tdim)

## sub_entity_connectivity()

std::vector< std::vector< std::vector< std::vector< int > > > > basix::cell::sub_entity_connectivity | ( | cell::type | celltype | ) |

Get the numbers of entities connected to each subentity of the cell.

Returns a vector of the form: output[dim][entity_n][connected_dim] = [connected_entity_n0, connected_entity_n1, ...] This indicates that the entity of dimension dim and number entity_n is connected to the entities of dimension connected_dim and numbers connected_entity_n0, connected_entity_n1, ...

Parameters

  celltype | Cell Type

Returns
  List of topology (vertex indices) for each dimension (0..tdim)

## sub_entity_geometry()

template<std::floating_point T>

std::pair< std::vector< T >, std::array< std::size_t, 2 > > basix::cell::sub_entity_geometry | ( | cell::type | celltype,
|  | int | dim,
|  | int | index )

Sub-entity of a cell, given by topological dimension and index

Parameters

  celltype | The cell::type
  dim | Dimension of sub-entity
  index | Local index of sub-entity

Returns
  Set of vertex points of the sub-entity. Shape is (npoints, gdim)

## num_sub_entities()

int basix::cell::num_sub_entities | ( | cell::type | celltype,
|  | int | dim )

Number of sub-entities of a cell by topological dimension

Parameters

  celltype | The cell::type
  dim | Dimension of sub-entity

Returns
  The number of sub-entities of the given dimension

## topological_dimension()

int basix::cell::topological_dimension | ( | cell::type | celltype | ) |

Get the topological dimension for a given cell type

Parameters

  celltype | Cell type

Returns
  the topological dimension

## sub_entity_type()

cell::type basix::cell::sub_entity_type | ( | cell::type | celltype,
|  | int | dim,
|  | int | index )

Get the cell type of a sub-entity of given dimension and index

Parameters

  celltype | Type of cell
  dim | Topological dimension of sub-entity
  index | Index of sub-entity

Returns
  cell type of sub-entity

## volume()

template<std::floating_point T>

T basix::cell::volume | ( | cell::type | cell_type | ) |

Get the volume of a reference cell

Parameters

  cell_type | Type of cell

Returns
  The volume of the cell

## facet_outward_normals()

template<std::floating_point T>

std::pair< std::vector< T >, std::array< std::size_t, 2 > > basix::cell::facet_outward_normals | ( | cell::type | cell_type | ) |

Get the (outward) normals to the facets of a reference cell

Parameters

  cell_type | Type of cell

Returns
  The outward normals. Shape is (nfacets, gdim)

## scaled_facet_normals()

template<std::floating_point T>

std::pair< std::vector< T >, std::array< std::size_t, 2 > > basix::cell::scaled_facet_normals | ( | cell::type | cell_type | ) |

Get the normals to the facets of a reference cell oriented using the low-to-high ordering of the facet, scaled so that the length of the normal is the volume of the facet

Parameters

  cell_type | Type of cell

Returns
  The normals. Shape is (nfacets, gdim)

## facet_normals()

template<std::floating_point T>

std::pair< std::vector< T >, std::array< std::size_t, 2 > > basix::cell::facet_normals | ( | cell::type | cell_type | ) |

Get the normals to the facets of a reference cell oriented using the low-to-high ordering of the facet

Parameters

  cell_type | Type of cell

Returns
  The normals. Shape is (nfacets, gdim)

## facet_orientations()

std::vector< bool > basix::cell::facet_orientations | ( | cell::type | cell_type | ) |

Get an array of bools indicating whether or not the facet normals are outward pointing

Parameters

  cell_type | Type of cell

Returns
  The orientations

## facet_reference_volumes()

template<std::floating_point T>

std::vector< T > basix::cell::facet_reference_volumes | ( | cell::type | cell_type | ) |

Get the reference volumes of the facets of a reference cell

Parameters

  cell_type | Type of cell

Returns
  The volumes of the references associated with each facet

## subentity_types()

std::vector< std::vector< cell::type > > basix::cell::subentity_types | ( | cell::type | cell_type | ) |

Get the types of the subentities of a reference cell

Parameters

  cell_type | Type of cell

Returns
  The subentity types. Indices are (tdim, entity)

## entity_jacobians()

template<std::floating_point T>

std::pair< std::vector< T >, std::array< std::size_t, 3 > > basix::cell::entity_jacobians | ( | cell::type | cell_type,
|  | std::size_t | e_dim )

Get the jacobians of a set of entities of a reference cell

Parameters

  cell_type | Type of cell
  e_dim | Dimension of entities

Returns
  The jacobians of the facets (flattened) and the shape (nfacets, tdim, tdim - 1).

## facet_jacobians()

template<std::floating_point T>

std::pair< std::vector< T >, std::array< std::size_t, 3 > > basix::cell::facet_jacobians | ( | cell::type | cell_type | ) |

Get the jacobians of the facets of a reference cell

Parameters

  cell_type | Type of cell

Returns
  The jacobians of the facets (flattened) and the shape (nfacets, tdim, tdim - 1).

## edge_jacobians()

template<std::floating_point T>

std::pair< std::vector< T >, std::array< std::size_t, 3 > > basix::cell::edge_jacobians | ( | cell::type | cell_type | ) |

Get the jacobians of the edegs of a reference cell

Parameters

  cell_type | Type of cell

Returns
  The jacobians of the edges (flattened) and the shape (nedges, tdim, tdim-2).