21 #ifndef __GRAPH_BUILDER_H
22 #define __GRAPH_BUILDER_H
27 #include <boost/unordered_map.hpp>
29 #include <boost/multi_array.hpp>
30 #include <dolfin/common/MPI.h>
54 const std::vector<std::size_t>& coloring_type);
64 std::pair<std::int32_t, std::int32_t>
66 const boost::multi_array<std::int64_t, 2>& cell_vertices,
68 const std::int64_t num_global_vertices,
70 std::set<std::int64_t>& ghost_vertices);
75 typedef std::vector<std::pair<std::vector<std::size_t>, std::int32_t>>
81 compute_local_dual_graph(
const MPI_Comm mpi_comm,
82 const boost::multi_array<std::int64_t, 2>& cell_vertices,
85 FacetCellMap& facet_cell_map);
91 compute_local_dual_graph_keyed(
const MPI_Comm mpi_comm,
92 const boost::multi_array<std::int64_t, 2>& cell_vertices,
95 FacetCellMap& facet_cell_map);
101 compute_nonlocal_dual_graph(
const MPI_Comm mpi_comm,
102 const boost::multi_array<std::int64_t, 2>& cell_vertices,
104 const std::int64_t num_global_vertices,
105 std::vector<std::vector<std::size_t>>&
local_graph,
106 FacetCellMap& facet_cell_map,
107 std::set<std::int64_t>& ghost_vertices);