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

📄 testcondition.vb

📁 一个lbm的程序
💻 VB
字号:
Public Class TestCondition
    Public Shared Sub deal()
        Dim i, j As Int32
        Dim k As Byte
        Dim f(q) As Double
        For i = 0 To m
            For j = 0 To n
                field(i, j) = New BasicCell()
            Next
        Next
        For i = 160 To 240
            For j = 10 To 90
                If (i - 200) ^ 2 + (j - 50) ^ 2 <= 1600 Then
                    rho(i, j) = r0
                    flag(i, j) = CONST_FLUID
                    field(i, j) = New FluidCell
                    eps(i, j) = 1
                    'u(i, j) = 0.06
                    v(i, j) = -0.06
                    mass(i, j) = 1
                    field(i, j).f = Collide.getfe0(i, j)
                End If
            Next
        Next

        For i = 152 To 252
            For j = 9 To 92
                If flag(i, j) = CONST_EMPTY Then
                    For k = 1 To q
                        If flag(i + ei(k, 0), j + ei(k, 1)) = CONST_FLUID Then
                            flag(i, j) = CONST_INTERFACE
                            field(i, j) = New InterfaceCell
                            itfArray.Add(New Int32() {i, j})
                            rho(i, j) = 1
                            'u(i, j) = 0.06
                            v(i, j) = -0.06
                            eps(i, j) = 0.5
                            mass(i, j) = 0.5
                            field(i, j).f = Collide.getfe0(i, j)
                            Exit For
                        End If
                    Next
                End If
            Next
        Next

        For i = 1 To m - 1
            For j = 1 To 7
                rho(i, j) = r0
                flag(i, j) = CONST_FLUID
                field(i, j) = New FluidCell
                eps(i, j) = 1
                mass(i, j) = 1
                field(i, j).f = Collide.getfe0(i, j)
            Next
        Next
        For i = 1 To m - 1
            flag(i, 8) = CONST_INTERFACE
            field(i, 8) = New InterfaceCell
            itfArray.Add(New Int32() {i, 8})
            rho(i, 8) = 1
            eps(i, 8) = 0.5
            mass(i, 8) = 0.5
            field(i, 8).f = Collide.getfe0(i, 8)
        Next
        setwall()
    End Sub

    Public Shared Sub dealsquare()
        Dim i, j As Int32
        For i = 0 To m
            For j = 0 To n
                field(i, j) = New BasicCell()
            Next
        Next
        For i = 31 To 69
            For j = 31 To 69
                rho(i, j) = r0
                flag(i, j) = CONST_FLUID
                field(i, j) = New FluidCell
                eps(i, j) = 1
                'u(i, j) = 0.1
                'v(i, j) = -0.03
                mass(i, j) = 1
                field(i, j).f = Collide.getfe0(i, j)
            Next
        Next

        For j = 30 To 70
            field(30, j) = New InterfaceCell
            itfArray.Add(New Int32() {30, j})
            flag(30, j) = CONST_INTERFACE
            eps(30, j) = 0.5
            mass(30, j) = 0.5
            field(30, j).f = Collide.getfe0(30, j)
            field(70, j) = New InterfaceCell
            itfArray.Add(New Int32() {70, j})
            flag(70, j) = CONST_INTERFACE
            eps(70, j) = 0.5
            mass(70, j) = 0.5
            field(70, j).f = Collide.getfe0(70, j)
        Next

        For i = 31 To 69
            field(i, 30) = New InterfaceCell
            itfArray.Add(New Int32() {i, 30})
            flag(i, 30) = CONST_INTERFACE
            eps(i, 30) = 0.5
            mass(i, 30) = 0.5
            field(i, 30).f = Collide.getfe0(i, 30)
            field(i, 70) = New InterfaceCell
            itfArray.Add(New Int32() {i, 70})
            flag(i, 70) = CONST_INTERFACE
            eps(i, 70) = 0.5
            mass(i, 70) = 0.5
            field(i, 70).f = Collide.getfe0(i, 70)
        Next
        setwall()
    End Sub

    Private Shared Sub setwall()
        Dim i, j As Int32
        For i = 1 To m - 1
            field(i, 0) = New WallCell(New Double() {0, 1})
            flag(i, 0) = CONST_WALL
            field(i, n) = New WallCell(New Double() {0, -1})
            flag(i, n) = CONST_WALL
        Next

        For j = 1 To n - 1
            field(0, j) = New WallCell(New Double() {1, 0})
            flag(0, j) = CONST_WALL
            field(m, j) = New WallCell(New Double() {-1, 0})
            flag(m, j) = CONST_WALL
        Next
        field(0, 0) = New WallCell(New Double() {1.0 / Math.Sqrt(2), 1.0 / Math.Sqrt(2)})
        field(m, 0) = New WallCell(New Double() {-1.0 / Math.Sqrt(2), 1.0 / Math.Sqrt(2)})
        field(0, n) = New WallCell(New Double() {1.0 / Math.Sqrt(2), -1.0 / Math.Sqrt(2)})
        field(m, n) = New WallCell(New Double() {-1.0 / Math.Sqrt(2), -1.0 / Math.Sqrt(2)})
        flag(0, 0) = CONST_WALL
        flag(m, 0) = CONST_WALL
        flag(0, n) = CONST_WALL
        flag(m, n) = CONST_WALL
    End Sub
End Class

⌨️ 快捷键说明

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