OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
openswmm_trace.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
15
16#ifndef OPENSWMM_TRACE_H
17#define OPENSWMM_TRACE_H
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23typedef void* SWMM_Trace;
34typedef int (*SWMM_TraceProgress)(double fraction, const char* stage, void* user);
35/* Return nonzero from progress to cancel. */
36enum {
44};
46enum {
51};
52enum {
60};
61enum {
69};
70
71typedef struct SWMM_TraceNodeInput {
72 const char* id;
73 int type;
74 int flags;
76typedef struct SWMM_TraceLinkInput {
77 const char* id;
80 int type;
81 double length_m;
122
153SWMM_ENGINE_API int swmm_trace_create(const SWMM_TraceNodeInput* nodes, int node_count,
154 const SWMM_TraceLinkInput* links, int link_count,
155 const SWMM_TraceOptions* options, SWMM_Trace* handle);
205SWMM_ENGINE_API int swmm_trace_prepare(SWMM_Trace handle, const char* output_path,
206 const char* cache_path, const char* fingerprint,
207 SWMM_TraceProgress progress, void* user);
227SWMM_ENGINE_API int swmm_trace_prepare_live(SWMM_Trace handle, const char* output_path,
228 SWMM_TraceProgress progress, void* user);
251 int node_count, const SWMM_TraceLinkAverage* links,
252 int link_count, const SWMM_TraceInfo* info);
283 int node_capacity, SWMM_TraceLinkAverage* links,
284 int link_capacity);
294SWMM_ENGINE_API const char* swmm_trace_node_id(SWMM_Trace handle, int index);
304SWMM_ENGINE_API const char* swmm_trace_link_id(SWMM_Trace handle, int index);
323 int node_capacity, SWMM_TraceLinkInput* links,
324 int link_capacity);
353SWMM_ENGINE_API int swmm_trace_estimate(SWMM_Trace handle, int direction, int seed,
354 SWMM_TraceValue* nodes, int node_capacity,
355 SWMM_TraceValue* links, int link_capacity,
356 SWMM_TraceSummary* summary, SWMM_TraceProgress progress,
357 void* user);
358#ifdef __cplusplus
359}
360#endif
361#endif
#define SWMM_ENGINE_API
Definition openswmm_2d.h:62
Build-generated visibility and deprecation macros for the engine API.
@ SWMM_TRACE_UNKNOWN_LOSSES
Definition openswmm_trace.h:50
@ SWMM_TRACE_ROUTED_OUTFALL
Definition openswmm_trace.h:49
@ SWMM_TRACE_PONDING
Definition openswmm_trace.h:47
@ SWMM_TRACE_EXTERNAL_EXCHANGE
Definition openswmm_trace.h:48
@ SWMM_TRACE_NO_HDF5
Definition openswmm_trace.h:43
@ SWMM_TRACE_SOLVER
Definition openswmm_trace.h:42
@ SWMM_TRACE_OK
Definition openswmm_trace.h:37
@ SWMM_TRACE_MISMATCH
Definition openswmm_trace.h:40
@ SWMM_TRACE_CANCELLED
Definition openswmm_trace.h:41
@ SWMM_TRACE_INVALID
Definition openswmm_trace.h:38
@ SWMM_TRACE_IO
Definition openswmm_trace.h:39
int(* SWMM_TraceProgress)(double fraction, const char *stage, void *user)
Receive synchronous progress during trace preparation or estimation.
Definition openswmm_trace.h:34
SWMM_ENGINE_API const char * swmm_trace_link_id(SWMM_Trace handle, int index)
Borrow a copied topology link ID.
Definition openswmm_trace_impl.cpp:166
SWMM_ENGINE_API int swmm_trace_get_averages(SWMM_Trace handle, SWMM_TraceNodeAverage *nodes, int node_capacity, SWMM_TraceLinkAverage *links, int link_capacity)
Copy prepared SI node/link averages in topology order.
Definition openswmm_trace_impl.cpp:147
SWMM_ENGINE_API int swmm_trace_prepare(SWMM_Trace handle, const char *output_path, const char *cache_path, const char *fingerprint, SWMM_TraceProgress progress, void *user)
Build hydraulic averages from a completed output, optionally using a content-bound cache.
Definition openswmm_trace_impl.cpp:96
SWMM_ENGINE_API void swmm_trace_close(SWMM_Trace handle)
Release a trace handle and all copied analysis data.
Definition openswmm_trace_impl.cpp:90
SWMM_ENGINE_API int swmm_trace_set_averages(SWMM_Trace handle, const SWMM_TraceNodeAverage *nodes, int node_count, const SWMM_TraceLinkAverage *links, int link_count, const SWMM_TraceInfo *info)
Copy supplied SI hydraulic averages and recompute derived trace fields.
Definition openswmm_trace_impl.cpp:117
SWMM_ENGINE_API int swmm_trace_prepare_live(SWMM_Trace handle, const char *output_path, SWMM_TraceProgress progress, void *user)
Average complete reporting periods already present in a growing output.
Definition openswmm_trace_impl.cpp:110
@ SWMM_TRACE_RETAINED
Definition openswmm_trace.h:65
@ SWMM_TRACE_CIRCULATION
Definition openswmm_trace.h:67
@ SWMM_TRACE_OUTFALL
Definition openswmm_trace.h:62
@ SWMM_TRACE_TERMINAL_COUNT
Definition openswmm_trace.h:68
@ SWMM_TRACE_LOSS
Definition openswmm_trace.h:63
@ SWMM_TRACE_SOURCE
Definition openswmm_trace.h:64
@ SWMM_TRACE_UNRESOLVED
Definition openswmm_trace.h:66
@ SWMM_TRACE_DOWNSTREAM
Definition openswmm_trace.h:45
@ SWMM_TRACE_UPSTREAM
Definition openswmm_trace.h:45
SWMM_ENGINE_API const char * swmm_trace_node_id(SWMM_Trace handle, int index)
Borrow a copied topology node ID.
Definition openswmm_trace_impl.cpp:160
SWMM_ENGINE_API const char * swmm_trace_error(SWMM_Trace handle)
Borrow the current trace diagnostic.
Definition openswmm_trace_impl.cpp:93
SWMM_ENGINE_API int swmm_trace_get_topology(SWMM_Trace handle, SWMM_TraceNodeInput *nodes, int node_capacity, SWMM_TraceLinkInput *links, int link_capacity)
Copy topology records while borrowing their stable ID strings.
Definition openswmm_trace_impl.cpp:172
SWMM_ENGINE_API int swmm_trace_estimate(SWMM_Trace handle, int direction, int seed, SWMM_TraceValue *nodes, int node_capacity, SWMM_TraceValue *links, int link_capacity, SWMM_TraceSummary *summary, SWMM_TraceProgress progress, void *user)
Estimate upstream/downstream passage ratios and frozen-average travel times from a node.
Definition openswmm_trace_impl.cpp:191
@ SWMM_TRACE_TRAPPED
Definition openswmm_trace.h:58
@ SWMM_TRACE_UNKNOWN_TIME
Definition openswmm_trace.h:56
@ SWMM_TRACE_PARTIAL_TIME
Definition openswmm_trace.h:57
@ SWMM_TRACE_REVERSAL
Definition openswmm_trace.h:55
@ SWMM_TRACE_NO_DIRECTION
Definition openswmm_trace.h:54
@ SWMM_TRACE_UNREACHABLE
Definition openswmm_trace.h:53
@ SWMM_TRACE_APPROXIMATE
Definition openswmm_trace.h:59
SWMM_ENGINE_API int swmm_trace_get_info(SWMM_Trace handle, SWMM_TraceInfo *info)
Copy current topology/reporting metadata.
Definition openswmm_trace_impl.cpp:141
void * SWMM_Trace
Definition openswmm_trace.h:23
SWMM_ENGINE_API int swmm_trace_create(const SWMM_TraceNodeInput *nodes, int node_count, const SWMM_TraceLinkInput *links, int link_count, const SWMM_TraceOptions *options, SWMM_Trace *handle)
Copy model topology and options into an independent offline trace handle.
Definition openswmm_trace_impl.cpp:49
SWMM_ENGINE_API void swmm_trace_default_options(SWMM_TraceOptions *options)
Fill the standard SI flow-tracing solver tolerances.
Definition openswmm_trace_impl.cpp:45
Definition openswmm_trace.h:102
int schema_version
Definition openswmm_trace.h:103
int node_count
Definition openswmm_trace.h:103
double last_report_date
Definition openswmm_trace.h:105
int periods
Definition openswmm_trace.h:104
double duration_s
Definition openswmm_trace.h:105
int link_count
Definition openswmm_trace.h:103
int source_flow_units
Definition openswmm_trace.h:104
int algorithm_version
Definition openswmm_trace.h:103
int cache_loaded
Definition openswmm_trace.h:104
double first_report_date
Definition openswmm_trace.h:105
Definition openswmm_trace.h:90
int flags
Definition openswmm_trace.h:94
double inflow_m3s
Definition openswmm_trace.h:91
double volume_m3
Definition openswmm_trace.h:91
double last_volume_m3
Definition openswmm_trace.h:93
double residence_s
Definition openswmm_trace.h:92
double withdrawal_m3s
Definition openswmm_trace.h:91
double lateral_in_m3s
Definition openswmm_trace.h:91
double outgoing_m3s
Definition openswmm_trace.h:92
double overflow_m3s
Definition openswmm_trace.h:92
double first_volume_m3
Definition openswmm_trace.h:93
Definition openswmm_trace.h:71
int flags
Definition openswmm_trace.h:74
const char * id
Definition openswmm_trace.h:72
int type
Definition openswmm_trace.h:73
Definition openswmm_trace.h:83
double velocity_epsilon_mps
Definition openswmm_trace.h:85
double flow_epsilon_m3s
Definition openswmm_trace.h:84
int max_iterations
Definition openswmm_trace.h:88
double reversal_dominance
Definition openswmm_trace.h:86
double solver_tolerance
Definition openswmm_trace.h:87
Definition openswmm_trace.h:115
double boundary_out_m3
Definition openswmm_trace.h:118
double boundary_in_m3
Definition openswmm_trace.h:118
double accounting_error
Definition openswmm_trace.h:117
double terminal[SWMM_TRACE_TERMINAL_COUNT]
Definition openswmm_trace.h:116
int cyclic
Definition openswmm_trace.h:120
int reached_nodes
Definition openswmm_trace.h:120
double storage_change_m3
Definition openswmm_trace.h:119
double solver_residual
Definition openswmm_trace.h:117
double known_loss_m3
Definition openswmm_trace.h:119
double withdrawal_m3
Definition openswmm_trace.h:118
double lateral_in_m3
Definition openswmm_trace.h:118
int reached_links
Definition openswmm_trace.h:120
double partial_balance_residual_m3
Definition openswmm_trace.h:119
Definition openswmm_trace.h:107
double to_time_s
Definition openswmm_trace.h:111
double time_s
Definition openswmm_trace.h:109
double ratio
Definition openswmm_trace.h:108
double from_time_s
Definition openswmm_trace.h:111
int flags
Definition openswmm_trace.h:113
double terminal_fraction
Definition openswmm_trace.h:112
int terminal_kind
Definition openswmm_trace.h:113
double time_coverage
Definition openswmm_trace.h:110