include/pops/core/model/equation_block.hpp File ReferenceΒΆ

adc_cpp: include/pops/core/model/equation_block.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
equation_block.hpp File Reference

EquationBlock: association (model, field U, spatial scheme, time policy, BC). More...

+ Include dependency graph for equation_block.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  pops::EquationBlock< ModelT, SpatialT, TimeT >
 Association of a PhysicalModel with its field U (MultiFab), its spatial scheme, its time policy and its boundary conditions. More...
 

Namespaces

namespace  pops
 

Concepts

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

Detailed Description

EquationBlock: association (model, field U, spatial scheme, time policy, BC).

Abstraction level above PhysicalModel.

A PhysicalModel describes a local pointwise law. An EquationBlock says how this law is carried by the simulation: which MultiFab U, which spatial discretisation (SpatialT), which time policy (TimeT), which boundary conditions (BCRec).

INVARIANT: state is never null after construction (points to the MultiFab passed to the constructor). The EquationBlock does not own the MultiFab; the MultiFab lifetime must exceed that of the block.

EquationBlockLike: minimal concept letting the CoupledSystem and the scheduler manipulate a block without knowing its concrete types (ModelT, SpatialT, TimeT).