include/pops/numerics/spatial_operator.hpp File ReferenceΒΆ

adc_cpp: include/pops/numerics/spatial_operator.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
spatial_operator.hpp File Reference

Cartesian spatial operator: assembles R(U, aux) = -div F + S over the cells of a level. More...

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

Go to the source code of this file.

Detailed Description

Cartesian spatial operator: assembles R(U, aux) = -div F + S over the cells of a level.

This is the "PDE -> ODE system" arrow of the method of lines. The time integrator (time/) only knows R; it is unaware of the geometry and the reconstruction scheme.

UMBRELLA HEADER (ADC-328): the operator is split into focused modules under numerics/spatial/. This header keeps the historical include path working (it re-exports every symbol below) so existing #include <pops/numerics/spatial_operator.hpp> users are unaffected and the numerics are bit-identical. Prefer including the specific module for new code.

Modules (one-way dependency DAG, bottom to top):

  • spatial/state_access.hpp DiffusiveModel, SourceFreeModel, load_state, load_aux.
  • spatial/positivity.hpp zhang_shu_scale, detail::positivity_comp.
  • spatial/face_flux.hpp reconstruct, reconstruct_pp, require_reconstruction_ghosts, xface_box / yface_box, rusanov_flux, compute_face_fluxes.
  • spatial/wave_speed.hpp max_wave_speed_mf and step-bound reductions, the hotspot diagnostic, fill_wave_speed_cache.
  • spatial/cartesian_operator.hpp assemble_rhs, assemble_rhs_hll_cached.
  • spatial/masked_operator.hpp assemble_rhs_masked.

INVARIANT: the Cartesian operator is STRICTLY UNTOUCHED by the polar operator (spatial_operator_polar.hpp); a run on a Cartesian mesh is bit-identical.