16#include <Kokkos_Core.hpp>
64 Kokkos::View<rtype **, Kokkos::LayoutRight>
scalars;
70 if constexpr (
N_DIM == 2) {
99 if constexpr (
N_DIM == 2) {
175 if (!((
mask >>
s) & 1u))
continue;
222template <u
int8_t DEG>
224 Kokkos::View<rtype **, Kokkos::LayoutRight> scalars,
225 Kokkos::View<rtype *> theta,
uint32_t n_species) {
229 teno.quadrature_face.points,
teno.face_quad_points,
teno.face_quad_weights,
231 teno.stencil_small_size,
teno.stencil_small,
teno.troubled,
232 teno.selection,
teno.sigma_threshold, boundaries, scalars, theta, n_species};
Kokkos::View< rtype *[N_DIM]> cell_coords
Definition mesh.h:450
Kokkos::View< uint8_t * > face_shift
Definition mesh.h:468
Kokkos::View< uint32_t * > nodes_of_face
Definition mesh.h:459
Kokkos::View< uint32_t * > offsets_nodes_of_face
Definition mesh.h:460
Kokkos::View< uint32_t * > offsets_faces_of_cell
Definition mesh.h:458
Kokkos::View< uint32_t * > faces_of_cell
Definition mesh.h:457
Kokkos::View< int32_t *[2]> cells_of_face
Definition mesh.h:461
Kokkos::View< rtype *[N_DIM]> node_coords
Definition mesh.h:449
Kokkos::View< rtype *[N_DIM]> shifts
Definition mesh.h:467
Kokkos::View< rtype *[N_DIM]> face_coords
Definition mesh.h:454
High-order TENO-E reconstruction on unstructured meshes (Liang, Shyy & Fu, J. Sci....
Definition face_reconstruction.h:282
static constexpr uint8_t SELECT_LARGE
Definition face_reconstruction.h:415
KOKKOS_INLINE_FUNCTION rtype dot(const rtype *a, const rtype *b)
Compute the dot product of two arrays.
Definition common_math.h:32
float rtype
Definition common_typedef.h:39
#define N_DIM
Definition common_typedef.h:28
#define FOR_I_DIM
Definition common_typedef.h:32
Face reconstruction class declaration.
constexpr uint8_t MAX_FACES
Definition teno.h:37
constexpr uint8_t NK_SMALL
Definition teno.h:36
KOKKOS_INLINE_FUNCTION void monomials(const uint8_t r, const T xi, const T eta, T *phi)
Evaluate all monomials of degree 1..r at (xi, eta).
Definition teno.h:225
KOKKOS_INLINE_FUNCTION constexpr uint8_t n_dof(const uint8_t r)
Number of non-constant N_DIM-variate monomials of total degree <= r.
Definition teno.h:27
constexpr uint8_t MAX_FACE_QUAD
Definition teno.h:38
Device-side lookup from faces to boundary conditions.
Definition boundary.h:229
Kokkos::View< int32_t * > face_bc
Definition boundary.h:230
Kokkos::View< rtype **, Kokkos::LayoutRight > bc_Y
Definition boundary.h:257
Kokkos::View< BoundaryCondition * > bcs
Definition boundary.h:249
Kokkos::View< rtype *[2]> bc_thermo
Definition boundary.h:258
Linear reconstruction of the scalars [Y_1 .. Y_Ns, gamma, e0] with the weights the flow block already...
Definition teno_scalars.h:37
KOKKOS_INLINE_FUNCTION void large_coefficients(const uint32_t c, const uint32_t j, rtype *a) const
Definition teno_scalars.h:125
static constexpr uint8_t MAX_Q
Definition teno_scalars.h:39
Kokkos::View< uint8_t * > face_shift
Definition teno_scalars.h:50
Kokkos::View< rtype *[N_DIM]> node_coords
Definition teno_scalars.h:46
Kokkos::View< uint16_t * > stencil_large_size
Definition teno_scalars.h:56
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 (tr...
Definition teno_scalars.h:154
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.
Definition teno_scalars.h:204
Kokkos::View< rtype ** > basis_mean
Definition teno_scalars.h:55
teno::PackedStencils stencil_small
Definition teno_scalars.h:59
Kokkos::View< rtype ** > quad_points
Definition teno_scalars.h:51
BoundaryData boundaries
Definition teno_scalars.h:63
Kokkos::View< int32_t *[2]> cells_of_face
Definition teno_scalars.h:43
Kokkos::View< rtype **, Kokkos::LayoutRight > scalars
Definition teno_scalars.h:64
static constexpr uint8_t NK
Definition teno_scalars.h:38
Kokkos::View< uint32_t * > faces_of_cell
Definition teno_scalars.h:42
rtype sigma_threshold
Definition teno_scalars.h:62
Kokkos::View< uint32_t * > offsets_nodes_of_face
Definition teno_scalars.h:44
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.
Definition teno_scalars.h:213
Kokkos::View< rtype *[N_DIM]> face_coords
Definition teno_scalars.h:48
Kokkos::View< rtype * > sigma
Definition teno_scalars.h:60
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.
Definition teno_scalars.h:84
Kokkos::View< rtype ** > face_quad_weights
Definition teno_scalars.h:53
KOKKOS_INLINE_FUNCTION uint8_t n_quad() const
Definition teno_scalars.h:69
Kokkos::View< rtype *** > face_quad_points
Definition teno_scalars.h:52
Kokkos::View< uint32_t * > offsets_faces_of_cell
Definition teno_scalars.h:41
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.
Definition teno_scalars.h:96
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.
Definition teno_scalars.h:187
KOKKOS_INLINE_FUNCTION void sector_coefficients(const uint32_t c, const uint8_t s, const uint32_t j, rtype *a) const
Definition teno_scalars.h:136
Kokkos::View< uint32_t * > nodes_of_face
Definition teno_scalars.h:45
Kokkos::View< uint16_t ** > stencil_small_size
Definition teno_scalars.h:58
Kokkos::View< rtype *[N_DIM]> cell_coords
Definition teno_scalars.h:47
Kokkos::View< rtype *[N_DIM]> shifts
Definition teno_scalars.h:49
teno::PackedStencils stencil_large
Definition teno_scalars.h:57
KOKKOS_INLINE_FUNCTION uint8_t n_faces(const uint32_t c) const
Definition teno_scalars.h:78
uint32_t n_species
Definition teno_scalars.h:66
Kokkos::View< rtype * > theta
Definition teno_scalars.h:65
Kokkos::View< rtype * > scale
Definition teno_scalars.h:54
Kokkos::View< uint8_t ** > selection
Definition teno_scalars.h:61
One cell's stencil, resolved once per cell, for pseudo-inverse entries of type T.
Definition teno.h:83
KOKKOS_INLINE_FUNCTION int32_t cell(const uint32_t s) const
Definition teno.h:90
KOKKOS_INLINE_FUNCTION rtype pinv(const uint32_t s, const uint32_t l) const
Entry l of slot s, for pseudo-inverses of WIDTH entries per slot.
Definition teno.h:98
KOKKOS_INLINE_FUNCTION int32_t face(const uint32_t s) const
Definition teno.h:93
Per-cell stencils of different sizes, stored without padding to the largest one in the mesh....
Definition teno.h:66
KOKKOS_INLINE_FUNCTION RowT< T > row(const uint32_t c) const
Definition teno.h:109
Device helpers for the TENO-E reconstruction.
TENOScalarValues< DEG > make_teno_scalar_values(const TENO &teno, const Mesh &mesh, const BoundaryData &boundaries, Kokkos::View< rtype **, Kokkos::LayoutRight > scalars, Kokkos::View< rtype * > theta, uint32_t n_species)
TENOScalarValues of degree DEG over a TENO reconstruction's stencils.
Definition teno_scalars.h:223
SlotArray< double, Space > psi
Definition teno_setup.cpp:478
CellSetup< ExecSpace > c
Definition teno_setup.cpp:1810
TableBatchT< Space > out
Definition teno_setup.cpp:681