Modelo de Potts -- 2D: mudanças entre as edições
Sem resumo de edição |
|||
| Linha 93: | Linha 93: | ||
Aqui se encontram os resultado para Q=2. As simulações foram realizadas para MCS = 50000. O transiente para o banho térmico foi de 500 passos, pois a simulação atingiu o estado estacionário rapidamente, enquanto para o algoritmo de Metropolis foram necessários 10000 passos para atingir esse estado. Os valores de energia usados foram obtidos a partir da média dos valores de energia no estado estacionário. | Aqui se encontram os resultado para Q=2. As simulações foram realizadas para MCS = 50000. O transiente para o banho térmico foi de 500 passos, pois a simulação atingiu o estado estacionário rapidamente, enquanto para o algoritmo de Metropolis foram necessários 10000 passos para atingir esse estado. Os valores de energia usados foram obtidos a partir da média dos valores de energia no estado estacionário. | ||
{|[[Arquivo:Energiavstemperatura.png | {|[[Arquivo:Energiavstemperatura.png|Energia pela Temperatura para cada algoritmo, com <math>L=64</math> e <math>Q=2</math>.]]|} | ||
|} | |||
== Código == | == Código == | ||
Edição das 23h15min de 15 de maio de 2026
Introdução
O Modelo de Potts
O modelo de Potts (Potts, 1951) pode ser descrito como uma generalização do modelo de Ising (Ising, 1925) para um sistema de N spins e Q-estados (Q > 2).
Originalmente, o problema proposto por Domb era o de compreender o modelo de Ising como um sistema de spins, em que os spins podem ser paralelos ou antiparalelos. Desse modo, a generalização seria considerar que os spins estivessem sobre um plano, em que cada spin estivesse apontando para direções diferentes, igualmente espaçadas por um ângulo definido por Q:
, em que n = (0, 1, 2, ..., Q-1). [1]
A energia de cada interação entre dois spins é dada pelo potencial , em que é a constante de interação entre os dois spins [3]. Esse tipo de sistema o Hamiltoniano da forma:
Para o caso em que o modelo de Potts é equivalente ao modelo de Ising, temos que Q = 2, então:
, n = (0, 1, 2, ..., Q-1) </math>
Objetivos
Neste trabalho, buscamos analisar o comportamento do sistema utilizando dois algoritmos diferentes: o Algoritmo de Metropolis-Hastings e o Algoritmo de Banho Térmico. A partir deles, comparamos a temperatura do sistema com a energia, em cada um dos algoritmos. Depois, com FSS, aplicamos o método de U4 para analisar o comportamento do sistema em diferentes temperaturas, para valores diferentes de L. Por fim, procuramos analisar a susceptibilidade magnética e o calor específico bruto, também com L de diferentes valores.
Metodologia
Para realizar este trabalho, utilizamos uma rede quadrada 2D de comprimento L com N=L*L spins. A rede possui condições de contorno periódicas e vizinhança de von Neumann para primeiros vizinhos. A constante de interação é e para o banho térmico .
Método de Monte Carlo
No método de Monte Carlo, começamos sorteando aleatoriamente os spins da rede. Em cada passo de Monte Carlo (MCS), sorteamos spins aleatoriamente N vezes, de modo que cada spin tenha uma chance 1/N de ser sorteado. Quando sorteado, um novo valor para esse spin é escolhido aleatoriamente (diferente do anterior) e é aceito com base em critérios estabelecidos por cada algoritmo. Pela geometria da rede, todo spin tem 4 spins vizinhos, tornando possível calcular e guardar os valores de energia possíveis para 1 vizinhança e acessá-los posteriormente, o que nos poupa tempo em simulação.
Algoritmo de Metropolis-Hasting
(texto retirado de : [3])
O primeiro algoritmo utilizado para gerar as configurações do sistema foi o algoritmo de Metropolis-Hasting. O algoritmo escolhe repetidamente um novo estado para o sistema e aceitando ou rejeitando ele 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.
Temos que a condição de balanceamento detalhado é dada por [4]:
onde é a diferença de energia entre o novo e o antigo estado.
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-Hasting:
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.
Algoritmo de Banho Térmico
(texto retirado de : [3])
O algoritmo de Metropolis-Hasting para inversão única de spins é eficaz para o modelo de Potts em baixos valores de ou temperaturas acima da temperatura crítica, entretanto para valores altos de ou baixas temperaturas o algoritmo falha em convergir o sistema rapidamente para o estado estacionário.
Considerando um caso onde e um spin que possui 4 vizinhos, se todos os vizinhos do spin possuem valores diferentes uns do outro e do próprio spin, poderá levar em média passos de Monte Carlo para sortear um novo valor de que tem a transição aceita, e dessa forma o algoritmo irá demorar mais tempo para alcançar a configuração de equilíbrio do sistema. A dificuldade de aceitar transições é maior ainda para baixas temperaturas, onde a probabilidade de transicionar para um novo estado tem um peso maior para qualquer diferente dos spins da vizinhança, dessa maneira poderá demorar 96 passos para gerar um spin que seja igual a algum spin da vizinhança e realizar a transição. Para contornar este problema podemos utilizar o algoritmo de banho térmico.
O algoritmo de banho térmico, assim como o metropolis, é um algoritmo em que mudamos um spin por vez. O algoritmo segue as seguintes etapas: primeiro escolhemos um spin na rede (), e independente do seu valor atual, escolhemos um novo valor para . Esse novo valor será aceito, ou não, de acordo com os pesos de Boltzmann. Temos que no algoritmo de Banho Térmico nós atribuímos um valor , entre 1 e , ao spin com uma probabilidade
onde é a energia do sistema quando e o somatório é dado em todas energias possíveis. Pelo fato desse algoritmo permitir que o spin assuma qualquer valor ele satisfaz a condição de ergodicidade. Temos que e , assim, pela descrição do algoritmo temos
Ou seja, o algoritmo de banho térmico respeita a condição de balanço detalhado.
Veremos que para valores pequenos de (como , que é o modelo de Ising), o algoritmo de Metropolis é mais eficiente. Porém, para valores altos de ou altas temperaturas o algoritmo de banho térmico é mais eficiente.
Resultados
Caso Q=2 (equivalente ao Modelo ISING)
Aqui se encontram os resultado para Q=2. As simulações foram realizadas para MCS = 50000. O transiente para o banho térmico foi de 500 passos, pois a simulação atingiu o estado estacionário rapidamente, enquanto para o algoritmo de Metropolis foram necessários 10000 passos para atingir esse estado. Os valores de energia usados foram obtidos a partir da média dos valores de energia no estado estacionário.
Código
Para gerar estas simulações, foi produzido um código em Python3. Utilizamos as bibliotecas seguintes bibliotecas: Numpy, em que usamos os gerador de números aleatórios e as arrays; Numba, para otimizar as funçẽos e acelerar o código; e Matplotlib, que utilizamos para gerar os códigos.
Link: https://colab.research.google.com/drive/1V7GsP-fEIkhU29QCPvh_UcZKIXtupR7p?usp=sharing
Referências
- ↑ F. Y. Wu, The Potts Model, Rev. Mod. Phys. 54, 235, 1982
- ↑ https://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Potts_-_2D
- ↑ 3,0 3,1 3,2 3,3 https://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Potts_2D
- ↑ M. E. J. Newman, G. T. Barkema, "Monte Carlo Methods in Statistical Physics". Oxford University Press Inc., New York, 1999.


