Vous êtes sur la page 1sur 24

Estudo do Modelo de Ising atraves do Metodo

Monte Carlo
Carlos Maciel O. Bastos

Rafaela

June 18, 2010

Lucy

Processos Markovianos
Seja yi um evento aleat
orio que ocorre em um certo instante ti . Uma sequencia
de eventos aleat
orios (y1 , t1 ), (y2 , t2 ), ..., com t1 < t2 < t3 < ..., e denominada
sequencia Markoviana quando a probabilidade de se obter qualquer evento da
depende da probabilidade de se obter o evento imediatamente anterior, ou seja,
n
ao depende de toda historia do sistema, mas apenas da probabilidade de
ocorrer o ultimo evento.
A maioria dos processos que ocorrem na natureza tem caracteristicas de processos markovianos, sendo essa descricao muito util para o estudo de sistemas.
Podemos utilizar a notacao P (yF , tF , yI , tI ) para designar a probabilidade de
um evento yF ocorrer no tempo tF , conhecendo yI , no tempo tI . As sequencias
Markovianas obedecem a relacao de Chapman-Kolmogorov:
X
P (yF , , tF , yI , tI ) =
P (yF , tF , yk , tk )P (yk , tk , yI , tI )
(1)
k

onde k varia de I ate F, varrendo todos os intantes entre tI e tF . Para uma densidade de probabilidade contnuas, podemos definir a relacao na forma integral:
Z
P (yF , , tF , yI , tI ) = P (yF , tF , yk , tk )P (yk , tk , yI , tI )dyk
(2)
A Equa
c
ao Mestra
Existe uma equac
ao que governa a evolucao temporal dos processos estocasticos
Markovianos. Essa equacao e conhecida como equacao mestra. Vamos supor
P(y,t) a probabilidade de um estado microscopio y estar em um estado em um
determinado instante t. Se calcularmos a variacao da probabilidade:
P (y, t)
= Td Tf
t

(3)

onde Td e Tf significam a taxa de variacao da probabilidade (pra dentro) do


estado y (Td ) e dada por:
X
Td =
P (y 0 , t)(y 0 7 y)
(4)
y0

onde pode ser interpretada como a probabildade, na unidade de tempo,


para que o sistema passe de um estado y para um estado y. Analogamente
podemos calcular a variacao da probabilidade de sair do estado y, que pode
ser escrito como:
X
Td =
P (y, t)(y 7 y 0 )
(5)
y0

Portanto a equac
ao mestra fica:
X
P (y, t) X
=
P (y 0 , t)(y 0 7 y)
P (y, t)(y 7 y 0 )
t
0
0
y

(6)

A grande dificuldade reside em achar a funcao , que e a probabilidade


de transic
ao entre 2 estados. Em problemas de fsica geralmente essa funcao

3
tem que ser deduzida a partir de primeiros princpios, ou de forma aproximada
atraves de estimativas.
Nos estados estacionarios, a funcao nao deve depender explicitamente do
tempo, logo:
P
=0
(7)
t
logo, podemos estabelecer uma relacao para a equacao mestra na situacao de
equilbrio:
X
X
P (y 0 , t)(y 0 7 y)
P (y, t)(y 7 y 0 ) =
(8)
y0

y0

Essa equac
ao e chamada balanco detalhado, sendo uma condicao suficiente para
a condic
ao de equilbrio. O balanco detalhado estabelece que na situacao estacionaria, deve existir a mesma probabilidade de sair de um estado e ir para
outro, quanto voltar para esse mesmo estado.
Uma das maneiras que podemos atacar problemas que envolvem o balanco
detalhado geralmente consiste em escolher taxa de maneira que (y1 7 y2 ), a
fim de satisfazer o balanco detalhado no equilbrio, ou seja,
P (y 0 , t 7 )(y 7 y 0 ) = P (y, t 7 )(y 7 y 0 )
Esta escolha geralmente n
ao e unica, e temos a certeza que o sistema atingiu
um estado final de equilbrio para tempos suficientemente grandes.

