include/pops/coupling/system/system_coupler.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
|
Single-level multi-species coupled system: SystemAssembler (assembles) + SystemDriver (advances). More...
#include <pops/core/model/coupled_system.hpp>#include <pops/core/foundation/types.hpp>#include <pops/coupling/base/aux_fill.hpp>#include <pops/coupling/source/coupled_source.hpp>#include <pops/coupling/base/elliptic_rhs.hpp>#include <pops/numerics/elliptic/interface/elliptic_problem.hpp>#include <pops/numerics/elliptic/interface/elliptic_solver.hpp>#include <pops/numerics/elliptic/mg/geometric_mg.hpp>#include <pops/numerics/time/integrators/implicit_stepper.hpp>#include <pops/numerics/time/schemes/scheduler.hpp>#include <pops/numerics/time/integrators/time_steppers.hpp>#include <pops/mesh/layout/box_array.hpp>#include <pops/mesh/layout/distribution_mapping.hpp>#include <pops/mesh/geometry/geometry.hpp>#include <pops/mesh/storage/mf_arith.hpp>#include <pops/mesh/storage/multifab.hpp>#include <pops/mesh/boundary/physical_bc.hpp>#include <pops/numerics/spatial_operator.hpp>#include <pops/parallel/comm.hpp>#include <algorithm>#include <functional>#include <type_traits>#include <utility>
Include dependency graph for system_coupler.hpp:Go to the source code of this file.
Classes | |
| struct | pops::detail::ScopedBlockState< Block > |
| class | pops::SystemAssembler< System, RhsAssembler, Elliptic > |
| ASSEMBLES the fields (system Poisson + shared aux) and a block residual evaluator. More... | |
| class | pops::SystemDriver< System, RhsAssembler, Elliptic > |
| ADVANCES the system: carries the schedule (per-species subcycling, adaptive multirate, implicit/IMEX delegated) and calls a TimeStepper. More... | |
Namespaces | |
| namespace | pops |
| namespace | pops::detail |
Typedefs | |
| template<CoupledSystemLike System, class RhsAssembler , class Elliptic = GeometricMG> | |
| using | pops::SystemCoupler = SystemDriver< System, RhsAssembler, Elliptic > |
Functions | |
| template<class... Args> | |
| auto | pops::make_system_coupler (Args &&... args) |
Variables | |
| template<class > | |
| constexpr bool | pops::detail::always_false_v = false |
Detailed Description
Single-level multi-species coupled system: SystemAssembler (assembles) + SystemDriver (advances).
Two responsibilities, two classes (advisor feedback 8.2 B). SystemAssembler ASSEMBLES: system RHS (f = Sum_s q_s n_s), Poisson, aux = (phi, grad phi), and a block residual evaluator R = -div F + S; it does NO time stepping. SystemDriver ADVANCES: carries the schedule (per-species subcycling, adaptive multirate, implicit/IMEX delegated), OWNS an Assembler and calls a TimeStepper. SystemCoupler stays an ALIAS of SystemDriver (test compat / adc_cases facade). The aux channel is SHARED by all blocks, allocated at the MAXIMUM requested width (aux_comps): a block reading B_z (n_aux=4) sees it, a base block (3) ignores the extra component. Neither replaces PhysicalModel / assemble_rhs / GeometricMG: they CONNECT them.
Generated by