113學年度第1學期:
蒙地卡羅與平行計算 課程公告


課堂之程式(google cloud)









Transverse Ising model

\(H = - J \sum_{i} \sigma^x_i \sigma^x_{i+1} - g \sum_{i} \sigma^z_i\)




公告日期:2024, 9, 18

課堂之程式:
import numpy as np
N=8
m=2**N; TS=[]
for n in range(m):
    S=[]; #print(n)
    for i in range(N):
        ni=int(n/2**i)%2
        #print(ni,end=' ')
        nii=ni*2-1
        S.append(nii)
    TS.append(S)
    #print(' ')
#print('TS=',TS)

for S in TS:
    eng=0; M=0; M2=0
    for i in range(N-1):
        eng+=-S[i]*S[i+1]
        M+=S[i]
    M+=S[-1]
    M2+=M**2
    eng+=-S[-1]*S[0]
    #print(S,eng,M,M2)
#input('bbbb')

TE=[]; TM=[]; TM2=[]
TT=np.linspace(0.5,10,20)
#TT=[0.1,1]
for T in TT:
    Z=0; E=0; mag=0; mag2=0;
    for S in TS:
        eng=0; M=0; M2=0
        for i in range(N-1):
            eng+=-S[i]*S[i+1]
            M+=S[i]
        eng+=-S[-1]*S[0]; M+=S[-1]; M2+=M**2
        pr=np.exp(-eng/T)
        Z+=pr
        E+=eng*pr
        mag+=M*pr
        mag2=M2*pr
        ##print('%6.2f %12.5e %12.5e %12.5e %12.5e' %(T,eng,pr,E,Z))
    Ea=E/Z/N; maga=mag/Z; mag2a=mag2/Z/N**2
    TE.append(Ea); TM.append(maga); TM2.append(mag2a)
    print('%6.2f %12.5e %12.5e %12.5e' %(T,Ea,maga,mag2a))

import matplotlib
import matplotlib.pyplot as plt
plt.plot(TT,TE,'r--o',label='E')
plt.figure()
#plt.plot(TT,TM,'b--',label='M')
plt.plot(TT,TM2,'g--',label='M2')
=====








==========================================

授課教師
陳永忠ycchen@thu.edu.tw
東海大學應用物理系