Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website
Loading...
Searching...
No Matches
teno_setup Namespace Reference

Classes

struct  Lane
 Element k of one cell's array in a batch: interleaved across cells on GPUs. More...
 
struct  Options
 Options and sizes of the 3D setup. More...
 
class  Setup3D
 The setup of one mesh. More...
 
class  Setup3DHandle
 The 3D TENO-E precomputation of a mesh: the geometry it needs (cell moments, bounding boxes and ranking metrics), computed once, and the tables of any batch of cells. Every cell's tables are a function of the mesh alone, computed with the same sequence of floating-point operations on the device and on the host, so they do not depend on the batch, the thread count or where they ran. More...
 
struct  SlotArray
 An array of cap elements for each of slots cells. On GPUs element k of every cell is contiguous, so that a warp working on consecutive cells reads consecutive words; on the host each cell's array is. More...
 
struct  TableBatchT
 Tables of a batch of cells before packing, one slot per cell, at the largest stencil sizes the searches allow. More...
 
struct  Timings
 Timings of the last setup, in seconds. More...
 

Typedefs

using TableBatch = TableBatchT< Kokkos::DefaultExecutionSpace::memory_space >
 

Enumerations

enum  Status : uint8_t { OK = 0 , OUT_OF_SCRATCH = 1 }
 Why a cell's device setup must be redone on the host. More...
 

Functions

bool batch_interleaved ()
 Whether batches interleave their cells (GPUs).
 
TableBatch device_copy (const TableBatchT< Kokkos::HostSpace > &h)
 The device copy of a host batch.
 
teno::SmoothnessTerms smoothness_terms (uint8_t degree)
 The terms of every smoothness-matrix entry of the given degree, in the order the setup sums them.
 
uint16_t n_moments (uint8_t degree)
 Central moments per cell for the given degree.
 
std::array< double, 9 > ranking_metric (const Mesh &mesh, const Kokkos::View< int32_t * >::host_mirror_type &face_bc, const Kokkos::View< BoundaryCondition * >::host_mirror_type &bcs, uint32_t i)
 Metric (3 x 3, row-major) in which the stencil candidates of cell i are ranked by distance: the identity unless the spacing of its vertex neighbors (completed across its boundary faces by mirror images) is markedly anisotropic.
 
bool one_sided_face (const Mesh &mesh, const BoundaryCondition &bc, const uint32_t f, const bool curved_mirrors)
 Whether stencils take no mirror images across boundary face f (with condition bc): curved wall and symmetry faces, which no reflection across a plane matches beyond second order, unless curved_mirrors. Curved far fields and inflows keep theirs.
 

Variables

constexpr double GEOMETRY_TOL = precision_tol<double>(1e-10, 1e-5)
 
constexpr double MAX_LEBESGUE_2D = 10.0
 
constexpr double MAX_LEBESGUE_3D = 4.0
 
constexpr double LEBESGUE_SLACK = 1.25
 

Typedef Documentation

◆ TableBatch

using teno_setup::TableBatch = typedef TableBatchT<Kokkos::DefaultExecutionSpace::memory_space>

Enumeration Type Documentation

◆ Status

Why a cell's device setup must be redone on the host.

Enumerator
OK 
OUT_OF_SCRATCH 

Function Documentation

◆ batch_interleaved()

bool teno_setup::batch_interleaved ( )

Whether batches interleave their cells (GPUs).

◆ device_copy()

TableBatch teno_setup::device_copy ( const TableBatchT< Kokkos::HostSpace > &  h)

The device copy of a host batch.

The device copy of a batch on the host.

◆ n_moments()

uint16_t teno_setup::n_moments ( const uint8_t  degree)

Central moments per cell for the given degree.

◆ one_sided_face()

bool teno_setup::one_sided_face ( const Mesh &  mesh,
const BoundaryCondition &  bc,
const uint32_t  f,
const bool  curved_mirrors 
)
inline

Whether stencils take no mirror images across boundary face f (with condition bc): curved wall and symmetry faces, which no reflection across a plane matches beyond second order, unless curved_mirrors. Curved far fields and inflows keep theirs.

◆ ranking_metric()

std::array< double, 9 > teno_setup::ranking_metric ( const Mesh &  mesh,
const Kokkos::View< int32_t * >::host_mirror_type &  face_bc,
const Kokkos::View< BoundaryCondition * >::host_mirror_type &  bcs,
const uint32_t  i 
)

Metric (3 x 3, row-major) in which the stencil candidates of cell i are ranked by distance: the identity unless the spacing of its vertex neighbors (completed across its boundary faces by mirror images) is markedly anisotropic.

◆ smoothness_terms()

teno::SmoothnessTerms teno_setup::smoothness_terms ( const uint8_t  degree)

The terms of every smoothness-matrix entry of the given degree, in the order the setup sums them.

Variable Documentation

◆ GEOMETRY_TOL

constexpr double teno_setup::GEOMETRY_TOL = precision_tol<double>(1e-10, 1e-5)
constexpr

◆ LEBESGUE_SLACK

constexpr double teno_setup::LEBESGUE_SLACK = 1.25
constexpr

◆ MAX_LEBESGUE_2D

constexpr double teno_setup::MAX_LEBESGUE_2D = 10.0
constexpr

◆ MAX_LEBESGUE_3D

constexpr double teno_setup::MAX_LEBESGUE_3D = 4.0
constexpr