Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website
Loading...
Searching...
No Matches
TENOScalarValues< DEG > Struct Template Reference

Linear reconstruction of the scalars [Y_1 .. Y_Ns, gamma, e0] with the weights the flow block already uses: the large central stencil in smooth cells, and in troubled cells, on each face, the stencils that TENO selected for the entropy (contact) field there, which the species share. The weights are the same for every scalar, so mass fractions summing to one sum to one at every face point. The cell's bound-preserving factor theta (ScalarReconstruction) scales the deviation from the cell value. More...

#include <teno_scalars.h>

Public Member Functions

KOKKOS_INLINE_FUNCTION uint8_t n_quad () const
 
KOKKOS_INLINE_FUNCTION uint8_t n_faces (const uint32_t c) const
 
KOKKOS_INLINE_FUNCTION rtype entry_value (const int32_t c, const int32_t f, const uint32_t j) const
 Scalar j of a stencil entry: cell c, or its mirror across boundary face f.
 
KOKKOS_INLINE_FUNCTION bool face_point_basis (const uint32_t f, const uint8_t q, const uint32_t c, rtype *psi) const
 Monomials minus their cell means at point q of face f, in cell c's frame.
 
KOKKOS_INLINE_FUNCTION void large_coefficients (const uint32_t c, const uint32_t j, rtype *a) const
 
KOKKOS_INLINE_FUNCTION void sector_coefficients (const uint32_t c, const uint8_t s, const uint32_t j, rtype *a) const
 
KOKKOS_INLINE_FUNCTION void evaluate (const uint32_t c, const uint32_t j, const uint8_t k, const rtype *aK, const rtype aS[][teno::NK_SMALL], rtype *out) const
 Scalar j of cell c at the points of its local face k, given the large-stencil coefficients aK and (troubled cells) the sector ones.
 
KOKKOS_INLINE_FUNCTION void coefficients (const uint32_t c, const uint32_t j, rtype *aK, rtype aS[][teno::NK_SMALL]) const
 Coefficients of cell c for scalar j: large, and the sectors its troubled faces use.
 
KOKKOS_INLINE_FUNCTION void cell_values (const uint32_t c, const uint32_t j, rtype out[][MAX_Q]) const
 Scalar j of cell c at the points of all its faces, out[k][q] for local face k.
 
KOKKOS_INLINE_FUNCTION void face_values (const uint32_t c, const uint32_t j, const uint8_t k, rtype *out) const
 Scalar j of cell c at the points of its local face k.
 

Public Attributes

Kokkos::View< uint32_t * > offsets_faces_of_cell
 
Kokkos::View< uint32_t * > faces_of_cell
 
Kokkos::View< int32_t *[2]> cells_of_face
 
Kokkos::View< uint32_t * > offsets_nodes_of_face
 
Kokkos::View< uint32_t * > nodes_of_face
 
Kokkos::View< rtype *[N_DIM]> node_coords
 
Kokkos::View< rtype *[N_DIM]> cell_coords
 
Kokkos::View< rtype *[N_DIM]> face_coords
 
Kokkos::View< rtype *[N_DIM]> shifts
 
Kokkos::View< uint8_t * > face_shift
 
Kokkos::View< rtype ** > quad_points
 
Kokkos::View< rtype *** > face_quad_points
 
Kokkos::View< rtype ** > face_quad_weights
 
Kokkos::View< rtype * > scale
 
Kokkos::View< rtype ** > basis_mean
 
Kokkos::View< uint16_t * > stencil_large_size
 
teno::PackedStencils stencil_large
 
Kokkos::View< uint16_t ** > stencil_small_size
 
teno::PackedStencils stencil_small
 
Kokkos::View< rtype * > sigma
 
Kokkos::View< uint8_t ** > selection
 
rtype sigma_threshold
 
BoundaryData boundaries
 
Kokkos::View< rtype **, Kokkos::LayoutRight > scalars
 
