📄 testcondition.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 + -