Sei sulla pagina 1di 8

Modelo de Ising

David Marcos
Resumen
En el presente trabajo realizamos un estudio del modelo de Ising en una dimension (1D), analizando la
dependencia de magnetizaci on y energa con la temperatura y calculando la funci on de correlacion.
1. El modelo de Ising y su soluci on exacta en una dimensi on.
Consideremos una red de espines {s
i
} con energa:
E({s
i
}) = J

(i, j)
1
os
vecinos
i < j
s
i
s
j
H

i
s
i
(1)
Con J la energa de interaccion a primeros vecinos, el momento maganetico y H el campo magnetico. Resolver
el problema pasa por calcular la funci on de particion. Consideremos el caso de 1D con N espines e impongamos
condiciones de contorno (CC) periodicas (s
N+1
= s
1
). Si B H tenemos:
Z(B, T) =

s1
. . .

sN
exp {
N

k=1
(J
k
s
k+1
+Bs
k
)} =

si
exp {
N

k=1
[J
k
s
k+1
+
1
2
B(s
k
+s
k+1
)]} (2)
Deniendo P tal que P
ss
< s|P|s

> e
[Jss

+
1
2
B(s+s

)]
tenemos < 1|P|1 >= e
(J+B)
, < 1|P|1 >= e
(JB)
,
< 1|P| 1 >=< 1|P|1 >= e
J
. Y as la matriz de transferencia:
P =
_
e
(J+B)
e
J
e
J
e
(JB)
_
Con esta denici on de P la funci on de partici on se obtiene de manera inmediata:
Z(B, T) =

si
< s
1
|P|s
2
>< s
2
|P|s
3
> . . . < s
N
|P|s
1
>=

s1
< s
1
|P
N
|s
1
>= Tr(P
N
) =
N
+
+
N

(3)
Con

e
J
[cosh(B)
_
sinh
2
(B) +e
4J
] los autovalores de P. Notar que:
1
N
lnZ(B, T) = ln(
+
) +
1
N
ln
_
1 +
_

+
_
N
_
N
ln(
+
) (4)
Por tanto, en el lmite en que el n umero de espines es grande tenemos una energa E y una magnetizacion M:
E
N
=
ln(Z)

J
_
e
J
e
J
_

_
J si T 0
0 si T
(5)
M
N
=

H
(kTln(Z))
sinh(B)
_
sinh
2
(B) +e
4J
(= 0 si B = 0) (6)
1
2. Simulaci on numerica del modelo de Ising en 1D.
Conocidos los resultados te oricos, pasamos a la implementaci on numerica de resultados. El c odigo Fortran 90
se muestra en el apendice I. En la gura 2 se muestran los resultados de la simulacion y su correspondiente acuerdo
con la teora. Observamos que en efecto la magnetizacion es nula, pues no existe magnetizacion espont anea para
temperatura mayor que cero en una dimensi on. En otras palabras, en 1D la transici on de fase se produce a T = 0,
con lo que las uctuaciones numericas de M que obtenemos cerca de T = 0 son de esperar. Otro resultado que
puede llamar la atencion es la no superposicion de las curvas te orica y simulada para la energa. Para T 0 ambas
curvas nos dicen que la energa por espn es 1. Esto es as porque la disminuci on de la temperatura provoca la
aparici on de dominios, hasta que en T = 0 se tiene un estado ordenado. La pista de la no coincidencia de curvas
teorica y numerica nos la proporciona la que se obiene para el lmite N . Resulta relativamente sencillo
reproducir el modelo de Ising teorico para N grande. Sin embargo, en caso contrario, para obtener resultados
precisos se requieren un gran n umero de pasos Montecarlo. Al incrementar tal cantidad iremos aproxim andonos
a la curva te orica.
-1
-0.5
0
0.5
1
0 2 4 6 8 10
Temperatura T (en unidades de J/k)
Magnetizacion simulada/N
Magnetizacion teorica/N
Energia simulada/NJ
Energia teorica/NJ
Energia teorica/NJ para N>>1
Figura 1: Energa y Magnetizaci on en el modelo de Ising en 1D.
3. Funcion de correlacion en el modelo de Ising de 1D.
Llegagos a este punto, nos proponemos calcular la funci on de correlacion de espines, denida por:
(|j i|) s
j
s
i
s
j
s
i
(7)
Siendo |j i| la distancia r. Intuitivamente, como la funci on de correlacion nos da una idea de c omo afecta un
espn a los de su entorno, vemos que este efecto sera apreciable en para distancias relativamente peque nas,
pues es donde la interaccion entre espines es relevante. Esperamos as un decaimiento exponencial de con la
distancia. Tambien de un modo intuitivo podemos predecir que el efecto de la temperatura ser a disminuir la
correlacion, pues al aumentar T la interaccion espn-espn sera menos signicativa en relaci on a la energa total
del sistema. En el apendice II se muestra un c odigo para el c alculo de la funci on de correlacion y en la gura 2
los resultados obtenidos para varias temperaturas.
Podemos calcular la llamada longitud de correlacion denida por:
(r, T) e
r/(T)
(8)
Y su dependencia con la temperatura. Para ello observamos que:
ln((r, T)) = ln(A)
1
(T)
r (9)
2
-0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 5 10 15 20 25
C
o
r
r
e
l
a
c
i
o
n

