include/pops/core/model/coupled_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
|
CoupledSystem: heterogeneous collection of equation blocks (multi-species, multi-scheme). More...
#include <pops/core/model/equation_block.hpp>#include <cstddef>#include <tuple>#include <type_traits>#include <utility>
Include dependency graph for coupled_system.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | pops::CoupledSystem< Blocks > |
| Heterogeneous collection of equation blocks, parameterized by their exact types. More... | |
| struct | pops::detail::ForEachBlockProbe |
| NAMED no-op probe for the CoupledSystemLike concept. A generic lambda in the. More... | |
Namespaces | |
| namespace | pops |
| namespace | pops::detail |
Concepts | |
| concept | pops::CoupledSystemLike |
| Minimal concept for coupled systems: n_blocks and for_each_block with a named functor. | |
Functions | |
| template<EquationBlockLike... Blocks> | |
| pops::CoupledSystem (Blocks...) -> CoupledSystem< Blocks... > | |
Detailed Description
CoupledSystem: heterogeneous collection of equation blocks (multi-species, multi-scheme).
CoupledSystem<Blocks...> is a statically typed tuple of blocks. It solves nothing on its own: it provides a named object to the assembler/scheduler layer to iterate over N blocks (for_each_block) and the couplings (Poisson, collisions, cross sources).
CoupledSystemLike: concept used by the AmrSystemCoupler facade and the schedulers. Avoids passing the concrete CoupledSystem<...> into generic code that only needs for_each_block and n_blocks.
nvcc/EDG INVARIANT: for_each_block does not accept a generic lambda in a requires-clause (extended lambda in an unevaluated context -> EDG error). The concept therefore uses the named functor detail::ForEachBlockProbe.
Generated by