function [CurrentLattice,Ctots,Dtots] = NowakLiaoLoop(InitialLattice,Vt,Vr,T,R,P,S,base,N,FilePrefix) % ================================================ % David Liao % 2008 January 27 % Ising Trio Loop % ================================================ % % Requires NowakLiao.m and IsingTrioFluorescence.m % [CurrentLattice,Ctots,Dtots] = % NowakLiaoLoop(InitialLattice,Vt,Vr,T,R,P,S,base,N,FilePrefix) L = size(InitialLattice); NeighborFilter = zeros(L); NeighborFilter(2,1,1) = 1; NeighborFilter(1,2,1) = 1; NeighborFilter(1,1,2) = 1; NeighborFilter(L(1),1,1) = 1; NeighborFilter(1,L(2),1) = 1; NeighborFilter(1,1,L(3)) = 1; NeighborFilterfft = fftn(NeighborFilter); NeighborFilter(1,1,1) = 1; AutoNeighborFilterfft = fftn(NeighborFilter); ZerothColorImage = IsingTrioFluorescence(InitialLattice); imwrite(ZerothColorImage,[FilePrefix '000000.png']); CurrentLattice = InitialLattice; Ctots = zeros(N,1); Dtots = zeros(N,1); tic; for i = 1:N [CurrentLattice,CurrentCtot,CurrentDtot] = NowakLiao(CurrentLattice,NeighborFilterfft,AutoNeighborFilterfft,Vt,Vr,T,R,P,S,base); CurrentColorImage = IsingTrioFluorescence(CurrentLattice); imwrite(CurrentColorImage,[FilePrefix num2str(i,'%06g') '.png']); Ctots(i) = CurrentCtot; Dtots(i) = CurrentDtot; ElapsedTime = toc; RemainingTime = (N - i)*ElapsedTime/i; fprintf(['Remaining time: ' ,num2str(RemainingTime), ' s. Elapsed time: ' ,num2str(ElapsedTime), ' s. \n']); end