include/pops/runtime/amr_system.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
|
Multi-species composition on AMR at runtime: the refined counterpart of System. More...
#include <pops/mesh/layout/patch_box.hpp>#include <pops/mesh/boundary/physical_bc.hpp>#include <pops/numerics/time/integrators/implicit_stepper.hpp>#include <pops/runtime/export.hpp>#include <pops/runtime/facade_options.hpp>#include <pops/runtime/config/model_spec.hpp>#include <functional>#include <map>#include <memory>#include <string>#include <vector>
Include dependency graph for amr_system.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | pops::AmrSystemConfig |
| AMR mesh and cadence (per-block physical parameters live in the ModelSpec). More... | |
| struct | pops::AmrBuildParams |
| Frozen parameters passed to the deferred build of the compiled path (add_compiled_model). More... | |
| struct | pops::AmrCompiledHooks |
| Type-erased closures of a compiled AMR block, produced by amr_dsl_block::build_amr_compiled and installed via AmrSystem::set_compiled_block. More... | |
| class | pops::AmrSystem |
| Single block carried on an AMR hierarchy, composed at runtime. More... | |
| struct | pops::AmrSystem::SourceNewtonReport |
| Report of the implicit (IMEX) source Newton of a block, AGGREGATED over the levels and substeps of the block's LAST advance. More... | |
Namespaces | |
| namespace | pops |
| namespace | pops::detail |
Typedefs | |
| using | pops::AmrCompiledBlockBuilder = std::function< AmrRuntimeBlock(const detail::SharedAmrLayout &layout, const std::string &name, const std::vector< double > &density, bool has_density, double gamma, int substeps, bool recon_prim, bool imex, int stride, const std::vector< std::string > &implicit_vars, const std::vector< std::string > &implicit_roles, double pos_floor)> |
| DEFERRED builder of a COMPILED block on the multi-block hierarchy: receives the SHARED layout (created ONCE at lazy build, common to all blocks) plus the block parameters frozen at add time (name, initial density, gamma, substeps/stride, recon/imex, partial IMEX mask resolved into component indices), and returns the type-erased AmrRuntimeBlock of the block (captures the CONCRETE Model/Limiter/Flux via detail::dispatch_amr_block, the kernel stays COMPILED). | |
Detailed Description
Multi-species composition on AMR at runtime: the refined counterpart of System.
One or SEVERAL blocks (species, described by ModelSpec of generic bricks) carried on an AMR hierarchy. Like System but on an adaptive mesh.
MONO-BLOCK (1 add_block): a single-model AmrCouplerMP<Model> (coarse + one fine level tracked by regrid, conservative reflux). Historical path, UNTOUCHED -> bit-identical.
MULTI-BLOCK (>= 2 add_block, capstone, docs/AMR_MULTIBLOCK_DESIGN.md): N blocks co-located on ONE SHARED AMR hierarchy (same BoxArray + DistributionMapping + dx/dy per level, guarded by same_layout_or_throw). All blocks live on ALL patches. A single aux per level (phi, grad phi) and a single coarse Poisson whose right-hand side is the CO-LOCATED SUM of the blocks' elliptic bricks (f = Sum_b q_b n_b read at the same cells). Conservation PER BLOCK (reflux + average_down). AmrRuntime runtime engine (type-erased registry by name). Blocks with potentially DIFFERENT spatial schemes and with PER-BLOCK TEMPORAL TREATMENT (explicit or IMEX, local stiff implicit source; capstone vii) with union-of-tags regrid (multi-block + regrid_every > 0 is NOW SUPPORTED: the mesh re-grids from the union of the tags; regrid_every == 0 = frozen hierarchy). Multirate (substeps/stride), inter-species coupled sources: already wired. Multiple COMPILED blocks (add_compiled_model) and a MIX of compiled + native: wired (capstone v, multi-block production DSL). Union regrid: later PR.
- Note
- Two levels (ratio 2); explicit OR imex temporal treatment (per block).
Generated by