Kokkos::View< rtype * > theta
 
uint32_t n_species
 

Static Public Attributes

static constexpr uint8_t NK = teno::n_dof(DEG)
 
static constexpr uint8_t MAX_Q = teno::MAX_FACE_QUAD
 

Detailed Description

template<uint8_t DEG>
struct TENOScalarValues< DEG >

Linear reconstruction of the scalars [Y_1 .. Y_Ns, gamma, e0] with the weights the flow block already uses: the large central stencil in smooth cells, and in troubled cells, on each face, the stencils that TENO selected for the entropy (contact) field there, which the species share. The weights are the same for every scalar, so mass fractions summing to one sum to one at every face point. The cell's bound-preserving factor theta (ScalarReconstruction) scales the deviation from the cell value.

Implements the face-value interface of ScalarFaceValues.

Member Function Documentation

◆ cell_values()

template<uint8_t DEG>
KOKKOS_INLINE_FUNCTION void TENOScalarValues< DEG >::cell_values ( const uint32_t  c,
const uint32_t  j,
rtype  out[][MAX_Q] 
) const
inline

Scalar j of cell c at the points of all its faces, out[k][q] for local face k.

◆ coefficients()

template<uint8_t DEG>
KOKKOS_INLINE_FUNCTION void TENOScalarValues< DEG >::coefficients ( const uint32_t  c,
const uint32_t  j,
rtype *  aK,
rtype  aS[][teno::NK_SMALL] 
) const
inline

Coefficients of cell c for scalar j: large, and the sectors its troubled faces use.

◆ entry_value()

template<uint8_t DEG>
KOKKOS_INLINE_FUNCTION rtype TENOScalarValues< DEG >::entry_value ( const int32_t  c,
const int32_t  f,
const uint32_t  j 
) const
inline

Scalar j of a stencil entry: cell c, or its mirror across boundary face f.

◆ evaluate()

template<uint8_t DEG>
KOKKOS_INLINE_FUNCTION void TENOScalarValues< DEG >::evaluate ( const uint32_t  c,
const uint32_t  j,
const uint8_t  k,
const rtype *  aK,
const rtype  aS[][teno::NK_SMALL],
rtype *  out 
) const
inline

Scalar j of cell c at the points of its local face k, given the large-stencil coefficients aK and (troubled cells) the sector ones.

◆ face_point_basis()

template<uint8_t DEG>
KOKKOS_INLINE_FUNCTION bool TENOScalarValues< DEG >::face_point_basis ( const uint32_t  f,
const uint8_t  q,
const uint32_t  c,
rtype *  psi 
) const
inline

Monomials minus their cell means at point q of face f, in cell c's frame.

◆ face_values()

template<uint8_t DEG>
KOKKOS_INLINE_FUNCTION void TENOScalarValues< DEG >::face_values ( const uint32_t  c,
const uint32_t  j,
const uint8_t  k,
rtype *  out 
) const
inline

Scalar j of cell c at the points of its local face k.

◆ large_coefficients()

template<uint8_t DEG>
KOKKOS_INLINE_FUNCTION void TENOScalarValues< DEG >::large_coefficients ( const uint32_t  c,
const uint32_t  j,
rtype *  a 
) const
inline

◆ n_faces()

template<uint8_t DEG>
KOKKOS_INLINE_FUNCTION uint8_t TENOScalarValues< DEG >::n_faces ( const uint32_t  c) const
inline

◆ n_quad()

template<uint8_t DEG>
KOKKOS_INLINE_FUNCTION uint8_t TENOScalarValues< DEG >::n_quad ( ) const
inline

◆ sector_coefficients()

template<uint8_t DEG>
KOKKOS_INLINE_FUNCTION void TENOScalarValues< DEG >::sector_coefficients ( const uint32_t  c,
const uint8_t  s,
const uint32_t  j,
rtype *  a 
) const
inline

Member Data Documentation

◆ basis_mean

