Algoritmo de Wang-Landau: mudanças entre as edições

De Física Computacional
Ir para navegação Ir para pesquisar
Rafabel (discussão | contribs)
Sem resumo de edição
Rafabel (discussão | contribs)
Sem resumo de edição
Linha 94: Linha 94:
Discutir a densidade de estados
Discutir a densidade de estados


[[Arquivo:Densidade de estado.png]]
[[Arquivo:Densidade de estado.png|500px|thumb|center| Figura 1: Logaritmo da densidade de estados <math> \ln g(E) </math> do modelo de Ising 2D com <math> L = 16 </math>.]]




Discutir a distribuição canônica
Discutir a distribuição canônica


[[Arquivo:Dist cano 23.png]]


[[Arquivo:Dists cano.png]]
[[Arquivo:Dist cano 23.png|500px|thumb|center| Figura 2: Distribuição canônica <math> P(E,T_c) = g(E)e^{-E/k_BT_c} </math> na temperatura de transição do modelo de Ising 2D com <math> L = 16 </math> e <math> k_BT_c = 2.3 </math>.]]
 
[[Arquivo:Dist cano 23.png|500px|thumb|center| Figura 3: Distribuição canônica <math> P(E,T) = g(E)e^{-E/k_BT} </math> nas temperaturas <math> T = 2.2 </math> e <math> T = 2.4 </math> do modelo de Ising 2D com <math> L = 16 </math>.]]
 


Discutir as quantidades termodinâmicas
Discutir as quantidades termodinâmicas


[[Arquivo:Qnt termo.png]]
[[Arquivo:Qnt termo.png|500px|thumb|center| Figura 4: Quantidades termodinâmicas do modelo de Ising 2D com <math> L = 16 </math> calculado a partir da densidade de estados <math> g(E) </math>. Na figura, estão mostrados: (a) energia interna, (b) calor específico, (c) energia livre de Helmholtz e (d) entropia. Os gráficos ''inset'' são os erros relativos.]]
 


====Referências====
====Referências====

Edição das 00h15min de 29 de novembro de 2021

Nomes: Rafael Abel da Silveira e William Machado Pantaleão

Introdução

Simulações computacionais, como o método de Monte Carlo, são vastamente utilizadas para estudar transições de fase e fenômenos críticos. O método padrão para simulações de Monte Carlo é o algoritmo de Metropolis, entretanto, algoritmos novos e mais eficientes são usados em simulações modernas, como o algoritmo de Wang-Landau. Ao contrário dos métodos convencionais de Monte Carlo, que geram diretamente uma distribuição canônica g(E)eE/kBT a uma dada temperatura T, a abordagem de Wang-Landau estima a densidade de estados g(E) diretamente por meio de um passeio aleatório, que produz um histograma plano no espaço de energia H(E). [1]

Mesmo para modelos que podem ser resolvidos analiticamente, a densidade de estados g(E) não pode ser determinada para sistemas maiores [2]. Com o algoritmo de Wang-Landau, é possível obter a g(E) a partir de um passeio aleatório. A estimativa para g(E) é melhorada a cada etapa do passeio aleatório, usando um fator de modificação f cuidadosamente controlado, para produzir um resultado que converge para o valor real rapidamente.

Amostragem de Wang-Landau

No início da simulação, g(E) é desconhecido e fazemos uma estimativa inicial para ele. A abordagem mais simples é definir g(E)=1 para todas as energias possíveis E. A configuração de spin inicial para toda a rede pode ser escolhida arbitrariamente. Então, uma caminhada aleatória no espaço de energia é iniciada pela formação de estados de teste, cada um dos quais é produzido escolhendo aleatoriamente um spin e alterando seu estado.

Cada vez que uma energia E é visitada, o histograma H(E) é incrementado em 1. A estimativa de g(E) é então modificada por um fator multiplicativo f, e o valor atualizado realiza um passeio aleatório adicional no espaço de E.

Se E1 e E2 são as energias antes e depois de um valor de spin ser alterado, a probabilidade de transição da energia E1 para E2 é dada por

p(E1E2)=min(g(E1)g(E2),1).

A razão das probabilidades de transição de E1 para E2 e de E2 a E1 podem ser calculados como

p(E1E2)p(E2E1)=g(E1)g(E2).

Logo, o algoritmo de passeio aleatório satisfaz o equilíbrio detalhado:

1g(E1)p(E1E2)=1g(E2)p(E2E1),

onde 1/g(E1) é a probabilidade na energia E1 e p(E1E2) é a probabilidade de transição de E1 para E2.

Se o estado de energia E2 é aceito, a densidade de estados g(E2) é multiplicada pelo fator de modificação f>1 de maneira que g(E2)f×g(E2) e a entrada no histograma para H(E2) é atualizada de forma H(E2)H(E2)+1. Se o estado de energia não é aceito, a densidade de estados g(E1) é multiplicada pelo fator de modificação, g(E1)f×g(E1) e H(E1) é atualizada de forma H(E1)H(E1)+1.