M
etodo de Monte Carlo
Hist
oria e Definico
es
O termo Monte Carlo aparentemente foi usado pela primeira vez por Ulam e
Von Neumann quando estavam em Los Alamos, durante o projeto Manhatam,
para descrever uma simulac
ao estoc
astica que eles haviam desenvolvido para ser
usado no desenvolvimento da bomba atomica.
Este metodo envolvia probabilidades, da a origem do nome Monte Carlo,
que e o mesmo nome do famoso cassino de Monte Carlo em Monaco. Alguns
autores preferem usar o termo simulacao estocastica para todos os metodos
que envolvem probabilidades, reservando Monte Carlo apenas para a integracao
Monte Carlo. Outros autores n
ao fazem esta distincao, entendendo por Monte
Carlo todo o metodos estoc
astico.
Em particular, podemos definir Monte Carlo como:
.
Monte Carlo e a arte de aproximar uma expectativa atraves de uma amostragem
media de uma func
ao utilizando numeros aleat
orios
.
Um dos motivos de definirmos assim o metodo e o fato dele usar a Lei dos
Grandes Numeros para aproximar uma expectativa (probabilidade).
Com o advento dos computadores, foi possvel melhorar a geracao de numeros aleatorio, com a criac
ao de numeros pseudo-aleatorios gerados em computadores, o metodo hoje e um dos mais importantes em simulacoes nas mais
diversas area, principalmente em simulacoes em fsica, qumica e biologia. Apesar de ser um metodo que necessite de bastante recurso computacional, e muito
vi
avel na resoluc
ao de problemas complexos.

M
edias e Probabilidades
Para uma vari
avel aleat
oria discreta X com valores possveis (x1 , x2 , x3 , ..., xn )
e com as suas probabilidades, que tem uma certa densidade de probabilidade
dada pela func
ao fX (x), onde fX (x) e uma funcao positiva. Pode-se calcular o
valor esperado pela serie:
(g(X)) =

g(x)fX (x)

(9)

g(x)fX (x)dx

(10)

se X for discreto.Se X for contnuo:


Z
(g(X)) =

Agora se pegarmos n-amostras de X 0 s(x1 , x2 , ..., xn ),podemos calcular uma media


dessa func
ao, onde obtemos uma estimativa de Monte Carlo
n

gn (x) =

1X
g(xi )
n i=1

(11)

Do mesmo modo podemos obter uma media de g(x):


n

1X
g(X)
gn (X) =
n i=1

(12)

Se (g(X)) existe, logo, utilizando a Lei Fraca Dos Grande N


umeros (Dada uma
vari
avel aleat
oria X, a sua media amostral converge em probabilidade para o
seu valor esperado.), podemos definir um numero arbitrario pequeno . logo:
lim P (|g n (X) (g(X))| ) = 0

(13)

Ou seja, queremos dizer que quando n e muito grande, entao a probabilidade e


muito pequena de g n (X) desviar muito da media (g(X)).
Por outro lado, se levarmos em conta a Lei Forte dos Grande Numeros (Dada
uma vari
avel aleat
oria X, a sua media amostral converge quase certamente para
o seu valor esperado.), chegamos a mesma conclusao.Desde que n e grande o
suficiente, g n (X) resultante de um experimento de Monte Carlo sera perto de
(g(X)), como desejado.

Calculo da Area
de um Circulo
Para ter uma ideia geral do metodo, podemos calcular o valor da area de um circulo de raio 1, ou seja, o numero . Vamos supor uma circulo centrado em (0,0),
onde podemos inscrever o circulo em um quadrado de lado 2. Ou seja, podemos

escrever que, x e y variam no quadrado de :


x[1, 1]

y[1, 1]

Onde podemos definir A como a area do quadrado e a como a area do circulo.


Note que sorteando um ponto aleat
orio nesse intervalo, a probabilidade de cada
ponto cair dentro apenas do quadrado ou cair dentro do circulo depende das
areas.

Sorteando aleat
oriamente uma certa quatidade N de pontos dentro do quadrado,
com isso ir
a cair pontos tambem dentro do crculo, onde definimos n o numero de
pontos que cairam dentro do crculo. Logo podemos escrever a seguinte relacao:
a
n

=
=
A
N
4
Note que n < N , uma vez que pontos caem fora da area do circulo. Atraves
dessa relac
ao podemos calcular o valor de :
= 4(

n
)
N

