Метод Метрополиса, идеальный газ в поле тяжести

 

Dim N, Alfa as Double

 

Private Sub Command1_Click()

‘ начальное распределение частиц

For i = 0 To N

Shape1(i).Left = 100 + (Picture1.Width - 200) * Rnd

Shape1(i).Top = 100 + (Picture1.Height - 200) * Rnd

Next i

End Sub

 

Private Sub Command2_Click()

Timer1.Enabled = True

End Sub

 

Private Sub Command3_Click()

Timer1.Enabled = False

End Sub

 

Private Sub Command4_Click()

st = 100

For j = 0 To 1000

For i = 0 To N

 If Rnd < 0.5 Then

 Shape1(i).Top = Shape1(i).Top + st

 If Shape1(i).Top > Picture1.Height - 100 Then Shape1(i).Top = Picture1.Height - 100

 Else

 ppp = Exp(-Alfa * st)

 If Rnd < ppp Then

 Shape1(i).Top = Shape1(i).Top – st  ‘ Перемещение частицы в ‘ новое положение

 End If

 End If

Next i

Next j

End Sub

 

Private Sub Form_Activate()

N = 100

Alfa = (Text1.Text / Text2.Text / 30)

'Text1.Text = Alfa

End Sub

 

Private Sub Timer1_Timer()

st = 100

For i = 0 To N

 If Rnd < 0.5 Then

 Shape1(i).Top = Shape1(i).Top + st

 If Shape1(i).Top > Picture1.Height - 100 Then Shape1(i).Top = Picture1.Height - 100

 Else

 ppp = Exp(-Alfa * st)

 If Rnd < ppp Then

 Shape1(i).Top = Shape1(i).Top - st

 End If

 End If

Next i

End Sub