180 lines
4.8 KiB
Plaintext
180 lines
4.8 KiB
Plaintext
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
|
|
|
|
|