CoupledSystemLike Concept ReferenceΒΆ

adc_cpp: pops::CoupledSystemLike Concept 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
pops::CoupledSystemLike Concept Reference

Minimal concept for coupled systems: n_blocks and for_each_block with a named functor. More...

#include <coupled_system.hpp>

Concept definition

template<class S>
concept pops::CoupledSystemLike = requires(S s) {
{ S::n_blocks } -> std::convertible_to<std::size_t>;
s.for_each_block(detail::ForEachBlockProbe{});
}
Minimal concept for coupled systems: n_blocks and for_each_block with a named functor.
Definition coupled_system.hpp:84
NAMED no-op probe for the CoupledSystemLike concept. A generic lambda in the.
Definition coupled_system.hpp:72

Detailed Description

Minimal concept for coupled systems: n_blocks and for_each_block with a named functor.

Satisfied by CoupledSystem<...>. Used by AmrSystemCoupler and the schedulers to avoid parameterizing on the concrete CoupledSystem<...> type. nvcc NOTE: do not pass a generic lambda here (EDG: extended lambda not evaluable); use ForEachBlockProbe or a named functor.