include/pops/numerics/time/amr/advance/amr_advance.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
|
Unified production facade for the AMR time engine: LevelHierarchy type (the AMR hierarchy as a named object), OwnershipPolicy alias, and the advance_amr entry point. More...
Include dependency graph for amr_advance.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | pops::LevelHierarchy |
Namespaces | |
| namespace | pops |
Typedefs | |
| using | pops::OwnershipPolicy = DistributionMapping |
Functions | |
| template<class Limiter = NoSlope, class NumericalFlux = RusanovFlux, class Model > | |
| void | pops::advance_amr (const Model &m, std::vector< AmrLevelMP > &levels, const Box2D &base_dom, Real dt, Periodicity base_per=Periodicity{true, true}, bool coarse_replicated=true, bool recon_prim=false, bool imex=false, const NewtonOptions &nopts={}, AmrTimeMethod tmethod=AmrTimeMethod::kEuler, Real pos_floor=Real(0)) |
| template<class Limiter = NoSlope, class NumericalFlux = RusanovFlux, class Model > | |
| void | pops::advance_amr (const Model &m, LevelHierarchy &h, Real dt) |
Detailed Description
Unified production facade for the AMR time engine: LevelHierarchy type (the AMR hierarchy as a named object), OwnershipPolicy alias, and the advance_amr entry point.
Layer: include/pops/numerics/time. Role: expose ONE production entry, advance_amr, that delegates to the N-level multi-patch engine (detail::amr_step_multilevel_multipatch). Two forms: "pieces" (the coupler passes levels/base_dom/... directly) and LevelHierarchy (aggregate object). Contract: advance_amr advances the hierarchy by ONE time step dt; selectors fixed when the block is added (coarse_replicated, recon_prim, imex, time_method) forwarded as-is to the engine.
Invariants:
- coarse_replicated=true (default) reproduces the historical behavior; without forwarding, a de-replicated coarse level would wrongly switch back to replicated;
- recon_prim selects the primitive reconstruction (cf. assemble_rhs) instead of conservative; false (default) = strictly bit-identical;
- kSsprk3 requires imex == false (rejected otherwise, enforced on the engine side).
Generated by