16#ifndef OPENSWMM_TRACE_H
17#define OPENSWMM_TRACE_H
206 const char* cache_path,
const char* fingerprint,
#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:96
int direction
Definition openswmm_trace.h:100
double travel_s
Definition openswmm_trace.h:98
double absolute_flow_m3s
Definition openswmm_trace.h:97
double net_flow_m3s
Definition openswmm_trace.h:97
double reverse_volume_m3
Definition openswmm_trace.h:98
double forward_volume_m3
Definition openswmm_trace.h:98
int flags
Definition openswmm_trace.h:100
double first_volume_m3
Definition openswmm_trace.h:99
double absolute_velocity_mps
Definition openswmm_trace.h:97
double last_volume_m3
Definition openswmm_trace.h:99
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: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