57#ifndef OPENSWMM_ENGINE_TIMESTEP_CONTROLLER_HPP
58#define OPENSWMM_ENGINE_TIMESTEP_CONTROLLER_HPP
64 struct SimulationContext;
Static utility class for explicit timestep computation.
Definition TimestepController.hpp:77
static void advance(SimulationContext &ctx, double dt_taken) noexcept
Advance internal timers by dt_taken seconds.
Definition TimestepController.cpp:64
static double compute_next(const SimulationContext &ctx, double dt_cfl) noexcept
Compute the next simulation timestep.
Definition TimestepController.cpp:25
static constexpr double OUTPUT_EPSILON
Epsilon for output-time floating-point comparison (seconds).
Definition TimestepController.hpp:159
TimestepController()=delete
static bool output_due(const SimulationContext &ctx) noexcept
Returns true when simulation clock has reached an output boundary.
Definition TimestepController.cpp:94
static bool simulation_complete(const SimulationContext &ctx) noexcept
Returns true when the simulation has reached or passed end_time.
Definition TimestepController.cpp:102
static void reset_output_timer(SimulationContext &ctx) noexcept
Reset the output countdown timer to the full report step.
Definition TimestepController.cpp:86
static constexpr double SEC_PER_DAY
Seconds per day (exact).
Definition TimestepController.hpp:162
Definition TimestepController.cpp:19
Definition Controls.cpp:24
Central, reentrant simulation context.
Definition SimulationContext.hpp:141