include/pops/numerics/spatial/primitives/face_flux.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
|
face_flux.hpp File Reference
Face-state reconstruction and face fluxes of the Cartesian spatial operator. More...
#include <pops/core/model/physical_model.hpp>#include <pops/mesh/storage/fab2d.hpp>#include <pops/mesh/execution/for_each.hpp>#include <pops/mesh/geometry/geometry.hpp>#include <pops/mesh/storage/multifab.hpp>#include <pops/numerics/fv/numerical_flux.hpp>#include <pops/numerics/fv/reconstruction.hpp>#include <pops/numerics/spatial/primitives/positivity.hpp>#include <pops/numerics/spatial/primitives/state_access.hpp>#include <stdexcept>
Include dependency graph for face_flux.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | pops::detail::FaceFluxXKernel< Limiter, NumericalFlux, Model > |
| FaceFluxXKernel: device kernel for the flux at the radial x face (between i-1 and i). More... | |
| struct | pops::detail::FaceFluxYKernel< Limiter, NumericalFlux, Model > |
| FaceFluxYKernel: device kernel for the flux at the y face (between j-1 and j). More... | |
Namespaces | |
| namespace | pops |
| namespace | pops::detail |
Functions | |
| template<class Model > | |
| POPS_HD Model::State | pops::rusanov_flux (const Model &m, const typename Model::State &UL, const Aux &AL, const typename Model::State &UR, const Aux &AR, int dir) |
| rusanov_flux: free compat, delegates to RusanovFlux{} (policy of numerical_flux.hpp). | |
| template<class Model , class Limiter > | |
| POPS_HD Model::State | pops::reconstruct (const Model &model, const ConstArray4 &u, int i, int j, int dir, Real sgn, const Limiter &lim, bool prim) |
| reconstruct<Model,Limiter>: face value at (i,j) extrapolated in direction dir. | |
| template<class Model , class Limiter > | |
| POPS_HD Model::State | pops::reconstruct_pp (const Model &model, const ConstArray4 &u, int i, int j, int dir, Real sgn, const Limiter &lim, bool prim, Real pos_floor, int pos_comp) |
| reconstruct_pp: reconstruct + zhang_shu_scale positivity limiter on the returned state. | |
| template<class Limiter > | |
| void | pops::detail::require_reconstruction_ghosts (const MultiFab &U) |
| require_reconstruction_ghosts<Limiter>: STRUCTURAL ENTRY GUARD of the FV spatial operators. | |
| Box2D | pops::xface_box (const Box2D &v) |
| xface_box / yface_box: face boxes normal to x (resp. | |
| Box2D | pops::yface_box (const Box2D &v) |
| template<class Limiter = NoSlope, class NumericalFlux = RusanovFlux, class Model > | |
| void | pops::compute_face_fluxes (const Model &model, const MultiFab &U, const MultiFab &aux, MultiFab &Fx, MultiFab &Fy, Real dx=0, Real dy=0, bool recon_prim=false, Real pos_floor=Real(0)) |
| compute_face_fluxes<Limiter,NumericalFlux>: writes the face fluxes BEFORE divergence. | |
Detailed Description
Face-state reconstruction and face fluxes of the Cartesian spatial operator.
CONTRACT: everything that lives AT a face, before the divergence.
- reconstruct<>: face value from the MUSCL or WENO5 stencil (POPS_HD).
- reconstruct_pp<>: reconstruct + Zhang-Shu positivity limiter (positivity.hpp).
- require_reconstruction_ghosts<>: structural entry guard (state ghosts >= stencil).
- xface_box / yface_box: face boxes normal to x / y for a cell box.
- rusanov_flux: free compat, delegates to RusanovFlux{}.
- compute_face_fluxes<>: face fluxes (the brick required by the AMR reflux).
reconstruct_pp is THE single reconstruction entry point that every assembly kernel calls (cartesian_operator.hpp, masked_operator.hpp), so it bundles the limiter here next to the reconstruction it limits. Depends on state_access.hpp and positivity.hpp.
Generated by