Skip to content
Snippets Groups Projects
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)