include/pops/coupling/source/coupled_source.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
|
CoupledSourceFor / NoCoupledSource: contract of an inter-species COUPLING source. More...
#include <pops/core/model/coupled_system.hpp>#include <pops/core/foundation/types.hpp>#include <pops/mesh/storage/multifab.hpp>
Include dependency graph for coupled_source.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | pops::NoCoupledSource |
| NULL coupling source (default): apply() is a no-op. More... | |
Namespaces | |
| namespace | pops |
Concepts | |
| concept | pops::CoupledSourceFor |
| Concept: C is a valid coupling source for System if System is a CoupledSystem and if C exposes apply(System&, const MultiFab& aux, Real dt) (updates the blocks over the step dt). | |
Detailed Description
CoupledSourceFor / NoCoupledSource: contract of an inter-species COUPLING source.
model.source(U, aux) is PURELY LOCAL (state of a single block only). A multi-species plasma exchanges between species (collisions, charge transfer, friction): S_e depends on U_i, etc. This term does NOT belong in the local PhysicalModel: it is a system-level responsibility. A CoupledSource reads the state of MULTIPLE blocks (+ aux = phi, grad phi) and updates the blocks over a step dt, via the minimal contract apply(system, aux, dt). The skeleton applies it by splitting (additive forward-Euler, SystemCoupler::coupled_source_step). The concrete sources live in adc_cases / the tests (the core stays model-free).
Generated by