Grupo - Ising 2D: mudanças entre as edições

De Física Computacional
Ir para navegação Ir para pesquisar
 
(94 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''
'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''


sepa falar algo aqui tb
O objetivo deste trabalho é estudar o comportamento de um sistema de Ising spins a partir do método de Monte Carlo. O problema do ferromagnetismo em um material foi abordado utilizando o algoritmo de metrópolis, considerando que o sistema interagia com um reservatório térmico externo. Várias propriedades do sistema foram investigadas, tais como a magnetização total, a energia por spin, o calor específico e a suscetibilidade magnética do sistema.


== Introdução ==
== Modelo de Ising ==


-talvez falar sobre materiais ferromagnéticos;
A denominação "modelo de Ising" é utilizada para tratar um sistema de spins de Ising <math>s={s_1,s_2,..s_i,...s_N}</math> que podem assumir valor <math>+1</math> e <math>-1</math>, respectivamente "up" e "down", onde <math>N</math> é a quantidade máxima de spins, ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. A evolução desse sistema de spins é descrito por uma dinâmica que possui as propriedades do processo de Markov de balanceamento detalhado e ergocidade, garantindo ao sistema que sua evolução o leva a estados estacionários de equilibrio descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.


-falar sobre os conceitos de mec estatística necessários?;
O modelo de Ising 2D tratado neste trabalho possui seus spins organizados em uma rede quadrada bidimensional de tamanho <math>N=L\times L</math> com vizinhança de Von Newmann e condições de contorno periódicas. A energia desse sistema é descrita pela equação <ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref>


-falar sobre o sistema de spins (geometricamente)?;
<math>E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,</math>


Sobre Mecânica Estatística:
onde <math>J</math> é a taxa de transição, <math>H</math> representa o campo magnético externo e <math>\mu</math> o momento magnético associado com cada spin. O primeiro somatório é sobre todas as vizinhanças de spins e o segundo sobre todos os spins. Neste trabalho, particularmente, escolhemos <math>J=1</math> para favorecer menores energias em spins apontados para cima (<math>s=1</math>), <math>\mu = 1 </math> e <math>0\le H</math>


Considera-se um sistema governado por um Hamiltoniano em contato com um reservatório térmico com temperatura <math>T</math> constante. O reservatório térmico, considerada uma pequena perturbação no sistema, troca energia com o sistema Hamiltoniano fazendo-o visitar diversos níveis de energia enquanto tende à temperatura do <math>T</math>.
A magnetização desse sistema é dada pela soma de todos os valores de spins:


Uma forma de tratar essa interação é dando ao sistema uma dinâmica que o fará visitar diversos estados diferentes. Ou seja, a partir de uma dinâmica, o sistema pode passar de um estado <math>\mu</math> para outro estado <math>\nu</math> com uma probabilidade <math>P(\mu \rightarrow \nu)</math>, conhecida como taxa de transmissão. Também consideramos o peso <math>w_{\mu}(t)</math>, que é a probabilidade de o estado se encontrar no estado <math>\mu</math> no tempo <math>t</math>.
<math>M = \sum_{i=1}^N <s_i> </math>.
Assim torna-se possível chegar a uma equação mestra capaz de descrever a taxa pela qual o sistema está alcançando um estado <math>\mu</math>:


<math>\frac{dw_{\mu}}{dt} = \sum_{\nu}[w_{\mu}(t)P(\nu \rightarrow \mu) - w_{\nu}(t)P(\mu \rightarrow \nu)]</math>
Utilizando a abordagem da mecânica estatística, conforme descrito por Gibbs (1902), podemos estimar valores médios de propriedades macroscópicas de um sistema termodinâmico, como energia ou magnetização, a partir de uma amostragem de Boltzmann relativa ao valor da propriedade sobre todos os estados do sistema. Sendo assim, podemos estimar o valor energia do nosso sistema em estado de equilibro termodinâmico como sendo


Nosso sistema diz respeito a um corpo macroscópico formada por partes microscópicas, e a dinâmica diz respeito a essas últimas partes. Entretanto, também estamos interessados em características macroscópicas que emergem do micro. Dada uma característica <math>Q</math>, que assume o valor <math>Q_{\mu}</math> no estado <math>\mu</math>, podemos calcular o valor esperado (esperança) de <math>Q</math> em um tempo <math>t</math>:
<math><E> = \frac{1}{Z}\sum_{\nu}E_{\nu} e^{-E{\nu}/kT}</math>


<math><Q> = \sum_{\mu}Q_{\mu}w_{\mu}(t)</math>
onde Z é a função partição <math>Z = \sum_{\nu} e^{-E{\nu}/kT} </math>, <math> E_{\nu}</math> é a energia do sistema no estado <math>\nu</math>, <math>T</math> é a temperatura de um reservatório em contato com o sistema e <math>k</math> é a constante de Boltzmann, escolhida nesse trabalho como tendo valor unitário. O mesmo serve para a magnetização:


Equilibrio:
<math><M> = \frac{1}{Z}\sum_{\nu}|M_{\nu}| e^{-E{\nu}/kT}</math>, onde <math><M></math> é medido sobre o módulo da <math>M_{\nu}</math>, que é a magnetização no estado <math>\nu</math>.


Consideramos o estado de equilíbrio do sistema, caracterizado por <math>dw_{\mu}/dt = 0</math>, ou seja, probabilidade do sistema alcançar um estado <math>\mu</math> é igual à probabilidade de alcançar um estado <math>\nu</math>.
Outra medida relevante é a suscetibilidade magnética do sistema, dada por  


Denotamos <math>p_{\mu} = \lim_{t \rightarrow \infty} w_{\mu}(t) </math>
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math>
como a probabilidade de encontrar <math>\mu</math> no estado de equilíbrio. Sabemos que para um sistema em equilíbrio térmico com o reservatório térmico a uma temperatura <math>T</math> a probabilidade é dada pela distribuição de Boltzmann, como demonstrado por Gibbs (1902):


<math>p_{\mu} = \frac{1}{Z} e^{-E{\mu}/kT}</math>
onde <math>N</math> é o número total de spins <math>(L^2)</math>, <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.
Por fim, temos a medida do calor específico por spin do sistema, dada por


onde Z é a função partição
<math>c_{spin} = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math>


<math>Z =  \sum_{\mu} e^{-E{\mu}/kT} </math>
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação.


sendo assim, podemos encontrar a esperança de uma quantidade <math>Q</math> para o sistema em estado de equilíbrio a partir da equação
== O Método de Monte Carlo ==


<math><Q> = \frac{1}{Z}\sum_{\mu}Q_{\mu} e^{-E{\mu}/kT}</math>
=== Algorítmo de Metrópolis ===
Para o método de Monte Carlo responsável por gerar configurações do sistema, utilizaremos o Algorítmo de Metropolis. O algoritmo funcionará escolhendo repetidamente um novo estado <math>\nu</math> e aceitando ou rejeitando o estado de acordo com uma probabilidade de aceitação <math>A(\mu \rightarrow \nu)</math> de transitar de um estado antigo <math>\mu</math> para o novo estado <math>\nu</math>. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado.
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza o método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente.


Processos de Markov:
Temos que a condição de balanceamento detalhado é dada por <ref>M. E. J. Newman, G. T. Barkema, "Monte Carlo Methods in Statistical Physics". Oxford University Press Inc., New York, 1999.</ref>:


Um processo de Markov é um mecanismo que possibilita a geração de um novo estado <math>\nu</math> a partir de um estado atual <math>\mu</math>. A probabilidade desse acontecimento é dado pela probabilidade de transição <math>P(\mu \rightarrow \nu)</math>. Nesse processo, as probabilidades de transição devem satisfazer três condições:
<math>\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}, \qquad (3)</math>


