Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website
Loading...
Searching...
No Matches
teno::PackedStencils Struct Reference

Per-cell stencils of different sizes, stored without padding to the largest one in the mesh. Slot s of a cell's stencil holds the stencil cell, its mirror boundary face (or -1) and width pseudo-inverse entries. Consecutive cells form slices of 2^shift cells; a slice is padded to its largest stencil and interleaves its cells' slots. With single, pinv holds the pseudo-inverse entries as floats, two to an element, at the same indices. More...

#include <teno.h>

Classes

struct  RowT
 One cell's stencil, resolved once per cell, for pseudo-inverse entries of type T. More...
 

Public Types

using Row = RowT< rtype >
 

Public Member Functions

template<typename T = rtype>
KOKKOS_INLINE_FUNCTION RowT< T > row (const uint32_t c) const
 

Static Public Member Functions

static KOKKOS_INLINE_FUNCTION size_t pinv_elements (const size_t n, const bool single)
 Elements of pinv that hold n entries.
 

Public Attributes

Kokkos::View< uint64_t * > slice_start
 
Kokkos::View< int32_t * > cells
 
Kokkos::View< int32_t * > faces
 
Kokkos::View< rtype * > pinv
 
uint8_t shift = SLICE_SHIFT
 
uint8_t width = 0
 
bool single = false
 

Detailed Description

Per-cell stencils of different sizes, stored without padding to the largest one in the mesh. Slot s of a cell's stencil holds the stencil cell, its mirror boundary face (or -1) and width pseudo-inverse entries. Consecutive cells form slices of 2^shift cells; a slice is padded to its largest stencil and interleaves its cells' slots. With single, pinv holds the pseudo-inverse entries as floats, two to an element, at the same indices.

Member Typedef Documentation

◆ Row

Member Function Documentation

◆ pinv_elements()

static KOKKOS_INLINE_FUNCTION size_t teno::PackedStencils::pinv_elements ( const size_t  n,
const bool  single 
)
inlinestatic

Elements of pinv that hold n entries.

◆ row()

template<typename T = rtype>
KOKKOS_INLINE_FUNCTION RowT< T > teno::PackedStencils::row ( const uint32_t  c) const
inline

Member Data Documentation

◆ cells

Kokkos::View<int32_t *> teno::PackedStencils::cells

◆ faces

Kokkos::View<int32_t *> teno::PackedStencils::faces

◆ pinv

Kokkos::View<rtype *> teno::PackedStencils::pinv

◆ shift

uint8_t teno::PackedStencils::shift = SLICE_SHIFT

◆ single

bool teno::PackedStencils::single = false

◆ slice_start

Kokkos::View<uint64_t *> teno::PackedStencils::slice_start

◆ width

uint8_t teno::PackedStencils::width = 0

The documentation for this struct was generated from the following file: