카테고리 없음
이징모델
조지 가모프
2024. 2. 12. 15:16
import matplotlib.pyplot as plt
import numpy as np
pr=open("C:/Users/gmrth/Desktop/ising.txt","r")
r=[]
k=[]
j=[]
q=[]
for i in range(10000):
a=pr.readline()
r=a.split()
k.append(r[0])
j.append(r[1])
q.append(r[2])
data=[]
intList = list(map(float, q))
for i in range(99):
data.append(intList[100*i:100*i+99])
plt.imshow(data)
plt.show()
program gr
integer sisi(100,100)
double precision kbinv !+++++++++++++++++++++++++++++++++++++++++++++++++++++++ 볼츠만상수 역수
real a !+++++++++++++++++++++++++++++++ 랜덤 변수
real b ,d!++++++++++++++++++++++++++++++++++++ 랜덤 변수
real t!++++++++++++++++++++++++++++++++++=온도
integer i,j,k !++++++++++++++++ 반복문 변수
integer de !+++++++++++++++++++++++++++++= 에너지
kbinv=10**3*10.0**10*10.0**10*0.8
t=0.01
do i=1,100,1
do j=1,100,1
sisi(i,j)=1
end do
end do
do i=1,50000,1
call random_seed()
call random_number(a)
call random_seed()
call random_number(b)
call random_seed()
call random_number(d)
if(99.0>a*100 .and. a*100>2.0 .and. 99.0>b*100 .and. b*100>2.0) then
de=-sisi(int(a*100),int(b*100))*(sisi(int(a*100)-1,int(b*100))&
+sisi(int(a*100+1),int(b*100))&
+sisi(int(a*100),int(b*100-1))+sisi(int(a*100),int(b*100+1)))
endif
if(0>de .and. 99>a*100 .and.a*100>2 .and. 99>b*100 .and. b*100>2) then
sisi(int(a*100),int(b*100))=-sisi(int(a*100),int(b*100))
else if(de>0 .and. 99>a*100 .and.a*100>2 .and. 99>b*100 &
.and. b*100>2 .and. d> exp(-de*kbinv/t)) then
sisi(int(a*100),int(b*100))=-sisi(int(a*100),int(b*100))
else
sisi(int(a*100),int(b*100))=sisi(int(a*100),int(b*100))
end if
end do
open(unit=1,file='ising.txt',status='replace')
do i=1,100,1
do j=1,100,1
write(1,*) i, j, sisi(i,j)
end do
end do
close(1)
end program gr