1)<math>\frac{dP}{dt} = 0</math> : As probabilidades de transição não devem variar com o tempo;
onde <math>\Delta E = E_\nu - E_\mu</math>.


2)<math>P(\mu \rightarrow \nu) = f(\mu,\nu) </math> : As probabilidades de transição são função apenas do estado atual <math>\mu</math> e do estado gerado <math>\nu</math>;
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\nu \rightarrow \mu)</math>, portanto iremos igualar essa probabilidade a 1.
Para que <math>(3)</math> seja respeitada, iremos definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:


3)<math>\sum_{\nu}P(\mu \rightarrow \nu) = 1</math>.
<math>A(\mu \rightarrow \nu) = \begin{cases}
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\
1, \qquad \qquad \text{caso contrario}.
\end{cases}</math>


Em uma simulação de Monte Carlo, utilizamos repetidamente o processo de Markov, gerando uma cadeia de Markov de geração de novos estados. O processo de Markov em atuação é escolhido de forma que após diversos passos de Monte Carlo serão produzidos uma sucessão de estados que surgem de acordo com a distribuição de Boltzmann. Conforme isso acontece, dizemos que o sistema se dirige ao equilíbrio.
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.


Para que o sistema se dirija ao equilíbrio, são impostas mais duas condições sobre os processos de Markov.
=== Implementação ===
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicas, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spin da matriz poderá assumir apenas os valores de +1 e -1, representando a magnetização desse spin.


1)Ergocidade: A partir de diversos processos de Markov ao longe de suficientes passos de Monte Carlo, nosso sistema deve ser capaz de visitar todos os estados possíveis. Essa condição permite que dado um estado <math>\gamma</math> e um estado atual <math>\mu</math>, <math>P(\mu \rightarrow \gamma) = 0</math>. Isso significa que um determinado estado pode não ser alcançado do estado atual do sistema, entretanto, após uma série de passos, ele deve ser alcançado a partir de algum estado <math>\nu</math> tal que <math>P(\nu \rightarrow \gamma) > 0</math>.
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que fará com que tenhamos uma configuração aproximadamente aleatória, garantido uma magnetização média do sistema de aproximadamente 0.


2)Balanceamento detalhado:
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação <math>(1)</math> e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.
depois
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação <math>(1)</math>, temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever


== O Modelo de Ising ==
<math>\Delta E = 2s_k^\mu(J\displaystyle \sum_j s_{j} + H)</math>


A denominação "modelo de Ising" é utilizada para tratar um sistema de psins de Ising ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. Esse sistema de spins é descrito por uma dinâmica que possui balanceamento detalhado e que o leva a estados estacionários de equilibrio, descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.
onde o somatório se dá nos vizinhos de <math>s_k</math> e, como os vizinhos de <math>s_k</math> não mudam de estado, <math>s_j^\mu = s_j^\nu</math> para qualquer <math>j</math>.


O modelo de Ising é construido a partir de uma rede de <math>N</math> spins de Ising com interações entre primeiros vizinhos. Os spins de Ising apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que  


Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref>
<math>M_\nu = M_\mu + 2s_k^\nu.</math>


<math>
Antes de começar o registro das medidas de magnetização e energia do sistema é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo para eliminar problemas transientes do sistema e o sistema tender a um estado de equilíbrio. Após esse tempo, inicia-se o registro. Os valores do calor específico por spin e da susceptibilidade magnética são feitos após o fim da dinâmica de Monte Carlo.
E = - J \sum_{<ij>} s_i s_j - H\sum_{i} s_i, \qquad (1)
</math>


