Estoy haciendo un análisis numérico de Monte Carlo en el modelo de Ising bidimensional en el punto crítico. Estaba usando la evolución de 'single flip' de Metropolis al principio con éxito, aunque sufre una ralentización crítica y hace que sea poco probable que sea posible estudiar redes grandes. Ahora estoy mirando los algoritmos de cambio de clúster, específicamente el algoritmo de Wolff.
Me las arreglé para implementarlo, y parece estar funcionando como debería (volteando un giro único en , toda la red en , coincide con la densidad de energía correcta en el límite termodinámico...) pero no obtengo el comportamiento correcto para los dos puntos función de correlación.
Según CFT, debería comportarse como:
Cada vez estoy más convencido de que tiene que ver con las condiciones de contorno, uso límites libres no periódicos. La literatura sobre el tema no dice mucho sobre este punto.
¿Me estoy perdiendo una sutileza (o una evidencia) en este procedimiento, o en el uso de este algoritmo?
Intenté reproducir su problema usando mi propio código, pero no pude: obtuve el valor correcto para el exponente. No puedo decirte qué salió mal en tu cálculo, ¡pero puedo decirte exactamente lo que hice!
Puedes inspeccionar mi código en GitHub . Fue lo primero que escribí en C++ y hoy haría muchas cosas diferentes, así que no juzgues el código con demasiada severidad. Hay un archivo Léame en el repositorio que explica casi todo al respecto.
Cargué mi script de ejecución, la parte relevante de los resultados correspondientes y el pequeño script de Pyxplot que encaja en este GitHub Gist . Mi valor para el exponente es:
Aquí hay una lista de cosas que creo que podrían ser relevantes.
Estoy seguro de que lo sabe, pero solo para que conste: en la ecuación de la pregunta, no se supone que uno tome el valor absoluto de la diferencia de los índices. y de los dos sitios. Los índices que asignas a los sitios son completamente arbitrarios. Lo que importa es la distancia entre los dos sitios, por lo que preferiría escribirlo así:
Solo medí la correlación a lo largo de la dirección de los vectores de red y no a lo largo de ninguna diagonal. Sin embargo, eso no debería importar, ya que existe una prueba de que la correlación espín-espín es rotacionalmente simétrica en el punto crítico.
Solo encajé tu formulario en el rango para un modelo de 512x512. Creo que si vas más allá, obtienes demasiada influencia en las condiciones de contorno periódicas. Definitivamente no puedes encajar todo rango, ya que la correlación debe tener un mínimo en .
La función de correlación cambia bastante rápido con la temperatura alrededor del punto crítico, así que asegúrese de tener la temperatura correcta y que todo esté equilibrado. Según mi experiencia, es mejor comenzar el algoritmo de Wolff con un modelo en el que todos los giros apunten en la misma dirección. Si realiza giros aleatorios y luego se enfría desde a el algoritmo de Wolff es extremadamente ineficiente al principio, ya que no puede construir grandes grupos en este ruido de giros aleatorios.
¡Espero que ayude!
Es solo exactamente a la temperatura crítica que este resultado CFT funciona. No has mencionado si has usado la temperatura crítica cuando hiciste el monte-carlo.
En/cerca del punto crítico, el tiempo de autocorrelación se vuelve enorme. (Si no me equivoco, el tiempo de autocorrelación debe explotar exactamente a la temperatura crítica, sin embargo, se corta debido a la finitud del sistema). Por lo tanto, es mejor registrar las mediciones una vez cada 3 a 5 tiempos de autocorrelación. Tenga en cuenta que, para una semilla aleatoria dada, los efectos de autocorrelación pueden generar un error sistemático, mientras que el error estadístico debido al efecto de autocorrelación se puede estimar utilizando diferentes semillas aleatorias. Busque en este libro: http://www.amazon.com/Monte-Carlo-Methods-Statistical-Physics/dp/0198517971
Mi conjetura es que, siempre que esté a 10-20 espines del límite cuando realice la medición de la corrección de espín-espín, no verá los efectos del límite. Esto es solo una suposición. ¿Por qué no pones condiciones de contorno periódicas y ves? El vecino de i,j es (i+1)%L, (j+1)%L y 3 otros como este.
Carlos Witthoft
seguro
Aprender es un desastre
Aprender es un desastre
Alejandro
Aprender es un desastre
david z
seguro
david z
AJK
N. Virgo
N. Virgo
david z
N. Virgo
N. Virgo
david z
N. Virgo
N. Virgo
david z
seguro
david z