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

📄 form1.frm

📁 利用柏松方程计算温度分布。实际的算法为有限元法。
💻 FRM
字号:
VERSION 5.00
Begin VB.Form Form1 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Simulate"
   ClientHeight    =   8940
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   10710
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   ScaleHeight     =   8940
   ScaleWidth      =   10710
   StartUpPosition =   3  '窗口缺省
   Begin VB.PictureBox Picture1 
      AutoRedraw      =   -1  'True
      ForeColor       =   &H00000080&
      Height          =   8655
      Left            =   0
      ScaleHeight     =   -38.788
      ScaleMode       =   0  'User
      ScaleTop        =   22
      ScaleWidth      =   37.768
      TabIndex        =   1
      Top             =   0
      Width           =   10695
   End
   Begin VB.CommandButton Command1 
      Caption         =   "开始计算"
      Height          =   255
      Left            =   3960
      TabIndex        =   0
      Top             =   8640
      Width           =   2535
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private stt(0 To 21, 0 To 21) As Double
Sub initialization()
stt(0, 21) = 100
stt(1, 21) = 100
stt(2, 21) = 100
stt(3, 21) = 100
stt(4, 21) = 100
stt(5, 21) = 100
stt(6, 21) = 100
stt(7, 21) = 100
stt(8, 21) = 100
stt(9, 21) = 100
stt(10, 21) = 100
stt(11, 21) = 100
stt(12, 21) = 100
stt(13, 21) = 100
stt(14, 21) = 100
stt(15, 21) = 100
stt(16, 21) = 100
stt(17, 21) = 100
stt(18, 21) = 100
stt(19, 21) = 100
stt(20, 21) = 100
stt(21, 21) = 100
stt(0, 20) = 100
stt(21, 20) = 100
stt(0, 19) = 100
stt(21, 19) = 100
stt(0, 18) = 100
stt(21, 18) = 100
stt(0, 17) = 100
stt(21, 17) = 100
stt(0, 16) = 100
stt(0, 15) = 100
stt(0, 14) = 100
stt(0, 13) = 100
stt(0, 12) = 100
stt(0, 11) = 100
stt(0, 1) = -1
stt(0, 2) = -1
stt(0, 3) = -1
stt(0, 4) = -1
stt(0, 5) = -1
stt(0, 6) = -1
stt(0, 7) = -1
stt(0, 8) = -1
stt(0, 9) = -1
stt(0, 10) = -1
stt(21, 1) = -1
stt(21, 2) = -1
stt(21, 3) = -1
stt(21, 4) = -1
stt(21, 5) = -1
stt(21, 6) = -1
stt(21, 7) = -1
stt(21, 8) = -1
stt(21, 9) = -1
stt(21, 10) = -1
stt(0, 10) = -1
stt(21, 11) = -1
stt(21, 12) = -1
stt(21, 13) = -1
stt(21, 14) = -1
stt(21, 15) = -1
stt(21, 16) = -1
stt(0, 0) = 0
stt(1, 0) = 0
stt(2, 0) = 0
stt(3, 0) = 0
stt(4, 0) = 0
stt(5, 0) = 0
stt(6, 0) = 0
stt(7, 0) = 0
stt(8, 0) = 0
stt(9, 0) = 0
stt(10, 0) = 0
stt(11, 0) = 0
stt(12, 0) = 0
stt(13, 0) = 0
stt(14, 0) = 0
stt(15, 0) = 0
stt(16, 0) = 0
stt(17, 0) = 0
stt(18, 0) = 0
stt(19, 0) = 0
stt(20, 0) = 0
stt(21, 0) = 0
End Sub
Sub calculation()
Dim dt As Double, q As Double, i As Integer, j As Integer
dt = 0.01 '初始化时间步长
Call initialization
For i = 1 To 20
For j = 20 To 1 Step -1
stt(i, j) = (stt(i, j + 1) + stt(i, j - 1)) / 2
Next
Next
For i = 1 To 20
If stt(0, i) = -1 Then stt(0, i) = stt(1, i)
If stt(21, i) = -1 Then stt(21, i) = stt(20, i)
Next
For j = 1 To 20
For i = 1 To 20
stt(i, j) = (stt(i + 1, j) + stt(i - 1, j)) / 2
Next
Next
Call initialization
End Sub
Sub display()
Dim i As Integer, j As Integer, c As Integer
For i = 0 To 21
For j = 0 To 21
c = stt(i, j) * 255 / 100
If c < 0 Then
Picture1.Line (i, j)-(i + 1, j + 1), , BF
Else
Picture1.Line (i, j)-(i + 1, j + 1), RGB(c, c, 150), BF
Picture1.CurrentX = i
Picture1.CurrentY = j + 0.8
Picture1.Print Format(stt(i, j), "#")
End If
Next
Next
End Sub

Private Sub Command1_Click()
Dim i As Long, j As Integer, logicflag As Boolean, sttc(0 To 21, 0 To 21) As Double
logicflag = True
For i = 1 To 20
For j = 1 To 20
sttc(i, j) = stt(i, j)
Next
Next
For i = 1 To 500
Call calculation
Next
For i = 1 To 20
For j = 1 To 20
If (Abs(sttc(i, j) - stt(i, j)) > 0.1) Then logicflag = False
Next
Next
Call display
If (logicflag = True) Then MsgBox "迭代完成", , "Simulate"
End Sub

Private Sub Form_Load()
Picture1.Scale (0, 22)-(22, 0)
Call initialization
Call display
End Sub

⌨️ 快捷键说明

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