DOLFINx
0.5.1
DOLFINx C++ interface
|
Functions for the re-ordering of input mesh topology to the DOLFINx ordering, and transpose orderings for file output. More...
Functions | |
std::vector< std::uint8_t > | perm_vtk (mesh::CellType type, int num_nodes) |
Permutation array to map from VTK to DOLFINx node ordering. More... | |
std::vector< std::uint8_t > | perm_gmsh (mesh::CellType type, int num_nodes) |
Permutation array to map from Gmsh to DOLFINx node ordering. More... | |
std::vector< std::uint8_t > | transpose (const std::vector< std::uint8_t > &map) |
Compute the transpose of a re-ordering map. More... | |
std::vector< std::int64_t > | apply_permutation (const std::span< const std::int64_t > &cells, std::array< std::size_t, 2 > shape, const std::span< const std::uint8_t > &p) |
Permute cell topology by applying a permutation array for each cell. More... | |
std::int8_t | get_vtk_cell_type (mesh::CellType cell, int dim) |
Get VTK cell identifier. More... | |
Functions for the re-ordering of input mesh topology to the DOLFINx ordering, and transpose orderings for file output.
std::vector< std::int64_t > apply_permutation | ( | const std::span< const std::int64_t > & | cells, |
std::array< std::size_t, 2 > | shape, | ||
const std::span< const std::uint8_t > & | p | ||
) |
Permute cell topology by applying a permutation array for each cell.
[in] | cells | Array of cell topologies, with each row representing a cell (row-major storage) |
[in] | shape | The shape of the cells array |
[in] | p | The permutation array that maps a_p[i] = a[p[i]] , where a_p is the permuted array |
v_new[i] = v_old[map[i]]
. The storage is row-major and the shape is the same as cells
. std::int8_t get_vtk_cell_type | ( | mesh::CellType | cell, |
int | dim | ||
) |
Get VTK cell identifier.
[in] | cell | The cell type |
[in] | dim | The topological dimension of the cell |
std::vector< std::uint8_t > perm_gmsh | ( | mesh::CellType | type, |
int | num_nodes | ||
) |
Permutation array to map from Gmsh to DOLFINx node ordering.
[in] | type | The cell shape |
[in] | num_nodes |
for
permuting from Gmsh ordering to DOLFINx ordering, i.e. a_dolfin[i] = a_gmsh[p[i]] @details If
p = [0, 2, 1, 3]and
a = [10, 3, 4, 7], then
a_p =[a[p[0]], a[p[1]], a[p[2]], a[p[3]]] = [10, 4, 3, 7]` std::vector< std::uint8_t > perm_vtk | ( | mesh::CellType | type, |
int | num_nodes | ||
) |
Permutation array to map from VTK to DOLFINx node ordering.
[in] | type | The cell shape |
[in] | num_nodes | The number of cell 'nodes' |
for
permuting from VTK ordering to DOLFINx ordering, i.e. a_dolfin[i] = a_vtk[p[i]] @details If
p = [0, 2, 1, 3]and
a = [10, 3, 4, 7], then
a_p =[a[p[0]], a[p[1]], a[p[2]], a[p[3]]] = [10, 4, 3, 7]` std::vector< std::uint8_t > transpose | ( | const std::vector< std::uint8_t > & | map | ) |
Compute the transpose of a re-ordering map.
[in] | map | A re-ordering map |
map
. E.g., is map = {1, 2, 3, 0}
, the transpose will be {3 , 0, 1, 2 }
.