onde a soma se dá sobre todos os pares de spins mais próximos entre si, <math>J</math> é a constante de correlação, que assumimos positiva e <math>H</math> é um campo magnético externo que atua sobre os spins.
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. Também escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado. A partir disso, podemos utilizar o método de amostragem por importância para medir as médias da energia e da magnetização, além das médias da magnetização quadrada e da energia quadrada:


Uma análise qualitativa da expressão para a energia do microestado acima, inicialmente desconsiderando o campo magnético <math>H</math>,  já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos, buscando um estado de menor energia.
<math><E> = \frac{1}{MCS}\sum_{\nu}E_{\nu}</math>


Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]
<math><E^2> = \frac{1}{MCS}\sum_{\nu}E_{\nu}^2</math>


Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/>
<math><M> = \frac{1}{MCS}\sum_{\nu}|M_{\nu}|</math>


<math>
<math><M^2> = \frac{1}{MCS}\sum_{\nu}M_{\nu}^2</math>
P_{\alpha} \propto e^{-E_{\alpha}/k_b T} \qquad (2)
</math>


onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.
onde <math>MCS</math> é a quantidade de passos de Monte Carlo dadas.


Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por
== Resultados ==
Para analisarmos os resultados obtidos pelo método de Metropolis, realizamos diversas medidas em sistemas com dimensões <math>20\times20</math>, <math>36\times36</math> e <math>48\times48</math>. Utilizamos para todas as medidas um tempo de equilíbrio de <math>10^5</math> Monte Carlo Steps e fizemos <math>10^6</math> medidas.


<math>
Primeiramente, fizemos medidas para sistemas sem campo magnético, ou seja, <math>H=0</math>. Com isso, montamos histogramas da magnetização por spins e da energia por spins do sistema para cada um dos 3 casos em três diferentes temperaturas:
M = \sum_{\alpha} M_{\alpha} P_{\alpha},
</math>


== Teoria do Campo Médio: Uma abordagem aproximada ==
[[Arquivo:Hist20.png|frameless|upright=5]]
[[Arquivo:Hist36.png|frameless|upright=5]]
[[Arquivo:Hist48.png|frameless|upright=5]]


O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores (ver seção sobre o método Monte Carlo).
Imediatamente é possível notar que, para todas as temperaturas, quanto maior o número de spins, menor é a variância da energia, com as larguras das gaussianas ficando menores. Para a magnetização, para temperaturas menores que a temperatura crítica <math>T_c \approx 2.269</math> e tempos de simulação suficientemente longos, era esperado que tivéssemos duas gaussianas simétricas e de mesma altura, já que os spins estão livres para assumirem valores de +1 e -1. Esse resultado é facilmente observado para <math>T=2.2</math> no sistema 20x20, mas para os sistemas 36x36 e 48x48 as gaussianas possuem alturas diferentes. Esses resultados são indicativos do efeito de redes maiores, onde temos que quanto maior a rede, menor a probabilidade de haver mudança de magnetização do sistema, exigindo tempos de simulação cada vez maiores. Esse efeito pode ser observado ao compararmos as séries temporais da magnetização dos três sistemas:


A magnetização do sistema está relacionada ao alinhamento de spin médio <math><s_i></math>. A magnetização total a uma temperatura <math>T</math> para um sistema de <math>N</math> spins é dada por
[[Arquivo:Séries.png|thumb|upright=5|none|alt=Alt text|Séries temporais da magnetização para os sistemas 20x20 (esquerda), 36x36 (centro) e 48x48 (direita).]]


<math>
Como podemos ver pelas séries temporais, no mesmo período de tempo, o sistema 20x20 troca de estado diversas vezes, enquanto o sistema 36x36 troca apenas uma vez para o estado -1 e o sistema 48x48 não troca nenhuma vez para o estado -1.
M = \sum_i <s_i> = N <s_i>,
Além disso, pelos histogramas, é possível notar que quanto maior a temperatura em relação à temperatura crítica, mais a magnetização do sistema tende a zero, ou seja, as duas gaussianas vão se somando em <math>M=0</math>, resultado da transição de fase do ferromagnetismo para o paramagnetismo.
</math>


[[Arquivo:MeExT.png|thumb|upright=5|none|alt=Alt text|Energia (esquerda) e magnetização (direita) em função da temperatura para diferentes tamanhos de rede. <math>T_c \approx 2.269</math>.]]


Se adicionarmos um campo magnético ao problema, a função de energia do sistema se torna
Fazendo um gráfico para a energia em função da temperatura e da magnetização em função da temperatura para cada um dos sistemas, podemos ver que a energia aumenta com o aumento da temperatura, enquanto a magnetização decresce com o aumento da temperatura. Também é possível notar que em ambos os gráficos os resultados para os três tamanhos de sistemas são aproximadamente iguais até a a temperatura aproximar-se da temperatura crítica. Conforme a temperatura se aproxima da transição de fase, os resultados deixam de ser aproximadamente iguais, pois a energia passa a ser maior para redes maiores e voltam a tornarem-se similares após <math>T=2.5</math>. Para a magnetização, ao se aproximar da transição de fase, a magnetização decresce muito mais rapidamente em redes maiores, com os resultados tendendo a zero com o aumento da temperatura.


<math>
E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,
</math>


