|
template<typename T > |
void | reorder_list (std::span< T > list, std::span< const std::int32_t > nodemap) |
| Re-order an adjacency list of fixed degree.
|
|
template<std::floating_point T> |
std::tuple< std::vector< std::int32_t >, std::vector< T >, std::vector< std::int32_t > > | compute_vertex_coords_boundary (const mesh::Mesh< T > &mesh, int dim, std::span< const std::int32_t > facets) |
| The coordinates of 'vertices' for for entities of a given dimension that are attached to specified facets.
|
|
std::vector< std::int32_t > | exterior_facet_indices (const Topology &topology) |
| Compute the indices of all exterior facets that are owned by the caller.
|
|
std::vector< std::int64_t > | extract_topology (CellType cell_type, const fem::ElementDofLayout &layout, std::span< const std::int64_t > cells) |
| Extract topology from cell data, i.e. extract cell vertices.
|
|
template<std::floating_point T> |
std::vector< T > | h (const Mesh< T > &mesh, std::span< const std::int32_t > entities, int dim) |
| Compute greatest distance between any two vertices of the mesh entities (h ).
|
|
template<std::floating_point T> |
std::vector< T > | cell_normals (const Mesh< T > &mesh, int dim, std::span< const std::int32_t > entities) |
| Compute normal to given cell (viewed as embedded in 3D)
|
|
template<std::floating_point T> |
std::vector< T > | compute_midpoints (const Mesh< T > &mesh, int dim, std::span< const std::int32_t > entities) |
| Compute the midpoints for mesh entities of a given dimension.
|
|
template<std::floating_point T> |
std::pair< std::vector< T >, std::array< std::size_t, 2 > > | compute_vertex_coords (const mesh::Mesh< T > &mesh) |
|
template<std::floating_point T, MarkerFn< T > U> |
std::vector< std::int32_t > | locate_entities (const Mesh< T > &mesh, int dim, U marker) |
| Compute indices of all mesh entities that evaluate to true for the provided geometric marking function.
|
|
template<std::floating_point T, MarkerFn< T > U> |
std::vector< std::int32_t > | locate_entities_boundary (const Mesh< T > &mesh, int dim, U marker) |
| Compute indices of all mesh entities that are attached to an owned boundary facet and evaluate to true for the provided geometric marking function.
|
|
template<std::floating_point T> |
std::vector< std::int32_t > | entities_to_geometry (const Mesh< T > &mesh, int dim, std::span< const std::int32_t > entities, bool permute=false) |
| Compute the geometry degrees of freedom associated with the closure of a given set of cell entities.
|
|
CellPartitionFunction | create_cell_partitioner (mesh::GhostMode ghost_mode=mesh::GhostMode::none, const graph::partition_fn &partfn=&graph::partition_graph) |
|
std::vector< std::int32_t > | compute_incident_entities (const Topology &topology, std::span< const std::int32_t > entities, int d0, int d1) |
| Compute incident indices.
|
|
template<typename U > |
Mesh< typename std::remove_reference_t< typename U::value_type > > | create_mesh (MPI_Comm comm, MPI_Comm commt, std::span< const std::int64_t > cells, const fem::CoordinateElement< typename std::remove_reference_t< typename U::value_type > > &element, MPI_Comm commg, const U &x, std::array< std::size_t, 2 > xshape, const CellPartitionFunction &partitioner) |
| Create a distributed mesh from mesh data using a provided graph partitioning function for determining the parallel distribution of the mesh.
|
|
template<typename U > |
Mesh< typename std::remove_reference_t< typename U::value_type > > | create_mesh (MPI_Comm comm, MPI_Comm commt, const std::vector< std::span< const std::int64_t > > &cells, const std::vector< fem::CoordinateElement< typename std::remove_reference_t< typename U::value_type > > > &elements, MPI_Comm commg, const U &x, std::array< std::size_t, 2 > xshape, const CellPartitionFunction &partitioner) |
| Create a distributed mixed-topology mesh from mesh data using a provided graph partitioning function for determining the parallel distribution of the mesh.
|
|
template<typename U > |
Mesh< typename std::remove_reference_t< typename U::value_type > > | create_mesh (MPI_Comm comm, std::span< const std::int64_t > cells, const fem::CoordinateElement< std::remove_reference_t< typename U::value_type > > &elements, const U &x, std::array< std::size_t, 2 > xshape, GhostMode ghost_mode) |
| Create a distributed mesh from mesh data using the default graph partitioner to determine the parallel distribution of the mesh.
|
|
template<std::floating_point T> |
std::pair< Geometry< T >, std::vector< int32_t > > | create_subgeometry (const Mesh< T > &mesh, int dim, std::span< const std::int32_t > subentity_to_entity) |
| Create a sub-geometry from a mesh and a subset of mesh entities to be included. A sub-geometry is simply a Geometry object containing only the geometric information for the subset of entities. The entities may differ in topological dimension from the original mesh.
|
|
template<std::floating_point T> |
std::tuple< Mesh< T >, std::vector< std::int32_t >, std::vector< std::int32_t >, std::vector< std::int32_t > > | create_submesh (const Mesh< T > &mesh, int dim, std::span< const std::int32_t > entities) |
| Create a new mesh consisting of a subset of entities in a mesh.
|
|
Functions supporting mesh operations.