|
template<typename E , typename U , typename = std::enable_if_t<std::is_same< graph::AdjacencyList<std::int32_t>, std::decay_t<U>>::value>> |
| DofMap (E &&element, std::shared_ptr< const common::IndexMap > index_map, int index_map_bs, U &&dofmap, int bs) |
| Create a DofMap from the layout of dofs on a reference element, an IndexMap defining the distribution of dofs across processes and a vector of indices. More...
|
|
| DofMap (const DofMap &dofmap)=delete |
|
| DofMap (DofMap &&dofmap)=default |
| Move constructor.
|
|
DofMap & | operator= (const DofMap &dofmap)=delete |
|
DofMap & | operator= (DofMap &&dofmap)=default |
| Move assignment.
|
|
bool | operator== (const DofMap &map) const |
| Equality operator. More...
|
|
std::span< const std::int32_t > | cell_dofs (int cell) const |
| Local-to-global mapping of dofs on a cell. More...
|
|
int | bs () const noexcept |
| Return the block size for the dofmap.
|
|
DofMap | extract_sub_dofmap (const std::vector< int > &component) const |
| Extract subdofmap component. More...
|
|
std::pair< DofMap, std::vector< std::int32_t > > | collapse (MPI_Comm comm, const mesh::Topology &topology, const std::function< std::vector< int >(const graph::AdjacencyList< std::int32_t > &)> &reorder_fn=[](const graph::AdjacencyList< std::int32_t > &g) { return graph::reorder_gps(g);}) const |
| Create a "collapsed" dofmap (collapses a sub-dofmap) More...
|
|
const graph::AdjacencyList< std::int32_t > & | list () const |
| Get dofmap data. More...
|
|
const ElementDofLayout & | element_dof_layout () const |
| Layout of dofs on an element.
|
|
int | index_map_bs () const |
| Block size associated with the index_map.
|
|
Degree-of-freedom map.
This class handles the mapping of degrees of freedom. It builds a dof map based on an ElementDofLayout on a specific mesh topology. It will reorder the dofs when running in parallel. Sub-dofmaps, both views and copies, are supported.