Checkpoint persistence for hydraulic routing state.
More...
#include "Routing.hpp"
#include "../core/CompletedSourceArchive.hpp"
#include "../core/SimulationContext.hpp"
#include "../core/QualityCheckpoint.hpp"
#include "../core/DateTime.hpp"
#include "../hydrology/LidNode.hpp"
#include "Node.hpp"
#include "../core/UnitConversion.hpp"
#include <algorithm>
#include <atomic>
#include <cmath>
#include <cstdio>
#include <filesystem>
#include <fstream>
#include <limits>
#include <stdexcept>
#include <type_traits>
Checkpoint persistence for hydraulic routing state.
- Author
- Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
- Copyright
- Copyright (c) 2026 Caleb Buahin. All rights reserved.
- License
- Apache-2.0
◆ CONDUIT_MODEL
| #define CONDUIT_MODEL |
( |
| X | ) |
|
Value: X(link_idx) \
X(roughness) \
X(length) \
X(true_length) \
X(slope) \
X(mod_length) \
X(barrels) \
X(beta) \
X(rough_factor) \
X(q_full) \
X(q_max) \
X(loss_inlet) \
X(loss_outlet) \
X(loss_avg) \
X(seep_rate) \
X(culvert_code) \
X(gw_coupled) \
X(gw_kc) \
X(gw_dc)
◆ CONDUIT_STATE
| #define CONDUIT_STATE |
( |
| X | ) |
|
Value: X(evap_loss_rate) \
X(seep_loss_rate) \
X(normal_flow_limited) \
X(inlet_control) \
X(full_state) \
X(gw_head_rel) \
X(gw_gain_max)
◆ DW_STATE
Value: X(losses_all_zero_) \
X(last_converged_) \
X(variable_step_) \
X(sim_time_) \
X(evap_rate) \
X(area1_) \
X(area2_) \
X(area_mid_) \
X(hrad_mid_) \
X(width_mid_) \
X(depth1_) \
X(depth2_) \
X(depth_mid_) \
X(velocity_) \
X(froude_) \
X(sigma_) \
X(dqdh_) \
X(new_flow_) \
X(q1_) \
X(area_old_) \
X(bypassed_) \
X(surf_area1_) \
X(surf_area2_) \
X(hrad1_) \
X(width1_) \
X(width2_) \
X(tpa_latch_) \
X(tpa_latch_changed_)
◆ FIELD [1/7]
◆ FIELD [2/7]
◆ FIELD [3/7]
◆ FIELD [4/7]
◆ FIELD [5/7]
◆ FIELD [6/7]
◆ FIELD [7/7]
◆ FINITE [1/3]
◆ FINITE [2/3]
◆ FINITE [3/3]
◆ LINK_MODEL
◆ LINK_STATE
◆ MOVE [1/4]
Value: static_assert(std::is_nothrow_move_assignable_v<decltype(nodes.v)>); \
c.nodes.v = std::move(nodes.v);
◆ MOVE [2/4]
Value: static_assert(std::is_nothrow_move_assignable_v<decltype(links.v)>); \
c.links.v = std::move(links.v);
◆ MOVE [3/4]
Value:c.link_subtypes.conduits.v = std::move(conduits.v);
◆ MOVE [4/4]
Value:r.dw_solver_.v = std::move(dw.v);
◆ NODE_MODEL
Value: X(type) \
X(invert_elev) \
X(full_depth) \
X(init_depth) \
X(sur_depth) \
X(storage_area) \
X(ponded_area) \
X(is_virtual) \
X(is_inlet) \
X(rim_depth) \
X(crown_elev) \
X(degree) \
X(comments) \
X(tags) \
X(rpt_flag)
◆ NODE_STATE
◆ STORAGE_MODEL
| #define STORAGE_MODEL |
( |
| X | ) |
|
Value: X(node_idx) \
X(curve) \
X(curve_name) \
X(shape) \
X(a) \
X(b) \
X(c) \
X(p1) \
X(p2) \
X(p3) \
X(seep_rate) \
X(evap_frac) \
X(exfil_suction) \
X(exfil_ksat) \
X(exfil_imd)