include/pops/runtime/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
|
Runtime multi-species composition: one coupled system, block by block. More...
#include <pops/core/state/variables.hpp>#include <pops/numerics/time/integrators/implicit_stepper.hpp>#include <pops/runtime/export.hpp>#include <pops/runtime/facade_options.hpp>#include <pops/runtime/context/grid_context.hpp>#include <pops/runtime/config/model_spec.hpp>#include <pops/runtime/config/runtime_params.hpp>#include <array>#include <functional>#include <map>#include <memory>#include <string>#include <vector>
Include dependency graph for system.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | pops::SystemConfig |
| Mesh and domain shared by all blocks (physical parameters are per block, in the ModelSpec). More... | |
| class | pops::System |
| Coupled multi-species system, composed at runtime from generic bricks. More... | |
| struct | pops::System::SourceNewtonReport |
| Report of the implicit source Newton (IMEX) of a block, AGGREGATED over the substeps of the LAST advance of the block. More... | |
Namespaces | |
| namespace | pops |
| namespace | pops::runtime |
| namespace | pops::runtime::program |
Detailed Description
Runtime multi-species composition: one coupled system, block by block.
Each block is a species (one state U) described by a ModelSpec (composition of generic bricks: transport + source + elliptic right-hand side), with its spatial scheme (limiter + Riemann flux), its time treatment and its substeps. All blocks share a Poisson whose right-hand side is the sum of the per-block elliptic_rhs; the source S acts per block. The core names no scenario; scenarios are compositions defined on the application side (adc_cases).
Python composes (brick objects); the per-cell computation (assemble_rhs<L,F>, Newton of the implicit source, multigrid/FFT) stays C++-compiled and is frozen when the block is added. No Python callback in the hot path, except a time integrator written in Python via eval_rhs / get_state / set_state.
Generated by