⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exm_7.bas

📁 VB版本_SIMPLE算法和11各个算例
💻 BAS
字号:
Attribute VB_Name = "Exm_7"

'*****************************************************************
'*
'*----------------- EXAMPLE SEVEN -----------------------------
'*
'*****************************************************************
Option Explicit
Dim GBR#, DPDZ As Double
Dim TM As Double
Dim i%, j As Integer, PR#, AMU#, AMUP#, FRE#, WBAR#

      Sub GRID()
         For i = 1 To 4
              LSolve(i) = True
              LPrint(i) = True
         Next i
         LPrint(5) = True
         LPrint(11) = True
         Title(1) = ".VEL  U."
         Title(2) = ".VEL  V."
         Title(3) = ".STR FN."
         Title(4) = ". TEMP ."
         Title(5) = ".W/WBAR."
         Title(11) = "PRESSURE"
         RELAX(1) = 0.5
         RELAX(2) = 0.5
         RELAX(11) = 0.8
         LAST = 25
         XL = 1#
         YL = 1#
         L1 = 7
         M1 = 7
         Call UGRID
      End Sub
      Sub START()
         
         GBR = 10000#
         DPDZ = -3000#
         For j = 1 To M1
            For i = 1 To L1
               f(i, j, 1) = 0#
               f(i, j, 2) = 0#
               f(i, j, 4) = 0#
               f(L1, j, 4) = 1#
               f(i, j, 5) = 100#
               If (i = 1 Or i = L1) Then f(i, j, 5) = 0#
               If (j = 1 Or j = M1) Then f(i, j, 5) = 0#
            Next i
        Next j
        PR = 0.7
        AMU = 1#
        AMUP = AMU / PR
      End Sub
      Sub DENSE()
      End Sub
Sub BOUND()
      FRE = 0#
      
      If ITER < 20 Then
           Exit Sub
      End If
      
      If Not LSolve(5) Then
           For NF = 1 To 4
                LSolve(NF) = False
           Next NF
           LSolve(5) = True
      End If
      WBAR = 0#
      For j = 2 To M2
           For i = 2 To L2
                WBAR = WBAR + f(i, j, 5) * XCV(i) * YCV(j)
           Next i
      Next j
      FRE = -DPDZ * 2# * XL * YL / (WBAR * AMU)
End Sub
      Sub OUTPUT()
      If (ITER = 0) Then
        Print #1,
        Print #1, "  ITER"; Space(6); "SMAX"; Space(8); "SSUM"; Space(7); "V(6,4)"; Space(8); "T(2,6)"; Space(8); " F.RE"
     End If
      Print #1,
      Print #1, Format(ITER, "0#      "); Format(SMAX, "#.000E+###"); Space(4); Format(SSUM, "#.000E+###"); _
                Space(4); Format(f(6, 4, 2), "#.000E+###"); Space(4); Format(f(2, 6, 4), "#.000E+###"); Space(4); Format(FRE, "#.000E+###");
      If (ITER <> LAST) Then Exit Sub
      For j = 1 To M1
          For i = 1 To L1
               f(i, j, 5) = f(i, j, 5) / WBAR
          Next i
      Next j
      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
                       GAM(i, 1) = 0#
                       GAM(i, M1) = 0#
                    End If
               Next i
         Next j
         For j = 2 To M2
              For i = 2 To L2
                   If (NF = 2) Then
                        If (j <> 2) Then
                             TM = (f(i, j, 4) + f(i, j - 1, 4)) * 0.5
                             CON(i, j) = TM * GBR
                        End If
                   Else
                        If (NF = 5) Then
                              CON(i, j) = -DPDZ
                        End If
                   End If
             Next i
         Next j
      End Sub
    

⌨️ 快捷键说明

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