Flatness

O procedimento de passeio aleatório é seguido até o histograma H(E) estar reto (do inglês, "flat"), e para determinar isso, a cada n iterações verificamos se todos valores possíveis de E estão a uma distância, no máximo, x% de H(E). A variável x é denominada "flatness". Quando o histograma está reto, todos estados de energia foram visitados aproximadamente igualmente.

O número de passos, </math> n </math> que devemos realizar antes de checar deve ser maior que L*L onde L indica o tamanho da rede, para que o algoritmo tenha a oportunidade de visitar cada estado pelo menos uma vez.

Para sistemas simples, podemos utilizar um valor tão alto quanto 95%, entretanto, para este trabalho foi escolhido o valor de 80%.

Fator de modificação

Em geral, como g(E) se torna muito grande, trabalhamos com o logaritmo natural dessas quantidades, lng(E). Portanto, cada atualização da densidade de estados é dada por lng(E)lng(E)+lnf. O valor comumente utilizado para o fator de modificação é f=f0=e.

Quando o histograma é considerado reto, pelas condições descritas acima, reduzimos o valor de f de forma que o novo valor será f1=f0/2, resetamos o histograma H(E) e recomeçamos o passeio aleatório.

A simulação é parada para um valor de f predeterminado. No caso, usamos ffinal=exp(108)=1.00000001.


Aplicação ao Modelo de Ising 2D

Modelo de Ising

O modelo de Ising é uma rede 2D, de tamanho L×L que consiste de uma variável discreta em cada sítio que pode ser usada para representar o momento de dipolo magnético de um átomo[3] Cada sítio pode ter o valor de spin +1 ou 1.

Para este trabalho, o hamiltoniano de interação pode ser calculado por =i,jσiσj onde i,j indica pares distintos de vizinhos-mais-próximos.

Com a densidade de estados, podemos calcular as seguintes quantidades termodinâmicas:

Energia interna:

U(T)=EEg(E)eE/kBTEg(E)eE/kBT=E

Calor específico:

C(T)=U(T)T=E2E2kBT2

Energia livre de Helmoltz:

F(T)=kBTln(Z)=kBTln(Eg(E)eE/kBT)

Entropia:

S(T)=U(T)F(T)T

Finalmente, podemos também calcular a distribuição canônica usando:

P(E,T)=g(E)eE/kBT

Algoritmo

Resumindo, o passo a passo do algoritmo pode ser escrito como:

1. Defino g(E)=1 para todos E e o fator de modificação inicial f0=e;

2. Aleatoriamente, escolho um spin e troco o seu valor. Aceito a transição com probabilidade p(E1E2)=min(g(E1)/g(E2),1);

3. Modifico a densidade de estados g(E)g(E)×f e atualizo o histograma H(E);

4. Continuo até o histograma estar reto, então diminuo o valor de lnf pela metade e reseto o histograma H(E);

5. Repito os passos 2-4 até f<1.00000001.

6. Obtendo a g(E), posso calcular as quantidades termodinâmicas descritas anteriormente.

Resultados

Discutir a densidade de estados

Figura 1: Logaritmo da densidade de estados lng(E) do modelo de Ising 2D com L=16.


Discutir a distribuição canônica


Figura 2: Distribuição canônica P(E,Tc)=g(E)eE/kBTc na temperatura de transição do modelo de Ising 2D com L=16 e kBTc=2.3.
Figura 3: Distribuição canônica P(E,T)=g(E)eE/kBT nas temperaturas T=2.2 e T=2.4 do modelo de Ising 2D com L=16.


Discutir as quantidades termodinâmicas

Figura 4: Quantidades termodinâmicas do modelo de Ising 2D com L=16 calculado a partir da densidade de estados g(E). Na figura, estão mostrados: (a) energia interna, (b) calor específico, (c) energia livre de Helmholtz e (d) entropia. Os gráficos inset são os erros relativos.


Referências

<references>

Código

  1. D. P. Landau, Shan-ho Tsai, M. Exler, A new approach to Monte Carlo simulations in statistical physics: Wang-Landau sampling, American Journal of Physics 72, 1294 (2004). https://doi.org/10.1119/1.1707017
  2. P. D. Beale, Exact Distribution of Energies in the Two-Dimensional Ising Model, Phys. Rev. Lett. 76,78 (1996). https://doi.org/10.1103/PhysRevLett.76.78
  3. A. Rosa, C. Pires, L. Doria, Ising 2D, Wikia da Física Computacional da UFRGS. https://fiscomp.if.ufrgs.br/index.php/Ising_2D#Modelo_de_Ising