onde <math>H</math> representa o campo magnético e <math>\mu</math> o momento magnético associado com cada spin. Este campo faz com que os spins tendam a se orientar paralelamente a <math>H</math>, visto que isso diminui a energia. Para obter a aproximação de campo médio, consideramos que o sistema é constituído de um único spin <math>s_i</math>, de tal forma que a única energia envolvida é a energia de campo. As probabilidades de encontrar o sistema de um único spin nos seus dois possíveis estados são dadas por
[[Arquivo:SeXxT.png|thumb|upright=5|none|alt=Alt text|Calor específico em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]
[[Arquivo:XxT.png|thumb|upright=5|none|alt=Alt text|Suscetibilidade magnética em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]


<math>
Analisando os gráficos da suscetibilidade magnética e do calor específico em função da temperatura, podemos perceber que tanto a suscetibilidade magnética quanto o calor específico aumentam quando a temperatura se aproxima da temperatura crítica, com ambos os gráficos possuindo curvas que se tornam mais estreitas próximo de <math>T_c</math>, com os gráficos sendo mais estreitos em redes maiores. Também podemos ver que ambos os gráficos começam a decair um pouco após a temperatura crítica. Isso significa que as variâncias da energia e da magnetização aumentam consideravelmente com a transição de fase do sistema, implicando no aumento da suscetibilidade magnética e do calor específico ao redor da temperatura crítica. É possível perceber que esse efeito é maior em redes maiores, onde há uma grande diferença entre os valores das redes de diferentes tamanhos. No gráfico com a faixa de temperatura maior, podemos ver que para temperaturas menores que T = 2.1 e maiores que T = 2.8 tanto a suscetibilidade magnética quanto o calor específico possuem valores aproximadamente iguais para todos os tamanhos de rede.
\begin{cases}
P_+ = C e^{+\mu H/k_b T},\\
P_- = C e^{-\mu H/k_b T},
\end{cases}
</math>


onde <math>C</math> é um coeficiente que pode ser determinado tomando a condição de que as duas probabilidades se somem a 1. Portanto,
=== Um resultado de redes grandes ===
Algo que pode resultar de simulações com redes grandes é o aparecimento de blocos de spins. Em uma rede suficientemente grande, pode ocorrer o aparecimento de aglomerados (clusters) de spins de determinada magnetização e esses aglomerados podem acabar crescendo até que se formem blocos de spins com uma direção que dão um resultado não tão esperado para o sistema. Um exemplo pode ser visto ao simularmos um sistema <math>100\times100</math> com temperatura <math>T=2.0</math>. Nessas condições, o sistema tende a ficar aproximadamente estável com magnetização aproximadamente +1 ou -1. Contudo, eventualmente pode ocorrer de uma simulação acabar com uma magnetização variando próximo de zero, como é possível ver na série temporal:


<math>
[[Arquivo:Serie100.png|thumb|upright=3|none|alt=Alt text|Série temporal da magnetização. É possível notar que regularmente a série converge rapidamente para um estado com magnetização +1 (note que poderia também convergir para -1), mas há a possibilidade de ficar oscilando próximo de <math>M=0</math>.]]
C = \frac{1}{e^{+\mu H/k_b T} + e^{-\mu H/k_b T}},
</math>


A média de <math>s_i</math> pode ser calculada por
Ao olharmos um snapshot do estado de ambos os sistemas conseguimos entender o que está acontecendo:


<math>
[[Arquivo:Snapshots.png|thumb|upright=4|none|alt=Alt text|Snapshot de uma simulação ordinária (esquerda) de um sistema 100x100 a uma temperatura de T=2.0 que convergiu para M = +1 e snapshot de um sistema (direita) onde ocorreu o aparecimento de blocos de spins. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1. Ambas snapshots tiradas após <math>10^4</math> Monte Carlo steps.]]
<s_i> = \sum_{s_i = \pm 1} s_i P_{\pm} = P_+ - P_- = \tanh(\mu H/k_b T).
</math>


== O Método de Monte Carlo ==
No snapshot da simulação ordinária conseguimos ver que a maior parte dos spins estão com magnetização +1, o que está de acordo com a série temporal. Já no outro snapshot, temos a formação de um bloco de spins com magnetização -1 ocupando uma faixa vertical completa do sistema. Esse estado da rede faz com que spins que sejam invertidos dentro de um dos blocos influenciem muito pouco a magnetização do sistema e os spins das fronteiras entre os blocos que forem invertidos acabam apenas sendo invertidos novamente, fazendo com que a magnetização total do sistema oscile, mas se mantenha sempre próxima do mesmo valor. Para ilustrarmos esse efeito, temos uma animação para cada uma das evoluções: sem a formação de blocos e com formação de blocos.
=== Método de Metropolis ===
Para o método de Monte Carlo responsável por gerar configurações de acordo com a probabilidade (2), utilizaremos o algoritmo de dinâmica estocástica chamado método de Metropolis. Nesse método, utilizamos um conjunto de probabilidades <math>g(\mu \rightarrow \nu)</math>,uma para cada conjunto de transições de estados, e então escolhemos um conjunto de probabilidades de aceitação <math>A(\mu \rightarrow \nu)</math>. O algoritmo funcionará escolhendo repetidamente um novo <math>\nu</math> e aceitando ou rejeitando o estado de acordo com nossa probabilidade de aceitação. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado.
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza do método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente.
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\mu \rightarrow \nu)</math>, portanto iremos igualar essa probabilidade a 1. Utilizando a equação (2), comparamos a razão das probabilidade de transição dos estados:


<math>\frac{P(\mu \rightarrow \nu)}{P(\nu \rightarrow \mu)} = \frac{g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)}{g(\nu \rightarrow \mu)A(\nu \rightarrow \mu)}=\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}.</math>
[[Arquivo:Sembloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema convergindo para magnetização +1 correspondente à série temporal "Simulação ordinária" no gráfico das séries temporais. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]
[[Arquivo:Formarbloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema com formação de um bloco vertical de spins com magnetização +1. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]


Para que isso seja respeitado, iremos então definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:
=== Simulação com campo magnético ===
Para fazermos a simulação do modelo de Ising com campo magnético não nulo e termos resultados interessantes de serem observados, precisamos de duas características: primeiro, precisamos que o campo magnético seja pequeno para que possamos fazer observações, pois para campos magnéticos grandes os spins irão se alinhar rapidamente à direção do campo e, portanto, será pouco provável a mudança de estado do sistema. A segunda característica que precisamos é a de que a rede seja pequena, pois quanto maior a rede, menos provável é o sistema mudar de estado em tempos de simulação viáveis, assim como foi visto nos resultados sem campo magnético.
Utilizando uma rede 20x20, fizemos histogramas para diferentes temperaturas para dois diferentes campos magnéticos:


<math>A(\mu \rightarrow \nu) = \begin{cases}
[[Arquivo:Histogramas com campo.png|thumb|upright=4|none|alt=Alt text|Histogramas da magnetização de uma rede 20x20 sob efeito de um campo magnético. À esquerda temos um campo magnético atuante <math>H = -0.005</math> e à direita temos um campo magnético <math>H = 0.005</math>.]]
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\
1, \qquad \qquad \text{caso contrario}.
\end{cases}</math>


Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.
Podemos observar que para a temperatura inferior a <math>T_c</math>, temos a formação de uma gaussiana muito maior do que a outra, com a maior gaussiana sendo a que tem a magnetização alinhada com a direção do campo magnético exercendo influencia na rede. Ao utilizarmos temperaturas maiores que a temperatura crítica, vemos a magnetização aumentar ao redor de M = 0, até que em T = 3.0 temos apenas uma gaussiana centrada em M = 0, o que está de acordo com a transição de fase do sistema.
Caso não tivéssemos respeitado uma das duas características citadas anteriormente para a simulação de Ising com campo magnético, a maior diferença estaria no sistema com temperatura inferior à temperatura crítica, pois teríamos a formação de apenas uma gaussiana e ela estaria alinhada à direção do campo magnético aplicado ao sistema.


=== Implementação ===
== Conclusões e Observações ==
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicos, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spin da matriz poderá assumir apenas os valores de 1 e -1, representando a magnetização desse spin.
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: Ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que garantirá que o sistema tenha energia infinita e, portanto, teremos uma configuração aproximadamente aleatória garantido uma magnetização média do sistema como aproximadamente 0.
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação (1) e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação (1), temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever


<math>\Delta E = 2s_k(J\displaystyle \sum_j s_{j} + H),</math>
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.


onde o somatório se dá nos vizinhos de <math>s_k</math>.
== Programas utilizados em linguagem C ==
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>.
[[Séries temporais e histogramas sem campo magnético]]
É interessante ressaltar que, durante a simulação, escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado.


=== Medição ===
[[Magnetização e energia em função da temperatura]]
Temos algumas medidas relevantes a serem feitas nessa simulação. Uma delas é a medida da magnetização, ou seja, o estado total do sistema. A magnetização total é dada pela soma dos estados de todos os spins, ou seja


<math>M_\mu = \displaystyle \sum_i s_i^\mu.</math>
[[Suscetibilidade magnética e calor específico]]
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que


<math>M_\nu = M_\mu + 2s_k^\nu.</math>
[[Animação da evolução do estado do sistema]]


Outra medida relevante é a suscetibilidade magnética do sistema, dada por
[[Série temporal e histograma da magnetização com campo magnético]]


<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math>
== Referências ==


onde <math>N</math> é o número total de spins (<math>L^2</math>), <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.
<references/>
Por fim, temos a medida do calor específico do sistema, dada por
 
<math>c = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math>
 
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação. Antes de começar a medição das medidas de magnetização e energia do sistema, assim como os cálculos da suscetibilidade magnética e do calor específico, é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo para eliminar problemas transientes do sistema.
 
=== Resultados ===
Para analisarmos os resultados obtidos pelo método de Metropolis, realizamos diversas medidas em sistemas com dimensões <math>20\times20</math>, <math>36\times36</math> e <math>48\times48</math>. Primeiramente, fizemos medidas para sistemas sem campo magnético, ou seja, <math>H=0</math>. Com isso, montamos histogramas da magnetização e da energia do sistema para cada um dos 3 casos em três diferentes temperaturas:
 
[[Arquivo:Hist20.png|frameless|upright=7]]
[[Arquivo:Hist36.png|frameless|upright=7]]
[[Arquivo:Hist48.png|frameless|upright=7]]
 
Imediatamente é possível notar que para todas as temperaturas, quanto maior o número de spins, menor é a variância da energia, com as larguras das gaussianas ficando menores. Para a magnetização, para temperaturas menores que a temperatura crítica <math>T_c \approx 2.269</math> e tempos de simulação suficientemente longos, era esperado que tivéssemos duas gaussianas simétricas e de mesma altura, já que os spins estão livres para assumirem valores de +1 e -1. Esse resultado é facilmente observado para <math>T=2.2</math> no sistema 20x20, mas para o sistema 36x36 e 48x48 as gaussianas possuem alturas diferentes. Esses resultados são indicativos do efeito de sistemas grandes, que faz com que quanto maior o sistema, "mais difícil" é a magnetização mudar, exigindo tempos de simulação cada vez maiores. Além disso, é possível notar que quando maior a temperatura em relação à temperatura crítica, mais a magnetização vai se tornando nula, ou seja, as duas gaussianas vão se somando em <math>M=0</math>, resultado da transição de fase do ferromagnetismo para o paramagnetismo.
 
[[Arquivo:MeExT.png|thumb|upright=6|none|alt=Alt text|Energia (esquerda) e magnetização (direita) em função da temperatura para diferentes tamanhos de rede. <math>T_c \approx 2.269</math>.]]
 
Fazendo um gráfico para a energia em função da temperatura e da magnetização em função da temperatura para cada um dos sistemas, podemos ver que a energia aumenta com o aumento da temperatura, enquanto a magnetização decresce com o aumento da temperatura. Também é possível notar que em ambos os gráficos os resultados para os três tamanhos de sistemas são aproximadamente iguais até a temperatura crítica. Conforme a temperatura se aproxima da transição de fase, os resultados divergem com a energia incrementando mais rapidamente para redes maiores até tornarem-se novamente similares após <math>T=2.5</math>. Para a magnetização, ao se aproximar da transição de fase, a magnetização decresce muito mais rapidamente em redes maiores, com os resultados tendendo a zero com o aumento da temperatura.
 
 
[[Arquivo:SeXxT.png|thumb|upright=6|none|alt=Alt text|Calor específico (esquerda) e suscetibilidade magnética (direita) em função da temperatura para diferentes tamanhos de rede. <math>T_c \approx 2.269</math>.]]


Analisando os gráficos da suscetibilidade magnética e do calor específico em função da temperatura, podemos perceber que tanto a suscetibilidade magnética quando o calor específico aumentam quando a temperatura se aproxima da temperatura crítica, com ambos os gráficos possuindo curvas bastante estreitas ao redor de <math>T_c</math>, e voltam a decair após a transição de fase. Isso significa que a variância da energia e da magnetização aumentam consideravelmente com a transição de fase do sistema.
== Bibliografias ==


=== Um resultado de redes grandes ===
Tânia Tomé, Mário J. de Oliveira, "Stochastic Dynamics and Irreversibility". Universidade de São Paulo, São Paulo, Brasil. 2015.
Algo que pode resultar de simulações com redes grandes é o aparecimento de blocos de spins. Em uma rede suficientemente grande, pode ocorrer o aparecimento de aglomerados (clusters) de spins de determinada magnetização e esses aglomerados podem acabar crescendo até que se formem blocos de spins com uma direção que dão um resultado não tão esperado para o sistema. Um exemplo pode ser visto ao simularmos um sistema <math>100\times100</math> com temperatura <math>T=2.0</math>. Nessas condições, o sistema tende a ficar aproximadamente estável com magnetização aproximadamente +1 ou -1. Contudo, eventualmente pode ocorrer de uma simulação acabar com uma magnetização variando em torno de zero, como é possível ver na série temporal:
 
[[Arquivo:Serie100.png|thumb|upright=4|none|alt=Alt text|Série temporal da magnetização. É possível notar que regularmente a série converge rapidamente para um estado +1 ou -1, mas a possibilidade de ficar oscilando ao redor de <math>M=0</math>.]]
 
Ao olharmos um snapshot do estado de ambos os sistemas conseguimos entender o que está acontecendo:
 
[[Arquivo:Snapshots.png|thumb|upright=4.5|none|alt=Alt text|Snapshot de uma simulação ordinária (esquerda) de um sistema 100x100 a uma temperatura de T=2.0 que convergiu para M = +1 e snapshot de um sistema (esquerda) onde ocorreu o aparecimento de blocos de spins. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]
 
No snapshot da simulação ordinária conseguimos ver que a maior parte dos spins estão com magnetização +1, o que está de acordo com a série temporal. Já na outra simulação, temos a formação de um bloco de spins com magnetização -1 ocupando uma faixa horizontal completa do sistema. Esse estado da rede faz com que spins que sejam invertidos dentro de um dos blocos influenciem muito pouco a magnetização de seu bloco e os spins das fronteiras entre os blocos acabam apenas sendo invertidos novamente, fazendo com que a magnetização total do sistema oscile, mas se mantenha sempre próxima do mesmo valor.
 
=== Simulação com campo magnético ===
 
== Transições de fase(?) ==
 
== Conclusões e Observações ==
 
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.
 
== Referências ==
 
<references/>

Edição atual tal como às 18h35min de 26 de janeiro de 2018

Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.

O objetivo deste trabalho é estudar o comportamento de um sistema de Ising spins a partir do método de Monte Carlo. O problema do ferromagnetismo em um material foi abordado utilizando o algoritmo de metrópolis, considerando que o sistema interagia com um reservatório térmico externo. Várias propriedades do sistema foram investigadas, tais como a magnetização total, a energia por spin, o calor específico e a suscetibilidade magnética do sistema.

Modelo de Ising

A denominação "modelo de Ising" é utilizada para tratar um sistema de spins de Ising que podem assumir valor e , respectivamente "up" e "down", onde é a quantidade máxima de spins, ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. A evolução desse sistema de spins é descrito por uma dinâmica que possui as propriedades do processo de Markov de balanceamento detalhado e ergocidade, garantindo ao sistema que sua evolução o leva a estados estacionários de equilibrio descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.

O modelo de Ising 2D tratado neste trabalho possui seus spins organizados em uma rede quadrada bidimensional de tamanho com vizinhança de Von Newmann e condições de contorno periódicas. A energia desse sistema é descrita pela equação [1]

onde é a taxa de transição, representa o campo magnético externo e o momento magnético associado com cada spin. O primeiro somatório é sobre todas as vizinhanças de spins e o segundo sobre todos os spins. Neste trabalho, particularmente, escolhemos para favorecer menores energias em spins apontados para cima (), e

A magnetização desse sistema é dada pela soma de todos os valores de spins:

.

Utilizando a abordagem da mecânica estatística, conforme descrito por Gibbs (1902), podemos estimar valores médios de propriedades macroscópicas de um sistema termodinâmico, como energia ou magnetização, a partir de uma amostragem de Boltzmann relativa ao valor da propriedade sobre todos os estados do sistema. Sendo assim, podemos estimar o valor energia do nosso sistema em estado de equilibro termodinâmico como sendo

onde Z é a função partição , é a energia do sistema no estado , é a temperatura de um reservatório em contato com o sistema e é a constante de Boltzmann, escolhida nesse trabalho como tendo valor unitário. O mesmo serve para a magnetização:

, onde é medido sobre o módulo da , que é a magnetização no estado .

Outra medida relevante é a suscetibilidade magnética do sistema, dada por

onde é o número total de spins , e são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação. Por fim, temos a medida do calor específico por spin do sistema, dada por

onde e são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação.

O Método de Monte Carlo

Algorítmo de Metrópolis

Para o método de Monte Carlo responsável por gerar configurações do sistema, utilizaremos o Algorítmo de Metropolis. O algoritmo funcionará escolhendo repetidamente um novo estado e aceitando ou rejeitando o estado de acordo com uma probabilidade de aceitação de transitar de um estado antigo para o novo estado . O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. É válido notar que a dinâmica de inversão única de spins não é o que caracteriza o método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente.

Temos que a condição de balanceamento detalhado é dada por [2]:

onde .

Vamos supor que tenhamos os estados e e que temos a relação de energias: . Então, a maior das duas chances de aceitação é , portanto iremos igualar essa probabilidade a 1. Para que seja respeitada, iremos definir o valor de como . Temos, assim, o algoritmo de Metropolis:

Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.

Implementação

Para a implementação do método, utilizaremos uma matriz com condições de contorno periódicas, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spin da matriz poderá assumir apenas os valores de +1 e -1, representando a magnetização desse spin.

Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: ou determinamos e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos , o que fará com que tenhamos uma configuração aproximadamente aleatória, garantido uma magnetização média do sistema de aproximadamente 0.

Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação e durante a dinâmica da simulação calcularmos apenas , atualizando a nova energia do sistema com . Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação , temos que só um spin irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de , . Utilizando isso e fazendo a diferença entre as energias, podemos escrever

onde o somatório se dá nos vizinhos de e, como os vizinhos de não mudam de estado, para qualquer .

De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer temos , temos que

Antes de começar o registro das medidas de magnetização e energia do sistema é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo para eliminar problemas transientes do sistema e o sistema tender a um estado de equilíbrio. Após esse tempo, inicia-se o registro. Os valores do calor específico por spin e da susceptibilidade magnética são feitos após o fim da dinâmica de Monte Carlo.

Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos . Além disso, também utilizamos . Também escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado. A partir disso, podemos utilizar o método de amostragem por importância para medir as médias da energia e da magnetização, além das médias da magnetização quadrada e da energia quadrada:

onde é a quantidade de passos de Monte Carlo dadas.

Resultados

Para analisarmos os resultados obtidos pelo método de Metropolis, realizamos diversas medidas em sistemas com dimensões , e . Utilizamos para todas as medidas um tempo de equilíbrio de Monte Carlo Steps e fizemos medidas.

Primeiramente, fizemos medidas para sistemas sem campo magnético, ou seja, . Com isso, montamos histogramas da magnetização por spins e da energia por spins do sistema para cada um dos 3 casos em três diferentes temperaturas:

Hist20.png Hist36.png Hist48.png

Imediatamente é possível notar que, para todas as temperaturas, quanto maior o número de spins, menor é a variância da energia, com as larguras das gaussianas ficando menores. Para a magnetização, para temperaturas menores que a temperatura crítica e tempos de simulação suficientemente longos, era esperado que tivéssemos duas gaussianas simétricas e de mesma altura, já que os spins estão livres para assumirem valores de +1 e -1. Esse resultado é facilmente observado para no sistema 20x20, mas para os sistemas 36x36 e 48x48 as gaussianas possuem alturas diferentes. Esses resultados são indicativos do efeito de redes maiores, onde temos que quanto maior a rede, menor a probabilidade de haver mudança de magnetização do sistema, exigindo tempos de simulação cada vez maiores. Esse efeito pode ser observado ao compararmos as séries temporais da magnetização dos três sistemas:

Alt text
Séries temporais da magnetização para os sistemas 20x20 (esquerda), 36x36 (centro) e 48x48 (direita).

Como podemos ver pelas séries temporais, no mesmo período de tempo, o sistema 20x20 troca de estado diversas vezes, enquanto o sistema 36x36 troca apenas uma vez para o estado -1 e o sistema 48x48 não troca nenhuma vez para o estado -1. Além disso, pelos histogramas, é possível notar que quanto maior a temperatura em relação à temperatura crítica, mais a magnetização do sistema tende a zero, ou seja, as duas gaussianas vão se somando em , resultado da transição de fase do ferromagnetismo para o paramagnetismo.

Alt text
Energia (esquerda) e magnetização (direita) em função da temperatura para diferentes tamanhos de rede. .

Fazendo um gráfico para a energia em função da temperatura e da magnetização em função da temperatura para cada um dos sistemas, podemos ver que a energia aumenta com o aumento da temperatura, enquanto a magnetização decresce com o aumento da temperatura. Também é possível notar que em ambos os gráficos os resultados para os três tamanhos de sistemas são aproximadamente iguais até a a temperatura aproximar-se da temperatura crítica. Conforme a temperatura se aproxima da transição de fase, os resultados deixam de ser aproximadamente iguais, pois a energia passa a ser maior para redes maiores e voltam a tornarem-se similares após . Para a magnetização, ao se aproximar da transição de fase, a magnetização decresce muito mais rapidamente em redes maiores, com os resultados tendendo a zero com o aumento da temperatura.


Alt text
Calor específico em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. .
Alt text
Suscetibilidade magnética em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. .

Analisando os gráficos da suscetibilidade magnética e do calor específico em função da temperatura, podemos perceber que tanto a suscetibilidade magnética quanto o calor específico aumentam quando a temperatura se aproxima da temperatura crítica, com ambos os gráficos possuindo curvas que se tornam mais estreitas próximo de , com os gráficos sendo mais estreitos em redes maiores. Também podemos ver que ambos os gráficos começam a decair um pouco após a temperatura crítica. Isso significa que as variâncias da energia e da magnetização aumentam consideravelmente com a transição de fase do sistema, implicando no aumento da suscetibilidade magnética e do calor específico ao redor da temperatura crítica. É possível perceber que esse efeito é maior em redes maiores, onde há uma grande diferença entre os valores das redes de diferentes tamanhos. No gráfico com a faixa de temperatura maior, podemos ver que para temperaturas menores que T = 2.1 e maiores que T = 2.8 tanto a suscetibilidade magnética quanto o calor específico possuem valores aproximadamente iguais para todos os tamanhos de rede.

Um resultado de redes grandes

Algo que pode resultar de simulações com redes grandes é o aparecimento de blocos de spins. Em uma rede suficientemente grande, pode ocorrer o aparecimento de aglomerados (clusters) de spins de determinada magnetização e esses aglomerados podem acabar crescendo até que se formem blocos de spins com uma direção que dão um resultado não tão esperado para o sistema. Um exemplo pode ser visto ao simularmos um sistema com temperatura . Nessas condições, o sistema tende a ficar aproximadamente estável com magnetização aproximadamente +1 ou -1. Contudo, eventualmente pode ocorrer de uma simulação acabar com uma magnetização variando próximo de zero, como é possível ver na série temporal:

Alt text
Série temporal da magnetização. É possível notar que regularmente a série converge rapidamente para um estado com magnetização +1 (note que poderia também convergir para -1), mas há a possibilidade de ficar oscilando próximo de .

Ao olharmos um snapshot do estado de ambos os sistemas conseguimos entender o que está acontecendo:

Alt text
Snapshot de uma simulação ordinária (esquerda) de um sistema 100x100 a uma temperatura de T=2.0 que convergiu para M = +1 e snapshot de um sistema (direita) onde ocorreu o aparecimento de blocos de spins. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1. Ambas snapshots tiradas após Monte Carlo steps.

No snapshot da simulação ordinária conseguimos ver que a maior parte dos spins estão com magnetização +1, o que está de acordo com a série temporal. Já no outro snapshot, temos a formação de um bloco de spins com magnetização -1 ocupando uma faixa vertical completa do sistema. Esse estado da rede faz com que spins que sejam invertidos dentro de um dos blocos influenciem muito pouco a magnetização do sistema e os spins das fronteiras entre os blocos que forem invertidos acabam apenas sendo invertidos novamente, fazendo com que a magnetização total do sistema oscile, mas se mantenha sempre próxima do mesmo valor. Para ilustrarmos esse efeito, temos uma animação para cada uma das evoluções: sem a formação de blocos e com formação de blocos.

Alt text
Animação do sistema convergindo para magnetização +1 correspondente à série temporal "Simulação ordinária" no gráfico das séries temporais. Animação feita até Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.
Alt text
Animação do sistema com formação de um bloco vertical de spins com magnetização +1. Animação feita até Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.

Simulação com campo magnético

Para fazermos a simulação do modelo de Ising com campo magnético não nulo e termos resultados interessantes de serem observados, precisamos de duas características: primeiro, precisamos que o campo magnético seja pequeno para que possamos fazer observações, pois para campos magnéticos grandes os spins irão se alinhar rapidamente à direção do campo e, portanto, será pouco provável a mudança de estado do sistema. A segunda característica que precisamos é a de que a rede seja pequena, pois quanto maior a rede, menos provável é o sistema mudar de estado em tempos de simulação viáveis, assim como foi visto nos resultados sem campo magnético. Utilizando uma rede 20x20, fizemos histogramas para diferentes temperaturas para dois diferentes campos magnéticos:

Alt text
Histogramas da magnetização de uma rede 20x20 sob efeito de um campo magnético. À esquerda temos um campo magnético atuante e à direita temos um campo magnético .

Podemos observar que para a temperatura inferior a , temos a formação de uma gaussiana muito maior do que a outra, com a maior gaussiana sendo a que tem a magnetização alinhada com a direção do campo magnético exercendo influencia na rede. Ao utilizarmos temperaturas maiores que a temperatura crítica, vemos a magnetização aumentar ao redor de M = 0, até que em T = 3.0 temos apenas uma gaussiana centrada em M = 0, o que está de acordo com a transição de fase do sistema. Caso não tivéssemos respeitado uma das duas características citadas anteriormente para a simulação de Ising com campo magnético, a maior diferença estaria no sistema com temperatura inferior à temperatura crítica, pois teríamos a formação de apenas uma gaussiana e ela estaria alinhada à direção do campo magnético aplicado ao sistema.

Conclusões e Observações

O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[1], ou até mesmo considerar vetores em três dimensões[2]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.

Programas utilizados em linguagem C

Séries temporais e histogramas sem campo magnético

Magnetização e energia em função da temperatura

Suscetibilidade magnética e calor específico

Animação da evolução do estado do sistema

Série temporal e histograma da magnetização com campo magnético

Referências

  1. N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.
  2. M. E. J. Newman, G. T. Barkema, "Monte Carlo Methods in Statistical Physics". Oxford University Press Inc., New York, 1999.

Bibliografias

Tânia Tomé, Mário J. de Oliveira, "Stochastic Dynamics and Irreversibility". Universidade de São Paulo, São Paulo, Brasil. 2015.