#include <ExplicitInertialSolver.hpp>
◆ advance()
| double openswmm::twoD::ExplicitInertialSolver::advance |
( |
double | t_current, |
|
|
double | t_target ) |
|
overridevirtual |
Advance the solution from t_current to t_target (s).
- Returns
- the time actually reached (== t_target on success).
Implements openswmm::twoD::ISurfaceSolver.
◆ finalize()
| void openswmm::twoD::ExplicitInertialSolver::finalize |
( |
| ) |
|
|
overridevirtual |
◆ inertialEdges()
| const InertialEdges & openswmm::twoD::ExplicitInertialSolver::inertialEdges |
( |
| ) |
const |
|
inlinenoexcept |
The unique interior-edge topology this marcher built. Exposed so the groundwater kernel can put its lateral Darcy flux on the SAME faces rather than build a second, necessarily-consistent copy of the same graph. Valid only after initialize.
◆ initialize()
◆ is_initialized()
| bool openswmm::twoD::ExplicitInertialSolver::is_initialized |
( |
| ) |
const |
|
inlineoverridevirtualnoexcept |
◆ last_coupling_exchange()
| const std::vector< double > & openswmm::twoD::ExplicitInertialSolver::last_coupling_exchange |
( |
| ) |
const |
|
inlineoverridevirtualnoexcept |
Per-point ∫Q dt (m³) from the live node-coupling macro-step path. Default returns empty for backends that do not implement live coupling (so the caller falls back to the held-flux booking). See ExplicitInertialSolver.
Reimplemented from openswmm::twoD::ISurfaceSolver.
◆ last_num_steps()
| long openswmm::twoD::ExplicitInertialSolver::last_num_steps |
( |
| ) |
const |
|
inlineoverridevirtualnoexcept |
◆ last_step_size()
| double openswmm::twoD::ExplicitInertialSolver::last_step_size |
( |
| ) |
const |
|
inlineoverridevirtualnoexcept |
◆ reinitialize()
| void openswmm::twoD::ExplicitInertialSolver::reinitialize |
( |
double | t0 | ) |
|
|
overridevirtual |
◆ resyncFromVolumes()
| void openswmm::twoD::ExplicitInertialSolver::resyncFromVolumes |
( |
double | t0 | ) |
|
|
overridevirtual |
Re-time the integrator at t0 keeping the SIGNED cell volumes from state.volume. Used by the failed-window freeze path: reinitialize() reseeds from the reconstructed head, which clamps at the dry anchor and silently zeroes negative-volume debt (creating water); this variant preserves it. Default falls back to reinitialize() for backends that have not implemented volume-exact resync.
Reimplemented from openswmm::twoD::ISurfaceSolver.
◆ run_stats()
◆ setExchangeHeadSlopes()
| void openswmm::twoD::ExplicitInertialSolver::setExchangeHeadSlopes |
( |
std::vector< double > | slopes | ) |
|
|
inline |
Experimental (OPENSWMM_2D_HEAD_RAMP): per-coupling-point 1D head trend slope (m/s, 2D frame) extrapolated across the batch — the exchange evaluates against h_1d + slope·τ instead of the held batch-start head. Empty = held heads (default).
◆ setSubsurface()
| void openswmm::twoD::ExplicitInertialSolver::setSubsurface |
( |
SubsurfaceSolver * | gw | ) |
|
|
inlinenoexcept |
Attach (or detach, with nullptr) the groundwater kernel. Must be called before the first advance and after initialize.
◆ spillDeficit()
| double openswmm::twoD::ExplicitInertialSolver::spillDeficit |
( |
| ) |
const |
|
inlinenoexcept |
C3: cumulative spill volume (m³) the coupled nodes could not supply from their ponded storage. Should stay 0 on a well-posed deck; a growing value means the orifice is sized to move more water than the nodes hold above the rim.
The documentation for this class was generated from the following files: