Tsnet_GPT / simulation.py
razaali10's picture
Upload 6 files
2d176ee verified
raw
history blame contribute delete
821 Bytes
import tsnet
from tsnet.network import TransientModel
from tsnet.simulation import Initializer, MOCSimulator
import matplotlib.pyplot as plt
import io
def simulate_valve_closure(inp_path, node_id, start_time, duration, end_open=0, closure_constant=2):
tm = TransientModel(inp_path)
tm.set_wavespeed(1200.0)
tm.set_time(20)
tm.valve_closure(node_id, [duration, start_time, end_open, closure_constant])
tm = Initializer(tm, 0)
tm = MOCSimulator(tm)
fig, ax = plt.subplots()
for node in ['N2', 'N3']:
head = tm.get_node_head(node)
ax.plot(tm.Time, head, label=f"Node {node}")
ax.set_title("Head vs Time")
ax.set_xlabel("Time (s)")
ax.set_ylabel("Head (m)")
ax.legend()
buf = io.BytesIO()
plt.savefig(buf, format="png")
buf.seek(0)
return buf