#include <DistributedMeshTools.h>
|
static void | number_entities (const Mesh &mesh, std::size_t d) |
| Create global entity indices for entities of dimension d.
|
|
static std::size_t | number_entities (const Mesh &mesh, const std::map< unsigned int, std::pair< unsigned int, unsigned int >> &slave_entities, std::vector< std::int64_t > &global_entity_indices, std::map< std::int32_t, std::set< unsigned int >> &shared_entities, std::size_t d) |
|
static void | init_facet_cell_connections (Mesh &mesh) |
|
static std::map< std::size_t, std::set< std::pair< std::size_t, std::size_t > > > | locate_off_process_entities (const std::vector< std::size_t > &entity_indices, std::size_t dim, const Mesh &mesh) |
|
static std::unordered_map< unsigned int, std::vector< std::pair< unsigned int, unsigned int > > > | compute_shared_entities (const Mesh &mesh, std::size_t d) |
|
static std::vector< double > | reorder_vertices_by_global_indices (const Mesh &mesh) |
|
static void | reorder_values_by_global_indices (const Mesh &mesh, std::vector< double > &data, const std::size_t width) |
|
static void | reorder_values_by_global_indices (MPI_Comm mpi_comm, std::vector< double > &values, const std::size_t width, const std::vector< std::int64_t > &global_indices) |
|
This class provides various functionality for working with distributed meshes.
◆ compute_shared_entities()
std::unordered_map< unsigned int, std::vector< std::pair< unsigned int, unsigned int > > > DistributedMeshTools::compute_shared_entities |
( |
const Mesh & |
mesh, |
|
|
std::size_t |
d |
|
) |
| |
|
static |
Compute map from local index of shared entity to list of sharing process and local index, i.e. (local index, [(sharing process p, local index on p)])
◆ init_facet_cell_connections()
void DistributedMeshTools::init_facet_cell_connections |
( |
Mesh & |
mesh | ) |
|
|
static |
Compute number of cells connected to each facet (globally). Facets on internal boundaries will be connected to two cells (with the cells residing on neighboring processes)
◆ locate_off_process_entities()
std::map< std::size_t, std::set< std::pair< std::size_t, std::size_t > > > DistributedMeshTools::locate_off_process_entities |
( |
const std::vector< std::size_t > & |
entity_indices, |
|
|
std::size_t |
dim, |
|
|
const Mesh & |
mesh |
|
) |
| |
|
static |
Find processes that own or share mesh entities (using entity global indices). Returns (global_dof, set(process_num, local_index)). Exclusively local entities will not appear in the map. Works only for vertices and cells
◆ number_entities()
std::size_t DistributedMeshTools::number_entities |
( |
const Mesh & |
mesh, |
|
|
const std::map< unsigned int, std::pair< unsigned int, unsigned int >> & |
slave_entities, |
|
|
std::vector< std::int64_t > & |
global_entity_indices, |
|
|
std::map< std::int32_t, std::set< unsigned int >> & |
shared_entities, |
|
|
std::size_t |
d |
|
) |
| |
|
static |
Create global entity indices for entities of dimension d for given global vertex indices.
◆ reorder_values_by_global_indices() [1/2]
void DistributedMeshTools::reorder_values_by_global_indices |
( |
const Mesh & |
mesh, |
|
|
std::vector< double > & |
data, |
|
|
const std::size_t |
width |
|
) |
| |
|
static |
Reorder the values (of given width) in data to be in global vertex index order on the Mesh, redistributing evenly across processes
◆ reorder_values_by_global_indices() [2/2]
void DistributedMeshTools::reorder_values_by_global_indices |
( |
MPI_Comm |
mpi_comm, |
|
|
std::vector< double > & |
values, |
|
|
const std::size_t |
width, |
|
|
const std::vector< std::int64_t > & |
global_indices |
|
) |
| |
|
static |
Reorder the values of given width, according to explicit global indices, distributing evenly across processes
◆ reorder_vertices_by_global_indices()
std::vector< double > DistributedMeshTools::reorder_vertices_by_global_indices |
( |
const Mesh & |
mesh | ) |
|
|
static |
Reorders the vertices in a distributed mesh according to their global index, and redistributes them evenly across processes returning the coordinates as a local vector
The documentation for this class was generated from the following files:
- /home/fenics/shared/dolfin/dolfin/mesh/DistributedMeshTools.h
- /home/fenics/shared/dolfin/dolfin/mesh/DistributedMeshTools.cpp