39#ifndef OPENSWMM_ENGINE_2D_I_SURFACE_SOLVER_HPP
40#define OPENSWMM_ENGINE_2D_I_SURFACE_SOLVER_HPP
73 virtual double advance(
double t_current,
double t_target) = 0;
99 static const std::vector<double> kEmpty;
Abstract time integrator for the 2D surface-routing ODE system.
Definition ISurfaceSolver.hpp:63
virtual void initialize(MeshData &mesh, SurfaceStateData &state, SolverOptions2D &opts)=0
One-time setup. mesh and state must outlive the solver.
virtual bool is_initialized() const noexcept=0
True once initialize() has completed and the solver is ready.
virtual double advance(double t_current, double t_target)=0
virtual void reinitialize(double t0)=0
Reinitialize the integrator at t0 after external state edits.
virtual RunStats run_stats() const noexcept
Read cumulative statistics. Default: zeros (backend has no counters).
Definition ISurfaceSolver.hpp:121
virtual void resyncFromVolumes(double t0)
Definition ISurfaceSolver.hpp:84
virtual void finalize()=0
Release all backend resources.
virtual const std::vector< double > & last_coupling_exchange() const noexcept
Definition ISurfaceSolver.hpp:98
virtual long last_num_steps() const noexcept=0
Number of internal integrator steps in the last advance() call.
virtual ~ISurfaceSolver()=default
virtual double last_step_size() const noexcept=0
Last internal step size used by the integrator.
Definition NodeCoupling.cpp:16
Definition ISurfaceSolver.hpp:105
double active_frac_mean
mean active-cell fraction
Definition ISurfaceSolver.hpp:114
int n_tiers
populated tier count (≤ 8)
Definition ISurfaceSolver.hpp:117
double last_h
last accepted internal step (s)
Definition ISurfaceSolver.hpp:108
long nsteps
internal (marcher) substeps
Definition ISurfaceSolver.hpp:106
double active_frac_min
min active-cell fraction (rebuild samples)
Definition ISurfaceSolver.hpp:113
double active_frac_max
max active-cell fraction
Definition ISurfaceSolver.hpp:115
long nrhs
face-kernel evaluations
Definition ISurfaceSolver.hpp:107
double avg_h
sim-time / nsteps (s), filled by the caller
Definition ISurfaceSolver.hpp:109
long tier_cells[8]
cumulative rebuild-sampled cells per LTS tier
Definition ISurfaceSolver.hpp:116
SoA storage for 2D mixed triangle/quad mesh geometry and topology.
Definition MeshData.hpp:67
Configuration for the 2D surface routing solver.
Definition SolverOptions2D.hpp:208
Definition SurfaceStateData.hpp:59