Distancia r
T=0.6 J/k
T=1.0 J/k
T=1.4 J/k
T=1.8 J/k
Figura 2: Funci on de correlacion de espines.
Con A una constante. Generando entonces un conjunto de curvas para distintas temperaturas, y realizando
un ajuste por mnimos cuadrados para obtener la pendiente de 9 podemos obtener un conjunto de puntos (T)
como los ploteados en la gura 3.
0
10
20
30
40
50
60
70
0 0.5 1 1.5 2 2.5 3 3.5
L
o
n
g
i
t
u
d

d
e

c
o
r
r
e
l
a
c
i
o
n

Temperatura T
Figura 3: Longitud de correlaci on.
3
Apendice I: Programa en Fortran 90 para el modelo de Ising en 1D.
! Monte Carlo para el modelo de Ising 1D
!
parameter (n=100)
dimension is(n)
real*8 dseed
data dseed /142761d0/
nsteps = 20000
nblock=100
open(1,file=T_m_e.dat)
! T=1.0
do nT=1,100
T=0.1*nT
ama = 0
amaa = 0
ene = 0
enea = 0
do i = 1, n
is(i)=1
call ran (dseed,random)
if(random.lt.0.5) is(i)=-1
ama = ama + is(i)
end do
amaa = 0
enea = 0
do i = 1, n
ip = i + 1
if (ip .gt. n) ip = 1
ene = ene - is(i)*is(ip)
end do
do k = 1, nsteps/nblock
do l = 1, nblock
do m = 1, 200
! i=m
CALL RAN (DSEED,RANDOM)
i=int((n-1)*random+1.d0)
si = is(i)
ip = i + 1
if (ip.gt.n) ip=1
im = i - 1
if (im.lt.1) im=n
de = 2*si*(is(ip)+is(im))
call ran (dseed,random)
4
if (exp(-de/T) .gt. random) then
is(i) = -si
ama = ama - 2*si
ene = ene + de
end if
end do
end do
enea = enea + ene
amaa = amaa + ama
end do
write(1,*) T, amaa/(nsteps/nblock*n),enea/(nsteps/nblock*n)
enddo
close(1)
end
subroutine ran(dseed,r)
double precision z,d2p31m,d2pn31,dseed
data d2p31m/2147483647./,d2pn31/4.65661288D-10/
z = dseed
z = dmod(16807.*z,d2p31m)
r = z * d2pn31
dseed = z
end
5
Apendice II: Programa en Fortran 90 para calculo de la funci on de
correlacion en el modelo de Ising en 1D.
! Monte Carlo para el modelo de Ising 1D
!
parameter (n=100)
dimension is(n), CORR1(n-1),CORR2(n-1),CORR3(n-1),CORRA(n-1)
real*8 dseed
data dseed /142761d0/
nsteps = 20000
nblock=100
OPEN(2,FILE=correlR.dat)
T=1.0
! ama = 0
! amaa = 0
! ene = 0
! enea = 0
DO NR=1,n-1
CORR1(NR)=0.
CORR2(NR)=0.
CORR3(NR)=0.
CORRA(NR)=0.
ENDDO
do i = 1, n
is(i)=1
call ran (dseed,random)
if(random.lt.0.5) is(i)=-1
! ama = ama + is(i)
NR=1
DO WHILE (I+NR.LE.n)
CORR1(NR) = CORR1(NR)+(IS(I)*IS(I+NR))
CORR2(NR) = CORR2(NR)+IS(I)
CORR3(NR) = CORR3(NR)+IS(I+NR)
NR=NR+1
ENDDO
end do
! amaa = 0
! enea = 0
! do i = 1, n
! ip = i + 1
! if (ip .gt. n) ip = 1
! ene = ene - is(i)*is(ip)
! end do
! DO NR=1,n-1
! SPINI=0
! SPINJ=0
! SPINIJ=0
! NUM=0
6
! I=1
! DO WHILE (I+NR.LE.n)
! NUM=NUM+1
! SPINI=SPINI+IS(I)
! SPINJ=SPINJ+IS(I+NR)
! SPINIJ=SPINIJ+(IS(I)*IS(I+NR))
! I=I+1
! ENDDO
! CORR(NR)= (1./NUM)*(SPINIJ-SPINI*SPINJ)
! ENDDO
do k = 1, nsteps/nblock
do l = 1, nblock
do m = 1, 200
! i=m
CALL RAN (DSEED,RANDOM)
i=int((n-1)*random+1.d0)
si = is(i)
ip = i + 1
if (ip.gt.n) ip=1
im = i - 1
if (im.lt.1) im=n
de = 2*si*(is(ip)+is(im))
call ran (dseed,random)
if (exp(-de/T) .gt. random) then
is(i) = -si
! ama = ama - 2*si
! ene = ene + de
end if
NR=1
DO WHILE (I+NR.LE.n)
CORR1(NR) = CORR1(NR)+(IS(I)*IS(I+NR))
CORR2(NR) = CORR2(NR)+IS(I)
CORR3(NR) = CORR3(NR)+IS(I+NR)
NR=NR+1
ENDDO
end do
end do
! enea = enea + ene
! amaa = amaa + ama
end do
DO NR=1,n-1
WRITE(2,*) NR, (1./(nsteps*200))*corr1(nr)
ENDDO
CLOSE(2)
end
7
subroutine ran(dseed,r)
double precision z,d2p31m,d2pn31,dseed
data d2p31m/2147483647./,d2pn31/4.65661288D-10/
z = dseed
z = dmod(16807.*z,d2p31m)
r = z * d2pn31
dseed = z
end
8

Potrebbero piacerti anche