n
e o valor medio dos pontos que caem dentro do circulo,
Note que a frac
ao N
ou seja, como foi visto na sec
ao anterior, se o valor de N a media tende
ao valor de , ou seja, podemos observar o que foi discutido acima. Para exemplificar, abaixo esta alguns valores de de acordo com o numero de pontos
N:
N = 10 = 2.7999999999999998

N = 100 = 3.2000000000000002
N = 1000 = 3.1640000000000001
N = 10000 = 3.1212000000000000
N = 100000 = 3.1425600000000000
N = 1000000 = 3.1433520000000001
N = 10000000 = 3.1428560000000001
N = 100000000 = 3.1416674400000000
Lembrando que o valor de e aproximadamente 3.141592653589793.
Esse programa pode ser encontrado no Apendice I. Como trabalhamos com
numeros aleat
orios, ocorrem flutuacoes em torno de uma media, com isso podemos usar conceitos de estatisticas para estimar o erro. Como ocorrem flutuacoes,
existe uma certa variancia, ou seja, podemos calcular um desvio quadratico.

6
O n
umero medio e dado por:
n=

N
1 X
ni
N i=1

Como a variancia em torno da media e independente e igualmente distribuidas, podemos concluir que:

2 =

N
1 X 2
1
1
1
ni = 2 = 2 N n2 i = 2 = n2 i = = ni
2
N i
N
N
N

logo e possvel notar que a variancia decresce com a raiz do n


umero de pontos
gerados. Esse comportamento geralmente e comum no metodo de Monte Carlo,
o que mostra que o metodo e de convergencia lenta comparado a outros metodos
de integrac
ao numerica.
Logo, para obter um erro 2 vezes menor, precisamos de 4 vezes mais pontos.
Para conseguir uma casa de precisao, precisamos de 100 vezes mais pontos, o
que torna o metodo enviavel para baixa dimensionalidade.
A vantagem de utilizar a Integracao Monte Carlo e quando vamos para altas
dimensionalidades, uma vez que o erro e o mesmo independente da dimensionalidade do problema, ja que ele tem origem apenas na distribuicao aleatoria. Aqui
podemos citar como exemplo a grande utilidade do metodo principalmente em
mecanica estatstica, uma vez que se trabalha no espaco de fase, onde geralmente esse espaco possui grandes dimensionalidade e precisamos muitas vezes
utilizar calculo de integrais nesse espaco, sendo assim, a Integracao Monte Carlo
sobressai sobre os demais metodo, sendo muito mais viavel.

M
etodo de Monte Carlo- Metr
opolis
No caso do problema do modelo de Ising, temos que o Hamiltoniano, como ja
foi visto e dado por:
X
X
H=J
Si Sj H
Si
<i,j>

onde Si = 1.
Para o modelo em 1 dimensao, vimos que nao existe transicao de fase. No
caso bidimensional e com Condicoes Periodicas de Contorno, e possvel mostrar
que existe uma transic
ao de segunda ordem com divergencia no calor especfico
e na suceptibilidade.

Algoritmo de Metr
opolis
A ideia geral do algoritmo de Metropolis consiste em escolher uma sequencia
de configurac
oes independentes, constituindo uma cadeia de Markov. As configurac
oes iniciais geradas estao longe da situacao de equilbrio, mas a medida
que o tempo pasa, passa a ser gerada muitas configuracoes tpicas da situacao
de equilbrio, onde a partir da e possvel coletar as medias das grandezas interessadas.

