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

The terms of the smoothness-indicator matrix (3D): entry e (upper_index(l, m)) is sum_t weight(t) moments(cell, moment(t)) over t in [start(e), start(e + 1)), with products of D^beta factors (whole numbers below 2^16) as weights; term(t) holds weight(t) << 16 | moment(t). More...

#include <teno.h>

Public Member Functions

template<uint32_t G>
KOKKOS_INLINE_FUNCTION void entries (const uint32_t e0, const uint32_t n, const double *moments, rtype *out) const
 Entries [e0, e0 + G) below n from one cell's moments into out, each summed in term order and rounded as the setup's sum was, which contracted no multiply and add into an FMA; the G sums are interleaved so that their latencies overlap.
 

Static Public Member Functions

static KOKKOS_INLINE_FUNCTION double add_product_rn (const double s, const double a, const double b)
 s + a b, each rounded, never fused.
 

Public Attributes

Kokkos::View< uint32_t * > start
 
Kokkos::View< uint32_t * > term
 

Detailed Description

The terms of the smoothness-indicator matrix (3D): entry e (upper_index(l, m)) is sum_t weight(t) moments(cell, moment(t)) over t in [start(e), start(e + 1)), with products of D^beta factors (whole numbers below 2^16) as weights; term(t) holds weight(t) << 16 | moment(t).

Member Function Documentation

◆ add_product_rn()

static KOKKOS_INLINE_FUNCTION double teno::SmoothnessTerms::add_product_rn ( const double  s,
const double  a,
const double  b 
)
inlinestatic

s + a b, each rounded, never fused.

◆ entries()

template<uint32_t G>
KOKKOS_INLINE_FUNCTION void teno::SmoothnessTerms::entries ( const uint32_t  e0,
const uint32_t  n,
const double *  moments,
rtype *  out 
) const
inline

Entries [e0, e0 + G) below n from one cell's moments into out, each summed in term order and rounded as the setup's sum was, which contracted no multiply and add into an FMA; the G sums are interleaved so that their latencies overlap.

Member Data Documentation

◆ start

Kokkos::View<uint32_t *> teno::SmoothnessTerms::start

◆ term

Kokkos::View<uint32_t *> teno::SmoothnessTerms::term

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