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

📄 exm_8.bas

📁 VB版本_SIMPLE算法和11各个算例
💻 BAS
字号:
Attribute VB_Name = "Exm_8"
'
'      DIMENSION U(22, 22), V(22, 22), PC(22, 22)
'      EQUIVALENCE (F(1,1,1),U(1,1)),(F(1,1,2),V(1,1)),(F(1,1,3),PC(1,1))
'      DIMENSION TH(22), THU(22), THDIF(22), THCV(22), THCVS(22)
'      EQUIVALENCE(X,TH),(XU,THU),(XDIF,THDIF),(XCV,THCV)
'     &  ,(XCVS,THCVS),(XL,THL)
'*****************************************************************
'*
'*----------------- EXAMPLE EIGHT -----------------------------
'*
'*****************************************************************
Option Explicit
Dim i%, j%, OMEGA#, UIN#, AMU#, FLOWIN#, FL#, AR#, FLT#, Add#, RSWM#
Dim RHOM#


      Sub GRID()
         For i = 1 To 4
              LSolve(i) = True
              LPrint(i) = True
         Next
      LPrint(11) = True
      Title(1) = ".VEL  U."
      Title(2) = ".VEL  V."
      Title(3) = ".STR FN."
      Title(11) = "PRESSURE"
      RELAX(1) = 0.5
      RELAX(2) = 0.5
      RELAX(11) = 0.8
      LAST = 25
      MODE = 2
      XL = 0.5
      YL = 0.5
      L1 = 7
      M1 = 7
      R(1) = 0#
      Call UGRID
      End Sub
      Sub START()
      OMEGA = 100#
      UIN = 100#
      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) = R(j) ^ 2 * OMEGA
           Next i
      Next j
      F(2, 2, 1) = UIN
      AMU = 1#
      End Sub
      Sub DENSE()
      End Sub
      Sub BOUND()
      If (ITER = 0) Then
          FLOWIN = RHO(1, 2) * F(2, 2, 1) * YCVR(2)
      End If
      FL = 0#
      AR = 0#
      For i = L3 To L2
          FLT = R(M1) * XCV(i) * RHO(i, M1)
          AR = AR + FLT
          FL = FL + FLT * F(i, M2, 2)
      Next i
      Add = (FLOWIN - FL) / AR
      For i = L3 To L2
           F(i, M1, 2) = F(i, M2, 2) + Add
      Next
      End Sub
      Sub OUTPUT()
      If (ITER = 0) Then
          Print #1,
          Print #1, "  ITER"; Space(7); "SMAX"; Space(11); "SSUM"; Space(10); "U(4,4)"; Space(9); "V(4,4)"
      End If
     
      Print #1,
      Print #1, Format(ITER, "0#      "); Format(SMAX, "#.000E+###"); Space(4); _
                Format(SSUM, "#.000E+###"); Space(4); Format(F(4, 4, 1), "#.000E+###"); _
                Space(4); Format(F(4, 4, 2), "#.000E+###")
      If (ITER = LAST) Then
           Call ToPrint
      End If
      End Sub
      Sub GAMSOR()
      If (ITER = 0) Then
          For j = 1 To M1
               For i = 1 To L1
                    GAM(i, j) = AMU
               Next i
          Next j
          GAM(L3, M1) = 0#
          GAM(L2, M1) = 0#
      End If
      If (NF = 2) Then
         For j = 3 To M2
             For i = 2 To L2
                  RSWM = FY(j) * F(i, j, 4) + FYM(j) * F(i, j - 1, 4)
                  RHOM = FY(j) * RHO(i, j) + FYM(j) * RHO(i, j - 1)
                  CON(i, j) = RHOM * RSWM ^ 2 / RMN(j) ^ 3
                  AP(i, j) = -AMU / RMN(j) ^ 2
             Next i
         Next j
      End If
      If (NF <> 4) Then Exit Sub
      For j = 2 To M2
           For i = 2 To L2
               AR = 2# * AMU / YCVR(j)
               CON(i, j) = AR * F(i, j - 1, 4)
               AP(i, j) = -AR
           Next i
      Next j
      End Sub

⌨️ 快捷键说明

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