include/pops/numerics/fv/reconstruction.hpp File ReferenceΒΆ

adc_cpp: include/pops/numerics/fv/reconstruction.hpp File Reference
adc_cpp 0.3.0
Model-free C++23 core for coupled hyperbolic-elliptic systems on adaptive (AMR) meshes, with MPI and GPU (Kokkos) backends
reconstruction.hpp File Reference

Interface reconstruction policies: MUSCL limiters and WENO5-Z. More...

#include <pops/core/foundation/types.hpp>
#include <cmath>
+ Include dependency graph for reconstruction.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  pops::NoSlope
 First-order reconstruction (piecewise constant): zero slope, 1 ghost. More...
 
struct  pops::Minmod
 minmod limiter: TVD (Total Variation Diminishing), 2 ghosts, order 2 in smooth regions. More...
 
struct  pops::VanLeer
 van Leer limiter: smooth, 2 ghosts, better order at extrema than Minmod. More...
 
struct  pops::Weno5
 WENO5 tag policy: marks the stencil at 3 ghosts, delegates to weno5z. More...
 

Namespaces

namespace  pops
 

Functions

POPS_HD Real pops::weno5z (Real vm2, Real vm1, Real v0, Real vp1, Real vp2)
 weno5z: WENO5-Z reconstruction (Borges 2008) at one interface, on a 5-point stencil.
 

Detailed Description

Interface reconstruction policies: MUSCL limiters and WENO5-Z.

Each policy exposes:

  • n_ghost: required stencil radius (1 = first order, 2 = linear MUSCL, 3 = WENO5).
  • operator()(am, ap): slope limited from the backward (am) and forward (ap) differences.

All policies are POPS_HD (no std::, no branch to UB). The limiter is a template parameter in assemble_rhs / reconstruct (static polymorphism, inlined on device). INVARIANT: a reconstruction policy is POINTWISE – it does not loop over the grid and does not access any global array. The mesh stencil access lives in reconstruct (spatial_operator.hpp).