7
As configurac
oes de uma rede sao geradas a partir de estados anteriores,
utilizando uma probabilidade de transicao, que depende da diferenca de energia
do estado inicial e final.
A sequencia de estados produzidos nao segue a ordem de tempo, esse e
um dos grandes problemas do metodo, uma vez que nao e possvel acompahar
a evoluc
ao temporal do sistema. O metodo mais utilizado quando se deseja
estudar a evoluc
ao no tempo e a Dinamica Molecular.
No caso do Monte Carlo, existe o chamado tempo de Monte Carlo , para
definir uma sequencia, que varia de acordo com o problema, mas nao corresponde a evoluc
ao temporal do sistema. Uma analogia do tempo de Monte
Carlo e pensar em um filme, onde existe uma sequencia de fotos, passando a
sequencia com que foram tiradas elas mostram a evolucao temporal, no caso do
Monte Carlo e como se recortassemos todas as fotos e as embaralhassemos e
colocassemos em uma ordem qualquer. Esse seria o tempo Monte Carlo.
Como foi introduzido rapidamente, as cadeias de Markov esta no coracao
do metodo de Metropolis. Como ja vimos a probabilidade de transicao por
unidade de tempo entre as configuracoes y e y 0 , segue a equacao mestra:
X
P (y, t) X
=
P (y 0 , t)(y 0 7 y)
P (y, t)(y 7 y 0 )
t
0
0
y

No equilbrio, ou seja, ap
os percorrer varias configuracoes (um numero de elementos grandes de sequencia) as probabilidades devem tender para os valores
de Gibbs,
P0 (y) =

1
exp(H)
Z

Onde Z e a func
ao Canonica de particao. Como ja vimos, uma outra condicao
necess
aria e suficiente para o equilbrio e dada pela equacao do balanco detalhado:
P0 (y)(y 7 y 0 ) = P0 (y 0 )(y 0 7 y)
logo, podemos facilmente concluir que
(y 7 y 0 )
1
= exp(H)
0
(y 7 y)
Z
Note que esta equac
ao n
ao determina a probabilidade de transicao de forma
unvoca, podendo haver varias escolhas desde que respeite esta relacao.
A relac
ao escolhida por Metr
opolis:
(y 7 y 0 ) =

1
exp(H)

(y 7 y 0 ) =

H > 0

H < 0

Onde e tempo requerido para flipar o spin.


Um algoritmo que ilustra a condicao de metropolis no caso do modelo de
Ising:

Esse procedimento se repete indefinidamente ate que todos os spins da rede


tenham sido percorridos. A rede pode ser percorrida de 2 maneira: linear
(pegando os atomos de forma contnua) e aleatoria (escolhendo os stios de forma
aleat
oria) , ambas s
ao equivalentes, desde que se passe pelo maior numero de
stios possveis.
Note que este processo reproduz de fato as probabiliades de transicao do
algoritmo de Metr
opolis. Desprezando um certo numero de configuracoes iniciais, onde essas ainda refletem a escolha inicial da rede, apos um certo tempo,
e possvel tirar as medias de interesse, uma vez que o sistema estabiliza na
configurac
ao mais prov
avel.
Um exemplo de um programa que segue esse algoritmo pode ser encontrado
no apendice II, onde se pode obter a magnetizacao, suceptibilidade magnetica,
calor especfico,energia e a distribuicao dos spins na cadeia.

Resultados Obtidos a partir do algoritmo de Metr


opolis
Materiais Ferromagn
eticos
A teoria de Heitler London para a molecula de hidrogenio, mostra claramente
que a interac
ao de troca direta pode ser resumida como a repulsao coulombiana,
quando se faz a combinacao linear dos orbitais atomicos localizadas nos atomos
vizinhos, na regi
ao de recobrimento levando-se em conta o princpio de Pauli.
Dependendo da paridade funcoes de onda espacial, duas configuracoes dos
spins (singleto ou tripleto) podem minimizar a energia. Caso o estado de energia
mais baixo e o sigleto temos uma interacao do tipo Antiferromagnetica. Se o

9
tripleto tem energia mais baixa temos interacao ferromagnetica. Ao observarmos o hamiltoniano de Heisenberge (ate mesmo o de Ising) e possvel concluir
que temos ent
ao ferromagnetismo com J > 0 e antiferromagnetismo com J < 0.
Como ja foi dicutido anteriormente, materiais ferromagneticos apresentam magnetizac
ao espont
anea
abaixo de uma certa temperatura crtica Tc e nula a partir dessa temperatura. Nessa simulc
ao utilizando o metodo de Metropolis, simulamos uma rede
quadrada de 2500
atomos, utilizamos 50000 passos de Monte Carlo, J=1, campo
externo = 0. Para o modelo de Ising em 2 dimensoes, e possvel perceber esse
aparecimento da magnetizac
ao espontanea:

