include/pops/numerics/time/reference/amr_level.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
|
Single-box MultiFab AMR stack: struct detail::AmrLevelMF and the recursive engine (amr_step_2level_mf, subcycle_level_mf, amr_step_multilevel_mf). More...
#include <pops/numerics/time/amr/reflux/amr_flux_helpers.hpp>#include <pops/amr/hierarchy/refinement_ratio.hpp>
Include dependency graph for amr_level.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | pops::detail::AmrLevelMF |
Namespaces | |
| namespace | pops |
| namespace | pops::detail |
Functions | |
| template<class Limiter = NoSlope, class NumericalFlux = RusanovFlux, class Model > | |
| void | pops::detail::amr_step_2level_mf (const Model &m, MultiFab &Uc, const Box2D &dom, Real dxc, Real dyc, MultiFab &Uf, int CI0, int CI1, int CJ0, int CJ1, const MultiFab &auxc, const MultiFab &auxf, Real dt) |
| template<class Limiter = NoSlope, class NumericalFlux = RusanovFlux, class Model > | |
| void | pops::detail::subcycle_level_mf (const Model &m, std::vector< AmrLevelMF > &L, int lev, Real dt, const Box2D &dom, const MultiFab *pOld, const MultiFab *pNew, Real frac, std::vector< Real > *pregL, std::vector< Real > *pregR, std::vector< Real > *pregB, std::vector< Real > *pregT) |
| template<class Limiter = NoSlope, class NumericalFlux = RusanovFlux, class Model > | |
| void | pops::detail::amr_step_multilevel_mf (const Model &m, std::vector< AmrLevelMF > &L, const Box2D &dom, Real dt) |
Detailed Description
Single-box MultiFab AMR stack: struct detail::AmrLevelMF and the recursive engine (amr_step_2level_mf, subcycle_level_mf, amr_step_multilevel_mf).
TEST ORACLE, out of production.
Layer: include/pops/numerics/time. Role: original SINGLE-BOX AMR engine, kept in detail:: as a validation oracle. Intermediate link of the Fab2D (amr_reflux.hpp) -> MF (here) -> MP (amr_subcycling.hpp) parity chain, which proves the multi-patch engine bit-identical to the single-box one up to N levels (which the Fab2D 2-level/1-comp/Rusanov-only test does not cover). Contract: one conservative step with Berger-Oliger subcycling (ratio 2, dt/2 per substep) with reflux at each coarse-fine interface; periodic BCs at level 0.
Invariants:
- no longer called in production (AmrCoupler goes through advance_amr);
- parity guards: test_amr_reflux_mf (vs Fab2D), test_amr_multilevel_mf, test_amr_multilevel_multipatch guard 1 (MP vs MF, max|dUc| == 0);
- aux held elsewhere (pointer); rC* = region (coords of THIS level) refined by the child, valid only if has_fine.
Generated by