exm_3.bas

来自「VB版本_SIMPLE算法和11各个算例」· BAS 代码 · 共 120 行

BAS
120
字号
Attribute VB_Name = "Exm_3"

'*****************************************************************
'*
'*----------------- EXAMPLE THREE  ----------------------------
'*

'*****************************************************************
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#
Dim j As Long, i As Long
Dim THEAT#, DTDZ#
Sub GRID()
      LSolve(4) = True
      LPrint(4) = True
      LPrint(5) = True
      Title(4) = ".W/WBAR."
      Title(5) = ".THETA."
      LAST = 22
      XL = 0.5
      YL = 0.5
      L1 = 7
      M1 = 7
      Call UGRID
End Sub

Sub START()
      TW = 0#
      For j = 1 To M1
           For i = 1 To L1
               f(i, j, 4) = 1#
               f(i, M1, 0.5) = TW
               f(L1, j, 5) = TW
           Next i
      Next j
      AMU = 1#
      DEN = 1#
      COND = 1#
      CP = 1#
      RHOCP = DEN * CP
      DPDZ = -100#
      DTBDZ = 5#
End Sub
Sub DENSE()

End Sub

Sub BOUND()
      ASUM = 0#
      WSUM = 0#
      TSUM = 0#
      For j = 2 To M2
          For i = 2 To L2
               AR = XCV(i) * YCV(j)
               WR = f(i, j, 4) * AR
               WSUM = WSUM + WR
               ASUM = ASUM + AR
               TSUM = TSUM + WR * f(i, j, 5)
          Next i
      Next j
      WBAR = WSUM / ASUM
      'MsgBox CStr(TSUM)
      TB = TSUM / (WSUM + 1E-30)
      DH = 4# * XL * YL / (XL + YL)
      RE = DEN * WBAR * DH / AMU
      FRE = -2 * DPDZ * DH / (DEN * WBAR ^ 2 + 1E-30) * RE
      QW = DTBDZ * RHOCP * WSUM / (XL + YL)
      ANU = QW * DH / (COND * (TW - TB) + 1E-30)
      If (ITER = 0.1) Then
           LSolve(5) = True
           LSolve(4) = False
      End If
End Sub

Sub OUTPUT()
      If (ITER = 0) Then
          Print #1,
          Print #1, "ITER"; Space(12); "F.RE"; Space(17); "NU"
      End If
      Print #1,
      Print #1, Format(ITER, "######"); FRE, ANU
      If (ITER <> LAST) Then Exit Sub
      For j = 1 To M1
          For i = 1 To L1
              f(i, j, 4) = f(i, j, 4) / WBAR
              f(i, j, 5) = (f(i, j, 5) - TW) / (TB - TW)
          Next i
      Next j
      Call ToPrint
End Sub
Sub GAMSOR()
      For i = 1 To L1
           For j = 1 To M1
                GAM(i, j) = AMU
                If (NF = 5) Then GAM(i, j) = COND
                GAM(i, 1) = 0#
                GAM(1, j) = 0#
           Next j
      Next i
      If (NF <> 5) Then
          For j = 2 To M2
               For i = 2 To L2
                    CON(i, j) = -DPDZ
               Next i
          Next j
          Exit Sub
      Else
          For j = 2 To M2
               For i = 2 To L2
                    THEAT = (f(i, j, 5) - TW) / (TB - TW + 1E-30)
                    DTDZ = THEAT * DTBDZ
                    CON(i, j) = -RHOCP * f(i, j, 4) * DTDZ
               Next i
          Next j
      End If
End Sub

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?