DOLFIN-X
DOLFIN-X C++ interface
DofMapBuilder.h
1 // Copyright (C) 2008-2018 Anders Logg, Ola Skavhaug and 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 <dolfinx/graph/AdjacencyList.h>
10 #include <memory>
11 #include <mpi.h>
12 #include <tuple>
13 #include <vector>
14 
15 namespace dolfinx
16 {
17 
18 namespace common
19 {
20 class IndexMap;
21 }
22 
23 namespace mesh
24 {
25 class Topology;
26 } // namespace mesh
27 
28 namespace fem
29 {
30 class ElementDofLayout;
31 
33 
35 {
36 
37 public:
39  static std::tuple<std::shared_ptr<const ElementDofLayout>,
40  std::shared_ptr<const common::IndexMap>,
42  build(MPI_Comm comm, const mesh::Topology& topology,
43  std::shared_ptr<const ElementDofLayout> element_dof_layout);
44 
46  static std::pair<std::shared_ptr<common::IndexMap>,
48  build(MPI_Comm comm, const mesh::Topology& topology,
49  const ElementDofLayout& element_dof_layout, int block_size);
50 };
51 } // namespace fem
52 } // namespace dolfinx
dolfinx::graph::AdjacencyList
This class provides a static adjacency list data structure. It is commonly used to store directed gra...
Definition: assemble_matrix_impl.h:26
dolfinx::fem::DofMapBuilder
Builds a DofMap on a mesh::Mesh.
Definition: DofMapBuilder.h:34
dolfinx::fem::ElementDofLayout
The class represents the degree-of-freedom (dofs) for an element. Dofs are associated with a mesh ent...
Definition: ElementDofLayout.h:36
dolfinx::fem::DofMapBuilder::build
static std::tuple< std::shared_ptr< const ElementDofLayout >, std::shared_ptr< const common::IndexMap >, graph::AdjacencyList< std::int32_t > > build(MPI_Comm comm, const mesh::Topology &topology, std::shared_ptr< const ElementDofLayout > element_dof_layout)
Build dofmap.
Definition: DofMapBuilder.cpp:481
dolfinx::mesh::Topology
Topology stores the topology of a mesh, consisting of mesh entities and connectivity (incidence relat...
Definition: Topology.h:58