Quick parser to load inp
This commit is contained in:
@@ -2,6 +2,8 @@ from .project import have_project, create_project, delete_project
|
|||||||
from .project import is_project_open, get_project_open_count, open_project, close_project
|
from .project import is_project_open, get_project_open_count, open_project, close_project
|
||||||
from .project import copy_project
|
from .project import copy_project
|
||||||
|
|
||||||
|
from .parser import read_inp
|
||||||
|
|
||||||
from .operation import API_ADD, API_UPDATE, API_DELETE
|
from .operation import API_ADD, API_UPDATE, API_DELETE
|
||||||
from .operation import ChangeSet
|
from .operation import ChangeSet
|
||||||
from .operation import get_current_operation
|
from .operation import get_current_operation
|
||||||
|
|||||||
127
api/parser.py
Normal file
127
api/parser.py
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
from typing import Any
|
||||||
|
from .project import *
|
||||||
|
from .s1_title import *
|
||||||
|
from .s2_junctions import *
|
||||||
|
from .s3_reservoirs import *
|
||||||
|
from .s4_tanks import *
|
||||||
|
from .s5_pipes import *
|
||||||
|
from .s6_pumps import *
|
||||||
|
from .s7_valves import *
|
||||||
|
|
||||||
|
junctions : dict[str, dict[str, Any]] = {}
|
||||||
|
reservoirs : dict[str, dict[str, Any]] = {}
|
||||||
|
tanks : dict[str, dict[str, Any]] = {}
|
||||||
|
pipes : dict[str, dict[str, Any]] = {}
|
||||||
|
pumps : dict[str, dict[str, Any]] = {}
|
||||||
|
valves : dict[str, dict[str, Any]] = {}
|
||||||
|
|
||||||
|
def read_inp(name: str, inp: str):
|
||||||
|
if is_project_open(name):
|
||||||
|
close_project(name)
|
||||||
|
|
||||||
|
if have_project(name):
|
||||||
|
delete_project(name)
|
||||||
|
|
||||||
|
create_project(name)
|
||||||
|
open_project(name)
|
||||||
|
|
||||||
|
section = ''
|
||||||
|
|
||||||
|
for line in open(inp):
|
||||||
|
line = line.lstrip()
|
||||||
|
|
||||||
|
if line.startswith(';'):
|
||||||
|
continue
|
||||||
|
|
||||||
|
if line.startswith('[TITLE'):
|
||||||
|
section = 'title'
|
||||||
|
continue
|
||||||
|
if line.startswith('[JUNCTION'):
|
||||||
|
section = JUNCTION
|
||||||
|
continue
|
||||||
|
if line.startswith('[RESERVOIR'):
|
||||||
|
section = RESERVOIR
|
||||||
|
continue
|
||||||
|
if line.startswith('[TANK'):
|
||||||
|
section = TANK
|
||||||
|
continue
|
||||||
|
if line.startswith('[PIPE'):
|
||||||
|
section = PIPE
|
||||||
|
continue
|
||||||
|
if line.startswith('[PUMP'):
|
||||||
|
section = PUMP
|
||||||
|
continue
|
||||||
|
if line.startswith('[VALVE'):
|
||||||
|
section = VALVE
|
||||||
|
continue
|
||||||
|
if line.startswith('[COORDINATE'):
|
||||||
|
section = 'coordinate'
|
||||||
|
continue
|
||||||
|
if line.startswith('['):
|
||||||
|
section = ''
|
||||||
|
continue
|
||||||
|
|
||||||
|
tokens = line.split()
|
||||||
|
if len(tokens) == 0:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if section == 'title':
|
||||||
|
# set_title(name, ChangeSet({'value': tokens[0]}))
|
||||||
|
continue
|
||||||
|
elif section == JUNCTION:
|
||||||
|
if tokens[0] not in junctions:
|
||||||
|
junctions[tokens[0]] = {}
|
||||||
|
junctions[tokens[0]] |= {'id': tokens[0], 'elevation': tokens[1]}
|
||||||
|
continue
|
||||||
|
elif section == RESERVOIR:
|
||||||
|
if tokens[0] not in reservoirs:
|
||||||
|
reservoirs[tokens[0]] = {}
|
||||||
|
reservoirs[tokens[0]] |= {'id': tokens[0], 'head': tokens[1]}
|
||||||
|
continue
|
||||||
|
elif section == TANK:
|
||||||
|
if tokens[0] not in tanks:
|
||||||
|
tanks[tokens[0]] = {}
|
||||||
|
tanks[tokens[0]] = {'id': tokens[0], 'elevation': tokens[1], 'init_level': tokens[2], 'min_level': tokens[3], 'max_level': tokens[4], 'diameter': tokens[5], 'min_vol': tokens[6]}
|
||||||
|
continue
|
||||||
|
elif section == PIPE:
|
||||||
|
pipes[tokens[0]] = {'id': tokens[0], 'node1': tokens[1], 'node2': tokens[2], 'length': tokens[3], 'diameter': tokens[4], 'roughness': tokens[5], 'minor_loss': tokens[6], 'status': tokens[7].lower()}
|
||||||
|
continue
|
||||||
|
elif section == PUMP:
|
||||||
|
pumps[tokens[0]] = {'id': tokens[0], 'node1': tokens[1], 'node2': tokens[2]}
|
||||||
|
continue
|
||||||
|
elif section == VALVE:
|
||||||
|
valves[tokens[0]] = {'id': tokens[0], 'node1': tokens[1], 'node2': tokens[2], 'diameter': tokens[3], 'v_type': tokens[4], 'setting': tokens[5], 'minor_loss': tokens[6]}
|
||||||
|
continue
|
||||||
|
elif section == 'coordinate':
|
||||||
|
if tokens[0] in junctions:
|
||||||
|
junctions[tokens[0]] |= {'x': tokens[1], 'y': tokens[2]}
|
||||||
|
elif tokens[0] in reservoirs:
|
||||||
|
reservoirs[tokens[0]] |= {'x': tokens[1], 'y': tokens[2]}
|
||||||
|
elif tokens[0] in tanks:
|
||||||
|
tanks[tokens[0]] |= {'x': tokens[1], 'y': tokens[2]}
|
||||||
|
continue
|
||||||
|
|
||||||
|
for value in junctions.values():
|
||||||
|
if 'x' not in value:
|
||||||
|
value['x'] = 0.0
|
||||||
|
if 'y' not in value:
|
||||||
|
value['y'] = 0.0
|
||||||
|
add_junction(name, ChangeSet(value))
|
||||||
|
for value in reservoirs.values():
|
||||||
|
if 'x' not in value:
|
||||||
|
value['x'] = 0.0
|
||||||
|
if 'y' not in value:
|
||||||
|
value['y'] = 0.0
|
||||||
|
add_reservoir(name, ChangeSet(value))
|
||||||
|
for value in tanks.values():
|
||||||
|
if 'x' not in value:
|
||||||
|
value['x'] = 0.0
|
||||||
|
if 'y' not in value:
|
||||||
|
value['y'] = 0.0
|
||||||
|
add_tank(name, ChangeSet(value))
|
||||||
|
for value in pipes.values():
|
||||||
|
add_pipe(name, ChangeSet(value))
|
||||||
|
for value in pumps.values():
|
||||||
|
add_pump(name, ChangeSet(value))
|
||||||
|
for value in valves.values():
|
||||||
|
add_valve(name, ChangeSet(value))
|
||||||
480
net3.inp
Normal file
480
net3.inp
Normal file
@@ -0,0 +1,480 @@
|
|||||||
|
[TITLE]
|
||||||
|
EPANET Example Network 3
|
||||||
|
Example showing how the percent of Lake water in a dual-source
|
||||||
|
system changes over time.
|
||||||
|
|
||||||
|
[JUNCTIONS]
|
||||||
|
;ID Elev Demand Pattern
|
||||||
|
10 147 0 ;
|
||||||
|
15 32 1 3 ;
|
||||||
|
20 129 0 ;
|
||||||
|
35 12.5 1 4 ;
|
||||||
|
40 131.9 0 ;
|
||||||
|
50 116.5 0 ;
|
||||||
|
60 0 0 ;
|
||||||
|
601 0 0 ;
|
||||||
|
61 0 0 ;
|
||||||
|
101 42 189.95 ;
|
||||||
|
103 43 133.2 ;
|
||||||
|
105 28.5 135.37 ;
|
||||||
|
107 22 54.64 ;
|
||||||
|
109 20.3 231.4 ;
|
||||||
|
111 10 141.94 ;
|
||||||
|
113 2 20.01 ;
|
||||||
|
115 14 52.1 ;
|
||||||
|
117 13.6 117.71 ;
|
||||||
|
119 2 176.13 ;
|
||||||
|
120 0 0 ;
|
||||||
|
121 -2 41.63 ;
|
||||||
|
123 11 1 2 ;
|
||||||
|
125 11 45.6 ;
|
||||||
|
127 56 17.66 ;
|
||||||
|
129 51 0 ;
|
||||||
|
131 6 42.75 ;
|
||||||
|
139 31 5.89 ;
|
||||||
|
141 4 9.85 ;
|
||||||
|
143 -4.5 6.2 ;
|
||||||
|
145 1 27.63 ;
|
||||||
|
147 18.5 8.55 ;
|
||||||
|
149 16 27.07 ;
|
||||||
|
151 33.5 144.48 ;
|
||||||
|
153 66.2 44.17 ;
|
||||||
|
157 13.1 51.79 ;
|
||||||
|
159 6 41.32 ;
|
||||||
|
161 4 15.8 ;
|
||||||
|
163 5 9.42 ;
|
||||||
|
164 5 0 ;
|
||||||
|
166 -2 2.6 ;
|
||||||
|
167 -5 14.56 ;
|
||||||
|
169 -5 0 ;
|
||||||
|
171 -4 39.34 ;
|
||||||
|
173 -4 0 ;
|
||||||
|
177 8 58.17 ;
|
||||||
|
179 8 0 ;
|
||||||
|
181 8 0 ;
|
||||||
|
183 11 0 ;
|
||||||
|
184 16 0 ;
|
||||||
|
185 16 25.65 ;
|
||||||
|
187 12.5 0 ;
|
||||||
|
189 4 107.92 ;
|
||||||
|
191 25 81.9 ;
|
||||||
|
193 18 71.31 ;
|
||||||
|
195 15.5 0 ;
|
||||||
|
197 23 17.04 ;
|
||||||
|
199 -2 119.32 ;
|
||||||
|
201 0.1 44.61 ;
|
||||||
|
203 2 1 5 ;
|
||||||
|
204 21 0 ;
|
||||||
|
205 21 65.36 ;
|
||||||
|
206 1 0 ;
|
||||||
|
207 9 69.39 ;
|
||||||
|
208 16 0 ;
|
||||||
|
209 -2 0.87 ;
|
||||||
|
211 7 8.67 ;
|
||||||
|
213 7 13.94 ;
|
||||||
|
215 7 92.19 ;
|
||||||
|
217 6 24.22 ;
|
||||||
|
219 4 41.32 ;
|
||||||
|
225 8 22.8 ;
|
||||||
|
229 10.5 64.18 ;
|
||||||
|
231 5 16.48 ;
|
||||||
|
237 14 15.61 ;
|
||||||
|
239 13 44.61 ;
|
||||||
|
241 13 0 ;
|
||||||
|
243 14 4.34 ;
|
||||||
|
247 18 70.38 ;
|
||||||
|
249 18 0 ;
|
||||||
|
251 30 24.16 ;
|
||||||
|
253 36 54.52 ;
|
||||||
|
255 27 40.39 ;
|
||||||
|
257 17 0 ;
|
||||||
|
259 25 0 ;
|
||||||
|
261 0 0 ;
|
||||||
|
263 0 0 ;
|
||||||
|
265 0 0 ;
|
||||||
|
267 21 0 ;
|
||||||
|
269 0 0 ;
|
||||||
|
271 6 0 ;
|
||||||
|
273 8 0 ;
|
||||||
|
275 10 0 ;
|
||||||
|
|
||||||
|
[RESERVOIRS]
|
||||||
|
;ID Head Pattern
|
||||||
|
River 220.0 ;
|
||||||
|
Lake 167.0 ;
|
||||||
|
|
||||||
|
[TANKS]
|
||||||
|
;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve Overflow
|
||||||
|
1 131.9 13.1 .1 32.1 85 0 ;
|
||||||
|
2 116.5 23.5 6.5 40.3 50 0 ;
|
||||||
|
3 129.0 29.0 4.0 35.5 164 0 ;
|
||||||
|
|
||||||
|
[PIPES]
|
||||||
|
;ID Node1 Node2 Length Diameter Roughness MinorLoss Status
|
||||||
|
20 3 20 99 99 199 0 Open ;
|
||||||
|
40 1 40 99 99 199 0 Open ;
|
||||||
|
50 2 50 99 99 199 0 Open ;
|
||||||
|
60 River 60 1231 24 140 0 Open ;
|
||||||
|
101 10 101 14200 18 110 0 Open ;
|
||||||
|
103 101 103 1350 16 130 0 Open ;
|
||||||
|
105 101 105 2540 12 130 0 Open ;
|
||||||
|
107 105 107 1470 12 130 0 Open ;
|
||||||
|
109 103 109 3940 16 130 0 Open ;
|
||||||
|
111 109 111 2000 12 130 0 Open ;
|
||||||
|
112 115 111 1160 12 130 0 Open ;
|
||||||
|
113 111 113 1680 12 130 0 Open ;
|
||||||
|
114 115 113 2000 8 130 0 Open ;
|
||||||
|
115 107 115 1950 8 130 0 Open ;
|
||||||
|
116 113 193 1660 12 130 0 Open ;
|
||||||
|
117 263 105 2725 12 130 0 Open ;
|
||||||
|
119 115 117 2180 12 130 0 Open ;
|
||||||
|
120 119 120 730 12 130 0 Open ;
|
||||||
|
121 120 117 1870 12 130 0 Open ;
|
||||||
|
122 121 120 2050 8 130 0 Open ;
|
||||||
|
123 121 119 2000 30 141 0 Open ;
|
||||||
|
125 123 121 1500 30 141 0 Open ;
|
||||||
|
129 121 125 930 24 130 0 Open ;
|
||||||
|
131 125 127 3240 24 130 0 Open ;
|
||||||
|
133 20 127 785 20 130 0 Open ;
|
||||||
|
135 127 129 900 24 130 0 Open ;
|
||||||
|
137 129 131 6480 16 130 0 Open ;
|
||||||
|
145 129 139 2750 8 130 0 Open ;
|
||||||
|
147 139 141 2050 8 130 0 Open ;
|
||||||
|
149 143 141 1400 8 130 0 Open ;
|
||||||
|
151 15 143 1650 8 130 0 Open ;
|
||||||
|
153 145 141 3510 12 130 0 Open ;
|
||||||
|
155 147 145 2200 12 130 0 Open ;
|
||||||
|
159 147 149 880 12 130 0 Open ;
|
||||||
|
161 149 151 1020 8 130 0 Open ;
|
||||||
|
163 151 153 1170 12 130 0 Open ;
|
||||||
|
169 125 153 4560 8 130 0 Open ;
|
||||||
|
171 119 151 3460 12 130 0 Open ;
|
||||||
|
173 119 157 2080 30 141 0 Open ;
|
||||||
|
175 157 159 2910 30 141 0 Open ;
|
||||||
|
177 159 161 2000 30 141 0 Open ;
|
||||||
|
179 161 163 430 30 141 0 Open ;
|
||||||
|
180 163 164 150 14 130 0 Open ;
|
||||||
|
181 164 166 490 14 130 0 Open ;
|
||||||
|
183 265 169 590 30 141 0 Open ;
|
||||||
|
185 167 169 60 8 130 0 Open ;
|
||||||
|
186 187 204 99.9 8 130 0 Open ;
|
||||||
|
187 169 171 1270 30 141 0 Open ;
|
||||||
|
189 171 173 50 30 141 0 Open ;
|
||||||
|
191 271 171 760 24 130 0 Open ;
|
||||||
|
193 35 181 30 24 130 0 Open ;
|
||||||
|
195 181 177 30 12 130 0 Open ;
|
||||||
|
197 177 179 30 12 130 0 Open ;
|
||||||
|
199 179 183 210 12 130 0 Open ;
|
||||||
|
201 40 179 1190 12 130 0 Open ;
|
||||||
|
202 185 184 99.9 8 130 0 Open ;
|
||||||
|
203 183 185 510 8 130 0 Open ;
|
||||||
|
204 184 205 4530. 12 130 0 Open ;
|
||||||
|
205 204 185 1325. 12 130 0 Open ;
|
||||||
|
207 189 183 1350 12 130 0 Open ;
|
||||||
|
209 189 187 500 8 130 0 Open ;
|
||||||
|
211 169 269 646 12 130 0 Open ;
|
||||||
|
213 191 187 2560 12 130 0 Open ;
|
||||||
|
215 267 189 1230 12 130 0 Open ;
|
||||||
|
217 191 193 520 12 130 0 Open ;
|
||||||
|
219 193 195 360 12 130 0 Open ;
|
||||||
|
221 161 195 2300 8 130 0 Open ;
|
||||||
|
223 197 191 1150 12 130 0 Open ;
|
||||||
|
225 111 197 2790 12 130 0 Open ;
|
||||||
|
229 173 199 4000 24 141 0 Open ;
|
||||||
|
231 199 201 630 24 141 0 Open ;
|
||||||
|
233 201 203 120 24 130 0 Open ;
|
||||||
|
235 199 273 725 12 130 0 Open ;
|
||||||
|
237 205 207 1200 12 130 0 Open ;
|
||||||
|
238 207 206 450 12 130 0 Open ;
|
||||||
|
239 275 207 1430 12 130 0 Open ;
|
||||||
|
240 206 208 510 12 130 0 Open ;
|
||||||
|
241 208 209 885 12 130 0 Open ;
|
||||||
|
243 209 211 1210 16 130 0 Open ;
|
||||||
|
245 211 213 990 16 130 0 Open ;
|
||||||
|
247 213 215 4285 16 130 0 Open ;
|
||||||
|
249 215 217 1660 16 130 0 Open ;
|
||||||
|
251 217 219 2050 14 130 0 Open ;
|
||||||
|
257 217 225 1560 12 130 0 Open ;
|
||||||
|
261 213 229 2200 8 130 0 Open ;
|
||||||
|
263 229 231 1960 12 130 0 Open ;
|
||||||
|
269 211 237 2080 12 130 0 Open ;
|
||||||
|
271 237 229 790 8 130 0 Open ;
|
||||||
|
273 237 239 510 12 130 0 Open ;
|
||||||
|
275 239 241 35 12 130 0 Open ;
|
||||||
|
277 241 243 2200 12 130 0 Open ;
|
||||||
|
281 241 247 445 10 130 0 Open ;
|
||||||
|
283 239 249 430 12 130 0 Open ;
|
||||||
|
285 247 249 10 12 130 0 Open ;
|
||||||
|
287 247 255 1390 10 130 0 Open ;
|
||||||
|
289 50 255 925 10 130 0 Open ;
|
||||||
|
291 255 253 1100 10 130 0 Open ;
|
||||||
|
293 255 251 1100 8 130 0 Open ;
|
||||||
|
295 249 251 1450 12 130 0 Open ;
|
||||||
|
297 120 257 645 8 130 0 Open ;
|
||||||
|
299 257 259 350 8 130 0 Open ;
|
||||||
|
301 259 263 1400 8 130 0 Open ;
|
||||||
|
303 257 261 1400 8 130 0 Open ;
|
||||||
|
305 117 261 645 12 130 0 Open ;
|
||||||
|
307 261 263 350 12 130 0 Open ;
|
||||||
|
309 265 267 1580 8 130 0 Open ;
|
||||||
|
311 193 267 1170 12 130 0 Open ;
|
||||||
|
313 269 189 646 12 130 0 Open ;
|
||||||
|
315 181 271 260 24 130 0 Open ;
|
||||||
|
317 273 275 2230 8 130 0 Open ;
|
||||||
|
319 273 205 645 12 130 0 Open ;
|
||||||
|
321 163 265 1200 30 141 0 Open ;
|
||||||
|
323 201 275 300 12 130 0 Open ;
|
||||||
|
325 269 271 1290 8 130 0 Open ;
|
||||||
|
329 61 123 45500 30 140 0 Open ;
|
||||||
|
330 60 601 1 30 140 0 Closed ;
|
||||||
|
333 601 61 1 30 140 0 Open ;
|
||||||
|
|
||||||
|
[PUMPS]
|
||||||
|
;ID Node1 Node2 Parameters
|
||||||
|
10 Lake 10 HEAD 1 ;
|
||||||
|
335 60 61 HEAD 2 ;
|
||||||
|
|
||||||
|
[VALVES]
|
||||||
|
;ID Node1 Node2 Diameter Type Setting MinorLoss
|
||||||
|
|
||||||
|
[TAGS]
|
||||||
|
|
||||||
|
[DEMANDS]
|
||||||
|
;Junction Demand Pattern Category
|
||||||
|
|
||||||
|
[STATUS]
|
||||||
|
;ID Status/Setting
|
||||||
|
10 Closed
|
||||||
|
|
||||||
|
[PATTERNS]
|
||||||
|
;ID Multipliers
|
||||||
|
;General Default Demand Pattern
|
||||||
|
1 1.34 1.94 1.46 1.44 .76 .92
|
||||||
|
1 .85 1.07 .96 1.1 1.08 1.19
|
||||||
|
1 1.16 1.08 .96 .83 .79 .74
|
||||||
|
1 .64 .64 .85 .96 1.24 1.67
|
||||||
|
;Demand Pattern for Node 123
|
||||||
|
2 0 0 0 0 0 1219
|
||||||
|
2 0 0 0 1866 1836 1818
|
||||||
|
2 1818 1822 1822 1817 1824 1816
|
||||||
|
2 1833 1817 1830 1814 1840 1859
|
||||||
|
;Demand Pattern for Node 15
|
||||||
|
3 620 620 620 620 620 360
|
||||||
|
3 360 0 0 0 0 360
|
||||||
|
3 360 360 360 360 0 0
|
||||||
|
3 0 0 0 0 360 360
|
||||||
|
;Demand Pattern for Node 35
|
||||||
|
4 1637 1706 1719 1719 1791 1819
|
||||||
|
4 1777 1842 1815 1825 1856 1801
|
||||||
|
4 1819 1733 1664 1620 1613 1620
|
||||||
|
4 1616 1647 1627 1627 1671 1668
|
||||||
|
;Demand Pattern for Node 203
|
||||||
|
5 4439 4531 4511 4582 4531 4582
|
||||||
|
5 4572 4613 4643 4643 4592 4613
|
||||||
|
5 4531 4521 4449 4439 4449 4460
|
||||||
|
5 4439 4419 4368 4399 4470 4480
|
||||||
|
|
||||||
|
[CURVES]
|
||||||
|
;ID X-Value Y-Value
|
||||||
|
;PUMP: Pump Curve for Pump 10 (Lake Source)
|
||||||
|
1 0 104.
|
||||||
|
1 2000. 92.
|
||||||
|
1 4000. 63.
|
||||||
|
;PUMP: Pump Curve for Pump 335 (River Source)
|
||||||
|
2 0 200.
|
||||||
|
2 8000. 138.
|
||||||
|
2 14000. 86.
|
||||||
|
|
||||||
|
[CONTROLS]
|
||||||
|
;Lake source operates only part of the day
|
||||||
|
Link 10 OPEN AT TIME 1
|
||||||
|
Link 10 CLOSED AT TIME 15
|
||||||
|
|
||||||
|
;Pump 335 controlled by level in Tank 1
|
||||||
|
;When pump is closed, bypass pipe is opened
|
||||||
|
Link 335 OPEN IF Node 1 BELOW 17.1
|
||||||
|
Link 335 CLOSED IF Node 1 ABOVE 19.1
|
||||||
|
Link 330 CLOSED IF Node 1 BELOW 17.1
|
||||||
|
Link 330 OPEN IF Node 1 ABOVE 19.1
|
||||||
|
|
||||||
|
|
||||||
|
[RULES]
|
||||||
|
|
||||||
|
[ENERGY]
|
||||||
|
Global Efficiency 75
|
||||||
|
Global Price 0.0
|
||||||
|
Demand Charge 0.0
|
||||||
|
|
||||||
|
[EMITTERS]
|
||||||
|
;Junction Coefficient
|
||||||
|
|
||||||
|
[QUALITY]
|
||||||
|
;Node InitQual
|
||||||
|
|
||||||
|
[SOURCES]
|
||||||
|
;Node Type Quality Pattern
|
||||||
|
|
||||||
|
[REACTIONS]
|
||||||
|
;Type Pipe/Tank Coefficient
|
||||||
|
|
||||||
|
|
||||||
|
[REACTIONS]
|
||||||
|
Order Bulk 1
|
||||||
|
Order Tank 1
|
||||||
|
Order Wall 1
|
||||||
|
Global Bulk 0.0
|
||||||
|
Global Wall 0.0
|
||||||
|
Limiting Potential 0.0
|
||||||
|
Roughness Correlation 0.0
|
||||||
|
|
||||||
|
[MIXING]
|
||||||
|
;Tank Model
|
||||||
|
|
||||||
|
[TIMES]
|
||||||
|
Duration 24:00
|
||||||
|
Hydraulic Timestep 1:00
|
||||||
|
Quality Timestep 0:05
|
||||||
|
Pattern Timestep 1:00
|
||||||
|
Pattern Start 0:00
|
||||||
|
Report Timestep 1:00
|
||||||
|
Report Start 0:00
|
||||||
|
Start ClockTime 12 am
|
||||||
|
Statistic None
|
||||||
|
|
||||||
|
[REPORT]
|
||||||
|
Status Yes
|
||||||
|
Summary No
|
||||||
|
Page 0
|
||||||
|
|
||||||
|
[OPTIONS]
|
||||||
|
Units GPM
|
||||||
|
Headloss H-W
|
||||||
|
Specific Gravity 1.0
|
||||||
|
Viscosity 1.0
|
||||||
|
Trials 40
|
||||||
|
Accuracy 0.001
|
||||||
|
CHECKFREQ 2
|
||||||
|
MAXCHECK 10
|
||||||
|
DAMPLIMIT 0
|
||||||
|
Unbalanced Continue 10
|
||||||
|
Pattern 1
|
||||||
|
Demand Multiplier 1.0
|
||||||
|
Emitter Exponent 0.5
|
||||||
|
Quality Trace Lake
|
||||||
|
Diffusivity 1.0
|
||||||
|
Tolerance 0.01
|
||||||
|
|
||||||
|
[COORDINATES]
|
||||||
|
;Node X-Coord Y-Coord
|
||||||
|
10 9.000 27.850
|
||||||
|
15 38.680 23.760
|
||||||
|
20 29.440 26.910
|
||||||
|
35 25.460 10.520
|
||||||
|
40 27.020 9.810
|
||||||
|
50 33.010 3.010
|
||||||
|
60 23.900 29.940
|
||||||
|
601 23.000 29.490
|
||||||
|
61 23.710 29.030
|
||||||
|
101 13.810 22.940
|
||||||
|
103 12.960 21.310
|
||||||
|
105 16.970 21.280
|
||||||
|
107 18.450 20.460
|
||||||
|
109 17.640 18.920
|
||||||
|
111 20.210 17.530
|
||||||
|
113 22.040 16.610
|
||||||
|
115 20.980 19.180
|
||||||
|
117 21.690 21.280
|
||||||
|
119 23.700 22.760
|
||||||
|
120 22.080 23.100
|
||||||
|
121 23.540 25.500
|
||||||
|
123 23.370 27.310
|
||||||
|
125 24.590 25.640
|
||||||
|
127 29.290 26.400
|
||||||
|
129 30.320 26.390
|
||||||
|
131 37.890 29.550
|
||||||
|
139 33.280 24.540
|
||||||
|
141 35.680 23.080
|
||||||
|
143 37.470 21.970
|
||||||
|
145 33.020 19.290
|
||||||
|
147 30.240 20.380
|
||||||
|
149 29.620 20.740
|
||||||
|
151 28.290 21.390
|
||||||
|
153 28.130 22.630
|
||||||
|
157 24.850 20.160
|
||||||
|
159 23.120 17.500
|
||||||
|
161 25.100 15.280
|
||||||
|
163 25.390 14.980
|
||||||
|
164 25.980 15.140
|
||||||
|
166 26.480 15.130
|
||||||
|
167 25.880 12.980
|
||||||
|
169 25.680 12.740
|
||||||
|
171 26.650 11.800
|
||||||
|
173 26.870 11.590
|
||||||
|
179 25.710 10.400
|
||||||
|
181 25.720 10.740
|
||||||
|
183 25.450 10.180
|
||||||
|
184 25.150 9.520
|
||||||
|
185 25.010 9.670
|
||||||
|
187 23.640 11.040
|
||||||
|
189 24.150 11.370
|
||||||
|
191 22.100 14.070
|
||||||
|
193 22.880 14.350
|
||||||
|
195 23.180 14.720
|
||||||
|
197 20.970 15.180
|
||||||
|
199 29.420 8.440
|
||||||
|
201 30.890 8.570
|
||||||
|
203 31.140 8.890
|
||||||
|
204 23.800 10.900
|
||||||
|
205 29.200 6.460
|
||||||
|
206 31.660 6.640
|
||||||
|
207 31.000 6.610
|
||||||
|
208 32.540 6.810
|
||||||
|
209 33.760 6.590
|
||||||
|
211 34.200 5.540
|
||||||
|
213 35.260 6.160
|
||||||
|
215 39.950 8.730
|
||||||
|
217 42.110 8.670
|
||||||
|
219 44.860 9.320
|
||||||
|
225 43.530 7.380
|
||||||
|
229 36.160 3.490
|
||||||
|
231 38.380 2.540
|
||||||
|
237 35.370 3.080
|
||||||
|
239 35.760 2.310
|
||||||
|
241 35.870 2.110
|
||||||
|
243 37.040 0.000
|
||||||
|
247 35.020 2.050
|
||||||
|
249 35.020 1.810
|
||||||
|
251 34.150 1.100
|
||||||
|
253 32.168 1.885
|
||||||
|
255 33.510 2.450
|
||||||
|
257 21.170 23.320
|
||||||
|
259 20.800 23.400
|
||||||
|
261 20.790 21.450
|
||||||
|
263 20.320 21.570
|
||||||
|
265 25.390 13.600
|
||||||
|
267 23.380 12.950
|
||||||
|
269 25.030 12.140
|
||||||
|
271 25.970 11.000
|
||||||
|
273 29.160 7.380
|
||||||
|
275 31.070 8.290
|
||||||
|
River 24.150 31.060
|
||||||
|
Lake 8.000 27.530
|
||||||
|
1 27.460 9.840
|
||||||
|
2 32.990 3.450
|
||||||
|
3 29.410 27.270
|
||||||
|
|
||||||
|
[VERTICES]
|
||||||
|
;Link X-Coord Y-Coord
|
||||||
|
|
||||||
|
[LABELS]
|
||||||
|
;X-Coord Y-Coord Label & Anchor Node
|
||||||
|
8.000 29.418 "LAKE"
|
||||||
|
25.000 31.100 "RIVER"
|
||||||
|
|
||||||
|
[BACKDROP]
|
||||||
|
DIMENSIONS 6.157 -1.553 46.703 32.613
|
||||||
|
UNITS None
|
||||||
|
FILE
|
||||||
|
OFFSET 0.00 0.00
|
||||||
|
|
||||||
|
[END]
|
||||||
7
parser_demo.py
Normal file
7
parser_demo.py
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
from tjnetwork import *
|
||||||
|
|
||||||
|
def inp2db():
|
||||||
|
read_inp('net3', './net3.inp')
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
inp2db()
|
||||||
@@ -67,6 +67,9 @@ def close_project(name: str) -> None:
|
|||||||
def copy_project(source: str, new: str) -> None:
|
def copy_project(source: str, new: str) -> None:
|
||||||
return api.copy_project(source, new)
|
return api.copy_project(source, new)
|
||||||
|
|
||||||
|
def read_inp(name: str, inp: str) -> None:
|
||||||
|
return api.read_inp(name, inp)
|
||||||
|
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
# operation
|
# operation
|
||||||
|
|||||||
Reference in New Issue
Block a user