Trabalhos 2022-1: mudanças entre as edições

De Física Computacional
Ir para navegação Ir para pesquisar
(Página substituída por '===Potencial de Lennard-Jones === ===Modelo de Potts - 2D ===')
Linha 2: Linha 2:


===[[Modelo de Potts - 2D]] ===
===[[Modelo de Potts - 2D]] ===
Modelo de Potts pode ser considerado uma generalização do Modelo de Ising. Enquanto no Modelo de Ising, os spins podem assumir valores 1 ou -1, no Modelo de Potts, os spins podem assumir valores que depedem de <math>q</math>, onde <math>\theta_n = \frac{2\pi n}{q}</math> fornece as orientações possíveis para os spins. Os valores de <math>n</math> podem assumir os valores <math>n=0,1,2,...</math>$.
O Hamiltoniano de interação, na ausência de campo magnético, pode ser escrito como
<math>H_p = -J \sum_{(i,j)} \delta(s_i,s_j) </math>
onde <math>J</math> é a constante de acoplamento que determina a intensidade da interação e <math>\delta(s_i,s_j) </math> é a delta de Kronecker, definida como 0 se <math>s_i=s_j</math> e 1 se <math>s_i\neq s_j</math>.
=Relação com o Modelo de Ising=
O Modelo de Ising é obtido quando tomamos <math>q=2</math> na expressão para <math>\theta_n</math> e o Hamiltoniano de Ising pode ser escrito como o Hamiltoniano do Potts mais uma constante aditiva
<math>H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) </math>
Se incluírmos o campo magnético, o Hamiltoniado fica
<math>H_p = -J \sum_{(i,j)} \delta(s_i,s_j) - \sum_i \frac{h_i}{\beta} s_i</math>
=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. Inicialize
a) Escolha um estado inicial <math>x_0</math>;
b) Coloque <math>t=0</math>
2. Itere
a) Gere um estado candidato aleatório <math>x'</math> de acordo <math>g(x'|x_t)</math>
b) Calcule a probabilidade de aceitação <math>A(x',x_t) = min \left/(1,\frac{P(x')}{P(x_t)} \frac{g(x_t | x'}{x'|x_t} \right)</math>
c) Aceite ou rejeite:
1) Gere um número aleatório uniforme <math>u \in [0,1]</math>;
2) E se <math>u\leq A(x',x_t)</math>, aceite o novo estado e defina <math>x_{t+1}=x'</math>;
3) 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>;
4) Incremente: coloque t = t + 1
Em nosso caso, a distribuição <math>\frac{A(x,x')}{A(x',x)}</math> é <math>e^{-\beta \Delta E}</math>, onde <math>\Delta E=E_{x'} - E_{x}</math>
=Resultados=
[[Arquivo: <arquivo> |thumb|right|500px| Simulação com o algoritmo de Metropolis para <math>T = 1K</math>.]]
=Códigos utilizados=
[[Metropolis - Potts 2D]]
=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.

Edição das 10h17min de 17 de outubro de 2022