44 #ifndef PANZER_SUBCELL_CONNECTIVITY_HPP
45 #define PANZER_SUBCELL_CONNECTIVITY_HPP
47 #include "PanzerCore_config.hpp"
48 #include "Kokkos_View.hpp"
49 #include "Phalanx_KokkosDeviceTypes.hpp"
50 #include "Teuchos_Assert.hpp"
54 template <
typename LO,
typename GO>
55 struct LocalMeshPartition;
72 KOKKOS_INLINE_FUNCTION
80 KOKKOS_INLINE_FUNCTION
92 KOKKOS_INLINE_FUNCTION
106 KOKKOS_INLINE_FUNCTION
123 KOKKOS_INLINE_FUNCTION
124 int subcellForCell(
const int cell,
const int local_subcell_index)
const;
140 KOKKOS_INLINE_FUNCTION
141 int cellForSubcell(
const int subcell,
const int local_cell_index)
const;
153 KOKKOS_INLINE_FUNCTION
215 #ifndef KOKKOS_ENABLE_CUDA
227 #ifndef KOKKOS_ENABLE_CUDA
239 #ifndef KOKKOS_ENABLE_CUDA
253 #ifndef KOKKOS_ENABLE_CUDA
267 #ifndef KOKKOS_ENABLE_CUDA
Kokkos::View< int *, PHX::Device > _subcell_to_cells
Mapping from subcells to cells.
KOKKOS_INLINE_FUNCTION int subcellForCell(const int cell, const int local_subcell_index) const
Get the subcell index for a given cell and local subcell index.
int _num_subcells
Number of subcells for a given number of cells.
Kokkos::View< int *, PHX::Device > _cell_to_subcells_adj
Adjacency array for indexing into cell_to_subcells array.
~SubcellConnectivity()=default
Default destructor.
KOKKOS_INLINE_FUNCTION int numCellsOnSubcell(const int subcell) const
Returns the number of cells attached to a given subcell.
FaceConnectivity()=default
Default constructor.
Generates a SubcellConnectivity associated with faces and cells given a partition of the local mesh...
KOKKOS_INLINE_FUNCTION int numCells() const
Gives number of cells in connectivity.
Kokkos::View< int *, PHX::Device > _cell_to_subcells
Mapping from cells to subcells.
KOKKOS_INLINE_FUNCTION int localSubcellForSubcell(const int subcell, const int local_cell_index) const
Get the local subcell index given a subcell and a local cell index.
int _num_cells
Number of cells.
void setup(const panzer::LocalMeshPartition< int, panzer::Ordinal64 > &partition)
Setup the face connectivity from a partition of the local mesh.
KOKKOS_INLINE_FUNCTION int numSubcellsOnCell(const int cell) const
gives number of subcells (e.g. faces) found on a given cell
Kokkos::View< int *, PHX::Device > _subcell_to_local_subcells
Mapping from subcell indexes to local subcell indexes.
KOKKOS_INLINE_FUNCTION int cellForSubcell(const int subcell, const int local_cell_index) const
Get the cell for a given subcell and a local_cell_index.
KOKKOS_INLINE_FUNCTION int numSubcells() const
Gives number of subcells (e.g. faces) in connectivity.
~FaceConnectivity()=default
Default destructor.
Kokkos::View< int *, PHX::Device > _subcell_to_cells_adj
Adjacency array for indexing into subcell_to_cells array.
#define TEUCHOS_ASSERT(assertion_test)
SubcellConnectivity()
Default constructor.