Como trabalhamos com um metodo numerico existe um erro associado, por


isso existe uma variac
ao principalmente proximo ao ponto crtico, uma vez que
essa
area tambem apresenta grande flutuacao.
A partir de um ponto crtico, que pela analise do grafico e aproximadamente
2.27 KB T /J, e possvel notar que acima dessa certa temperatura o material
deixa de ter magnetizac
ao espontanea e passa a se comportar como um material
paramagnetico, ocorrendo assim uma transicao de fase de ferromagnetico para
um estado paramagnetico.
Se consideramos o modelo em duas ou tres dimensoes e possvel notar que a
baixas temperaturas haver
a um ordenamento dos spins (ferromagnetico) e a altas temperaturas esse sistema ser
a desordenado (paramagnetico). Como vimos,
para o modelo unidimensional, n
ao deve haver divergencias, o que nao e observado experimentalmente, mas se extendemos o modelo para 2 e 3 dimensoes, e
possvel perceber essa divergencia.

10

Como o sistema e finito, ocorre uma curva, ja que temos poucos atomos
no sistema (nesse caso 2500 atomos), no limite termodinanico essa curva deve
divergir.Ocorre tambem uma divergencia na suceptibilidade magnetica:

Podemos perceber que a energia aumenta de acordo com a temperatura,


como era esperado,alem de ocorrer um ponto de inflexao na temperatura crtica,
como pode ser observada no grafico abaixo:

11

possivel tambem observar a correlacao entre os spins, conforme foi tratado


E
no curso. A rede abaixo e uma rede de 10.000 atomos em uma rede quadrada,
onde os pontos preto representam os spins direcionados para cima. Foram utilizados 100.000 passos de Monte Carlo. Note que podemos observar o comportamento dos spins:

12

Note que para baixas temperaturas os spins estao ordenados, sendo a origem
da magnetizac
ao espontanea. Conforme a temperatura aumenta e se aproxima
da temperatura crtica e possvel observar bolsoes, onde aparece uma correlac
ao de longa distancia. Apos a temperatura crtica o sistema comeca a flutuar muito, onde os spins estao tanto para cima como para baixo, onde quando
calculada sua media e zero.

Materiais Antiferromagn
eticos
O antiferromagnetismo e o ordenamento magnetico de todos os momentos magneticos
de uma amostra, na mesma direcao mas em sentido inverso (por pares, por exemplo, ou uma subrede frente a outra).
Como o ferromagnetismo, a interacao antiferromagnetica se destroi a alta
temperatura por efeito da entropia. A temperatura acima da qual nao se aprecia o antiferromagnetismo se chama temperatura de Neel. Acima desta, os
compostos s
ao tipicamente paramagneticos.
Os antiferromagnetos nao tem uma magnetizacao espontanea macroscopica
a baixas temperaturas. Abaixo de uma temperatura critica TN, a Magnetizacao

13
e a susceptibilidade diminuem com a temperatura tendendo a 0 quando T 0.
Acima de TN o comportamento e de um paramagneto com uma temperatura de
Curis Weiss negativa. Este comportamento que foi previsto por Neel, e devido
a um acoplamento antiparalelo de momento magneticos iguais e vizinhos, e que
foi confirmado por experimentos de difracao de neutrons.
Os dados abaixo foi simulado um antiferromagneto em uma rede de 2.500
atomos, J=-1, Campo externo nulo, e com 50.000 passos de Monte Carlo.

Note que a magnetizac


ao e nula, mesmo a baixa temperatura, diferentemente dos materiais ferromagneticos. Como e possvel observar que no calor
especfico ocorre uma divergencia perto da temperatura crtica, similar ao caso
do ferromagnetico:

No caso da Energia do sistema e possvel notar um ponto de inflexao perto


da temperatura crtica, note que a energia aumenta com a temperatura, como
era esperado, e se assemelha muito com o grafico da energia do ferromagneto.

14

Podemos observar o estado antiferromagnetico a partir dos diagramas dos


spins abaixo e possvel notar o emparelhamento dos spins, onde eles tendem a
se direcionar de forma oposta aos seus vizinhos:

Acima de uma certa temperatura, o estado passa a ser paramagnetico como


