Modelo de Potts - 2D: mudanças entre as edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 36: | Linha 36: | ||
O algoritmo de Metropolis é um método de Cadeia de Markov Monte Carlo (MCMC) para obter amostras aleatórias a partir de uma distribuição de probabilidade da qual a amostragem direta é difícil. O procedimento para a implementação do algoritmo é apresentado abaixo. | O algoritmo de Metropolis é um método de Cadeia de Markov Monte Carlo (MCMC) para obter amostras aleatórias a partir de uma distribuição de probabilidade da qual a amostragem direta é difícil. O procedimento para a implementação do algoritmo é apresentado abaixo. | ||
1. | 1) Escolhemos um estado inicial <math>x_0</math>, que em nosso caso será um spin orientado em uma direção dada por <math>Q</math>. | ||
2) Através de um sorteio aleatório, com <math>Prob = \frac{1}{N}</math>, escolhemos um candidato <math>x'</math>. | |||
3) Calculamos a prababilidade de aceitação desse candidato atráves de <math>A(x',x_t) = min \left(1,\frac{P(x')}{P(x_t)} \right)</math>, onde | |||
<math>P(x') = \exp{-\beta E_x'}</math> | <math>P(x') = \exp{-\beta E_x'}</math> | ||
4) E então aceitamos ou rejeitamo este novo candidato da seguinte forma: | |||
a) Gere um número aleatório uniforme <math>u \in [0,1]</math>; | |||
b) E se <math>u\leq A(x',x_t)</math>, aceite o novo estado e defina <math>x_{t+1}=x'</math>; | |||
c) E se <math>u>A(x',x_t)</math>, rejeite o novo estado e copie o estado antigo para frente <math>x_{t+1}=x_t</math>; | |||
d) Incremente: coloque t = t + 1 | |||
Em nosso caso, a distribuição <math>\frac{A(x,x')}{A(x',x)}</math> será <math>e^{-\beta \Delta E}</math>, onde <math>\Delta E=E_{x'} - E_{x}</math>. | Em nosso caso, a distribuição <math>\frac{A(x,x')}{A(x',x)}</math> será <math>e^{-\beta \Delta E}</math>, onde <math>\Delta E=E_{x'} - E_{x}</math>. |
Edição das 10h21min de 18 de outubro de 2022
O Modelo
Modelo de Potts pode ser considerado uma generalização do Modelo de Ising. Enquanto no Ising, os spins podem assumir valores 1 ou -1, no Modelo de Potts, os spins podem assumir valores que dependem de uma variavél da seguinte forma: . A quantidade nos fornece as possíveis orientações para os spins. Os valores que pode assumir são . Dessa forma, um Modelo de Potts bidimensional com possui uma rede bidimensional de spins com 10 orientações diferentes. Nas figuras abaixo podemos ver três possíveis orientações dos spins.
O Hamiltoniano de interação, na ausência de campo magnético, pode ser escrito como
onde é a constante de acoplamento que determina a intensidade da interação e é a delta de Kronecker, definida como 1 se e 0 se .
Uma característica importante desse modelo é que as orientações em si não são relevantes, uma vez que o Hamiltoniano é definido por uma Delta de Kronecker. A única informação relevante é se os spins são iguais ou diferentes. Conforme veremos adiante, para o caso de , recaímos no conhecido Modelo de Ising.
Se incluirmos o campo magnético, o Hamiltoniado de Potts fica
onde e é o campo magnético.
Relação com o Modelo de Ising
O Modelo de Ising é obtido quando tomamos na expressão para . Para que possamos reescrever o Hamiltoniano de Potts em uma forma semelhante ao Hamiltoniano de Ising, vamos somar uma constante aditiva, de modo que o Hamiltoniano fica
Vemos que se os spins são iguais, obtemos e se os spins são diferentes, obtemos . No Modelo de Ising, nós tínhamos e , respectivamente. Uma consequência desse fator meio de diferença é que a temperatura crítica para o Modelo de Potts, para , é metade da temperatura crítica do Ising () e os nos histogramas de energia também são metade.
Algoritmo de Metropolis
Vamos implementar o Modelo de Potts utilizando o algoritmo de Metropolis.
O algoritmo de Metropolis é um método de Cadeia de Markov Monte Carlo (MCMC) para obter amostras aleatórias a partir de uma distribuição de probabilidade da qual a amostragem direta é difícil. O procedimento para a implementação do algoritmo é apresentado abaixo.
1) Escolhemos um estado inicial , que em nosso caso será um spin orientado em uma direção dada por .
2) Através de um sorteio aleatório, com , escolhemos um candidato .
3) Calculamos a prababilidade de aceitação desse candidato atráves de , onde
4) E então aceitamos ou rejeitamo este novo candidato da seguinte forma:
a) Gere um número aleatório uniforme ;
b) E se , aceite o novo estado e defina ;
c) E se , rejeite o novo estado e copie o estado antigo para frente ;
d) Incremente: coloque t = t + 1
Em nosso caso, a distribuição será , onde .
Resultados das simulações
Definimos um Monte Carlo Step (MCS) como sendo o tempo em que a rede bidimensional com spins é percorrida pelo algoritmo. Ao final de flips de spin (seja com probabilidade ou com probabilidade ), contamos um MCS. Além disso, em todas as simulações, utilizamos em unidades de .
Energia
Energia em cada MCS para Q indo de 2 até 10 e L = 64 utilizando o algoritmo de Metropolis. | |
---|---|
Magnetização
Magnetização em cada MCS para Q indo de 2 até 10 e L = 64 utilizando algoritmo de Metropolis. | |
---|---|
Códigos utilizados
O código foi escrito em Fortran.
Referências
D. P. Landau, K. Binder. A Guide Monte Carlo Simulations in Statistical Physics. Cambridge University. New York. 2000.
L. M. Barone, E. Marinari, G. Organtini, F. Ricci-Tersengui. Scientific Programming: C-Language, Algorithms and Models in Science. World Scientific. Singapore. 2013.