function interface=interface(L,N) %L=lattice size, N=# of MC steps A=ones(L,L); if mod(L,2)==0 mean(1,1)=1; else mean(1,1)=-1; end %set right-hand side to -1 for u=1:L for v=L/2+1:L A(u,v)=-1; end end for step=2:N %pick random site i=ceil(L*rand(1)); j=ceil(L*rand(1)); %pick 1 of 4 nearest neighbors nn=ceil(4*rand(1)); %get indices of nn if nn==1 %exchange top inn=ndx(i-1,L); jnn=ndx(j,L); elseif nn==2 %exchange bottom inn=ndx(i+1,L); jnn=ndx(j,L); elseif nn==3 %exchange left inn=ndx(i,L); jnn=ndx(j-1,L); elseif nn==4 %exchange right inn=ndx(i,L); jnn=ndx(j+1,L); end %exchange if different if A(i,j)~=A(inn,jnn) A(i,j)=A(inn,jnn); A(inn,jnn)=-A(i,j); sumold=0; %get mean magnetization on one side of the interface for i=1:L sumnew=A(i,L/2)+sumold; sumold=sumnew; end mean(step,1)=sumold/L; end end figure(1) plot(mean)