exm_6.bas
来自「VB版本_SIMPLE算法和11各个算例」· BAS 代码 · 共 111 行
BAS
111 行
Attribute VB_Name = "Exm_6"
Option Explicit
Public AMU As Double
Public DEN As Double, WBAR As Double, COND As Double, CP As Double, RHOCP As Double
Public DPDZ As Double, DTBDZ As Double
Public ASUM#, TSUM#, WSUM#, TW#, AR#, WR#, TB#, DH#, RE#, FRE#, QW#, ANU#, RHOT#
Dim j As Long, i As Long
Dim THEAT#, DTDZ#, PI#, WP#, TBULK#, HTP#, HTC#, TIN#, VOUT#, VIN#, PR#, AMUP#, TREF#, RHOREF#
'*****************************************************************
'*
'*----------------- EXAMPLE SIX -----------------------------
'*
'*****************************************************************
Sub GRID()
LAST = 60
For i = 1 To 4
LSolve(i) = True
LPrint(i) = True
Next
LPrint(11) = True
LPrint(12) = True
Title(1) = ".VEL U."
Title(2) = ".VEL V."
Title(3) = ".STR FN."
Title(4) = ". TEMP ."
Title(11) = "PRESSURE"
Title(12) = "DENSITY"
RELAX(1) = 0.5
RELAX(2) = 0.5
RELAX(11) = 0.8
XL = 0.5
YL = 2#
L1 = 7
M1 = 12
Call UGRID
End Sub
Sub START()
TIN = 500
TW = 300#
VIN = 100#
VOUT = VIN * XCV(L2) / X(L1) * TW / TIN
For j = 1 To M1
For i = 1 To L1
F(i, j, 1) = 0
F(i, j, 2) = VOUT
F(i, 2, 2) = 0
F(1, j, 2) = 0#
F(i, j, 4) = TW
Next
Next
F(L2, 2, 2) = VIN
F(L2, 1, 4) = TIN
PR = 0.7
AMU = 1#
AMUP = AMU / PR
TREF = 300#
RHOREF = 1#
RHOT = RHOREF * TREF
End Sub
Sub DENSE()
For j = 1 To M1
For i = 1 To L1
RHO(i, j) = RHOT / F(i, j, 4)
Next
Next
End Sub
Sub BOUND()
Dim FLOWIN#, FL#, FACTOR#
If (ITER = 0) Then
FLOWIN = RHO(L2, 1) * F(L2, 2, 2) * XCV(L2)
End If
FL = 0#
For i = 2 To L2
FL = FL + RHO(i, M1) * F(i, M2, 2) * XCV(i)
Next
FACTOR = FLOWIN / FL
For i = 2 To L2
F(i, M1, 2) = F(i, M2, 2) * FACTOR
F(i, M1, 4) = F(i, M2, 4)
Next i
End Sub
Sub OUTPUT()
If (ITER = 0) Then
'WRITE(8,401)
'401 FORMAT(1X,' ITER',7X,'SMAX',11X,'SSUM',10X,'V(4,7)',
' & 9X,'T(4,7)')
Print #1,
Print #1, " ITER"; Space(7); "SMAX"; Space(11); "SSUM"; Space(10); "V(4,7)"; Space(10); "T(4,7)"
End If
'400 WRITE(8,403) ITER,SMAX,SSUM,V(4,7),T(4,7)
'403 FORMAT(1X,I6,1P4E15.3)
Print #1,
Print #1, ITER; Space(6); Format(SMAX, "#.000E+00"); Space(6); _
Format(SSUM, "#.000E+00"); Space(6); Format(F(4, 7, 2), "#.000E+00"); _
Space(6); Format(F(4, 7, 4), "#.000E+00")
If (ITER = LAST) Then Call ToPrint
End Sub
Sub GAMSOR()
For j = 1 To M1
For i = 1 To L1
GAM(i, j) = AMU
If (NF = 4) Then GAM(i, j) = AMUP
If (NF <> 1) Then GAM(L1, j) = 0#
GAM(i, M1) = 0#
Next i
Next j
End Sub
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?