template<uint8_t DEG>
Kokkos::View<rtype **> TENOScalarValues< DEG >::basis_mean

◆ boundaries

template<uint8_t DEG>
BoundaryData TENOScalarValues< DEG >::boundaries

◆ cell_coords

template<uint8_t DEG>
Kokkos::View<rtype *[N_DIM]> TENOScalarValues< DEG >::cell_coords

◆ cells_of_face

template<uint8_t DEG>
Kokkos::View<int32_t *[2]> TENOScalarValues< DEG >::cells_of_face

◆ face_coords

template<uint8_t DEG>
Kokkos::View<rtype *[N_DIM]> TENOScalarValues< DEG >::face_coords

◆ face_quad_points

template<uint8_t DEG>
Kokkos::View<rtype ***> TENOScalarValues< DEG >::face_quad_points

◆ face_quad_weights

template<uint8_t DEG>
Kokkos::View<rtype **> TENOScalarValues< DEG >::face_quad_weights

◆ face_shift

template<uint8_t DEG>
Kokkos::View<uint8_t *> TENOScalarValues< DEG >::face_shift

◆ faces_of_cell

template<uint8_t DEG>
Kokkos::View<uint32_t *> TENOScalarValues< DEG >::faces_of_cell

◆ MAX_Q

template<uint8_t DEG>
constexpr uint8_t TENOScalarValues< DEG >::MAX_Q = teno::MAX_FACE_QUAD
staticconstexpr

◆ n_species

template<uint8_t DEG>
uint32_t TENOScalarValues< DEG >::n_species

◆ NK

template<uint8_t DEG>
constexpr uint8_t TENOScalarValues< DEG >::NK = teno::n_dof(DEG)
staticconstexpr

◆ node_coords

template<uint8_t DEG>
Kokkos::View<rtype *[N_DIM]> TENOScalarValues< DEG >::node_coords

◆ nodes_of_face

template<uint8_t DEG>
Kokkos::View<uint32_t *> TENOScalarValues< DEG >::nodes_of_face

◆ offsets_faces_of_cell

template<uint8_t DEG>
Kokkos::View<uint32_t *> TENOScalarValues< DEG >::offsets_faces_of_cell

◆ offsets_nodes_of_face

template<uint8_t DEG>
Kokkos::View<uint32_t *> TENOScalarValues< DEG >::offsets_nodes_of_face

◆ quad_points

template<uint8_t DEG>
Kokkos::View<rtype **> TENOScalarValues< DEG >::quad_points

◆ scalars

template<uint8_t DEG>
Kokkos::View<rtype **, Kokkos::LayoutRight> TENOScalarValues< DEG >::scalars

◆ scale

template<uint8_t DEG>
Kokkos::View<rtype *> TENOScalarValues< DEG >::scale

◆ selection

template<uint8_t DEG>
Kokkos::View<uint8_t **> TENOScalarValues< DEG >::selection

◆ shifts

template<uint8_t DEG>
Kokkos::View<rtype *[N_DIM]> TENOScalarValues< DEG >::shifts

◆ sigma

template<uint8_t DEG>
Kokkos::View<rtype *> TENOScalarValues< DEG >::sigma

◆ sigma_threshold

template<uint8_t DEG>
rtype TENOScalarValues< DEG >::sigma_threshold

◆ stencil_large

template<uint8_t DEG>
teno::PackedStencils TENOScalarValues< DEG >::stencil_large

◆ stencil_large_size

template<uint8_t DEG>
Kokkos::View<uint16_t *> TENOScalarValues< DEG >::stencil_large_size

◆ stencil_small

template<uint8_t DEG>
teno::PackedStencils TENOScalarValues< DEG >::stencil_small

◆ stencil_small_size

template<uint8_t DEG>
Kokkos::View<uint16_t **> TENOScalarValues< DEG >::stencil_small_size

◆ theta

template<uint8_t DEG>
Kokkos::View<rtype *> TENOScalarValues< DEG >::theta

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