include/pops/numerics/time/amr/advance/amr_advance.hpp File ReferenceΒΆ

adc_cpp: 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
amr_advance.hpp File Reference

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).