pode ser notado no diagrama abaixo onde os spins estao de forma completamente
desordenados:

15

16

APENDICES

17

19

APENDICE I - C
alculo do numero pi
Nesse calculo consideramos, como foi descrito, uma circunferencia de raio 1
inscrita em um quadrado de aresta 2 esse programa em linguagem fortran exemplifica a soluc
ao do problema do calculo da area desse circulo atraves do
Metodo de Monte Carlo.
!
!
!
!
!
!
!
!

****************************************************************
Calculo de Area de um circulo de raio 1
Carlos M. O. Bastos, Luciana, Rafaela
Trabalho da disciplina de Mecanica Estatstica
Departamento de Fsica - DF
Universidade Federal de S
ao Carlos - Brasil
****************************************************************

! Calculo da area do circulo lancando pontos em um quadrado


program circulo
implicit real*8 (a-h,o-z)
implicit integer*4 (i-n)
dimension n (100000000)
print*, Digite o numero de pontos (2- 100000000)
read(*,*) Ninter
area = 3.141592653589793d0
na = 0
do i= 1 , Ninter
x= 2.d0 * rand() - 1.d0
y = 2.d0* rand() - 1.d0
r = x**2+y**2
if (r.le.1.d0) then
n(i) = 1
else
n(i) =0
end if
na=na+n(i)
enddo
!media de n(i)
aig=dfloat(na)/dfloat(Ninter)
!variancia de n(i)
sigma = 0.d0
do i=1, Ninter
sigma=sigma + (dfloat(n(i))-aig)**2
enddo
sigma=sqrt(sigma/dfloat(Ninter -1))
!erro na media de n(i)
erro = sigma/sqrt(dfloat(Ninter))
write(*,*) Ninter , interac
oes

20
write (*,*) a= , 4.d0*aig , +-, 4.d0*erro
write (*,*) MC/exato , 4.d0*aig/area
end program

APENDICE II- Algoritmo de Metropolis para o


Modelo de Ising Bidimensional
O programa a seguir calcula o problema de Ising em 2 dimensoes, ele gera 5
arquivos de sada: magnetizacao por temperatura(mxT.dat), calor especfico
por temperatura(cxT.dat), suceptibilidade magnetica por temperatura(XxT.dat),
energia por temperatura(ExT.dat) e o mapeamento dos spins na ultima temperatura calculada(mapeamento.dat).
O programa necessita de um arquivo de entrada, que e o entrada.txt, que
deve estar na mesma pasta do programa. La estao os dados que o usuario pode
controlar, um exemplo e colocado no Apendice III:
.
.
.
! ****************************************************************
! Algoritmo de Metr
opolis - Modelo de Ising Bidimensional
!
! Carlos M. O. Bastos, Luciana, Rafaela
! Trabalho da disciplina de Mecanica Estatstica
! Departamento de Fsica - DF
! Universidade Federal de Sao Carlos - Brasil
! ****************************************************************
.
program ising2d
implicit real*8 (a-h,o-z)
implicit integer (i-n)
dimension s(1000,1000)
dimension rM(10000000)
dimension rener(10000000)
dimension c(500)
open(1,file=entrada.txt)
Print*, Digite 1 para gerar uma rede uniforme e 0 para gerar uma rede
aleat
oria
read (*,*) istart
read (1,*) N
read (1,*) L
read (1,*) cJ
read (1,*) H
read (1,*) Ti
read (1,*) Tf
read (1,*) rdt

21
read (1,*) cpp
! Definindo a rede inicial
T=Ti
beta =(1/Ti)
open(10, file=mxT.dat)
open(12,file=ExT.dat)
open(14,file=XxT.dat)
open(15,file=cxT.dat)
if (istart.eq.1) then
do j = 1,N
do i = 1,N
s(i,j) = 1
end do
end do
Else
do j= 1, L
do i = 1, L
call randomn umber(rn)
if (rn.le.0.5) then
s(i,j) = -1
else
s(i,j) = 1
end if
end do
end do
end if
j=0.d0
i=0.d0
do while (T.le.Tf)
call initr andoms eed()
rmq = 0.d0
req = 0.d0
!Escolhendo um spin da rede
rM = 0.d0
rM1 = 0.d0
rM2 = 0.d0
rE = 0.d0
icont = 0.d0
do k=1,N
rM(k) = 0.d0
rener(k) = 0.d0
do j = 1, L
do i = 1, L
! impondo cond. period. de contorno
i1 = L - mod(L-i+1,L)
i2 = 1 + mod(i,L)
j1 = L - mod(L-j+1,L)
j2 = 1 + mod(j,L)
sj = s( i1, j ) + s( i2, j ) + s( i, j1 ) + s( i, j2 ) !somatoria de todos os
primeiros vizinhos

