DOLFIN-X
DOLFIN-X C++ interface
graphbuild.h
1 // Copyright (C) 2010-2021 Garth N. Wells
2 //
3 // This file is part of DOLFINX (https://www.fenicsproject.org)
4 //
5 // SPDX-License-Identifier: LGPL-3.0-or-later
6 
7 #pragma once
8 
9 #include <array>
10 #include <cstdint>
11 #include <dolfinx/common/MPI.h>
12 #include <dolfinx/graph/AdjacencyList.h>
13 #include <utility>
14 #include <vector>
15 
16 namespace dolfinx::mesh
17 {
18 
19 enum class CellType;
20 
24 std::pair<graph::AdjacencyList<std::int64_t>, std::array<std::int32_t, 2>>
25 build_dual_graph(const MPI_Comm comm,
26  const graph::AdjacencyList<std::int64_t>& cell_vertices,
27  int tdim);
28 
31 std::pair<graph::AdjacencyList<std::int32_t>, dolfinx::array2d<std::int64_t>>
32 build_local_dual_graph(const graph::AdjacencyList<std::int64_t>& cell_vertices,
33  int tdim);
34 
35 } // namespace dolfinx::mesh
This class provides a dynamic 2-dimensional row-wise array data structure.
Definition: array2d.h:21
Mesh data structures and algorithms on meshes.
Definition: DirichletBC.h:23
std::pair< graph::AdjacencyList< std::int64_t >, std::array< std::int32_t, 2 > > build_dual_graph(const MPI_Comm comm, const graph::AdjacencyList< std::int64_t > &cell_vertices, int tdim)
Build distributed dual graph (cell-cell connections) from minimal mesh data, and return (graph,...
Definition: graphbuild.cpp:475
std::pair< graph::AdjacencyList< std::int32_t >, dolfinx::array2d< std::int64_t > > build_local_dual_graph(const graph::AdjacencyList< std::int64_t > &cell_vertices, int tdim)
Compute local part of the dual graph, and return (local_graph, facet_cell_map, number of local edges ...
Definition: graphbuild.cpp:497
CellType
Cell type identifier.
Definition: cell_types.h:23