EquationBlockLike Concept ReferenceΒΆ

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

Minimal concept for equation blocks: Model, Spatial, Time, name, state, U(). More...

#include <equation_block.hpp>

Concept definition

template<class B>
concept pops::EquationBlockLike = requires(B b) {
typename B::Model;
typename B::Spatial;
typename B::Time;
{ b.name } -> std::convertible_to<std::string_view>;
{ b.state } -> std::convertible_to<MultiFab*>;
{ b.U() } -> std::same_as<MultiFab&>;
}
Minimal concept for equation blocks: Model, Spatial, Time, name, state, U().
Definition equation_block.hpp:68

Detailed Description

Minimal concept for equation blocks: Model, Spatial, Time, name, state, U().

Lets the CoupledSystem and the scheduler manipulate a block without knowing its concrete types. Checks that state is convertible to MultiFab* and that U() returns MultiFab&.