From 87513471031a5b49329a71481314f64c8b36ac25 Mon Sep 17 00:00:00 2001 From: DingZQ Date: Wed, 5 Feb 2025 16:01:18 +0800 Subject: [PATCH] We should not dump REGION/BOUND/REGION_NODES to v2 inp file --- api/inp_out.py | 8 +++++++- api/sections.py | 12 ++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/api/inp_out.py b/api/inp_out.py index 52b0aa5..aa7de7e 100644 --- a/api/inp_out.py +++ b/api/inp_out.py @@ -53,7 +53,13 @@ def dump_inp(project: str, inp: str, version: str = '3'): file = open(path, mode='w',encoding="UTF-8") - for name in section_name: + # REGION, BOUND, REGION_NODES 在 epanet v2 中没有,是我们自己定制的 + # v2 需要去掉我们自己定制的 section + sections = section_names_for_epanetv2 + if version == '3': + sections = section_name + + for name in sections: if name == TITLE: file.write(f'[{name}]\n') else: diff --git a/api/sections.py b/api/sections.py index bb60191..8c48a0d 100644 --- a/api/sections.py +++ b/api/sections.py @@ -76,3 +76,15 @@ section_name = [TITLE, JUNCTIONS, RESERVOIRS, TANKS, PIPES, EMITTERS, QUALITY, SOURCES, REACTIONS, MIXING, TIMES, REPORT, OPTIONS, COORDINATES, VERTICES, REGION, BOUND, REGION_NODES, LABELS, BACKDROP, END] + +# DingZQ, 2025-02-04 +# 我们在从服务器调用run_project的时候 +# 会将 database的project内容dump成 epanet v2 的inp文件,然后调用 runepanet.exe 去计算结果 +# 其中上面的 SECTION : REGION, BOUND, REGION_NODES 在 epanet v2 中没有,是我们自己定制的 +# 所以需要将这些 section 从 section_name 中移除 +section_names_for_epanetv2 = [TITLE, JUNCTIONS, RESERVOIRS, TANKS, PIPES, + PUMPS, VALVES, TAGS, DEMANDS, STATUS, + PATTERNS, CURVES, CONTROLS, RULES, ENERGY, + EMITTERS, QUALITY, SOURCES, REACTIONS, MIXING, + TIMES, REPORT, OPTIONS, COORDINATES, VERTICES, + LABELS, BACKDROP, END] \ No newline at end of file