Functions for the re-ordering of input mesh topology to the DOLFINx ordering, and transpose orderings for file output.
More...
|
std::vector< std::uint8_t > | perm_vtk (mesh::CellType type, int num_nodes) |
| Permutation array to map from VTK to DOLFINx node ordering.
|
|
std::vector< std::uint8_t > | perm_gmsh (mesh::CellType type, int num_nodes) |
| Permutation array to map from Gmsh to DOLFINx node ordering.
|
|
std::vector< std::uint8_t > | transpose (const std::vector< std::uint8_t > &map) |
| Compute the transpose of a re-ordering map.
|
|
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.
|
|
std::int8_t | get_vtk_cell_type (mesh::CellType cell, int dim) |
| Get VTK cell identifier.
|
|
Functions for the re-ordering of input mesh topology to the DOLFINx ordering, and transpose orderings for file output.
◆ apply_permutation()
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.
- Parameters
-
[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 |
- Returns
- Permuted cell topology, where for a cell
v_new[i] = v_old[map[i]]
. The storage is row-major and the shape is the same as cells
.
◆ get_vtk_cell_type()
Get VTK cell identifier.
- Parameters
-
[in] | cell | The cell type |
[in] | dim | The topological dimension of the cell |
- Returns
- The VTK cell identifier
◆ perm_gmsh()
std::vector< std::uint8_t > perm_gmsh |
( |
mesh::CellType |
type, |
|
|
int |
num_nodes |
|
) |
| |
Permutation array to map from Gmsh to DOLFINx node ordering.
- Parameters
-
[in] | type | The cell shape |
[in] | num_nodes | |
- Returns
- Permutation array
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]`
◆ perm_vtk()
std::vector< std::uint8_t > perm_vtk |
( |
mesh::CellType |
type, |
|
|
int |
num_nodes |
|
) |
| |
Permutation array to map from VTK to DOLFINx node ordering.
- Parameters
-
[in] | type | The cell shape |
[in] | num_nodes | The number of cell 'nodes' |
- Returns
- Permutation array
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]`
◆ transpose()
std::vector< std::uint8_t > transpose |
( |
const std::vector< std::uint8_t > & |
map | ) |
|
Compute the transpose of a re-ordering map.
- Parameters
-
- Returns
- Transpose of the
map
. E.g., is map = {1, 2, 3, 0}
, the transpose will be {3 , 0, 1, 2 }
.