You can directly model the flow of water through pipe networks computationally, the same way any chemical engineer would.
FWIW, as someone who designs massively parallel/distributed algorithms and went to school for chemical engineering, the conceptual model I use to design the aggregate behavior of complex networks are complex continuous flow chemical processes. All of the back pressure, flow overhead, reaction rates, equilibria, etc constructs are directly analogous to moving bits and doing computation in complex, distributed, heterogeneous computing systems. I think it is particularly effective for reasoning about distributed systems because chemical processes have no real concept of a global clock or shared state but still robustly and efficiently produce the desired output. It teaches you to reason about constructing optimal and robust global behaviors from subprocesses that only have local visibility and no explicit coordination between processes.