Cleaning up tests folder (#167)
This commit is contained in:
committed by
Sam Hatchett
parent
7bc041e77e
commit
d57b20e44d
14
tests/epanet-nrtestsuite/.gitignore
vendored
14
tests/epanet-nrtestsuite/.gitignore
vendored
@@ -1,14 +0,0 @@
|
|||||||
# Ignore the performance data and logs
|
|
||||||
performance.json
|
|
||||||
stderr.log
|
|
||||||
stdout.log
|
|
||||||
|
|
||||||
# Ignore app description files generated for nrtest
|
|
||||||
apps/
|
|
||||||
|
|
||||||
# Ignore results generated during nrtest execution
|
|
||||||
benchmark/
|
|
||||||
|
|
||||||
# Except changes to reference benchmark
|
|
||||||
!benchmark/epanet-2012 # Results for EPANET 2.0.12 MSVC 2010 32-bit
|
|
||||||
|
|
||||||
Binary file not shown.
@@ -1,178 +0,0 @@
|
|||||||
[TITLE]
|
|
||||||
EPANET Example Network 1
|
|
||||||
A simple example of modeling chlorine decay. Both bulk and
|
|
||||||
wall reactions are included.
|
|
||||||
|
|
||||||
[JUNCTIONS]
|
|
||||||
;ID Elev Demand Pattern
|
|
||||||
10 710 0 ;
|
|
||||||
11 710 150 ;
|
|
||||||
12 700 150 ;
|
|
||||||
13 695 100 ;
|
|
||||||
21 700 150 ;
|
|
||||||
22 695 200 ;
|
|
||||||
23 690 150 ;
|
|
||||||
31 700 100 ;
|
|
||||||
32 710 100 ;
|
|
||||||
|
|
||||||
[RESERVOIRS]
|
|
||||||
;ID Head Pattern
|
|
||||||
9 800 ;
|
|
||||||
|
|
||||||
[TANKS]
|
|
||||||
;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve
|
|
||||||
2 850 120 100 150 50.5 0 ;
|
|
||||||
|
|
||||||
[PIPES]
|
|
||||||
;ID Node1 Node2 Length Diameter Roughness MinorLoss Status
|
|
||||||
10 10 11 10530 18 100 0 Open ;
|
|
||||||
11 11 12 5280 14 100 0 Open ;
|
|
||||||
12 12 13 5280 10 100 0 Open ;
|
|
||||||
21 21 22 5280 10 100 0 Open ;
|
|
||||||
22 22 23 5280 12 100 0 Open ;
|
|
||||||
31 31 32 5280 6 100 0 Open ;
|
|
||||||
110 2 12 200 18 100 0 Open ;
|
|
||||||
111 11 21 5280 10 100 0 Open ;
|
|
||||||
112 12 22 5280 12 100 0 Open ;
|
|
||||||
113 13 23 5280 8 100 0 Open ;
|
|
||||||
121 21 31 5280 8 100 0 Open ;
|
|
||||||
122 22 32 5280 6 100 0 Open ;
|
|
||||||
|
|
||||||
[PUMPS]
|
|
||||||
;ID Node1 Node2 Parameters
|
|
||||||
9 9 10 HEAD 1 ;
|
|
||||||
|
|
||||||
[VALVES]
|
|
||||||
;ID Node1 Node2 Diameter Type Setting MinorLoss
|
|
||||||
|
|
||||||
[TAGS]
|
|
||||||
|
|
||||||
[DEMANDS]
|
|
||||||
;Junction Demand Pattern Category
|
|
||||||
|
|
||||||
[STATUS]
|
|
||||||
;ID Status/Setting
|
|
||||||
|
|
||||||
[PATTERNS]
|
|
||||||
;ID Multipliers
|
|
||||||
;Demand Pattern
|
|
||||||
1 1.0 1.2 1.4 1.6 1.4 1.2
|
|
||||||
1 1.0 0.8 0.6 0.4 0.6 0.8
|
|
||||||
|
|
||||||
[CURVES]
|
|
||||||
;ID X-Value Y-Value
|
|
||||||
;PUMP: Pump Curve for Pump 9
|
|
||||||
1 1500 250
|
|
||||||
|
|
||||||
[CONTROLS]
|
|
||||||
LINK 9 OPEN IF NODE 2 BELOW 110
|
|
||||||
LINK 9 CLOSED IF NODE 2 ABOVE 140
|
|
||||||
|
|
||||||
|
|
||||||
[RULES]
|
|
||||||
|
|
||||||
[ENERGY]
|
|
||||||
Global Efficiency 75
|
|
||||||
Global Price 0.0
|
|
||||||
Demand Charge 0.0
|
|
||||||
|
|
||||||
[EMITTERS]
|
|
||||||
;Junction Coefficient
|
|
||||||
|
|
||||||
[QUALITY]
|
|
||||||
;Node InitQual
|
|
||||||
10 0.5
|
|
||||||
11 0.5
|
|
||||||
12 0.5
|
|
||||||
13 0.5
|
|
||||||
21 0.5
|
|
||||||
22 0.5
|
|
||||||
23 0.5
|
|
||||||
31 0.5
|
|
||||||
32 0.5
|
|
||||||
9 1.0
|
|
||||||
2 1.0
|
|
||||||
|
|
||||||
[SOURCES]
|
|
||||||
;Node Type Quality Pattern
|
|
||||||
|
|
||||||
[REACTIONS]
|
|
||||||
;Type Pipe/Tank Coefficient
|
|
||||||
|
|
||||||
|
|
||||||
[REACTIONS]
|
|
||||||
Order Bulk 1
|
|
||||||
Order Tank 1
|
|
||||||
Order Wall 1
|
|
||||||
Global Bulk -.5
|
|
||||||
Global Wall -1
|
|
||||||
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 2: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 Chlorine mg/L
|
|
||||||
Diffusivity 1.0
|
|
||||||
Tolerance 0.01
|
|
||||||
|
|
||||||
[COORDINATES]
|
|
||||||
;Node X-Coord Y-Coord
|
|
||||||
10 20.00 70.00
|
|
||||||
11 30.00 70.00
|
|
||||||
12 50.00 70.00
|
|
||||||
13 70.00 70.00
|
|
||||||
21 30.00 40.00
|
|
||||||
22 50.00 40.00
|
|
||||||
23 70.00 40.00
|
|
||||||
31 30.00 10.00
|
|
||||||
32 50.00 10.00
|
|
||||||
9 10.00 70.00
|
|
||||||
2 50.00 90.00
|
|
||||||
|
|
||||||
[VERTICES]
|
|
||||||
;Link X-Coord Y-Coord
|
|
||||||
|
|
||||||
[LABELS]
|
|
||||||
;X-Coord Y-Coord Label & Anchor Node
|
|
||||||
6.99 73.63 "Source"
|
|
||||||
13.48 68.13 "Pump"
|
|
||||||
43.85 91.21 "Tank"
|
|
||||||
|
|
||||||
[BACKDROP]
|
|
||||||
DIMENSIONS 7.00 6.00 73.00 94.00
|
|
||||||
UNITS None
|
|
||||||
FILE
|
|
||||||
OFFSET 0.00 0.00
|
|
||||||
|
|
||||||
[END]
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
Type=Exe
|
|
||||||
Form=frmMain.frm
|
|
||||||
Module=basShellSync; ShellSync.bas
|
|
||||||
Module=basNetRes; basNetRes.bas
|
|
||||||
IconForm="frmMain"
|
|
||||||
Startup="frmMain"
|
|
||||||
HelpFile=""
|
|
||||||
Title="Testing"
|
|
||||||
ExeName32="BinaryCompare.exe"
|
|
||||||
Command32=""
|
|
||||||
Name="BinaryCompare"
|
|
||||||
HelpContextID="0"
|
|
||||||
CompatibleMode="0"
|
|
||||||
MajorVer=1
|
|
||||||
MinorVer=0
|
|
||||||
RevisionVer=1
|
|
||||||
AutoIncrementVer=1
|
|
||||||
ServerSupportFiles=0
|
|
||||||
VersionComments="by Elad Salomons"
|
|
||||||
CompilationType=0
|
|
||||||
OptimizationType=0
|
|
||||||
FavorPentiumPro(tm)=0
|
|
||||||
CodeViewDebugInfo=0
|
|
||||||
NoAliasing=0
|
|
||||||
BoundsCheck=0
|
|
||||||
OverflowCheck=0
|
|
||||||
FlPointCheck=0
|
|
||||||
FDIVCheck=0
|
|
||||||
UnroundedFP=0
|
|
||||||
StartMode=0
|
|
||||||
Unattended=0
|
|
||||||
Retained=0
|
|
||||||
ThreadPerObject=0
|
|
||||||
MaxNumberOfThreads=1
|
|
||||||
DebugStartupOption=0
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
Attribute VB_Name = "basShellSync"
|
|
||||||
Option Explicit
|
|
||||||
|
|
||||||
Private Const INFINITE = &HFFFFFFFF
|
|
||||||
Private Const SYNCHRONIZE = &H100000
|
|
||||||
Private Const PROCESS_QUERY_INFORMATION = &H400&
|
|
||||||
|
|
||||||
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
|
|
||||||
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
|
|
||||||
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
|
|
||||||
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
|
|
||||||
Public Function ShellSync(ByVal PathName As String, ByVal WindowStyle As VbAppWinStyle) As Long
|
|
||||||
'-----------------------------------------------------------------------------------------------
|
|
||||||
'Shell and wait. Return exit code result, raise an
|
|
||||||
'exception on any error.
|
|
||||||
Dim lngPid As Long
|
|
||||||
Dim lngHandle As Long
|
|
||||||
Dim lngExitCode As Long
|
|
||||||
|
|
||||||
lngPid = Shell(PathName, WindowStyle)
|
|
||||||
If lngPid <> 0 Then
|
|
||||||
lngHandle = OpenProcess(SYNCHRONIZE Or PROCESS_QUERY_INFORMATION, 0, lngPid)
|
|
||||||
If lngHandle <> 0 Then
|
|
||||||
WaitForSingleObject lngHandle, INFINITE
|
|
||||||
If GetExitCodeProcess(lngHandle, lngExitCode) <> 0 Then
|
|
||||||
ShellSync = lngExitCode
|
|
||||||
CloseHandle lngHandle
|
|
||||||
Else
|
|
||||||
CloseHandle lngHandle
|
|
||||||
Err.Raise &H8004AA00, "ShellSync", "Failed to retrieve exit code, error " & CStr(Err.LastDllError)
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
Err.Raise &H8004AA01, "ShellSync", "Failed to open child process"
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
Err.Raise &H8004AA02, "ShellSync", "Failed to Shell child process"
|
|
||||||
End If
|
|
||||||
|
|
||||||
End Function
|
|
||||||
@@ -1,188 +0,0 @@
|
|||||||
Attribute VB_Name = "basNetRes"
|
|
||||||
Public Type typNetRes
|
|
||||||
nNodes As Long
|
|
||||||
nLinks As Long
|
|
||||||
|
|
||||||
NodesID() As String
|
|
||||||
LinksID() As String
|
|
||||||
|
|
||||||
NodesDemand() As Single
|
|
||||||
NodesHead() As Single
|
|
||||||
NodesPressure() As Single
|
|
||||||
NodesQuality() As Single
|
|
||||||
|
|
||||||
LinksFlow() As Single
|
|
||||||
LinksHeadloss() As Single
|
|
||||||
LinksQuality() As Single
|
|
||||||
LinksSetting() As Single
|
|
||||||
LinksStatus() As Single
|
|
||||||
LinksVelocity() As Single
|
|
||||||
|
|
||||||
End Type
|
|
||||||
Public Function ReadOutputFile(OutFile As String, NetRes As typNetRes)
|
|
||||||
'---------------------------------------------------------------------------------------
|
|
||||||
Dim i As Long, F As Long, r As Long, nRep As Long, j As Long
|
|
||||||
Dim tmpArr() As Single
|
|
||||||
Dim pos As Long, N As Long
|
|
||||||
Dim tmpLong As Long, tmpSingle As Single
|
|
||||||
Dim ReportingTimeStep As Long, ReportingStartTime As Long
|
|
||||||
Dim SimulationDuration As Long
|
|
||||||
Dim ProblemTitletLine As String * 80
|
|
||||||
Dim NumberOfNodes As Long
|
|
||||||
Dim NumberOfLinks As Long
|
|
||||||
Dim NumberOfReservoirsAndTanks As Long
|
|
||||||
Dim NumberOfPumps As Long
|
|
||||||
Dim NumberOfValves As Long
|
|
||||||
Dim WaterQualityOption As Long
|
|
||||||
Dim FlowUnitsOption As Long, PressureUnitsOption As Long
|
|
||||||
Dim NameOfFile As String * 260, tmpString32 As String * 32
|
|
||||||
Dim ii As Long
|
|
||||||
Dim WarningFlag As Long
|
|
||||||
|
|
||||||
With NetRes
|
|
||||||
pos = 1: N = 0
|
|
||||||
F = FreeFile
|
|
||||||
Open OutFile For Binary As #F
|
|
||||||
Get #F, pos, tmpLong: pos = pos + 4
|
|
||||||
Get #F, pos, tmpLong: pos = pos + 4
|
|
||||||
Get #F, pos, NumberOfNodes: pos = pos + 4
|
|
||||||
Get #F, pos, NumberOfReservoirsAndTanks: pos = pos + 4
|
|
||||||
Get #F, pos, NumberOfLinks: pos = pos + 4
|
|
||||||
Get #F, pos, NumberOfPumps: pos = pos + 4
|
|
||||||
Get #F, pos, NumberOfValves: pos = pos + 4
|
|
||||||
Get #F, pos, WaterQualityOption: pos = pos + 4
|
|
||||||
Get #F, pos, tmpLong: pos = pos + 4
|
|
||||||
Get #F, pos, FlowUnitsOption: pos = pos + 4
|
|
||||||
Get #F, pos, PressureUnitsOption: pos = pos + 4
|
|
||||||
Get #F, pos, tmpLong: pos = pos + 4
|
|
||||||
Get #F, pos, ReportingStartTime: pos = pos + 4
|
|
||||||
Get #F, pos, ReportingTimeStep: pos = pos + 4
|
|
||||||
Get #F, pos, SimulationDuration: pos = pos + 4
|
|
||||||
Get #F, pos, ProblemTitletLine: pos = pos + 80
|
|
||||||
Get #F, pos, ProblemTitletLine: pos = pos + 80
|
|
||||||
Get #F, pos, ProblemTitletLine: pos = pos + 80
|
|
||||||
Get #F, pos, NameOfFile: pos = pos + 260
|
|
||||||
Get #F, pos, NameOfFile: pos = pos + 260
|
|
||||||
Get #F, pos, tmpString32: pos = pos + 32
|
|
||||||
Get #F, pos, tmpString32: pos = pos + 32
|
|
||||||
.nNodes = NumberOfNodes
|
|
||||||
.nLinks = NumberOfLinks
|
|
||||||
ReDim .NodesID(.nNodes)
|
|
||||||
For j = 1 To NumberOfNodes
|
|
||||||
Get #F, pos, tmpString32: pos = pos + 32
|
|
||||||
i = InStr(1, tmpString32, Chr(0))
|
|
||||||
.NodesID(j) = Mid(tmpString32, 1, i - 1)
|
|
||||||
Next j
|
|
||||||
ReDim .LinksID(.nLinks)
|
|
||||||
For j = 1 To NumberOfLinks
|
|
||||||
Get #F, pos, tmpString32: pos = pos + 32
|
|
||||||
i = InStr(1, tmpString32, Chr(0))
|
|
||||||
.LinksID(j) = Mid(tmpString32, 1, i - 1)
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfLinks * 3 'Index of Start Node of Each Link + Index of End Node of Each Link + Type Code of Each Link
|
|
||||||
Get #F, pos, tmpLong: pos = pos + 4
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfReservoirsAndTanks 'Node Index of Each Tank
|
|
||||||
Get #F, pos, tmpLong: pos = pos + 4
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfReservoirsAndTanks 'Cross-Sectional Area of Each Tank
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfNodes 'Elevation of Each Node
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfLinks 'Length of Each Link
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfLinks 'Diameter of Each Link
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfPumps 'Energy Use Section
|
|
||||||
Get #F, pos, tmpLong: pos = pos + 4 'Pump Index in List of Links
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4 'Pump Utilization (%)
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average Efficiency (%)
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average Kwatts/Million Gallons (/Meter3)
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average Kwatts
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4 'Peak Kwatts
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average Cost Per Day
|
|
||||||
Next j
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4 'Overall Peak Energy Usage
|
|
||||||
|
|
||||||
'reporting
|
|
||||||
nRep = SimulationDuration / ReportingTimeStep + 1
|
|
||||||
ReDim tmpArr(nRep)
|
|
||||||
ReDim .NodesDemand(.nNodes, nRep)
|
|
||||||
ReDim .NodesHead(.nNodes, nRep)
|
|
||||||
ReDim .NodesPressure(.nNodes, nRep)
|
|
||||||
ReDim .NodesQuality(.nNodes, nRep)
|
|
||||||
|
|
||||||
ReDim .LinksFlow(.nLinks, nRep)
|
|
||||||
ReDim .LinksHeadloss(.nLinks, nRep)
|
|
||||||
ReDim .LinksQuality(.nLinks, nRep)
|
|
||||||
ReDim .LinksSetting(.nLinks, nRep)
|
|
||||||
ReDim .LinksStatus(.nLinks, nRep)
|
|
||||||
ReDim .LinksVelocity(.nLinks, nRep)
|
|
||||||
|
|
||||||
For r = 1 To nRep
|
|
||||||
For j = 1 To NumberOfNodes 'Demand at Each Node
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
.NodesDemand(j, r) = tmpSingle
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfNodes 'Hydraulic Head at Each Node
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
.NodesHead(j, r) = tmpSingle
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfNodes 'Pressure at Each Node
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
.NodesPressure(j, r) = tmpSingle
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfNodes 'Water Quality at Each Node
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
.NodesPressure(j, r) = tmpSingle
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfLinks 'Flow in Each Link
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
.LinksFlow(j, r) = tmpSingle
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfLinks 'Velocity in Each Link
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
.LinksVelocity(j, r) = tmpSingle
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfLinks 'Headloss per 1000 Units of Length for Each Link
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
.LinksHeadloss(j, r) = tmpSingle
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfLinks 'Average Water Quality in Each Link
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
.LinksQuality(j, r) = tmpSingle
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfLinks 'Status Code for Each Link
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
.LinksStatus(j, r) = tmpSingle
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfLinks 'Setting for Each Link
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
.LinksSetting(j, r) = tmpSingle
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfLinks 'Reaction Rate for Each Link (mass/L/day)
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
Next j
|
|
||||||
For j = 1 To NumberOfLinks 'Friction Factor for Each Link
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4
|
|
||||||
Next j
|
|
||||||
Next r
|
|
||||||
|
|
||||||
'Epilog Section
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average bulk reaction rate (mass/hr)
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average wall reaction rate (mass/hr)
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average tank reaction rate (mass/hr)
|
|
||||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average source inflow rate (mass/hr)
|
|
||||||
Get #F, pos, tmpLong: pos = pos + 4 'Number of Reporting Periods
|
|
||||||
Get #F, pos, WarningFlag: pos = pos + 4 'Warning Flag
|
|
||||||
Get #F, pos, tmpLong: pos = pos + 4 'Magic Number ( = 516114521)
|
|
||||||
|
|
||||||
Close #F
|
|
||||||
End With
|
|
||||||
|
|
||||||
End Function
|
|
||||||
|
|
||||||
@@ -1,179 +0,0 @@
|
|||||||
VERSION 5.00
|
|
||||||
Begin VB.Form frmMain
|
|
||||||
Caption = "Form1"
|
|
||||||
ClientHeight = 5304
|
|
||||||
ClientLeft = 48
|
|
||||||
ClientTop = 396
|
|
||||||
ClientWidth = 9648
|
|
||||||
LinkTopic = "Form1"
|
|
||||||
ScaleHeight = 5304
|
|
||||||
ScaleWidth = 9648
|
|
||||||
StartUpPosition = 3 'Windows Default
|
|
||||||
Begin VB.ListBox List1
|
|
||||||
Height = 4272
|
|
||||||
Left = 1680
|
|
||||||
TabIndex = 1
|
|
||||||
Top = 360
|
|
||||||
Width = 7092
|
|
||||||
End
|
|
||||||
Begin VB.CommandButton cmdRun
|
|
||||||
Caption = "RUN"
|
|
||||||
Height = 372
|
|
||||||
Left = 360
|
|
||||||
TabIndex = 0
|
|
||||||
Top = 360
|
|
||||||
Width = 972
|
|
||||||
End
|
|
||||||
End
|
|
||||||
Attribute VB_Name = "frmMain"
|
|
||||||
Attribute VB_GlobalNameSpace = False
|
|
||||||
Attribute VB_Creatable = False
|
|
||||||
Attribute VB_PredeclaredId = True
|
|
||||||
Attribute VB_Exposed = False
|
|
||||||
Option Explicit
|
|
||||||
|
|
||||||
Dim NetName As String
|
|
||||||
|
|
||||||
Dim net1 As typNetRes
|
|
||||||
Dim net2 As typNetRes
|
|
||||||
|
|
||||||
Private Sub CompareVersions(NetName As String)
|
|
||||||
'-----------------------------------------------
|
|
||||||
Dim i As Long
|
|
||||||
Dim v1 As Single, v2 As Single
|
|
||||||
Dim T As Long
|
|
||||||
Dim L As Long
|
|
||||||
Dim maxDiff As Single
|
|
||||||
Dim diff As Single
|
|
||||||
Dim nRep As Long
|
|
||||||
Dim F As Long
|
|
||||||
|
|
||||||
i = ShellSync("epanet2d.exe nets\" & NetName & ".inp nets\" & NetName & "_1.rep nets\" & NetName & "_1.out", vbNormalFocus)
|
|
||||||
i = ReadOutputFile("nets\" & NetName & "_1.out", net1)
|
|
||||||
|
|
||||||
i = ShellSync("epanet2.exe nets\" & NetName & ".inp nets\" & NetName & "_2.rep nets\" & NetName & "_2.out", vbNormalFocus)
|
|
||||||
i = ReadOutputFile("nets\" & NetName & "_2.out", net2)
|
|
||||||
|
|
||||||
F = FreeFile
|
|
||||||
Open App.Path & "\Nets\" & NetName & ".dif" For Output As #F
|
|
||||||
|
|
||||||
nRep = UBound(net1.LinksFlow, 2)
|
|
||||||
|
|
||||||
maxDiff = 100: diff = 101
|
|
||||||
For L = 1 To net1.nLinks
|
|
||||||
For T = 1 To nRep
|
|
||||||
v1 = net1.LinksFlow(L, T)
|
|
||||||
v2 = net2.LinksFlow(L, T)
|
|
||||||
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10))
|
|
||||||
If diff < maxDiff Then maxDiff = diff
|
|
||||||
Next T
|
|
||||||
Next L
|
|
||||||
Print #F, "Links Flow max diff = " & Format(maxDiff, "0")
|
|
||||||
|
|
||||||
maxDiff = 100: diff = 101
|
|
||||||
For L = 1 To net1.nLinks
|
|
||||||
For T = 1 To nRep
|
|
||||||
v1 = net1.LinksHeadloss(L, T)
|
|
||||||
v2 = net2.LinksHeadloss(L, T)
|
|
||||||
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10))
|
|
||||||
If diff < maxDiff Then maxDiff = diff
|
|
||||||
Next T
|
|
||||||
Next L
|
|
||||||
Print #F, "Links Headloss max diff = " & Format(maxDiff, "0")
|
|
||||||
|
|
||||||
maxDiff = 100: diff = 101
|
|
||||||
For L = 1 To net1.nLinks
|
|
||||||
For T = 1 To nRep
|
|
||||||
v1 = net1.LinksQuality(L, T)
|
|
||||||
v2 = net2.LinksQuality(L, T)
|
|
||||||
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10))
|
|
||||||
If diff < maxDiff Then maxDiff = diff
|
|
||||||
Next T
|
|
||||||
Next L
|
|
||||||
Print #F, "Links Quality max diff = " & Format(maxDiff, "0")
|
|
||||||
|
|
||||||
maxDiff = 100: diff = 101
|
|
||||||
For L = 1 To net1.nLinks
|
|
||||||
For T = 1 To nRep
|
|
||||||
v1 = net1.LinksVelocity(L, T)
|
|
||||||
v2 = net2.LinksVelocity(L, T)
|
|
||||||
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10))
|
|
||||||
If diff < maxDiff Then maxDiff = diff
|
|
||||||
Next T
|
|
||||||
Next L
|
|
||||||
Print #F, "Links Velocity max diff = " & Format(maxDiff, "0")
|
|
||||||
|
|
||||||
maxDiff = 100: diff = 101
|
|
||||||
For L = 1 To net1.nNodes
|
|
||||||
For T = 1 To nRep
|
|
||||||
v1 = net1.NodesDemand(L, T)
|
|
||||||
v2 = net2.NodesDemand(L, T)
|
|
||||||
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10))
|
|
||||||
If diff < maxDiff Then maxDiff = diff
|
|
||||||
Next T
|
|
||||||
Next L
|
|
||||||
Print #F, "Nodes Demand max diff = " & Format(maxDiff, "0")
|
|
||||||
|
|
||||||
maxDiff = 100: diff = 101
|
|
||||||
For L = 1 To net1.nNodes
|
|
||||||
For T = 1 To nRep
|
|
||||||
v1 = net1.NodesHead(L, T)
|
|
||||||
v2 = net2.NodesHead(L, T)
|
|
||||||
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10))
|
|
||||||
If diff < maxDiff Then maxDiff = diff
|
|
||||||
Next T
|
|
||||||
Next L
|
|
||||||
Print #F, "Nodes Head max diff = " & Format(maxDiff, "0")
|
|
||||||
|
|
||||||
maxDiff = 100: diff = 101
|
|
||||||
For L = 1 To net1.nNodes
|
|
||||||
For T = 1 To nRep
|
|
||||||
v1 = net1.NodesPressure(L, T)
|
|
||||||
v2 = net2.NodesPressure(L, T)
|
|
||||||
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10))
|
|
||||||
If diff < maxDiff Then maxDiff = diff
|
|
||||||
Next T
|
|
||||||
Next L
|
|
||||||
Print #F, "Nodes Pressure max diff = " & Format(maxDiff, "0")
|
|
||||||
|
|
||||||
maxDiff = 100: diff = 101
|
|
||||||
For L = 1 To net1.nNodes
|
|
||||||
For T = 1 To nRep
|
|
||||||
v1 = net1.NodesQuality(L, T)
|
|
||||||
v2 = net2.NodesQuality(L, T)
|
|
||||||
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2))) / Log(10)
|
|
||||||
If diff < maxDiff Then maxDiff = diff
|
|
||||||
Next T
|
|
||||||
Next L
|
|
||||||
Print #F, "Nodes Quality max diff = " & Format(maxDiff, "0")
|
|
||||||
|
|
||||||
Close #F
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Private Sub cmdRun_Click()
|
|
||||||
'----------------------------------------------
|
|
||||||
Dim fName As String
|
|
||||||
|
|
||||||
fName = Dir(App.Path & "\Nets\*.inp")
|
|
||||||
If fName <> "" Then
|
|
||||||
Do
|
|
||||||
List1.AddItem fName: DoEvents
|
|
||||||
fName = StrReverse(fName)
|
|
||||||
fName = Mid(fName, 5)
|
|
||||||
fName = StrReverse(fName)
|
|
||||||
Call CompareVersions(fName)
|
|
||||||
fName = Dir
|
|
||||||
Loop Until fName = ""
|
|
||||||
End If
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
|
|
||||||
Private Sub Form_Load()
|
|
||||||
|
|
||||||
List1.Clear
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
Links Flow max diff = 3
|
|
||||||
Links Headloss max diff = 4
|
|
||||||
Links Quality max diff = 3
|
|
||||||
Links Velocity max diff = 6
|
|
||||||
Nodes Demand max diff = 3
|
|
||||||
Nodes Head max diff = 5
|
|
||||||
Nodes Pressure max diff = 3
|
|
||||||
Nodes Quality max diff = 100
|
|
||||||
@@ -1,311 +0,0 @@
|
|||||||
[TITLE]
|
|
||||||
EPANET Example Network 2
|
|
||||||
Example of modeling a 55-hour fluoride tracer study.
|
|
||||||
Measured fluoride data is contained in the file Net2-FL.dat
|
|
||||||
and should be registered with the project to produce a
|
|
||||||
Calibration Report (select Calibration Data from the Project
|
|
||||||
menu).
|
|
||||||
|
|
||||||
[JUNCTIONS]
|
|
||||||
;ID Elev Demand Pattern
|
|
||||||
1 50 -694.4 2 ;
|
|
||||||
2 100 8 ;
|
|
||||||
3 60 14 ;
|
|
||||||
4 60 8 ;
|
|
||||||
5 100 8 ;
|
|
||||||
6 125 5 ;
|
|
||||||
7 160 4 ;
|
|
||||||
8 110 9 ;
|
|
||||||
9 180 14 ;
|
|
||||||
10 130 5 ;
|
|
||||||
11 185 34.78 ;
|
|
||||||
12 2100 16 ;
|
|
||||||
13 210 2 ;
|
|
||||||
14 200 2 ;
|
|
||||||
15 190 2 ;
|
|
||||||
16 150 20 ;
|
|
||||||
17 180 20 ;
|
|
||||||
18 100 20 ;
|
|
||||||
19 150 5 ;
|
|
||||||
20 170 19 ;
|
|
||||||
21 150 16 ;
|
|
||||||
22 200 10 ;
|
|
||||||
23 230 8 ;
|
|
||||||
24 190 11 ;
|
|
||||||
25 230 6 ;
|
|
||||||
27 130 8 ;
|
|
||||||
28 110 0 ;
|
|
||||||
29 110 7 ;
|
|
||||||
30 130 3 ;
|
|
||||||
31 190 17 ;
|
|
||||||
32 110 17 ;
|
|
||||||
33 180 1.5 ;
|
|
||||||
34 190 1.5 ;
|
|
||||||
35 110 0 ;
|
|
||||||
36 110 1 ;
|
|
||||||
|
|
||||||
[RESERVOIRS]
|
|
||||||
;ID Head Pattern
|
|
||||||
|
|
||||||
[TANKS]
|
|
||||||
;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve
|
|
||||||
26 235 56.7 50 70 50 0 ;
|
|
||||||
|
|
||||||
[PIPES]
|
|
||||||
;ID Node1 Node2 Length Diameter Roughness MinorLoss Status
|
|
||||||
1 1 2 2400 12 100 0 Open ;
|
|
||||||
2 2 5 800 12 100 0 Open ;
|
|
||||||
3 2 3 1300 8 100 0 Open ;
|
|
||||||
4 3 4 1200 8 100 0 Open ;
|
|
||||||
5 4 5 1000 12 100 0 Open ;
|
|
||||||
6 5 6 1200 12 100 0 Open ;
|
|
||||||
7 6 7 2700 12 100 0 Open ;
|
|
||||||
8 7 8 1200 12 140 0 Open ;
|
|
||||||
9 7 9 400 12 100 0 Open ;
|
|
||||||
10 8 10 1000 8 140 0 Open ;
|
|
||||||
11 9 11 700 12 100 0 Open ;
|
|
||||||
12 11 12 1900 12 100 0 Open ;
|
|
||||||
13 12 13 600 12 100 0 Open ;
|
|
||||||
14 13 14 400 12 100 0 Open ;
|
|
||||||
15 14 15 300 12 100 0 Open ;
|
|
||||||
16 13 16 1500 8 100 0 Open ;
|
|
||||||
17 15 17 1500 8 100 0 Open ;
|
|
||||||
18 16 17 600 8 100 0 Open ;
|
|
||||||
19 17 18 700 12 100 0 Open ;
|
|
||||||
20 18 32 350 12 100 0 Open ;
|
|
||||||
21 16 19 1400 8 100 0 Open ;
|
|
||||||
22 14 20 1100 12 100 0 Open ;
|
|
||||||
23 20 21 1300 8 100 0 Open ;
|
|
||||||
24 21 22 1300 8 100 0 Open ;
|
|
||||||
25 20 22 1300 8 100 0 Open ;
|
|
||||||
26 24 23 600 12 100 0 Open ;
|
|
||||||
27 15 24 250 12 100 0 Open ;
|
|
||||||
28 23 25 300 12 100 0 Open ;
|
|
||||||
29 25 26 200 12 100 0 Open ;
|
|
||||||
30 25 31 600 12 100 0 Open ;
|
|
||||||
31 31 27 400 8 100 0 Open ;
|
|
||||||
32 27 29 400 8 100 0 Open ;
|
|
||||||
34 29 28 700 8 100 0 Open ;
|
|
||||||
35 22 33 1000 8 100 0 Open ;
|
|
||||||
36 33 34 400 8 100 0 Open ;
|
|
||||||
37 32 19 500 8 100 0 Open ;
|
|
||||||
38 29 35 500 8 100 0 Open ;
|
|
||||||
39 35 30 1000 8 100 0 Open ;
|
|
||||||
40 28 35 700 8 100 0 Open ;
|
|
||||||
41 28 36 300 8 100 0 Open ;
|
|
||||||
|
|
||||||
[PUMPS]
|
|
||||||
;ID Node1 Node2 Parameters
|
|
||||||
|
|
||||||
[VALVES]
|
|
||||||
;ID Node1 Node2 Diameter Type Setting MinorLoss
|
|
||||||
|
|
||||||
[TAGS]
|
|
||||||
|
|
||||||
[DEMANDS]
|
|
||||||
;Junction Demand Pattern Category
|
|
||||||
|
|
||||||
[STATUS]
|
|
||||||
;ID Status/Setting
|
|
||||||
|
|
||||||
[PATTERNS]
|
|
||||||
;ID Multipliers
|
|
||||||
;Demand Pattern
|
|
||||||
1 1.26 1.04 .97 .97 .89 1.19
|
|
||||||
1 1.28 .67 .67 1.34 2.46 .97
|
|
||||||
1 .92 .68 1.43 .61 .31 .78
|
|
||||||
1 .37 .67 1.26 1.56 1.19 1.26
|
|
||||||
1 .6 1.1 1.03 .73 .88 1.06
|
|
||||||
1 .99 1.72 1.12 1.34 1.12 .97
|
|
||||||
1 1.04 1.15 .91 .61 .68 .46
|
|
||||||
1 .51 .74 1.12 1.34 1.26 .97
|
|
||||||
1 .82 1.37 1.03 .81 .88 .81
|
|
||||||
1 .81
|
|
||||||
;Pump Station Outflow Pattern
|
|
||||||
2 .96 .96 .96 .96 .96 .96
|
|
||||||
2 .62 0 0 0 0 0
|
|
||||||
2 .8 1 1 1 1 .15
|
|
||||||
2 0 0 0 0 0 0
|
|
||||||
2 .55 .92 .92 .92 .92 .9
|
|
||||||
2 .9 .45 0 0 0 0
|
|
||||||
2 0 .7 1 1 1 1
|
|
||||||
2 .2 0 0 0 0 0
|
|
||||||
2 0 .74 .92 .92 .92 .92
|
|
||||||
2 .92
|
|
||||||
;Pump Station Fluoride Pattern
|
|
||||||
3 .98 1.02 1.05 .99 .64 .46
|
|
||||||
3 .35 .35 .35 .35 .35 .35
|
|
||||||
3 .17 .17 .13 .13 .13 .15
|
|
||||||
3 .15 .15 .15 .15 .15 .15
|
|
||||||
3 .15 .12 .1 .08 .11 .09
|
|
||||||
3 .09 .08 .08 .08 .08 .08
|
|
||||||
3 .08 .09 .07 .07 .09 .09
|
|
||||||
3 .09 .09 .09 .09 .09 .09
|
|
||||||
3 .09 .08 .35 .72 .82 .92
|
|
||||||
3 1
|
|
||||||
|
|
||||||
[CURVES]
|
|
||||||
;ID X-Value Y-Value
|
|
||||||
|
|
||||||
[CONTROLS]
|
|
||||||
|
|
||||||
|
|
||||||
[RULES]
|
|
||||||
|
|
||||||
|
|
||||||
[ENERGY]
|
|
||||||
Global Efficiency 75
|
|
||||||
Global Price 0.0
|
|
||||||
Demand Charge 0.0
|
|
||||||
|
|
||||||
[EMITTERS]
|
|
||||||
;Junction Coefficient
|
|
||||||
|
|
||||||
[QUALITY]
|
|
||||||
;Node InitQual
|
|
||||||
1 1.0
|
|
||||||
2 1.0
|
|
||||||
3 1.0
|
|
||||||
4 1.0
|
|
||||||
5 1.0
|
|
||||||
6 1.0
|
|
||||||
7 1.0
|
|
||||||
8 1.0
|
|
||||||
9 1.0
|
|
||||||
10 1.0
|
|
||||||
11 1.0
|
|
||||||
12 1.0
|
|
||||||
13 1.0
|
|
||||||
14 1.0
|
|
||||||
15 1.0
|
|
||||||
16 1.0
|
|
||||||
17 1.0
|
|
||||||
18 1.0
|
|
||||||
19 1.0
|
|
||||||
20 1.0
|
|
||||||
21 1.0
|
|
||||||
22 1.0
|
|
||||||
23 1.0
|
|
||||||
24 1.0
|
|
||||||
25 1.0
|
|
||||||
27 1.0
|
|
||||||
28 1.0
|
|
||||||
29 1.0
|
|
||||||
30 1.0
|
|
||||||
31 1.0
|
|
||||||
32 1.0
|
|
||||||
33 1.0
|
|
||||||
34 1.0
|
|
||||||
35 1.0
|
|
||||||
36 1.0
|
|
||||||
26 1.0
|
|
||||||
|
|
||||||
[SOURCES]
|
|
||||||
;Node Type Quality Pattern
|
|
||||||
1 CONCEN 1.0 3
|
|
||||||
|
|
||||||
[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 55: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 8 am
|
|
||||||
Statistic NONE
|
|
||||||
|
|
||||||
[REPORT]
|
|
||||||
Status Full
|
|
||||||
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 Fluoride mg/L
|
|
||||||
Diffusivity 1.0
|
|
||||||
Tolerance 0.01
|
|
||||||
|
|
||||||
[COORDINATES]
|
|
||||||
;Node X-Coord Y-Coord
|
|
||||||
1 21.00 4.00
|
|
||||||
2 19.00 20.00
|
|
||||||
3 11.00 21.00
|
|
||||||
4 14.00 28.00
|
|
||||||
5 19.00 25.00
|
|
||||||
6 28.00 23.00
|
|
||||||
7 36.00 39.00
|
|
||||||
8 38.00 30.00
|
|
||||||
9 36.00 42.00
|
|
||||||
10 37.00 23.00
|
|
||||||
11 37.00 49.00
|
|
||||||
12 39.00 60.00
|
|
||||||
13 38.00 64.00
|
|
||||||
14 38.00 66.00
|
|
||||||
15 37.00 69.00
|
|
||||||
16 27.00 65.00
|
|
||||||
17 27.00 69.00
|
|
||||||
18 23.00 68.00
|
|
||||||
19 21.00 59.00
|
|
||||||
20 45.00 68.00
|
|
||||||
21 51.00 62.00
|
|
||||||
22 54.00 69.00
|
|
||||||
23 35.00 74.00
|
|
||||||
24 37.00 71.00
|
|
||||||
25 35.00 76.00
|
|
||||||
27 39.00 87.00
|
|
||||||
28 49.00 85.00
|
|
||||||
29 42.00 86.00
|
|
||||||
30 47.00 80.00
|
|
||||||
31 37.00 80.00
|
|
||||||
32 23.00 64.00
|
|
||||||
33 56.00 73.00
|
|
||||||
34 56.00 77.00
|
|
||||||
35 43.00 81.00
|
|
||||||
36 53.00 87.00
|
|
||||||
26 33.00 76.00
|
|
||||||
|
|
||||||
[VERTICES]
|
|
||||||
;Link X-Coord Y-Coord
|
|
||||||
|
|
||||||
[LABELS]
|
|
||||||
;X-Coord Y-Coord Label & Anchor Node
|
|
||||||
24.00 7.00 "Pump"
|
|
||||||
24.00 4.00 "Station"
|
|
||||||
26.76 77.42 "Tank"
|
|
||||||
|
|
||||||
[BACKDROP]
|
|
||||||
DIMENSIONS 8.75 -0.15 58.25 91.15
|
|
||||||
UNITS None
|
|
||||||
FILE
|
|
||||||
OFFSET 0.00 0.00
|
|
||||||
|
|
||||||
[END]
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
The program will run all INP files in the Nets sub-directory.
|
|
||||||
A report, binary output files and a .dif file will be created for each INP file.
|
|
||||||
The report is the min(—log10(abs(X1-X2))) where X1 and X2 are the results arrays obtains from the two binary files.
|
|
||||||
|
|
||||||
Files needed in the code directory:
|
|
||||||
epanet2d.exe is the official EPANET standalone version.
|
|
||||||
epanet2.exe is the current development version (the one being tested).
|
|
||||||
|
|
||||||
How to use: run the program and click the RUN button.
|
|
||||||
|
|
||||||
By Elad Salomons
|
|
||||||
email: selad@optiwater.com
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
#! /bin/bash
|
|
||||||
test_networks()
|
|
||||||
{
|
|
||||||
returnValue=0
|
|
||||||
for d in network_tests/*/ ; do
|
|
||||||
for netfile in `ls $d*.inp`; do
|
|
||||||
officialBinFile=${netfile%.*}.enb
|
|
||||||
candidateBinFile=${netfile%.*}-candidate.enb
|
|
||||||
echo "testing $netfile with known good binary output $officialBinFile"
|
|
||||||
if ../build/CMake/buildproducts/bin/runepanet $netfile ${netfile%.*}-candidate.rpt $candidateBinFile
|
|
||||||
then
|
|
||||||
echo "epanet run for $netfile SUCCESS"
|
|
||||||
else
|
|
||||||
echo "epanet run for $netfile FAILED"
|
|
||||||
returnValue=1
|
|
||||||
fi
|
|
||||||
if python ENBinaryOutDiff.py $officialBinFile $candidateBinFile
|
|
||||||
then
|
|
||||||
echo "binary output for $netfile PASSED"
|
|
||||||
else
|
|
||||||
echo "binary output for $netfile FAILED"
|
|
||||||
returnValue=1
|
|
||||||
fi
|
|
||||||
echo "+++++"
|
|
||||||
done
|
|
||||||
done
|
|
||||||
return $returnValue
|
|
||||||
}
|
|
||||||
|
|
||||||
cp ../build/CMake/buildproducts/bin/libENBinaryOut.* ./libENBinaryOut.so
|
|
||||||
cp ../tools/outputapi/*.py ./
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
test_networks
|
|
||||||
Reference in New Issue
Block a user