22
. !Calculando a prob. de flipar
p = exp( -2.d0 * beta * ( cJ * s(i,j) * sj + H * s(i,j) ) )
if (p.ge.1.d0) then
s(i,j) = -s(i,j)
icont = icont + 1
else
call randomn umber(r)
if (r.le.p) then
s(i,j) = -s(i,j)
icont = icont + 1
endif
endif
!somando a magnetizacao
. rM(k) = rM(k) + s(i,j)
!verificando as C.P.C.
if (i.ge.2.and.j.ge.2) then
rener(k) = rener(k) - cJ * s(i,j) * ( s(i-1,j) + s(i,j-1) ) - H * s(i,j)
endif
if (i.eq.L) then
rener(k) = rener(k) - cJ * s(1,j) * s(L,j) - H * s(1,j)
endif
.
if (j.eq.L) then
rener(k) = rener(k) - cJ * s(i,1) * s(i,L)
endif
end do
end do
! C
alculo das Medias
rM(k) = rM(k) / dfloat(L**2)
rener(k) = rener(k) / dfloat(L**2)
end do
req=0.d0
rmq=0.d0
rmm=0.d0
rme = 0.d0
igf=cpp*N
ihkj = igf
k= igf
do while((ihkj).le.N)
rmq = rM(k)**2+ rmq
rmm = rM(k) + rmm
rme = rener(k) + rme
req = rener(k)**2 + req
k=k+1
ihkj=ihkj+1
end do
!print*, Media da Magnetizacao: ,rmm/dfloat(ihkj) , Media da energia:,rme/dfloat(ihkj)
open(5,file=mapeamento.dat)
rmqf=0.d0

23
reqf=0.d0
rmqf= (rmq/dfloat((N-igf)))-(rmm/dfloat((N-igf)))**2
reqf= (req/dfloat((N-igf)))-(rme/dfloat((N-igf)))**2
write(*,*) T = , (T), E: , rme/dfloat(N-igf),m: , rmm/dfloat((Nigf)),X:, rmqf,c:,reqf
write(10,*) (T), rmm/dfloat(N-igf)
write(12,*)(T), rme/dfloat(N-igf)
write(14,*) (T),rmqf
write(15,*) (T), reqf
T=T+rdt
beta=(1/T)
end do
do j = 1,L
do i = 1,L
if (s(i,j).eq.1) then
write(5,*) i,j
end if
icont=icont+1
end do
end do
close(5)
close(10)
close(12)
close(14)
close (15)
end
SUBROUTINE initr andoms eed()
integer*4 rdt,rds,clock,rdj,rdn
INTEGER, DIMENSION(:), ALLOCATABLE :: seed
. CALL RANDOMS EED(size = rdn)
ALLOCATE(seed(rdn))
.
CALL SYSTEMC LOCK(COU N T = clock)
.
seed = rdclock + 37 * (/ (i - 1, i = 1, rdn) /)
CALL RANDOMS EED(P U T = seed)
DEALLOCATE(seed)
END SUBROUTINE

APENDICE III - Arquivo de entrada do programa de Metr


opolis
Exemplo de arquivo de entrada, entrada.txt
.
.
50000 !Numero de Monte Carlo Step
50 !Numero de
atomos por lado
1 ! Constante de Interac
ao de troca

24
0 ! Campo Externo aplicado
1.5d0 !Temperatura inicial
3.5d0 !Temperatura final
5.0d-3 !incremento da Temperatura
0.20d0 !porcentagem dos passos iniciais a serem desprezados na termalizacao
( 1)

Vous aimerez peut-être aussi