Interface Documentation
Version: invalid
Namespaces | Functions | Variables
dcrs_utils.hh File Reference
#include <flecsi-config.h>
#include "flecsi/topo/unstructured/closure_utils.hh"
#include "flecsi/topo/unstructured/coloring_types.hh"
#include "flecsi/topo/unstructured/definition.hh"
#include "flecsi/topo/unstructured/index_coloring.hh"
#include "flecsi/topo/unstructured/parallel_definition.hh"
#include "flecsi/util/crs.hh"
#include "flecsi/util/mpi_type_traits.hh"
#include <mpi.h>
#include <map>
Include dependency graph for dcrs_utils.hh:

Go to the source code of this file.

Namespaces

 flecsi
 

Functions

template<size_t DIMENSION, size_t MESH_DIMENSION>
std::set< size_t > flecsi::topo::unstructured_impl::naive_coloring (definition< MESH_DIMENSION > &md)
 
template<std::size_t DIMENSION, std::size_t FROM_DIMENSION = DIMENSION, std::size_t TO_DIMENSION = DIMENSION, std::size_t THRU_DIMENSION = DIMENSION - 1>
util::dcrs flecsi::topo::unstructured_impl::make_dcrs (const definition< DIMENSION > &md)
 
template<std::size_t DIMENSION, std::size_t FROM_DIMENSION = DIMENSION, std::size_t TO_DIMENSION = DIMENSION, std::size_t THRU_DIMENSION = DIMENSION - 1>
void flecsi::topo::unstructured_impl::make_dcrs_have_connectivity (const definition< DIMENSION > &md, util::dcrs &dcrs)
 Create distributed CRS representation of the graph.
 
template<typename SEND_TYPE , typename ID_TYPE , typename RECV_TYPE >
auto flecsi::topo::unstructured_impl::alltoallv (const SEND_TYPE &sendbuf, const ID_TYPE &sendcounts, const ID_TYPE &senddispls, RECV_TYPE &recvbuf, const ID_TYPE &recvcounts, const ID_TYPE &recvdispls, decltype(MPI_COMM_WORLD) comm)
 
template<typename T , typename Vector >
flecsi::topo::unstructured_impl::rank_owner (const Vector &distribution, T i)
 Simple utility for determining which rank owns an id.
 
template<typename Vector >
void flecsi::topo::unstructured_impl::subdivide (size_t nelem, size_t npart, Vector &dist)
 A simple utility for subdividing an index space into several parts.
 
template<std::size_t MESH_DIMENSION>
void flecsi::topo::unstructured_impl::make_dcrs_distributed (const parallel_definition< MESH_DIMENSION > &md, size_t from_dimension, size_t to_dimension, size_t min_connections, util::dcrs &dcrs)
 Create distributed CRS representation of the graph.
 
template<std::size_t DIMENSION>
void flecsi::topo::unstructured_impl::migrate (size_t dimension, const std::vector< size_t > &partitioning, util::dcrs &dcrs, parallel_definition< DIMENSION > &md)
 Migrate pieces of a mesh from one processor to another.
 
void flecsi::topo::unstructured_impl::get_owner_info (const util::dcrs &dcrs, index_coloring &entities, coloring_info &color_info)
 
template<std::size_t MESH_DIMENSION>
void flecsi::topo::unstructured_impl::match_ids (const parallel_definition< MESH_DIMENSION > &md, size_t dimension, std::vector< size_t > &local2global, std::map< size_t, size_t > &global2local)
 Color an auxiliary index space like vertices or edges. More...
 
void flecsi::topo::unstructured_impl::ghost_connectivity (const util::crs &from2to, const std::vector< size_t > &local2global, const index_coloring &from_entities, std::vector< size_t > &from_ids, util::crs &connectivity)
 Color an auxiliary index space like vertices or edges.
 
template<std::size_t MESH_DIMENSION>
void flecsi::topo::unstructured_impl::ghost_connectivity (const parallel_definition< MESH_DIMENSION > &md, size_t from_dimension, size_t to_dimension, const index_coloring &from_entities, std::vector< size_t > &from_ids, util::crs &connectivity)
 

Variables

log::devel_tag flecsi::dcrs_utils_tag ("dcrs_utils")
 

Function Documentation

◆ make_dcrs()

template<std::size_t DIMENSION, std::size_t FROM_DIMENSION = DIMENSION, std::size_t TO_DIMENSION = DIMENSION, std::size_t THRU_DIMENSION = DIMENSION - 1>
util::dcrs flecsi::topo::unstructured_impl::make_dcrs ( const definition< DIMENSION > &  md)
inline

Create distributed CRS representation of the graph defined by entities of FROM_DIMENSION to TO_DIMENSION through THRU_DIMENSION. The return object will be populated with a naive partitioning suitable for use with coloring tools, e.g., ParMETIS.

Template Parameters
FROM_DIMENSIONThe topological dimension of the entity for which the partitioning is requested.
TO_DIMENSIONThe topological dimension to search for neighbors.
THRU_DIMENSIONThe topological dimension through which the neighbor connection exists.
Parameters
mdThe mesh definition.

◆ match_ids()

template<std::size_t MESH_DIMENSION>
void flecsi::topo::unstructured_impl::match_ids ( const parallel_definition< MESH_DIMENSION > &  md,
size_t  dimension,
std::vector< size_t > &  local2global,
std::map< size_t, size_t > &  global2local 
)

Color an auxiliary index space like vertices or edges.

Number an index space like edges or faces

◆ naive_coloring()

template<size_t DIMENSION, size_t MESH_DIMENSION>
std::set<size_t> flecsi::topo::unstructured_impl::naive_coloring ( definition< MESH_DIMENSION > &  md)
inline

Create a naive coloring suitable for calling a distributed-memory coloring tool, e.g., ParMETIS.

Template Parameters
DIMENSIONThe entity dimension for which to create a naive coloring.
MESH_DIMENSIONThe dimension of the mesh definition.