OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
openswmm::HotStartFile Struct Reference

In-memory hot start file data. More...

#include <HotStartManager.hpp>

Collaboration diagram for openswmm::HotStartFile:

Public Member Functions

bool set_node_depth (const std::string &id, double v)
 Set depth for a stored node. Returns false if id not found.
 
bool set_node_head (const std::string &id, double v)
 Set head for a stored node. Returns false if id not found.
 
bool set_link_flow (const std::string &id, double v)
 Set flow for a stored link. Returns false if id not found.
 
bool set_link_depth (const std::string &id, double v)
 Set depth for a stored link. Returns false if id not found.
 
bool set_subcatch_runoff (const std::string &id, double v)
 Set runoff for a stored subcatchment. Returns false if id not found.
 

Public Attributes

HotStartHeader header
 
std::vector< HotStartNodeRecordnodes
 
std::vector< HotStartLinkRecordlinks
 
std::vector< HotStartSubcatchRecordsubcatches
 
std::vector< std::string > species
 
std::vector< double > node_species
 
std::vector< double > link_species
 
uint32_t gw_n_cells = 0
 
uint32_t gw_m_layers = 0
 
std::vector< double > gw_hg
 saturated thickness (m)
 
std::vector< double > gw_hu
 unsaturated storage (m of water)
 
std::vector< double > gw_theta_sigma
 closure-B layers, layer-major
 
std::vector< double > gw_ledger
 the 9 cumulative terms (m3)
 
std::string path
 File path (for flush-on-close)
 
bool dirty = false
 True if set_*() was called.
 
std::vector< std::string > warnings
 Populated by HotStartManager::apply()
 

Detailed Description

In-memory hot start file data.

Created by HotStartManager::save() or HotStartManager::open(). The C API casts HotStartFile* to/from void* SWMM_HotStart.

Member Function Documentation

◆ set_link_depth()

bool openswmm::HotStartFile::set_link_depth ( const std::string & id,
double v )

Set depth for a stored link. Returns false if id not found.

◆ set_link_flow()

bool openswmm::HotStartFile::set_link_flow ( const std::string & id,
double v )

Set flow for a stored link. Returns false if id not found.

◆ set_node_depth()

bool openswmm::HotStartFile::set_node_depth ( const std::string & id,
double v )

Set depth for a stored node. Returns false if id not found.

◆ set_node_head()

bool openswmm::HotStartFile::set_node_head ( const std::string & id,
double v )

Set head for a stored node. Returns false if id not found.

◆ set_subcatch_runoff()

bool openswmm::HotStartFile::set_subcatch_runoff ( const std::string & id,
double v )

Set runoff for a stored subcatchment. Returns false if id not found.

Member Data Documentation

◆ dirty

bool openswmm::HotStartFile::dirty = false

True if set_*() was called.

◆ gw_hg

std::vector<double> openswmm::HotStartFile::gw_hg

saturated thickness (m)

◆ gw_hu

std::vector<double> openswmm::HotStartFile::gw_hu

unsaturated storage (m of water)

◆ gw_ledger

std::vector<double> openswmm::HotStartFile::gw_ledger

the 9 cumulative terms (m3)

◆ gw_m_layers

uint32_t openswmm::HotStartFile::gw_m_layers = 0

◆ gw_n_cells

uint32_t openswmm::HotStartFile::gw_n_cells = 0

G1 (2026-09-07) — V5 block: the two-zone groundwater state.

A run restarted without this reruns the entire wetting history from a dry table, which for an aquifer is not an approximation — the whole point of the kernel is that it has memory measured in seasons. Cells are carried by INDEX, not name, because a mesh has no cell ids; a file whose gw_n_cells does not match the model is reported and skipped rather than applied to the wrong cells.

gw_theta_sigma is layer-major [layer * n_cells + cell], the SoA's own order, and is empty when no cell uses closure B. The ledger terms ride along so a restarted run's continuity check continues the original's instead of starting from zero against a non-zero storage.

◆ gw_theta_sigma

std::vector<double> openswmm::HotStartFile::gw_theta_sigma

closure-B layers, layer-major

◆ header

HotStartHeader openswmm::HotStartFile::header

◆ link_species

std::vector<double> openswmm::HotStartFile::link_species

◆ links

std::vector<HotStartLinkRecord> openswmm::HotStartFile::links

◆ node_species

std::vector<double> openswmm::HotStartFile::node_species

◆ nodes

std::vector<HotStartNodeRecord> openswmm::HotStartFile::nodes

◆ path

std::string openswmm::HotStartFile::path

File path (for flush-on-close)

◆ species

std::vector<std::string> openswmm::HotStartFile::species

U2 (2026-09-07, D-IQ5) — V4 species block: per-element concentrations for every [POLLUTANTS] entry and every reactions-component species, keyed by NAME so a file applies to a model whose species order differs. node_species / link_species are [element * n + s] with the same element order as nodes / links. Age keeps its per-record field (V3); temperature is not carried (its seed paths are per engine — a follow-up).

◆ subcatches

std::vector<HotStartSubcatchRecord> openswmm::HotStartFile::subcatches

◆ warnings

std::vector<std::string> openswmm::HotStartFile::warnings

The documentation for this struct was generated from the following files: