-
David Ramos Salamanca authored4068b3bc
observables.py 823 B
import numpy as np
def energia(arreglo, N):
"""Devuelve la energia de una configuración de espines.
Argumentos:
arreglo -- arreglo NxN de numpy
valores del espin en cada sitio
N -- entero
tamaño de la red
"""
energia = 0
for i in range(0,N):
for j in range(0,N):
spin = arreglo[i,j]
vecinos = arreglo[(i+1)%N, j] + arreglo[i, (j+1)%N] + \
arreglo[(i-1)%N, j] + arreglo[i, (j-1)%N]
energia += - spin * vecinos
return energia / 2
def magnetizacion(arreglo):
"""Devuelve la magnetización de una configuración de espines.
Argumentos:
arreglo -- arreglo NxN de numpy
valores del espin en cada sitio
"""
magnetizacion = np.sum(arreglo)
return abs(magnetizacion)