I see a potential water balance error when modelling 1D-2D. A flow limiter is implemented for situations where water flows from the 2D domain to SWMM:
# flow leaving the 2D domain can't drain the corresponding cell
maxflow = (h * cell_surf) / dt1d
new_linkage_flow = max(new_linkage_flow, - maxflow)
However, there is no such limiter when the flow is from SWMM to 2D domain. If the node head level in the 2D model is much larger than the water level in the 2D domain, the calculated `new_linkage_flow` can potentially be much larger than what exists in the 1D model.
In my test simulations, I get more water on the surface when the flow source is surcharge from SWMM (sometimes the volume of water on the 2D domain is 100 times more than the total runoff).