%script general para hacer una corrida  a un set de parámetros,
%beta, tamaño de la red,

%Tamaño en x,
Lx=10;
%Tamaño en y,
Ly=10;
% beta = 1/T
%beta=0.1;

%propongo un estado inicial al azar

%Sij es una matriz de 1 y -1 indicando las dos proyecciones de
%espin

Sij=2*(rand(Lx,Ly)>0.5) -1;

figure(1)
pcolor(Sij);
title('Estado inicial');
Sij0=Sij;
npre = 100;
npasos = 2000;
energia=zeros(npasos+1,1);
magnet=zeros(npasos+1,1);

%pretermalizo
for n=1:npre
Sij=ising2Dpaso(Sij,beta);
end

pcolor(Sij),caxis([-1 1])
title('Estado inicial, despues de pre-termalizar');
pcolor(Sij),caxis([-1 1])
energia(1) = En(Sij);
magnet(1) = sum(Sij(:));
for n=1:npasos
[Sij,DE,dM] = ising2Dpaso(Sij,beta);
energia(n+1) = energia(n) + DE;
magnet(n+1) = magnet(n) + dM;
if(mod(n,20) == 0)
pcolor(Sij), caxis([-1 1]);shading flat;
title(['T = ' num2str(1./beta) ' e = ' num2str(energia(n)/(Lx*Ly)) ' m = ' num2str(magnet(n)/(Lx*Ly)) ' paso ' num2str(n)]);
drawnow;
end


end

figure(2)
subplot(2,1,1)
plot(energia,'o-');
ylabel('e');
subplot(2,1,2);
plot(magnet,'o-');
ylabel('m')
xlabel('paso')
