<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>http://fiscomp.if.ufrgs.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Misalocin</id>
	<title>Física Computacional - Contribuições do usuário [pt-br]</title>
	<link rel="self" type="application/atom+xml" href="http://fiscomp.if.ufrgs.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Misalocin"/>
	<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Especial:Contribui%C3%A7%C3%B5es/Misalocin"/>
	<updated>2026-09-17T20:23:21Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=C%C3%B3digo:Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11692</id>
		<title>Código:Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=C%C3%B3digo:Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11692"/>
		<updated>2026-07-06T20:08:17Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: Criou página com &amp;#039;O código foi feito em um notebook de python, tendo duas células principais. A primeira é a que define as funções e faz o trabalho pesado de simular o Wang-Landau.  &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt; @njit def genLookup(side):     &amp;#039;&amp;#039;&amp;#039;     Cria uma tabela com o índice das células vizinhas dado um tamanho de grade     &amp;#039;&amp;#039;&amp;#039;     index = np.arange(side**2)     up    = (index - side) % (side**2)     down  = (index + side) % (side**2)     left  = np.where(index       % side =...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;O código foi feito em um notebook de python, tendo duas células principais. A primeira é a que define as funções e faz o trabalho pesado de simular o Wang-Landau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
@njit&lt;br /&gt;
def genLookup(side):&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    Cria uma tabela com o índice das células vizinhas dado um tamanho de grade&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    index = np.arange(side**2)&lt;br /&gt;
    up    = (index - side) % (side**2)&lt;br /&gt;
    down  = (index + side) % (side**2)&lt;br /&gt;
    left  = np.where(index       % side == 0, index - 1 + side, index - 1)&lt;br /&gt;
    right = np.where((index + 1) % side == 0, index + 1 - side, index + 1)&lt;br /&gt;
    return np.stack((up, down, left, right))&lt;br /&gt;
&lt;br /&gt;
@njit&lt;br /&gt;
def simWangLandaw(state, lookup, indexE, histE, logf, logG, minE, maxE, mask, flatness, w):&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    Executa a simulação de Wang-Landau de maneira que os valores estejam contidos&lt;br /&gt;
    em um intervalo de energia (para paralelização)&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    # Salva o número de partículas totais e o número de iterações&lt;br /&gt;
    N = state.size&lt;br /&gt;
    i = 0&lt;br /&gt;
    conv = True&lt;br /&gt;
&lt;br /&gt;
    # Enquanto o histograma não estiver plano e o código não tiver rodado&lt;br /&gt;
    # mais de 100.000.000 de vezes, evolui o sistema&lt;br /&gt;
    while not flatHist(histE, minE, maxE, mask, flatness) and i&amp;lt;limIter:&lt;br /&gt;
        i += 1&lt;br /&gt;
        index = np.random.randint(0, N)&lt;br /&gt;
        spin = state[index]&lt;br /&gt;
        neiSum = state[lookup[0][index]] + state[lookup[1][index]] + \&lt;br /&gt;
                 state[lookup[2][index]] + state[lookup[3][index]]&lt;br /&gt;
&lt;br /&gt;
        newSpin = proposeSpin(spin)&lt;br /&gt;
        dE = deltaE(spin, newSpin, neiSum)&lt;br /&gt;
&lt;br /&gt;
        # Calcula a nova energia devido a mudança de spin&lt;br /&gt;
        newIndexE = indexE + dE&lt;br /&gt;
&lt;br /&gt;
        # Se tiver dentro do intervalo de enegrgia da simulação&lt;br /&gt;
        if newIndexE &amp;gt;= minE and newIndexE &amp;lt;= maxE:&lt;br /&gt;
            # Atualiza o spin com uma dada probabilidade&lt;br /&gt;
            if np.random.random() &amp;lt; min(1.0, np.exp(logG[indexE] - logG[newIndexE])):&lt;br /&gt;
                state[index] = newSpin                    # BC: atribui newSpin, não -spin&lt;br /&gt;
                indexE = newIndexE&lt;br /&gt;
&lt;br /&gt;
        # Salva a energia no histograma de energias e incrementa &lt;br /&gt;
        # o logarítmo da função g pelo valor logf&lt;br /&gt;
        histE[indexE] += 1&lt;br /&gt;
        logG[indexE] += logf&lt;br /&gt;
&lt;br /&gt;
    # Se a função não convergir com o valor de logf, registra no terminal &lt;br /&gt;
    # e marca como não sendo possível convergir&lt;br /&gt;
    if i &amp;gt;= limIter:&lt;br /&gt;
        conv = False&lt;br /&gt;
        total = 0&lt;br /&gt;
        count = 0&lt;br /&gt;
        minh = 1e12&lt;br /&gt;
        for i in range(minE, maxE + 1):&lt;br /&gt;
            h = histE[i]&lt;br /&gt;
            if not mask[i]:&lt;br /&gt;
                continue&lt;br /&gt;
            elif h &amp;gt;= 10:&lt;br /&gt;
                total += h&lt;br /&gt;
                count += 1&lt;br /&gt;
                if h &amp;lt; minh:&lt;br /&gt;
                    minh = h&lt;br /&gt;
        print(w+1, &amp;quot; never converged, got at &amp;quot;, 100*minh/(total/count), &amp;quot;%&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    # Retorna o estado e energia final, além da confirmação de convergência&lt;br /&gt;
    return state, indexE, conv&lt;br /&gt;
&lt;br /&gt;
@njit&lt;br /&gt;
def flatHist(hist, minE, maxE, mask, flatness):&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    Verifica o quão plano o histograma de energias está&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    # Cria duas variáveis para calcular a média&lt;br /&gt;
    total = 0&lt;br /&gt;
    count = 0&lt;br /&gt;
    minVisits=10&lt;br /&gt;
&lt;br /&gt;
    # Soma todos os h que já passaram de um mínimo e conta quantos são eles&lt;br /&gt;
    # Ignora as partes que nunca sairão de zero pela mask&lt;br /&gt;
    for i in range(minE, maxE + 1):&lt;br /&gt;
        h = hist[i]&lt;br /&gt;
        if not mask[i]:&lt;br /&gt;
            continue&lt;br /&gt;
        elif h &amp;gt;= minVisits:&lt;br /&gt;
            total += h&lt;br /&gt;
            count += 1&lt;br /&gt;
        else:&lt;br /&gt;
            return False&lt;br /&gt;
&lt;br /&gt;
    # Se nenhum h foi contado, retorna falso&lt;br /&gt;
    if count == 0:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    # Verifica se todos os valores de h são maiores que uma porcentagem da média&lt;br /&gt;
    # Também ignora os valores que são sempre 0&lt;br /&gt;
    for i in range(minE, maxE + 1):&lt;br /&gt;
        h = hist[i]&lt;br /&gt;
        if not mask[i]:&lt;br /&gt;
            continue&lt;br /&gt;
        elif h &amp;gt; minVisits and h &amp;lt; flatness * (total / count):&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
@njit(parallel=True)&lt;br /&gt;
def parallelWangLandau(N, lookup, numE, logfInit, bounds, mask, flatness=0.8):&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    Executa o modelo de Wang-Landau em intervalos de energia de maneira&lt;br /&gt;
    que seja possível rodar o código em paralelo para cada intervalo&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    # Número de simulações paralelas&lt;br /&gt;
    numSim = len(bounds) - 1&lt;br /&gt;
    &lt;br /&gt;
    # Cria duas matrizes que armazenarão o conjunto de dados&lt;br /&gt;
    # de cada processo&lt;br /&gt;
    logG = np.zeros((numSim, numE))&lt;br /&gt;
    histE = np.zeros((numSim, numE))&lt;br /&gt;
&lt;br /&gt;
    # Para cada núcleo do processador&lt;br /&gt;
    for w in prange(numSim):&lt;br /&gt;
&lt;br /&gt;
        # Define o intervalo de energias daquele núcleo&lt;br /&gt;
        minE = bounds[w]&lt;br /&gt;
        maxE = bounds[w+1]&lt;br /&gt;
&lt;br /&gt;
        # Começa a simulação do estado de menor energia&lt;br /&gt;
        state = np.ones(N, dtype=np.int16)&lt;br /&gt;
        indexE = 0&lt;br /&gt;
&lt;br /&gt;
        # Enquanto a energia não alcança o valor mínimo, simula o programa&lt;br /&gt;
        while indexE &amp;lt; minE:&lt;br /&gt;
            idx = np.random.randint(0, N)&lt;br /&gt;
            spin = state[idx]&lt;br /&gt;
            neiSum = state[lookup[0][idx]] + state[lookup[1][idx]] + \&lt;br /&gt;
                     state[lookup[2][idx]] + state[lookup[3][idx]]&lt;br /&gt;
            newSpin = proposeSpin(spin)&lt;br /&gt;
            dE = deltaE(spin, newSpin, neiSum)&lt;br /&gt;
&lt;br /&gt;
            # Só aceita se a variação for positiva&lt;br /&gt;
            if dE &amp;gt; 0:&lt;br /&gt;
                state[idx] = newSpin&lt;br /&gt;
                indexE += dE&lt;br /&gt;
            else:&lt;br /&gt;
                # Aleatoriamente aceita uma queda de energia&lt;br /&gt;
                # evitando máximos locais&lt;br /&gt;
                if np.random.random() &amp;lt; 0.05:&lt;br /&gt;
                    state[idx] = newSpin&lt;br /&gt;
                    indexE += dE&lt;br /&gt;
        # Valor inicial do logarítmo do valor de f&lt;br /&gt;
        logf = logfInit&lt;br /&gt;
&lt;br /&gt;
        # Se a simulação convergiu&lt;br /&gt;
        conv = True&lt;br /&gt;
&lt;br /&gt;
        # Enquanto f é muito grande ou as simulações convergirem&lt;br /&gt;
        while np.exp(logf) - 1 &amp;gt; minf and conv:&lt;br /&gt;
            &lt;br /&gt;
            # Reseta o histograma de energia e executa uma nova simulação&lt;br /&gt;
            histE[w, :] = 0&lt;br /&gt;
            state, indexE, conv = simWangLandaw(state, lookup, indexE, histE[w],&lt;br /&gt;
                                           logf, logG[w], minE, maxE, mask, flatness,w)&lt;br /&gt;
            #Tira a raiz de f&lt;br /&gt;
            logf *= 0.5&lt;br /&gt;
&lt;br /&gt;
    # Retorna o logarítmo da função G e o histograma de energia&lt;br /&gt;
    return logG, histE&lt;br /&gt;
&lt;br /&gt;
def wangLandau(N, lookup, numE, logf, numCores, mask, flatness=0.8):&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    Chama parallelWangLandau e une (concatena/corrige offset) os&lt;br /&gt;
    resultados de cada núcleo em um único par (lnG, histE) de tamanho numE.&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    bounds = np.array([int(i * (numE - 1) / numCores) for i in range(numCores)] + [numE - 1])&lt;br /&gt;
&lt;br /&gt;
    lnGSplit, histESplit = parallelWangLandau(N, lookup, numE, logf, bounds, mask, flatness)&lt;br /&gt;
&lt;br /&gt;
    numSim = len(bounds) - 1&lt;br /&gt;
&lt;br /&gt;
    lnG = np.zeros(numE)&lt;br /&gt;
    histE = np.zeros(numE)&lt;br /&gt;
&lt;br /&gt;
    sl = slice(bounds[0], bounds[1] + 1)&lt;br /&gt;
    lnG[sl] = lnGSplit[0, sl]&lt;br /&gt;
    histE[sl] = histESplit[0, sl] / np.mean(histESplit[0, sl][mask[sl]])&lt;br /&gt;
&lt;br /&gt;
    for w in range(1, numSim):&lt;br /&gt;
        sl = slice(bounds[w], bounds[w+1] + 1)&lt;br /&gt;
        overlap = bounds[w]&lt;br /&gt;
        offset = lnG[overlap] - lnGSplit[w, overlap]&lt;br /&gt;
        lnGSplit[w] += offset&lt;br /&gt;
&lt;br /&gt;
        lnG[sl] = lnGSplit[w, sl]&lt;br /&gt;
        histE[sl] = histESplit[w, sl] / np.mean(histESplit[w, sl][mask[sl]])&lt;br /&gt;
&lt;br /&gt;
    return lnG, histE&lt;br /&gt;
&lt;br /&gt;
def thermVar(lng, E, kbTs):&lt;br /&gt;
    U = np.zeros_like(kbTs)&lt;br /&gt;
    C = np.zeros_like(kbTs)&lt;br /&gt;
    F = np.zeros_like(kbTs)&lt;br /&gt;
    S = np.zeros_like(kbTs)&lt;br /&gt;
    for i, kbT in enumerate(kbTs):&lt;br /&gt;
        lnP = lng - E / kbT&lt;br /&gt;
&lt;br /&gt;
        M = np.max(lnP)&lt;br /&gt;
        P = np.exp(lnP - M)&lt;br /&gt;
        Zrel = np.sum(P)&lt;br /&gt;
        lnZ  = M + np.log(Zrel)&lt;br /&gt;
        u  = np.sum(E * P) / Zrel&lt;br /&gt;
        u2 = np.sum(E**2 * P) / Zrel&lt;br /&gt;
        U[i] = u&lt;br /&gt;
        C[i] = (u2 - u**2) / kbT**2&lt;br /&gt;
        F[i] = -kbT * lnZ&lt;br /&gt;
        S[i] = (U[i] - F[i]) / kbT&lt;br /&gt;
    return U, C, F, S&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tendo isso, a implementação para o modelo de Ising segue abaixo&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
@njit&lt;br /&gt;
def proposeSpin(spin):&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    Define o possível novo spin como o oposto do spin atual&lt;br /&gt;
    como definido no modelo de Ising&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    return -spin&lt;br /&gt;
&lt;br /&gt;
@njit&lt;br /&gt;
def deltaE(spin, newSpin, neiSum):&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    Variação de energia total de um passo em valor de índice&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    return np.int16(- (newSpin - spin) * neiSum)//4&lt;br /&gt;
&lt;br /&gt;
gridSize = 32&lt;br /&gt;
logf = 1.0&lt;br /&gt;
# Número de núcleos do processador a serem utilizados&lt;br /&gt;
numCores = 12&lt;br /&gt;
# Valor mínimo para o valor 1-f&lt;br /&gt;
minf = 1e-8&lt;br /&gt;
# Limita o número de iterações para evitar que rode infinitamente&lt;br /&gt;
limIter = 100_000_000&lt;br /&gt;
&lt;br /&gt;
N = gridSize**2&lt;br /&gt;
lookup = genLookup(gridSize)&lt;br /&gt;
&lt;br /&gt;
simWangLandaw.recompile()      # Recompila as funções em numba caso elas já tenham sido geradas&lt;br /&gt;
parallelWangLandau.recompile()&lt;br /&gt;
&lt;br /&gt;
# Número de energias a serem visitadas, incluindo as impossíveis para que seja mantido o intervalo&lt;br /&gt;
# entre energias&lt;br /&gt;
numE = N + 1&lt;br /&gt;
&lt;br /&gt;
# Máscara para os valores impossíveis&lt;br /&gt;
mask = np.ones(numE, dtype=bool)&lt;br /&gt;
mask[1] = mask[-2] = False&lt;br /&gt;
&lt;br /&gt;
# Executa a simulação em si&lt;br /&gt;
lnG, histE = wangLandau(N, lookup, numE, logf, numCores, mask, flatness=0.95)&lt;br /&gt;
energies = - 2 + 4 * np.arange(numE)/N&lt;br /&gt;
energies = - energies[mask]&lt;br /&gt;
lnG = lnG[mask] + np.log(2) - np.mean((lnG[0],lnG[-1]))&lt;br /&gt;
histE = histE[mask]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, pode-se extrair os dados e realizar as medidas escolhidas. O mesmo código acima para o modelo de Blume-Capel segue abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
@njit&lt;br /&gt;
@njit&lt;br /&gt;
def proposeSpin(spin):&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    Função que sorteia um novo spin para uma dada partícula&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    r = np.random.randint(0, 2)&lt;br /&gt;
    if spin == 0:&lt;br /&gt;
        return -1 if r == 0 else  1&lt;br /&gt;
    elif spin == 1:&lt;br /&gt;
        return 0  if r == 0 else -1&lt;br /&gt;
    else:&lt;br /&gt;
        return 0  if r == 0 else  1&lt;br /&gt;
&lt;br /&gt;
@njit&lt;br /&gt;
def deltaE(spin, newSpin, neiSum):&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    Função que calcula a variação de energia para o modelo estudado&lt;br /&gt;
    DEVE retornar um inteiro&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    return - (newSpin - spin) * neiSum + (newSpin**2 - spin**2)&lt;br /&gt;
&lt;br /&gt;
gridSize = 32&lt;br /&gt;
logf = 1.0&lt;br /&gt;
# Número de núcleos do processador a serem utilizados&lt;br /&gt;
numCores = 12&lt;br /&gt;
# Valor mínimo para o valor 1-f&lt;br /&gt;
minf = 1e-8&lt;br /&gt;
# Limita o número de iterações para evitar que rode infinitamente&lt;br /&gt;
limIter = 100_000_000&lt;br /&gt;
&lt;br /&gt;
N = gridSize**2&lt;br /&gt;
lookup = genLookup(gridSize)&lt;br /&gt;
&lt;br /&gt;
simWangLandaw.recompile()      # Recompila as funções em numba caso elas já tenham sido geradas&lt;br /&gt;
parallelWangLandau.recompile()&lt;br /&gt;
&lt;br /&gt;
# Número de energias a serem visitadas, incluindo as impossíveis para que seja mantido o intervalo&lt;br /&gt;
# entre energias&lt;br /&gt;
numE = 4 * N + 1&lt;br /&gt;
&lt;br /&gt;
# Máscara para os valores impossíveis&lt;br /&gt;
mask = np.ones(numE, dtype=bool)&lt;br /&gt;
mask[1] = mask[2] = mask[4] = mask[-2] = mask[-3] = mask[-4] = mask[-5] = mask[-7] = mask[-8] = False&lt;br /&gt;
&lt;br /&gt;
# Executa a simulação em si&lt;br /&gt;
lnG, histE = wangLandau(N, lookup, numE, logf, numCores, mask, flatness=0.95)&lt;br /&gt;
energies = - 2 + 4 * np.arange(numE)/N&lt;br /&gt;
energies = - energies[mask]&lt;br /&gt;
lnG = lnG[mask] + np.log(2) - np.mean((lnG[0],lnG[-1]))&lt;br /&gt;
histE = histE[mask]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11691</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11691"/>
		<updated>2026-07-06T19:59:24Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;O modelo de Wang-Landau&amp;lt;ref name=wanglandau/&amp;gt; já foi estudado amplamente, inclusive em outros trabalhos nessa mesma wiki. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida&amp;lt;ref name=beale/&amp;gt; e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado é a implementação do método em paralelo, de maneira a acelerar os resultados. O código foi feito em python, utiliza uma rede quadrada de lado de tamanho 32 e pode ser acessado na página [[código:Wang-Landau em simulação do tipo Blume-Capel]]&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tendo uma rede com condições de contorno periódicas., a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter um estado com spin nulo, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados inacessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropoles tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura. Caso queria fazer medidas para diferentes temperaturas é necessário refazer toda a simulação.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&lt;br /&gt;
As simulações utilizam números que crescem de maneira exponencial, como a própria distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, para evitar um possível erro de overflow que poderia acontecer com valores tão altos, o código utiliza em diversos momentos o logaritmo das funções, com a multiplicação por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; se tornando uma soma, e a raiz de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; se tornando uma divisão. Essa transformação também permite o processo &lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente &amp;lt;ref name=beale/&amp;gt;, ele pode ser calculado através de um algoritmo&amp;lt;ref name=bealesite/&amp;gt; feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;mathematica&amp;quot;&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e, provavelmente, foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema quadrado de lado 32. Para facilitar trabalho futuro, a solução para grades de lado 8, 16 e 32 pode ser vista na página [[distribuição de energia exata para modelo de Ising]]&lt;br /&gt;
&lt;br /&gt;
Com o resultado exato e a simulação feita, pode-se comparar o resultado da distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; gerada pelo método de Wang-Landau e os valores exatos. Normalmente se utiliza o erro relativo para casos como o descrito aqui. Porém, muitos dos valores a serem estudados acabam por ser próximos de 0, por isso foi utilizado o erro relativo global, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\epsilon_i(X)=\frac{|X_{exato}(x_i)-X_{medido}(x_i)|}{|max(X_{exato}(x))}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é calculada a distribuição exata de energia:&lt;br /&gt;
&lt;br /&gt;
[[File:ising_lnge.png|800px|center|Gráfico de &amp;lt;math&amp;gt;ln(g(E))&amp;lt;/math&amp;gt; para o modelo de Ising com a distribuição de energias a direita e o erro na parte inferior esquerda.]]&lt;br /&gt;
&lt;br /&gt;
E, tendo a distribuição de energia, constrói-se a distribuição canônica, isso é, a função densidade de probabilidade das energias a uma temperatura, de maneira simples, com uma transformação dos valores obtidos. Essa distribuição depende da temperatura e da energia e, normalmente, seria extremamente difícil de se modelar computacionalmente através do modelo de Metropoles. abaixo é mostrada a distribuição canônica na temperatura crítica.&lt;br /&gt;
&lt;br /&gt;
[[File:ising_pe.png|500px|center|Gráfico da distribuição de probabilidade de cada energia do modelo de Ising com o erro na parte inferior.]]&lt;br /&gt;
&lt;br /&gt;
E, por fim, as grandezas termodinâmicas são calculadas.&lt;br /&gt;
&lt;br /&gt;
[[File:ising_gt.png|700px|center|Figura com o gráfico da energia interna, energia livre de Helmholtz, calor interno e entropia no modelo de Ising. Cada um com o erro comparado com os resultado abaixo do respectivo gráfico.]]&lt;br /&gt;
&lt;br /&gt;
Analisando os gráficos, percebe-se que o erro fica constantemente em valores menores que 10% das medidas, mostrando que ele é um método que gera resultados próximos dos reais de maneira consistente.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Com o método avaliado, é possível realizar o estudo para o modelo para partículas de spin 1, o Blume-Capel. Esse modelo não tem uma solução exata para se comparar. Refazendo os mesmos passos do modelo de Ising, mas mudando a definição de mudança de energia e de spins possíveis, é possível gerar a seguinte &amp;lt;math&amp;gt;g(T)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:blume_lnge.png|800px|center|Gráfico de &amp;lt;math&amp;gt;ln(g(E))&amp;lt;/math&amp;gt; para o modelo de Blume-Capel com o histograma de energias a direita.]]&lt;br /&gt;
&lt;br /&gt;
Aqui, o acréscimo do termo de magnetização desloca o pico de &amp;lt;math&amp;gt;g(E)&amp;lt;math&amp;gt;, de maneira que a função deixe de ser simétrica. Analisando a probabilidade &amp;lt;math&amp;gt;P(E)&amp;lt;/math&amp;gt; na temperatura crítica de aproximadamente 1.403 &amp;lt;ref name=critempbc/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:blume_pe.png|600px|center|Gráfico da distribuição de probabilidade de cada energia para o modelo de Blume-Capel.]]&lt;br /&gt;
&lt;br /&gt;
É possível ver que o formato é parecido com o caso de Ising, mas aqui a densidade se afasta dos valores mínimos e distribui de maneira mais uniforme a energia, tendo um pico mais baixo que o caso de Ising e, consequentemente, descidas maiores.&lt;br /&gt;
&lt;br /&gt;
Por fim, as grandezas termodinâmicas desse modelo são calculadas:&lt;br /&gt;
&lt;br /&gt;
[[File:blume_gt.png|700px|center|Figura com o gráfico da energia interna, energia livre de Helmholtz, calor interno para o caso do modelo de Blume-Capel.]]&lt;br /&gt;
&lt;br /&gt;
Aqui, as simulações estão de acordo com a temperatura crítica estimada por se alinhar com o máximo do calor específico, pontos de inflexão da energia interna e da entropia, além do ponto de queda da energia livre de Helmholtz. Em comparação com o caso de Ising, os formatos são parecidos considerando o deslocamento da temperatura crítica. Uma diferença no formato entre os dois casos é mais evidente no calor específico e na entropia, onde a subida inicial apresenta um comportamento linear no caso de Blume-Capel e parabólico no Ising.&lt;br /&gt;
&lt;br /&gt;
Embora não tenha uma solução exata, os resultados estão comparáveis a outras simulações feitas.&amp;lt;ref name=compare/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Apêndice 1: Paralelização ==&lt;br /&gt;
&lt;br /&gt;
Esse código acaba sendo muito extenso para redes com lados grandes como o estudado aqui. Para evitar tempos longos de execução, as simulações usadas para encontrar &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; foram rodadas em múltiplos núcleos de processamento. Como o que importa é a razão entre o valor de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; para&lt;br /&gt;
diferentes energias, então pode-se separar todas as energias acessíveis em intervalos aos quais cada núcleo será responsável por simular. É importante também que ao menos uma energia seja compartilhada entre a simulações com energias vizinhas para que seja possível unir todas em um único gráfico.&lt;br /&gt;
&lt;br /&gt;
Como um resultado da separação, cada núcleo terá seu próprio histograma final com uma planicidade e média próprias. Então nos histogramas presentes aqui seus valores foram divididos pela média do intervalo antes de serem concatenados, de maneira que a média final seja 1.&lt;br /&gt;
&lt;br /&gt;
Por fim, para acelerar o processo de começar as simulações em si por núcleo, o sistema de todos os núcleos foi iniciado com a menor energia possível e só foram aceitos passos que aumentassem a energia do sistema até que ele chegasse na energia mínima para as simulações de um dado núcleo.&lt;br /&gt;
&lt;br /&gt;
== Apêndice B: Níveis impossíveis do modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
No modelo de Blume-Capel com &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;, as energias acessáveis pelo sistema, a princípio, são todas aquelas entre &amp;lt;math&amp;gt;-N&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;+3N&amp;lt;/math&amp;gt; a passos de tamanho 1. Porém, nos casos extremos existem algumas limitações. Os valores impossíveis foram primeiro vistos em código, pois esses valores de energia nunca eram preenchidos, mesmo após muito tempo de simulação. Então eles foram estudados e tentarei os explicar aqui.&lt;br /&gt;
&lt;br /&gt;
=== Níveis mínimos ===&lt;br /&gt;
&lt;br /&gt;
O estado em que &amp;lt;math&amp;gt;E=-N&amp;lt;/math&amp;gt; só pode ser acessado com todas as partículas com spins iguais, sendo &amp;lt;math&amp;gt;\pm1&amp;lt;/math&amp;gt;. Na simulação, os valores impossíveis foram:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considerando o estado inicial, uma partícula aleatória pode mudar a energia do sistema por;&lt;br /&gt;
* Inverter seu spin, o termo de magnetização continua igual, mas a energia potencial aumenta 8. (-N+8)&lt;br /&gt;
* Perder seu spin, o termo de magnetização diminui a energia em 1 e o termo potencial aumenta em 4 (-N+3)&lt;br /&gt;
&lt;br /&gt;
A partícula com o spin invertido já sai da região de interesse, mas a partícula que perde o spin explica por quê o nível -N+1 e -N+2 são impossíveis, já que qualquer outro passo aumentaria a energia do sistema. Já o valor de N+5 pode ser acessado ao tirar o spin de uma partícula ao lado da primeira com spin 0, de maneira que a energia potencial diminua mais 3 unidades e a magnética aumente 1, com uma variação de 2 unidades. O mesmo pode ser feito para chegar ao nível -N+7. O nível -N+1 pode ser acessado da mesma maneira que o -N+5, mas com tirando o spin de uma partícula que não seja vizinha da primeira.&lt;br /&gt;
&lt;br /&gt;
=== Níveis máximos ===&lt;br /&gt;
&lt;br /&gt;
Esse estado pode ser alcançado por ter todas as partículas perfeitamente desalinhadas e pode ser chego também de duas formas, selecionando uma partícula de referência para o padrão, ela pode começar em +1 ou -1. Aqui, muitos outros estados são inalcançáveis, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Daqui, faz-se o mesmo estudo que feito anteriormente para os dois casos, selecionando uma partícula e mudando seu spin para que fique&lt;br /&gt;
&lt;br /&gt;
* Invertido, o termo de magnetização continua igual, mas a energia potencial diminui em 8. (N-8)&lt;br /&gt;
* Perder seu spin, o termo de magnetização diminui a energia em 1 e o termo potencial diminui em 4 (N-5)&lt;br /&gt;
&lt;br /&gt;
E do estado N-5, o menor passo possível é, novamente, tirando o spin de uma partícula vizinha, mas isso diminui a energia para N-9 (diminui em 3 pelo termo potencial e 1 pelo magnético). Assim, é possível analiticamente ver a lista completa de energias impossíveis para o Hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}=-\sum_{&amp;lt;i,j&amp;gt;}^N\sigma_i\sigma_j+\sum_n^N\sigma_n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=wanglandau&amp;gt; D. P. Landau, Shan-ho Tsai, M. Exler, &#039;&#039;&#039;A new approach to Monte Carlo simulations in statistical physics: Wang-Landau sampling&#039;&#039;&#039;, American Journal of Physics 72, 1294 (2004). https://doi.org/10.1119/1.1707017&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=beale&amp;gt; P. D. Beale, &#039;&#039;&#039;Exact Distribution of Energies in the Two-Dimensional Ising Model&#039;&#039;&#039;, Phys. Rev. Lett. 76,78 (1996). https://doi.org/10.1103/PhysRevLett.76.78&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=critempbc&amp;gt;Zierenberg, J., Fytas, N.G., Weigel, M. et al. &#039;&#039;&#039;Scaling and universality in the phase diagram of the 2D Blume-Capel model.&#039;&#039;&#039; Eur. Phys. J. Spec. Top. 226, 789–804 (2017). https://doi.org/10.1140/epjst/e2016-60337-x&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=compare&amp;gt; Silva, C. J., Caparica, A. A., Plascak, J. A. &#039;&#039;&#039;Wang-Landau Monte Carlo simulation of the Blume-Capel model&#039;&#039;&#039; American Physical Society 73, (2006). https://link.aps.org/doi/10.1103/PhysRevE.73.036702&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=bealesite&amp;gt; P. D. Beale, &#039;&#039;&#039;Ising Exact&#039;&#039;&#039;, University of Colorado Boulder, https://spot.colorado.edu/~beale/IsingExactMathematica.html. Visitado em 06/07/2026&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11690</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11690"/>
		<updated>2026-07-06T19:56:09Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau&amp;lt;ref name=wanglandau/&amp;gt; já foi estudado amplamente, inclusive em outros trabalhos nessa mesma wiki. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida&amp;lt;ref name=beale/&amp;gt; e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado é a implementação do método em paralelo, de maneira a acelerar os resultados.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tendo uma rede com condições de contorno periódicas., a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter um estado com spin nulo, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados inacessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropoles tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura. Caso queria fazer medidas para diferentes temperaturas é necessário refazer toda a simulação.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&lt;br /&gt;
As simulações utilizam números que crescem de maneira exponencial, como a própria distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, para evitar um possível erro de overflow que poderia acontecer com valores tão altos, o código utiliza em diversos momentos o logaritmo das funções, com a multiplicação por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; se tornando uma soma, e a raiz de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; se tornando uma divisão. Essa transformação também permite o processo &lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente &amp;lt;ref name=beale/&amp;gt;, ele pode ser calculado através de um algoritmo&amp;lt;ref name=bealesite/&amp;gt; feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;mathematica&amp;quot;&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e, provavelmente, foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema quadrado de lado 32. Para facilitar trabalho futuro, a solução para grades de lado 8, 16 e 32 pode ser vista na página [[distribuição de energia exata para modelo de Ising]]&lt;br /&gt;
&lt;br /&gt;
Com o resultado exato e a simulação feita, pode-se comparar o resultado da distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; gerada pelo método de Wang-Landau e os valores exatos. Normalmente se utiliza o erro relativo para casos como o descrito aqui. Porém, muitos dos valores a serem estudados acabam por ser próximos de 0, por isso foi utilizado o erro relativo global, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\epsilon_i(X)=\frac{|X_{exato}(x_i)-X_{medido}(x_i)|}{|max(X_{exato}(x))}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é calculada a distribuição exata de energia:&lt;br /&gt;
&lt;br /&gt;
[[File:ising_lnge.png|800px|center|Gráfico de &amp;lt;math&amp;gt;ln(g(E))&amp;lt;/math&amp;gt; para o modelo de Ising com a distribuição de energias a direita e o erro na parte inferior esquerda.]]&lt;br /&gt;
&lt;br /&gt;
E, tendo a distribuição de energia, constrói-se a distribuição canônica, isso é, a função densidade de probabilidade das energias a uma temperatura, de maneira simples, com uma transformação dos valores obtidos. Essa distribuição depende da temperatura e da energia e, normalmente, seria extremamente difícil de se modelar computacionalmente através do modelo de Metropoles. abaixo é mostrada a distribuição canônica na temperatura crítica.&lt;br /&gt;
&lt;br /&gt;
[[File:ising_pe.png|500px|center|Gráfico da distribuição de probabilidade de cada energia do modelo de Ising com o erro na parte inferior.]]&lt;br /&gt;
&lt;br /&gt;
E, por fim, as grandezas termodinâmicas são calculadas.&lt;br /&gt;
&lt;br /&gt;
[[File:ising_gt.png|700px|center|Figura com o gráfico da energia interna, energia livre de Helmholtz, calor interno e entropia no modelo de Ising. Cada um com o erro comparado com os resultado abaixo do respectivo gráfico.]]&lt;br /&gt;
&lt;br /&gt;
Analisando os gráficos, percebe-se que o erro fica constantemente em valores menores que 10% das medidas, mostrando que ele é um método que gera resultados próximos dos reais de maneira consistente.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Com o método avaliado, é possível realizar o estudo para o modelo para partículas de spin 1, o Blume-Capel. Esse modelo não tem uma solução exata para se comparar. Refazendo os mesmos passos do modelo de Ising, mas mudando a definição de mudança de energia e de spins possíveis, é possível gerar a seguinte &amp;lt;math&amp;gt;g(T)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:blume_lnge.png|800px|center|Gráfico de &amp;lt;math&amp;gt;ln(g(E))&amp;lt;/math&amp;gt; para o modelo de Blume-Capel com o histograma de energias a direita.]]&lt;br /&gt;
&lt;br /&gt;
Aqui, o acréscimo do termo de magnetização desloca o pico de &amp;lt;math&amp;gt;g(E)&amp;lt;math&amp;gt;, de maneira que a função deixe de ser simétrica. Analisando a probabilidade &amp;lt;math&amp;gt;P(E)&amp;lt;/math&amp;gt; na temperatura crítica de aproximadamente 1.403 &amp;lt;ref name=critempbc/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:blume_pe.png|600px|center|Gráfico da distribuição de probabilidade de cada energia para o modelo de Blume-Capel.]]&lt;br /&gt;
&lt;br /&gt;
É possível ver que o formato é parecido com o caso de Ising, mas aqui a densidade se afasta dos valores mínimos e distribui de maneira mais uniforme a energia, tendo um pico mais baixo que o caso de Ising e, consequentemente, descidas maiores.&lt;br /&gt;
&lt;br /&gt;
Por fim, as grandezas termodinâmicas desse modelo são calculadas:&lt;br /&gt;
&lt;br /&gt;
[[File:blume_gt.png|700px|center|Figura com o gráfico da energia interna, energia livre de Helmholtz, calor interno para o caso do modelo de Blume-Capel.]]&lt;br /&gt;
&lt;br /&gt;
Aqui, as simulações estão de acordo com a temperatura crítica estimada por se alinhar com o máximo do calor específico, pontos de inflexão da energia interna e da entropia, além do ponto de queda da energia livre de Helmholtz. Em comparação com o caso de Ising, os formatos são parecidos considerando o deslocamento da temperatura crítica. Uma diferença no formato entre os dois casos é mais evidente no calor específico e na entropia, onde a subida inicial apresenta um comportamento linear no caso de Blume-Capel e parabólico no Ising.&lt;br /&gt;
&lt;br /&gt;
Embora não tenha uma solução exata, os resultados estão comparáveis a outras simulações feitas.&amp;lt;ref name=compare/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Apêndice 1: Paralelização ==&lt;br /&gt;
&lt;br /&gt;
Esse código acaba sendo muito extenso para redes com lados grandes como o estudado aqui. Para evitar tempos longos de execução, as simulações usadas para encontrar &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; foram rodadas em múltiplos núcleos de processamento. Como o que importa é a razão entre o valor de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; para&lt;br /&gt;
diferentes energias, então pode-se separar todas as energias acessíveis em intervalos aos quais cada núcleo será responsável por simular. É importante também que ao menos uma energia seja compartilhada entre a simulações com energias vizinhas para que seja possível unir todas em um único gráfico.&lt;br /&gt;
&lt;br /&gt;
Como um resultado da separação, cada núcleo terá seu próprio histograma final com uma planicidade e média próprias. Então nos histogramas presentes aqui seus valores foram divididos pela média do intervalo antes de serem concatenados, de maneira que a média final seja 1.&lt;br /&gt;
&lt;br /&gt;
Por fim, para acelerar o processo de começar as simulações em si por núcleo, o sistema de todos os núcleos foi iniciado com a menor energia possível e só foram aceitos passos que aumentassem a energia do sistema até que ele chegasse na energia mínima para as simulações de um dado núcleo.&lt;br /&gt;
&lt;br /&gt;
== Apêndice B: Níveis impossíveis do modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
No modelo de Blume-Capel com &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;, as energias acessáveis pelo sistema, a princípio, são todas aquelas entre &amp;lt;math&amp;gt;-N&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;+3N&amp;lt;/math&amp;gt; a passos de tamanho 1. Porém, nos casos extremos existem algumas limitações. Os valores impossíveis foram primeiro vistos em código, pois esses valores de energia nunca eram preenchidos, mesmo após muito tempo de simulação. Então eles foram estudados e tentarei os explicar aqui.&lt;br /&gt;
&lt;br /&gt;
=== Níveis mínimos ===&lt;br /&gt;
&lt;br /&gt;
O estado em que &amp;lt;math&amp;gt;E=-N&amp;lt;/math&amp;gt; só pode ser acessado com todas as partículas com spins iguais, sendo &amp;lt;math&amp;gt;\pm1&amp;lt;/math&amp;gt;. Na simulação, os valores impossíveis foram:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considerando o estado inicial, uma partícula aleatória pode mudar a energia do sistema por;&lt;br /&gt;
* Inverter seu spin, o termo de magnetização continua igual, mas a energia potencial aumenta 8. (-N+8)&lt;br /&gt;
* Perder seu spin, o termo de magnetização diminui a energia em 1 e o termo potencial aumenta em 4 (-N+3)&lt;br /&gt;
&lt;br /&gt;
A partícula com o spin invertido já sai da região de interesse, mas a partícula que perde o spin explica por quê o nível -N+1 e -N+2 são impossíveis, já que qualquer outro passo aumentaria a energia do sistema. Já o valor de N+5 pode ser acessado ao tirar o spin de uma partícula ao lado da primeira com spin 0, de maneira que a energia potencial diminua mais 3 unidades e a magnética aumente 1, com uma variação de 2 unidades. O mesmo pode ser feito para chegar ao nível -N+7. O nível -N+1 pode ser acessado da mesma maneira que o -N+5, mas com tirando o spin de uma partícula que não seja vizinha da primeira.&lt;br /&gt;
&lt;br /&gt;
=== Níveis máximos ===&lt;br /&gt;
&lt;br /&gt;
Esse estado pode ser alcançado por ter todas as partículas perfeitamente desalinhadas e pode ser chego também de duas formas, selecionando uma partícula de referência para o padrão, ela pode começar em +1 ou -1. Aqui, muitos outros estados são inalcançáveis, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Daqui, faz-se o mesmo estudo que feito anteriormente para os dois casos, selecionando uma partícula e mudando seu spin para que fique&lt;br /&gt;
&lt;br /&gt;
* Invertido, o termo de magnetização continua igual, mas a energia potencial diminui em 8. (N-8)&lt;br /&gt;
* Perder seu spin, o termo de magnetização diminui a energia em 1 e o termo potencial diminui em 4 (N-5)&lt;br /&gt;
&lt;br /&gt;
E do estado N-5, o menor passo possível é, novamente, tirando o spin de uma partícula vizinha, mas isso diminui a energia para N-9 (diminui em 3 pelo termo potencial e 1 pelo magnético). Assim, é possível analiticamente ver a lista completa de energias impossíveis para o Hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}=-\sum_{&amp;lt;i,j&amp;gt;}^N\sigma_i\sigma_j+\sum_n^N\sigma_n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=wanglandau&amp;gt; D. P. Landau, Shan-ho Tsai, M. Exler, &#039;&#039;&#039;A new approach to Monte Carlo simulations in statistical physics: Wang-Landau sampling&#039;&#039;&#039;, American Journal of Physics 72, 1294 (2004). https://doi.org/10.1119/1.1707017&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=beale&amp;gt; P. D. Beale, &#039;&#039;&#039;Exact Distribution of Energies in the Two-Dimensional Ising Model&#039;&#039;&#039;, Phys. Rev. Lett. 76,78 (1996). https://doi.org/10.1103/PhysRevLett.76.78&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=critempbc&amp;gt;Zierenberg, J., Fytas, N.G., Weigel, M. et al. &#039;&#039;&#039;Scaling and universality in the phase diagram of the 2D Blume-Capel model.&#039;&#039;&#039; Eur. Phys. J. Spec. Top. 226, 789–804 (2017). https://doi.org/10.1140/epjst/e2016-60337-x&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=compare&amp;gt; Silva, C. J., Caparica, A. A., Plascak, J. A. &#039;&#039;&#039;Wang-Landau Monte Carlo simulation of the Blume-Capel model&#039;&#039;&#039; American Physical Society 73, (2006). https://link.aps.org/doi/10.1103/PhysRevE.73.036702&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=bealesite&amp;gt; P. D. Beale, &#039;&#039;&#039;Ising Exact&#039;&#039;&#039;, University of Colorado Boulder, https://spot.colorado.edu/~beale/IsingExactMathematica.html. Visitado em 06/07/2026&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11689</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11689"/>
		<updated>2026-07-06T19:50:20Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau&amp;lt;ref name=wanglandau/&amp;gt; já foi estudado amplamente, inclusive em outros trabalhos nessa mesma wiki. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida&amp;lt;ref name=beale/&amp;gt; e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado é a implementação do método em paralelo, de maneira a acelerar os resultados.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tendo uma rede com condições de contorno periódicas., a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter um estado com spin nulo, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados inacessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropoles tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura. Caso queria fazer medidas para diferentes temperaturas é necessário refazer toda a simulação.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&lt;br /&gt;
As simulações utilizam números que crescem de maneira exponencial, como a própria distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, para evitar um possível erro de overflow que poderia acontecer com valores tão altos, o código utiliza em diversos momentos o logaritmo das funções, com a multiplicação por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; se tornando uma soma, e a raiz de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; se tornando uma divisão. Essa transformação também permite o processo &lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente &amp;lt;ref name=beale/&amp;gt;, ele pode ser calculado através de um algoritmo&amp;lt;ref name=bealesite/&amp;gt; feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;mathematica&amp;quot;&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e, provavelmente, foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema quadrado de lado 32. Para facilitar trabalho futuro, a solução para grades de lado 8, 16 e 32 pode ser vista na página [[distribuição de energia exata para modelo de Ising]]&lt;br /&gt;
&lt;br /&gt;
Com o resultado exato e a simulação feita, pode-se comparar o resultado da distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; gerada pelo método de Wang-Landau e os valores exatos. Normalmente se utiliza o erro relativo para casos como o descrito aqui. Porém, muitos dos valores a serem estudados acabam por ser próximos de 0, por isso foi utilizado o erro relativo global, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\epsilon_i(X)=\frac{|X_{exato}(x_i)-X_{medido}(x_i)|}{|max(X_{exato}(x))}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é calculada a distribuição exata de energia:&lt;br /&gt;
&lt;br /&gt;
[[File:ising_lnge.png|800px|center|Gráfico de &amp;lt;math&amp;gt;ln(g(E))&amp;lt;/math&amp;gt; para o modelo de Ising com a distribuição de energias a direita e o erro na parte inferior esquerda.]]&lt;br /&gt;
&lt;br /&gt;
E, tendo a distribuição de energia, constrói-se a distribuição canônica, isso é, a função densidade de probabilidade das energias a uma temperatura, de maneira simples, com uma transformação dos valores obtidos. Essa distribuição depende da temperatura e da energia e, normalmente, seria extremamente difícil de se modelar computacionalmente através do modelo de Metropoles. abaixo é mostrada a distribuição canônica na temperatura crítica.&lt;br /&gt;
&lt;br /&gt;
[[File:ising_pe.png|500px|center|Gráfico da distribuição de probabilidade de cada energia do modelo de Ising com o erro na parte inferior.]]&lt;br /&gt;
&lt;br /&gt;
E, por fim, as grandezas termodinâmicas são calculadas.&lt;br /&gt;
&lt;br /&gt;
[[File:ising_gt.png|700px|center|Figura com o gráfico da energia interna, energia livre de Helmholtz, calor interno e entropia no modelo de Ising. Cada um com o erro comparado com os resultado abaixo do respectivo gráfico.]]&lt;br /&gt;
&lt;br /&gt;
Analisando os gráficos, percebe-se que o erro fica constantemente em valores menores que 10% das medidas, mostrando que ele é um método que gera resultados próximos dos reais de maneira consistente.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Com o método avaliado, é possível realizar o estudo para o modelo para partículas de spin 1, o Blume-Capel. Esse modelo não tem uma solução exata para se comparar. Refazendo os mesmos passos do modelo de Ising, mas mudando a definição de mudança de energia e de spins possíveis, é possível gerar a seguinte &amp;lt;math&amp;gt;g(T)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:blume_lnge.png|800px|center|Gráfico de &amp;lt;math&amp;gt;ln(g(E))&amp;lt;/math&amp;gt; para o modelo de Blume-Capel com o histograma de energias a direita.]]&lt;br /&gt;
&lt;br /&gt;
Aqui, o acréscimo do termo de magnetização desloca o pico de &amp;lt;math&amp;gt;g(E)&amp;lt;math&amp;gt;, de maneira que a função deixe de ser simétrica. Analisando a probabilidade &amp;lt;math&amp;gt;P(E)&amp;lt;/math&amp;gt; na temperatura crítica de aproximadamente 1.403 &amp;lt;ref name=critempbc/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:blume_pe.png|600px|center|Gráfico da distribuição de probabilidade de cada energia para o modelo de Blume-Capel.]]&lt;br /&gt;
&lt;br /&gt;
É possível ver que o formato é parecido com o caso de Ising, mas aqui a densidade se afasta dos valores mínimos e distribui de maneira mais uniforme a energia, tendo um pico mais baixo que o caso de Ising e, consequentemente, descidas maiores.&lt;br /&gt;
&lt;br /&gt;
Por fim, as grandezas termodinâmicas desse modelo são calculadas:&lt;br /&gt;
&lt;br /&gt;
[[File:blume_gt.png|700px|center|Figura com o gráfico da energia interna, energia livre de Helmholtz, calor interno para o caso do modelo de Blume-Capel.]]&lt;br /&gt;
&lt;br /&gt;
Aqui, as simulações estão de acordo com a temperatura crítica estimada por se alinhar com o máximo do calor específico, pontos de inflexão da energia interna e da entropia, além do ponto de queda da energia livre de Helmholtz. Em comparação com o caso de Ising, os formatos são parecidos considerando o deslocamento da temperatura crítica. Uma diferença no formato entre os dois casos é mais evidente no calor específico e na entropia, onde a subida inicial apresenta um comportamento linear no caso de Blume-Capel e parabólico no Ising.&lt;br /&gt;
&lt;br /&gt;
== Apêndice 1: Paralelização ==&lt;br /&gt;
&lt;br /&gt;
Esse código acaba sendo muito extenso para redes com lados grandes como o estudado aqui. Para evitar tempos longos de execução, as simulações usadas para encontrar &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; foram rodadas em múltiplos núcleos de processamento. Como o que importa é a razão entre o valor de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; para&lt;br /&gt;
diferentes energias, então pode-se separar todas as energias acessíveis em intervalos aos quais cada núcleo será responsável por simular. É importante também que ao menos uma energia seja compartilhada entre a simulações com energias vizinhas para que seja possível unir todas em um único gráfico.&lt;br /&gt;
&lt;br /&gt;
Como um resultado da separação, cada núcleo terá seu próprio histograma final com uma planicidade e média próprias. Então nos histogramas presentes aqui seus valores foram divididos pela média do intervalo antes de serem concatenados, de maneira que a média final seja 1.&lt;br /&gt;
&lt;br /&gt;
Por fim, para acelerar o processo de começar as simulações em si por núcleo, o sistema de todos os núcleos foi iniciado com a menor energia possível e só foram aceitos passos que aumentassem a energia do sistema até que ele chegasse na energia mínima para as simulações de um dado núcleo.&lt;br /&gt;
&lt;br /&gt;
== Apêndice B: Níveis impossíveis do modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
No modelo de Blume-Capel com &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;, as energias acessáveis pelo sistema, a princípio, são todas aquelas entre &amp;lt;math&amp;gt;-N&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;+3N&amp;lt;/math&amp;gt; a passos de tamanho 1. Porém, nos casos extremos existem algumas limitações. Os valores impossíveis foram primeiro vistos em código, pois esses valores de energia nunca eram preenchidos, mesmo após muito tempo de simulação. Então eles foram estudados e tentarei os explicar aqui.&lt;br /&gt;
&lt;br /&gt;
=== Níveis mínimos ===&lt;br /&gt;
&lt;br /&gt;
O estado em que &amp;lt;math&amp;gt;E=-N&amp;lt;/math&amp;gt; só pode ser acessado com todas as partículas com spins iguais, sendo &amp;lt;math&amp;gt;\pm1&amp;lt;/math&amp;gt;. Na simulação, os valores impossíveis foram:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considerando o estado inicial, uma partícula aleatória pode mudar a energia do sistema por;&lt;br /&gt;
* Inverter seu spin, o termo de magnetização continua igual, mas a energia potencial aumenta 8. (-N+8)&lt;br /&gt;
* Perder seu spin, o termo de magnetização diminui a energia em 1 e o termo potencial aumenta em 4 (-N+3)&lt;br /&gt;
&lt;br /&gt;
A partícula com o spin invertido já sai da região de interesse, mas a partícula que perde o spin explica por quê o nível -N+1 e -N+2 são impossíveis, já que qualquer outro passo aumentaria a energia do sistema. Já o valor de N+5 pode ser acessado ao tirar o spin de uma partícula ao lado da primeira com spin 0, de maneira que a energia potencial diminua mais 3 unidades e a magnética aumente 1, com uma variação de 2 unidades. O mesmo pode ser feito para chegar ao nível -N+7. O nível -N+1 pode ser acessado da mesma maneira que o -N+5, mas com tirando o spin de uma partícula que não seja vizinha da primeira.&lt;br /&gt;
&lt;br /&gt;
=== Níveis máximos ===&lt;br /&gt;
&lt;br /&gt;
Esse estado pode ser alcançado por ter todas as partículas perfeitamente desalinhadas e pode ser chego também de duas formas, selecionando uma partícula de referência para o padrão, ela pode começar em +1 ou -1. Aqui, muitos outros estados são inalcançáveis, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Daqui, faz-se o mesmo estudo que feito anteriormente para os dois casos, selecionando uma partícula e mudando seu spin para que fique&lt;br /&gt;
&lt;br /&gt;
* Invertido, o termo de magnetização continua igual, mas a energia potencial diminui em 8. (N-8)&lt;br /&gt;
* Perder seu spin, o termo de magnetização diminui a energia em 1 e o termo potencial diminui em 4 (N-5)&lt;br /&gt;
&lt;br /&gt;
E do estado N-5, o menor passo possível é, novamente, tirando o spin de uma partícula vizinha, mas isso diminui a energia para N-9 (diminui em 3 pelo termo potencial e 1 pelo magnético). Assim, é possível analiticamente ver a lista completa de energias impossíveis para o Hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}=-\sum_{&amp;lt;i,j&amp;gt;}^N\sigma_i\sigma_j+\sum_n^N\sigma_n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=wanglandau&amp;gt; D. P. Landau, Shan-ho Tsai, M. Exler, &#039;&#039;&#039;A new approach to Monte Carlo simulations in statistical physics: Wang-Landau sampling&#039;&#039;&#039;, American Journal of Physics 72, 1294 (2004). https://doi.org/10.1119/1.1707017&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=beale&amp;gt; P. D. Beale, &#039;&#039;&#039;Exact Distribution of Energies in the Two-Dimensional Ising Model&#039;&#039;&#039;, Phys. Rev. Lett. 76,78 (1996). https://doi.org/10.1103/PhysRevLett.76.78&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=bealesite&amp;gt; P. D. Beale, &#039;&#039;&#039;Ising Exact&#039;&#039;&#039;, University of Colorado Boulder, https://spot.colorado.edu/~beale/IsingExactMathematica.html. Visitado em 06/07/2026&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=critempbc&amp;gt;Zierenberg, J., Fytas, N.G., Weigel, M. et al. Scaling and universality in the phase diagram of the 2D Blume-Capel model. Eur. Phys. J. Spec. Top. 226, 789–804 (2017). https://doi.org/10.1140/epjst/e2016-60337-x&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_gt.png&amp;diff=11688</id>
		<title>Arquivo:Blume gt.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_gt.png&amp;diff=11688"/>
		<updated>2026-07-06T19:45:15Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_pe.png&amp;diff=11687</id>
		<title>Arquivo:Blume pe.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_pe.png&amp;diff=11687"/>
		<updated>2026-07-06T19:44:58Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_lnge.png&amp;diff=11686</id>
		<title>Arquivo:Blume lnge.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_lnge.png&amp;diff=11686"/>
		<updated>2026-07-06T19:44:47Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Ising_gt.png&amp;diff=11685</id>
		<title>Arquivo:Ising gt.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Ising_gt.png&amp;diff=11685"/>
		<updated>2026-07-06T19:44:24Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Ising_pe.png&amp;diff=11684</id>
		<title>Arquivo:Ising pe.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Ising_pe.png&amp;diff=11684"/>
		<updated>2026-07-06T19:44:08Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Ising_lnge.png&amp;diff=11683</id>
		<title>Arquivo:Ising lnge.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Ising_lnge.png&amp;diff=11683"/>
		<updated>2026-07-06T19:43:52Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11682</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11682"/>
		<updated>2026-07-06T19:43:24Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau&amp;lt;ref name=wanglandau/&amp;gt; já foi estudado amplamente, inclusive em outros trabalhos nessa mesma wiki. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida&amp;lt;ref name=beale/&amp;gt; e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado é a implementação do método em paralelo, de maneira a acelerar os resultados.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tendo uma rede com condições de contorno periódicas., a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter um estado com spin nulo, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados inacessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropoles tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura. Caso queria fazer medidas para diferentes temperaturas é necessário refazer toda a simulação.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&lt;br /&gt;
As simulações utilizam números que crescem de maneira exponencial, como a própria distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, para evitar um possível erro de overflow que poderia acontecer com valores tão altos, o código utiliza em diversos momentos o logaritmo das funções, com a multiplicação por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; se tornando uma soma, e a raiz de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; se tornando uma divisão. Essa transformação também permite o processo &lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente &amp;lt;ref name=beale/&amp;gt;, ele pode ser calculado através de um algoritmo&amp;lt;ref name=bealesite/&amp;gt; feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;mathematica&amp;quot;&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e, provavelmente, foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema quadrado de lado 32. Para facilitar trabalho futuro, a solução para grades de lado 8, 16 e 32 pode ser vista na página [[distribuição de energia exata para modelo de Ising]]&lt;br /&gt;
&lt;br /&gt;
Com o resultado exato e a simulação feita, pode-se comparar o resultado da distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; gerada pelo método de Wang-Landau e os valores exatos. Normalmente se utiliza o erro relativo para casos como o descrito aqui. Porém, muitos dos valores a serem estudados acabam por ser próximos de 0, por isso foi utilizado o erro relativo global, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\epsilon_i(X)=\frac{|X_{exato}(x_i)-X_{medido}(x_i)|}{|max(X_{exato}(x))}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é calculada a distribuição exata de energia:&lt;br /&gt;
&lt;br /&gt;
[[File:ising_lnge.png|800px|center|Gráfico de &amp;lt;math&amp;gt;ln(g(E))&amp;lt;/math&amp;gt; para o modelo de Ising com a distribuição de energias a direita e o erro na parte inferior esquerda.]]&lt;br /&gt;
&lt;br /&gt;
E, tendo a distribuição de energia, constrói-se a distribuição canônica, isso é, a função densidade de probabilidade das energias a uma temperatura, de maneira simples, com uma transformação dos valores obtidos. Essa distribuição depende da temperatura e da energia e, normalmente, seria extremamente difícil de se modelar computacionalmente através do modelo de Metropoles. abaixo é mostrada a distribuição canônica na temperatura crítica.&lt;br /&gt;
&lt;br /&gt;
[[File:ising_pe.png|800px|center|Gráfico da distribuição de probabilidade de cada energia do modelo de Ising com o erro na parte inferior.]]&lt;br /&gt;
&lt;br /&gt;
E, por fim, as grandezas termodinâmicas são calculadas.&lt;br /&gt;
&lt;br /&gt;
[[File:ising_gt.png|800px|center|Figura com o gráfico da energia interna, energia livre de Helmholtz, calor interno e entropia no modelo de Ising. Cada um com o erro comparado com os resultado abaixo do respectivo gráfico.]]&lt;br /&gt;
&lt;br /&gt;
Analisando os gráficos, percebe-se que o erro fica constantemente em valores menores que 10% das medidas, mostrando que ele é um método que gera resultados próximos dos reais de maneira consistente.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Com o método avaliado, é possível realizar o estudo para o modelo para partículas de spin 1, o Blume-Capel. Esse modelo não tem uma solução exata para se comparar. Refazendo os mesmos passos do modelo de Ising, mas mudando a definição de mudança de energia e de spins possíveis, é possível gerar a seguinte &amp;lt;math&amp;gt;g(T)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:blume_lnge.png|800px|center|Gráfico de &amp;lt;math&amp;gt;ln(g(E))&amp;lt;/math&amp;gt; para o modelo de Blume-Capel com o histograma de energias a direita.]]&lt;br /&gt;
&lt;br /&gt;
Aqui, o acréscimo do termo de magnetização desloca o pico de &amp;lt;math&amp;gt;g(E)&amp;lt;math&amp;gt;, de maneira que a função deixe de ser simétrica. Analisando a probabilidade &amp;lt;math&amp;gt;P(E)&amp;lt;/math&amp;gt; na temperatura crítica de aproximadamente 1.403 &amp;lt;ref name=critempbc/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:blume_pe.png|800px|center|Gráfico da distribuição de probabilidade de cada energia para o modelo de Blume-Capel.]]&lt;br /&gt;
&lt;br /&gt;
É possível ver que o formato é parecido com o caso de Ising, mas aqui a densidade se afasta dos valores mínimos e distribui de maneira mais uniforme a energia, tendo um pico mais baixo que o caso de Ising e, consequentemente, descidas maiores.&lt;br /&gt;
&lt;br /&gt;
Por fim, as grandezas termodinâmicas desse modelo são calculadas:&lt;br /&gt;
&lt;br /&gt;
[[File:blume_gt.png|800px|center|Figura com o gráfico da energia interna, energia livre de Helmholtz, calor interno para o caso do modelo de Blume-Capel.]]&lt;br /&gt;
&lt;br /&gt;
Aqui, as simulações estão de acordo com a temperatura crítica estimada por se alinhar com o máximo do calor específico, pontos de inflexão da energia interna e da entropia, além do ponto de queda da energia livre de Helmholtz. Em comparação com o caso de Ising, os formatos são parecidos considerando o deslocamento da temperatura crítica. Uma diferença no formato entre os dois casos é mais evidente no calor específico e na entropia, onde a subida inicial apresenta um comportamento linear no caso de Blume-Capel e parabólico no Ising.&lt;br /&gt;
&lt;br /&gt;
== Apêndice 1: Paralelização ==&lt;br /&gt;
&lt;br /&gt;
Esse código acaba sendo muito extenso para redes com lados grandes como o estudado aqui. Para evitar tempos longos de execução, as simulações usadas para encontrar &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; foram rodadas em múltiplos núcleos de processamento. Como o que importa é a razão entre o valor de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; para&lt;br /&gt;
diferentes energias, então pode-se separar todas as energias acessíveis em intervalos aos quais cada núcleo será responsável por simular. É importante também que ao menos uma energia seja compartilhada entre a simulações com energias vizinhas para que seja possível unir todas em um único gráfico.&lt;br /&gt;
&lt;br /&gt;
Como um resultado da separação, cada núcleo terá seu próprio histograma final com uma planicidade e média próprias. Então nos histogramas presentes aqui seus valores foram divididos pela média do intervalo antes de serem concatenados, de maneira que a média final seja 1.&lt;br /&gt;
&lt;br /&gt;
Por fim, para acelerar o processo de começar as simulações em si por núcleo, o sistema de todos os núcleos foi iniciado com a menor energia possível e só foram aceitos passos que aumentassem a energia do sistema até que ele chegasse na energia mínima para as simulações de um dado núcleo.&lt;br /&gt;
&lt;br /&gt;
== Apêndice B: Níveis impossíveis do modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
No modelo de Blume-Capel com &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;, as energias acessáveis pelo sistema, a princípio, são todas aquelas entre &amp;lt;math&amp;gt;-N&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;+3N&amp;lt;/math&amp;gt; a passos de tamanho 1. Porém, nos casos extremos existem algumas limitações. Os valores impossíveis foram primeiro vistos em código, pois esses valores de energia nunca eram preenchidos, mesmo após muito tempo de simulação. Então eles foram estudados e tentarei os explicar aqui.&lt;br /&gt;
&lt;br /&gt;
=== Níveis mínimos ===&lt;br /&gt;
&lt;br /&gt;
O estado em que &amp;lt;math&amp;gt;E=-N&amp;lt;/math&amp;gt; só pode ser acessado com todas as partículas com spins iguais, sendo &amp;lt;math&amp;gt;\pm1&amp;lt;/math&amp;gt;. Na simulação, os valores impossíveis foram:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considerando o estado inicial, uma partícula aleatória pode mudar a energia do sistema por;&lt;br /&gt;
* Inverter seu spin, o termo de magnetização continua igual, mas a energia potencial aumenta 8. (-N+8)&lt;br /&gt;
* Perder seu spin, o termo de magnetização diminui a energia em 1 e o termo potencial aumenta em 4 (-N+3)&lt;br /&gt;
&lt;br /&gt;
A partícula com o spin invertido já sai da região de interesse, mas a partícula que perde o spin explica por quê o nível -N+1 e -N+2 são impossíveis, já que qualquer outro passo aumentaria a energia do sistema. Já o valor de N+5 pode ser acessado ao tirar o spin de uma partícula ao lado da primeira com spin 0, de maneira que a energia potencial diminua mais 3 unidades e a magnética aumente 1, com uma variação de 2 unidades. O mesmo pode ser feito para chegar ao nível -N+7. O nível -N+1 pode ser acessado da mesma maneira que o -N+5, mas com tirando o spin de uma partícula que não seja vizinha da primeira.&lt;br /&gt;
&lt;br /&gt;
=== Níveis máximos ===&lt;br /&gt;
&lt;br /&gt;
Esse estado pode ser alcançado por ter todas as partículas perfeitamente desalinhadas e pode ser chego também de duas formas, selecionando uma partícula de referência para o padrão, ela pode começar em +1 ou -1. Aqui, muitos outros estados são inalcançáveis, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Daqui, faz-se o mesmo estudo que feito anteriormente para os dois casos, selecionando uma partícula e mudando seu spin para que fique&lt;br /&gt;
&lt;br /&gt;
* Invertido, o termo de magnetização continua igual, mas a energia potencial diminui em 8. (N-8)&lt;br /&gt;
* Perder seu spin, o termo de magnetização diminui a energia em 1 e o termo potencial diminui em 4 (N-5)&lt;br /&gt;
&lt;br /&gt;
E do estado N-5, o menor passo possível é, novamente, tirando o spin de uma partícula vizinha, mas isso diminui a energia para N-9 (diminui em 3 pelo termo potencial e 1 pelo magnético). Assim, é possível analiticamente ver a lista completa de energias impossíveis para o Hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}=-\sum_{&amp;lt;i,j&amp;gt;}^N\sigma_i\sigma_j+\sum_n^N\sigma_n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=wanglandau&amp;gt; D. P. Landau, Shan-ho Tsai, M. Exler, &#039;&#039;&#039;A new approach to Monte Carlo simulations in statistical physics: Wang-Landau sampling&#039;&#039;&#039;, American Journal of Physics 72, 1294 (2004). https://doi.org/10.1119/1.1707017&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=beale&amp;gt; P. D. Beale, &#039;&#039;&#039;Exact Distribution of Energies in the Two-Dimensional Ising Model&#039;&#039;&#039;, Phys. Rev. Lett. 76,78 (1996). https://doi.org/10.1103/PhysRevLett.76.78&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=bealesite&amp;gt; P. D. Beale, &#039;&#039;&#039;Ising Exact&#039;&#039;&#039;, University of Colorado Boulder, https://spot.colorado.edu/~beale/IsingExactMathematica.html. Visitado em 06/07/2026&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=critempbc&amp;gt;Zierenberg, J., Fytas, N.G., Weigel, M. et al. Scaling and universality in the phase diagram of the 2D Blume-Capel model. Eur. Phys. J. Spec. Top. 226, 789–804 (2017). https://doi.org/10.1140/epjst/e2016-60337-x&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11681</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11681"/>
		<updated>2026-07-06T19:05:29Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau&amp;lt;ref name=wanglandau/&amp;gt; já foi estudado amplamente, inclusive em outros trabalhos nessa mesma wiki. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida&amp;lt;ref name=beale/&amp;gt; e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado é a implementação do método em paralelo, de maneira a acelerar os resultados.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tendo uma rede com condições de contorno periódicas., a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter um estado com spin nulo, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados inacessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropoles tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura. Caso queria fazer medidas para diferentes temperaturas é necessário refazer toda a simulação.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&lt;br /&gt;
As simulações utilizam números que crescem de maneira exponencial, como a própria distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, para evitar um possível erro de overflow que poderia acontecer com valores tão altos, o código utiliza em diversos momentos o logaritmo das funções, com a multiplicação por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; se tornando uma soma, e a raiz de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; se tornando uma divisão. Essa transformação também permite o processo &lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente &amp;lt;ref name=beale/&amp;gt;, ele pode ser calculado através de um algoritmo&amp;lt;ref name=bealesite/&amp;gt; feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;mathematica&amp;quot;&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e, provavelmente, foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema quadrado de lado 32. Para facilitar trabalho futuro, a solução para grades de lado 8, 16 e 32 pode ser vista na página [[distribuição de energia exata para modelo de Ising]]&lt;br /&gt;
&lt;br /&gt;
Com o resultado exato e a simulação feita, pode-se comparar o resultado da distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; gerada pelo método de Wang-Landau e os valores exatos. Normalmente se utiliza o erro relativo para casos como o descrito aqui. Porém, muitos dos valores a serem estudados acabam por ser próximos de 0, por isso foi utilizado o erro relativo global, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\epsilon_i(X)=\frac{|X_{exato}(x_i)-X_{medido}(x_i)|}{|max(X_{exato}(x))}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é calculada a distribuição exata de energia:&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 1)&lt;br /&gt;
&lt;br /&gt;
E, tendo a distribuição de energia, constrói-se a distribuição canônica, isso é, a função densidade de probabilidade das energias a uma temperatura, de maneira simples, com uma transformação dos valores obtidos. Essa distribuição depende da temperatura e da energia e, normalmente, seria extremamente difícil de se modelar computacionalmente através do modelo de Metropoles. abaixo é mostrada a distribuição canônica na temperatura crítica.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 2)&lt;br /&gt;
&lt;br /&gt;
E, por fim, as grandezas termodinâmicas são calculadas.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 3)&lt;br /&gt;
&lt;br /&gt;
Analisando os gráficos, percebe-se que o erro fica constantemente em valores menores que 10% das medidas, mostrando que ele é um método que gera resultados próximos dos reais de maneira consistente.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Com o método avaliado, é possível realizar o estudo para o modelo para partículas de spin 1, o Blume-Capel. Esse modelo não tem uma solução exata para se comparar. Refazendo os mesmos passos do modelo de Ising, mas mudando a definição de mudança de energia e de spins possíveis, é possível gerar a seguinte &amp;lt;math&amp;gt;g(T)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 4)&lt;br /&gt;
&lt;br /&gt;
Aqui, o acréscimo do termo de magnetização desloca o pico de &amp;lt;math&amp;gt;g(E)&amp;lt;math&amp;gt;, de maneira que a função deixe de ser simétrica. Analisando a probabilidade &amp;lt;math&amp;gt;P(E)&amp;lt;/math&amp;gt; na temperatura crítica de aproximadamente 1.403 &amp;lt;ref name=critempbc/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 5)&lt;br /&gt;
&lt;br /&gt;
É possível ver que o formato é parecido com o caso de Ising, mas aqui a densidade se afasta dos valores mínimos e distribui de maneira mais uniforme a energia, tendo um pico mais baixo que o caso de Ising e, consequentemente, descidas maiores.&lt;br /&gt;
&lt;br /&gt;
Por fim, as grandezas termodinâmicas desse modelo são calculadas:&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 6)&lt;br /&gt;
&lt;br /&gt;
Aqui, as simulações estão de acordo com a temperatura crítica estimada por se alinhar com o máximo do calor específico, pontos de inflexão da energia interna e da entropia, além do ponto de queda da energia livre de Helmholtz. Em comparação com o caso de Ising, os formatos são parecidos considerando o deslocamento da temperatura crítica. Uma diferença no formato entre os dois casos é mais evidente no calor específico e na entropia, onde a subida inicial apresenta um comportamento linear no caso de Blume-Capel e parabólico no Ising.&lt;br /&gt;
&lt;br /&gt;
== Apêndice 1: Paralelização ==&lt;br /&gt;
&lt;br /&gt;
Esse código acaba sendo muito extenso para redes com lados grandes como o estudado aqui. Para evitar tempos longos de execução, as simulações usadas para encontrar &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; foram rodadas em múltiplos núcleos de processamento. Como o que importa é a razão entre o valor de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; para&lt;br /&gt;
diferentes energias, então pode-se separar todas as energias acessíveis em intervalos aos quais cada núcleo será responsável por simular. É importante também que ao menos uma energia seja compartilhada entre a simulações com energias vizinhas para que seja possível unir todas em um único gráfico.&lt;br /&gt;
&lt;br /&gt;
Como um resultado da separação, cada núcleo terá seu próprio histograma final com uma planicidade e média próprias. Então nos histogramas presentes aqui seus valores foram divididos pela média do intervalo antes de serem concatenados, de maneira que a média final seja 1.&lt;br /&gt;
&lt;br /&gt;
Por fim, para acelerar o processo de começar as simulações em si por núcleo, o sistema de todos os núcleos foi iniciado com a menor energia possível e só foram aceitos passos que aumentassem a energia do sistema até que ele chegasse na energia mínima para as simulações de um dado núcleo.&lt;br /&gt;
&lt;br /&gt;
== Apêndice B: Níveis impossíveis do modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
No modelo de Blume-Capel com &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;, as energias acessáveis pelo sistema, a princípio, são todas aquelas entre &amp;lt;math&amp;gt;-N&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;+3N&amp;lt;/math&amp;gt; a passos de tamanho 1. Porém, nos casos extremos existem algumas limitações. Os valores impossíveis foram primeiro vistos em código, pois esses valores de energia nunca eram preenchidos, mesmo após muito tempo de simulação. Então eles foram estudados e tentarei os explicar aqui.&lt;br /&gt;
&lt;br /&gt;
=== Níveis mínimos ===&lt;br /&gt;
&lt;br /&gt;
O estado em que &amp;lt;math&amp;gt;E=-N&amp;lt;/math&amp;gt; só pode ser acessado com todas as partículas com spins iguais, sendo &amp;lt;math&amp;gt;\pm1&amp;lt;/math&amp;gt;. Na simulação, os valores impossíveis foram:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considerando o estado inicial, uma partícula aleatória pode mudar a energia do sistema por;&lt;br /&gt;
* Inverter seu spin, o termo de magnetização continua igual, mas a energia potencial aumenta 8. (-N+8)&lt;br /&gt;
* Perder seu spin, o termo de magnetização diminui a energia em 1 e o termo potencial aumenta em 4 (-N+3)&lt;br /&gt;
&lt;br /&gt;
A partícula com o spin invertido já sai da região de interesse, mas a partícula que perde o spin explica por quê o nível -N+1 e -N+2 são impossíveis, já que qualquer outro passo aumentaria a energia do sistema. Já o valor de N+5 pode ser acessado ao tirar o spin de uma partícula ao lado da primeira com spin 0, de maneira que a energia potencial diminua mais 3 unidades e a magnética aumente 1, com uma variação de 2 unidades. O mesmo pode ser feito para chegar ao nível -N+7. O nível -N+1 pode ser acessado da mesma maneira que o -N+5, mas com tirando o spin de uma partícula que não seja vizinha da primeira.&lt;br /&gt;
&lt;br /&gt;
=== Níveis máximos ===&lt;br /&gt;
&lt;br /&gt;
Esse estado pode ser alcançado por ter todas as partículas perfeitamente desalinhadas e pode ser chego também de duas formas, selecionando uma partícula de referência para o padrão, ela pode começar em +1 ou -1. Aqui, muitos outros estados são inalcançáveis, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Daqui, faz-se o mesmo estudo que feito anteriormente para os dois casos, selecionando uma partícula e mudando seu spin para que fique&lt;br /&gt;
&lt;br /&gt;
* Invertido, o termo de magnetização continua igual, mas a energia potencial diminui em 8. (N-8)&lt;br /&gt;
* Perder seu spin, o termo de magnetização diminui a energia em 1 e o termo potencial diminui em 4 (N-5)&lt;br /&gt;
&lt;br /&gt;
E do estado N-5, o menor passo possível é, novamente, tirando o spin de uma partícula vizinha, mas isso diminui a energia para N-9 (diminui em 3 pelo termo potencial e 1 pelo magnético). Assim, é possível analiticamente ver a lista completa de energias impossíveis para o Hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}=-\sum_{&amp;lt;i,j&amp;gt;}^N\sigma_i\sigma_j+\sum_n^N\sigma_n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=wanglandau&amp;gt; D. P. Landau, Shan-ho Tsai, M. Exler, &#039;&#039;&#039;A new approach to Monte Carlo simulations in statistical physics: Wang-Landau sampling&#039;&#039;&#039;, American Journal of Physics 72, 1294 (2004). https://doi.org/10.1119/1.1707017&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=beale&amp;gt; P. D. Beale, &#039;&#039;&#039;Exact Distribution of Energies in the Two-Dimensional Ising Model&#039;&#039;&#039;, Phys. Rev. Lett. 76,78 (1996). https://doi.org/10.1103/PhysRevLett.76.78&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=bealesite&amp;gt; P. D. Beale, &#039;&#039;&#039;Ising Exact&#039;&#039;&#039;, University of Colorado Boulder, https://spot.colorado.edu/~beale/IsingExactMathematica.html. Visitado em 06/07/2026&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=critempbc&amp;gt;Zierenberg, J., Fytas, N.G., Weigel, M. et al. Scaling and universality in the phase diagram of the 2D Blume-Capel model. Eur. Phys. J. Spec. Top. 226, 789–804 (2017). https://doi.org/10.1140/epjst/e2016-60337-x&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11680</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11680"/>
		<updated>2026-07-06T18:17:52Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau&amp;lt;ref name=wanglandau/&amp;gt; já foi estudado amplamente, inclusive em outros trabalhos nessa mesma wiki. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida&amp;lt;ref name=beale/&amp;gt; e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado é a implementação do método em paralelo, de maneira a acelerar os resultados.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tendo uma rede com condições de contorno periódicas., a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter um estado com spin nulo, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados inacessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropoles tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura. Caso queria fazer medidas para diferentes temperaturas é necessário refazer toda a simulação.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&lt;br /&gt;
As simulações utilizam números que crescem de maneira exponencial, como a própria distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, para evitar um possível erro de overflow que poderia acontecer com valores tão altos, o código utiliza em diversos momentos o logaritmo das funções, com a multiplicação por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; se tornando uma soma, e a raiz de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; se tornando uma divisão. Essa transformação também permite o processo &lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente &amp;lt;ref name=beale/&amp;gt;, ele pode ser calculado através de um algoritmo&amp;lt;ref name=bealesite/&amp;gt; feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;mathematica&amp;quot;&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e, provavelmente, foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema quadrado de lado 32. Para facilitar trabalho futuro, a solução para grades de lado 8, 16 e 32 pode ser vista na página [[distribuição de energia exata para modelo de Ising]]&lt;br /&gt;
&lt;br /&gt;
Com o resultado exato e a simulação feita, pode-se comparar o resultado da distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; gerada pelo método de Wang-Landau e os valores exatos. Normalmente se utiliza o erro relativo para casos como o descrito aqui. Porém, muitos dos valores a serem estudados acabam por ser próximos de 0, por isso foi utilizado o erro relativo global, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\epsilon_i(X)=\frac{|X_{exato}(x_i)-X_{medido}(x_i)|}{|max(X_{exato}(x))}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é calculada a distribuição exata de energia:&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 1)&lt;br /&gt;
&lt;br /&gt;
E, tendo a distribuição de energia, constrói-se a distribuição canônica, isso é, a função densidade de probabilidade das energias a uma temperatura, de maneira simples, com uma transformação dos valores obtidos. Essa distribuição depende da temperatura e da energia e, normalmente, seria extremamente difícil de se modelar computacionalmente através do modelo de Metropoles. abaixo é mostrada a distribuição canônica na temperatura crítica.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 2)&lt;br /&gt;
&lt;br /&gt;
E, por fim, as grandezas termodinâmicas são calculadas.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 3)&lt;br /&gt;
&lt;br /&gt;
Analisando os gráficos, percebe-se que o erro fica constantemente em valores menores que 10% das medidas, mostrando que ele é um método que gera resultados próximos dos reais de maneira consistente.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Com o método avaliado, é possível realizar o estudo para o modelo para partículas de spin 1, o Blume-Capel. Esse modelo não tem uma solução exata para se comparar. Refazendo os mesmos passos do modelo de Ising, mas mudando a definição de mudança de energia e de spins possíveis, é possível gerar a seguinte &amp;lt;math&amp;gt;g(T)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 4)&lt;br /&gt;
&lt;br /&gt;
Aqui, o acréscimo do termo de magnetização desloca o pico de &amp;lt;math&amp;gt;g(E)&amp;lt;math&amp;gt;, de maneira que a função deixe de ser simétrica. Analisando a probabilidade &amp;lt;math&amp;gt;P(E)&amp;lt;/math&amp;gt; na temperatura crítica de aproximadamente 1.403 &amp;lt;ref name=critempbc/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 5)&lt;br /&gt;
&lt;br /&gt;
É possível ver que o formato é parecido com o caso de Ising, mas aqui a densidade se afasta dos valores mínimos e distribui de maneira mais uniforme a energia, tendo um pico mais baixo que o caso de Ising e, consequentemente, descidas maiores.&lt;br /&gt;
&lt;br /&gt;
Por fim, as grandezas termodinâmicas desse modelo são calculadas:&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 6)&lt;br /&gt;
&lt;br /&gt;
Aqui, as simulações estão de acordo com a temperatura crítica estimada por se alinhar com o máximo do calor específico, pontos de inflexão da energia interna e da entropia, além do ponto de queda da energia livre de Helmholtz. Em comparação com o caso de Ising, os formatos são parecidos considerando o deslocamento da temperatura crítica. Uma diferença no formato entre os dois casos é mais evidente no calor específico e na entropia, onde a subida inicial apresenta um comportamento linear no caso de Blume-Capel e parabólico no Ising.&lt;br /&gt;
&lt;br /&gt;
== Apêndice 1: Paralelização ==&lt;br /&gt;
&lt;br /&gt;
Esse código acaba sendo muito extenso para redes com lados grandes como o estudado aqui. Para evitar tempos longos de execução, as simulações usadas para encontrar &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; foram rodadas em múltiplos núcleos de processamento. Como o que importa é a razão entre o valor de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; para&lt;br /&gt;
diferentes energias, então pode-se separar todas as energias acessíveis em intervalos aos quais cada núcleo será responsável por simular. É importante também que ao menos uma energia seja compartilhada entre a simulações com energias vizinhas para que seja possível unir todas em um único gráfico.&lt;br /&gt;
&lt;br /&gt;
Como um resultado da separação, cada núcleo terá seu próprio histograma final com uma planicidade e média próprias. Então nos histogramas presentes aqui seus valores foram divididos pela média do intervalo antes de serem concatenados, de maneira que a média final seja 1.&lt;br /&gt;
&lt;br /&gt;
Por fim, para acelerar o processo de começar as simulações em si por núcleo, o sistema de todos os núcleos foi iniciado com a menor energia possível e só foram aceitos passos que aumentassem a energia do sistema até que ele chegasse na energia mínima para as simulações de um dado núcleo.&lt;br /&gt;
&lt;br /&gt;
== Apêndice B: Níveis impossíveis do modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
No modelo de Blume-Capel com &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;, as energias acessáveis pelo sistema, a princípio, são todas aquelas entre &amp;lt;math&amp;gt;-N&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;+3N&amp;lt;/math&amp;gt; a passos de tamanho 1. Porém, nos casos extremos existem algumas limitações. Os valores impossíveis foram primeiro vistos em código, pois esses valores de energia nunca eram preenchidos, mesmo após muito tempo de simulação. Então eles foram estudados e tentarei os explicar aqui.&lt;br /&gt;
&lt;br /&gt;
=== Níveis mínimos ===&lt;br /&gt;
&lt;br /&gt;
O estado em que &amp;lt;math&amp;gt;E=-N&amp;lt;/math&amp;gt; só pode ser acessado com todas as partículas com spins iguais, sendo &amp;lt;math&amp;gt;\pm1&amp;lt;/math&amp;gt;. Na simulação, os valores impossíveis foram:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considerando o estado inicial, uma partícula aleatória pode mudar a energia do sistema por;&lt;br /&gt;
* Inverter seu spin, o termo de magnetização continua igual, mas a energia potencial aumenta 8. (-N+8)&lt;br /&gt;
* Perder seu spin, o termo de magnetização diminui a energia em 1 e o termo potencial aumenta em 4 (-N+3)&lt;br /&gt;
&lt;br /&gt;
A partícula com o spin invertido já sai da região de interesse, mas a partícula que perde o spin explica por quê o nível -N+1 e -N+2 são impossíveis, já que qualquer outro passo aumentaria a energia do sistema. Já o valor de N+5 pode ser acessado ao tirar o spin de uma partícula ao lado da primeira com spin 0, de maneira que a energia potencial diminua mais 3 unidades e a magnética aumente 1, com uma variação de 2 unidades. O mesmo pode ser feito para chegar ao nível -N+7. O nível -N+1 pode ser acessado da mesma maneira que o -N+5, mas com tirando o spin de uma partícula que não seja vizinha da primeira.&lt;br /&gt;
&lt;br /&gt;
=== Níveis máximos ===&lt;br /&gt;
&lt;br /&gt;
Esse estado pode ser alcançado por ter todas as partículas perfeitamente desalinhadas e pode ser chego também de duas formas, selecionando uma partícula de referência para o padrão, ela pode começar em +1 ou -1. Aqui, muitos outros estados são inalcançáveis, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Daqui, faz-se o mesmo estudo que feito anteriormente para os dois casos, selecionando uma partícula e mudando seu spin para que fique&lt;br /&gt;
&lt;br /&gt;
* Invertido, o termo de magnetização continua igual, mas a energia potencial diminui em 8. (N-8)&lt;br /&gt;
* Perder seu spin, o termo de magnetização diminui a energia em 1 e o termo potencial diminui em 4 (N-5)&lt;br /&gt;
&lt;br /&gt;
E do estado N-5, o menor passo possível é, novamente, tirando o spin de uma partícula vizinha, mas isso diminui a energia para N-9 (diminui em 3 pelo termo potencial e 1 pelo magnético). Assim, é possível analiticamente ver a lista completa de energias impossíveis para o Hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}=-\sum_{&amp;lt;i,j&amp;gt;}^N\sigma_i\sigma_j+\sum_n^N\sigma_n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
sadsa&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=wanglandau&amp;gt; D. P. Landau, Shan-ho Tsai, M. Exler, &#039;&#039;&#039;A new approach to Monte Carlo simulations in statistical physics: Wang-Landau sampling&#039;&#039;&#039;, American Journal of Physics 72, 1294 (2004). https://doi.org/10.1119/1.1707017&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=beale&amp;gt; P. D. Beale, &#039;&#039;&#039;Exact Distribution of Energies in the Two-Dimensional Ising Model&#039;&#039;&#039;, Phys. Rev. Lett. 76,78 (1996). https://doi.org/10.1103/PhysRevLett.76.78&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=bealesite&amp;gt; P. D. Beale, &#039;&#039;&#039;Ising Exact&#039;&#039;&#039;, University of Colorado Boulder, https://spot.colorado.edu/~beale/IsingExactMathematica.html. Visitado em 06/07/2026&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=critempbc&amp;gt;Zierenberg, J., Fytas, N.G., Weigel, M. et al. Scaling and universality in the phase diagram of the 2D Blume-Capel model. Eur. Phys. J. Spec. Top. 226, 789–804 (2017). https://doi.org/10.1140/epjst/e2016-60337-x&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2026-1&amp;diff=11679</id>
		<title>Trabalhos 2026-1</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2026-1&amp;diff=11679"/>
		<updated>2026-07-06T15:03:27Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===[[Modelo de Potts -- 2D]] ===&lt;br /&gt;
===[[Simulação do Modelo de Lotka-Volterra]] ===&lt;br /&gt;
===[[Modelo Blume-Capel para partículas de spin 1]] ===&lt;br /&gt;
===[[O Potencial de Lennard-Jones]] ===&lt;br /&gt;
===[[Percolação 2D]] ===&lt;br /&gt;
===[[Wang-Landau em simulação do tipo Blume-Capel]]===&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11678</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11678"/>
		<updated>2026-07-06T15:02:35Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau (REFERENCIA) já foi estudado amplamente, inclusive em outros trabalhos nessa mesma wiki. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida (CITAÇÃO) e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado é a implementação do método em paralelo, de maneira a acelerar os resultados.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tendo uma rede com condições de contorno periódicas., a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter um estado com spin nulo, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados inacessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropoles tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura. Caso queria fazer medidas para diferentes temperaturas é necessário refazer toda a simulação.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
As simulações utilizam números que crescem de maneira exponencial, como a própria distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, para evitar um possível erro de overflow que poderia acontecer com valores tão altos, o código utiliza em diversos momentos o logaritmo das funções, com a multiplicação por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; se tornando uma soma, e a raiz de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; se tornando uma divisão. Essa transformação também permite o processo &lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente (CITAÇÃO), ele pode ser calculado através de um algoritmo(CITAÇÃO) feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;mathematica&amp;quot;&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e provavelmente foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema quadrado de lado 32. Para facilitar trabalho futuro, a solução para grades de lado 8, 16 e 32 pode ser vista na página [[distribuição de energia exata para modelo de Ising]]&lt;br /&gt;
&lt;br /&gt;
Com o resultado exato e a simulação feita, pode-se comparar o resultado da distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; gerada pelo método de Wang-Landau e os valores exatos. Normalmente se utiliza o erro relativo para casos como o descrito aqui. Porém, muitos dos valores a serem estudados acabam por ser próximos de 0, por isso foi utilizado o erro relativo global, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\epsilon_i(X)=\frac{|X_{exato}(x_i)-X_{medido}(x_i)|}{|max(X_{exato}(x))}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é calculada a distribuição exata de energia:&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 1)&lt;br /&gt;
&lt;br /&gt;
E, tendo a distribuição de energia, constrói-se a distribuição canônica, isso é, a função densidade de probabilidade das energias a uma temperatura, de maneira simples, com uma transformação dos valores obtidos. Essa distribuição depende da temperatura e da energia e, normalmente, seria extremamente difícil de se modelar computacionalmente através do modelo de Metropoles. abaixo é mostrada a distribuição canônica na temperatura crítica.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 2)&lt;br /&gt;
&lt;br /&gt;
E, por fim, as grandezas termodinâmicas são calculadas.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 3)&lt;br /&gt;
&lt;br /&gt;
Analisando os gráficos, percebe-se que o erro fica constantemente em valores menores que 10% das medidas, mostrando que ele é um método que gera resultados próximos dos reais de maneira consistente.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Com o método avaliado, é possível realizar o estudo para o modelo para partículas de spin 1, o Blume-Capel. Esse modelo não tem uma solução exata para se comparar. Refazendo os mesmos passos do modelo de Ising, mas mudando a definição de mudança de energia e de spins possíveis, é possível gerar a seguinte &amp;lt;math&amp;gt;g(T)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 4)&lt;br /&gt;
&lt;br /&gt;
Aqui, o acréscimo do termo de magnetização desloca o pico de &amp;lt;math&amp;gt;g(E)&amp;lt;math&amp;gt;, de maneira que a função deixe de ser simétrica. Analisando a probabilidade &amp;lt;math&amp;gt;P(E)&amp;lt;/math&amp;gt; na temperatura crítica de aproximadamente 1.403 (CITAÇÃO)&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 5)&lt;br /&gt;
&lt;br /&gt;
É possível ver que o formato é parecido com o caso de Ising, mas aqui a densidade se afasta dos valores mínimos e distribui de maneira mais uniforme a energia, tendo um pico mais baixo que o caso de Ising e, consequentemente, descidas maiores.&lt;br /&gt;
&lt;br /&gt;
Por fim, as grandezas termodinâmicas desse modelo são calculadas:&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 6)&lt;br /&gt;
&lt;br /&gt;
Aqui, as simulações estão de acordo com a temperatura crítica estimada por se alinhar com o máximo do calor específico, pontos de inflexão da energia interna e da entropia, além do ponto de queda da energia livre de Helmholtz. Em comparação com o caso de Ising, os formatos são parecidos considerando o deslocamento da temperatura crítica. Uma diferença no formato entre os dois casos é mais evidente no calor específico e na entropia, onde a subida inicial apresenta um comportamento linear no caso de Blume-Capel e parabólico no Ising.&lt;br /&gt;
&lt;br /&gt;
== Apêndice 1: Paralelização ==&lt;br /&gt;
&lt;br /&gt;
Esse código acaba sendo muito extenso para redes com lados grandes como o estudado aqui. Para evitar tempos longos de execução, as simulações usadas para encontrar &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; foram rodadas em múltiplos núcleos de processamento. Como o que importa é a razão entre o valor de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; para&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11677</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11677"/>
		<updated>2026-07-06T14:56:44Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: /* Modelo de Blume-Capel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau (REFERENCIA) já foi estudado amplamente, inclusive em outros trabalhos nessa mesma wiki. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida (CITAÇÃO) e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado é a implementação do método em paralelo, de maneira a acelerar os resultados.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tendo uma rede com condições de contorno periódicas., a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter um estado com spin nulo, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados inacessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropoles tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura. Caso queria fazer medidas para diferentes temperaturas é necessário refazer toda a simulação.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
As simulações utilizam números que crescem de maneira exponencial, como a própria distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, para evitar um possível erro de overflow que poderia acontecer com valores tão altos, o código utiliza em diversos momentos o logaritmo das funções, com a multiplicação por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; se tornando uma soma, e a raiz de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; se tornando uma divisão. Essa transformação também permite o processo &lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente (CITAÇÃO), ele pode ser calculado através de um algoritmo(CITAÇÃO) feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;mathematica&amp;quot;&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e provavelmente foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema quadrado de lado 32. Para facilitar trabalho futuro, a solução para grades de lado 8, 16 e 32 pode ser vista na página [[distribuição de energia exata para modelo de Ising]]&lt;br /&gt;
&lt;br /&gt;
Com o resultado exato e a simulação feita, pode-se comparar o resultado da distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; gerada pelo método de Wang-Landau e os valores exatos. Normalmente se utiliza o erro relativo para casos como o descrito aqui. Porém, muitos dos valores a serem estudados acabam por ser próximos de 0, por isso foi utilizado o erro relativo global, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\epsilon_i(X)=\frac{|X_{exato}(x_i)-X_{medido}(x_i)|}{|max(X_{exato}(x))}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é calculada a distribuição exata de energia:&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 1)&lt;br /&gt;
&lt;br /&gt;
E, tendo a distribuição de energia, constrói-se a distribuição canônica, isso é, a função densidade de probabilidade das energias a uma temperatura, de maneira simples, com uma transformação dos valores obtidos. Essa distribuição depende da temperatura e da energia e, normalmente, seria extremamente difícil de se modelar computacionalmente através do modelo de Metropoles. abaixo é mostrada a distribuição canônica na temperatura crítica.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 2)&lt;br /&gt;
&lt;br /&gt;
E, por fim, as grandezas termodinâmicas são calculadas.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 3)&lt;br /&gt;
&lt;br /&gt;
Analisando os gráficos, percebe-se que o erro fica constantemente em valores menores que 10% das medidas, mostrando que ele é um método que gera resultados próximos dos reais de maneira consistente.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Com o método avaliado, é possível realizar o estudo para o modelo para partículas de spin 1, o Blume-Capel. Esse modelo não tem uma solução exata para se comparar. Refazendo os mesmos passos do modelo de Ising, mas mudando a definição de mudança de energia e de spins possíveis, é possível gerar a seguinte &amp;lt;math&amp;gt;g(T)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 4)&lt;br /&gt;
&lt;br /&gt;
Aqui, o acréscimo do termo de magnetização desloca o pico de &amp;lt;math&amp;gt;g(E)&amp;lt;math&amp;gt;, de maneira que a função deixe de ser simétrica. Analisando a probabilidade &amp;lt;math&amp;gt;P(E)&amp;lt;/math&amp;gt; na temperatura crítica de aproximadamente 1.403 (CITAÇÃO)&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 5)&lt;br /&gt;
&lt;br /&gt;
É possível ver que o formato é parecido com o caso de Ising, mas aqui a densidade se afasta dos valores mínimos e distribui de maneira mais uniforme a energia, tendo um pico mais baixo que o caso de Ising e, consequentemente, descidas maiores.&lt;br /&gt;
&lt;br /&gt;
Por fim, as grandezas termodinâmicas desse modelo são calculadas:&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 6)&lt;br /&gt;
&lt;br /&gt;
Aqui, as simulações estão de acordo com a temperatura crítica estimada por se alinhar com o máximo do calor específico, pontos de inflexão da energia interna e da entropia, além do ponto de queda da energia livre de Helmholtz. Em comparação com o caso de Ising, os formatos são parecidos considerando o deslocamento da temperatura crítica. Uma diferença no formato entre os dois casos é mais evidente no calor específico e na entropia, onde a subida inicial apresenta um comportamento linear no caso de Blume-Capel e parabólico no Ising.&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11676</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11676"/>
		<updated>2026-07-06T12:03:38Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: /* Modelo de Ising */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau (REFERENCIA) já foi estudado amplamente, inclusive em outros trabalhos nessa mesma wiki. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida (CITAÇÃO) e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado é a implementação do método em paralelo, de maneira a acelerar os resultados.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tendo uma rede com condições de contorno periódicas., a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter um estado com spin nulo, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados inacessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropoles tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura. Caso queria fazer medidas para diferentes temperaturas é necessário refazer toda a simulação.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
As simulações utilizam números que crescem de maneira exponencial, como a própria distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, para evitar um possível erro de overflow que poderia acontecer com valores tão altos, o código utiliza em diversos momentos o logaritmo das funções, com a multiplicação por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; se tornando uma soma, e a raiz de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; se tornando uma divisão. Essa transformação também permite o processo &lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente (CITAÇÃO), ele pode ser calculado através de um algoritmo(CITAÇÃO) feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;mathematica&amp;quot;&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e provavelmente foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema quadrado de lado 32. Para facilitar trabalho futuro, a solução para grades de lado 8, 16 e 32 pode ser vista na página [[distribuição de energia exata para modelo de Ising]]&lt;br /&gt;
&lt;br /&gt;
Com o resultado exato e a simulação feita, pode-se comparar o resultado da distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; gerada pelo método de Wang-Landau e os valores exatos. Normalmente se utiliza o erro relativo para casos como o descrito aqui. Porém, muitos dos valores a serem estudados acabam por ser próximos de 0, por isso foi utilizado o erro relativo global, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\epsilon_i(X)=\frac{|X_{exato}(x_i)-X_{medido}(x_i)|}{|max(X_{exato}(x))}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é calculada a distribuição exata de energia:&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 1)&lt;br /&gt;
&lt;br /&gt;
E, tendo a distribuição de energia, constrói-se a distribuição canônica, isso é, a função densidade de probabilidade das energias a uma temperatura, de maneira simples, com uma transformação dos valores obtidos. Essa distribuição depende da temperatura e da energia e, normalmente, seria extremamente difícil de se modelar computacionalmente através do modelo de Metropoles. abaixo é mostrada a distribuição canônica na temperatura crítica.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 2)&lt;br /&gt;
&lt;br /&gt;
E, por fim, as grandezas termodinâmicas são calculadas.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 3)&lt;br /&gt;
&lt;br /&gt;
Analisando os gráficos, percebe-se que o erro fica constantemente em valores menores que 10% das medidas, mostrando que ele é um método que gera resultados próximos dos reais de maneira consistente.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Com o método avaliado, é possível realizar o estudo para o modelo para partículas de spin 1, o Blume-Capel. Esse modelo não tem uma solução exata para se comparar.&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11675</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11675"/>
		<updated>2026-07-06T12:01:47Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau (REFERENCIA) já foi estudado amplamente, inclusive em outros trabalhos nessa mesma wiki. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida (CITAÇÃO) e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado é a implementação do método em paralelo, de maneira a acelerar os resultados.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tendo uma rede com condições de contorno periódicas., a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter um estado com spin nulo, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados inacessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropoles tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura. Caso queria fazer medidas para diferentes temperaturas é necessário refazer toda a simulação.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
As simulações utilizam números que crescem de maneira exponencial, como a própria distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, para evitar um possível erro de overflow que poderia acontecer com valores tão altos, o código utiliza em diversos momentos o logaritmo das funções, com a multiplicação por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; se tornando uma soma, e a raiz de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; se tornando uma divisão. Essa transformação também permite o processo &lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente (CITAÇÃO), ele pode ser calculado através de um algoritmo(CITAÇÃO) feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code lang=mathematica&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e provavelmente foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema quadrado de lado 32. Para facilitar trabalho futuro, a solução para grades de lado 8, 16 e 32 pode ser vista na página [[distribuição de energia exata para modelo de Ising]]&lt;br /&gt;
&lt;br /&gt;
Com o resultado exato e a simulação feita, pode-se comparar o resultado da distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; gerada pelo método de Wang-Landau e os valores exatos. Normalmente se utiliza o erro relativo para casos como o descrito aqui. Porém, muitos dos valores a serem estudados acabam por ser próximos de 0, por isso foi utilizado o erro relativo global, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\epsilon_i(X)=\frac{|X_{exato}(x_i)-X_{medido}(x_i)|}{|max(X_{exato}(x))}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é calculada a distribuição exata de energia:&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 1)&lt;br /&gt;
&lt;br /&gt;
E, tendo a distribuição de energia, constrói-se a distribuição canônica, isso é, a função densidade de probabilidade das energias a uma temperatura, de maneira simples, com uma transformação dos valores obtidos. Essa distribuição depende da temperatura e da energia e, normalmente, seria extremamente difícil de se modelar computacionalmente através do modelo de Metropoles. abaixo é mostrada a distribuição canônica na temperatura crítica.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 2)&lt;br /&gt;
&lt;br /&gt;
E, por fim, as grandezas termodinâmicas são calculadas.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 3)&lt;br /&gt;
&lt;br /&gt;
Analisando os gráficos, percebe-se que o erro fica constantemente em valores menores que 10% das medidas, mostrando que ele é um método que gera resultados próximos dos reais de maneira consistente.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Com o método avaliado, é possível realizar o estudo para o modelo para partículas de spin 1, o Blume-Capel. Esse modelo não tem uma solução exata para se comparar.&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11674</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11674"/>
		<updated>2026-07-06T11:59:58Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau (REFERENCIA) já foi estudado amplamente, inclusive em outros trabalhos nessa mesma wiki. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida (CITAÇÃO) e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado é a implementação do método em paralelo, de maneira a acelerar os resultados.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tendo uma rede com condições de contorno periódicas., a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter um estado com spin nulo, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados inacessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropoles tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura. Caso queria fazer medidas para diferentes temperaturas é necessário refazer toda a simulação.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
As simulações utilizam números que crescem de maneira exponencial, como a própria distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, para evitar um possível erro de overflow que poderia acontecer com valores tão altos, o código utiliza em diversos momentos o logaritmo das funções, com a multiplicação por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; se tornando uma soma, e a raiz de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; se tornando uma divisão. Essa transformação também permite o processo &lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente (CITAÇÃO), ele pode ser calculado através de um algoritmo(CITAÇÃO) feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code lang=mathematica&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e provavelmente foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema quadrado de lado 32. Para facilitar trabalho futuro, a solução para grades de lado 8, 16 e 32 pode ser vista na página [[distribuição de energia exata para modelo de Ising]]&lt;br /&gt;
&lt;br /&gt;
Com o resultado exato e a simulação feita, pode-se comparar o resultado da distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; gerada pelo método de Wang-Landau e os valores exatos. Normalmente se utiliza o erro relativo para casos como o descrito aqui. Porém, muitos dos valores a serem estudados acabam por ser próximos de 0, por isso foi utilizado o erro relativo global, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\epsilon_i(X)=\frac{|X_{exato}(x_i)-X_{medido}(x_i)|}{|max(X_{exato}(x))}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é calculada a distribuição exata de energia:&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 1)&lt;br /&gt;
&lt;br /&gt;
E, tendo a distribuição de energia, constrói-se a distribuição canônica, isso é, a função densidade de probabilidade das energias a uma temperatura, de maneira simples, com uma transformação dos valores obtidos. Essa distribuição depende da temperatura e da energia e, normalmente, seria extremamente difícil de se modelar computacionalmente através do modelo de Metropoles. abaixo é mostrada a distribuição canônica na temperatura crítica.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 2)&lt;br /&gt;
&lt;br /&gt;
E, por fim, as grandezas termodinâmicas são calculadas.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 3)&lt;br /&gt;
&lt;br /&gt;
Analisando os gráficos, percebe-se que o erro fica constantemente em valores menores que 10% das medidas, mostrando que ele é um método que gera resultados próximos dos reais de maneira consistente.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Com o método avaliado, é possível realizar o estudo para o modelo para partículas de spin 1, o Blume-Capel. Esse modelo não tem uma solução exata para se comparar.&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11673</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11673"/>
		<updated>2026-07-06T01:57:08Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau (REFERENCIA) já foi estudado amplamente, inclusive em outros trabalhos nessa mesma wiki. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida (CITAÇÃO) e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado é a implementação do método em paralelo, de maneira a acelerar os resultados.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tendo uma rede com condições de contorno periódicas., a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter um estado com spin nulo, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados inacessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropoles tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura. Caso queria fazer medidas para diferentes temperaturas é necessário refazer toda a simulação.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
As simulações utilizam números que crescem de maneira exponencial, como a própria distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, para evitar um possível erro de overflow que poderia acontecer com valores tão altos, o código utiliza em diversos momentos o logaritmo das funções, com a multiplicação por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; se tornando uma soma, e a raiz de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; se tornando uma divisão. Essa transformação também permite o processo &lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente (CITAÇÃO), ele pode ser calculado através de um algoritmo(CITAÇÃO) feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=mathematica&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e provavelmente foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema quadrado de lado 32. Para facilitar trabalho futuro, a solução para grades de lado 8, 16 e 32 pode ser vista na página [[distribuição de energia exata para modelo de Ising]]&lt;br /&gt;
&lt;br /&gt;
Com o resultado exato e a simulação feita, pode-se comparar o resultado da distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; gerada pelo método de Wang-Landau e os valores exatos. Normalmente se utiliza o erro relativo para casos como o descrito aqui. Porém, muitos dos valores a serem estudados acabam por ser próximos de 0, por isso foi utilizado o erro relativo global, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\epsilon_i(X)=\frac{|X_{exato}(x_i)-X_{medido}(x_i)|}{|max(X_{exato}(x))}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é calculada a distribuição exata de energia:&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 1)&lt;br /&gt;
&lt;br /&gt;
E, tendo a distribuição de energia, constrói-se a distribuição canônica, isso é, a função densidade de probabilidade das energias a uma temperatura, de maneira simples, com uma transformação dos valores obtidos. Essa distribuição depende da temperatura e da energia e, normalmente, seria extremamente difícil de se modelar computacionalmente através do modelo de Metropoles. abaixo é mostrada a distribuição canônica na temperatura crítica.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 2)&lt;br /&gt;
&lt;br /&gt;
E, por fim, as grandezas termodinâmicas são calculadas.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 3)&lt;br /&gt;
&lt;br /&gt;
Analisando os gráficos, percebe-se que o erro fica constantemente em valores menores que 10% das medidas, mostrando que ele é um método que gera resultados próximos dos reais de maneira consistente.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Com o método avaliado, é possível realizar o estudo para o modelo para partículas de spin 1, o Blume-Capel. Esse modelo não tem uma solução exata para se comparar.&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11672</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11672"/>
		<updated>2026-07-06T00:18:07Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: Incrementando texto&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau (REFERENCIA) já foi estudado amplamente anteriormente aqui. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida (CITAÇÃO) e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, Ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado aqui é a implementação do método em paralelo, de maneira a acelerar os resultados.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Aqui,considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tendo uma grade em geometria toroide, a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter uma partícula sem spin, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados incessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropoles tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente (CITAÇÃO), ele pode ser calculado através de um algoritmo(CITAÇÃO) feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=mathematica&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e provavelmente foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema quadrado de lado 32. Para facilitar trabalho futuro, a solução para grades de lado 8, 16 e 32 pode ser vista na página [[distribuição de energia exata para modelo de Ising]]&lt;br /&gt;
&lt;br /&gt;
Com o resultado exato e a simulação feita, pode-se comparar o resultado da distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; gerada pelo método de Wang-Landau e os valores exatos.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 1)&lt;br /&gt;
&lt;br /&gt;
E, tendo a distribuição de energia, constrói-se a distribuição canônica, isso é, a função densidade de probabilidade das energias a uma temperatura, de maneira simples, com uma transformação dos valores obtidos. Essa distribuição depende da temperatura e da energia e, normalmente, seria extremamente difícil de se modelar computacionalmente através do modelo de Metropoles. abaixo é mostrada a distribuição canônica na temperatura crítica.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 2)&lt;br /&gt;
&lt;br /&gt;
E, por fim, as grandezas termodinâmicas são calculadas.&lt;br /&gt;
&lt;br /&gt;
(IMAGEM 3)&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Distribui%C3%A7%C3%A3o_de_energia_exata_para_modelo_de_Ising&amp;diff=11671</id>
		<title>Distribuição de energia exata para modelo de Ising</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Distribui%C3%A7%C3%A3o_de_energia_exata_para_modelo_de_Ising&amp;diff=11671"/>
		<updated>2026-07-05T23:43:50Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Valores da distribuição &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; exatos para o modelo de Ising com uma grade quadrada.&lt;br /&gt;
&lt;br /&gt;
== grade de tamanho 8 ==&lt;br /&gt;
2,0,128,256,4672,17920,145408,712960,4274576,22128384,118551552,610683392,3150447680,16043381504,80748258688,396915938304,1887270677624,8582140066816,36967268348032,149536933509376,564033837424064,1971511029384704,6350698012553216,18752030727310592,50483110303426544,123229776338119424,271209458049836032,535138987032308224,941564975390477248,1469940812209435392,2027486077172296064,2462494093546483712,2627978003957146636,2462494093546483712,2027486077172296064,1469940812209435392,941564975390477248,535138987032308224,271209458049836032,123229776338119424,50483110303426544,18752030727310592,6350698012553216,1971511029384704,564033837424064,149536933509376,36967268348032,8582140066816,1887270677624,396915938304,80748258688,16043381504,3150447680,610683392,118551552,22128384,4274576,712960,145408,17920,4672,256,128,0,2&lt;br /&gt;
&lt;br /&gt;
== grade de lado 16 ==&lt;br /&gt;
2,0,512,1024,67840,268288,6463488,36373504,510137472,3446274048,35564942848,259061632000,2244141041664,16555966785536,129353975240704,937335072977920,6856355294895136,48235628829928448,336663139229853696,2294261810504153088,15434383264054751232,102040703104512185344,665639129468252817920,4280875542797188818944,27188723336480479383680,170576550866417544416256,1058099293205404951869440,6492777370200603508381696,39438260600991177128045312,237256593923183825340222464,1414395136265001554243053056,8359756300183901421163098112,49011935788511357573628263792,285168191470284969921686540288,1647371920960168202143395285504,9452945408089672661306152932352,53903158206162150596219622870272,305569850047714588260614649079808,1722749277543846718764428903958528,9662726116974562379028634249516032,53935451751667083062550139364135296,299676390194407037955035236077828096,1657720837114471217696413947307521536,9130492536572718976798063224032865280,50073382063579152660627165950277625856,273411053363349179707306059255389235200,1486100534202177918853661642638313940992,8038798726844520621272166542110506832896,43261051627011809808391738146420526278240,231519011798077888983820131371195880885248,1231557317034556510056654941774955447162880,6508420921057273407292469915111860313929728,34151542148048527600898845729355706680360960,177832479942801796818211975075604063301415936,918390139301760435247729717964668963355560448,4701205188632844368378278202736235170866964480,23840328332120507606315294371776768960997983616,119701237923672828228484869442694850509869652992,594757152627949500438253228055837273112794152960,2922916529049724472685360285423247548186579019776,14201039965134148049217301717187533988924329275136,68179255754858336308448322960037361763146746108928,323313409875478655871130865599358716403520327380480,1513750905724127680864391937454722826927500871041024,6994750993535906920078386786399142679909967346987832,31886895219475135015217137712603264725251843623616512,143355858307825170626447873532299913363195229581822464,635372123863582722250770477987239056724978523528549376,2775242285650355265574495891529113863148730156325588224,11942291415009915372359613295617414588113816411064727552,50611022693649248445003261961946680672474758325847801856,211169875555038247275971159538038689461235123739771753472,867178294827835610801008509151742419545951425794628269184,3503769925023508403120725735528997519413498128047257466880,13924359929735476424780677247223781427608588509635614719488,54411330436773536486854224203486717090841132443398903749632,208996886885118695227557968476508485957256948411763671994368,788838902689248672311809407465625820845950106272120056932352,2924799423906101009005606167292032425543265862308267468761088,10649367068741493941851544135721598840698721457673571451708416,38065493718933807677916217423344746726820412663418362447868960,133529862632477647117542152094872939513936437290015596318866432,459539814201354980256591938941077567972729136481932044199680000,1551041621895425879670946447045440064396942635191402618548566016,5132586714830399462127565722593779715170161998706787870874265600,16646305574607524832360110062379809889799108194482629982474683392,52896091200415481077808263054475640799777931163303631527981269504,164629684337510408780557125126073718532919383918880612636716017664,501678584335017971657146332189008493427659929654268351497108154496,1496336242853672915087394263129460639321516856975709503036461775872,4366885712986614748128466327455781300834724869020643379029455837184,12465385759400084702828526767385203660656731933011532636453879592960,34792266235273238658728210963673811147489748655811596736003018688256,94919249470620132401892424114957652049078157973342614856387449715712,253029811226437653836054840711276564668131357932727139805139804446208,658849169465873592951805265828351587049089693811187001726006424055808,1675129204703547339585258123487257608473601087296279775243280716122640,4157285142172099044117981656853097962618694539195741315669396875972608,10067507849600437632788589646083547835262849305722580010612934547059200,23781360441034343801635024553234044213960132746210566740259382832489472,54778037214768907187599305098175168175473517063296432509183415968235776,122994186690644534531467048297221173861580704459615437789696158795810816,269107217855407881667578747965378516889886699966712983763182851705939968,573567151483064703584689328232418869328571773762911528057772936610669568,1190469688751670945552039955786107921862184899406365066325521685062743424,2405394194518238008445029950776176842805639782519256709695546308622055424,4729864568854242093338185211683870930070137412903984862059114981822348800,9048334363260241781255071330474860334103569267901277109712195685612469248,16834940761057617032938133191184579573348086284310922354703386345225928704,30454114540120460545619341416400614445642284852327165394261115163077961728,53548020858415947488653247823174571302108151848312310531668381854893922304,91491156760027963975439995667294398599873060732691798314102638756226925568,151856068018490751025673483829258371098747122397793477153631997290795895136,244785603925627041653848440262347761511059999670692845544970996544948018176,383114215754071420480885282782910226348446304557245666031668395088818284544,582039302049165902902619146470452040863098996451464220997280314909491951616,858136450349350410435300319386162234350921961887030457622029157406945372160,1227564890980311307816290600201183182891319664305777329480846984447772664832,1703439878291361270841339200732858208517123970015758469844155255790512095744,2292556349733832818718263437125676640945404972529179965232912238167758776320,2991902841160629907579563943504168202587894623972546074718849167667558969728,3785643523746843354336337963103259048280355362977818029032116426040495246336,4643384203499279651601422387414358506395251349314933822036983942781885440000,5520492050522546865795987941179953558918666693909940429597547788539843627008,6360961174362492149581273247826701835496985435929113972114560951070735383296,7102825628389146138640253566004117025301371078535056311902512707005495053312,7685515539516761019384544491492945293795302362942643313366077185086167008768,8057990692226778609548442197817524348676968450723097450786840538370165080064,8186145443716474251462714767435608722044199998728667180196474843673635359372,8057990692226778609548442197817524348676968450723097450786840538370165080064,7685515539516761019384544491492945293795302362942643313366077185086167008768,7102825628389146138640253566004117025301371078535056311902512707005495053312,6360961174362492149581273247826701835496985435929113972114560951070735383296,5520492050522546865795987941179953558918666693909940429597547788539843627008,4643384203499279651601422387414358506395251349314933822036983942781885440000,3785643523746843354336337963103259048280355362977818029032116426040495246336,2991902841160629907579563943504168202587894623972546074718849167667558969728,2292556349733832818718263437125676640945404972529179965232912238167758776320,1703439878291361270841339200732858208517123970015758469844155255790512095744,1227564890980311307816290600201183182891319664305777329480846984447772664832,858136450349350410435300319386162234350921961887030457622029157406945372160,582039302049165902902619146470452040863098996451464220997280314909491951616,383114215754071420480885282782910226348446304557245666031668395088818284544,244785603925627041653848440262347761511059999670692845544970996544948018176,151856068018490751025673483829258371098747122397793477153631997290795895136,91491156760027963975439995667294398599873060732691798314102638756226925568,53548020858415947488653247823174571302108151848312310531668381854893922304,30454114540120460545619341416400614445642284852327165394261115163077961728,16834940761057617032938133191184579573348086284310922354703386345225928704,9048334363260241781255071330474860334103569267901277109712195685612469248,4729864568854242093338185211683870930070137412903984862059114981822348800,2405394194518238008445029950776176842805639782519256709695546308622055424,1190469688751670945552039955786107921862184899406365066325521685062743424,573567151483064703584689328232418869328571773762911528057772936610669568,269107217855407881667578747965378516889886699966712983763182851705939968,122994186690644534531467048297221173861580704459615437789696158795810816,54778037214768907187599305098175168175473517063296432509183415968235776,23781360441034343801635024553234044213960132746210566740259382832489472,10067507849600437632788589646083547835262849305722580010612934547059200,4157285142172099044117981656853097962618694539195741315669396875972608,1675129204703547339585258123487257608473601087296279775243280716122640,658849169465873592951805265828351587049089693811187001726006424055808,253029811226437653836054840711276564668131357932727139805139804446208,94919249470620132401892424114957652049078157973342614856387449715712,34792266235273238658728210963673811147489748655811596736003018688256,12465385759400084702828526767385203660656731933011532636453879592960,4366885712986614748128466327455781300834724869020643379029455837184,1496336242853672915087394263129460639321516856975709503036461775872,501678584335017971657146332189008493427659929654268351497108154496,164629684337510408780557125126073718532919383918880612636716017664,52896091200415481077808263054475640799777931163303631527981269504,16646305574607524832360110062379809889799108194482629982474683392,5132586714830399462127565722593779715170161998706787870874265600,1551041621895425879670946447045440064396942635191402618548566016,459539814201354980256591938941077567972729136481932044199680000,133529862632477647117542152094872939513936437290015596318866432,38065493718933807677916217423344746726820412663418362447868960,10649367068741493941851544135721598840698721457673571451708416,2924799423906101009005606167292032425543265862308267468761088,788838902689248672311809407465625820845950106272120056932352,208996886885118695227557968476508485957256948411763671994368,54411330436773536486854224203486717090841132443398903749632,13924359929735476424780677247223781427608588509635614719488,3503769925023508403120725735528997519413498128047257466880,867178294827835610801008509151742419545951425794628269184,211169875555038247275971159538038689461235123739771753472,50611022693649248445003261961946680672474758325847801856,11942291415009915372359613295617414588113816411064727552,2775242285650355265574495891529113863148730156325588224,635372123863582722250770477987239056724978523528549376,143355858307825170626447873532299913363195229581822464,31886895219475135015217137712603264725251843623616512,6994750993535906920078386786399142679909967346987832,1513750905724127680864391937454722826927500871041024,323313409875478655871130865599358716403520327380480,68179255754858336308448322960037361763146746108928,14201039965134148049217301717187533988924329275136,2922916529049724472685360285423247548186579019776,594757152627949500438253228055837273112794152960,119701237923672828228484869442694850509869652992,23840328332120507606315294371776768960997983616,4701205188632844368378278202736235170866964480,918390139301760435247729717964668963355560448,177832479942801796818211975075604063301415936,34151542148048527600898845729355706680360960,6508420921057273407292469915111860313929728,1231557317034556510056654941774955447162880,231519011798077888983820131371195880885248,43261051627011809808391738146420526278240,8038798726844520621272166542110506832896,1486100534202177918853661642638313940992,273411053363349179707306059255389235200,50073382063579152660627165950277625856,9130492536572718976798063224032865280,1657720837114471217696413947307521536,299676390194407037955035236077828096,53935451751667083062550139364135296,9662726116974562379028634249516032,1722749277543846718764428903958528,305569850047714588260614649079808,53903158206162150596219622870272,9452945408089672661306152932352,1647371920960168202143395285504,285168191470284969921686540288,49011935788511357573628263792,8359756300183901421163098112,1414395136265001554243053056,237256593923183825340222464,39438260600991177128045312,6492777370200603508381696,1058099293205404951869440,170576550866417544416256,27188723336480479383680,4280875542797188818944,665639129468252817920,102040703104512185344,15434383264054751232,2294261810504153088,336663139229853696,48235628829928448,6856355294895136,937335072977920,129353975240704,16555966785536,2244141041664,259061632000,35564942848,3446274048,510137472,36373504,6463488,268288,67840,1024,512,0,2&lt;br /&gt;
&lt;br /&gt;
== grade de lado 32 ==&lt;br /&gt;
2,0,2048,4096,1057792,4218880,371621888,2191790080,100903637504,768629792768,22748079183872,205394991329280,4449893079195648,44743561136807936,776335369907888128,8296338816339398656,122868315209973770496,1348964107338697842688,17832940430689993684992,196523971814021975830528,2391406180740483290926080,26065481800659863486496768,298044124622553465145298944,3185666524478313863851044864,34699120806036636726464401408,362130971398695260784899284992,3791345208840452468065820620800,38569361472886182609543396929536,390468333064795797623009891880960,3871553755823196043657602074615808,38057017987760849668592216619089920,368038492491826519223092138855485440,3523173455605142701375696893142359104,33268211950475541401174550189585117184,310837636046827614624428277539688103936,2869489075366797548893304282023450533888,26214778104788743755033162540010899992576,236883377144617677266679044866159843364864,2119131433404402680229316495074226687313920,18766418101396516796805819534469514301546496,164604132965150053436862836181661369720610816,1430150371476550314756236971599567116560830464,12313043847632252717503298415689732121344290816,105067470222447781623140648431924213078845685760,888819237227772017275167355580125315625149707264,7455656526572114127247484497385530619632937963520,62028020510984349258261134586972186398069579171840,511922093192231646713532662307450319530998390120448,4192018383837923758791831692487336004622054950732032,34066386392118637794422761953081413466164757615898624,274784985732917125884969028662235307062200721200070656,2200386869438311446643606505098940608474943562758496256,17495152220971073346308618593911132738639343479232106496,138139825165231317228562951874087079857917557825309970432,1083353892268561990811184287969318106952691890904555522048,8439894555626693862474488558539289489067814554730078658560,65325348592318282810640442898098981550348887984910665266688,502417736812449107497117268157306623724023617294202487386112,3840123074828923038181825033616081876169505376921231869812736,29172837952336809130467567885805294279934608764786196963549184,220302845986047930077169257712835929098538810367386850661952512,1653949139032680803917761402250977083486051914558548492009287680,12346271753592922468444986828753360574796991433134812095904077824,91645373567645392073242032170370593654118502035003493123321151488,676541032071946409099909149250367100446574855934842331429519142112,4967444151597852588570795792041970391204586352498372635643170406400,36280400303569060652658832814076938563782089924888015822409653168128,263605824446195823993048483432666471011483615868985818646050027524096,1905566624160737185266740444427689518109946396415627534817026783400960,13706311706528570714962892502708866694876597387433853742956401323057152,98103468090278656011768735440593541858438564980785601080270282434371584,698802174229567475671981504282180889145317351574988185238821318936547328,4954137281939217507496992063475735710481672274820772631534484753709689344,34959279742568746551815844894454607397931655190346367687062573384077484032,245568881686232098221582987939203028786224264243335879323798402946953443328,1717257538008627181442270148091891746139961439963051104372874547733016801280,11955911663921129633552662870566285708834836797154248182748563411032991625216,82879703750853624065467203929329090083505635127523226578935850160184963031040,572089710960642706383513528013656771283983176900678883825093855592132015833088,3932438769324625645584122187757583827677362367027220532769184588534275093401600,26919832300887361029558117630866268718179380900223078253093687380566264054086400,183537667035205182096794838543025743492158480823318301883368852348103650892161024,1246377953347562665577072201810473438358789404325867743426103053732132563725580288,8430911697017691421566412235327041166240157136715650360535086036043394271506001920,56810346023069024903957823460870050908980453431367523841169286716639025212474289152,381360482855471853077311051379352768756174383251009428992094314762653206777975701504,2550503618526199187878570017669310976232830865078389416331672653855509958101509705728,16995120749012641704831888503723977025321633253000588066195341177022821926992491802624,112838189670198685745486692297939545468289222521576229172955316910387765823380218695680,746528607682263381946103329854315306074551716275273733640277341263033564368243437625344,4921751808105305915175375210336543923554372947332130245175673809951888302846855300495360,32337004478506197189193649874290097987103308368516874009376045619088712652300423860858880,211743511624819791063119086625494624132610116282445751507211682576769101987980221351538688,1381890514675908087671413989792984868194420191548190433311295067461324371413710622329544704,8989030582653910418432093978652682110662715124868469027267533923192559429158402815056969728,58284065259880022473460605187895058626784551762403727667092194943126191830028749505560694784,376709179320641924302294786964228695400019805803905681689769155410460308657181195255746102976,2427186695441797076072060077744717134570639815765318216171507931178831109209866978725155549184,15590556008567478336634807981812072185610883219141533433065519075034780521751485209136198926336,99839388206752878704490609801980843763376953000735536929573208703990410672727995194032154632192,637447145986822419007657368660783224231392475731647338618539422431660054837370653585937035218944,4057963468998362312726489687525124943084064176323027344959459138617520875922482312918021850943488,25758059509268713482811748116365081744347680418920183224533673945786671966875143273230411192141824,163034025064945603052923751094950455704690201079848112852085959737719977020672833593156661725831168,1029016123513274829920154204361617587932563051896446447329933937749270480508469920489324179691536384,6476842556359465541929090428523764862129837475008744509177826158461338196521877714864586708859031552,40655550259190022522665790938994277417783054604166583312942962044129967426538929010300586692243730432,254512732156996852689472547674014471907318003901054826940289035465582286612658530375962612998265044992,1589095118735836856103749267651105397796724440521940127963021167231456010304866305579848236789121242112,9895967532746524427290572098255183564074544311868597272930746234712418292026563106022562874735037812736,61468361380625998824299700232205344082608882087019873547010520863828157937083795631702650830217885403136,380843708852095239791356147758009555941032024460203678365157738362853201718552078671387656587811666583552,2353749511075296665799392600844255625318482060746658122271650525085867304484334594869176201082775783621376,14511366414101943366261013153241329401568888656761300104756515442126595020917207510645645533542864326832128,89249761381732005622415837883909580639668589829858966931690638312537706537166890077917500625429131843772416,547611272668487025059876098786756588565685531925041921100325084951633928324903723048673332830270657854988288,3352122836269748857329106798833615809672433406914916030717563191699549940000024818684393557283367683314393088,20472231065640522403977319122200058427301060373117938975731067902513995175714520251064969714123459733109067776,124745078676835168297870477941130246119964696624927031336944532678714888685607947054692066157212601782740428800,758420006100856284190329004704407153575196280959833636901294358140515782099692582308690849925772426299016093696,4600861945743228952932142838608104717687005670935630156636278628318791757758756602244586299398322545817094401536,27850081860287252688259980454516464872451125796764712289610773873398056918760769407419468440724812539136139915264,168223336767104759373499815355007742182797798766185685027702521547259869995595158208557698390264768485866516611072,1013988432748211842839474738964230742278209212804760025309447919633657796509155359918399814821838309110609042579456,6099315678469359068222809637970216145169789500310943169060944107933382864721417035551571022729211374403405638065152,36613800413687141754799489403933810458334059608858248586861197777620909741200370079435310739089884003533661324898304,219350288112154574934769616107112952177910435522214137666912735775550341909122944257277684185165745885225203595048960,1311521177903585487928021593392432373661945460144043943500653888366888843211219547846757591120816690258837963346673664,7826543337147601025292765303732018309136486029715659831024424282444763968174982211119376982440029832681735381513214704,46616112461611949569170145275517758295519411238433754396238085435851502963166254484273048597308849500630482547073613824,277132312846375428442757291705012252693352609478160188581561008866916103246655283398500631434102836055798794992481159168,1644511518725885265034892964469851037565658907619864470437489173232409829351207780987023351795626427662490397915094618112,9740893663609014429471192630717998262379169610565129852189262854572100050656938918946779173062347232300689672256126518272,57595188956865857655162274729268149410481938937583150257787191780040375655058418336216532657065130948409624534782855700480,339947953940550280979109201386341146781598438408965613917267850527494250493465263429678144833878585248361788084749409681408,2003044844518453651108610179768091440844170047447391888092419349439891654585751749616486336216707970301542385921369871781888,11782407095553835147512290854635105122292331537972124966099566840196998525203847716638440898882944109477288337717292417794560,69191934110501136829965454583474379537150550101836406656183486771791946009491365501610283594961370890342844388518957026697216,405665316455124341713726608354187226685561091585268608251154932319795028915880415092067655589734929145258110293515146523351040,2374564570252186185269017737435322337914204234973494650994528766147877334211144565673919358739461430380317396056185453786738688,13877664453269647874715959837016037370394569733221971598894882129496861045728879586772823320782399424831483002186897203732373504,80979951489401313666954479483694216432568656528768465121863584533567525980906968210895582986020380198899296295249397488052117504,471823572349134685987816404301973375225894324830104008913965436488451645265164560856150160736485753615731696947798246160205701120,2744952374446077346228640007688881047814280111957028820772788759122225114730407971096543709471585847411782117890196531131189186560,15946115070541059217731839557768778498727846001049073907362133897610226409474349613574384406683163556674135160913569967614472359168,92502074063003792372270770855738792395745916416741132326055175661088449612302926378595615547580827845083218603702013711384720384000,535840904179450135273075245330567306781967955056793531455961613286168447084783428249523395029532451914653206375590743434901349758976,3099695842695670654277611039348238507161860498879826041776139305101128572564684542250355317751591813238148441611902775616288146780160,17906544619976758450064392307420989576729478564098310254249573565379904011726987406075131064026670604959297988394724324205593366498304,103305696964452752591781400974244501765072300973296676482033302842277180473790406748553430541274998546014119142173393306424998230360064,595204755106542345289685813855555810301349291322627780630506129277996588498025456162330861448072561743054632347330289132440568974888960,3424897274680061918917270709068159594368814718884805250999001331447907574947587302387288339627835029286543276698610836518716550078951424,19682335965345021015123674835988588858115478253367634422267860959589757381359401284150025806864572129189937010285416294170493354260062208,112969709087091619223355424755493624077175996621101666207903358515547833796760451777036540775846126791531386235055857337010822739144138752,647606816295458085155388420515582152979944072834512419219167702818849356361409903159493717453186877756745093004142147273623466976646772736,3707933670652345981115677815699938239340901022491686620663683836700168408824996252314095771484739132321672041038277392734202212295959588864,21204599655787680942094938074576032805627446143352455356913782353909598459396069181335300739051440901881566519499977305264707417547356237824,121118777245367190930556238368205730187949646998879427386032532300961440238926643013065850049935699711646372002285395889968683400241949286400,691004848392684058294645446565850997577536117723387061172356844380005633215390102920133271716139615319835317745436032403209702496502704128000,3937703916723956609992617475901266746474612988211874862078424225709073185040681444535266362706766510935226805192773114511964897858005710721024,22413034176819556370837832354834164828257417808531852494878876990562839476311174683280617646871367942965459586309594098955281793799931299204416,127425484140200444611421406778536441403657439817430346862048253113939615234587492625822377071699509272472306497296980428349272052077951181762560,723621530585462845157929740942758839127906988193169722047136598996754126975182881362027466547758941848901478300716135034186161320050973145300992,4104561760277334995992910486506663301116454575765612768852753218062307849101917665022054046928182100345145037325423445130571643490795871138603008,23255295671151986044960635017793448275121676803874262832269809922480880284638151092046245635962825712088449695237347376718241156558087357782429696,131605900807658053342194971210149615607229560073673962821062451646864240807517103339238185437727417647731119225667662752256531164612724197772120064,743917861080702360237395846107248548376782381371950086160589049270197002551265533573356867307897643646765468039510747725201115507611883314591270912,4200175810211707679523927449862643711556713768685640958317638827734386628364874836849944831738220258974695144709008849776516616080323901450035240960,23686373883967766766982471061107945148830827889799935990010386298217677950942775538336307205560635525389745244195699836241545579679818330028958732288,133417602846060226082311582563617929756547999089464078306145873713510829765148327197239455034339570683615655983554760261150181208849789128679067291648,750593859863698351441273089417306409972646732266398260992625668377936047335688102732351087294302406867910888853422097794955519391954860892217787510784,4217617287673731533230978060444825128722800203342368178983560887572804090876290166287002558810137166669103602939121392219397679608059701463229932011520,23669642555873988806486945206485471202074393884470624761752491483984034385201761332878376462446656328676437450540294227809998125109991406978836427977728,132669115102119395710689936386738925896580325702102097882345668925520939786185924311773117132717956282198243213738683529775952154606382218424661565345792,742663344709309403793187299578858188377403821365509123086832953794477818144282537725344797038086133550534082460516477079491095406543913236013944663263232,4151908979033273798036473940671534019344835073325319586041854518121133298093094060316651740721682893255848452110005326441736142676257139755990838247317504,23180685281804786444626569622454152557774836830423825090286749038400358820070177076962635585707209957704817612307129828909068848994672974869907958178018560,129245547985434763537997786574215456184841317305358015280531404203659859178659450344695658841946200819325203535689480960577185863876724290140439491123539968,719620345921419072488128835077332480354173830776192854088693724131583057578682285357357471716374126705334481587768002624815877077856559033821883601465098240,4001076696152426871541409467187451032918683723916010175732492108081860077347954943355289413542120664038242648798667067276281382477062693248282868056307802112,22213781373572685966064653292568228495414075104875175063297804022023404717439098775487342539371631101882535306023058927627255253577226509277295318782720380928,123147728321183458974485400627777880837405067969221469924152884015779532330817898031950671971250330814203737394153571488361232844481276704503777106974822928384,681670242081075286726987845071111817869871919694916371984551098078160018796056223790439227971341394531394869002807554473595815048601450631190803282154019276800,3767486181767144004732831521405759596978513459868779175095579887897847516031235028025515065087146646295522387137590824862748700433395138347066317300085519540224,20789473866423705576923409498676337143133115311789298228424281421196843062226337265409437897731257132737362961323211511101033732701403282615771437385756684559872,114534068460144206346033509427576181122045952443957277394022599759981209903019371714524310877407688378168818737497265038144444276824659185100641972822800036638720,629955560239095483050928361519342559786212542853320489887155866635410094063474267739492011932937593088479419988896227382061436918767141045079262108620245277188096,3459025123165276638520367880612859287645092073797520916134546211709848085682828087186728350576162125555562632933461700017597320606762992594285995786388820428218368,18960533221104092709958540110880743223875415001401378022664082740369047737816815463857457734991992931410302089771089028075591063291111268972606027358178133821410304,103749212024109665436923386149396450196968476731703964144994181421526016298343178601907109842021306516847976901859726913885977092811033414063281372568296206048145408,566683921718143896819804470775690259447574141574487152356686221891607301230506464910511536197999292946898467482384420339677859865483516144582875145199406519684503552,3089606853175797798543735356549279065842036855908402865879981782497763687665421797096839848141360879597941176120677003018676032586930923630457040738069606454589636608,16813428309330040481942398770539325329951820061062107268289650129053701640425553928186005318263130315030238217323414807663496128317041154421454432648824303184283220640,91323938773535744470696316920197304517548630617955870181306670644610622203163004772064037978917208782711611229771973356306425839586412619841475874493649574732335628288,495077266210966855409308068591897535735620618777629233785409440293437320107140708931643185684033313839751595898477171768852949439260586499706911142978613339475969501184,2678589477789117486359501905154246823481736498544599733322935588718974416349566049013113716906024046917048316802171675747279867556582789793113818987918304069597985918976,14463358509208060016974597648855774169517958608577080168948993345998613024633787847661735676667730027827647287243018023400118762710374692019635803486724620064339052459008,77937619439678118311996136071428411996291284508451717873339187371095726706866446908072563492037135576618911236449605850834003414128024048752388733555052114733787293458432,419107547053828042086268820924647381555124019253135188683016451631826649576232803203509890153439173500636801529137095323088180419968063173143900535952555177959245931339776,2249001582841092663364137250363898513233463153162052477668611597116890476133628693724323189068237956964796477388818666111304330002059671974187413766415458207117085604204544,12042752650516170140735063372595213033805815091508325011152402878956153437593841930710415366412068188250092514859472446341520749586187427731888062273673364045774120292334080,64345697391487364522043389422498764953064309012340117851281154192200774822757445287236232061307516839046056251955770454339725583358868976416537013141867284102768865041915904,343049857406276147234112999122021515299160101656101116651804933169213045187188590941724978979619345664930247614464313697213307293368971840297422127244886788914166022670465024,1824842708656184770331327411402849014046014017791658726248570146451410333644354598803672705612920030129070254163732749988039188413287384533409071271440935527162309145775927296,9685249321523762964137442002368875730740455342852869258997997159375691760268284329048407183595886286048521098957323338260979105137989957159158361537496670646048009744213307392,51286173310894931010159917511816229017516931830195681030134818118981513745598845167555620778832870976163647580382117703920823572950891884540034968262551512143760551702261194752,270944968198960550909649545210984531608001027722208216632730828524526380702748909102201334774360980472738670475303975038032221660911333110962202665303590438982936149536707362816,1428040752295198677506251161709726409650553798494552797177947146297190520491592067190568265760591024441459208436511026092401588871526825942845219645130022207673764747617442664448,7508729692863327331015465811908779279727869062342327741928732883540185463267266634583095554857733313191667512182421881522684608444878924807031230862716581905855409976585477496576,39386425010908127509052361703310494839136395709165503240345124337799591533322275861050564061910682999864322421403709261667992353118372687334406087785477900412212705935093856542720,206095715237924219260005924619666854116666227245961282939785106106449315578380421949173858908638063647516517429074892719135124592704160031575947364483549112682241194399538132678656,1075776286792806231474307871610013454953071236681562590271035004831227437341831045083634356553966774864796537841013103622239228438673187894911293529619534616160325664718372592152576,5601367651934490487256175850898656938813011916830322678672911650940103168217210341046231853595787818418620485074491412145195733206443185940019565499177363871411129277919469078981632,29092028375739384714785815660796554426160879554414810555575309977091962193617328485523895670596229520471382239321446396265514851797396437327533146978693566842726265129304523713085440,150712971896086232584920998327745579840071618440010087826974741499423100081230647238886917453686601605606962640795384947539871308797099651985132643569528113628456870804827229426864128,778776888047850523922878562463893138607849023702587545097145288781949856606128280105189941033682095969110699555418857181065344470335188563110070745854659106955004152566531852769718272,4013751897596853065312857119265283787478039767567752248156831032603627090016029517547386296349561944035500122503991682474742440856390244476581798931351403286830984491676790156678791168,20632529367040373828805561263610264109436116816051090711690965439199454101420610637447376570335072268058972097773457643510138387800478335573706195675377665616856433568713211612318916608,105781200266544997714819074378583619089840008531810365114479517708526246735510447740051184689827319953067083344948241452246508790436939460857610029782496066051042345296856471177132488704,540889220533052062290856999405579157730704410492923949220495553311010812446143107972928704010039587878890275738508489563812975657757374238363540415065949328095374310452191600330805161984,2758302375040737964339239885531529536269040145207340487538162866288344778192030628739835344024165574975169272524077113945227755956685499758061751966426392234182322914302845701467552534528,14028110063400539567102192347132524688343293701729806862368820988241099329703398052276019816807700790884721271663981132526310525013797168799458134101294809210662200337749714619789512515584,71149256398620930054655459861556836280291931603590473753072081671558214536322134027656886551994618992841428564915225664509817428966360828721441328428098204045495135173171690744563552567296,359870101079833391096329032057030490714562335059221083027540638848952606738831696220229949075936921691607171588825233301111970444742613647153443239563924802919540293557131720851931482804224,1815163597309980533653523228735744952799944247172266850013327453144664086559436446892150012765923885455833491965409917325396549407542145001170862125752477781449645633740431401836928317350848,9130002700912705646258109465939738402293631222644237538476456776828716172692479177797318674935637181024414270727504337350532022715620067197907726047666120810089791981940088944110349276131328,45793283662959703735223811810127858617648780698768324809908165477629738797855509459699525670326774262630832390452465780941913942661635913544791076937090836719370776340287666986475416814321664,229033565346746634005993908882199267660050329470709302497767130570978564113862115480480776925244724167584533726890027881285170281153279684496764464531919771117726310873795248436528398594924544,1142230518383809538473452335314599875775703549253983145958861817947538150079679088533814792309781304945267192279164252824024575418245801315556632664667793615801251267085219974923351824598642688,5680107563664692624148958552899825635369035571339979010509907195951710965411695274811972602077348415161031707907362084144318685551476654822498473462647452878039140001747979782242947693100617728,28164270766927563947415550580360182159009999491444920957381579843169951078449795264264691440162727604504446966015942693666132958888518803205164848331492571414183349081121925248003162750760781824,139242131344114437613020012857124554648793504950617535354694078345374970667712146407929793722500917405021796788108401656460545220315449112200412570523522486354735469256076936685893337588621221888,686379229648238800751656754150083427577452477277506257777480900983017152042219799584743661955134826247169711193568122014978894991414519643389319849529989480848819329236208139548315846054165057536,3373417593120998891970839361915910327804280035961809142521629287129720002531230807300231511275999917769077600740006413749124625447212042992173755280200492605040485490212985953340081850173761392640,16530265224666868754061222857483075696185218471202589707639312997217305032817625446310468749968766347732935220795944621566089563444560847074503769891211720279467948308500443715723020111005912887296,80757818346187503241931437827746973367472238717219957712673438831246856785564794345972611077061681022307802515624173073093580090011687797682129483938090427003897754122895421029152342614270269882368,393346890257280967088183344244796729125509378535056242593083767384949647157228513951981194784031744964523202774855024892064775221339467704792621727947758161457573497493821123755887992351871543317504,1910049593937971838090637654340941308902435765538470553148552736416921218378948149205934181225104689809429725206447926634923444463605911343334205825581244472858649031400721518576757088980121280417792,9246615133095804952309957668943427602641063343967767592340281089506935869231555032100990981781325630222499108494757377656411366285287115378947279414401200593479455779391656419464696913504292178053120,44625347293605435837849122718568788790481153323052719119439932401059259760879932843176682848332004714563290382065670217751673422043332215520868248107728581001970542381805626387043438739638742507544576,214700292351171295407907974814741112493089970028861888262853288041704936263909999621161482954581148236514327554916178621796473526619667854520798668330932914686873110257160120833593367182255192791897856,1029739575700345409599362914962681911431937382874644720245589191310560831231914349515463081207390031643718863646340760627446602957080142440714560123800651235798100541330415742703447699018848586142232576,4923313438463705466381246333898650413998385132143608368743228400628752514912164852911533741509639980459914900957132196759102564047703921167607129441569942325131453903848999918375053983762702301635387392,23464671477027850369435929574271210512778244195261789621730389963236902796635965421482098921736354545176139462200959925433007300198196727630978900104029258734202388816827056114539178287214324907967995904,111478214343302670877205537322087525469323662743079116597689791274806033576538188956958068863387941765520983562149314644508199573555936108040331513329198535175226325088301666068642719259491707628403548160,527929226124586893595403624524764447358174694136341860448475654713394817519906185947270091305163496569080587724876255828200828588241360454842237443565888569198176634931731277203739642919323339275951165440,2492087261720646488136031121508986189908061709529354064463071285990938529483281531295966680983938135135390574934751791589430797873427354121940994669555902835402572969327427492512457103954353512041184487424,11725849160821023686235755946042323619070719846591084565611011318184978489810458043764690862278162021491074919848483342329486322573498575618478588024267102562870809744116381170573462449709555781670390538240,54993400256611729275072553002395012642622803787973322052020449139740572205172615755689611510339864844001630105470874580265632312786606953418204171852939966523958990490887963600333106011416475563170826468864,257071399620630580018397232427830149073322988007943039334958104795802744033927292120452692979476439300066516631834865636209948630958664602702982048241363065024064292639764486908628324580614404308483069341696,1197748370534666540962958353383118531881227523061846702657234967840032001899635433887550972107383403161136686918992594563855040077263323917273547347317122338748770100258080318636858787258547264442348589580288,5562087043734413823719791830800245107390176553518672851581665632336970650007922088914923794560777447760602180954265311896471592056221458002948041440199458514468693181673853069770449501244830887587273054134272,25743173006665112656274840642905630873019930581450923081173351112089509125382167142368002594679738384534906474130423029540355556726430701186447697772059476999271587308802572041448235116140426916477210356087808,118749069309073161306089810686552219468576643652053760925163881856150826255918281851695801866913829597152584051610436308234391141552167185291415681755115797105839855211250130521933343689676235968715536406048768,545926211918859006564385567676838152116576327916832097208581379173544805841617126047466514166310349546391968724320751350116670420173375864947677394833333836085127860856103315979304858816600668637519025687574528,2501295632669999274126212357070632311673929054096294709948577144308251185410161492449460331774764914857898766559046286775337076308841174280567871075585717584615874763320538818078055205225348362039400622979940352,11421291181129300408213109537971338834740492330135842804747213399329714161589001389326745321493321394713392981640106404611786664456584935171573650745838107992432476042330728434713268786032795669085821137207112248,51972815148208356062228648408685418624061731169770661015441215531773665716068719151967630096117837608402959470812039916023525082770633777510475364209310962168175292753615148191936079219997951437790580077860618240,235689315880698697660679127878651137767557661347862885967065784980294845482166606057616921105567596923257113007631551091018453417639294771961770276191281574074153197904615870332884549898085751938317886365709740032,1065118494275223857073955067977834704742526485375551881185909403169836781039419492765090720383415821193728487806857474948921635543274087070449379261150952899905501593069701385191752970918655180867658026989094129664,4796694824331772912871587164289411459259289728802052695416946058709305476995552890749037095458294250234787671358058862002598263872508773630281868510286730170814362994465683739731609968166152913827742298193205785600,21526039896980565445268718913568234843863142851558050883244272675585025326870456761835155948399709738164630501810678505913083139260753301746983294814374331029099746472520343038539613274075091412707359552045989355520,96262211822865419236172407673472203460955748561527088922979531848392250080663056996294930239256277173452258621402477583049269150323314572020781714714567203334066884535959405723228745161652076259779555143506173591552,428952225837681080091879502718851603505438066036635077598755788568208910069213915911430714632943973949057322109156683741761233319303105407982401728533762135602447917156817685328789399402169608128605300353052617166848,1904649892743422219456767563186718033261306008588774749482216030798707187954970737557589272783181882376557796182426111297256081205787482995124027534520426663480792370775679511255390552424545117131998995140467883850240,8426869570021943600265311358090291255451533605466716520499900723252691639488542904639911676275816056719537222664099277375268886061239202985501046863515843540941476629119679268349673430420772922470342409058355167846400,37149588755103540808806633316669387272811786595825843668705095290830422329915952348189241510327835341134139418628666551991280014411398813112200484303544899938529847585406002658403521054850097535585781553434507711985664,163181193523732055080232950114571989874407183828503492818623769866898398108025602675427759223906034644119556416203922155628949401335888727064544936687664187373464723348735016827892424768520776693701704582084580275712000,714177697736194837569026573110135997025761796356712750127221580820624640409809081893483913349388458932905013952605728388688573039192254138197107065089106868466766301730825545009141967564705886865102486227516512681828352,3114255700364611658953281351672373754304682497128975378487294105274726245091594841277464677339120277048267671325975028603410776947147464620461469819259404547150241138720709552940215181978188318416881604816802759790174208,13530248484717134949155310401458082521847168476374844226696523872796532835449334760108546455847230647931118044478222142357714516424897903467695752602803924899860847538762207986806332009407682783845472159143277165434036224,58566936209979918300319043298444356331251459908385161936010857789167471512047206230192607329453223512923117748558604756947109963716707669941505514525891693274262324214877714271048309775253046323377764236302956584278691840,252572561041617393134102116634909011788977880387862711348953702996027545907506498693996020646205795083622338025688426642094229098034881486839754011946106532873103549825933545916910242371144617629365208858946114742375224576,1085171684278762968789387436846555897060138010567454128412325433925937970574080093788308605578868421062567599125857488350381210761629936102328083427254049366347957279888474200636921537878003197894844548468678886164313415680,4644950031544147005196419741186962649861021597774619750564359388422442154594281774764285628639407024440556011760360749553652012725470593644108193823121317701685799131539017999530902092956038908442067932540748142802430515200,19807315773890108326530895425126606691469734397278117963132792297134401033065726931200545624130029579243782251096848978632492298632362375456686377239139227430323783162714642548933505195199585181511620673430553780788359245824,84144136629316217579830762495940550563315947486538434930988920619053071765556433394769224130843113000514242423344225008623433830985088792755521653516263793364402405579913243038706580630558485659048153227531143825101950827520,356096255408145548147740690238358171881730665075744664503142430058539249074238556063424143452718985793172100729354867326405985027799001657039654816471028627850209297815644061992260768890575467935775228365038532231162038157312,1501232373050630032427188980135766802790085804418435307498979145315530847328526077148551403877777089535334221249316553601997232481949369417539505857726541660680832277812543203099243378097974469828568922055981270000342961180672,6304592831858991157948925191955626682662597015786699268802778904989068075833528693011140101124708246208142604144110222674296459517538520489709061892568935216550107584621230665842247048836868899572122818170745457938905855176704,26374631960559693675099843247545676046489974276038897194394914870363063990973303007250775683364444890497360758160834302713404931518587109887159799410475552312993428817426476535996099938719494212528679175962324582208654745137152,109907577910903787589348779780216047231370784693733982731433893554116538570499375489515338330632713972817139446135124798542809635793554284462950481630923976552153512949719770838077701895465637295497276727566414862871564814835712,456217925177857851752422796961765458652796649652682776792040151959691166645383186651744256910005269667267246202242820053659732011919242293203245134604536569460732125822810423561720974645436995722355025603731329506757748954699776,1886305954147451560130516310747604018003485315415389514416991723961481383745161545353439579139551515609662269600859056749284795548074435480245813275937187647675290203885074788451558133104977430139670562509640201071468024440287232,7768525627417054175100388251564489012854276195626323843061635281336871896168725688796157108869286342977288121898159105669479330939805535922866014516110935208696969349401789737122997486196073530844818948286523892604349155149025280,31867157756230285496041104684606426891697842828422908222255079496722750008781341065181880585936858352691495768079604505433444599590229105500875268809072102629358612159968403347654604068552290022669540788416172717900948527388467200,130202070860763095128653870667617297429070999424181133876893494227627347938648455437746052142057814186006459705170184835348148638607324771086399418204366260400708050435481672770144741693741437032007671483295428585922034169737871360,529851111894390080887834234058695889871034630874711593594129635311043365374474229304642827995373521743474557113244347823215665503119013747106118831078270936936456643421984878785804114799979714446722973937653026011568703872075632640,2147547397447072602502886078371500502333180469057420986132938443409873918057987278704255724107561242602387347254497099823741019738669943240544251595794042949090559219789139651512512055060219605078614568232440016081595477357542502208,8669142793903952002092863969487667844597540219118690020052360457399561223603278183633863937342920072611239814301432221581550537011013652928229588812289909842196677899890651225880411735264268346195134677246924265595624905511656845312,34853434254142304055811743788395532628292925453336408743322642903935519325331105450869709148522047440227845560228647049546660432634225009696018410956922526639487177004094562957853180310011248050267319162672213599539170053260167004160,139554080772411962804343627478805494634192371945867717537517240210034590218119425261911743916305793623421716172582913365315706600277462613917414847906221532711521044243145003225463562043475256878456984881253928590127785291788188180480,556491524997869987597480942991924928879229373745216395295765705130759604183755573391925214016742059386576250055508903997031619107863388373412202071250987085217078714426944152024358454219246756451644247677039052286456583217594573058048,2209963587686263359056380290057710128461856138308441535972719820756536772195403437139995500055716579799123867486101837424965254518419775462327325679014016394840696849235342663327110725091200756270353042074783973025344498799732824313856,8740045981127748231072311749045563101135389283178348030607227037805967683026769948268098882923641226516573268055928262172519196430651354786203757062197922540902347473010720590821678274651263279346546960319820222856594607444996030474240,34421978433127944475578041283775659472520526334114509816179523171026849558563102662051393032796552053296052564475895959803029467807833340363496432933961697942744800493476856465223057337212502076717992198186268340835579781051844440465408,135002843013990624186557010376244261661526071084747026635272291022088735628912507482945529258956066572804352625171732148622302716312663523346385865344373557224825661452427883238168374778634500961573113755711979120905782329126632189444096,527261946660553510738949761823521805653683873272162654152475244004055243206752097367477767185332382975355618862690866712643613121254943710023156122899930226115491560933745302323224576739784398841374119351232587149732289660825418770894848,2050585171172831800355198408995238072405879575351755276023289472828887214165499514157407853232067971663797804890190648216095689638703426539988200779572028783085436278851586253771469407988134263895266772481501547208890934177410530669326336,7941243175063210752158991932587509046927523682079560543876837922602666861803610320117734920988965089032796661701100939460298487050466612999537191181011614963580276847397363663444887449905763211687488934420677285349593108602576210517360640,30623152328303995155946260630734442114787825624002475804168321932598481030068016421446565073566445173621990840535364160507392448397263430635701103031830207434248408448052585170634499151374380608884604252744515994157448572164100261099078656,117585404483660670096350626524846946912436524904645708159321896265327987090733431827982981865328613361064013567048900525780087473836510210791202751044289675752620783050003593370455542725679588886373853740283972692588876479759356617185939456,449562893691791008165866699143448673604387506443596888070639452587430697304002362805299374334341907721792796621245685709267268241884491148560253986261103570777130044774880850674527987016981696686102617780750323317530958918259948919244122112,1711403433701154637366437145323637989106175929388472617474327128580160241055745476885048127100053894567196241897739080009148395740389939525107074303114141929720230990219947038542618588924022774015316543345320536956081284922669590859405156352,6486801545404977538624416178991356247434379612212161597783432161074360692421476354326266999193736395556093099678225172353210702264786777398379880531386856420246628894629196560095638726107650677394966070364647835785162306999625642270691372288,24480284151876949753621504529137696999803678957314580411926040080113594168651728842396187746768502846543624790992195769903600538048915801237722902594748830609037683352388757237858581247288487414669576318256325716013994110030774976001338322944,91981666816101996330492569081399627513086772036667406649751407586377014378209561575154538217601960498562501655149196116928853402955698544888619597750147776804937352635598733253088883813476775911797222180473816612432880429060797621206514679808,344093452544116182948911776530971796009137824040372640123720106744227380996189916379053863348399880521199367204971387850201931843769431457129187876928660152920603138789144580248350774296941284181655736458841385258417760495666926286069059461120,1281542988132650656960175445849306284260317990188426042504843873489730057745759556233865480758341154237230797952673489961096369812345907770055636410691509583634946329902830007413654114316006929602738983485488837281618544822242483159089427992576,4751851894981559163863181579905672062922151743882567301344704002122753972275922285109304656514991625109013226302463969556336417197159328152342164881168508554714004408336315877383317380095422488126551321377974935065177976451498062369455579877376,17541101452904614727253554673078336504775252049610008186656055037655692072064591753245762548189173483875769366901637553888167555466787460955268196301653621607495284416602879956117197915707558138227766835417951004877193286910801167049481908365312,64462383391950294737964251738461902343821836828675711698582322324381896895253740333386729991682489314278399976410651009716718351922127072697961853601600757160068564396645670036805697487724033107120565724096201634024012443179440547327236466892800,235831963382732253224202123560903017590092339020774908226526177129026736253668907924842961182695838070753677631442869656125769032868128223500939860052240600237329375269097959760860973674344377201396468307750161986818005945528608336452859118562816,858889013033822065531346256704665251655449244089372205036124374653365021694248338557029501631582348738886792807188021763845772269430152382520685917695850448702662104861732654170053305169461728375893119047316388773716943010904190174951584222867456,3113871967853614933453743396847369161252480252197130148444967947260824893506268864535157248742953144828973743858724122929730433819402102661722489259535718458849645634486343026329409170767983478347312356149304942051763562872527610063051478917423104,11237896285817324983908151776996397877306677328347129803786417013262919744716010474422933008305383625027160389356672674970204552186932457582409499641565140166814127800147726356307261114407702447895103839694668295228161228664764560837689566494580736,40372075619627965237244402277271250371568253097656351304297381823356083889734361734086971467849513413605589289558089497738700527875045236537995572325730041954952580706658868661902868483768193042518342204275317475913831319485911208932398939728829440,144371059011814943522160146090853736996137624958013881004273878669586797512969151096897243383099383757618492775014606272289310154557903495306114783218730368664569039749273748635936166146491617195642186298763725700838444408265928520434506831405445120,513893844205478861004191389877903190983842691105019034308060016949773695036409200516004436495236598631616986335844515937419265016195276328989300286681157439052060767158615794047734723585596283949874630456243575453354919231984093494710644080142759936,1820757422672803850956194197605265796704863689139909553102207020152545625743337573485008619856106792313991426915841326941851503251393336404509358436094200963295007547401671818711664589828747470836809060023329511853806698764131841537532510823134642176,6421069087452619293344283129780797948592264163197380449393925377610948126607169469992481329984790898097441541234579763166374186096389948046003581635094641329002243846467289796358693903469855250837927162022947237840279698358084036093955009187272102624,22538776854743028955330291718150324574246554559844888063023971384569367319821035531176665518740598148756464074486295880132112232476410695854495445535203534901351945868508072299620821326244197463589882910730453059700304774222551418599856222579078676480,78743052837792422375559475651873404961576024055062854735960913005957172338297275943193958025443784209942730521885250475832899017755665846989083460098845133611761126294746199293796923321338715941576535782139339100128620609305664802503992190783809341440,273806781167094012241872622661444473181627045184673130486856263434260750378639322184228478263696519810007304444862018117373790375717427708707177685572803100464176598291234807848307010797164692561904983557642409434424160466106112113711450050666659254272,947583152834125915755069019539733724080231102212454595742745260038308407147292033204905368352684545883046712751998857615884015693911776937736373766556513966705687215021379448389397440248111103945628715656226042398936263119846040744616652921210512040960,3263794165204065462603593492059264717089295476320717896120186044709189579204839707988039794119302657908128084784393547799668442624078548811934283653895787256893442740953258521501716419724059521001919274189772628771724551343703447098482520200138497925120,11187977941855528845890197164397671278147866206394938685076971923836847859242104804669951824919171188338685050479413119881533578344386875902914085461534584114459927124202799311591423773971015749662290966739244856379806047413496574529930513600871222272000,38167608372421808282671771359782860616711184529559043871776288511875283101434935916843932854000858294731939259645458992498709850250384990308845560803812739481107659166960929584090254223457614221217847653186098740697039060001539237721525356470175710121984,129581763302032248158080841421298311899895391958506285137492382533402031386788277393765908077869915078387542888121587524869586351350325875116731374795981754555244165172336660417458495527176006595033759652294262562075539818383107546232767640268257539486208,437813843653304677226296196184658812572074382939476313813696272273403250005642358715111186209339432636901355307540192695910443244246335599793636833681796271668910109554235084101651565438506478757923058935164796456010035942949597196550721803758122280919040,1472050888885176076980676508338956664263697223834616620273437117903373432355177740091207755527764840154317514754420891558680096181658885347162423541698293582679208793598889275968438811575641335127118539162015613185820013136611426969527870175424106865907712,4925325526278052840864344509480116884568040209713916100208297612484497522300281253787605469077067893062295040885367980302862743509591265613594625853320830171476948633418612793271071655048941831723335977140436814867724437674701283393819773352904135371501568,16398981538808413218919830468431795426324910866931709232471459894324552193301565778213030601086951155701646866239418552095083037207050117128524980083179689164065201864116552113562826435406844249114908433547274603893064544717145571465337092997983878276493312,54332497219347489604866865357412753527057430379997960342183491401119018073937052629735349609396935936485266345714690581604471112908284963938117562591276566873441637636478610039873669212750671698250586611949437434569559049593001050740369824053771056645169152,179124225877819139458393608898415316226460647806429683855846571970923966091457079264890443718584747790934752227155638935150400478803090896074565580764387253479847771853725353771613989513253408927950369392311208283174451475623743996965734302440350140359196672,587613635625541533880177934692354359763372553523465318117468645302721126989065966265699365114429421446854828124612693032676964811466902839236507061779857396685032156258895439009101652762395320922909460390237437896569389210044197236073021350215109011753193472,1918064817759548093245675261237979878029221306473877925157685085893006723987896179429706932065723319075018695691569494058869631575283511654502205623931240239185096166390945688606688251001356701992120893436057488442880091726891886559779367426317477571647188736,6229591310482611215250800359611165966525885468280851308039427630972670252006746719107301892109061647029762570644354612657965841217564990485345310970176746574820024923575932054892268854965000738651006426357545307610931111790319470326477610584424208678271918080,20131293053290559875609251441449884896107117627509397005572894037193137154149772601185882486196539310112600372541870961257602925964078158990912580556778572875149177561223159876367021110650082540514670169141248200263919458900346265687528762568325934956976855040,64727761861224570007793557191854331427403643603536864428632571240877299097154724427979495760858662949759486047550377943737130401688679917063796052756306629877345445948620927479693696410941276005351177268821293638745539420212815525557275901408202647780888588288,207065273243215026226768119666914213918172674956573983793694416482557132479243337651299183720758007841971271097923968871535638632335391656517679632633475312204191811002625230755464343589199864830025502057688659078249901961057360239961762291217473743133727661056,659041335954488007529875183732536873795282714407448054520703765697713634332582226606838628901215831035025486556245159330915711927602782973281292606335307395976358663899879224481015692607023517028933256023230434226437619735108477800302867475112309800467893288960,2086880983951035347091724385876051069911748584115898039896604958715626798087831201648581620184913528540508304983252290236879922853446834481059599423011100187486839600228078399196841589981260964188595780011309132432324670634812347645821772969112225185248022450176,6574356889822133866646251288306500885879932758539339721971177336253362027950135543550183774599533080883324277596751498948009152338767683429385518110572688550523686647278055816714549561595210842299606036352163815402443058374045861910419907354087849111820416397312,20604892585065626146595727672940254450696383508711224103971434413069062768820745628915844756904068223866583014396867290928786719227437230552780912767666336381395778736124223704696914042669168059100938622262710248683986813990316277705482613553323035564737667215360,64245072745261361647171729370277184965032388514368255238895415233577976711046424844871231026956284032197560723842327649337479119158962921617545229381761994899791220003645853516929312058950750853426052373370587526449107553811735029400116589889066896564395822997504,199274893330196155980364324936166553532798409053905435283760140614021827355347158550576509973186605974778688716682195249926207422386015917892924074795077704533257616178456491695737555093253991123845409164710454470942223648411608327602924475841744765922708283430912,614892965167064736901022505648989514203921063473755606530343635207203202047093500659787130497964619237625223727450566497722534716309254996309190073408801703958385266249572848147460823340374011821589389597180139845461163253716761993701718343783367176292066795778048,1887432908449178392787899427007934718969442914375389814135496988888179128273753210234873083264470577307026320715185501757622658546974641184491461475419724341669247841446225176459305564535616392135082868991878520703995443819988698087218562804851611197921583748919296,5763143756836016613005692911599634543861313876041212524950974037499268672983900976625051596587546755694520464216050734831951761022675148321295764046545108793556727650871179038767693328467913766092618562240247678204341173238023506749831646957179751834066659237928960,17504680071881264294090406144836553319340213234174796856931888068152147967775820370394450147184363217697587793789194462144559156183204881144646273519979814733301741762304917411020281350192822347036935892014430062328417731787400812183372390438188595548713428376813568,52886710242908312273484103646454759528047326777024830710512960388784042918538568858479756375064409182872775978692614815603522661941875157740947530712722165893139983890741426813282351829921675543030506891747851983692061373605522702652521665407633813935468347240681472,158937883943586624552460119739761319801856673279223397564607735040337257566358832385458726211073650447158875598295112577696506099874765734354774730244396955501685341823915966596576031659869678136060563694715688405710719767283564945590569530200236952971092500596648896,475102853123622452534249685993698565966496995455953205454954677947913651235724290963218840401913505706278249747407933368804687375264858793213110689956410303186861542018082774036882578622746824450981238487915196396575283108709396675933291450010522144944201346805166080,1412596160026572607677892937123997789309358581584703516140757340653444695778901323826410673458325332450928423301580039401109034301989777876175747907427999218342935906894181997667097877419249283912552485984457499056700608662234527285843087061636361080256088126235328512,4177432111980934643716209376235261795373712236119068984002363033394861716957934745694025573162102589230424572888719587518961686916978901100616339822314638576117369057019401204917279307475210836969842292992187878789607049371461691743962394687928626799602589176351875072,12287190619320953451945800436741172234402287083257661765059991077214607954779613899467291271282329961034793581665588707989717749237634504457394717526825414151063124543125090106596363022259345888157609600840674176369120971318469499736366669871448955601823003537999220736,35944994257473387867870958083553227417769159036171371730092258232912166768069543388014346376589836769639374942676416274625753537921386473793770752747519592936866410861576463851296958761045966309560701270524369125627084334126867896226166245166279981433900893731579727872,104582176318580750344875056948391407817597603213050823527349888930699106241797996776485561507360730379800391347727489820886213930019892708117125346938253900789596458973105092319831882885127244454441314161217487754918963786515683829444203209257421310353141314155391363072,302622465729274347788871353089031280168726462845707981326295738624748902362064955682844054596930227315434818345560408362612628013305061075239767299863041451114489556986892177235918590500000302459087511589259941837905818109569216544500108846146997012487671849650178924544,870882741803382026485800556673590982693731684060635557870582504845722621350517683328117535704563156401600276897021609586625025971838075470908653598954777977645251975446712246460789161951220001130347756629631129921844330852365679143621429321786491979476863282623113158656,2492436028641785716870648227541369773267970282303416355920848097069778700073335336440583510188196744219137263597262327534832090562700166633400851254873541656584402372593572254093021875396924896982295995869626038842094634885069048599103951315946762861439914962111395090432,7093898302116907708752226649671339193094857528967004016671382265661904501875972624684490726445346955214213796541574271671606803051936491607460123113137335923909291403385038939565229375668407645816406847067960806717761792259647254087307482401986057295441249943910232944640,20078593015205134566965407004630958101736227625260358334543589850016929384979226809691201225743049425686038136037968775576720230984709336301060163883517016706407028280510917635452079848468840233044765014555566193061712047283414815154501701089560638681641684488563218972672,56514482043736927356758591552843934019046811257181316227963363787580738484969290647728886823101323454486262356747998038372630633346979252305200611867383316575617076173512878865727118039563516859789264670329001487548577383172347225296463542723103169137377078303420953961472,158181304830199975776100487724478337119099192282644670996408121716704996873403898725597997320352551050912831238879985226518918037474729692407011068720047060514561441873410503473952443328619556365169984853662852916906889748668357997606798446795480771004694855075981464358912,440261035350443217409863843339608295715353628154753509927647773975711443519634628306932859072064374368116968150827897615037054728368775949551481710632801381125652453564259193781095185934974417401206155110691974590541206852376134943170860097120712609617369498634368758605824,1218472709505515137684237365352802939807708088778331411750529829786514244914225287264060393343270061729974389597568557526370840617808553221806537940174477826941794883967890953595623030925078088019855407481352241436280073655402291768292280309275704000753245035745049491496960,3353224134626427561602500336715008402681810956297147885262899879089906453754786267865646660435022874880913507973602724019241474008506915219304590523767700916339826465526865341795907798569240790958034878418053835192178240321920788927990411981075447742791980385643378916701952,9175745084597358951930117690379336625034795081384012658745260551343380212515132737967635576883932829454751676941147754471921789138721984364960384023140774169927970974789155628959731593868064961988619920037076698988273307138965338399342242609709908926770809957296826213134336,24965647424855407439054173042265778101544366581128811045507928323450969241318707642063217161040732341132775484039186007170472533843804281904293022500631814434955382786346237635782095760631105900050656504261728660852003408315195365787355709487953813119329408926295685025112064,67539496444757926887985094577625347219510117605079708497014195552590275466317362738797801867563734306235828031563386867396384978299882344967087084136363275970422559734683743524701089690196814865095540041487569554808695272421439268471784670697553693468951202904396690035433472,181667420715627186361155889377847901528202376748551738366414769945072550678383039637420951140908222312605468340274911486496053908673338966658708996366793478817966712146172097559635669417370850442166701983850482536714245622768996330057462711072249957945806295320947078028861440,485837778185234598008047329231456703429534389950117884674796728924821699006612596862229431845017876254079466276320620383657294192289674021724912711082501926379062553412000912852528379997815887083073734822500147409555281764272698125513332089105192134906263648337295367836930048,1291788063018520153301081927077310004304275962846263344572453627955022580248950977550690142124696083589054528767188847447894258374293235714481763515447416972596749910893575342658410084691084706826419048654539880286907249317390964622566475929638048718115281968229409633649018880,3414819546867518713278690134703214199127215457980962101598341947853832412838158641480913573155797547972134821750616676519004096736076345447946447110335930075601649363344324703080562271930630954323661806570647712035830122791510524222780139186521878433180731589689485936069091328,8974525813637765107287673082524882592867587222157190988241555481509389562178326280040352695554457751341358501623842473146382717308046689350648039356716238979842201905789740983861425691151769432670412553534260950605086859313242893529676453388159271539227577406898130375505757696,23448403527750373129095443004411432533383082525418423698669842620222978973303430111260961275873730258961911038460254503999725480240389502195700990679579416378813312306543780685848586386110387018903205048774489692990037089809061762959785187678697998948056245653060251360846786560,60906524819655078875532680505923765297058227545893421068277224406981412749662967610365059198481057853267825973139797807151913132384606925237895858525512965472658682264543591730381095030259803605853008239242528731416834900033071887264661045200329187344232381755747092246180429824,157272899397353588589976247319434242791145489505866105743234706387143133283285799250308081773050814375059489161480146155129512469442515841759994169459107134303053717234563008960190309962261070493788291409393977876572299514956045826691105421339609848330174331307505273086484160512,403714417872336404060239163898585996924560841372664618469718264018208938089114711345763442294329454207695783045223256128541142412530128080217993407941817063961245945835735863237828669809698192568141909919768009704976068585858241099011309294462780992715714009731052857371470138368,1030186096982198156597569536069576813767203599449848694239057264154362505966864751540438614721783871539978786254615966842823059214389103711984630142171996557979326751176883015266079485716331734055465567120715845854275826287438987991330233047498116216198922157370838183689848336384,2613177658333774219081095033311991343728597775376754398810043092195100814445806773086244732187905780742225685425350449401435131647445977117987195093300576362010029249903131248593730272371079084995281026247989471513807057270857054911677103252210530936133010108620661626863050545152,6589080123673085363751781889577721195268061803680113415997023443302329075428930104660496912240414911926169321452509883390642032292072565969086329908401133631270753759032020219753290506199971934572707566871236839806806237050643382357530972817447430844036822922078346519574905356288,16514826629314830512165219226086450333689438930421778711136915708255540891507708045692304793254849168853754812355779312628044692237397553540094518205669095443028111224443781343471422420434275255008219258396082301137065950675725808540289736207958246625658881632849659589642825745552,41144085201291778046532867104063718359402603513012358821954032024284247339076229484614251032224345400215474801030522137742287056182185610689076361272379054943140784936615445138898614834331412831108625984976173851858982547045569973158738632134952984646918927781408690909025011367936,101886291164336953006639271710277771140344401221374338646984277738818921477963705827502713107275740458954147036725079088055347568005714599052568540577654385590662444249590887070344533569532571041672331305366914363423479351583043667799207520705318518551718195056060546664983130105856,250778236205784480325421482522335137530564709417269843767428191446758033806268742028021833283035196896702041029997181245237536479780794929939085304343448756126289777192008984169967325167030902676631804198519972849671502201295565381367648085585475806162699152066572324261011078434816,613508359140544353433822548534252557883011951005848497345045212743969400255633624845397197430342626340826941707686475303539538669058393296712551719840741980587301950552569719623874811296488086853613214866173610747977957845188768764268246286205409249554929700475697764392655158252544,1491758385067669314654610429306072120675670282256198978533058393394064917805589428645254875299035619933473340416090926579821085740835415281344536443736934754772901436364140879340871707566910597138701970801951178150870241199967023666471993354114929320152185297911275510660733201604608,3605078064520503275495527487619209208989576174512386682537682863195739217674378487351471983050072336662403379047823792079073023216633019524822387915731616044789886554996794381173911456235310141409083238199848473754758060048923740244767653761521250603647706281639130439430549924642816,8658843116902414908161724563319636567214527289445584976871977945665200969532195463215340443803131203186486888297752805316530856297371698842922830541252413464264356921981760856095160073459717742672456229420949412429184062209338020113059907473798172209723741597586350042903576604626944,20669259608509168981821798142471732123759962855411565407575018022939149308515284666382152929078428058332308714577688426273735030885248749539573801476494721636943204408766836725858237385435835404829980777426647295840281371833871295558804422109489302129391419048156904910075471459011072,49034377989439577496262152713073949069089352051668566107347068668766173723008359235807324215032961338506228104855226475459902108662496102260171852343709272383539003492835727751122458557091777197276782604622723497677821862337985914309140800796764524555158862822719780699060809528926208,115605363591096546727414764750597460080241689770802521488101270148715372086427734393847990215506153744492758412909521643585316463360768313320455285411437550745130491511385285307492237765676653406533459239206736723441028178275106226141167933429633252331738766987262956793072115643709440,270861783520579852694891546672731834739312803879924090138113643673929902149310308666761921772242719131406783233281946380812360537646357208161295146755247336608387755517454382611064132361733844983999521638684988968843395535811781708308725356885381430000877441166808795870281766606827520,630668015981078988043851211310701926324097306881009182512152355695357441646114419974951466592724065372378275411448661489529673401192963305636010534058566176101383507982170334059979915402812209984809383743649289497494961551712971879540093534252328919926447383194486707116824329262784512,1459244624279674825646809793769806762206567448273092364417636133165739461673296265663209086335915786246308172123868278849824663451015563413484888476582371977123398319177411384720885014046638728878044147169932740728184082637981845768399932137014182037526529921499433927318720236024307712,3355216391530700221593398778848405225007712441623823698255454105286393322019366289644535253274632714046256739987687331030768881355700795562067342441198981085631371036213348299784052225145775093330658456382971369031203625814456263083492485455687565828212660888795302204951612360622727168,7666003870508537062263456667276087627515144869733427964052197509793918058461881819926938426532283827203620403910548346426498338131198875325653881988672656927873256508099601112572692344205579521212978243053281523710739431251819751329809486191654128292142935425322298416936641227129196544,17404619996556622317747368284222333102162761287256361658883701896968768474039854402515022157205591735767669162668381633788322427181677259163891175504772953733874004359657962902206412927890244218507722388530142811596582055426035452481781686750365808460892102378499026267481186857360111872,39264315527544481601066561543789615456447584981654822617461274168530692994428711652669493831244831240426664030764855420320466861456121692398462200037413460051102332029900131084479468060375890568106223367536802084276608421571385333493236368056186808576497527948800757598593408195463782400,88015765453935267274723139239234830634697431531846317860080774146251997209717711898561055947876976930993848987197705189573624530218543339306951048234865672157463943299036987533489697754542653210937429669437388148441513728027502253584696472110543457118005892598506288782272884328262457344,196039172812138118058706848530913857448362002812109393776062143503480745237912615285300533933256419621769704058271677331888096817562488441702756322841083177786201298192792405374049242800490773305310309069016699129739037058832362379483778424104614866039403305733764811775880828678052884480,433846623144676924607838400630448965228290653996671084598360524317627472378715188077861200696660709344895653386867568036944294901767790966478081351091766972162827940241094106134760450713499671160675308030943300704508273977635161554899051316594642492135021657707750072388722081558492937216,953963125999393458116875304363254906732811249344076404146040140065483452309579060395047403229024261773904587211562230477923429774304108104990535233456576691660755609216675828402436403928103652545278566787370953716301713410614182972645567756152179228594443199226809661029692177615821668352,2084107034205975790464999050759805510591229482458378287407902106024075566764083358745498546401841017172448845410823191962840434224701166297731277347252373161699455449097983688742713735141715100814737083362269848654414810142863749048009465045685957631760434562248557376558632850883731263488,4523687499515435240298792509053296385892965864270947327263851276597799699963065423589218461355072263035669304396539858221466413221698099469744782058493937243293194108148391466263251852060292000921096115504713573929323812202634140027748016282933670198690302654887940084502534528147723333632,9755295298858156096838898136037880212520335384002537073635221261254702016005005288278133044743331074903369089719572959088519379218028377303018534181659984712228053473340948735821337933524169661172294343297873024501468045255146069692696324819911019790755099345568156154708844997028672061440,20900401041422452418692594393315234665450593352102769149889258317675260748187859224677753534456620857517828409925464787914060813837566464399842011336952180993033033881528110601401292256504177002533497099574441925375903601255076543348044261914796288567956824774539692503350613351951028412416,44486306006798135718559943138717340509273486795460331061906533218672253758105112067853984404528157629972157530515355259787167743675579643582270348803980588479793562417116320895780301335549788576761505189629293968706095981288814051632276119517470808727285868305860562681040630283222155466752,94069053297417384263053325214754047833135397745313411780995295489797529936033725553975844547312699562127690943371966298535432052996862865753814189949032940601700362309202885708117935883216020025931517750524123079538860076453614685016107399802451974253519258043445239312066462809113513357312,197609176538948286413511572094671595390696919668079010893048992524623306775897296679646395794912555979682009350680896647888695292680566620394095994708738905295637044986378147151523799436225498763619162752698142161781920038490586123415642353868050141579973436708463639627101844816951290228736,412380937052888345607018095359279629660692047088739832624918117459243710617397549505549731741686711227676586034220254248252737697109874710093277609363846253943487846894790451373412622391185351204860510418889500970000885381379578065085108893908764620707871997193862100767426877467336712200192,854894358479665330011403157506340400374887633418589138466618227580809100504330118155301643755879069740615749331920697533998826666098018161097514499576031913011344609014111728732740196473428712292335022095064902774729860770603201325979507364980565124152920222842731215624178341734444846071808,1760516126345153035090725535210227777811128541474189612168930085663187594961851025734916280794580393801236761935048989379691074652322121239581979964498438098966423780983653486093332859166268616401571233591325613630629646299403970529447238130790656662894562784369984533382475753039135477796864,3601410033052820817538286787969021252256186688829253095410394623905439537462304942654670368990472991474717226137125011363186261901952839574771327147362564201271541000084521220406535681204189541505937276154462995517370062490840785535893189653278888438384321444620871830761162927282824038404160,7318153086560287327192592132332890918448334079318200345046270766232941654278474597859643440254828101095418424588601996289724378699709456776380594995114447619557983141269702522160347498705221459021821911440665755141747967998455227072638869467118669791954057201074352785752688037886943112294400,14771280715146073584718856276580972126617300607169788202927852433942489710332233596742580236043241204568031021039943023295052414990986652175921047781183552256137391645595421944398372401914288498976879973559285370649160759840710271109250229745319205328898401231439379587151575506413422812364800,29615152423892774803761534326694374944679228015587731673446564649397662050604624556215098930490039001343881705991284282969702667236573189062027641140300106846085347832672590945058440757396034839771149136951204831420887972573668376273959034920262091085657329411956454626833486718625880818606080,58976691342940072442873247867398973156417731741478973898499975407735347925704677938231171441325158244874069689720933426255978535817350580463123545205785939348768396698135904331239878280162426730173740508850400418064577638324762575539887261892982810309060756531507047245510262433353294314999808,116656498534234028723066647939362778643800890688770155386173234402190745164246135068456580512020312351967315181484629618122441445093869563400160602804376698949006520808949468147291207105184487491991119584688032250081050839109940826410348522280880907175295952385498217537920941571069712314175488,229187588344200275669636410274681045596457877850070495779666409921025672882689614265830572239683088972484282506895368962882330882187523222078307095029038461770772205140201385372675397550714154120750025920145369209547730184145138463686453458635139862656566760071210429822184958739647279831656448,447217141704058589807717882140490036898264260575911049293723591581694694684583791642040499444990499455907971705598795718227759966382114924235986780782680061150041555701367613788496003776644082628117307587491372109364140492946651590714316921269363189623414945200062593554945035351427015447093248,866727507868195160048065146328449937462895952334888306300683504099093662177975941041061177995006575090069701154281242374298828068098256672554164644571953582275629337444957976411208249716289871915181753923028192031380774017914253908095216608740547215475226261480584776468224551613442358251630592,1668303857264799217039480121775094842265086439716503614345680222791248702143339148663462617081437243965666322060053842496191720445558968443347474322352345940716807991913278497204721780107471635952713430808099096722780556757931255372650128967795410159047101337516253491898772900259687463025004544,3189244735649868890780074437402178949886997620906952230465988383791539430247417645086172285562150699080434518907452072400336898288528181668200129655575615217412453345774969257418610012993117861327366931331233129092632111037156038450370748201864936307289465218048620862600631279728446007414730752,6054975468223901135223684642200117272833095051338946066150250492535097880699034010931122938229443956565275389842020067282428212677282150608458892695161675304168817916199292043355145184171510171141139947375357678518430707302875428756802015404125803932226446656571758850474594766400950263296655360,11416698896018280815488832250432821503911617636267979405543069228181301423722550766087630651229559769339012078413676552900448897446889673757126848596288277778701211593149823104854122837327778733669854514723729631764268479624283717806393690452417676916726509145740980272484937314625334378415801344,21377855705344737195357952712416208364851491630435165315853450392399572042933379923103318065795830315314320532535084741962460590747908033346749546982287494564280712231394160453379224595109678938477401158277926911000001350752977721120833025562900101625323152410570666436199690325729773266190520320,39753469098161758859308254689611611272994949810210908890897461484307095627782562117635155663899772318202108819781066295431004622847694810458427360347268089225823914014845685897260375003204534446805251448222350722502597094673508457849743280413287572187900180071099237090874474071777045501756827648,73411675081052794904806077075560889857519908933227107203045066381023946131374673903029523368259976952830068281172744933417495433165025098264123952041933426682752755372747547500126030099846194667719219068516198457566429099098433268154557006433263804411391183816602781775471671594197268090307403776,134625212332200819653271748335694282391608201291722776279641850518501000111176227949831589033656633534766823034093458674957446540254280787608282077953457249746442668459036044548086848722335459824973583134302830702033771255891448070255471255870408790868440200033954551069572777094582411588389216512,245160695710921106276031892537374252305278337086375735045907557683726026864406662216510756930667020340973451077144838093469202641876620644266912801162213739332480417031798017088857456127861039121987928416294383060287150202567291908991477648482697947332612870233367575018541129833835745520978145280,443333475550151874080237225877352746713938559060449602383164258532484085454642905942246657496177240951368626818729740122437658112237296040329423121176812443446202093856689701575051256105991747529275643793186751193574166849793743322764382702174287477616539577465166207199127691005110967202985590784,796081543827271525286033883717874599531193529443208577464355670384706442138139276684112625774884943863233968635357294392098182293161952198723963194320051692194780215481569715422611869421925261274585617627738255239375677128460354650514456641448362590446331227100786045930588764468716689917093388288,1419463080907899452480431592865811125491800857255182785839808547791645663252378899301923322524242669674948787344256914271295770777314282254767330162049374967849780376430071205861456194582326972995396172179824460010282887849951088347388710893892562817546316873385033968327070898342516996473888329728,2513172997969398479574552911009858865611329241756305213882263910947632382992845679888170358725326224487892217712387687912845016417097461805924907441913968615809768678147672302116139803034955809854577357268776380130148802081038309668926846412301938173807319004642487198544118334363177641400380608512,4418193008899712712395037091679603806175846273861056177630906498291598225547133797245528657232347870168075980821804003748567854953033438392091714579144641902288763082144479318183388953621293121364274474243858273253209199957382375386115183429564449332995718734042216284483135472800576453291120388096,7712289695823384910405055423721022848008077411235062359154235574069720649124463701441415185818387095028392176995151240662662265539546153547644439620759957629215585649407075736926996799725786188030098721694832547617557886675756439824753484507859686176239682341425326766907749450973959671072710156288,13366900976940801103133089351502438285887306343719406053379223114617308342107339925554717611562049222944618031693389375308212195614557810458994149938566900700113661600538697192926977368551160778562614081097463564860222016395104966524001882797470057263855181170459882272192654869347800570495125356032,23002727126957893325074081664743498572874293580898940245757871345267229230120864783077682561356617581587171147279371221536472614655760217988405077069724520091652117281013539553329446338487296610652124369049022386514765408960113141191643911173966461049135597173566952112759536959203170138663045066752,39302632575539266975199970020791307170938197878070983429707749420594020791430447081171411176758086531254610776354594758090463478873712921737241441591685873445131416882242861966599238818498287861944384821805387066399199887085204697726372604545286336554023418108604473348423264275776065302716523225088,66673039045502317494885445605411209686976810228373203620964825031877855307188439196709020867690883357182971528789266953911977445702504494415528898125681936278591835252667080145732776544604426377136411752344727782880910746632819619556949691921148712454968250466858543252961905530892608363822173642752,112294322930236884470474898544211646041147189376244570888886287105577063416796165593315950319125106754680568909154197597325036304102305896518750394983975386656904703128186060224153476376786141251515203865496746124295018203469317759177448222280973385419243067957982833692048279267045521633505695726592,187774666501075691958014760246031826267911735229308033463702753703070813777648186815484913498185311212315515234343351417178620959553634305882237416978148879985627746363978739844884545541089585833265692591217186379514023129394105714616022021796038638732187798550638625551854785386392085918687231373312,311731451964084329750413918720959498868058426964434587673638672239875262324227420365504706959915722655898219254701579502318123289494852985185114469204726760021442234322024903724348553052108315395524285121403737208532015073889672786205931254580088505961275105862352853402604112021946244504175045736448,513785110569212590991199627123929020898111903609307204135873088032593843308764020361247208872774610629552243592732145667815119030967116617740015928649704245998782841719872823398518202022977335201315632488589451987551848179086176707216111210818936340986783448988244322590495062184658734497773178503168,840683626338607319037752450287707555205991704021316486584444063127486024438675479767840415302850036926782878373818912276718739945099641565930995440346328874874940219468390225703383737344557446800731768779285075744925184039715138111259327030889817804578192132116988173965964969147303294874136549885344,1365610448428766371693402104382804007498089748342720568750072380142565011866401259007607370895872149998745962888261663399120796592751168168280808588499879152894462645412513113424436833902837592786115068663820231232962874600200803662695250505347024326095010065850248638315089197341916137355555604283392,2202202734017926005583738959264587856448878489936371365080586287011250820954795040289159704662621914620963167403934459586783046804869579676194995412685720369556760775911014603920321319372899738561657767930302425241508746505975669350579466659207116108030919217325256192310955359036460784195110436898816,3525470777853365828678798916794422318777492862661883075669250007728250855820465314672344631776802941768281384432373197827596839322338071112759450651952580063717238711710445783260793956400549726658400777179493628935813157892248674694736261910705589691157061408711651944625989719888645451250486502461440,5602727522706264773104254111172731619175649604493323268748478983853208981041558289335185305959089507891050121058663812111745246963143558161109252048557907452885061160654298750275690343585876148953441018172566126611933484136342056323554301189052768747806987498203980659325519661752098674514290714035200,8838889973111973249968926542241904430716991576404585975679459863449044733205710432757014817884328485202296609032881076752348037225355820251886593348747146258136722825622136569748623438723150755624611064383669924365782768316313857844848997363987417924385408593440155294815700905251013935759088099205120,13842201174202791246801725296023415517139287956398564343726649030299627496775288384825971874630533267827308686413073491621158842688707714542111191915614617950938981971863955813704564567507978495548460666762330559003721117097728908706978977860650208313460503560109072754714694045672863543644794589634560,21518660200212012448092286570979565242465984553807543066260686999675117708411612523886353409913915395599126302866083431441327987419694104983590351511078446858529800494016584008439314709023063155729600789736364362072239687557518432681396477089079919522434873429045925947030549456389885296679935994990592,33206374397666385939530879249795406142961371763310784562331709221385771869892290461268790009015532096801983891273983993940206483094182178650226565967777194366046451848471708687158867897251948939896524251396449189652133862539598005524814985640268429541238356111944227285410424949890587913742493558628864,50864813398735669271022555087982322998222338055713107440363203748809104778678873001605417826968845151721564124314774177936893578225671726923083283991825071739113366297566516860600370907457019737662825862404451742028067957866498980301705014320919411615638956030598693578825912898287481381073017315762176,77338705465014964482389946097097838732792809228387768559481817386377476922570097106166769965159963488489239170209566240148391073442682763900561556402990562248640736314549114765921786803484613479211889481874839198615276960413305215248825843483077556991311676632416953959137017573733304370310007677392896,116722224969339135122809117166211640151302993326420770768618297633282847263229398596521954582374510228544102278934372924140440405073017800059432461455166374766276820604475388014490947740440817028777503776614075918263380727192257946629680526449612730006103240706432640613873622243015071167221582873440256,174856301470851645688402232970146975027127773370706034088804890297307949633771175789726892678275024661505725670952009211264524790459887745940348017533668077473303055977079376077608103179517247911173182078011363663321029423973682000960463786548996768025113057983920527742778696414545050782980345723203584,260000409523591262756665876733201396964559193566912092799767045371349165030777641654493754119591886049810335227325435719540298910836125052928227450051539293012134009620089047730263390707341506087433533172452412141994010291177521019320650896194423128981735305929228530929620921849953499925482204085903360,383730058811735612863072418468977751285028491450617458890088493052000257255731750432981145956495216421860150626597524724938317352297184285571957297997133094687082343637496419080061837254733995923490194739755985325732051796590947191583999995840758987372332599217966860240991408182679530892147442768003072,562122246480647844699296993334812636851576276494777671261882990182818110180923099433238474223399582188037471033959319926893549279964660571816994240252820887101944454859218937214586211328701561653569796354537597501929263982899519061959181466432319710323847073635134752473719552967104470447774369429278720,817303018452112208877954598507529365485038334616315428430130843300562931778438542079714528593890149310427097059539833648764172641241014751547493617538552133273810346727525086378457129058486181166719573050345407742625174967924791574407636257123842455459621094507666492273104946596815847420590086807876352,1179443424441043399800671635449529097153921479008529186408555658324589402707647988361519378460009424891324443134593906797956368790838823148303685574889778661758620183243319325080187151236253442707909412004061218636932532344649209545772790199709419182764609494421168228808933457641425321743877219010519040,1689301638484770438611152958950981086244551020691196534134247793724467020154564393951096835858393982241304617912452219502805858533832011292607458595728222866253242498854292995990219917965293095820194132101943685779472045210367830730619753300214961039335960137947234987421491100232848408131280885019793408,2401418575241526246205689223897164427898687460310357423144887703330085792024570618906646892754888158061323738362481723699388163153623915786610661516419386174099697982660661949045167164185946373755955035467445012883072012515971990992173649266346080242987463430850754872106720448992832744856173018844803072,3388080263821015219301507156674727110383084879384784213125840413269054450526225941716900887020461722056826574534032601269697245188755509956605584797695872758513206654372094436238609255673359484856287334972204557408044708168041252954269736954674038983326030930346694642993504935629976980346305114274798592,4744160405427567079705622157833831225233209689622343699975003417662991813855116306485160867924010834658558569737026726844911941843049679578450231330022070049420795981830380856964277697364697617007799966332439798089699490869499967075865307630004671514681586704452188915186882574325002480910047249579376640,6592948375107197607049881017379201268786823165451486554643376400376537475332493059998873983086733724696392733030590268314927324243098761812563133575912028652029479449793268177908408495427107943309085060628090631909017355736633587036453969969992768866708364809437010392519267496745560637215489560536846336,9093048518065555282302783828185934371457807649664340480780669797746380451366662999388119164520601375935367876647818229251529969889333557005912914423843990999585662400198995526796902586842718054791345793801197061363411489141590119425885486704851241041492054409071943348057297331032032518162889162788384768,12446402818976144479239503709837779630324772790472300609369116527343234425874568050328896224713104746016478709270545061083938017230470359578779655720110683963190549960825766635739738601807869795022714810129058750327446629713959734458124822522083294985647947882239642947314657977719246723334307328250257408,16907437794249416355430926258317369174654347925431310145364980193333400202019550695141596215909499406004233111090560834676562735028214169948225050414424249689470573810690579400807160988686036653588754928225587479209749037016428371189028293529364279067637204083858410170404834827592983410563650257414676480,22793265024485174154668320615851411221318359125949562320440990905614897817676601942226125733854680040045307293062026691544851655208519972474588809568830494043948711859340059209405511979386273833722037439704262583965322944495454191769375055185416677203184702522290771145964905823643834810282467577652844544,30494771120347002684170275601983539909220510692307615932939639017276633150636334729989440204163140255058558459929509020802080654231205802957468129148261471789582846312547501070827068079371826922376357804336728803984616218505642196817245694314494829256940853661097210129534412134335701090817916306702397440,40488316369076964120353800794005384006620404077190527331649982409888579812597232163859504544951217735967807442942735440656731386246175048220896586983287739714533477416119866262170803537685416757432415422753670066458492509689673131485345881555355594478393215242795221262972156350859924691823353355840835584,53347622914621968813667344575133934220254143238317917461559259417609117558375332232152861889577791405870971631070620775563355546279894002426054102122004163543523655299968736364770479755225058635985697399764763877198372275514725313576918541347926754688874385502827571754920094521753186409595503584667836416,69755276517636230485478995593482321368330931190827046835159535514177559867864138707110559457229434984050509241244361424932899567223980120281995684175738603636902383509594888340288948870561258512926435708342165284157567062357441342595143059268381992773406857244976264369428160853655460076157148016447373312,90513097024191145752685912216321816191990153770763235112637896318179203445225192746352622239019785601664410135460465338728543992253012339375122126077003543683676949459319676825153481996889474448283333467020595011998361642535250375706323098284376014328970872193273039360268654265674850161798761982885629952,116550461184139581134383532862118481052245642082053768860081828073513906581085115456064149094313680986788896322184701449162152786967379470701510959739199712867360818139846642307873006957041026066686596664142574101032402209979258623802320239273392369493366813363615926598324598863956280573630146381841727680,148929500332510343331588474178475285050286074114458180468627153048814631058650207810114913447354480090928813358539525453652597270166287611376457157066260343448700022642353987512935004425082204785406273676738770338312562049353266463256882595362776774404163860615267302690916162514174056071469956358211465216,188845960840499034244010518252989359546677552938222576959142281569538744867154705860773149397204344562213399489398419927860711320516045250627199161430356404935626328032263850823569202213590514504322659718201274205253317545671189237076166899414375502776887702583718164883573907072990436848219891663895330816,237624425989417866826965048184238837772208521598770978974155828465394057703104199028177101706315793705198351800659348390669091910104583431380439442469441021454739303321799596577035109094415856989557995645795007665103183283653384822217060223606351545049964064307087162354295667544388367929293269508020461568,296706574511448296908895392823138795694435985872291708077031483388840157286799606812243921415467102148673108673941584019414687091680013336103919910285329091307767632148181346129234570953042510571849437335904665440753224993859698952137053361169995584104925373895484744268147890443630852933875531784134012928,367631214125697058454501364871957226184616995501123487703485581246761675260200192845614462148012495316255857010257773842280752955674718734403103214951573330385482510505273422138154419390601102145093298713214776569263107227324590855451827212202653084662874779231384489111757515317317592634820319787604742144,452004996837834369257381384066050179602863849289929133994201240359552757494860055878342336734130034132365962280529303425066430208963297548233204090053195893645491977532758112146793891107999791921114024237822979003397770814301251992185585593901014951275020085247377940418913642235482002536646784761856305152,551463011327441792085179518536756961535092806183916995718490707366123710317107383079230705761745410194215876506591042602215786560715978942110071034237809998787994728266057410747246533502402701149666571312666607514530299286490882267433031092645749543248487414906092535853891462642870367974755784946656026624,667618864572094753023070969193693094697376392557650984527581462614170183287113176739678558940490484242621560783268150482440665688669979514961356702315622214357123030136133769668728727518992590634889041627195033532039810061531914650900623587722112360044551250758877995315035502604351859243672361361100484608,802004409022114334719678295765142922893255152778785048752550710188790140846169829890620925655354168186420113901982496152523867770488721667026395618556788124070872594842188608376016803548599180687853747057173819885745950808995878313335516995250700182013731162415120258757627258326223965246250941860714205184,955999930981683202695898663259214082419712222100539360233015794537560860815650181687155889843437194622325521167033774123868633377181348327909284830480633190099282142889826130896126527468532383645919849516086956650426808342697033861763432678299678163201239680975964411264971738350497235680395511424517713920,1130756365464808359971291371861113386217149404615587165142790368627300674603968917792794021635126166172809551828725536013591007716617129649163252906647514641682276878129267997286648086812692619000142776975518615953250926741706570300079055193549898070452895095611887433222624578271812927535970481404630106112,1327111904486879504901377794303535520014654465396001932292081355839866676921477719743974640205081782414661611895042156459526462363646938570884020424469190305456574465241017137693942760932002995065911295624484975277280416406898621953259251360021869428268269459455769280309040175340915467512133505629329794048,1545506168750082854512241705856252197041837379886285030789453926601706181144674754483551250066432474616410953228492062181001124051393048656487876538936860690358680774594626723267246543024401629356605736928769192776790417085784241628037972787654476544425016269963930041009254480977495387583740503736826646528,1785895855769747286214500994970489670827929932870997182678532499551776111677337658287956523292208781027564196732053984449608155480951115573278596215046756351007038341001042371201491409317850043390304427053898059606599121007832595905058777832287736890632926020687699010937133240998112467533302677631934588928,2047676392661268685686241117233605027628086803878663535149820515756729259473745502297678574936439084708637951378043953986863483134487114700643022148323936421234678988486042364690847960508455149289912863589155885498917332074718365170278150283158967730151642602601757643453230706301149762293484428231143972864,2329614539308735977876881136571979563763553012462626942802646998888898046443771096675364569445209043145608504759491329532045381431863327036273847881588463367977089323130463356134408881637341951847279163320643476661548214108502795110894774721180960375047191454785970208275226666332670767222419854066965064448,2629797042122182043772146609934628963369761533296889361066868098182029846793102568965763357401754245229450382934915748835120658652991893236100883702815117691191328451687012391313754257538505517029192996221633486746400877185663204985242440919627427468348077238990556433075587299291195452196102032057489911808,2945600275921012032734685522686172877691056828357321809030691973901668805263483766362929857558458187381636098457925900967327366562051022086188877705553324443610164520942918556933338370522096235052316834877766472614671037469112926962296179573373179521357631279058249434616176788166667385528508637953571495936,3273685295521890080928794280169229945149639549253525568110776784278467403685986410945454413270164870643634788222182765494386395253690411783638705913960129663214172451748451556070540698851227771226812282487528524801311698590282881840554704807866917682128176781558559151033015568093830410907501679753241485312,3610021837296100704174215339564864585374429393980401923526018092827324330451390283817522809527138250780635393853494933830657806543900525037202487353403893641514603619493279653619472580036000718812993952399521648270123475727945921293564585063203597369005627607450099898921256105199458913417774296094284865536,3949943580863321740506517826271436864730959582665160159297144502332090007066962383558594402780972645662809050151256903333757006841049371664820821401378467372802986607041289777153662798121738515856408611988691205125654175433189055246381376644161289048085341237486838467874887387196298741213297673082572345344,4288235449758780085084422362789442241940530684296630915073825996331989790681505225615434291375545459778959952030472974169012177435687797261371457838795130715994416111720501282107048213905945126458427912653787850788078627416599214718388595566646548258563653862788170367193114513341356323980067410633954330624,4619251975472472756751049037309283653041548946169810282485052073717656779223029438392254220518336137326277347696264593627801674223344153736436476943046703427363589680347795349175972768570446701600472654294884712473496393021322167541796163963181491181732499189115212280691188283189480927976811713042154233856,4937063876925697587547063912111457731822564992978217939972514727503541003725777506946933018520000402532868857186316234707441834235043660749017819393590057580496276830506764623679876543183646464069008232985950553180853168377975096920168407093917936570152557380601228896596938711376126117558133687941151405568,5235628142987010980462360316800913941852966618246755442637000627593370189341434531348203984387203489597919574232768442451417276664354817194206910827739927052691203613868654598745403136847604431038175557393316603201208785080242905588167038550169382884309215875595191207530301506332316910826525723301670170624,5508975186124272557813113121825582737019110880685988419535363348956042904736139127398656782898468498617586734497503848508746586117415344691753155488315874126244940965559516552125098541206109285834290418542009597276445925695105880076665808436626336262638892308886288380315089576277527921284780836231195492352,5751405197936012477251201832281624529433569490420170394477705729578326284277150677454577008406064212694757432887183856864662864623551228171224431106163924364628741693672063524452951126341359056486382569335498829958035310533097706066177081312133525171440861047773306177801885665410493395080917090759183769600,5957684807207891944996288966271900426207853380316532679662475318130707312709809815209946162742723980938041596150131683363380272830124626928174691588838478177037952492188637283579589424892734491976036317100036763699270170957588424752201743694528709873265330797913035488189821967572602732979269478574639213568,6123234619332295970559370536778981827563648283426891317314531677635365765215995843717210411458827637218973964598312384300175919473720476727688994785803729153767843192332494489503031927190155134670663686644797581272101285353098355737549325745082608953511212058601609010799469105229593952789552956966016790528,6244298268882423336259302015291621345301239612756745486175233966787215898190575054147138488662855496884935220352070119760728787935078972272056367927976669350359962135686211915924222515672280964014887248592078160141386582037599799592731192709694841431826946336477281983789784653677939745388720905364267014144,6318084268941649115043752765669902779604925937511569657877145460805041256170276212591503385645268713482827069266778105337225987369490708167879666341621019006149838184555844058055452552980365718074781813397379260861007997848406652174134685444010929482932503020174852696731124324730596553464984987709761912832,6342873169001916568766443273025000331593063924436135196680443689656478072741300511612123900652711596311283701724071226144241851411641714893727789741510169213344005116385197594692089556614547788150860200720413211442412355672291841364265145274980444405423129672679584959498234944801613246300853599317229362316,6318084268941649115043752765669902779604925937511569657877145460805041256170276212591503385645268713482827069266778105337225987369490708167879666341621019006149838184555844058055452552980365718074781813397379260861007997848406652174134685444010929482932503020174852696731124324730596553464984987709761912832,6244298268882423336259302015291621345301239612756745486175233966787215898190575054147138488662855496884935220352070119760728787935078972272056367927976669350359962135686211915924222515672280964014887248592078160141386582037599799592731192709694841431826946336477281983789784653677939745388720905364267014144,6123234619332295970559370536778981827563648283426891317314531677635365765215995843717210411458827637218973964598312384300175919473720476727688994785803729153767843192332494489503031927190155134670663686644797581272101285353098355737549325745082608953511212058601609010799469105229593952789552956966016790528,5957684807207891944996288966271900426207853380316532679662475318130707312709809815209946162742723980938041596150131683363380272830124626928174691588838478177037952492188637283579589424892734491976036317100036763699270170957588424752201743694528709873265330797913035488189821967572602732979269478574639213568,5751405197936012477251201832281624529433569490420170394477705729578326284277150677454577008406064212694757432887183856864662864623551228171224431106163924364628741693672063524452951126341359056486382569335498829958035310533097706066177081312133525171440861047773306177801885665410493395080917090759183769600,5508975186124272557813113121825582737019110880685988419535363348956042904736139127398656782898468498617586734497503848508746586117415344691753155488315874126244940965559516552125098541206109285834290418542009597276445925695105880076665808436626336262638892308886288380315089576277527921284780836231195492352,5235628142987010980462360316800913941852966618246755442637000627593370189341434531348203984387203489597919574232768442451417276664354817194206910827739927052691203613868654598745403136847604431038175557393316603201208785080242905588167038550169382884309215875595191207530301506332316910826525723301670170624,4937063876925697587547063912111457731822564992978217939972514727503541003725777506946933018520000402532868857186316234707441834235043660749017819393590057580496276830506764623679876543183646464069008232985950553180853168377975096920168407093917936570152557380601228896596938711376126117558133687941151405568,4619251975472472756751049037309283653041548946169810282485052073717656779223029438392254220518336137326277347696264593627801674223344153736436476943046703427363589680347795349175972768570446701600472654294884712473496393021322167541796163963181491181732499189115212280691188283189480927976811713042154233856,4288235449758780085084422362789442241940530684296630915073825996331989790681505225615434291375545459778959952030472974169012177435687797261371457838795130715994416111720501282107048213905945126458427912653787850788078627416599214718388595566646548258563653862788170367193114513341356323980067410633954330624,3949943580863321740506517826271436864730959582665160159297144502332090007066962383558594402780972645662809050151256903333757006841049371664820821401378467372802986607041289777153662798121738515856408611988691205125654175433189055246381376644161289048085341237486838467874887387196298741213297673082572345344,3610021837296100704174215339564864585374429393980401923526018092827324330451390283817522809527138250780635393853494933830657806543900525037202487353403893641514603619493279653619472580036000718812993952399521648270123475727945921293564585063203597369005627607450099898921256105199458913417774296094284865536,3273685295521890080928794280169229945149639549253525568110776784278467403685986410945454413270164870643634788222182765494386395253690411783638705913960129663214172451748451556070540698851227771226812282487528524801311698590282881840554704807866917682128176781558559151033015568093830410907501679753241485312,2945600275921012032734685522686172877691056828357321809030691973901668805263483766362929857558458187381636098457925900967327366562051022086188877705553324443610164520942918556933338370522096235052316834877766472614671037469112926962296179573373179521357631279058249434616176788166667385528508637953571495936,2629797042122182043772146609934628963369761533296889361066868098182029846793102568965763357401754245229450382934915748835120658652991893236100883702815117691191328451687012391313754257538505517029192996221633486746400877185663204985242440919627427468348077238990556433075587299291195452196102032057489911808,2329614539308735977876881136571979563763553012462626942802646998888898046443771096675364569445209043145608504759491329532045381431863327036273847881588463367977089323130463356134408881637341951847279163320643476661548214108502795110894774721180960375047191454785970208275226666332670767222419854066965064448,2047676392661268685686241117233605027628086803878663535149820515756729259473745502297678574936439084708637951378043953986863483134487114700643022148323936421234678988486042364690847960508455149289912863589155885498917332074718365170278150283158967730151642602601757643453230706301149762293484428231143972864,1785895855769747286214500994970489670827929932870997182678532499551776111677337658287956523292208781027564196732053984449608155480951115573278596215046756351007038341001042371201491409317850043390304427053898059606599121007832595905058777832287736890632926020687699010937133240998112467533302677631934588928,1545506168750082854512241705856252197041837379886285030789453926601706181144674754483551250066432474616410953228492062181001124051393048656487876538936860690358680774594626723267246543024401629356605736928769192776790417085784241628037972787654476544425016269963930041009254480977495387583740503736826646528,1327111904486879504901377794303535520014654465396001932292081355839866676921477719743974640205081782414661611895042156459526462363646938570884020424469190305456574465241017137693942760932002995065911295624484975277280416406898621953259251360021869428268269459455769280309040175340915467512133505629329794048,1130756365464808359971291371861113386217149404615587165142790368627300674603968917792794021635126166172809551828725536013591007716617129649163252906647514641682276878129267997286648086812692619000142776975518615953250926741706570300079055193549898070452895095611887433222624578271812927535970481404630106112,955999930981683202695898663259214082419712222100539360233015794537560860815650181687155889843437194622325521167033774123868633377181348327909284830480633190099282142889826130896126527468532383645919849516086956650426808342697033861763432678299678163201239680975964411264971738350497235680395511424517713920,802004409022114334719678295765142922893255152778785048752550710188790140846169829890620925655354168186420113901982496152523867770488721667026395618556788124070872594842188608376016803548599180687853747057173819885745950808995878313335516995250700182013731162415120258757627258326223965246250941860714205184,667618864572094753023070969193693094697376392557650984527581462614170183287113176739678558940490484242621560783268150482440665688669979514961356702315622214357123030136133769668728727518992590634889041627195033532039810061531914650900623587722112360044551250758877995315035502604351859243672361361100484608,551463011327441792085179518536756961535092806183916995718490707366123710317107383079230705761745410194215876506591042602215786560715978942110071034237809998787994728266057410747246533502402701149666571312666607514530299286490882267433031092645749543248487414906092535853891462642870367974755784946656026624,452004996837834369257381384066050179602863849289929133994201240359552757494860055878342336734130034132365962280529303425066430208963297548233204090053195893645491977532758112146793891107999791921114024237822979003397770814301251992185585593901014951275020085247377940418913642235482002536646784761856305152,367631214125697058454501364871957226184616995501123487703485581246761675260200192845614462148012495316255857010257773842280752955674718734403103214951573330385482510505273422138154419390601102145093298713214776569263107227324590855451827212202653084662874779231384489111757515317317592634820319787604742144,296706574511448296908895392823138795694435985872291708077031483388840157286799606812243921415467102148673108673941584019414687091680013336103919910285329091307767632148181346129234570953042510571849437335904665440753224993859698952137053361169995584104925373895484744268147890443630852933875531784134012928,237624425989417866826965048184238837772208521598770978974155828465394057703104199028177101706315793705198351800659348390669091910104583431380439442469441021454739303321799596577035109094415856989557995645795007665103183283653384822217060223606351545049964064307087162354295667544388367929293269508020461568,188845960840499034244010518252989359546677552938222576959142281569538744867154705860773149397204344562213399489398419927860711320516045250627199161430356404935626328032263850823569202213590514504322659718201274205253317545671189237076166899414375502776887702583718164883573907072990436848219891663895330816,148929500332510343331588474178475285050286074114458180468627153048814631058650207810114913447354480090928813358539525453652597270166287611376457157066260343448700022642353987512935004425082204785406273676738770338312562049353266463256882595362776774404163860615267302690916162514174056071469956358211465216,116550461184139581134383532862118481052245642082053768860081828073513906581085115456064149094313680986788896322184701449162152786967379470701510959739199712867360818139846642307873006957041026066686596664142574101032402209979258623802320239273392369493366813363615926598324598863956280573630146381841727680,90513097024191145752685912216321816191990153770763235112637896318179203445225192746352622239019785601664410135460465338728543992253012339375122126077003543683676949459319676825153481996889474448283333467020595011998361642535250375706323098284376014328970872193273039360268654265674850161798761982885629952,69755276517636230485478995593482321368330931190827046835159535514177559867864138707110559457229434984050509241244361424932899567223980120281995684175738603636902383509594888340288948870561258512926435708342165284157567062357441342595143059268381992773406857244976264369428160853655460076157148016447373312,53347622914621968813667344575133934220254143238317917461559259417609117558375332232152861889577791405870971631070620775563355546279894002426054102122004163543523655299968736364770479755225058635985697399764763877198372275514725313576918541347926754688874385502827571754920094521753186409595503584667836416,40488316369076964120353800794005384006620404077190527331649982409888579812597232163859504544951217735967807442942735440656731386246175048220896586983287739714533477416119866262170803537685416757432415422753670066458492509689673131485345881555355594478393215242795221262972156350859924691823353355840835584,30494771120347002684170275601983539909220510692307615932939639017276633150636334729989440204163140255058558459929509020802080654231205802957468129148261471789582846312547501070827068079371826922376357804336728803984616218505642196817245694314494829256940853661097210129534412134335701090817916306702397440,22793265024485174154668320615851411221318359125949562320440990905614897817676601942226125733854680040045307293062026691544851655208519972474588809568830494043948711859340059209405511979386273833722037439704262583965322944495454191769375055185416677203184702522290771145964905823643834810282467577652844544,16907437794249416355430926258317369174654347925431310145364980193333400202019550695141596215909499406004233111090560834676562735028214169948225050414424249689470573810690579400807160988686036653588754928225587479209749037016428371189028293529364279067637204083858410170404834827592983410563650257414676480,12446402818976144479239503709837779630324772790472300609369116527343234425874568050328896224713104746016478709270545061083938017230470359578779655720110683963190549960825766635739738601807869795022714810129058750327446629713959734458124822522083294985647947882239642947314657977719246723334307328250257408,9093048518065555282302783828185934371457807649664340480780669797746380451366662999388119164520601375935367876647818229251529969889333557005912914423843990999585662400198995526796902586842718054791345793801197061363411489141590119425885486704851241041492054409071943348057297331032032518162889162788384768,6592948375107197607049881017379201268786823165451486554643376400376537475332493059998873983086733724696392733030590268314927324243098761812563133575912028652029479449793268177908408495427107943309085060628090631909017355736633587036453969969992768866708364809437010392519267496745560637215489560536846336,4744160405427567079705622157833831225233209689622343699975003417662991813855116306485160867924010834658558569737026726844911941843049679578450231330022070049420795981830380856964277697364697617007799966332439798089699490869499967075865307630004671514681586704452188915186882574325002480910047249579376640,3388080263821015219301507156674727110383084879384784213125840413269054450526225941716900887020461722056826574534032601269697245188755509956605584797695872758513206654372094436238609255673359484856287334972204557408044708168041252954269736954674038983326030930346694642993504935629976980346305114274798592,2401418575241526246205689223897164427898687460310357423144887703330085792024570618906646892754888158061323738362481723699388163153623915786610661516419386174099697982660661949045167164185946373755955035467445012883072012515971990992173649266346080242987463430850754872106720448992832744856173018844803072,1689301638484770438611152958950981086244551020691196534134247793724467020154564393951096835858393982241304617912452219502805858533832011292607458595728222866253242498854292995990219917965293095820194132101943685779472045210367830730619753300214961039335960137947234987421491100232848408131280885019793408,1179443424441043399800671635449529097153921479008529186408555658324589402707647988361519378460009424891324443134593906797956368790838823148303685574889778661758620183243319325080187151236253442707909412004061218636932532344649209545772790199709419182764609494421168228808933457641425321743877219010519040,817303018452112208877954598507529365485038334616315428430130843300562931778438542079714528593890149310427097059539833648764172641241014751547493617538552133273810346727525086378457129058486181166719573050345407742625174967924791574407636257123842455459621094507666492273104946596815847420590086807876352,562122246480647844699296993334812636851576276494777671261882990182818110180923099433238474223399582188037471033959319926893549279964660571816994240252820887101944454859218937214586211328701561653569796354537597501929263982899519061959181466432319710323847073635134752473719552967104470447774369429278720,383730058811735612863072418468977751285028491450617458890088493052000257255731750432981145956495216421860150626597524724938317352297184285571957297997133094687082343637496419080061837254733995923490194739755985325732051796590947191583999995840758987372332599217966860240991408182679530892147442768003072,260000409523591262756665876733201396964559193566912092799767045371349165030777641654493754119591886049810335227325435719540298910836125052928227450051539293012134009620089047730263390707341506087433533172452412141994010291177521019320650896194423128981735305929228530929620921849953499925482204085903360,174856301470851645688402232970146975027127773370706034088804890297307949633771175789726892678275024661505725670952009211264524790459887745940348017533668077473303055977079376077608103179517247911173182078011363663321029423973682000960463786548996768025113057983920527742778696414545050782980345723203584,116722224969339135122809117166211640151302993326420770768618297633282847263229398596521954582374510228544102278934372924140440405073017800059432461455166374766276820604475388014490947740440817028777503776614075918263380727192257946629680526449612730006103240706432640613873622243015071167221582873440256,77338705465014964482389946097097838732792809228387768559481817386377476922570097106166769965159963488489239170209566240148391073442682763900561556402990562248640736314549114765921786803484613479211889481874839198615276960413305215248825843483077556991311676632416953959137017573733304370310007677392896,50864813398735669271022555087982322998222338055713107440363203748809104778678873001605417826968845151721564124314774177936893578225671726923083283991825071739113366297566516860600370907457019737662825862404451742028067957866498980301705014320919411615638956030598693578825912898287481381073017315762176,33206374397666385939530879249795406142961371763310784562331709221385771869892290461268790009015532096801983891273983993940206483094182178650226565967777194366046451848471708687158867897251948939896524251396449189652133862539598005524814985640268429541238356111944227285410424949890587913742493558628864,21518660200212012448092286570979565242465984553807543066260686999675117708411612523886353409913915395599126302866083431441327987419694104983590351511078446858529800494016584008439314709023063155729600789736364362072239687557518432681396477089079919522434873429045925947030549456389885296679935994990592,13842201174202791246801725296023415517139287956398564343726649030299627496775288384825971874630533267827308686413073491621158842688707714542111191915614617950938981971863955813704564567507978495548460666762330559003721117097728908706978977860650208313460503560109072754714694045672863543644794589634560,8838889973111973249968926542241904430716991576404585975679459863449044733205710432757014817884328485202296609032881076752348037225355820251886593348747146258136722825622136569748623438723150755624611064383669924365782768316313857844848997363987417924385408593440155294815700905251013935759088099205120,5602727522706264773104254111172731619175649604493323268748478983853208981041558289335185305959089507891050121058663812111745246963143558161109252048557907452885061160654298750275690343585876148953441018172566126611933484136342056323554301189052768747806987498203980659325519661752098674514290714035200,3525470777853365828678798916794422318777492862661883075669250007728250855820465314672344631776802941768281384432373197827596839322338071112759450651952580063717238711710445783260793956400549726658400777179493628935813157892248674694736261910705589691157061408711651944625989719888645451250486502461440,2202202734017926005583738959264587856448878489936371365080586287011250820954795040289159704662621914620963167403934459586783046804869579676194995412685720369556760775911014603920321319372899738561657767930302425241508746505975669350579466659207116108030919217325256192310955359036460784195110436898816,1365610448428766371693402104382804007498089748342720568750072380142565011866401259007607370895872149998745962888261663399120796592751168168280808588499879152894462645412513113424436833902837592786115068663820231232962874600200803662695250505347024326095010065850248638315089197341916137355555604283392,840683626338607319037752450287707555205991704021316486584444063127486024438675479767840415302850036926782878373818912276718739945099641565930995440346328874874940219468390225703383737344557446800731768779285075744925184039715138111259327030889817804578192132116988173965964969147303294874136549885344,513785110569212590991199627123929020898111903609307204135873088032593843308764020361247208872774610629552243592732145667815119030967116617740015928649704245998782841719872823398518202022977335201315632488589451987551848179086176707216111210818936340986783448988244322590495062184658734497773178503168,311731451964084329750413918720959498868058426964434587673638672239875262324227420365504706959915722655898219254701579502318123289494852985185114469204726760021442234322024903724348553052108315395524285121403737208532015073889672786205931254580088505961275105862352853402604112021946244504175045736448,187774666501075691958014760246031826267911735229308033463702753703070813777648186815484913498185311212315515234343351417178620959553634305882237416978148879985627746363978739844884545541089585833265692591217186379514023129394105714616022021796038638732187798550638625551854785386392085918687231373312,112294322930236884470474898544211646041147189376244570888886287105577063416796165593315950319125106754680568909154197597325036304102305896518750394983975386656904703128186060224153476376786141251515203865496746124295018203469317759177448222280973385419243067957982833692048279267045521633505695726592,66673039045502317494885445605411209686976810228373203620964825031877855307188439196709020867690883357182971528789266953911977445702504494415528898125681936278591835252667080145732776544604426377136411752344727782880910746632819619556949691921148712454968250466858543252961905530892608363822173642752,39302632575539266975199970020791307170938197878070983429707749420594020791430447081171411176758086531254610776354594758090463478873712921737241441591685873445131416882242861966599238818498287861944384821805387066399199887085204697726372604545286336554023418108604473348423264275776065302716523225088,23002727126957893325074081664743498572874293580898940245757871345267229230120864783077682561356617581587171147279371221536472614655760217988405077069724520091652117281013539553329446338487296610652124369049022386514765408960113141191643911173966461049135597173566952112759536959203170138663045066752,13366900976940801103133089351502438285887306343719406053379223114617308342107339925554717611562049222944618031693389375308212195614557810458994149938566900700113661600538697192926977368551160778562614081097463564860222016395104966524001882797470057263855181170459882272192654869347800570495125356032,7712289695823384910405055423721022848008077411235062359154235574069720649124463701441415185818387095028392176995151240662662265539546153547644439620759957629215585649407075736926996799725786188030098721694832547617557886675756439824753484507859686176239682341425326766907749450973959671072710156288,4418193008899712712395037091679603806175846273861056177630906498291598225547133797245528657232347870168075980821804003748567854953033438392091714579144641902288763082144479318183388953621293121364274474243858273253209199957382375386115183429564449332995718734042216284483135472800576453291120388096,2513172997969398479574552911009858865611329241756305213882263910947632382992845679888170358725326224487892217712387687912845016417097461805924907441913968615809768678147672302116139803034955809854577357268776380130148802081038309668926846412301938173807319004642487198544118334363177641400380608512,1419463080907899452480431592865811125491800857255182785839808547791645663252378899301923322524242669674948787344256914271295770777314282254767330162049374967849780376430071205861456194582326972995396172179824460010282887849951088347388710893892562817546316873385033968327070898342516996473888329728,796081543827271525286033883717874599531193529443208577464355670384706442138139276684112625774884943863233968635357294392098182293161952198723963194320051692194780215481569715422611869421925261274585617627738255239375677128460354650514456641448362590446331227100786045930588764468716689917093388288,443333475550151874080237225877352746713938559060449602383164258532484085454642905942246657496177240951368626818729740122437658112237296040329423121176812443446202093856689701575051256105991747529275643793186751193574166849793743322764382702174287477616539577465166207199127691005110967202985590784,245160695710921106276031892537374252305278337086375735045907557683726026864406662216510756930667020340973451077144838093469202641876620644266912801162213739332480417031798017088857456127861039121987928416294383060287150202567291908991477648482697947332612870233367575018541129833835745520978145280,134625212332200819653271748335694282391608201291722776279641850518501000111176227949831589033656633534766823034093458674957446540254280787608282077953457249746442668459036044548086848722335459824973583134302830702033771255891448070255471255870408790868440200033954551069572777094582411588389216512,73411675081052794904806077075560889857519908933227107203045066381023946131374673903029523368259976952830068281172744933417495433165025098264123952041933426682752755372747547500126030099846194667719219068516198457566429099098433268154557006433263804411391183816602781775471671594197268090307403776,39753469098161758859308254689611611272994949810210908890897461484307095627782562117635155663899772318202108819781066295431004622847694810458427360347268089225823914014845685897260375003204534446805251448222350722502597094673508457849743280413287572187900180071099237090874474071777045501756827648,21377855705344737195357952712416208364851491630435165315853450392399572042933379923103318065795830315314320532535084741962460590747908033346749546982287494564280712231394160453379224595109678938477401158277926911000001350752977721120833025562900101625323152410570666436199690325729773266190520320,11416698896018280815488832250432821503911617636267979405543069228181301423722550766087630651229559769339012078413676552900448897446889673757126848596288277778701211593149823104854122837327778733669854514723729631764268479624283717806393690452417676916726509145740980272484937314625334378415801344,6054975468223901135223684642200117272833095051338946066150250492535097880699034010931122938229443956565275389842020067282428212677282150608458892695161675304168817916199292043355145184171510171141139947375357678518430707302875428756802015404125803932226446656571758850474594766400950263296655360,3189244735649868890780074437402178949886997620906952230465988383791539430247417645086172285562150699080434518907452072400336898288528181668200129655575615217412453345774969257418610012993117861327366931331233129092632111037156038450370748201864936307289465218048620862600631279728446007414730752,1668303857264799217039480121775094842265086439716503614345680222791248702143339148663462617081437243965666322060053842496191720445558968443347474322352345940716807991913278497204721780107471635952713430808099096722780556757931255372650128967795410159047101337516253491898772900259687463025004544,866727507868195160048065146328449937462895952334888306300683504099093662177975941041061177995006575090069701154281242374298828068098256672554164644571953582275629337444957976411208249716289871915181753923028192031380774017914253908095216608740547215475226261480584776468224551613442358251630592,447217141704058589807717882140490036898264260575911049293723591581694694684583791642040499444990499455907971705598795718227759966382114924235986780782680061150041555701367613788496003776644082628117307587491372109364140492946651590714316921269363189623414945200062593554945035351427015447093248,229187588344200275669636410274681045596457877850070495779666409921025672882689614265830572239683088972484282506895368962882330882187523222078307095029038461770772205140201385372675397550714154120750025920145369209547730184145138463686453458635139862656566760071210429822184958739647279831656448,116656498534234028723066647939362778643800890688770155386173234402190745164246135068456580512020312351967315181484629618122441445093869563400160602804376698949006520808949468147291207105184487491991119584688032250081050839109940826410348522280880907175295952385498217537920941571069712314175488,58976691342940072442873247867398973156417731741478973898499975407735347925704677938231171441325158244874069689720933426255978535817350580463123545205785939348768396698135904331239878280162426730173740508850400418064577638324762575539887261892982810309060756531507047245510262433353294314999808,29615152423892774803761534326694374944679228015587731673446564649397662050604624556215098930490039001343881705991284282969702667236573189062027641140300106846085347832672590945058440757396034839771149136951204831420887972573668376273959034920262091085657329411956454626833486718625880818606080,14771280715146073584718856276580972126617300607169788202927852433942489710332233596742580236043241204568031021039943023295052414990986652175921047781183552256137391645595421944398372401914288498976879973559285370649160759840710271109250229745319205328898401231439379587151575506413422812364800,7318153086560287327192592132332890918448334079318200345046270766232941654278474597859643440254828101095418424588601996289724378699709456776380594995114447619557983141269702522160347498705221459021821911440665755141747967998455227072638869467118669791954057201074352785752688037886943112294400,3601410033052820817538286787969021252256186688829253095410394623905439537462304942654670368990472991474717226137125011363186261901952839574771327147362564201271541000084521220406535681204189541505937276154462995517370062490840785535893189653278888438384321444620871830761162927282824038404160,1760516126345153035090725535210227777811128541474189612168930085663187594961851025734916280794580393801236761935048989379691074652322121239581979964498438098966423780983653486093332859166268616401571233591325613630629646299403970529447238130790656662894562784369984533382475753039135477796864,854894358479665330011403157506340400374887633418589138466618227580809100504330118155301643755879069740615749331920697533998826666098018161097514499576031913011344609014111728732740196473428712292335022095064902774729860770603201325979507364980565124152920222842731215624178341734444846071808,412380937052888345607018095359279629660692047088739832624918117459243710617397549505549731741686711227676586034220254248252737697109874710093277609363846253943487846894790451373412622391185351204860510418889500970000885381379578065085108893908764620707871997193862100767426877467336712200192,197609176538948286413511572094671595390696919668079010893048992524623306775897296679646395794912555979682009350680896647888695292680566620394095994708738905295637044986378147151523799436225498763619162752698142161781920038490586123415642353868050141579973436708463639627101844816951290228736,94069053297417384263053325214754047833135397745313411780995295489797529936033725553975844547312699562127690943371966298535432052996862865753814189949032940601700362309202885708117935883216020025931517750524123079538860076453614685016107399802451974253519258043445239312066462809113513357312,44486306006798135718559943138717340509273486795460331061906533218672253758105112067853984404528157629972157530515355259787167743675579643582270348803980588479793562417116320895780301335549788576761505189629293968706095981288814051632276119517470808727285868305860562681040630283222155466752,20900401041422452418692594393315234665450593352102769149889258317675260748187859224677753534456620857517828409925464787914060813837566464399842011336952180993033033881528110601401292256504177002533497099574441925375903601255076543348044261914796288567956824774539692503350613351951028412416,9755295298858156096838898136037880212520335384002537073635221261254702016005005288278133044743331074903369089719572959088519379218028377303018534181659984712228053473340948735821337933524169661172294343297873024501468045255146069692696324819911019790755099345568156154708844997028672061440,4523687499515435240298792509053296385892965864270947327263851276597799699963065423589218461355072263035669304396539858221466413221698099469744782058493937243293194108148391466263251852060292000921096115504713573929323812202634140027748016282933670198690302654887940084502534528147723333632,2084107034205975790464999050759805510591229482458378287407902106024075566764083358745498546401841017172448845410823191962840434224701166297731277347252373161699455449097983688742713735141715100814737083362269848654414810142863749048009465045685957631760434562248557376558632850883731263488,953963125999393458116875304363254906732811249344076404146040140065483452309579060395047403229024261773904587211562230477923429774304108104990535233456576691660755609216675828402436403928103652545278566787370953716301713410614182972645567756152179228594443199226809661029692177615821668352,433846623144676924607838400630448965228290653996671084598360524317627472378715188077861200696660709344895653386867568036944294901767790966478081351091766972162827940241094106134760450713499671160675308030943300704508273977635161554899051316594642492135021657707750072388722081558492937216,196039172812138118058706848530913857448362002812109393776062143503480745237912615285300533933256419621769704058271677331888096817562488441702756322841083177786201298192792405374049242800490773305310309069016699129739037058832362379483778424104614866039403305733764811775880828678052884480,88015765453935267274723139239234830634697431531846317860080774146251997209717711898561055947876976930993848987197705189573624530218543339306951048234865672157463943299036987533489697754542653210937429669437388148441513728027502253584696472110543457118005892598506288782272884328262457344,39264315527544481601066561543789615456447584981654822617461274168530692994428711652669493831244831240426664030764855420320466861456121692398462200037413460051102332029900131084479468060375890568106223367536802084276608421571385333493236368056186808576497527948800757598593408195463782400,17404619996556622317747368284222333102162761287256361658883701896968768474039854402515022157205591735767669162668381633788322427181677259163891175504772953733874004359657962902206412927890244218507722388530142811596582055426035452481781686750365808460892102378499026267481186857360111872,7666003870508537062263456667276087627515144869733427964052197509793918058461881819926938426532283827203620403910548346426498338131198875325653881988672656927873256508099601112572692344205579521212978243053281523710739431251819751329809486191654128292142935425322298416936641227129196544,3355216391530700221593398778848405225007712441623823698255454105286393322019366289644535253274632714046256739987687331030768881355700795562067342441198981085631371036213348299784052225145775093330658456382971369031203625814456263083492485455687565828212660888795302204951612360622727168,1459244624279674825646809793769806762206567448273092364417636133165739461673296265663209086335915786246308172123868278849824663451015563413484888476582371977123398319177411384720885014046638728878044147169932740728184082637981845768399932137014182037526529921499433927318720236024307712,630668015981078988043851211310701926324097306881009182512152355695357441646114419974951466592724065372378275411448661489529673401192963305636010534058566176101383507982170334059979915402812209984809383743649289497494961551712971879540093534252328919926447383194486707116824329262784512,270861783520579852694891546672731834739312803879924090138113643673929902149310308666761921772242719131406783233281946380812360537646357208161295146755247336608387755517454382611064132361733844983999521638684988968843395535811781708308725356885381430000877441166808795870281766606827520,115605363591096546727414764750597460080241689770802521488101270148715372086427734393847990215506153744492758412909521643585316463360768313320455285411437550745130491511385285307492237765676653406533459239206736723441028178275106226141167933429633252331738766987262956793072115643709440,49034377989439577496262152713073949069089352051668566107347068668766173723008359235807324215032961338506228104855226475459902108662496102260171852343709272383539003492835727751122458557091777197276782604622723497677821862337985914309140800796764524555158862822719780699060809528926208,20669259608509168981821798142471732123759962855411565407575018022939149308515284666382152929078428058332308714577688426273735030885248749539573801476494721636943204408766836725858237385435835404829980777426647295840281371833871295558804422109489302129391419048156904910075471459011072,8658843116902414908161724563319636567214527289445584976871977945665200969532195463215340443803131203186486888297752805316530856297371698842922830541252413464264356921981760856095160073459717742672456229420949412429184062209338020113059907473798172209723741597586350042903576604626944,3605078064520503275495527487619209208989576174512386682537682863195739217674378487351471983050072336662403379047823792079073023216633019524822387915731616044789886554996794381173911456235310141409083238199848473754758060048923740244767653761521250603647706281639130439430549924642816,1491758385067669314654610429306072120675670282256198978533058393394064917805589428645254875299035619933473340416090926579821085740835415281344536443736934754772901436364140879340871707566910597138701970801951178150870241199967023666471993354114929320152185297911275510660733201604608,613508359140544353433822548534252557883011951005848497345045212743969400255633624845397197430342626340826941707686475303539538669058393296712551719840741980587301950552569719623874811296488086853613214866173610747977957845188768764268246286205409249554929700475697764392655158252544,250778236205784480325421482522335137530564709417269843767428191446758033806268742028021833283035196896702041029997181245237536479780794929939085304343448756126289777192008984169967325167030902676631804198519972849671502201295565381367648085585475806162699152066572324261011078434816,101886291164336953006639271710277771140344401221374338646984277738818921477963705827502713107275740458954147036725079088055347568005714599052568540577654385590662444249590887070344533569532571041672331305366914363423479351583043667799207520705318518551718195056060546664983130105856,41144085201291778046532867104063718359402603513012358821954032024284247339076229484614251032224345400215474801030522137742287056182185610689076361272379054943140784936615445138898614834331412831108625984976173851858982547045569973158738632134952984646918927781408690909025011367936,16514826629314830512165219226086450333689438930421778711136915708255540891507708045692304793254849168853754812355779312628044692237397553540094518205669095443028111224443781343471422420434275255008219258396082301137065950675725808540289736207958246625658881632849659589642825745552,6589080123673085363751781889577721195268061803680113415997023443302329075428930104660496912240414911926169321452509883390642032292072565969086329908401133631270753759032020219753290506199971934572707566871236839806806237050643382357530972817447430844036822922078346519574905356288,2613177658333774219081095033311991343728597775376754398810043092195100814445806773086244732187905780742225685425350449401435131647445977117987195093300576362010029249903131248593730272371079084995281026247989471513807057270857054911677103252210530936133010108620661626863050545152,1030186096982198156597569536069576813767203599449848694239057264154362505966864751540438614721783871539978786254615966842823059214389103711984630142171996557979326751176883015266079485716331734055465567120715845854275826287438987991330233047498116216198922157370838183689848336384,403714417872336404060239163898585996924560841372664618469718264018208938089114711345763442294329454207695783045223256128541142412530128080217993407941817063961245945835735863237828669809698192568141909919768009704976068585858241099011309294462780992715714009731052857371470138368,157272899397353588589976247319434242791145489505866105743234706387143133283285799250308081773050814375059489161480146155129512469442515841759994169459107134303053717234563008960190309962261070493788291409393977876572299514956045826691105421339609848330174331307505273086484160512,60906524819655078875532680505923765297058227545893421068277224406981412749662967610365059198481057853267825973139797807151913132384606925237895858525512965472658682264543591730381095030259803605853008239242528731416834900033071887264661045200329187344232381755747092246180429824,23448403527750373129095443004411432533383082525418423698669842620222978973303430111260961275873730258961911038460254503999725480240389502195700990679579416378813312306543780685848586386110387018903205048774489692990037089809061762959785187678697998948056245653060251360846786560,8974525813637765107287673082524882592867587222157190988241555481509389562178326280040352695554457751341358501623842473146382717308046689350648039356716238979842201905789740983861425691151769432670412553534260950605086859313242893529676453388159271539227577406898130375505757696,3414819546867518713278690134703214199127215457980962101598341947853832412838158641480913573155797547972134821750616676519004096736076345447946447110335930075601649363344324703080562271930630954323661806570647712035830122791510524222780139186521878433180731589689485936069091328,1291788063018520153301081927077310004304275962846263344572453627955022580248950977550690142124696083589054528767188847447894258374293235714481763515447416972596749910893575342658410084691084706826419048654539880286907249317390964622566475929638048718115281968229409633649018880,485837778185234598008047329231456703429534389950117884674796728924821699006612596862229431845017876254079466276320620383657294192289674021724912711082501926379062553412000912852528379997815887083073734822500147409555281764272698125513332089105192134906263648337295367836930048,181667420715627186361155889377847901528202376748551738366414769945072550678383039637420951140908222312605468340274911486496053908673338966658708996366793478817966712146172097559635669417370850442166701983850482536714245622768996330057462711072249957945806295320947078028861440,67539496444757926887985094577625347219510117605079708497014195552590275466317362738797801867563734306235828031563386867396384978299882344967087084136363275970422559734683743524701089690196814865095540041487569554808695272421439268471784670697553693468951202904396690035433472,24965647424855407439054173042265778101544366581128811045507928323450969241318707642063217161040732341132775484039186007170472533843804281904293022500631814434955382786346237635782095760631105900050656504261728660852003408315195365787355709487953813119329408926295685025112064,9175745084597358951930117690379336625034795081384012658745260551343380212515132737967635576883932829454751676941147754471921789138721984364960384023140774169927970974789155628959731593868064961988619920037076698988273307138965338399342242609709908926770809957296826213134336,3353224134626427561602500336715008402681810956297147885262899879089906453754786267865646660435022874880913507973602724019241474008506915219304590523767700916339826465526865341795907798569240790958034878418053835192178240321920788927990411981075447742791980385643378916701952,1218472709505515137684237365352802939807708088778331411750529829786514244914225287264060393343270061729974389597568557526370840617808553221806537940174477826941794883967890953595623030925078088019855407481352241436280073655402291768292280309275704000753245035745049491496960,440261035350443217409863843339608295715353628154753509927647773975711443519634628306932859072064374368116968150827897615037054728368775949551481710632801381125652453564259193781095185934974417401206155110691974590541206852376134943170860097120712609617369498634368758605824,158181304830199975776100487724478337119099192282644670996408121716704996873403898725597997320352551050912831238879985226518918037474729692407011068720047060514561441873410503473952443328619556365169984853662852916906889748668357997606798446795480771004694855075981464358912,56514482043736927356758591552843934019046811257181316227963363787580738484969290647728886823101323454486262356747998038372630633346979252305200611867383316575617076173512878865727118039563516859789264670329001487548577383172347225296463542723103169137377078303420953961472,20078593015205134566965407004630958101736227625260358334543589850016929384979226809691201225743049425686038136037968775576720230984709336301060163883517016706407028280510917635452079848468840233044765014555566193061712047283414815154501701089560638681641684488563218972672,7093898302116907708752226649671339193094857528967004016671382265661904501875972624684490726445346955214213796541574271671606803051936491607460123113137335923909291403385038939565229375668407645816406847067960806717761792259647254087307482401986057295441249943910232944640,2492436028641785716870648227541369773267970282303416355920848097069778700073335336440583510188196744219137263597262327534832090562700166633400851254873541656584402372593572254093021875396924896982295995869626038842094634885069048599103951315946762861439914962111395090432,870882741803382026485800556673590982693731684060635557870582504845722621350517683328117535704563156401600276897021609586625025971838075470908653598954777977645251975446712246460789161951220001130347756629631129921844330852365679143621429321786491979476863282623113158656,302622465729274347788871353089031280168726462845707981326295738624748902362064955682844054596930227315434818345560408362612628013305061075239767299863041451114489556986892177235918590500000302459087511589259941837905818109569216544500108846146997012487671849650178924544,104582176318580750344875056948391407817597603213050823527349888930699106241797996776485561507360730379800391347727489820886213930019892708117125346938253900789596458973105092319831882885127244454441314161217487754918963786515683829444203209257421310353141314155391363072,35944994257473387867870958083553227417769159036171371730092258232912166768069543388014346376589836769639374942676416274625753537921386473793770752747519592936866410861576463851296958761045966309560701270524369125627084334126867896226166245166279981433900893731579727872,12287190619320953451945800436741172234402287083257661765059991077214607954779613899467291271282329961034793581665588707989717749237634504457394717526825414151063124543125090106596363022259345888157609600840674176369120971318469499736366669871448955601823003537999220736,4177432111980934643716209376235261795373712236119068984002363033394861716957934745694025573162102589230424572888719587518961686916978901100616339822314638576117369057019401204917279307475210836969842292992187878789607049371461691743962394687928626799602589176351875072,1412596160026572607677892937123997789309358581584703516140757340653444695778901323826410673458325332450928423301580039401109034301989777876175747907427999218342935906894181997667097877419249283912552485984457499056700608662234527285843087061636361080256088126235328512,475102853123622452534249685993698565966496995455953205454954677947913651235724290963218840401913505706278249747407933368804687375264858793213110689956410303186861542018082774036882578622746824450981238487915196396575283108709396675933291450010522144944201346805166080,158937883943586624552460119739761319801856673279223397564607735040337257566358832385458726211073650447158875598295112577696506099874765734354774730244396955501685341823915966596576031659869678136060563694715688405710719767283564945590569530200236952971092500596648896,52886710242908312273484103646454759528047326777024830710512960388784042918538568858479756375064409182872775978692614815603522661941875157740947530712722165893139983890741426813282351829921675543030506891747851983692061373605522702652521665407633813935468347240681472,17504680071881264294090406144836553319340213234174796856931888068152147967775820370394450147184363217697587793789194462144559156183204881144646273519979814733301741762304917411020281350192822347036935892014430062328417731787400812183372390438188595548713428376813568,5763143756836016613005692911599634543861313876041212524950974037499268672983900976625051596587546755694520464216050734831951761022675148321295764046545108793556727650871179038767693328467913766092618562240247678204341173238023506749831646957179751834066659237928960,1887432908449178392787899427007934718969442914375389814135496988888179128273753210234873083264470577307026320715185501757622658546974641184491461475419724341669247841446225176459305564535616392135082868991878520703995443819988698087218562804851611197921583748919296,614892965167064736901022505648989514203921063473755606530343635207203202047093500659787130497964619237625223727450566497722534716309254996309190073408801703958385266249572848147460823340374011821589389597180139845461163253716761993701718343783367176292066795778048,199274893330196155980364324936166553532798409053905435283760140614021827355347158550576509973186605974778688716682195249926207422386015917892924074795077704533257616178456491695737555093253991123845409164710454470942223648411608327602924475841744765922708283430912,64245072745261361647171729370277184965032388514368255238895415233577976711046424844871231026956284032197560723842327649337479119158962921617545229381761994899791220003645853516929312058950750853426052373370587526449107553811735029400116589889066896564395822997504,20604892585065626146595727672940254450696383508711224103971434413069062768820745628915844756904068223866583014396867290928786719227437230552780912767666336381395778736124223704696914042669168059100938622262710248683986813990316277705482613553323035564737667215360,6574356889822133866646251288306500885879932758539339721971177336253362027950135543550183774599533080883324277596751498948009152338767683429385518110572688550523686647278055816714549561595210842299606036352163815402443058374045861910419907354087849111820416397312,2086880983951035347091724385876051069911748584115898039896604958715626798087831201648581620184913528540508304983252290236879922853446834481059599423011100187486839600228078399196841589981260964188595780011309132432324670634812347645821772969112225185248022450176,659041335954488007529875183732536873795282714407448054520703765697713634332582226606838628901215831035025486556245159330915711927602782973281292606335307395976358663899879224481015692607023517028933256023230434226437619735108477800302867475112309800467893288960,207065273243215026226768119666914213918172674956573983793694416482557132479243337651299183720758007841971271097923968871535638632335391656517679632633475312204191811002625230755464343589199864830025502057688659078249901961057360239961762291217473743133727661056,64727761861224570007793557191854331427403643603536864428632571240877299097154724427979495760858662949759486047550377943737130401688679917063796052756306629877345445948620927479693696410941276005351177268821293638745539420212815525557275901408202647780888588288,20131293053290559875609251441449884896107117627509397005572894037193137154149772601185882486196539310112600372541870961257602925964078158990912580556778572875149177561223159876367021110650082540514670169141248200263919458900346265687528762568325934956976855040,6229591310482611215250800359611165966525885468280851308039427630972670252006746719107301892109061647029762570644354612657965841217564990485345310970176746574820024923575932054892268854965000738651006426357545307610931111790319470326477610584424208678271918080,1918064817759548093245675261237979878029221306473877925157685085893006723987896179429706932065723319075018695691569494058869631575283511654502205623931240239185096166390945688606688251001356701992120893436057488442880091726891886559779367426317477571647188736,587613635625541533880177934692354359763372553523465318117468645302721126989065966265699365114429421446854828124612693032676964811466902839236507061779857396685032156258895439009101652762395320922909460390237437896569389210044197236073021350215109011753193472,179124225877819139458393608898415316226460647806429683855846571970923966091457079264890443718584747790934752227155638935150400478803090896074565580764387253479847771853725353771613989513253408927950369392311208283174451475623743996965734302440350140359196672,54332497219347489604866865357412753527057430379997960342183491401119018073937052629735349609396935936485266345714690581604471112908284963938117562591276566873441637636478610039873669212750671698250586611949437434569559049593001050740369824053771056645169152,16398981538808413218919830468431795426324910866931709232471459894324552193301565778213030601086951155701646866239418552095083037207050117128524980083179689164065201864116552113562826435406844249114908433547274603893064544717145571465337092997983878276493312,4925325526278052840864344509480116884568040209713916100208297612484497522300281253787605469077067893062295040885367980302862743509591265613594625853320830171476948633418612793271071655048941831723335977140436814867724437674701283393819773352904135371501568,1472050888885176076980676508338956664263697223834616620273437117903373432355177740091207755527764840154317514754420891558680096181658885347162423541698293582679208793598889275968438811575641335127118539162015613185820013136611426969527870175424106865907712,437813843653304677226296196184658812572074382939476313813696272273403250005642358715111186209339432636901355307540192695910443244246335599793636833681796271668910109554235084101651565438506478757923058935164796456010035942949597196550721803758122280919040,129581763302032248158080841421298311899895391958506285137492382533402031386788277393765908077869915078387542888121587524869586351350325875116731374795981754555244165172336660417458495527176006595033759652294262562075539818383107546232767640268257539486208,38167608372421808282671771359782860616711184529559043871776288511875283101434935916843932854000858294731939259645458992498709850250384990308845560803812739481107659166960929584090254223457614221217847653186098740697039060001539237721525356470175710121984,11187977941855528845890197164397671278147866206394938685076971923836847859242104804669951824919171188338685050479413119881533578344386875902914085461534584114459927124202799311591423773971015749662290966739244856379806047413496574529930513600871222272000,3263794165204065462603593492059264717089295476320717896120186044709189579204839707988039794119302657908128084784393547799668442624078548811934283653895787256893442740953258521501716419724059521001919274189772628771724551343703447098482520200138497925120,947583152834125915755069019539733724080231102212454595742745260038308407147292033204905368352684545883046712751998857615884015693911776937736373766556513966705687215021379448389397440248111103945628715656226042398936263119846040744616652921210512040960,273806781167094012241872622661444473181627045184673130486856263434260750378639322184228478263696519810007304444862018117373790375717427708707177685572803100464176598291234807848307010797164692561904983557642409434424160466106112113711450050666659254272,78743052837792422375559475651873404961576024055062854735960913005957172338297275943193958025443784209942730521885250475832899017755665846989083460098845133611761126294746199293796923321338715941576535782139339100128620609305664802503992190783809341440,22538776854743028955330291718150324574246554559844888063023971384569367319821035531176665518740598148756464074486295880132112232476410695854495445535203534901351945868508072299620821326244197463589882910730453059700304774222551418599856222579078676480,6421069087452619293344283129780797948592264163197380449393925377610948126607169469992481329984790898097441541234579763166374186096389948046003581635094641329002243846467289796358693903469855250837927162022947237840279698358084036093955009187272102624,1820757422672803850956194197605265796704863689139909553102207020152545625743337573485008619856106792313991426915841326941851503251393336404509358436094200963295007547401671818711664589828747470836809060023329511853806698764131841537532510823134642176,513893844205478861004191389877903190983842691105019034308060016949773695036409200516004436495236598631616986335844515937419265016195276328989300286681157439052060767158615794047734723585596283949874630456243575453354919231984093494710644080142759936,144371059011814943522160146090853736996137624958013881004273878669586797512969151096897243383099383757618492775014606272289310154557903495306114783218730368664569039749273748635936166146491617195642186298763725700838444408265928520434506831405445120,40372075619627965237244402277271250371568253097656351304297381823356083889734361734086971467849513413605589289558089497738700527875045236537995572325730041954952580706658868661902868483768193042518342204275317475913831319485911208932398939728829440,11237896285817324983908151776996397877306677328347129803786417013262919744716010474422933008305383625027160389356672674970204552186932457582409499641565140166814127800147726356307261114407702447895103839694668295228161228664764560837689566494580736,3113871967853614933453743396847369161252480252197130148444967947260824893506268864535157248742953144828973743858724122929730433819402102661722489259535718458849645634486343026329409170767983478347312356149304942051763562872527610063051478917423104,858889013033822065531346256704665251655449244089372205036124374653365021694248338557029501631582348738886792807188021763845772269430152382520685917695850448702662104861732654170053305169461728375893119047316388773716943010904190174951584222867456,235831963382732253224202123560903017590092339020774908226526177129026736253668907924842961182695838070753677631442869656125769032868128223500939860052240600237329375269097959760860973674344377201396468307750161986818005945528608336452859118562816,64462383391950294737964251738461902343821836828675711698582322324381896895253740333386729991682489314278399976410651009716718351922127072697961853601600757160068564396645670036805697487724033107120565724096201634024012443179440547327236466892800,17541101452904614727253554673078336504775252049610008186656055037655692072064591753245762548189173483875769366901637553888167555466787460955268196301653621607495284416602879956117197915707558138227766835417951004877193286910801167049481908365312,4751851894981559163863181579905672062922151743882567301344704002122753972275922285109304656514991625109013226302463969556336417197159328152342164881168508554714004408336315877383317380095422488126551321377974935065177976451498062369455579877376,1281542988132650656960175445849306284260317990188426042504843873489730057745759556233865480758341154237230797952673489961096369812345907770055636410691509583634946329902830007413654114316006929602738983485488837281618544822242483159089427992576,344093452544116182948911776530971796009137824040372640123720106744227380996189916379053863348399880521199367204971387850201931843769431457129187876928660152920603138789144580248350774296941284181655736458841385258417760495666926286069059461120,91981666816101996330492569081399627513086772036667406649751407586377014378209561575154538217601960498562501655149196116928853402955698544888619597750147776804937352635598733253088883813476775911797222180473816612432880429060797621206514679808,24480284151876949753621504529137696999803678957314580411926040080113594168651728842396187746768502846543624790992195769903600538048915801237722902594748830609037683352388757237858581247288487414669576318256325716013994110030774976001338322944,6486801545404977538624416178991356247434379612212161597783432161074360692421476354326266999193736395556093099678225172353210702264786777398379880531386856420246628894629196560095638726107650677394966070364647835785162306999625642270691372288,1711403433701154637366437145323637989106175929388472617474327128580160241055745476885048127100053894567196241897739080009148395740389939525107074303114141929720230990219947038542618588924022774015316543345320536956081284922669590859405156352,449562893691791008165866699143448673604387506443596888070639452587430697304002362805299374334341907721792796621245685709267268241884491148560253986261103570777130044774880850674527987016981696686102617780750323317530958918259948919244122112,117585404483660670096350626524846946912436524904645708159321896265327987090733431827982981865328613361064013567048900525780087473836510210791202751044289675752620783050003593370455542725679588886373853740283972692588876479759356617185939456,30623152328303995155946260630734442114787825624002475804168321932598481030068016421446565073566445173621990840535364160507392448397263430635701103031830207434248408448052585170634499151374380608884604252744515994157448572164100261099078656,7941243175063210752158991932587509046927523682079560543876837922602666861803610320117734920988965089032796661701100939460298487050466612999537191181011614963580276847397363663444887449905763211687488934420677285349593108602576210517360640,2050585171172831800355198408995238072405879575351755276023289472828887214165499514157407853232067971663797804890190648216095689638703426539988200779572028783085436278851586253771469407988134263895266772481501547208890934177410530669326336,527261946660553510738949761823521805653683873272162654152475244004055243206752097367477767185332382975355618862690866712643613121254943710023156122899930226115491560933745302323224576739784398841374119351232587149732289660825418770894848,135002843013990624186557010376244261661526071084747026635272291022088735628912507482945529258956066572804352625171732148622302716312663523346385865344373557224825661452427883238168374778634500961573113755711979120905782329126632189444096,34421978433127944475578041283775659472520526334114509816179523171026849558563102662051393032796552053296052564475895959803029467807833340363496432933961697942744800493476856465223057337212502076717992198186268340835579781051844440465408,8740045981127748231072311749045563101135389283178348030607227037805967683026769948268098882923641226516573268055928262172519196430651354786203757062197922540902347473010720590821678274651263279346546960319820222856594607444996030474240,2209963587686263359056380290057710128461856138308441535972719820756536772195403437139995500055716579799123867486101837424965254518419775462327325679014016394840696849235342663327110725091200756270353042074783973025344498799732824313856,556491524997869987597480942991924928879229373745216395295765705130759604183755573391925214016742059386576250055508903997031619107863388373412202071250987085217078714426944152024358454219246756451644247677039052286456583217594573058048,139554080772411962804343627478805494634192371945867717537517240210034590218119425261911743916305793623421716172582913365315706600277462613917414847906221532711521044243145003225463562043475256878456984881253928590127785291788188180480,34853434254142304055811743788395532628292925453336408743322642903935519325331105450869709148522047440227845560228647049546660432634225009696018410956922526639487177004094562957853180310011248050267319162672213599539170053260167004160,8669142793903952002092863969487667844597540219118690020052360457399561223603278183633863937342920072611239814301432221581550537011013652928229588812289909842196677899890651225880411735264268346195134677246924265595624905511656845312,2147547397447072602502886078371500502333180469057420986132938443409873918057987278704255724107561242602387347254497099823741019738669943240544251595794042949090559219789139651512512055060219605078614568232440016081595477357542502208,529851111894390080887834234058695889871034630874711593594129635311043365374474229304642827995373521743474557113244347823215665503119013747106118831078270936936456643421984878785804114799979714446722973937653026011568703872075632640,130202070860763095128653870667617297429070999424181133876893494227627347938648455437746052142057814186006459705170184835348148638607324771086399418204366260400708050435481672770144741693741437032007671483295428585922034169737871360,31867157756230285496041104684606426891697842828422908222255079496722750008781341065181880585936858352691495768079604505433444599590229105500875268809072102629358612159968403347654604068552290022669540788416172717900948527388467200,7768525627417054175100388251564489012854276195626323843061635281336871896168725688796157108869286342977288121898159105669479330939805535922866014516110935208696969349401789737122997486196073530844818948286523892604349155149025280,1886305954147451560130516310747604018003485315415389514416991723961481383745161545353439579139551515609662269600859056749284795548074435480245813275937187647675290203885074788451558133104977430139670562509640201071468024440287232,456217925177857851752422796961765458652796649652682776792040151959691166645383186651744256910005269667267246202242820053659732011919242293203245134604536569460732125822810423561720974645436995722355025603731329506757748954699776,109907577910903787589348779780216047231370784693733982731433893554116538570499375489515338330632713972817139446135124798542809635793554284462950481630923976552153512949719770838077701895465637295497276727566414862871564814835712,26374631960559693675099843247545676046489974276038897194394914870363063990973303007250775683364444890497360758160834302713404931518587109887159799410475552312993428817426476535996099938719494212528679175962324582208654745137152,6304592831858991157948925191955626682662597015786699268802778904989068075833528693011140101124708246208142604144110222674296459517538520489709061892568935216550107584621230665842247048836868899572122818170745457938905855176704,1501232373050630032427188980135766802790085804418435307498979145315530847328526077148551403877777089535334221249316553601997232481949369417539505857726541660680832277812543203099243378097974469828568922055981270000342961180672,356096255408145548147740690238358171881730665075744664503142430058539249074238556063424143452718985793172100729354867326405985027799001657039654816471028627850209297815644061992260768890575467935775228365038532231162038157312,84144136629316217579830762495940550563315947486538434930988920619053071765556433394769224130843113000514242423344225008623433830985088792755521653516263793364402405579913243038706580630558485659048153227531143825101950827520,19807315773890108326530895425126606691469734397278117963132792297134401033065726931200545624130029579243782251096848978632492298632362375456686377239139227430323783162714642548933505195199585181511620673430553780788359245824,4644950031544147005196419741186962649861021597774619750564359388422442154594281774764285628639407024440556011760360749553652012725470593644108193823121317701685799131539017999530902092956038908442067932540748142802430515200,1085171684278762968789387436846555897060138010567454128412325433925937970574080093788308605578868421062567599125857488350381210761629936102328083427254049366347957279888474200636921537878003197894844548468678886164313415680,252572561041617393134102116634909011788977880387862711348953702996027545907506498693996020646205795083622338025688426642094229098034881486839754011946106532873103549825933545916910242371144617629365208858946114742375224576,58566936209979918300319043298444356331251459908385161936010857789167471512047206230192607329453223512923117748558604756947109963716707669941505514525891693274262324214877714271048309775253046323377764236302956584278691840,13530248484717134949155310401458082521847168476374844226696523872796532835449334760108546455847230647931118044478222142357714516424897903467695752602803924899860847538762207986806332009407682783845472159143277165434036224,3114255700364611658953281351672373754304682497128975378487294105274726245091594841277464677339120277048267671325975028603410776947147464620461469819259404547150241138720709552940215181978188318416881604816802759790174208,714177697736194837569026573110135997025761796356712750127221580820624640409809081893483913349388458932905013952605728388688573039192254138197107065089106868466766301730825545009141967564705886865102486227516512681828352,163181193523732055080232950114571989874407183828503492818623769866898398108025602675427759223906034644119556416203922155628949401335888727064544936687664187373464723348735016827892424768520776693701704582084580275712000,37149588755103540808806633316669387272811786595825843668705095290830422329915952348189241510327835341134139418628666551991280014411398813112200484303544899938529847585406002658403521054850097535585781553434507711985664,8426869570021943600265311358090291255451533605466716520499900723252691639488542904639911676275816056719537222664099277375268886061239202985501046863515843540941476629119679268349673430420772922470342409058355167846400,1904649892743422219456767563186718033261306008588774749482216030798707187954970737557589272783181882376557796182426111297256081205787482995124027534520426663480792370775679511255390552424545117131998995140467883850240,428952225837681080091879502718851603505438066036635077598755788568208910069213915911430714632943973949057322109156683741761233319303105407982401728533762135602447917156817685328789399402169608128605300353052617166848,96262211822865419236172407673472203460955748561527088922979531848392250080663056996294930239256277173452258621402477583049269150323314572020781714714567203334066884535959405723228745161652076259779555143506173591552,21526039896980565445268718913568234843863142851558050883244272675585025326870456761835155948399709738164630501810678505913083139260753301746983294814374331029099746472520343038539613274075091412707359552045989355520,4796694824331772912871587164289411459259289728802052695416946058709305476995552890749037095458294250234787671358058862002598263872508773630281868510286730170814362994465683739731609968166152913827742298193205785600,1065118494275223857073955067977834704742526485375551881185909403169836781039419492765090720383415821193728487806857474948921635543274087070449379261150952899905501593069701385191752970918655180867658026989094129664,235689315880698697660679127878651137767557661347862885967065784980294845482166606057616921105567596923257113007631551091018453417639294771961770276191281574074153197904615870332884549898085751938317886365709740032,51972815148208356062228648408685418624061731169770661015441215531773665716068719151967630096117837608402959470812039916023525082770633777510475364209310962168175292753615148191936079219997951437790580077860618240,11421291181129300408213109537971338834740492330135842804747213399329714161589001389326745321493321394713392981640106404611786664456584935171573650745838107992432476042330728434713268786032795669085821137207112248,2501295632669999274126212357070632311673929054096294709948577144308251185410161492449460331774764914857898766559046286775337076308841174280567871075585717584615874763320538818078055205225348362039400622979940352,545926211918859006564385567676838152116576327916832097208581379173544805841617126047466514166310349546391968724320751350116670420173375864947677394833333836085127860856103315979304858816600668637519025687574528,118749069309073161306089810686552219468576643652053760925163881856150826255918281851695801866913829597152584051610436308234391141552167185291415681755115797105839855211250130521933343689676235968715536406048768,25743173006665112656274840642905630873019930581450923081173351112089509125382167142368002594679738384534906474130423029540355556726430701186447697772059476999271587308802572041448235116140426916477210356087808,5562087043734413823719791830800245107390176553518672851581665632336970650007922088914923794560777447760602180954265311896471592056221458002948041440199458514468693181673853069770449501244830887587273054134272,1197748370534666540962958353383118531881227523061846702657234967840032001899635433887550972107383403161136686918992594563855040077263323917273547347317122338748770100258080318636858787258547264442348589580288,257071399620630580018397232427830149073322988007943039334958104795802744033927292120452692979476439300066516631834865636209948630958664602702982048241363065024064292639764486908628324580614404308483069341696,54993400256611729275072553002395012642622803787973322052020449139740572205172615755689611510339864844001630105470874580265632312786606953418204171852939966523958990490887963600333106011416475563170826468864,11725849160821023686235755946042323619070719846591084565611011318184978489810458043764690862278162021491074919848483342329486322573498575618478588024267102562870809744116381170573462449709555781670390538240,2492087261720646488136031121508986189908061709529354064463071285990938529483281531295966680983938135135390574934751791589430797873427354121940994669555902835402572969327427492512457103954353512041184487424,527929226124586893595403624524764447358174694136341860448475654713394817519906185947270091305163496569080587724876255828200828588241360454842237443565888569198176634931731277203739642919323339275951165440,111478214343302670877205537322087525469323662743079116597689791274806033576538188956958068863387941765520983562149314644508199573555936108040331513329198535175226325088301666068642719259491707628403548160,23464671477027850369435929574271210512778244195261789621730389963236902796635965421482098921736354545176139462200959925433007300198196727630978900104029258734202388816827056114539178287214324907967995904,4923313438463705466381246333898650413998385132143608368743228400628752514912164852911533741509639980459914900957132196759102564047703921167607129441569942325131453903848999918375053983762702301635387392,1029739575700345409599362914962681911431937382874644720245589191310560831231914349515463081207390031643718863646340760627446602957080142440714560123800651235798100541330415742703447699018848586142232576,214700292351171295407907974814741112493089970028861888262853288041704936263909999621161482954581148236514327554916178621796473526619667854520798668330932914686873110257160120833593367182255192791897856,44625347293605435837849122718568788790481153323052719119439932401059259760879932843176682848332004714563290382065670217751673422043332215520868248107728581001970542381805626387043438739638742507544576,9246615133095804952309957668943427602641063343967767592340281089506935869231555032100990981781325630222499108494757377656411366285287115378947279414401200593479455779391656419464696913504292178053120,1910049593937971838090637654340941308902435765538470553148552736416921218378948149205934181225104689809429725206447926634923444463605911343334205825581244472858649031400721518576757088980121280417792,393346890257280967088183344244796729125509378535056242593083767384949647157228513951981194784031744964523202774855024892064775221339467704792621727947758161457573497493821123755887992351871543317504,80757818346187503241931437827746973367472238717219957712673438831246856785564794345972611077061681022307802515624173073093580090011687797682129483938090427003897754122895421029152342614270269882368,16530265224666868754061222857483075696185218471202589707639312997217305032817625446310468749968766347732935220795944621566089563444560847074503769891211720279467948308500443715723020111005912887296,3373417593120998891970839361915910327804280035961809142521629287129720002531230807300231511275999917769077600740006413749124625447212042992173755280200492605040485490212985953340081850173761392640,686379229648238800751656754150083427577452477277506257777480900983017152042219799584743661955134826247169711193568122014978894991414519643389319849529989480848819329236208139548315846054165057536,139242131344114437613020012857124554648793504950617535354694078345374970667712146407929793722500917405021796788108401656460545220315449112200412570523522486354735469256076936685893337588621221888,28164270766927563947415550580360182159009999491444920957381579843169951078449795264264691440162727604504446966015942693666132958888518803205164848331492571414183349081121925248003162750760781824,5680107563664692624148958552899825635369035571339979010509907195951710965411695274811972602077348415161031707907362084144318685551476654822498473462647452878039140001747979782242947693100617728,1142230518383809538473452335314599875775703549253983145958861817947538150079679088533814792309781304945267192279164252824024575418245801315556632664667793615801251267085219974923351824598642688,229033565346746634005993908882199267660050329470709302497767130570978564113862115480480776925244724167584533726890027881285170281153279684496764464531919771117726310873795248436528398594924544,45793283662959703735223811810127858617648780698768324809908165477629738797855509459699525670326774262630832390452465780941913942661635913544791076937090836719370776340287666986475416814321664,9130002700912705646258109465939738402293631222644237538476456776828716172692479177797318674935637181024414270727504337350532022715620067197907726047666120810089791981940088944110349276131328,1815163597309980533653523228735744952799944247172266850013327453144664086559436446892150012765923885455833491965409917325396549407542145001170862125752477781449645633740431401836928317350848,359870101079833391096329032057030490714562335059221083027540638848952606738831696220229949075936921691607171588825233301111970444742613647153443239563924802919540293557131720851931482804224,71149256398620930054655459861556836280291931603590473753072081671558214536322134027656886551994618992841428564915225664509817428966360828721441328428098204045495135173171690744563552567296,14028110063400539567102192347132524688343293701729806862368820988241099329703398052276019816807700790884721271663981132526310525013797168799458134101294809210662200337749714619789512515584,2758302375040737964339239885531529536269040145207340487538162866288344778192030628739835344024165574975169272524077113945227755956685499758061751966426392234182322914302845701467552534528,540889220533052062290856999405579157730704410492923949220495553311010812446143107972928704010039587878890275738508489563812975657757374238363540415065949328095374310452191600330805161984,105781200266544997714819074378583619089840008531810365114479517708526246735510447740051184689827319953067083344948241452246508790436939460857610029782496066051042345296856471177132488704,20632529367040373828805561263610264109436116816051090711690965439199454101420610637447376570335072268058972097773457643510138387800478335573706195675377665616856433568713211612318916608,4013751897596853065312857119265283787478039767567752248156831032603627090016029517547386296349561944035500122503991682474742440856390244476581798931351403286830984491676790156678791168,778776888047850523922878562463893138607849023702587545097145288781949856606128280105189941033682095969110699555418857181065344470335188563110070745854659106955004152566531852769718272,150712971896086232584920998327745579840071618440010087826974741499423100081230647238886917453686601605606962640795384947539871308797099651985132643569528113628456870804827229426864128,29092028375739384714785815660796554426160879554414810555575309977091962193617328485523895670596229520471382239321446396265514851797396437327533146978693566842726265129304523713085440,5601367651934490487256175850898656938813011916830322678672911650940103168217210341046231853595787818418620485074491412145195733206443185940019565499177363871411129277919469078981632,1075776286792806231474307871610013454953071236681562590271035004831227437341831045083634356553966774864796537841013103622239228438673187894911293529619534616160325664718372592152576,206095715237924219260005924619666854116666227245961282939785106106449315578380421949173858908638063647516517429074892719135124592704160031575947364483549112682241194399538132678656,39386425010908127509052361703310494839136395709165503240345124337799591533322275861050564061910682999864322421403709261667992353118372687334406087785477900412212705935093856542720,7508729692863327331015465811908779279727869062342327741928732883540185463267266634583095554857733313191667512182421881522684608444878924807031230862716581905855409976585477496576,1428040752295198677506251161709726409650553798494552797177947146297190520491592067190568265760591024441459208436511026092401588871526825942845219645130022207673764747617442664448,270944968198960550909649545210984531608001027722208216632730828524526380702748909102201334774360980472738670475303975038032221660911333110962202665303590438982936149536707362816,51286173310894931010159917511816229017516931830195681030134818118981513745598845167555620778832870976163647580382117703920823572950891884540034968262551512143760551702261194752,9685249321523762964137442002368875730740455342852869258997997159375691760268284329048407183595886286048521098957323338260979105137989957159158361537496670646048009744213307392,1824842708656184770331327411402849014046014017791658726248570146451410333644354598803672705612920030129070254163732749988039188413287384533409071271440935527162309145775927296,343049857406276147234112999122021515299160101656101116651804933169213045187188590941724978979619345664930247614464313697213307293368971840297422127244886788914166022670465024,64345697391487364522043389422498764953064309012340117851281154192200774822757445287236232061307516839046056251955770454339725583358868976416537013141867284102768865041915904,12042752650516170140735063372595213033805815091508325011152402878956153437593841930710415366412068188250092514859472446341520749586187427731888062273673364045774120292334080,2249001582841092663364137250363898513233463153162052477668611597116890476133628693724323189068237956964796477388818666111304330002059671974187413766415458207117085604204544,419107547053828042086268820924647381555124019253135188683016451631826649576232803203509890153439173500636801529137095323088180419968063173143900535952555177959245931339776,77937619439678118311996136071428411996291284508451717873339187371095726706866446908072563492037135576618911236449605850834003414128024048752388733555052114733787293458432,14463358509208060016974597648855774169517958608577080168948993345998613024633787847661735676667730027827647287243018023400118762710374692019635803486724620064339052459008,2678589477789117486359501905154246823481736498544599733322935588718974416349566049013113716906024046917048316802171675747279867556582789793113818987918304069597985918976,495077266210966855409308068591897535735620618777629233785409440293437320107140708931643185684033313839751595898477171768852949439260586499706911142978613339475969501184,91323938773535744470696316920197304517548630617955870181306670644610622203163004772064037978917208782711611229771973356306425839586412619841475874493649574732335628288,16813428309330040481942398770539325329951820061062107268289650129053701640425553928186005318263130315030238217323414807663496128317041154421454432648824303184283220640,3089606853175797798543735356549279065842036855908402865879981782497763687665421797096839848141360879597941176120677003018676032586930923630457040738069606454589636608,566683921718143896819804470775690259447574141574487152356686221891607301230506464910511536197999292946898467482384420339677859865483516144582875145199406519684503552,103749212024109665436923386149396450196968476731703964144994181421526016298343178601907109842021306516847976901859726913885977092811033414063281372568296206048145408,18960533221104092709958540110880743223875415001401378022664082740369047737816815463857457734991992931410302089771089028075591063291111268972606027358178133821410304,3459025123165276638520367880612859287645092073797520916134546211709848085682828087186728350576162125555562632933461700017597320606762992594285995786388820428218368,629955560239095483050928361519342559786212542853320489887155866635410094063474267739492011932937593088479419988896227382061436918767141045079262108620245277188096,114534068460144206346033509427576181122045952443957277394022599759981209903019371714524310877407688378168818737497265038144444276824659185100641972822800036638720,20789473866423705576923409498676337143133115311789298228424281421196843062226337265409437897731257132737362961323211511101033732701403282615771437385756684559872,3767486181767144004732831521405759596978513459868779175095579887897847516031235028025515065087146646295522387137590824862748700433395138347066317300085519540224,681670242081075286726987845071111817869871919694916371984551098078160018796056223790439227971341394531394869002807554473595815048601450631190803282154019276800,123147728321183458974485400627777880837405067969221469924152884015779532330817898031950671971250330814203737394153571488361232844481276704503777106974822928384,22213781373572685966064653292568228495414075104875175063297804022023404717439098775487342539371631101882535306023058927627255253577226509277295318782720380928,4001076696152426871541409467187451032918683723916010175732492108081860077347954943355289413542120664038242648798667067276281382477062693248282868056307802112,719620345921419072488128835077332480354173830776192854088693724131583057578682285357357471716374126705334481587768002624815877077856559033821883601465098240,129245547985434763537997786574215456184841317305358015280531404203659859178659450344695658841946200819325203535689480960577185863876724290140439491123539968,23180685281804786444626569622454152557774836830423825090286749038400358820070177076962635585707209957704817612307129828909068848994672974869907958178018560,4151908979033273798036473940671534019344835073325319586041854518121133298093094060316651740721682893255848452110005326441736142676257139755990838247317504,742663344709309403793187299578858188377403821365509123086832953794477818144282537725344797038086133550534082460516477079491095406543913236013944663263232,132669115102119395710689936386738925896580325702102097882345668925520939786185924311773117132717956282198243213738683529775952154606382218424661565345792,23669642555873988806486945206485471202074393884470624761752491483984034385201761332878376462446656328676437450540294227809998125109991406978836427977728,4217617287673731533230978060444825128722800203342368178983560887572804090876290166287002558810137166669103602939121392219397679608059701463229932011520,750593859863698351441273089417306409972646732266398260992625668377936047335688102732351087294302406867910888853422097794955519391954860892217787510784,133417602846060226082311582563617929756547999089464078306145873713510829765148327197239455034339570683615655983554760261150181208849789128679067291648,23686373883967766766982471061107945148830827889799935990010386298217677950942775538336307205560635525389745244195699836241545579679818330028958732288,4200175810211707679523927449862643711556713768685640958317638827734386628364874836849944831738220258974695144709008849776516616080323901450035240960,743917861080702360237395846107248548376782381371950086160589049270197002551265533573356867307897643646765468039510747725201115507611883314591270912,131605900807658053342194971210149615607229560073673962821062451646864240807517103339238185437727417647731119225667662752256531164612724197772120064,23255295671151986044960635017793448275121676803874262832269809922480880284638151092046245635962825712088449695237347376718241156558087357782429696,4104561760277334995992910486506663301116454575765612768852753218062307849101917665022054046928182100345145037325423445130571643490795871138603008,723621530585462845157929740942758839127906988193169722047136598996754126975182881362027466547758941848901478300716135034186161320050973145300992,127425484140200444611421406778536441403657439817430346862048253113939615234587492625822377071699509272472306497296980428349272052077951181762560,22413034176819556370837832354834164828257417808531852494878876990562839476311174683280617646871367942965459586309594098955281793799931299204416,3937703916723956609992617475901266746474612988211874862078424225709073185040681444535266362706766510935226805192773114511964897858005710721024,691004848392684058294645446565850997577536117723387061172356844380005633215390102920133271716139615319835317745436032403209702496502704128000,121118777245367190930556238368205730187949646998879427386032532300961440238926643013065850049935699711646372002285395889968683400241949286400,21204599655787680942094938074576032805627446143352455356913782353909598459396069181335300739051440901881566519499977305264707417547356237824,3707933670652345981115677815699938239340901022491686620663683836700168408824996252314095771484739132321672041038277392734202212295959588864,647606816295458085155388420515582152979944072834512419219167702818849356361409903159493717453186877756745093004142147273623466976646772736,112969709087091619223355424755493624077175996621101666207903358515547833796760451777036540775846126791531386235055857337010822739144138752,19682335965345021015123674835988588858115478253367634422267860959589757381359401284150025806864572129189937010285416294170493354260062208,3424897274680061918917270709068159594368814718884805250999001331447907574947587302387288339627835029286543276698610836518716550078951424,595204755106542345289685813855555810301349291322627780630506129277996588498025456162330861448072561743054632347330289132440568974888960,103305696964452752591781400974244501765072300973296676482033302842277180473790406748553430541274998546014119142173393306424998230360064,17906544619976758450064392307420989576729478564098310254249573565379904011726987406075131064026670604959297988394724324205593366498304,3099695842695670654277611039348238507161860498879826041776139305101128572564684542250355317751591813238148441611902775616288146780160,535840904179450135273075245330567306781967955056793531455961613286168447084783428249523395029532451914653206375590743434901349758976,92502074063003792372270770855738792395745916416741132326055175661088449612302926378595615547580827845083218603702013711384720384000,15946115070541059217731839557768778498727846001049073907362133897610226409474349613574384406683163556674135160913569967614472359168,2744952374446077346228640007688881047814280111957028820772788759122225114730407971096543709471585847411782117890196531131189186560,471823572349134685987816404301973375225894324830104008913965436488451645265164560856150160736485753615731696947798246160205701120,80979951489401313666954479483694216432568656528768465121863584533567525980906968210895582986020380198899296295249397488052117504,13877664453269647874715959837016037370394569733221971598894882129496861045728879586772823320782399424831483002186897203732373504,2374564570252186185269017737435322337914204234973494650994528766147877334211144565673919358739461430380317396056185453786738688,405665316455124341713726608354187226685561091585268608251154932319795028915880415092067655589734929145258110293515146523351040,69191934110501136829965454583474379537150550101836406656183486771791946009491365501610283594961370890342844388518957026697216,11782407095553835147512290854635105122292331537972124966099566840196998525203847716638440898882944109477288337717292417794560,2003044844518453651108610179768091440844170047447391888092419349439891654585751749616486336216707970301542385921369871781888,339947953940550280979109201386341146781598438408965613917267850527494250493465263429678144833878585248361788084749409681408,57595188956865857655162274729268149410481938937583150257787191780040375655058418336216532657065130948409624534782855700480,9740893663609014429471192630717998262379169610565129852189262854572100050656938918946779173062347232300689672256126518272,1644511518725885265034892964469851037565658907619864470437489173232409829351207780987023351795626427662490397915094618112,277132312846375428442757291705012252693352609478160188581561008866916103246655283398500631434102836055798794992481159168,46616112461611949569170145275517758295519411238433754396238085435851502963166254484273048597308849500630482547073613824,7826543337147601025292765303732018309136486029715659831024424282444763968174982211119376982440029832681735381513214704,1311521177903585487928021593392432373661945460144043943500653888366888843211219547846757591120816690258837963346673664,219350288112154574934769616107112952177910435522214137666912735775550341909122944257277684185165745885225203595048960,36613800413687141754799489403933810458334059608858248586861197777620909741200370079435310739089884003533661324898304,6099315678469359068222809637970216145169789500310943169060944107933382864721417035551571022729211374403405638065152,1013988432748211842839474738964230742278209212804760025309447919633657796509155359918399814821838309110609042579456,168223336767104759373499815355007742182797798766185685027702521547259869995595158208557698390264768485866516611072,27850081860287252688259980454516464872451125796764712289610773873398056918760769407419468440724812539136139915264,4600861945743228952932142838608104717687005670935630156636278628318791757758756602244586299398322545817094401536,758420006100856284190329004704407153575196280959833636901294358140515782099692582308690849925772426299016093696,124745078676835168297870477941130246119964696624927031336944532678714888685607947054692066157212601782740428800,20472231065640522403977319122200058427301060373117938975731067902513995175714520251064969714123459733109067776,3352122836269748857329106798833615809672433406914916030717563191699549940000024818684393557283367683314393088,547611272668487025059876098786756588565685531925041921100325084951633928324903723048673332830270657854988288,89249761381732005622415837883909580639668589829858966931690638312537706537166890077917500625429131843772416,14511366414101943366261013153241329401568888656761300104756515442126595020917207510645645533542864326832128,2353749511075296665799392600844255625318482060746658122271650525085867304484334594869176201082775783621376,380843708852095239791356147758009555941032024460203678365157738362853201718552078671387656587811666583552,61468361380625998824299700232205344082608882087019873547010520863828157937083795631702650830217885403136,9895967532746524427290572098255183564074544311868597272930746234712418292026563106022562874735037812736,1589095118735836856103749267651105397796724440521940127963021167231456010304866305579848236789121242112,254512732156996852689472547674014471907318003901054826940289035465582286612658530375962612998265044992,40655550259190022522665790938994277417783054604166583312942962044129967426538929010300586692243730432,6476842556359465541929090428523764862129837475008744509177826158461338196521877714864586708859031552,1029016123513274829920154204361617587932563051896446447329933937749270480508469920489324179691536384,163034025064945603052923751094950455704690201079848112852085959737719977020672833593156661725831168,25758059509268713482811748116365081744347680418920183224533673945786671966875143273230411192141824,4057963468998362312726489687525124943084064176323027344959459138617520875922482312918021850943488,637447145986822419007657368660783224231392475731647338618539422431660054837370653585937035218944,99839388206752878704490609801980843763376953000735536929573208703990410672727995194032154632192,15590556008567478336634807981812072185610883219141533433065519075034780521751485209136198926336,2427186695441797076072060077744717134570639815765318216171507931178831109209866978725155549184,376709179320641924302294786964228695400019805803905681689769155410460308657181195255746102976,58284065259880022473460605187895058626784551762403727667092194943126191830028749505560694784,8989030582653910418432093978652682110662715124868469027267533923192559429158402815056969728,1381890514675908087671413989792984868194420191548190433311295067461324371413710622329544704,211743511624819791063119086625494624132610116282445751507211682576769101987980221351538688,32337004478506197189193649874290097987103308368516874009376045619088712652300423860858880,4921751808105305915175375210336543923554372947332130245175673809951888302846855300495360,746528607682263381946103329854315306074551716275273733640277341263033564368243437625344,112838189670198685745486692297939545468289222521576229172955316910387765823380218695680,16995120749012641704831888503723977025321633253000588066195341177022821926992491802624,2550503618526199187878570017669310976232830865078389416331672653855509958101509705728,381360482855471853077311051379352768756174383251009428992094314762653206777975701504,56810346023069024903957823460870050908980453431367523841169286716639025212474289152,8430911697017691421566412235327041166240157136715650360535086036043394271506001920,1246377953347562665577072201810473438358789404325867743426103053732132563725580288,183537667035205182096794838543025743492158480823318301883368852348103650892161024,26919832300887361029558117630866268718179380900223078253093687380566264054086400,3932438769324625645584122187757583827677362367027220532769184588534275093401600,572089710960642706383513528013656771283983176900678883825093855592132015833088,82879703750853624065467203929329090083505635127523226578935850160184963031040,11955911663921129633552662870566285708834836797154248182748563411032991625216,1717257538008627181442270148091891746139961439963051104372874547733016801280,245568881686232098221582987939203028786224264243335879323798402946953443328,34959279742568746551815844894454607397931655190346367687062573384077484032,4954137281939217507496992063475735710481672274820772631534484753709689344,698802174229567475671981504282180889145317351574988185238821318936547328,98103468090278656011768735440593541858438564980785601080270282434371584,13706311706528570714962892502708866694876597387433853742956401323057152,1905566624160737185266740444427689518109946396415627534817026783400960,263605824446195823993048483432666471011483615868985818646050027524096,36280400303569060652658832814076938563782089924888015822409653168128,4967444151597852588570795792041970391204586352498372635643170406400,676541032071946409099909149250367100446574855934842331429519142112,91645373567645392073242032170370593654118502035003493123321151488,12346271753592922468444986828753360574796991433134812095904077824,1653949139032680803917761402250977083486051914558548492009287680,220302845986047930077169257712835929098538810367386850661952512,29172837952336809130467567885805294279934608764786196963549184,3840123074828923038181825033616081876169505376921231869812736,502417736812449107497117268157306623724023617294202487386112,65325348592318282810640442898098981550348887984910665266688,8439894555626693862474488558539289489067814554730078658560,1083353892268561990811184287969318106952691890904555522048,138139825165231317228562951874087079857917557825309970432,17495152220971073346308618593911132738639343479232106496,2200386869438311446643606505098940608474943562758496256,274784985732917125884969028662235307062200721200070656,34066386392118637794422761953081413466164757615898624,4192018383837923758791831692487336004622054950732032,511922093192231646713532662307450319530998390120448,62028020510984349258261134586972186398069579171840,7455656526572114127247484497385530619632937963520,888819237227772017275167355580125315625149707264,105067470222447781623140648431924213078845685760,12313043847632252717503298415689732121344290816,1430150371476550314756236971599567116560830464,164604132965150053436862836181661369720610816,18766418101396516796805819534469514301546496,2119131433404402680229316495074226687313920,236883377144617677266679044866159843364864,26214778104788743755033162540010899992576,2869489075366797548893304282023450533888,310837636046827614624428277539688103936,33268211950475541401174550189585117184,3523173455605142701375696893142359104,368038492491826519223092138855485440,38057017987760849668592216619089920,3871553755823196043657602074615808,390468333064795797623009891880960,38569361472886182609543396929536,3791345208840452468065820620800,362130971398695260784899284992,34699120806036636726464401408,3185666524478313863851044864,298044124622553465145298944,26065481800659863486496768,2391406180740483290926080,196523971814021975830528,17832940430689993684992,1348964107338697842688,122868315209973770496,8296338816339398656,776335369907888128,44743561136807936,4449893079195648,205394991329280,22748079183872,768629792768,100903637504,2191790080,371621888,4218880,1057792,4096,2048,0,2&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Distribui%C3%A7%C3%A3o_de_energia_exata_para_modelo_de_Ising&amp;diff=11670</id>
		<title>Distribuição de energia exata para modelo de Ising</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Distribui%C3%A7%C3%A3o_de_energia_exata_para_modelo_de_Ising&amp;diff=11670"/>
		<updated>2026-07-05T23:42:15Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: Criou página com &amp;#039;== grade de tamanho 8 == 2,0,128,256,4672,17920,145408,712960,4274576,22128384,118551552,610683392,3150447680,16043381504,80748258688,396915938304,1887270677624,8582140066816,36967268348032,149536933509376,564033837424064,1971511029384704,6350698012553216,18752030727310592,50483110303426544,123229776338119424,271209458049836032,535138987032308224,941564975390477248,1469940812209435392,2027486077172296064,2462494093546483712,2627978003957146636,2462494093546483712,2027486...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== grade de tamanho 8 ==&lt;br /&gt;
2,0,128,256,4672,17920,145408,712960,4274576,22128384,118551552,610683392,3150447680,16043381504,80748258688,396915938304,1887270677624,8582140066816,36967268348032,149536933509376,564033837424064,1971511029384704,6350698012553216,18752030727310592,50483110303426544,123229776338119424,271209458049836032,535138987032308224,941564975390477248,1469940812209435392,2027486077172296064,2462494093546483712,2627978003957146636,2462494093546483712,2027486077172296064,1469940812209435392,941564975390477248,535138987032308224,271209458049836032,123229776338119424,50483110303426544,18752030727310592,6350698012553216,1971511029384704,564033837424064,149536933509376,36967268348032,8582140066816,1887270677624,396915938304,80748258688,16043381504,3150447680,610683392,118551552,22128384,4274576,712960,145408,17920,4672,256,128,0,2&lt;br /&gt;
&lt;br /&gt;
== grade de lado 16 ==&lt;br /&gt;
2,0,512,1024,67840,268288,6463488,36373504,510137472,3446274048,35564942848,259061632000,2244141041664,16555966785536,129353975240704,937335072977920,6856355294895136,48235628829928448,336663139229853696,2294261810504153088,15434383264054751232,102040703104512185344,665639129468252817920,4280875542797188818944,27188723336480479383680,170576550866417544416256,1058099293205404951869440,6492777370200603508381696,39438260600991177128045312,237256593923183825340222464,1414395136265001554243053056,8359756300183901421163098112,49011935788511357573628263792,285168191470284969921686540288,1647371920960168202143395285504,9452945408089672661306152932352,53903158206162150596219622870272,305569850047714588260614649079808,1722749277543846718764428903958528,9662726116974562379028634249516032,53935451751667083062550139364135296,299676390194407037955035236077828096,1657720837114471217696413947307521536,9130492536572718976798063224032865280,50073382063579152660627165950277625856,273411053363349179707306059255389235200,1486100534202177918853661642638313940992,8038798726844520621272166542110506832896,43261051627011809808391738146420526278240,231519011798077888983820131371195880885248,1231557317034556510056654941774955447162880,6508420921057273407292469915111860313929728,34151542148048527600898845729355706680360960,177832479942801796818211975075604063301415936,918390139301760435247729717964668963355560448,4701205188632844368378278202736235170866964480,23840328332120507606315294371776768960997983616,119701237923672828228484869442694850509869652992,594757152627949500438253228055837273112794152960,2922916529049724472685360285423247548186579019776,14201039965134148049217301717187533988924329275136,68179255754858336308448322960037361763146746108928,323313409875478655871130865599358716403520327380480,1513750905724127680864391937454722826927500871041024,6994750993535906920078386786399142679909967346987832,31886895219475135015217137712603264725251843623616512,143355858307825170626447873532299913363195229581822464,635372123863582722250770477987239056724978523528549376,2775242285650355265574495891529113863148730156325588224,11942291415009915372359613295617414588113816411064727552,50611022693649248445003261961946680672474758325847801856,211169875555038247275971159538038689461235123739771753472,867178294827835610801008509151742419545951425794628269184,3503769925023508403120725735528997519413498128047257466880,13924359929735476424780677247223781427608588509635614719488,54411330436773536486854224203486717090841132443398903749632,208996886885118695227557968476508485957256948411763671994368,788838902689248672311809407465625820845950106272120056932352,2924799423906101009005606167292032425543265862308267468761088,10649367068741493941851544135721598840698721457673571451708416,38065493718933807677916217423344746726820412663418362447868960,133529862632477647117542152094872939513936437290015596318866432,459539814201354980256591938941077567972729136481932044199680000,1551041621895425879670946447045440064396942635191402618548566016,5132586714830399462127565722593779715170161998706787870874265600,16646305574607524832360110062379809889799108194482629982474683392,52896091200415481077808263054475640799777931163303631527981269504,164629684337510408780557125126073718532919383918880612636716017664,501678584335017971657146332189008493427659929654268351497108154496,1496336242853672915087394263129460639321516856975709503036461775872,4366885712986614748128466327455781300834724869020643379029455837184,12465385759400084702828526767385203660656731933011532636453879592960,34792266235273238658728210963673811147489748655811596736003018688256,94919249470620132401892424114957652049078157973342614856387449715712,253029811226437653836054840711276564668131357932727139805139804446208,658849169465873592951805265828351587049089693811187001726006424055808,1675129204703547339585258123487257608473601087296279775243280716122640,4157285142172099044117981656853097962618694539195741315669396875972608,10067507849600437632788589646083547835262849305722580010612934547059200,23781360441034343801635024553234044213960132746210566740259382832489472,54778037214768907187599305098175168175473517063296432509183415968235776,122994186690644534531467048297221173861580704459615437789696158795810816,269107217855407881667578747965378516889886699966712983763182851705939968,573567151483064703584689328232418869328571773762911528057772936610669568,1190469688751670945552039955786107921862184899406365066325521685062743424,2405394194518238008445029950776176842805639782519256709695546308622055424,4729864568854242093338185211683870930070137412903984862059114981822348800,9048334363260241781255071330474860334103569267901277109712195685612469248,16834940761057617032938133191184579573348086284310922354703386345225928704,30454114540120460545619341416400614445642284852327165394261115163077961728,53548020858415947488653247823174571302108151848312310531668381854893922304,91491156760027963975439995667294398599873060732691798314102638756226925568,151856068018490751025673483829258371098747122397793477153631997290795895136,244785603925627041653848440262347761511059999670692845544970996544948018176,383114215754071420480885282782910226348446304557245666031668395088818284544,582039302049165902902619146470452040863098996451464220997280314909491951616,858136450349350410435300319386162234350921961887030457622029157406945372160,1227564890980311307816290600201183182891319664305777329480846984447772664832,1703439878291361270841339200732858208517123970015758469844155255790512095744,2292556349733832818718263437125676640945404972529179965232912238167758776320,2991902841160629907579563943504168202587894623972546074718849167667558969728,3785643523746843354336337963103259048280355362977818029032116426040495246336,4643384203499279651601422387414358506395251349314933822036983942781885440000,5520492050522546865795987941179953558918666693909940429597547788539843627008,6360961174362492149581273247826701835496985435929113972114560951070735383296,7102825628389146138640253566004117025301371078535056311902512707005495053312,7685515539516761019384544491492945293795302362942643313366077185086167008768,8057990692226778609548442197817524348676968450723097450786840538370165080064,8186145443716474251462714767435608722044199998728667180196474843673635359372,8057990692226778609548442197817524348676968450723097450786840538370165080064,7685515539516761019384544491492945293795302362942643313366077185086167008768,7102825628389146138640253566004117025301371078535056311902512707005495053312,6360961174362492149581273247826701835496985435929113972114560951070735383296,5520492050522546865795987941179953558918666693909940429597547788539843627008,4643384203499279651601422387414358506395251349314933822036983942781885440000,3785643523746843354336337963103259048280355362977818029032116426040495246336,2991902841160629907579563943504168202587894623972546074718849167667558969728,2292556349733832818718263437125676640945404972529179965232912238167758776320,1703439878291361270841339200732858208517123970015758469844155255790512095744,1227564890980311307816290600201183182891319664305777329480846984447772664832,858136450349350410435300319386162234350921961887030457622029157406945372160,582039302049165902902619146470452040863098996451464220997280314909491951616,383114215754071420480885282782910226348446304557245666031668395088818284544,244785603925627041653848440262347761511059999670692845544970996544948018176,151856068018490751025673483829258371098747122397793477153631997290795895136,91491156760027963975439995667294398599873060732691798314102638756226925568,53548020858415947488653247823174571302108151848312310531668381854893922304,30454114540120460545619341416400614445642284852327165394261115163077961728,16834940761057617032938133191184579573348086284310922354703386345225928704,9048334363260241781255071330474860334103569267901277109712195685612469248,4729864568854242093338185211683870930070137412903984862059114981822348800,2405394194518238008445029950776176842805639782519256709695546308622055424,1190469688751670945552039955786107921862184899406365066325521685062743424,573567151483064703584689328232418869328571773762911528057772936610669568,269107217855407881667578747965378516889886699966712983763182851705939968,122994186690644534531467048297221173861580704459615437789696158795810816,54778037214768907187599305098175168175473517063296432509183415968235776,23781360441034343801635024553234044213960132746210566740259382832489472,10067507849600437632788589646083547835262849305722580010612934547059200,4157285142172099044117981656853097962618694539195741315669396875972608,1675129204703547339585258123487257608473601087296279775243280716122640,658849169465873592951805265828351587049089693811187001726006424055808,253029811226437653836054840711276564668131357932727139805139804446208,94919249470620132401892424114957652049078157973342614856387449715712,34792266235273238658728210963673811147489748655811596736003018688256,12465385759400084702828526767385203660656731933011532636453879592960,4366885712986614748128466327455781300834724869020643379029455837184,1496336242853672915087394263129460639321516856975709503036461775872,501678584335017971657146332189008493427659929654268351497108154496,164629684337510408780557125126073718532919383918880612636716017664,52896091200415481077808263054475640799777931163303631527981269504,16646305574607524832360110062379809889799108194482629982474683392,5132586714830399462127565722593779715170161998706787870874265600,1551041621895425879670946447045440064396942635191402618548566016,459539814201354980256591938941077567972729136481932044199680000,133529862632477647117542152094872939513936437290015596318866432,38065493718933807677916217423344746726820412663418362447868960,10649367068741493941851544135721598840698721457673571451708416,2924799423906101009005606167292032425543265862308267468761088,788838902689248672311809407465625820845950106272120056932352,208996886885118695227557968476508485957256948411763671994368,54411330436773536486854224203486717090841132443398903749632,13924359929735476424780677247223781427608588509635614719488,3503769925023508403120725735528997519413498128047257466880,867178294827835610801008509151742419545951425794628269184,211169875555038247275971159538038689461235123739771753472,50611022693649248445003261961946680672474758325847801856,11942291415009915372359613295617414588113816411064727552,2775242285650355265574495891529113863148730156325588224,635372123863582722250770477987239056724978523528549376,143355858307825170626447873532299913363195229581822464,31886895219475135015217137712603264725251843623616512,6994750993535906920078386786399142679909967346987832,1513750905724127680864391937454722826927500871041024,323313409875478655871130865599358716403520327380480,68179255754858336308448322960037361763146746108928,14201039965134148049217301717187533988924329275136,2922916529049724472685360285423247548186579019776,594757152627949500438253228055837273112794152960,119701237923672828228484869442694850509869652992,23840328332120507606315294371776768960997983616,4701205188632844368378278202736235170866964480,918390139301760435247729717964668963355560448,177832479942801796818211975075604063301415936,34151542148048527600898845729355706680360960,6508420921057273407292469915111860313929728,1231557317034556510056654941774955447162880,231519011798077888983820131371195880885248,43261051627011809808391738146420526278240,8038798726844520621272166542110506832896,1486100534202177918853661642638313940992,273411053363349179707306059255389235200,50073382063579152660627165950277625856,9130492536572718976798063224032865280,1657720837114471217696413947307521536,299676390194407037955035236077828096,53935451751667083062550139364135296,9662726116974562379028634249516032,1722749277543846718764428903958528,305569850047714588260614649079808,53903158206162150596219622870272,9452945408089672661306152932352,1647371920960168202143395285504,285168191470284969921686540288,49011935788511357573628263792,8359756300183901421163098112,1414395136265001554243053056,237256593923183825340222464,39438260600991177128045312,6492777370200603508381696,1058099293205404951869440,170576550866417544416256,27188723336480479383680,4280875542797188818944,665639129468252817920,102040703104512185344,15434383264054751232,2294261810504153088,336663139229853696,48235628829928448,6856355294895136,937335072977920,129353975240704,16555966785536,2244141041664,259061632000,35564942848,3446274048,510137472,36373504,6463488,268288,67840,1024,512,0,2&lt;br /&gt;
&lt;br /&gt;
== grade de lado 32 ==&lt;br /&gt;
2,0,2048,4096,1057792,4218880,371621888,2191790080,100903637504,768629792768,22748079183872,205394991329280,4449893079195648,44743561136807936,776335369907888128,8296338816339398656,122868315209973770496,1348964107338697842688,17832940430689993684992,196523971814021975830528,2391406180740483290926080,26065481800659863486496768,298044124622553465145298944,3185666524478313863851044864,34699120806036636726464401408,362130971398695260784899284992,3791345208840452468065820620800,38569361472886182609543396929536,390468333064795797623009891880960,3871553755823196043657602074615808,38057017987760849668592216619089920,368038492491826519223092138855485440,3523173455605142701375696893142359104,33268211950475541401174550189585117184,310837636046827614624428277539688103936,2869489075366797548893304282023450533888,26214778104788743755033162540010899992576,236883377144617677266679044866159843364864,2119131433404402680229316495074226687313920,18766418101396516796805819534469514301546496,164604132965150053436862836181661369720610816,1430150371476550314756236971599567116560830464,12313043847632252717503298415689732121344290816,105067470222447781623140648431924213078845685760,888819237227772017275167355580125315625149707264,7455656526572114127247484497385530619632937963520,62028020510984349258261134586972186398069579171840,511922093192231646713532662307450319530998390120448,4192018383837923758791831692487336004622054950732032,34066386392118637794422761953081413466164757615898624,274784985732917125884969028662235307062200721200070656,2200386869438311446643606505098940608474943562758496256,17495152220971073346308618593911132738639343479232106496,138139825165231317228562951874087079857917557825309970432,1083353892268561990811184287969318106952691890904555522048,8439894555626693862474488558539289489067814554730078658560,65325348592318282810640442898098981550348887984910665266688,502417736812449107497117268157306623724023617294202487386112,3840123074828923038181825033616081876169505376921231869812736,29172837952336809130467567885805294279934608764786196963549184,220302845986047930077169257712835929098538810367386850661952512,1653949139032680803917761402250977083486051914558548492009287680,12346271753592922468444986828753360574796991433134812095904077824,91645373567645392073242032170370593654118502035003493123321151488,676541032071946409099909149250367100446574855934842331429519142112,4967444151597852588570795792041970391204586352498372635643170406400,36280400303569060652658832814076938563782089924888015822409653168128,263605824446195823993048483432666471011483615868985818646050027524096,1905566624160737185266740444427689518109946396415627534817026783400960,13706311706528570714962892502708866694876597387433853742956401323057152,98103468090278656011768735440593541858438564980785601080270282434371584,698802174229567475671981504282180889145317351574988185238821318936547328,4954137281939217507496992063475735710481672274820772631534484753709689344,34959279742568746551815844894454607397931655190346367687062573384077484032,245568881686232098221582987939203028786224264243335879323798402946953443328,1717257538008627181442270148091891746139961439963051104372874547733016801280,11955911663921129633552662870566285708834836797154248182748563411032991625216,82879703750853624065467203929329090083505635127523226578935850160184963031040,572089710960642706383513528013656771283983176900678883825093855592132015833088,3932438769324625645584122187757583827677362367027220532769184588534275093401600,26919832300887361029558117630866268718179380900223078253093687380566264054086400,183537667035205182096794838543025743492158480823318301883368852348103650892161024,1246377953347562665577072201810473438358789404325867743426103053732132563725580288,8430911697017691421566412235327041166240157136715650360535086036043394271506001920,56810346023069024903957823460870050908980453431367523841169286716639025212474289152,381360482855471853077311051379352768756174383251009428992094314762653206777975701504,2550503618526199187878570017669310976232830865078389416331672653855509958101509705728,16995120749012641704831888503723977025321633253000588066195341177022821926992491802624,112838189670198685745486692297939545468289222521576229172955316910387765823380218695680,746528607682263381946103329854315306074551716275273733640277341263033564368243437625344,4921751808105305915175375210336543923554372947332130245175673809951888302846855300495360,32337004478506197189193649874290097987103308368516874009376045619088712652300423860858880,211743511624819791063119086625494624132610116282445751507211682576769101987980221351538688,1381890514675908087671413989792984868194420191548190433311295067461324371413710622329544704,8989030582653910418432093978652682110662715124868469027267533923192559429158402815056969728,58284065259880022473460605187895058626784551762403727667092194943126191830028749505560694784,376709179320641924302294786964228695400019805803905681689769155410460308657181195255746102976,2427186695441797076072060077744717134570639815765318216171507931178831109209866978725155549184,15590556008567478336634807981812072185610883219141533433065519075034780521751485209136198926336,99839388206752878704490609801980843763376953000735536929573208703990410672727995194032154632192,637447145986822419007657368660783224231392475731647338618539422431660054837370653585937035218944,4057963468998362312726489687525124943084064176323027344959459138617520875922482312918021850943488,25758059509268713482811748116365081744347680418920183224533673945786671966875143273230411192141824,163034025064945603052923751094950455704690201079848112852085959737719977020672833593156661725831168,1029016123513274829920154204361617587932563051896446447329933937749270480508469920489324179691536384,6476842556359465541929090428523764862129837475008744509177826158461338196521877714864586708859031552,40655550259190022522665790938994277417783054604166583312942962044129967426538929010300586692243730432,254512732156996852689472547674014471907318003901054826940289035465582286612658530375962612998265044992,1589095118735836856103749267651105397796724440521940127963021167231456010304866305579848236789121242112,9895967532746524427290572098255183564074544311868597272930746234712418292026563106022562874735037812736,61468361380625998824299700232205344082608882087019873547010520863828157937083795631702650830217885403136,380843708852095239791356147758009555941032024460203678365157738362853201718552078671387656587811666583552,2353749511075296665799392600844255625318482060746658122271650525085867304484334594869176201082775783621376,14511366414101943366261013153241329401568888656761300104756515442126595020917207510645645533542864326832128,89249761381732005622415837883909580639668589829858966931690638312537706537166890077917500625429131843772416,547611272668487025059876098786756588565685531925041921100325084951633928324903723048673332830270657854988288,3352122836269748857329106798833615809672433406914916030717563191699549940000024818684393557283367683314393088,20472231065640522403977319122200058427301060373117938975731067902513995175714520251064969714123459733109067776,124745078676835168297870477941130246119964696624927031336944532678714888685607947054692066157212601782740428800,758420006100856284190329004704407153575196280959833636901294358140515782099692582308690849925772426299016093696,4600861945743228952932142838608104717687005670935630156636278628318791757758756602244586299398322545817094401536,27850081860287252688259980454516464872451125796764712289610773873398056918760769407419468440724812539136139915264,168223336767104759373499815355007742182797798766185685027702521547259869995595158208557698390264768485866516611072,1013988432748211842839474738964230742278209212804760025309447919633657796509155359918399814821838309110609042579456,6099315678469359068222809637970216145169789500310943169060944107933382864721417035551571022729211374403405638065152,36613800413687141754799489403933810458334059608858248586861197777620909741200370079435310739089884003533661324898304,219350288112154574934769616107112952177910435522214137666912735775550341909122944257277684185165745885225203595048960,1311521177903585487928021593392432373661945460144043943500653888366888843211219547846757591120816690258837963346673664,7826543337147601025292765303732018309136486029715659831024424282444763968174982211119376982440029832681735381513214704,46616112461611949569170145275517758295519411238433754396238085435851502963166254484273048597308849500630482547073613824,277132312846375428442757291705012252693352609478160188581561008866916103246655283398500631434102836055798794992481159168,1644511518725885265034892964469851037565658907619864470437489173232409829351207780987023351795626427662490397915094618112,9740893663609014429471192630717998262379169610565129852189262854572100050656938918946779173062347232300689672256126518272,57595188956865857655162274729268149410481938937583150257787191780040375655058418336216532657065130948409624534782855700480,339947953940550280979109201386341146781598438408965613917267850527494250493465263429678144833878585248361788084749409681408,2003044844518453651108610179768091440844170047447391888092419349439891654585751749616486336216707970301542385921369871781888,11782407095553835147512290854635105122292331537972124966099566840196998525203847716638440898882944109477288337717292417794560,69191934110501136829965454583474379537150550101836406656183486771791946009491365501610283594961370890342844388518957026697216,405665316455124341713726608354187226685561091585268608251154932319795028915880415092067655589734929145258110293515146523351040,2374564570252186185269017737435322337914204234973494650994528766147877334211144565673919358739461430380317396056185453786738688,13877664453269647874715959837016037370394569733221971598894882129496861045728879586772823320782399424831483002186897203732373504,80979951489401313666954479483694216432568656528768465121863584533567525980906968210895582986020380198899296295249397488052117504,471823572349134685987816404301973375225894324830104008913965436488451645265164560856150160736485753615731696947798246160205701120,2744952374446077346228640007688881047814280111957028820772788759122225114730407971096543709471585847411782117890196531131189186560,15946115070541059217731839557768778498727846001049073907362133897610226409474349613574384406683163556674135160913569967614472359168,92502074063003792372270770855738792395745916416741132326055175661088449612302926378595615547580827845083218603702013711384720384000,535840904179450135273075245330567306781967955056793531455961613286168447084783428249523395029532451914653206375590743434901349758976,3099695842695670654277611039348238507161860498879826041776139305101128572564684542250355317751591813238148441611902775616288146780160,17906544619976758450064392307420989576729478564098310254249573565379904011726987406075131064026670604959297988394724324205593366498304,103305696964452752591781400974244501765072300973296676482033302842277180473790406748553430541274998546014119142173393306424998230360064,595204755106542345289685813855555810301349291322627780630506129277996588498025456162330861448072561743054632347330289132440568974888960,3424897274680061918917270709068159594368814718884805250999001331447907574947587302387288339627835029286543276698610836518716550078951424,19682335965345021015123674835988588858115478253367634422267860959589757381359401284150025806864572129189937010285416294170493354260062208,112969709087091619223355424755493624077175996621101666207903358515547833796760451777036540775846126791531386235055857337010822739144138752,647606816295458085155388420515582152979944072834512419219167702818849356361409903159493717453186877756745093004142147273623466976646772736,3707933670652345981115677815699938239340901022491686620663683836700168408824996252314095771484739132321672041038277392734202212295959588864,21204599655787680942094938074576032805627446143352455356913782353909598459396069181335300739051440901881566519499977305264707417547356237824,121118777245367190930556238368205730187949646998879427386032532300961440238926643013065850049935699711646372002285395889968683400241949286400,691004848392684058294645446565850997577536117723387061172356844380005633215390102920133271716139615319835317745436032403209702496502704128000,3937703916723956609992617475901266746474612988211874862078424225709073185040681444535266362706766510935226805192773114511964897858005710721024,22413034176819556370837832354834164828257417808531852494878876990562839476311174683280617646871367942965459586309594098955281793799931299204416,127425484140200444611421406778536441403657439817430346862048253113939615234587492625822377071699509272472306497296980428349272052077951181762560,723621530585462845157929740942758839127906988193169722047136598996754126975182881362027466547758941848901478300716135034186161320050973145300992,4104561760277334995992910486506663301116454575765612768852753218062307849101917665022054046928182100345145037325423445130571643490795871138603008,23255295671151986044960635017793448275121676803874262832269809922480880284638151092046245635962825712088449695237347376718241156558087357782429696,131605900807658053342194971210149615607229560073673962821062451646864240807517103339238185437727417647731119225667662752256531164612724197772120064,743917861080702360237395846107248548376782381371950086160589049270197002551265533573356867307897643646765468039510747725201115507611883314591270912,4200175810211707679523927449862643711556713768685640958317638827734386628364874836849944831738220258974695144709008849776516616080323901450035240960,23686373883967766766982471061107945148830827889799935990010386298217677950942775538336307205560635525389745244195699836241545579679818330028958732288,133417602846060226082311582563617929756547999089464078306145873713510829765148327197239455034339570683615655983554760261150181208849789128679067291648,750593859863698351441273089417306409972646732266398260992625668377936047335688102732351087294302406867910888853422097794955519391954860892217787510784,4217617287673731533230978060444825128722800203342368178983560887572804090876290166287002558810137166669103602939121392219397679608059701463229932011520,23669642555873988806486945206485471202074393884470624761752491483984034385201761332878376462446656328676437450540294227809998125109991406978836427977728,132669115102119395710689936386738925896580325702102097882345668925520939786185924311773117132717956282198243213738683529775952154606382218424661565345792,742663344709309403793187299578858188377403821365509123086832953794477818144282537725344797038086133550534082460516477079491095406543913236013944663263232,4151908979033273798036473940671534019344835073325319586041854518121133298093094060316651740721682893255848452110005326441736142676257139755990838247317504,23180685281804786444626569622454152557774836830423825090286749038400358820070177076962635585707209957704817612307129828909068848994672974869907958178018560,129245547985434763537997786574215456184841317305358015280531404203659859178659450344695658841946200819325203535689480960577185863876724290140439491123539968,719620345921419072488128835077332480354173830776192854088693724131583057578682285357357471716374126705334481587768002624815877077856559033821883601465098240,4001076696152426871541409467187451032918683723916010175732492108081860077347954943355289413542120664038242648798667067276281382477062693248282868056307802112,22213781373572685966064653292568228495414075104875175063297804022023404717439098775487342539371631101882535306023058927627255253577226509277295318782720380928,123147728321183458974485400627777880837405067969221469924152884015779532330817898031950671971250330814203737394153571488361232844481276704503777106974822928384,681670242081075286726987845071111817869871919694916371984551098078160018796056223790439227971341394531394869002807554473595815048601450631190803282154019276800,3767486181767144004732831521405759596978513459868779175095579887897847516031235028025515065087146646295522387137590824862748700433395138347066317300085519540224,20789473866423705576923409498676337143133115311789298228424281421196843062226337265409437897731257132737362961323211511101033732701403282615771437385756684559872,114534068460144206346033509427576181122045952443957277394022599759981209903019371714524310877407688378168818737497265038144444276824659185100641972822800036638720,629955560239095483050928361519342559786212542853320489887155866635410094063474267739492011932937593088479419988896227382061436918767141045079262108620245277188096,3459025123165276638520367880612859287645092073797520916134546211709848085682828087186728350576162125555562632933461700017597320606762992594285995786388820428218368,18960533221104092709958540110880743223875415001401378022664082740369047737816815463857457734991992931410302089771089028075591063291111268972606027358178133821410304,103749212024109665436923386149396450196968476731703964144994181421526016298343178601907109842021306516847976901859726913885977092811033414063281372568296206048145408,566683921718143896819804470775690259447574141574487152356686221891607301230506464910511536197999292946898467482384420339677859865483516144582875145199406519684503552,3089606853175797798543735356549279065842036855908402865879981782497763687665421797096839848141360879597941176120677003018676032586930923630457040738069606454589636608,16813428309330040481942398770539325329951820061062107268289650129053701640425553928186005318263130315030238217323414807663496128317041154421454432648824303184283220640,91323938773535744470696316920197304517548630617955870181306670644610622203163004772064037978917208782711611229771973356306425839586412619841475874493649574732335628288,495077266210966855409308068591897535735620618777629233785409440293437320107140708931643185684033313839751595898477171768852949439260586499706911142978613339475969501184,2678589477789117486359501905154246823481736498544599733322935588718974416349566049013113716906024046917048316802171675747279867556582789793113818987918304069597985918976,14463358509208060016974597648855774169517958608577080168948993345998613024633787847661735676667730027827647287243018023400118762710374692019635803486724620064339052459008,77937619439678118311996136071428411996291284508451717873339187371095726706866446908072563492037135576618911236449605850834003414128024048752388733555052114733787293458432,419107547053828042086268820924647381555124019253135188683016451631826649576232803203509890153439173500636801529137095323088180419968063173143900535952555177959245931339776,2249001582841092663364137250363898513233463153162052477668611597116890476133628693724323189068237956964796477388818666111304330002059671974187413766415458207117085604204544,12042752650516170140735063372595213033805815091508325011152402878956153437593841930710415366412068188250092514859472446341520749586187427731888062273673364045774120292334080,64345697391487364522043389422498764953064309012340117851281154192200774822757445287236232061307516839046056251955770454339725583358868976416537013141867284102768865041915904,343049857406276147234112999122021515299160101656101116651804933169213045187188590941724978979619345664930247614464313697213307293368971840297422127244886788914166022670465024,1824842708656184770331327411402849014046014017791658726248570146451410333644354598803672705612920030129070254163732749988039188413287384533409071271440935527162309145775927296,9685249321523762964137442002368875730740455342852869258997997159375691760268284329048407183595886286048521098957323338260979105137989957159158361537496670646048009744213307392,51286173310894931010159917511816229017516931830195681030134818118981513745598845167555620778832870976163647580382117703920823572950891884540034968262551512143760551702261194752,270944968198960550909649545210984531608001027722208216632730828524526380702748909102201334774360980472738670475303975038032221660911333110962202665303590438982936149536707362816,1428040752295198677506251161709726409650553798494552797177947146297190520491592067190568265760591024441459208436511026092401588871526825942845219645130022207673764747617442664448,7508729692863327331015465811908779279727869062342327741928732883540185463267266634583095554857733313191667512182421881522684608444878924807031230862716581905855409976585477496576,39386425010908127509052361703310494839136395709165503240345124337799591533322275861050564061910682999864322421403709261667992353118372687334406087785477900412212705935093856542720,206095715237924219260005924619666854116666227245961282939785106106449315578380421949173858908638063647516517429074892719135124592704160031575947364483549112682241194399538132678656,1075776286792806231474307871610013454953071236681562590271035004831227437341831045083634356553966774864796537841013103622239228438673187894911293529619534616160325664718372592152576,5601367651934490487256175850898656938813011916830322678672911650940103168217210341046231853595787818418620485074491412145195733206443185940019565499177363871411129277919469078981632,29092028375739384714785815660796554426160879554414810555575309977091962193617328485523895670596229520471382239321446396265514851797396437327533146978693566842726265129304523713085440,150712971896086232584920998327745579840071618440010087826974741499423100081230647238886917453686601605606962640795384947539871308797099651985132643569528113628456870804827229426864128,778776888047850523922878562463893138607849023702587545097145288781949856606128280105189941033682095969110699555418857181065344470335188563110070745854659106955004152566531852769718272,4013751897596853065312857119265283787478039767567752248156831032603627090016029517547386296349561944035500122503991682474742440856390244476581798931351403286830984491676790156678791168,20632529367040373828805561263610264109436116816051090711690965439199454101420610637447376570335072268058972097773457643510138387800478335573706195675377665616856433568713211612318916608,105781200266544997714819074378583619089840008531810365114479517708526246735510447740051184689827319953067083344948241452246508790436939460857610029782496066051042345296856471177132488704,540889220533052062290856999405579157730704410492923949220495553311010812446143107972928704010039587878890275738508489563812975657757374238363540415065949328095374310452191600330805161984,2758302375040737964339239885531529536269040145207340487538162866288344778192030628739835344024165574975169272524077113945227755956685499758061751966426392234182322914302845701467552534528,14028110063400539567102192347132524688343293701729806862368820988241099329703398052276019816807700790884721271663981132526310525013797168799458134101294809210662200337749714619789512515584,71149256398620930054655459861556836280291931603590473753072081671558214536322134027656886551994618992841428564915225664509817428966360828721441328428098204045495135173171690744563552567296,359870101079833391096329032057030490714562335059221083027540638848952606738831696220229949075936921691607171588825233301111970444742613647153443239563924802919540293557131720851931482804224,1815163597309980533653523228735744952799944247172266850013327453144664086559436446892150012765923885455833491965409917325396549407542145001170862125752477781449645633740431401836928317350848,9130002700912705646258109465939738402293631222644237538476456776828716172692479177797318674935637181024414270727504337350532022715620067197907726047666120810089791981940088944110349276131328,45793283662959703735223811810127858617648780698768324809908165477629738797855509459699525670326774262630832390452465780941913942661635913544791076937090836719370776340287666986475416814321664,229033565346746634005993908882199267660050329470709302497767130570978564113862115480480776925244724167584533726890027881285170281153279684496764464531919771117726310873795248436528398594924544,1142230518383809538473452335314599875775703549253983145958861817947538150079679088533814792309781304945267192279164252824024575418245801315556632664667793615801251267085219974923351824598642688,5680107563664692624148958552899825635369035571339979010509907195951710965411695274811972602077348415161031707907362084144318685551476654822498473462647452878039140001747979782242947693100617728,28164270766927563947415550580360182159009999491444920957381579843169951078449795264264691440162727604504446966015942693666132958888518803205164848331492571414183349081121925248003162750760781824,139242131344114437613020012857124554648793504950617535354694078345374970667712146407929793722500917405021796788108401656460545220315449112200412570523522486354735469256076936685893337588621221888,686379229648238800751656754150083427577452477277506257777480900983017152042219799584743661955134826247169711193568122014978894991414519643389319849529989480848819329236208139548315846054165057536,3373417593120998891970839361915910327804280035961809142521629287129720002531230807300231511275999917769077600740006413749124625447212042992173755280200492605040485490212985953340081850173761392640,16530265224666868754061222857483075696185218471202589707639312997217305032817625446310468749968766347732935220795944621566089563444560847074503769891211720279467948308500443715723020111005912887296,80757818346187503241931437827746973367472238717219957712673438831246856785564794345972611077061681022307802515624173073093580090011687797682129483938090427003897754122895421029152342614270269882368,393346890257280967088183344244796729125509378535056242593083767384949647157228513951981194784031744964523202774855024892064775221339467704792621727947758161457573497493821123755887992351871543317504,1910049593937971838090637654340941308902435765538470553148552736416921218378948149205934181225104689809429725206447926634923444463605911343334205825581244472858649031400721518576757088980121280417792,9246615133095804952309957668943427602641063343967767592340281089506935869231555032100990981781325630222499108494757377656411366285287115378947279414401200593479455779391656419464696913504292178053120,44625347293605435837849122718568788790481153323052719119439932401059259760879932843176682848332004714563290382065670217751673422043332215520868248107728581001970542381805626387043438739638742507544576,214700292351171295407907974814741112493089970028861888262853288041704936263909999621161482954581148236514327554916178621796473526619667854520798668330932914686873110257160120833593367182255192791897856,1029739575700345409599362914962681911431937382874644720245589191310560831231914349515463081207390031643718863646340760627446602957080142440714560123800651235798100541330415742703447699018848586142232576,4923313438463705466381246333898650413998385132143608368743228400628752514912164852911533741509639980459914900957132196759102564047703921167607129441569942325131453903848999918375053983762702301635387392,23464671477027850369435929574271210512778244195261789621730389963236902796635965421482098921736354545176139462200959925433007300198196727630978900104029258734202388816827056114539178287214324907967995904,111478214343302670877205537322087525469323662743079116597689791274806033576538188956958068863387941765520983562149314644508199573555936108040331513329198535175226325088301666068642719259491707628403548160,527929226124586893595403624524764447358174694136341860448475654713394817519906185947270091305163496569080587724876255828200828588241360454842237443565888569198176634931731277203739642919323339275951165440,2492087261720646488136031121508986189908061709529354064463071285990938529483281531295966680983938135135390574934751791589430797873427354121940994669555902835402572969327427492512457103954353512041184487424,11725849160821023686235755946042323619070719846591084565611011318184978489810458043764690862278162021491074919848483342329486322573498575618478588024267102562870809744116381170573462449709555781670390538240,54993400256611729275072553002395012642622803787973322052020449139740572205172615755689611510339864844001630105470874580265632312786606953418204171852939966523958990490887963600333106011416475563170826468864,257071399620630580018397232427830149073322988007943039334958104795802744033927292120452692979476439300066516631834865636209948630958664602702982048241363065024064292639764486908628324580614404308483069341696,1197748370534666540962958353383118531881227523061846702657234967840032001899635433887550972107383403161136686918992594563855040077263323917273547347317122338748770100258080318636858787258547264442348589580288,5562087043734413823719791830800245107390176553518672851581665632336970650007922088914923794560777447760602180954265311896471592056221458002948041440199458514468693181673853069770449501244830887587273054134272,25743173006665112656274840642905630873019930581450923081173351112089509125382167142368002594679738384534906474130423029540355556726430701186447697772059476999271587308802572041448235116140426916477210356087808,118749069309073161306089810686552219468576643652053760925163881856150826255918281851695801866913829597152584051610436308234391141552167185291415681755115797105839855211250130521933343689676235968715536406048768,545926211918859006564385567676838152116576327916832097208581379173544805841617126047466514166310349546391968724320751350116670420173375864947677394833333836085127860856103315979304858816600668637519025687574528,2501295632669999274126212357070632311673929054096294709948577144308251185410161492449460331774764914857898766559046286775337076308841174280567871075585717584615874763320538818078055205225348362039400622979940352,11421291181129300408213109537971338834740492330135842804747213399329714161589001389326745321493321394713392981640106404611786664456584935171573650745838107992432476042330728434713268786032795669085821137207112248,51972815148208356062228648408685418624061731169770661015441215531773665716068719151967630096117837608402959470812039916023525082770633777510475364209310962168175292753615148191936079219997951437790580077860618240,235689315880698697660679127878651137767557661347862885967065784980294845482166606057616921105567596923257113007631551091018453417639294771961770276191281574074153197904615870332884549898085751938317886365709740032,1065118494275223857073955067977834704742526485375551881185909403169836781039419492765090720383415821193728487806857474948921635543274087070449379261150952899905501593069701385191752970918655180867658026989094129664,4796694824331772912871587164289411459259289728802052695416946058709305476995552890749037095458294250234787671358058862002598263872508773630281868510286730170814362994465683739731609968166152913827742298193205785600,21526039896980565445268718913568234843863142851558050883244272675585025326870456761835155948399709738164630501810678505913083139260753301746983294814374331029099746472520343038539613274075091412707359552045989355520,96262211822865419236172407673472203460955748561527088922979531848392250080663056996294930239256277173452258621402477583049269150323314572020781714714567203334066884535959405723228745161652076259779555143506173591552,428952225837681080091879502718851603505438066036635077598755788568208910069213915911430714632943973949057322109156683741761233319303105407982401728533762135602447917156817685328789399402169608128605300353052617166848,1904649892743422219456767563186718033261306008588774749482216030798707187954970737557589272783181882376557796182426111297256081205787482995124027534520426663480792370775679511255390552424545117131998995140467883850240,8426869570021943600265311358090291255451533605466716520499900723252691639488542904639911676275816056719537222664099277375268886061239202985501046863515843540941476629119679268349673430420772922470342409058355167846400,37149588755103540808806633316669387272811786595825843668705095290830422329915952348189241510327835341134139418628666551991280014411398813112200484303544899938529847585406002658403521054850097535585781553434507711985664,163181193523732055080232950114571989874407183828503492818623769866898398108025602675427759223906034644119556416203922155628949401335888727064544936687664187373464723348735016827892424768520776693701704582084580275712000,714177697736194837569026573110135997025761796356712750127221580820624640409809081893483913349388458932905013952605728388688573039192254138197107065089106868466766301730825545009141967564705886865102486227516512681828352,3114255700364611658953281351672373754304682497128975378487294105274726245091594841277464677339120277048267671325975028603410776947147464620461469819259404547150241138720709552940215181978188318416881604816802759790174208,13530248484717134949155310401458082521847168476374844226696523872796532835449334760108546455847230647931118044478222142357714516424897903467695752602803924899860847538762207986806332009407682783845472159143277165434036224,58566936209979918300319043298444356331251459908385161936010857789167471512047206230192607329453223512923117748558604756947109963716707669941505514525891693274262324214877714271048309775253046323377764236302956584278691840,252572561041617393134102116634909011788977880387862711348953702996027545907506498693996020646205795083622338025688426642094229098034881486839754011946106532873103549825933545916910242371144617629365208858946114742375224576,1085171684278762968789387436846555897060138010567454128412325433925937970574080093788308605578868421062567599125857488350381210761629936102328083427254049366347957279888474200636921537878003197894844548468678886164313415680,4644950031544147005196419741186962649861021597774619750564359388422442154594281774764285628639407024440556011760360749553652012725470593644108193823121317701685799131539017999530902092956038908442067932540748142802430515200,19807315773890108326530895425126606691469734397278117963132792297134401033065726931200545624130029579243782251096848978632492298632362375456686377239139227430323783162714642548933505195199585181511620673430553780788359245824,84144136629316217579830762495940550563315947486538434930988920619053071765556433394769224130843113000514242423344225008623433830985088792755521653516263793364402405579913243038706580630558485659048153227531143825101950827520,356096255408145548147740690238358171881730665075744664503142430058539249074238556063424143452718985793172100729354867326405985027799001657039654816471028627850209297815644061992260768890575467935775228365038532231162038157312,1501232373050630032427188980135766802790085804418435307498979145315530847328526077148551403877777089535334221249316553601997232481949369417539505857726541660680832277812543203099243378097974469828568922055981270000342961180672,6304592831858991157948925191955626682662597015786699268802778904989068075833528693011140101124708246208142604144110222674296459517538520489709061892568935216550107584621230665842247048836868899572122818170745457938905855176704,26374631960559693675099843247545676046489974276038897194394914870363063990973303007250775683364444890497360758160834302713404931518587109887159799410475552312993428817426476535996099938719494212528679175962324582208654745137152,109907577910903787589348779780216047231370784693733982731433893554116538570499375489515338330632713972817139446135124798542809635793554284462950481630923976552153512949719770838077701895465637295497276727566414862871564814835712,456217925177857851752422796961765458652796649652682776792040151959691166645383186651744256910005269667267246202242820053659732011919242293203245134604536569460732125822810423561720974645436995722355025603731329506757748954699776,1886305954147451560130516310747604018003485315415389514416991723961481383745161545353439579139551515609662269600859056749284795548074435480245813275937187647675290203885074788451558133104977430139670562509640201071468024440287232,7768525627417054175100388251564489012854276195626323843061635281336871896168725688796157108869286342977288121898159105669479330939805535922866014516110935208696969349401789737122997486196073530844818948286523892604349155149025280,31867157756230285496041104684606426891697842828422908222255079496722750008781341065181880585936858352691495768079604505433444599590229105500875268809072102629358612159968403347654604068552290022669540788416172717900948527388467200,130202070860763095128653870667617297429070999424181133876893494227627347938648455437746052142057814186006459705170184835348148638607324771086399418204366260400708050435481672770144741693741437032007671483295428585922034169737871360,529851111894390080887834234058695889871034630874711593594129635311043365374474229304642827995373521743474557113244347823215665503119013747106118831078270936936456643421984878785804114799979714446722973937653026011568703872075632640,2147547397447072602502886078371500502333180469057420986132938443409873918057987278704255724107561242602387347254497099823741019738669943240544251595794042949090559219789139651512512055060219605078614568232440016081595477357542502208,8669142793903952002092863969487667844597540219118690020052360457399561223603278183633863937342920072611239814301432221581550537011013652928229588812289909842196677899890651225880411735264268346195134677246924265595624905511656845312,34853434254142304055811743788395532628292925453336408743322642903935519325331105450869709148522047440227845560228647049546660432634225009696018410956922526639487177004094562957853180310011248050267319162672213599539170053260167004160,139554080772411962804343627478805494634192371945867717537517240210034590218119425261911743916305793623421716172582913365315706600277462613917414847906221532711521044243145003225463562043475256878456984881253928590127785291788188180480,556491524997869987597480942991924928879229373745216395295765705130759604183755573391925214016742059386576250055508903997031619107863388373412202071250987085217078714426944152024358454219246756451644247677039052286456583217594573058048,2209963587686263359056380290057710128461856138308441535972719820756536772195403437139995500055716579799123867486101837424965254518419775462327325679014016394840696849235342663327110725091200756270353042074783973025344498799732824313856,8740045981127748231072311749045563101135389283178348030607227037805967683026769948268098882923641226516573268055928262172519196430651354786203757062197922540902347473010720590821678274651263279346546960319820222856594607444996030474240,34421978433127944475578041283775659472520526334114509816179523171026849558563102662051393032796552053296052564475895959803029467807833340363496432933961697942744800493476856465223057337212502076717992198186268340835579781051844440465408,135002843013990624186557010376244261661526071084747026635272291022088735628912507482945529258956066572804352625171732148622302716312663523346385865344373557224825661452427883238168374778634500961573113755711979120905782329126632189444096,527261946660553510738949761823521805653683873272162654152475244004055243206752097367477767185332382975355618862690866712643613121254943710023156122899930226115491560933745302323224576739784398841374119351232587149732289660825418770894848,2050585171172831800355198408995238072405879575351755276023289472828887214165499514157407853232067971663797804890190648216095689638703426539988200779572028783085436278851586253771469407988134263895266772481501547208890934177410530669326336,7941243175063210752158991932587509046927523682079560543876837922602666861803610320117734920988965089032796661701100939460298487050466612999537191181011614963580276847397363663444887449905763211687488934420677285349593108602576210517360640,30623152328303995155946260630734442114787825624002475804168321932598481030068016421446565073566445173621990840535364160507392448397263430635701103031830207434248408448052585170634499151374380608884604252744515994157448572164100261099078656,117585404483660670096350626524846946912436524904645708159321896265327987090733431827982981865328613361064013567048900525780087473836510210791202751044289675752620783050003593370455542725679588886373853740283972692588876479759356617185939456,449562893691791008165866699143448673604387506443596888070639452587430697304002362805299374334341907721792796621245685709267268241884491148560253986261103570777130044774880850674527987016981696686102617780750323317530958918259948919244122112,1711403433701154637366437145323637989106175929388472617474327128580160241055745476885048127100053894567196241897739080009148395740389939525107074303114141929720230990219947038542618588924022774015316543345320536956081284922669590859405156352,6486801545404977538624416178991356247434379612212161597783432161074360692421476354326266999193736395556093099678225172353210702264786777398379880531386856420246628894629196560095638726107650677394966070364647835785162306999625642270691372288,24480284151876949753621504529137696999803678957314580411926040080113594168651728842396187746768502846543624790992195769903600538048915801237722902594748830609037683352388757237858581247288487414669576318256325716013994110030774976001338322944,91981666816101996330492569081399627513086772036667406649751407586377014378209561575154538217601960498562501655149196116928853402955698544888619597750147776804937352635598733253088883813476775911797222180473816612432880429060797621206514679808,344093452544116182948911776530971796009137824040372640123720106744227380996189916379053863348399880521199367204971387850201931843769431457129187876928660152920603138789144580248350774296941284181655736458841385258417760495666926286069059461120,1281542988132650656960175445849306284260317990188426042504843873489730057745759556233865480758341154237230797952673489961096369812345907770055636410691509583634946329902830007413654114316006929602738983485488837281618544822242483159089427992576,4751851894981559163863181579905672062922151743882567301344704002122753972275922285109304656514991625109013226302463969556336417197159328152342164881168508554714004408336315877383317380095422488126551321377974935065177976451498062369455579877376,17541101452904614727253554673078336504775252049610008186656055037655692072064591753245762548189173483875769366901637553888167555466787460955268196301653621607495284416602879956117197915707558138227766835417951004877193286910801167049481908365312,64462383391950294737964251738461902343821836828675711698582322324381896895253740333386729991682489314278399976410651009716718351922127072697961853601600757160068564396645670036805697487724033107120565724096201634024012443179440547327236466892800,235831963382732253224202123560903017590092339020774908226526177129026736253668907924842961182695838070753677631442869656125769032868128223500939860052240600237329375269097959760860973674344377201396468307750161986818005945528608336452859118562816,858889013033822065531346256704665251655449244089372205036124374653365021694248338557029501631582348738886792807188021763845772269430152382520685917695850448702662104861732654170053305169461728375893119047316388773716943010904190174951584222867456,3113871967853614933453743396847369161252480252197130148444967947260824893506268864535157248742953144828973743858724122929730433819402102661722489259535718458849645634486343026329409170767983478347312356149304942051763562872527610063051478917423104,11237896285817324983908151776996397877306677328347129803786417013262919744716010474422933008305383625027160389356672674970204552186932457582409499641565140166814127800147726356307261114407702447895103839694668295228161228664764560837689566494580736,40372075619627965237244402277271250371568253097656351304297381823356083889734361734086971467849513413605589289558089497738700527875045236537995572325730041954952580706658868661902868483768193042518342204275317475913831319485911208932398939728829440,144371059011814943522160146090853736996137624958013881004273878669586797512969151096897243383099383757618492775014606272289310154557903495306114783218730368664569039749273748635936166146491617195642186298763725700838444408265928520434506831405445120,513893844205478861004191389877903190983842691105019034308060016949773695036409200516004436495236598631616986335844515937419265016195276328989300286681157439052060767158615794047734723585596283949874630456243575453354919231984093494710644080142759936,1820757422672803850956194197605265796704863689139909553102207020152545625743337573485008619856106792313991426915841326941851503251393336404509358436094200963295007547401671818711664589828747470836809060023329511853806698764131841537532510823134642176,6421069087452619293344283129780797948592264163197380449393925377610948126607169469992481329984790898097441541234579763166374186096389948046003581635094641329002243846467289796358693903469855250837927162022947237840279698358084036093955009187272102624,22538776854743028955330291718150324574246554559844888063023971384569367319821035531176665518740598148756464074486295880132112232476410695854495445535203534901351945868508072299620821326244197463589882910730453059700304774222551418599856222579078676480,78743052837792422375559475651873404961576024055062854735960913005957172338297275943193958025443784209942730521885250475832899017755665846989083460098845133611761126294746199293796923321338715941576535782139339100128620609305664802503992190783809341440,273806781167094012241872622661444473181627045184673130486856263434260750378639322184228478263696519810007304444862018117373790375717427708707177685572803100464176598291234807848307010797164692561904983557642409434424160466106112113711450050666659254272,947583152834125915755069019539733724080231102212454595742745260038308407147292033204905368352684545883046712751998857615884015693911776937736373766556513966705687215021379448389397440248111103945628715656226042398936263119846040744616652921210512040960,3263794165204065462603593492059264717089295476320717896120186044709189579204839707988039794119302657908128084784393547799668442624078548811934283653895787256893442740953258521501716419724059521001919274189772628771724551343703447098482520200138497925120,11187977941855528845890197164397671278147866206394938685076971923836847859242104804669951824919171188338685050479413119881533578344386875902914085461534584114459927124202799311591423773971015749662290966739244856379806047413496574529930513600871222272000,38167608372421808282671771359782860616711184529559043871776288511875283101434935916843932854000858294731939259645458992498709850250384990308845560803812739481107659166960929584090254223457614221217847653186098740697039060001539237721525356470175710121984,129581763302032248158080841421298311899895391958506285137492382533402031386788277393765908077869915078387542888121587524869586351350325875116731374795981754555244165172336660417458495527176006595033759652294262562075539818383107546232767640268257539486208,437813843653304677226296196184658812572074382939476313813696272273403250005642358715111186209339432636901355307540192695910443244246335599793636833681796271668910109554235084101651565438506478757923058935164796456010035942949597196550721803758122280919040,1472050888885176076980676508338956664263697223834616620273437117903373432355177740091207755527764840154317514754420891558680096181658885347162423541698293582679208793598889275968438811575641335127118539162015613185820013136611426969527870175424106865907712,4925325526278052840864344509480116884568040209713916100208297612484497522300281253787605469077067893062295040885367980302862743509591265613594625853320830171476948633418612793271071655048941831723335977140436814867724437674701283393819773352904135371501568,16398981538808413218919830468431795426324910866931709232471459894324552193301565778213030601086951155701646866239418552095083037207050117128524980083179689164065201864116552113562826435406844249114908433547274603893064544717145571465337092997983878276493312,54332497219347489604866865357412753527057430379997960342183491401119018073937052629735349609396935936485266345714690581604471112908284963938117562591276566873441637636478610039873669212750671698250586611949437434569559049593001050740369824053771056645169152,179124225877819139458393608898415316226460647806429683855846571970923966091457079264890443718584747790934752227155638935150400478803090896074565580764387253479847771853725353771613989513253408927950369392311208283174451475623743996965734302440350140359196672,587613635625541533880177934692354359763372553523465318117468645302721126989065966265699365114429421446854828124612693032676964811466902839236507061779857396685032156258895439009101652762395320922909460390237437896569389210044197236073021350215109011753193472,1918064817759548093245675261237979878029221306473877925157685085893006723987896179429706932065723319075018695691569494058869631575283511654502205623931240239185096166390945688606688251001356701992120893436057488442880091726891886559779367426317477571647188736,6229591310482611215250800359611165966525885468280851308039427630972670252006746719107301892109061647029762570644354612657965841217564990485345310970176746574820024923575932054892268854965000738651006426357545307610931111790319470326477610584424208678271918080,20131293053290559875609251441449884896107117627509397005572894037193137154149772601185882486196539310112600372541870961257602925964078158990912580556778572875149177561223159876367021110650082540514670169141248200263919458900346265687528762568325934956976855040,64727761861224570007793557191854331427403643603536864428632571240877299097154724427979495760858662949759486047550377943737130401688679917063796052756306629877345445948620927479693696410941276005351177268821293638745539420212815525557275901408202647780888588288,207065273243215026226768119666914213918172674956573983793694416482557132479243337651299183720758007841971271097923968871535638632335391656517679632633475312204191811002625230755464343589199864830025502057688659078249901961057360239961762291217473743133727661056,659041335954488007529875183732536873795282714407448054520703765697713634332582226606838628901215831035025486556245159330915711927602782973281292606335307395976358663899879224481015692607023517028933256023230434226437619735108477800302867475112309800467893288960,2086880983951035347091724385876051069911748584115898039896604958715626798087831201648581620184913528540508304983252290236879922853446834481059599423011100187486839600228078399196841589981260964188595780011309132432324670634812347645821772969112225185248022450176,6574356889822133866646251288306500885879932758539339721971177336253362027950135543550183774599533080883324277596751498948009152338767683429385518110572688550523686647278055816714549561595210842299606036352163815402443058374045861910419907354087849111820416397312,20604892585065626146595727672940254450696383508711224103971434413069062768820745628915844756904068223866583014396867290928786719227437230552780912767666336381395778736124223704696914042669168059100938622262710248683986813990316277705482613553323035564737667215360,64245072745261361647171729370277184965032388514368255238895415233577976711046424844871231026956284032197560723842327649337479119158962921617545229381761994899791220003645853516929312058950750853426052373370587526449107553811735029400116589889066896564395822997504,199274893330196155980364324936166553532798409053905435283760140614021827355347158550576509973186605974778688716682195249926207422386015917892924074795077704533257616178456491695737555093253991123845409164710454470942223648411608327602924475841744765922708283430912,614892965167064736901022505648989514203921063473755606530343635207203202047093500659787130497964619237625223727450566497722534716309254996309190073408801703958385266249572848147460823340374011821589389597180139845461163253716761993701718343783367176292066795778048,1887432908449178392787899427007934718969442914375389814135496988888179128273753210234873083264470577307026320715185501757622658546974641184491461475419724341669247841446225176459305564535616392135082868991878520703995443819988698087218562804851611197921583748919296,5763143756836016613005692911599634543861313876041212524950974037499268672983900976625051596587546755694520464216050734831951761022675148321295764046545108793556727650871179038767693328467913766092618562240247678204341173238023506749831646957179751834066659237928960,17504680071881264294090406144836553319340213234174796856931888068152147967775820370394450147184363217697587793789194462144559156183204881144646273519979814733301741762304917411020281350192822347036935892014430062328417731787400812183372390438188595548713428376813568,52886710242908312273484103646454759528047326777024830710512960388784042918538568858479756375064409182872775978692614815603522661941875157740947530712722165893139983890741426813282351829921675543030506891747851983692061373605522702652521665407633813935468347240681472,158937883943586624552460119739761319801856673279223397564607735040337257566358832385458726211073650447158875598295112577696506099874765734354774730244396955501685341823915966596576031659869678136060563694715688405710719767283564945590569530200236952971092500596648896,475102853123622452534249685993698565966496995455953205454954677947913651235724290963218840401913505706278249747407933368804687375264858793213110689956410303186861542018082774036882578622746824450981238487915196396575283108709396675933291450010522144944201346805166080,1412596160026572607677892937123997789309358581584703516140757340653444695778901323826410673458325332450928423301580039401109034301989777876175747907427999218342935906894181997667097877419249283912552485984457499056700608662234527285843087061636361080256088126235328512,4177432111980934643716209376235261795373712236119068984002363033394861716957934745694025573162102589230424572888719587518961686916978901100616339822314638576117369057019401204917279307475210836969842292992187878789607049371461691743962394687928626799602589176351875072,12287190619320953451945800436741172234402287083257661765059991077214607954779613899467291271282329961034793581665588707989717749237634504457394717526825414151063124543125090106596363022259345888157609600840674176369120971318469499736366669871448955601823003537999220736,35944994257473387867870958083553227417769159036171371730092258232912166768069543388014346376589836769639374942676416274625753537921386473793770752747519592936866410861576463851296958761045966309560701270524369125627084334126867896226166245166279981433900893731579727872,104582176318580750344875056948391407817597603213050823527349888930699106241797996776485561507360730379800391347727489820886213930019892708117125346938253900789596458973105092319831882885127244454441314161217487754918963786515683829444203209257421310353141314155391363072,302622465729274347788871353089031280168726462845707981326295738624748902362064955682844054596930227315434818345560408362612628013305061075239767299863041451114489556986892177235918590500000302459087511589259941837905818109569216544500108846146997012487671849650178924544,870882741803382026485800556673590982693731684060635557870582504845722621350517683328117535704563156401600276897021609586625025971838075470908653598954777977645251975446712246460789161951220001130347756629631129921844330852365679143621429321786491979476863282623113158656,2492436028641785716870648227541369773267970282303416355920848097069778700073335336440583510188196744219137263597262327534832090562700166633400851254873541656584402372593572254093021875396924896982295995869626038842094634885069048599103951315946762861439914962111395090432,7093898302116907708752226649671339193094857528967004016671382265661904501875972624684490726445346955214213796541574271671606803051936491607460123113137335923909291403385038939565229375668407645816406847067960806717761792259647254087307482401986057295441249943910232944640,20078593015205134566965407004630958101736227625260358334543589850016929384979226809691201225743049425686038136037968775576720230984709336301060163883517016706407028280510917635452079848468840233044765014555566193061712047283414815154501701089560638681641684488563218972672,56514482043736927356758591552843934019046811257181316227963363787580738484969290647728886823101323454486262356747998038372630633346979252305200611867383316575617076173512878865727118039563516859789264670329001487548577383172347225296463542723103169137377078303420953961472,158181304830199975776100487724478337119099192282644670996408121716704996873403898725597997320352551050912831238879985226518918037474729692407011068720047060514561441873410503473952443328619556365169984853662852916906889748668357997606798446795480771004694855075981464358912,440261035350443217409863843339608295715353628154753509927647773975711443519634628306932859072064374368116968150827897615037054728368775949551481710632801381125652453564259193781095185934974417401206155110691974590541206852376134943170860097120712609617369498634368758605824,1218472709505515137684237365352802939807708088778331411750529829786514244914225287264060393343270061729974389597568557526370840617808553221806537940174477826941794883967890953595623030925078088019855407481352241436280073655402291768292280309275704000753245035745049491496960,3353224134626427561602500336715008402681810956297147885262899879089906453754786267865646660435022874880913507973602724019241474008506915219304590523767700916339826465526865341795907798569240790958034878418053835192178240321920788927990411981075447742791980385643378916701952,9175745084597358951930117690379336625034795081384012658745260551343380212515132737967635576883932829454751676941147754471921789138721984364960384023140774169927970974789155628959731593868064961988619920037076698988273307138965338399342242609709908926770809957296826213134336,24965647424855407439054173042265778101544366581128811045507928323450969241318707642063217161040732341132775484039186007170472533843804281904293022500631814434955382786346237635782095760631105900050656504261728660852003408315195365787355709487953813119329408926295685025112064,67539496444757926887985094577625347219510117605079708497014195552590275466317362738797801867563734306235828031563386867396384978299882344967087084136363275970422559734683743524701089690196814865095540041487569554808695272421439268471784670697553693468951202904396690035433472,181667420715627186361155889377847901528202376748551738366414769945072550678383039637420951140908222312605468340274911486496053908673338966658708996366793478817966712146172097559635669417370850442166701983850482536714245622768996330057462711072249957945806295320947078028861440,485837778185234598008047329231456703429534389950117884674796728924821699006612596862229431845017876254079466276320620383657294192289674021724912711082501926379062553412000912852528379997815887083073734822500147409555281764272698125513332089105192134906263648337295367836930048,1291788063018520153301081927077310004304275962846263344572453627955022580248950977550690142124696083589054528767188847447894258374293235714481763515447416972596749910893575342658410084691084706826419048654539880286907249317390964622566475929638048718115281968229409633649018880,3414819546867518713278690134703214199127215457980962101598341947853832412838158641480913573155797547972134821750616676519004096736076345447946447110335930075601649363344324703080562271930630954323661806570647712035830122791510524222780139186521878433180731589689485936069091328,8974525813637765107287673082524882592867587222157190988241555481509389562178326280040352695554457751341358501623842473146382717308046689350648039356716238979842201905789740983861425691151769432670412553534260950605086859313242893529676453388159271539227577406898130375505757696,23448403527750373129095443004411432533383082525418423698669842620222978973303430111260961275873730258961911038460254503999725480240389502195700990679579416378813312306543780685848586386110387018903205048774489692990037089809061762959785187678697998948056245653060251360846786560,60906524819655078875532680505923765297058227545893421068277224406981412749662967610365059198481057853267825973139797807151913132384606925237895858525512965472658682264543591730381095030259803605853008239242528731416834900033071887264661045200329187344232381755747092246180429824,157272899397353588589976247319434242791145489505866105743234706387143133283285799250308081773050814375059489161480146155129512469442515841759994169459107134303053717234563008960190309962261070493788291409393977876572299514956045826691105421339609848330174331307505273086484160512,403714417872336404060239163898585996924560841372664618469718264018208938089114711345763442294329454207695783045223256128541142412530128080217993407941817063961245945835735863237828669809698192568141909919768009704976068585858241099011309294462780992715714009731052857371470138368,1030186096982198156597569536069576813767203599449848694239057264154362505966864751540438614721783871539978786254615966842823059214389103711984630142171996557979326751176883015266079485716331734055465567120715845854275826287438987991330233047498116216198922157370838183689848336384,2613177658333774219081095033311991343728597775376754398810043092195100814445806773086244732187905780742225685425350449401435131647445977117987195093300576362010029249903131248593730272371079084995281026247989471513807057270857054911677103252210530936133010108620661626863050545152,6589080123673085363751781889577721195268061803680113415997023443302329075428930104660496912240414911926169321452509883390642032292072565969086329908401133631270753759032020219753290506199971934572707566871236839806806237050643382357530972817447430844036822922078346519574905356288,16514826629314830512165219226086450333689438930421778711136915708255540891507708045692304793254849168853754812355779312628044692237397553540094518205669095443028111224443781343471422420434275255008219258396082301137065950675725808540289736207958246625658881632849659589642825745552,41144085201291778046532867104063718359402603513012358821954032024284247339076229484614251032224345400215474801030522137742287056182185610689076361272379054943140784936615445138898614834331412831108625984976173851858982547045569973158738632134952984646918927781408690909025011367936,101886291164336953006639271710277771140344401221374338646984277738818921477963705827502713107275740458954147036725079088055347568005714599052568540577654385590662444249590887070344533569532571041672331305366914363423479351583043667799207520705318518551718195056060546664983130105856,250778236205784480325421482522335137530564709417269843767428191446758033806268742028021833283035196896702041029997181245237536479780794929939085304343448756126289777192008984169967325167030902676631804198519972849671502201295565381367648085585475806162699152066572324261011078434816,613508359140544353433822548534252557883011951005848497345045212743969400255633624845397197430342626340826941707686475303539538669058393296712551719840741980587301950552569719623874811296488086853613214866173610747977957845188768764268246286205409249554929700475697764392655158252544,1491758385067669314654610429306072120675670282256198978533058393394064917805589428645254875299035619933473340416090926579821085740835415281344536443736934754772901436364140879340871707566910597138701970801951178150870241199967023666471993354114929320152185297911275510660733201604608,3605078064520503275495527487619209208989576174512386682537682863195739217674378487351471983050072336662403379047823792079073023216633019524822387915731616044789886554996794381173911456235310141409083238199848473754758060048923740244767653761521250603647706281639130439430549924642816,8658843116902414908161724563319636567214527289445584976871977945665200969532195463215340443803131203186486888297752805316530856297371698842922830541252413464264356921981760856095160073459717742672456229420949412429184062209338020113059907473798172209723741597586350042903576604626944,20669259608509168981821798142471732123759962855411565407575018022939149308515284666382152929078428058332308714577688426273735030885248749539573801476494721636943204408766836725858237385435835404829980777426647295840281371833871295558804422109489302129391419048156904910075471459011072,49034377989439577496262152713073949069089352051668566107347068668766173723008359235807324215032961338506228104855226475459902108662496102260171852343709272383539003492835727751122458557091777197276782604622723497677821862337985914309140800796764524555158862822719780699060809528926208,115605363591096546727414764750597460080241689770802521488101270148715372086427734393847990215506153744492758412909521643585316463360768313320455285411437550745130491511385285307492237765676653406533459239206736723441028178275106226141167933429633252331738766987262956793072115643709440,270861783520579852694891546672731834739312803879924090138113643673929902149310308666761921772242719131406783233281946380812360537646357208161295146755247336608387755517454382611064132361733844983999521638684988968843395535811781708308725356885381430000877441166808795870281766606827520,630668015981078988043851211310701926324097306881009182512152355695357441646114419974951466592724065372378275411448661489529673401192963305636010534058566176101383507982170334059979915402812209984809383743649289497494961551712971879540093534252328919926447383194486707116824329262784512,1459244624279674825646809793769806762206567448273092364417636133165739461673296265663209086335915786246308172123868278849824663451015563413484888476582371977123398319177411384720885014046638728878044147169932740728184082637981845768399932137014182037526529921499433927318720236024307712,3355216391530700221593398778848405225007712441623823698255454105286393322019366289644535253274632714046256739987687331030768881355700795562067342441198981085631371036213348299784052225145775093330658456382971369031203625814456263083492485455687565828212660888795302204951612360622727168,7666003870508537062263456667276087627515144869733427964052197509793918058461881819926938426532283827203620403910548346426498338131198875325653881988672656927873256508099601112572692344205579521212978243053281523710739431251819751329809486191654128292142935425322298416936641227129196544,17404619996556622317747368284222333102162761287256361658883701896968768474039854402515022157205591735767669162668381633788322427181677259163891175504772953733874004359657962902206412927890244218507722388530142811596582055426035452481781686750365808460892102378499026267481186857360111872,39264315527544481601066561543789615456447584981654822617461274168530692994428711652669493831244831240426664030764855420320466861456121692398462200037413460051102332029900131084479468060375890568106223367536802084276608421571385333493236368056186808576497527948800757598593408195463782400,88015765453935267274723139239234830634697431531846317860080774146251997209717711898561055947876976930993848987197705189573624530218543339306951048234865672157463943299036987533489697754542653210937429669437388148441513728027502253584696472110543457118005892598506288782272884328262457344,196039172812138118058706848530913857448362002812109393776062143503480745237912615285300533933256419621769704058271677331888096817562488441702756322841083177786201298192792405374049242800490773305310309069016699129739037058832362379483778424104614866039403305733764811775880828678052884480,433846623144676924607838400630448965228290653996671084598360524317627472378715188077861200696660709344895653386867568036944294901767790966478081351091766972162827940241094106134760450713499671160675308030943300704508273977635161554899051316594642492135021657707750072388722081558492937216,953963125999393458116875304363254906732811249344076404146040140065483452309579060395047403229024261773904587211562230477923429774304108104990535233456576691660755609216675828402436403928103652545278566787370953716301713410614182972645567756152179228594443199226809661029692177615821668352,2084107034205975790464999050759805510591229482458378287407902106024075566764083358745498546401841017172448845410823191962840434224701166297731277347252373161699455449097983688742713735141715100814737083362269848654414810142863749048009465045685957631760434562248557376558632850883731263488,4523687499515435240298792509053296385892965864270947327263851276597799699963065423589218461355072263035669304396539858221466413221698099469744782058493937243293194108148391466263251852060292000921096115504713573929323812202634140027748016282933670198690302654887940084502534528147723333632,9755295298858156096838898136037880212520335384002537073635221261254702016005005288278133044743331074903369089719572959088519379218028377303018534181659984712228053473340948735821337933524169661172294343297873024501468045255146069692696324819911019790755099345568156154708844997028672061440,20900401041422452418692594393315234665450593352102769149889258317675260748187859224677753534456620857517828409925464787914060813837566464399842011336952180993033033881528110601401292256504177002533497099574441925375903601255076543348044261914796288567956824774539692503350613351951028412416,44486306006798135718559943138717340509273486795460331061906533218672253758105112067853984404528157629972157530515355259787167743675579643582270348803980588479793562417116320895780301335549788576761505189629293968706095981288814051632276119517470808727285868305860562681040630283222155466752,94069053297417384263053325214754047833135397745313411780995295489797529936033725553975844547312699562127690943371966298535432052996862865753814189949032940601700362309202885708117935883216020025931517750524123079538860076453614685016107399802451974253519258043445239312066462809113513357312,197609176538948286413511572094671595390696919668079010893048992524623306775897296679646395794912555979682009350680896647888695292680566620394095994708738905295637044986378147151523799436225498763619162752698142161781920038490586123415642353868050141579973436708463639627101844816951290228736,412380937052888345607018095359279629660692047088739832624918117459243710617397549505549731741686711227676586034220254248252737697109874710093277609363846253943487846894790451373412622391185351204860510418889500970000885381379578065085108893908764620707871997193862100767426877467336712200192,854894358479665330011403157506340400374887633418589138466618227580809100504330118155301643755879069740615749331920697533998826666098018161097514499576031913011344609014111728732740196473428712292335022095064902774729860770603201325979507364980565124152920222842731215624178341734444846071808,1760516126345153035090725535210227777811128541474189612168930085663187594961851025734916280794580393801236761935048989379691074652322121239581979964498438098966423780983653486093332859166268616401571233591325613630629646299403970529447238130790656662894562784369984533382475753039135477796864,3601410033052820817538286787969021252256186688829253095410394623905439537462304942654670368990472991474717226137125011363186261901952839574771327147362564201271541000084521220406535681204189541505937276154462995517370062490840785535893189653278888438384321444620871830761162927282824038404160,7318153086560287327192592132332890918448334079318200345046270766232941654278474597859643440254828101095418424588601996289724378699709456776380594995114447619557983141269702522160347498705221459021821911440665755141747967998455227072638869467118669791954057201074352785752688037886943112294400,14771280715146073584718856276580972126617300607169788202927852433942489710332233596742580236043241204568031021039943023295052414990986652175921047781183552256137391645595421944398372401914288498976879973559285370649160759840710271109250229745319205328898401231439379587151575506413422812364800,29615152423892774803761534326694374944679228015587731673446564649397662050604624556215098930490039001343881705991284282969702667236573189062027641140300106846085347832672590945058440757396034839771149136951204831420887972573668376273959034920262091085657329411956454626833486718625880818606080,58976691342940072442873247867398973156417731741478973898499975407735347925704677938231171441325158244874069689720933426255978535817350580463123545205785939348768396698135904331239878280162426730173740508850400418064577638324762575539887261892982810309060756531507047245510262433353294314999808,116656498534234028723066647939362778643800890688770155386173234402190745164246135068456580512020312351967315181484629618122441445093869563400160602804376698949006520808949468147291207105184487491991119584688032250081050839109940826410348522280880907175295952385498217537920941571069712314175488,229187588344200275669636410274681045596457877850070495779666409921025672882689614265830572239683088972484282506895368962882330882187523222078307095029038461770772205140201385372675397550714154120750025920145369209547730184145138463686453458635139862656566760071210429822184958739647279831656448,447217141704058589807717882140490036898264260575911049293723591581694694684583791642040499444990499455907971705598795718227759966382114924235986780782680061150041555701367613788496003776644082628117307587491372109364140492946651590714316921269363189623414945200062593554945035351427015447093248,866727507868195160048065146328449937462895952334888306300683504099093662177975941041061177995006575090069701154281242374298828068098256672554164644571953582275629337444957976411208249716289871915181753923028192031380774017914253908095216608740547215475226261480584776468224551613442358251630592,1668303857264799217039480121775094842265086439716503614345680222791248702143339148663462617081437243965666322060053842496191720445558968443347474322352345940716807991913278497204721780107471635952713430808099096722780556757931255372650128967795410159047101337516253491898772900259687463025004544,3189244735649868890780074437402178949886997620906952230465988383791539430247417645086172285562150699080434518907452072400336898288528181668200129655575615217412453345774969257418610012993117861327366931331233129092632111037156038450370748201864936307289465218048620862600631279728446007414730752,6054975468223901135223684642200117272833095051338946066150250492535097880699034010931122938229443956565275389842020067282428212677282150608458892695161675304168817916199292043355145184171510171141139947375357678518430707302875428756802015404125803932226446656571758850474594766400950263296655360,11416698896018280815488832250432821503911617636267979405543069228181301423722550766087630651229559769339012078413676552900448897446889673757126848596288277778701211593149823104854122837327778733669854514723729631764268479624283717806393690452417676916726509145740980272484937314625334378415801344,21377855705344737195357952712416208364851491630435165315853450392399572042933379923103318065795830315314320532535084741962460590747908033346749546982287494564280712231394160453379224595109678938477401158277926911000001350752977721120833025562900101625323152410570666436199690325729773266190520320,39753469098161758859308254689611611272994949810210908890897461484307095627782562117635155663899772318202108819781066295431004622847694810458427360347268089225823914014845685897260375003204534446805251448222350722502597094673508457849743280413287572187900180071099237090874474071777045501756827648,73411675081052794904806077075560889857519908933227107203045066381023946131374673903029523368259976952830068281172744933417495433165025098264123952041933426682752755372747547500126030099846194667719219068516198457566429099098433268154557006433263804411391183816602781775471671594197268090307403776,134625212332200819653271748335694282391608201291722776279641850518501000111176227949831589033656633534766823034093458674957446540254280787608282077953457249746442668459036044548086848722335459824973583134302830702033771255891448070255471255870408790868440200033954551069572777094582411588389216512,245160695710921106276031892537374252305278337086375735045907557683726026864406662216510756930667020340973451077144838093469202641876620644266912801162213739332480417031798017088857456127861039121987928416294383060287150202567291908991477648482697947332612870233367575018541129833835745520978145280,443333475550151874080237225877352746713938559060449602383164258532484085454642905942246657496177240951368626818729740122437658112237296040329423121176812443446202093856689701575051256105991747529275643793186751193574166849793743322764382702174287477616539577465166207199127691005110967202985590784,796081543827271525286033883717874599531193529443208577464355670384706442138139276684112625774884943863233968635357294392098182293161952198723963194320051692194780215481569715422611869421925261274585617627738255239375677128460354650514456641448362590446331227100786045930588764468716689917093388288,1419463080907899452480431592865811125491800857255182785839808547791645663252378899301923322524242669674948787344256914271295770777314282254767330162049374967849780376430071205861456194582326972995396172179824460010282887849951088347388710893892562817546316873385033968327070898342516996473888329728,2513172997969398479574552911009858865611329241756305213882263910947632382992845679888170358725326224487892217712387687912845016417097461805924907441913968615809768678147672302116139803034955809854577357268776380130148802081038309668926846412301938173807319004642487198544118334363177641400380608512,4418193008899712712395037091679603806175846273861056177630906498291598225547133797245528657232347870168075980821804003748567854953033438392091714579144641902288763082144479318183388953621293121364274474243858273253209199957382375386115183429564449332995718734042216284483135472800576453291120388096,7712289695823384910405055423721022848008077411235062359154235574069720649124463701441415185818387095028392176995151240662662265539546153547644439620759957629215585649407075736926996799725786188030098721694832547617557886675756439824753484507859686176239682341425326766907749450973959671072710156288,13366900976940801103133089351502438285887306343719406053379223114617308342107339925554717611562049222944618031693389375308212195614557810458994149938566900700113661600538697192926977368551160778562614081097463564860222016395104966524001882797470057263855181170459882272192654869347800570495125356032,23002727126957893325074081664743498572874293580898940245757871345267229230120864783077682561356617581587171147279371221536472614655760217988405077069724520091652117281013539553329446338487296610652124369049022386514765408960113141191643911173966461049135597173566952112759536959203170138663045066752,39302632575539266975199970020791307170938197878070983429707749420594020791430447081171411176758086531254610776354594758090463478873712921737241441591685873445131416882242861966599238818498287861944384821805387066399199887085204697726372604545286336554023418108604473348423264275776065302716523225088,66673039045502317494885445605411209686976810228373203620964825031877855307188439196709020867690883357182971528789266953911977445702504494415528898125681936278591835252667080145732776544604426377136411752344727782880910746632819619556949691921148712454968250466858543252961905530892608363822173642752,112294322930236884470474898544211646041147189376244570888886287105577063416796165593315950319125106754680568909154197597325036304102305896518750394983975386656904703128186060224153476376786141251515203865496746124295018203469317759177448222280973385419243067957982833692048279267045521633505695726592,187774666501075691958014760246031826267911735229308033463702753703070813777648186815484913498185311212315515234343351417178620959553634305882237416978148879985627746363978739844884545541089585833265692591217186379514023129394105714616022021796038638732187798550638625551854785386392085918687231373312,311731451964084329750413918720959498868058426964434587673638672239875262324227420365504706959915722655898219254701579502318123289494852985185114469204726760021442234322024903724348553052108315395524285121403737208532015073889672786205931254580088505961275105862352853402604112021946244504175045736448,513785110569212590991199627123929020898111903609307204135873088032593843308764020361247208872774610629552243592732145667815119030967116617740015928649704245998782841719872823398518202022977335201315632488589451987551848179086176707216111210818936340986783448988244322590495062184658734497773178503168,840683626338607319037752450287707555205991704021316486584444063127486024438675479767840415302850036926782878373818912276718739945099641565930995440346328874874940219468390225703383737344557446800731768779285075744925184039715138111259327030889817804578192132116988173965964969147303294874136549885344,1365610448428766371693402104382804007498089748342720568750072380142565011866401259007607370895872149998745962888261663399120796592751168168280808588499879152894462645412513113424436833902837592786115068663820231232962874600200803662695250505347024326095010065850248638315089197341916137355555604283392,2202202734017926005583738959264587856448878489936371365080586287011250820954795040289159704662621914620963167403934459586783046804869579676194995412685720369556760775911014603920321319372899738561657767930302425241508746505975669350579466659207116108030919217325256192310955359036460784195110436898816,3525470777853365828678798916794422318777492862661883075669250007728250855820465314672344631776802941768281384432373197827596839322338071112759450651952580063717238711710445783260793956400549726658400777179493628935813157892248674694736261910705589691157061408711651944625989719888645451250486502461440,5602727522706264773104254111172731619175649604493323268748478983853208981041558289335185305959089507891050121058663812111745246963143558161109252048557907452885061160654298750275690343585876148953441018172566126611933484136342056323554301189052768747806987498203980659325519661752098674514290714035200,8838889973111973249968926542241904430716991576404585975679459863449044733205710432757014817884328485202296609032881076752348037225355820251886593348747146258136722825622136569748623438723150755624611064383669924365782768316313857844848997363987417924385408593440155294815700905251013935759088099205120,13842201174202791246801725296023415517139287956398564343726649030299627496775288384825971874630533267827308686413073491621158842688707714542111191915614617950938981971863955813704564567507978495548460666762330559003721117097728908706978977860650208313460503560109072754714694045672863543644794589634560,21518660200212012448092286570979565242465984553807543066260686999675117708411612523886353409913915395599126302866083431441327987419694104983590351511078446858529800494016584008439314709023063155729600789736364362072239687557518432681396477089079919522434873429045925947030549456389885296679935994990592,33206374397666385939530879249795406142961371763310784562331709221385771869892290461268790009015532096801983891273983993940206483094182178650226565967777194366046451848471708687158867897251948939896524251396449189652133862539598005524814985640268429541238356111944227285410424949890587913742493558628864,50864813398735669271022555087982322998222338055713107440363203748809104778678873001605417826968845151721564124314774177936893578225671726923083283991825071739113366297566516860600370907457019737662825862404451742028067957866498980301705014320919411615638956030598693578825912898287481381073017315762176,77338705465014964482389946097097838732792809228387768559481817386377476922570097106166769965159963488489239170209566240148391073442682763900561556402990562248640736314549114765921786803484613479211889481874839198615276960413305215248825843483077556991311676632416953959137017573733304370310007677392896,116722224969339135122809117166211640151302993326420770768618297633282847263229398596521954582374510228544102278934372924140440405073017800059432461455166374766276820604475388014490947740440817028777503776614075918263380727192257946629680526449612730006103240706432640613873622243015071167221582873440256,174856301470851645688402232970146975027127773370706034088804890297307949633771175789726892678275024661505725670952009211264524790459887745940348017533668077473303055977079376077608103179517247911173182078011363663321029423973682000960463786548996768025113057983920527742778696414545050782980345723203584,260000409523591262756665876733201396964559193566912092799767045371349165030777641654493754119591886049810335227325435719540298910836125052928227450051539293012134009620089047730263390707341506087433533172452412141994010291177521019320650896194423128981735305929228530929620921849953499925482204085903360,383730058811735612863072418468977751285028491450617458890088493052000257255731750432981145956495216421860150626597524724938317352297184285571957297997133094687082343637496419080061837254733995923490194739755985325732051796590947191583999995840758987372332599217966860240991408182679530892147442768003072,562122246480647844699296993334812636851576276494777671261882990182818110180923099433238474223399582188037471033959319926893549279964660571816994240252820887101944454859218937214586211328701561653569796354537597501929263982899519061959181466432319710323847073635134752473719552967104470447774369429278720,817303018452112208877954598507529365485038334616315428430130843300562931778438542079714528593890149310427097059539833648764172641241014751547493617538552133273810346727525086378457129058486181166719573050345407742625174967924791574407636257123842455459621094507666492273104946596815847420590086807876352,1179443424441043399800671635449529097153921479008529186408555658324589402707647988361519378460009424891324443134593906797956368790838823148303685574889778661758620183243319325080187151236253442707909412004061218636932532344649209545772790199709419182764609494421168228808933457641425321743877219010519040,1689301638484770438611152958950981086244551020691196534134247793724467020154564393951096835858393982241304617912452219502805858533832011292607458595728222866253242498854292995990219917965293095820194132101943685779472045210367830730619753300214961039335960137947234987421491100232848408131280885019793408,2401418575241526246205689223897164427898687460310357423144887703330085792024570618906646892754888158061323738362481723699388163153623915786610661516419386174099697982660661949045167164185946373755955035467445012883072012515971990992173649266346080242987463430850754872106720448992832744856173018844803072,3388080263821015219301507156674727110383084879384784213125840413269054450526225941716900887020461722056826574534032601269697245188755509956605584797695872758513206654372094436238609255673359484856287334972204557408044708168041252954269736954674038983326030930346694642993504935629976980346305114274798592,4744160405427567079705622157833831225233209689622343699975003417662991813855116306485160867924010834658558569737026726844911941843049679578450231330022070049420795981830380856964277697364697617007799966332439798089699490869499967075865307630004671514681586704452188915186882574325002480910047249579376640,6592948375107197607049881017379201268786823165451486554643376400376537475332493059998873983086733724696392733030590268314927324243098761812563133575912028652029479449793268177908408495427107943309085060628090631909017355736633587036453969969992768866708364809437010392519267496745560637215489560536846336,9093048518065555282302783828185934371457807649664340480780669797746380451366662999388119164520601375935367876647818229251529969889333557005912914423843990999585662400198995526796902586842718054791345793801197061363411489141590119425885486704851241041492054409071943348057297331032032518162889162788384768,12446402818976144479239503709837779630324772790472300609369116527343234425874568050328896224713104746016478709270545061083938017230470359578779655720110683963190549960825766635739738601807869795022714810129058750327446629713959734458124822522083294985647947882239642947314657977719246723334307328250257408,16907437794249416355430926258317369174654347925431310145364980193333400202019550695141596215909499406004233111090560834676562735028214169948225050414424249689470573810690579400807160988686036653588754928225587479209749037016428371189028293529364279067637204083858410170404834827592983410563650257414676480,22793265024485174154668320615851411221318359125949562320440990905614897817676601942226125733854680040045307293062026691544851655208519972474588809568830494043948711859340059209405511979386273833722037439704262583965322944495454191769375055185416677203184702522290771145964905823643834810282467577652844544,30494771120347002684170275601983539909220510692307615932939639017276633150636334729989440204163140255058558459929509020802080654231205802957468129148261471789582846312547501070827068079371826922376357804336728803984616218505642196817245694314494829256940853661097210129534412134335701090817916306702397440,40488316369076964120353800794005384006620404077190527331649982409888579812597232163859504544951217735967807442942735440656731386246175048220896586983287739714533477416119866262170803537685416757432415422753670066458492509689673131485345881555355594478393215242795221262972156350859924691823353355840835584,53347622914621968813667344575133934220254143238317917461559259417609117558375332232152861889577791405870971631070620775563355546279894002426054102122004163543523655299968736364770479755225058635985697399764763877198372275514725313576918541347926754688874385502827571754920094521753186409595503584667836416,69755276517636230485478995593482321368330931190827046835159535514177559867864138707110559457229434984050509241244361424932899567223980120281995684175738603636902383509594888340288948870561258512926435708342165284157567062357441342595143059268381992773406857244976264369428160853655460076157148016447373312,90513097024191145752685912216321816191990153770763235112637896318179203445225192746352622239019785601664410135460465338728543992253012339375122126077003543683676949459319676825153481996889474448283333467020595011998361642535250375706323098284376014328970872193273039360268654265674850161798761982885629952,116550461184139581134383532862118481052245642082053768860081828073513906581085115456064149094313680986788896322184701449162152786967379470701510959739199712867360818139846642307873006957041026066686596664142574101032402209979258623802320239273392369493366813363615926598324598863956280573630146381841727680,148929500332510343331588474178475285050286074114458180468627153048814631058650207810114913447354480090928813358539525453652597270166287611376457157066260343448700022642353987512935004425082204785406273676738770338312562049353266463256882595362776774404163860615267302690916162514174056071469956358211465216,188845960840499034244010518252989359546677552938222576959142281569538744867154705860773149397204344562213399489398419927860711320516045250627199161430356404935626328032263850823569202213590514504322659718201274205253317545671189237076166899414375502776887702583718164883573907072990436848219891663895330816,237624425989417866826965048184238837772208521598770978974155828465394057703104199028177101706315793705198351800659348390669091910104583431380439442469441021454739303321799596577035109094415856989557995645795007665103183283653384822217060223606351545049964064307087162354295667544388367929293269508020461568,296706574511448296908895392823138795694435985872291708077031483388840157286799606812243921415467102148673108673941584019414687091680013336103919910285329091307767632148181346129234570953042510571849437335904665440753224993859698952137053361169995584104925373895484744268147890443630852933875531784134012928,367631214125697058454501364871957226184616995501123487703485581246761675260200192845614462148012495316255857010257773842280752955674718734403103214951573330385482510505273422138154419390601102145093298713214776569263107227324590855451827212202653084662874779231384489111757515317317592634820319787604742144,452004996837834369257381384066050179602863849289929133994201240359552757494860055878342336734130034132365962280529303425066430208963297548233204090053195893645491977532758112146793891107999791921114024237822979003397770814301251992185585593901014951275020085247377940418913642235482002536646784761856305152,551463011327441792085179518536756961535092806183916995718490707366123710317107383079230705761745410194215876506591042602215786560715978942110071034237809998787994728266057410747246533502402701149666571312666607514530299286490882267433031092645749543248487414906092535853891462642870367974755784946656026624,667618864572094753023070969193693094697376392557650984527581462614170183287113176739678558940490484242621560783268150482440665688669979514961356702315622214357123030136133769668728727518992590634889041627195033532039810061531914650900623587722112360044551250758877995315035502604351859243672361361100484608,802004409022114334719678295765142922893255152778785048752550710188790140846169829890620925655354168186420113901982496152523867770488721667026395618556788124070872594842188608376016803548599180687853747057173819885745950808995878313335516995250700182013731162415120258757627258326223965246250941860714205184,955999930981683202695898663259214082419712222100539360233015794537560860815650181687155889843437194622325521167033774123868633377181348327909284830480633190099282142889826130896126527468532383645919849516086956650426808342697033861763432678299678163201239680975964411264971738350497235680395511424517713920,1130756365464808359971291371861113386217149404615587165142790368627300674603968917792794021635126166172809551828725536013591007716617129649163252906647514641682276878129267997286648086812692619000142776975518615953250926741706570300079055193549898070452895095611887433222624578271812927535970481404630106112,1327111904486879504901377794303535520014654465396001932292081355839866676921477719743974640205081782414661611895042156459526462363646938570884020424469190305456574465241017137693942760932002995065911295624484975277280416406898621953259251360021869428268269459455769280309040175340915467512133505629329794048,1545506168750082854512241705856252197041837379886285030789453926601706181144674754483551250066432474616410953228492062181001124051393048656487876538936860690358680774594626723267246543024401629356605736928769192776790417085784241628037972787654476544425016269963930041009254480977495387583740503736826646528,1785895855769747286214500994970489670827929932870997182678532499551776111677337658287956523292208781027564196732053984449608155480951115573278596215046756351007038341001042371201491409317850043390304427053898059606599121007832595905058777832287736890632926020687699010937133240998112467533302677631934588928,2047676392661268685686241117233605027628086803878663535149820515756729259473745502297678574936439084708637951378043953986863483134487114700643022148323936421234678988486042364690847960508455149289912863589155885498917332074718365170278150283158967730151642602601757643453230706301149762293484428231143972864,2329614539308735977876881136571979563763553012462626942802646998888898046443771096675364569445209043145608504759491329532045381431863327036273847881588463367977089323130463356134408881637341951847279163320643476661548214108502795110894774721180960375047191454785970208275226666332670767222419854066965064448,2629797042122182043772146609934628963369761533296889361066868098182029846793102568965763357401754245229450382934915748835120658652991893236100883702815117691191328451687012391313754257538505517029192996221633486746400877185663204985242440919627427468348077238990556433075587299291195452196102032057489911808,2945600275921012032734685522686172877691056828357321809030691973901668805263483766362929857558458187381636098457925900967327366562051022086188877705553324443610164520942918556933338370522096235052316834877766472614671037469112926962296179573373179521357631279058249434616176788166667385528508637953571495936,3273685295521890080928794280169229945149639549253525568110776784278467403685986410945454413270164870643634788222182765494386395253690411783638705913960129663214172451748451556070540698851227771226812282487528524801311698590282881840554704807866917682128176781558559151033015568093830410907501679753241485312,3610021837296100704174215339564864585374429393980401923526018092827324330451390283817522809527138250780635393853494933830657806543900525037202487353403893641514603619493279653619472580036000718812993952399521648270123475727945921293564585063203597369005627607450099898921256105199458913417774296094284865536,3949943580863321740506517826271436864730959582665160159297144502332090007066962383558594402780972645662809050151256903333757006841049371664820821401378467372802986607041289777153662798121738515856408611988691205125654175433189055246381376644161289048085341237486838467874887387196298741213297673082572345344,4288235449758780085084422362789442241940530684296630915073825996331989790681505225615434291375545459778959952030472974169012177435687797261371457838795130715994416111720501282107048213905945126458427912653787850788078627416599214718388595566646548258563653862788170367193114513341356323980067410633954330624,4619251975472472756751049037309283653041548946169810282485052073717656779223029438392254220518336137326277347696264593627801674223344153736436476943046703427363589680347795349175972768570446701600472654294884712473496393021322167541796163963181491181732499189115212280691188283189480927976811713042154233856,4937063876925697587547063912111457731822564992978217939972514727503541003725777506946933018520000402532868857186316234707441834235043660749017819393590057580496276830506764623679876543183646464069008232985950553180853168377975096920168407093917936570152557380601228896596938711376126117558133687941151405568,5235628142987010980462360316800913941852966618246755442637000627593370189341434531348203984387203489597919574232768442451417276664354817194206910827739927052691203613868654598745403136847604431038175557393316603201208785080242905588167038550169382884309215875595191207530301506332316910826525723301670170624,5508975186124272557813113121825582737019110880685988419535363348956042904736139127398656782898468498617586734497503848508746586117415344691753155488315874126244940965559516552125098541206109285834290418542009597276445925695105880076665808436626336262638892308886288380315089576277527921284780836231195492352,5751405197936012477251201832281624529433569490420170394477705729578326284277150677454577008406064212694757432887183856864662864623551228171224431106163924364628741693672063524452951126341359056486382569335498829958035310533097706066177081312133525171440861047773306177801885665410493395080917090759183769600,5957684807207891944996288966271900426207853380316532679662475318130707312709809815209946162742723980938041596150131683363380272830124626928174691588838478177037952492188637283579589424892734491976036317100036763699270170957588424752201743694528709873265330797913035488189821967572602732979269478574639213568,6123234619332295970559370536778981827563648283426891317314531677635365765215995843717210411458827637218973964598312384300175919473720476727688994785803729153767843192332494489503031927190155134670663686644797581272101285353098355737549325745082608953511212058601609010799469105229593952789552956966016790528,6244298268882423336259302015291621345301239612756745486175233966787215898190575054147138488662855496884935220352070119760728787935078972272056367927976669350359962135686211915924222515672280964014887248592078160141386582037599799592731192709694841431826946336477281983789784653677939745388720905364267014144,6318084268941649115043752765669902779604925937511569657877145460805041256170276212591503385645268713482827069266778105337225987369490708167879666341621019006149838184555844058055452552980365718074781813397379260861007997848406652174134685444010929482932503020174852696731124324730596553464984987709761912832,6342873169001916568766443273025000331593063924436135196680443689656478072741300511612123900652711596311283701724071226144241851411641714893727789741510169213344005116385197594692089556614547788150860200720413211442412355672291841364265145274980444405423129672679584959498234944801613246300853599317229362316,6318084268941649115043752765669902779604925937511569657877145460805041256170276212591503385645268713482827069266778105337225987369490708167879666341621019006149838184555844058055452552980365718074781813397379260861007997848406652174134685444010929482932503020174852696731124324730596553464984987709761912832,6244298268882423336259302015291621345301239612756745486175233966787215898190575054147138488662855496884935220352070119760728787935078972272056367927976669350359962135686211915924222515672280964014887248592078160141386582037599799592731192709694841431826946336477281983789784653677939745388720905364267014144,6123234619332295970559370536778981827563648283426891317314531677635365765215995843717210411458827637218973964598312384300175919473720476727688994785803729153767843192332494489503031927190155134670663686644797581272101285353098355737549325745082608953511212058601609010799469105229593952789552956966016790528,5957684807207891944996288966271900426207853380316532679662475318130707312709809815209946162742723980938041596150131683363380272830124626928174691588838478177037952492188637283579589424892734491976036317100036763699270170957588424752201743694528709873265330797913035488189821967572602732979269478574639213568,5751405197936012477251201832281624529433569490420170394477705729578326284277150677454577008406064212694757432887183856864662864623551228171224431106163924364628741693672063524452951126341359056486382569335498829958035310533097706066177081312133525171440861047773306177801885665410493395080917090759183769600,5508975186124272557813113121825582737019110880685988419535363348956042904736139127398656782898468498617586734497503848508746586117415344691753155488315874126244940965559516552125098541206109285834290418542009597276445925695105880076665808436626336262638892308886288380315089576277527921284780836231195492352,5235628142987010980462360316800913941852966618246755442637000627593370189341434531348203984387203489597919574232768442451417276664354817194206910827739927052691203613868654598745403136847604431038175557393316603201208785080242905588167038550169382884309215875595191207530301506332316910826525723301670170624,4937063876925697587547063912111457731822564992978217939972514727503541003725777506946933018520000402532868857186316234707441834235043660749017819393590057580496276830506764623679876543183646464069008232985950553180853168377975096920168407093917936570152557380601228896596938711376126117558133687941151405568,4619251975472472756751049037309283653041548946169810282485052073717656779223029438392254220518336137326277347696264593627801674223344153736436476943046703427363589680347795349175972768570446701600472654294884712473496393021322167541796163963181491181732499189115212280691188283189480927976811713042154233856,4288235449758780085084422362789442241940530684296630915073825996331989790681505225615434291375545459778959952030472974169012177435687797261371457838795130715994416111720501282107048213905945126458427912653787850788078627416599214718388595566646548258563653862788170367193114513341356323980067410633954330624,3949943580863321740506517826271436864730959582665160159297144502332090007066962383558594402780972645662809050151256903333757006841049371664820821401378467372802986607041289777153662798121738515856408611988691205125654175433189055246381376644161289048085341237486838467874887387196298741213297673082572345344,3610021837296100704174215339564864585374429393980401923526018092827324330451390283817522809527138250780635393853494933830657806543900525037202487353403893641514603619493279653619472580036000718812993952399521648270123475727945921293564585063203597369005627607450099898921256105199458913417774296094284865536,3273685295521890080928794280169229945149639549253525568110776784278467403685986410945454413270164870643634788222182765494386395253690411783638705913960129663214172451748451556070540698851227771226812282487528524801311698590282881840554704807866917682128176781558559151033015568093830410907501679753241485312,2945600275921012032734685522686172877691056828357321809030691973901668805263483766362929857558458187381636098457925900967327366562051022086188877705553324443610164520942918556933338370522096235052316834877766472614671037469112926962296179573373179521357631279058249434616176788166667385528508637953571495936,2629797042122182043772146609934628963369761533296889361066868098182029846793102568965763357401754245229450382934915748835120658652991893236100883702815117691191328451687012391313754257538505517029192996221633486746400877185663204985242440919627427468348077238990556433075587299291195452196102032057489911808,2329614539308735977876881136571979563763553012462626942802646998888898046443771096675364569445209043145608504759491329532045381431863327036273847881588463367977089323130463356134408881637341951847279163320643476661548214108502795110894774721180960375047191454785970208275226666332670767222419854066965064448,2047676392661268685686241117233605027628086803878663535149820515756729259473745502297678574936439084708637951378043953986863483134487114700643022148323936421234678988486042364690847960508455149289912863589155885498917332074718365170278150283158967730151642602601757643453230706301149762293484428231143972864,1785895855769747286214500994970489670827929932870997182678532499551776111677337658287956523292208781027564196732053984449608155480951115573278596215046756351007038341001042371201491409317850043390304427053898059606599121007832595905058777832287736890632926020687699010937133240998112467533302677631934588928,1545506168750082854512241705856252197041837379886285030789453926601706181144674754483551250066432474616410953228492062181001124051393048656487876538936860690358680774594626723267246543024401629356605736928769192776790417085784241628037972787654476544425016269963930041009254480977495387583740503736826646528,1327111904486879504901377794303535520014654465396001932292081355839866676921477719743974640205081782414661611895042156459526462363646938570884020424469190305456574465241017137693942760932002995065911295624484975277280416406898621953259251360021869428268269459455769280309040175340915467512133505629329794048,1130756365464808359971291371861113386217149404615587165142790368627300674603968917792794021635126166172809551828725536013591007716617129649163252906647514641682276878129267997286648086812692619000142776975518615953250926741706570300079055193549898070452895095611887433222624578271812927535970481404630106112,955999930981683202695898663259214082419712222100539360233015794537560860815650181687155889843437194622325521167033774123868633377181348327909284830480633190099282142889826130896126527468532383645919849516086956650426808342697033861763432678299678163201239680975964411264971738350497235680395511424517713920,802004409022114334719678295765142922893255152778785048752550710188790140846169829890620925655354168186420113901982496152523867770488721667026395618556788124070872594842188608376016803548599180687853747057173819885745950808995878313335516995250700182013731162415120258757627258326223965246250941860714205184,667618864572094753023070969193693094697376392557650984527581462614170183287113176739678558940490484242621560783268150482440665688669979514961356702315622214357123030136133769668728727518992590634889041627195033532039810061531914650900623587722112360044551250758877995315035502604351859243672361361100484608,551463011327441792085179518536756961535092806183916995718490707366123710317107383079230705761745410194215876506591042602215786560715978942110071034237809998787994728266057410747246533502402701149666571312666607514530299286490882267433031092645749543248487414906092535853891462642870367974755784946656026624,452004996837834369257381384066050179602863849289929133994201240359552757494860055878342336734130034132365962280529303425066430208963297548233204090053195893645491977532758112146793891107999791921114024237822979003397770814301251992185585593901014951275020085247377940418913642235482002536646784761856305152,367631214125697058454501364871957226184616995501123487703485581246761675260200192845614462148012495316255857010257773842280752955674718734403103214951573330385482510505273422138154419390601102145093298713214776569263107227324590855451827212202653084662874779231384489111757515317317592634820319787604742144,296706574511448296908895392823138795694435985872291708077031483388840157286799606812243921415467102148673108673941584019414687091680013336103919910285329091307767632148181346129234570953042510571849437335904665440753224993859698952137053361169995584104925373895484744268147890443630852933875531784134012928,237624425989417866826965048184238837772208521598770978974155828465394057703104199028177101706315793705198351800659348390669091910104583431380439442469441021454739303321799596577035109094415856989557995645795007665103183283653384822217060223606351545049964064307087162354295667544388367929293269508020461568,188845960840499034244010518252989359546677552938222576959142281569538744867154705860773149397204344562213399489398419927860711320516045250627199161430356404935626328032263850823569202213590514504322659718201274205253317545671189237076166899414375502776887702583718164883573907072990436848219891663895330816,148929500332510343331588474178475285050286074114458180468627153048814631058650207810114913447354480090928813358539525453652597270166287611376457157066260343448700022642353987512935004425082204785406273676738770338312562049353266463256882595362776774404163860615267302690916162514174056071469956358211465216,116550461184139581134383532862118481052245642082053768860081828073513906581085115456064149094313680986788896322184701449162152786967379470701510959739199712867360818139846642307873006957041026066686596664142574101032402209979258623802320239273392369493366813363615926598324598863956280573630146381841727680,90513097024191145752685912216321816191990153770763235112637896318179203445225192746352622239019785601664410135460465338728543992253012339375122126077003543683676949459319676825153481996889474448283333467020595011998361642535250375706323098284376014328970872193273039360268654265674850161798761982885629952,69755276517636230485478995593482321368330931190827046835159535514177559867864138707110559457229434984050509241244361424932899567223980120281995684175738603636902383509594888340288948870561258512926435708342165284157567062357441342595143059268381992773406857244976264369428160853655460076157148016447373312,53347622914621968813667344575133934220254143238317917461559259417609117558375332232152861889577791405870971631070620775563355546279894002426054102122004163543523655299968736364770479755225058635985697399764763877198372275514725313576918541347926754688874385502827571754920094521753186409595503584667836416,40488316369076964120353800794005384006620404077190527331649982409888579812597232163859504544951217735967807442942735440656731386246175048220896586983287739714533477416119866262170803537685416757432415422753670066458492509689673131485345881555355594478393215242795221262972156350859924691823353355840835584,30494771120347002684170275601983539909220510692307615932939639017276633150636334729989440204163140255058558459929509020802080654231205802957468129148261471789582846312547501070827068079371826922376357804336728803984616218505642196817245694314494829256940853661097210129534412134335701090817916306702397440,22793265024485174154668320615851411221318359125949562320440990905614897817676601942226125733854680040045307293062026691544851655208519972474588809568830494043948711859340059209405511979386273833722037439704262583965322944495454191769375055185416677203184702522290771145964905823643834810282467577652844544,16907437794249416355430926258317369174654347925431310145364980193333400202019550695141596215909499406004233111090560834676562735028214169948225050414424249689470573810690579400807160988686036653588754928225587479209749037016428371189028293529364279067637204083858410170404834827592983410563650257414676480,12446402818976144479239503709837779630324772790472300609369116527343234425874568050328896224713104746016478709270545061083938017230470359578779655720110683963190549960825766635739738601807869795022714810129058750327446629713959734458124822522083294985647947882239642947314657977719246723334307328250257408,9093048518065555282302783828185934371457807649664340480780669797746380451366662999388119164520601375935367876647818229251529969889333557005912914423843990999585662400198995526796902586842718054791345793801197061363411489141590119425885486704851241041492054409071943348057297331032032518162889162788384768,6592948375107197607049881017379201268786823165451486554643376400376537475332493059998873983086733724696392733030590268314927324243098761812563133575912028652029479449793268177908408495427107943309085060628090631909017355736633587036453969969992768866708364809437010392519267496745560637215489560536846336,4744160405427567079705622157833831225233209689622343699975003417662991813855116306485160867924010834658558569737026726844911941843049679578450231330022070049420795981830380856964277697364697617007799966332439798089699490869499967075865307630004671514681586704452188915186882574325002480910047249579376640,3388080263821015219301507156674727110383084879384784213125840413269054450526225941716900887020461722056826574534032601269697245188755509956605584797695872758513206654372094436238609255673359484856287334972204557408044708168041252954269736954674038983326030930346694642993504935629976980346305114274798592,2401418575241526246205689223897164427898687460310357423144887703330085792024570618906646892754888158061323738362481723699388163153623915786610661516419386174099697982660661949045167164185946373755955035467445012883072012515971990992173649266346080242987463430850754872106720448992832744856173018844803072,1689301638484770438611152958950981086244551020691196534134247793724467020154564393951096835858393982241304617912452219502805858533832011292607458595728222866253242498854292995990219917965293095820194132101943685779472045210367830730619753300214961039335960137947234987421491100232848408131280885019793408,1179443424441043399800671635449529097153921479008529186408555658324589402707647988361519378460009424891324443134593906797956368790838823148303685574889778661758620183243319325080187151236253442707909412004061218636932532344649209545772790199709419182764609494421168228808933457641425321743877219010519040,817303018452112208877954598507529365485038334616315428430130843300562931778438542079714528593890149310427097059539833648764172641241014751547493617538552133273810346727525086378457129058486181166719573050345407742625174967924791574407636257123842455459621094507666492273104946596815847420590086807876352,562122246480647844699296993334812636851576276494777671261882990182818110180923099433238474223399582188037471033959319926893549279964660571816994240252820887101944454859218937214586211328701561653569796354537597501929263982899519061959181466432319710323847073635134752473719552967104470447774369429278720,383730058811735612863072418468977751285028491450617458890088493052000257255731750432981145956495216421860150626597524724938317352297184285571957297997133094687082343637496419080061837254733995923490194739755985325732051796590947191583999995840758987372332599217966860240991408182679530892147442768003072,260000409523591262756665876733201396964559193566912092799767045371349165030777641654493754119591886049810335227325435719540298910836125052928227450051539293012134009620089047730263390707341506087433533172452412141994010291177521019320650896194423128981735305929228530929620921849953499925482204085903360,174856301470851645688402232970146975027127773370706034088804890297307949633771175789726892678275024661505725670952009211264524790459887745940348017533668077473303055977079376077608103179517247911173182078011363663321029423973682000960463786548996768025113057983920527742778696414545050782980345723203584,116722224969339135122809117166211640151302993326420770768618297633282847263229398596521954582374510228544102278934372924140440405073017800059432461455166374766276820604475388014490947740440817028777503776614075918263380727192257946629680526449612730006103240706432640613873622243015071167221582873440256,77338705465014964482389946097097838732792809228387768559481817386377476922570097106166769965159963488489239170209566240148391073442682763900561556402990562248640736314549114765921786803484613479211889481874839198615276960413305215248825843483077556991311676632416953959137017573733304370310007677392896,50864813398735669271022555087982322998222338055713107440363203748809104778678873001605417826968845151721564124314774177936893578225671726923083283991825071739113366297566516860600370907457019737662825862404451742028067957866498980301705014320919411615638956030598693578825912898287481381073017315762176,33206374397666385939530879249795406142961371763310784562331709221385771869892290461268790009015532096801983891273983993940206483094182178650226565967777194366046451848471708687158867897251948939896524251396449189652133862539598005524814985640268429541238356111944227285410424949890587913742493558628864,21518660200212012448092286570979565242465984553807543066260686999675117708411612523886353409913915395599126302866083431441327987419694104983590351511078446858529800494016584008439314709023063155729600789736364362072239687557518432681396477089079919522434873429045925947030549456389885296679935994990592,13842201174202791246801725296023415517139287956398564343726649030299627496775288384825971874630533267827308686413073491621158842688707714542111191915614617950938981971863955813704564567507978495548460666762330559003721117097728908706978977860650208313460503560109072754714694045672863543644794589634560,8838889973111973249968926542241904430716991576404585975679459863449044733205710432757014817884328485202296609032881076752348037225355820251886593348747146258136722825622136569748623438723150755624611064383669924365782768316313857844848997363987417924385408593440155294815700905251013935759088099205120,5602727522706264773104254111172731619175649604493323268748478983853208981041558289335185305959089507891050121058663812111745246963143558161109252048557907452885061160654298750275690343585876148953441018172566126611933484136342056323554301189052768747806987498203980659325519661752098674514290714035200,3525470777853365828678798916794422318777492862661883075669250007728250855820465314672344631776802941768281384432373197827596839322338071112759450651952580063717238711710445783260793956400549726658400777179493628935813157892248674694736261910705589691157061408711651944625989719888645451250486502461440,2202202734017926005583738959264587856448878489936371365080586287011250820954795040289159704662621914620963167403934459586783046804869579676194995412685720369556760775911014603920321319372899738561657767930302425241508746505975669350579466659207116108030919217325256192310955359036460784195110436898816,1365610448428766371693402104382804007498089748342720568750072380142565011866401259007607370895872149998745962888261663399120796592751168168280808588499879152894462645412513113424436833902837592786115068663820231232962874600200803662695250505347024326095010065850248638315089197341916137355555604283392,840683626338607319037752450287707555205991704021316486584444063127486024438675479767840415302850036926782878373818912276718739945099641565930995440346328874874940219468390225703383737344557446800731768779285075744925184039715138111259327030889817804578192132116988173965964969147303294874136549885344,513785110569212590991199627123929020898111903609307204135873088032593843308764020361247208872774610629552243592732145667815119030967116617740015928649704245998782841719872823398518202022977335201315632488589451987551848179086176707216111210818936340986783448988244322590495062184658734497773178503168,311731451964084329750413918720959498868058426964434587673638672239875262324227420365504706959915722655898219254701579502318123289494852985185114469204726760021442234322024903724348553052108315395524285121403737208532015073889672786205931254580088505961275105862352853402604112021946244504175045736448,187774666501075691958014760246031826267911735229308033463702753703070813777648186815484913498185311212315515234343351417178620959553634305882237416978148879985627746363978739844884545541089585833265692591217186379514023129394105714616022021796038638732187798550638625551854785386392085918687231373312,112294322930236884470474898544211646041147189376244570888886287105577063416796165593315950319125106754680568909154197597325036304102305896518750394983975386656904703128186060224153476376786141251515203865496746124295018203469317759177448222280973385419243067957982833692048279267045521633505695726592,66673039045502317494885445605411209686976810228373203620964825031877855307188439196709020867690883357182971528789266953911977445702504494415528898125681936278591835252667080145732776544604426377136411752344727782880910746632819619556949691921148712454968250466858543252961905530892608363822173642752,39302632575539266975199970020791307170938197878070983429707749420594020791430447081171411176758086531254610776354594758090463478873712921737241441591685873445131416882242861966599238818498287861944384821805387066399199887085204697726372604545286336554023418108604473348423264275776065302716523225088,23002727126957893325074081664743498572874293580898940245757871345267229230120864783077682561356617581587171147279371221536472614655760217988405077069724520091652117281013539553329446338487296610652124369049022386514765408960113141191643911173966461049135597173566952112759536959203170138663045066752,13366900976940801103133089351502438285887306343719406053379223114617308342107339925554717611562049222944618031693389375308212195614557810458994149938566900700113661600538697192926977368551160778562614081097463564860222016395104966524001882797470057263855181170459882272192654869347800570495125356032,7712289695823384910405055423721022848008077411235062359154235574069720649124463701441415185818387095028392176995151240662662265539546153547644439620759957629215585649407075736926996799725786188030098721694832547617557886675756439824753484507859686176239682341425326766907749450973959671072710156288,4418193008899712712395037091679603806175846273861056177630906498291598225547133797245528657232347870168075980821804003748567854953033438392091714579144641902288763082144479318183388953621293121364274474243858273253209199957382375386115183429564449332995718734042216284483135472800576453291120388096,2513172997969398479574552911009858865611329241756305213882263910947632382992845679888170358725326224487892217712387687912845016417097461805924907441913968615809768678147672302116139803034955809854577357268776380130148802081038309668926846412301938173807319004642487198544118334363177641400380608512,1419463080907899452480431592865811125491800857255182785839808547791645663252378899301923322524242669674948787344256914271295770777314282254767330162049374967849780376430071205861456194582326972995396172179824460010282887849951088347388710893892562817546316873385033968327070898342516996473888329728,796081543827271525286033883717874599531193529443208577464355670384706442138139276684112625774884943863233968635357294392098182293161952198723963194320051692194780215481569715422611869421925261274585617627738255239375677128460354650514456641448362590446331227100786045930588764468716689917093388288,443333475550151874080237225877352746713938559060449602383164258532484085454642905942246657496177240951368626818729740122437658112237296040329423121176812443446202093856689701575051256105991747529275643793186751193574166849793743322764382702174287477616539577465166207199127691005110967202985590784,245160695710921106276031892537374252305278337086375735045907557683726026864406662216510756930667020340973451077144838093469202641876620644266912801162213739332480417031798017088857456127861039121987928416294383060287150202567291908991477648482697947332612870233367575018541129833835745520978145280,134625212332200819653271748335694282391608201291722776279641850518501000111176227949831589033656633534766823034093458674957446540254280787608282077953457249746442668459036044548086848722335459824973583134302830702033771255891448070255471255870408790868440200033954551069572777094582411588389216512,73411675081052794904806077075560889857519908933227107203045066381023946131374673903029523368259976952830068281172744933417495433165025098264123952041933426682752755372747547500126030099846194667719219068516198457566429099098433268154557006433263804411391183816602781775471671594197268090307403776,39753469098161758859308254689611611272994949810210908890897461484307095627782562117635155663899772318202108819781066295431004622847694810458427360347268089225823914014845685897260375003204534446805251448222350722502597094673508457849743280413287572187900180071099237090874474071777045501756827648,21377855705344737195357952712416208364851491630435165315853450392399572042933379923103318065795830315314320532535084741962460590747908033346749546982287494564280712231394160453379224595109678938477401158277926911000001350752977721120833025562900101625323152410570666436199690325729773266190520320,11416698896018280815488832250432821503911617636267979405543069228181301423722550766087630651229559769339012078413676552900448897446889673757126848596288277778701211593149823104854122837327778733669854514723729631764268479624283717806393690452417676916726509145740980272484937314625334378415801344,6054975468223901135223684642200117272833095051338946066150250492535097880699034010931122938229443956565275389842020067282428212677282150608458892695161675304168817916199292043355145184171510171141139947375357678518430707302875428756802015404125803932226446656571758850474594766400950263296655360,3189244735649868890780074437402178949886997620906952230465988383791539430247417645086172285562150699080434518907452072400336898288528181668200129655575615217412453345774969257418610012993117861327366931331233129092632111037156038450370748201864936307289465218048620862600631279728446007414730752,1668303857264799217039480121775094842265086439716503614345680222791248702143339148663462617081437243965666322060053842496191720445558968443347474322352345940716807991913278497204721780107471635952713430808099096722780556757931255372650128967795410159047101337516253491898772900259687463025004544,866727507868195160048065146328449937462895952334888306300683504099093662177975941041061177995006575090069701154281242374298828068098256672554164644571953582275629337444957976411208249716289871915181753923028192031380774017914253908095216608740547215475226261480584776468224551613442358251630592,447217141704058589807717882140490036898264260575911049293723591581694694684583791642040499444990499455907971705598795718227759966382114924235986780782680061150041555701367613788496003776644082628117307587491372109364140492946651590714316921269363189623414945200062593554945035351427015447093248,229187588344200275669636410274681045596457877850070495779666409921025672882689614265830572239683088972484282506895368962882330882187523222078307095029038461770772205140201385372675397550714154120750025920145369209547730184145138463686453458635139862656566760071210429822184958739647279831656448,116656498534234028723066647939362778643800890688770155386173234402190745164246135068456580512020312351967315181484629618122441445093869563400160602804376698949006520808949468147291207105184487491991119584688032250081050839109940826410348522280880907175295952385498217537920941571069712314175488,58976691342940072442873247867398973156417731741478973898499975407735347925704677938231171441325158244874069689720933426255978535817350580463123545205785939348768396698135904331239878280162426730173740508850400418064577638324762575539887261892982810309060756531507047245510262433353294314999808,29615152423892774803761534326694374944679228015587731673446564649397662050604624556215098930490039001343881705991284282969702667236573189062027641140300106846085347832672590945058440757396034839771149136951204831420887972573668376273959034920262091085657329411956454626833486718625880818606080,14771280715146073584718856276580972126617300607169788202927852433942489710332233596742580236043241204568031021039943023295052414990986652175921047781183552256137391645595421944398372401914288498976879973559285370649160759840710271109250229745319205328898401231439379587151575506413422812364800,7318153086560287327192592132332890918448334079318200345046270766232941654278474597859643440254828101095418424588601996289724378699709456776380594995114447619557983141269702522160347498705221459021821911440665755141747967998455227072638869467118669791954057201074352785752688037886943112294400,3601410033052820817538286787969021252256186688829253095410394623905439537462304942654670368990472991474717226137125011363186261901952839574771327147362564201271541000084521220406535681204189541505937276154462995517370062490840785535893189653278888438384321444620871830761162927282824038404160,1760516126345153035090725535210227777811128541474189612168930085663187594961851025734916280794580393801236761935048989379691074652322121239581979964498438098966423780983653486093332859166268616401571233591325613630629646299403970529447238130790656662894562784369984533382475753039135477796864,854894358479665330011403157506340400374887633418589138466618227580809100504330118155301643755879069740615749331920697533998826666098018161097514499576031913011344609014111728732740196473428712292335022095064902774729860770603201325979507364980565124152920222842731215624178341734444846071808,412380937052888345607018095359279629660692047088739832624918117459243710617397549505549731741686711227676586034220254248252737697109874710093277609363846253943487846894790451373412622391185351204860510418889500970000885381379578065085108893908764620707871997193862100767426877467336712200192,197609176538948286413511572094671595390696919668079010893048992524623306775897296679646395794912555979682009350680896647888695292680566620394095994708738905295637044986378147151523799436225498763619162752698142161781920038490586123415642353868050141579973436708463639627101844816951290228736,94069053297417384263053325214754047833135397745313411780995295489797529936033725553975844547312699562127690943371966298535432052996862865753814189949032940601700362309202885708117935883216020025931517750524123079538860076453614685016107399802451974253519258043445239312066462809113513357312,44486306006798135718559943138717340509273486795460331061906533218672253758105112067853984404528157629972157530515355259787167743675579643582270348803980588479793562417116320895780301335549788576761505189629293968706095981288814051632276119517470808727285868305860562681040630283222155466752,20900401041422452418692594393315234665450593352102769149889258317675260748187859224677753534456620857517828409925464787914060813837566464399842011336952180993033033881528110601401292256504177002533497099574441925375903601255076543348044261914796288567956824774539692503350613351951028412416,9755295298858156096838898136037880212520335384002537073635221261254702016005005288278133044743331074903369089719572959088519379218028377303018534181659984712228053473340948735821337933524169661172294343297873024501468045255146069692696324819911019790755099345568156154708844997028672061440,4523687499515435240298792509053296385892965864270947327263851276597799699963065423589218461355072263035669304396539858221466413221698099469744782058493937243293194108148391466263251852060292000921096115504713573929323812202634140027748016282933670198690302654887940084502534528147723333632,2084107034205975790464999050759805510591229482458378287407902106024075566764083358745498546401841017172448845410823191962840434224701166297731277347252373161699455449097983688742713735141715100814737083362269848654414810142863749048009465045685957631760434562248557376558632850883731263488,953963125999393458116875304363254906732811249344076404146040140065483452309579060395047403229024261773904587211562230477923429774304108104990535233456576691660755609216675828402436403928103652545278566787370953716301713410614182972645567756152179228594443199226809661029692177615821668352,433846623144676924607838400630448965228290653996671084598360524317627472378715188077861200696660709344895653386867568036944294901767790966478081351091766972162827940241094106134760450713499671160675308030943300704508273977635161554899051316594642492135021657707750072388722081558492937216,196039172812138118058706848530913857448362002812109393776062143503480745237912615285300533933256419621769704058271677331888096817562488441702756322841083177786201298192792405374049242800490773305310309069016699129739037058832362379483778424104614866039403305733764811775880828678052884480,88015765453935267274723139239234830634697431531846317860080774146251997209717711898561055947876976930993848987197705189573624530218543339306951048234865672157463943299036987533489697754542653210937429669437388148441513728027502253584696472110543457118005892598506288782272884328262457344,39264315527544481601066561543789615456447584981654822617461274168530692994428711652669493831244831240426664030764855420320466861456121692398462200037413460051102332029900131084479468060375890568106223367536802084276608421571385333493236368056186808576497527948800757598593408195463782400,17404619996556622317747368284222333102162761287256361658883701896968768474039854402515022157205591735767669162668381633788322427181677259163891175504772953733874004359657962902206412927890244218507722388530142811596582055426035452481781686750365808460892102378499026267481186857360111872,7666003870508537062263456667276087627515144869733427964052197509793918058461881819926938426532283827203620403910548346426498338131198875325653881988672656927873256508099601112572692344205579521212978243053281523710739431251819751329809486191654128292142935425322298416936641227129196544,3355216391530700221593398778848405225007712441623823698255454105286393322019366289644535253274632714046256739987687331030768881355700795562067342441198981085631371036213348299784052225145775093330658456382971369031203625814456263083492485455687565828212660888795302204951612360622727168,1459244624279674825646809793769806762206567448273092364417636133165739461673296265663209086335915786246308172123868278849824663451015563413484888476582371977123398319177411384720885014046638728878044147169932740728184082637981845768399932137014182037526529921499433927318720236024307712,630668015981078988043851211310701926324097306881009182512152355695357441646114419974951466592724065372378275411448661489529673401192963305636010534058566176101383507982170334059979915402812209984809383743649289497494961551712971879540093534252328919926447383194486707116824329262784512,270861783520579852694891546672731834739312803879924090138113643673929902149310308666761921772242719131406783233281946380812360537646357208161295146755247336608387755517454382611064132361733844983999521638684988968843395535811781708308725356885381430000877441166808795870281766606827520,115605363591096546727414764750597460080241689770802521488101270148715372086427734393847990215506153744492758412909521643585316463360768313320455285411437550745130491511385285307492237765676653406533459239206736723441028178275106226141167933429633252331738766987262956793072115643709440,49034377989439577496262152713073949069089352051668566107347068668766173723008359235807324215032961338506228104855226475459902108662496102260171852343709272383539003492835727751122458557091777197276782604622723497677821862337985914309140800796764524555158862822719780699060809528926208,20669259608509168981821798142471732123759962855411565407575018022939149308515284666382152929078428058332308714577688426273735030885248749539573801476494721636943204408766836725858237385435835404829980777426647295840281371833871295558804422109489302129391419048156904910075471459011072,8658843116902414908161724563319636567214527289445584976871977945665200969532195463215340443803131203186486888297752805316530856297371698842922830541252413464264356921981760856095160073459717742672456229420949412429184062209338020113059907473798172209723741597586350042903576604626944,3605078064520503275495527487619209208989576174512386682537682863195739217674378487351471983050072336662403379047823792079073023216633019524822387915731616044789886554996794381173911456235310141409083238199848473754758060048923740244767653761521250603647706281639130439430549924642816,1491758385067669314654610429306072120675670282256198978533058393394064917805589428645254875299035619933473340416090926579821085740835415281344536443736934754772901436364140879340871707566910597138701970801951178150870241199967023666471993354114929320152185297911275510660733201604608,613508359140544353433822548534252557883011951005848497345045212743969400255633624845397197430342626340826941707686475303539538669058393296712551719840741980587301950552569719623874811296488086853613214866173610747977957845188768764268246286205409249554929700475697764392655158252544,250778236205784480325421482522335137530564709417269843767428191446758033806268742028021833283035196896702041029997181245237536479780794929939085304343448756126289777192008984169967325167030902676631804198519972849671502201295565381367648085585475806162699152066572324261011078434816,101886291164336953006639271710277771140344401221374338646984277738818921477963705827502713107275740458954147036725079088055347568005714599052568540577654385590662444249590887070344533569532571041672331305366914363423479351583043667799207520705318518551718195056060546664983130105856,41144085201291778046532867104063718359402603513012358821954032024284247339076229484614251032224345400215474801030522137742287056182185610689076361272379054943140784936615445138898614834331412831108625984976173851858982547045569973158738632134952984646918927781408690909025011367936,16514826629314830512165219226086450333689438930421778711136915708255540891507708045692304793254849168853754812355779312628044692237397553540094518205669095443028111224443781343471422420434275255008219258396082301137065950675725808540289736207958246625658881632849659589642825745552,6589080123673085363751781889577721195268061803680113415997023443302329075428930104660496912240414911926169321452509883390642032292072565969086329908401133631270753759032020219753290506199971934572707566871236839806806237050643382357530972817447430844036822922078346519574905356288,2613177658333774219081095033311991343728597775376754398810043092195100814445806773086244732187905780742225685425350449401435131647445977117987195093300576362010029249903131248593730272371079084995281026247989471513807057270857054911677103252210530936133010108620661626863050545152,1030186096982198156597569536069576813767203599449848694239057264154362505966864751540438614721783871539978786254615966842823059214389103711984630142171996557979326751176883015266079485716331734055465567120715845854275826287438987991330233047498116216198922157370838183689848336384,403714417872336404060239163898585996924560841372664618469718264018208938089114711345763442294329454207695783045223256128541142412530128080217993407941817063961245945835735863237828669809698192568141909919768009704976068585858241099011309294462780992715714009731052857371470138368,157272899397353588589976247319434242791145489505866105743234706387143133283285799250308081773050814375059489161480146155129512469442515841759994169459107134303053717234563008960190309962261070493788291409393977876572299514956045826691105421339609848330174331307505273086484160512,60906524819655078875532680505923765297058227545893421068277224406981412749662967610365059198481057853267825973139797807151913132384606925237895858525512965472658682264543591730381095030259803605853008239242528731416834900033071887264661045200329187344232381755747092246180429824,23448403527750373129095443004411432533383082525418423698669842620222978973303430111260961275873730258961911038460254503999725480240389502195700990679579416378813312306543780685848586386110387018903205048774489692990037089809061762959785187678697998948056245653060251360846786560,8974525813637765107287673082524882592867587222157190988241555481509389562178326280040352695554457751341358501623842473146382717308046689350648039356716238979842201905789740983861425691151769432670412553534260950605086859313242893529676453388159271539227577406898130375505757696,3414819546867518713278690134703214199127215457980962101598341947853832412838158641480913573155797547972134821750616676519004096736076345447946447110335930075601649363344324703080562271930630954323661806570647712035830122791510524222780139186521878433180731589689485936069091328,1291788063018520153301081927077310004304275962846263344572453627955022580248950977550690142124696083589054528767188847447894258374293235714481763515447416972596749910893575342658410084691084706826419048654539880286907249317390964622566475929638048718115281968229409633649018880,485837778185234598008047329231456703429534389950117884674796728924821699006612596862229431845017876254079466276320620383657294192289674021724912711082501926379062553412000912852528379997815887083073734822500147409555281764272698125513332089105192134906263648337295367836930048,181667420715627186361155889377847901528202376748551738366414769945072550678383039637420951140908222312605468340274911486496053908673338966658708996366793478817966712146172097559635669417370850442166701983850482536714245622768996330057462711072249957945806295320947078028861440,67539496444757926887985094577625347219510117605079708497014195552590275466317362738797801867563734306235828031563386867396384978299882344967087084136363275970422559734683743524701089690196814865095540041487569554808695272421439268471784670697553693468951202904396690035433472,24965647424855407439054173042265778101544366581128811045507928323450969241318707642063217161040732341132775484039186007170472533843804281904293022500631814434955382786346237635782095760631105900050656504261728660852003408315195365787355709487953813119329408926295685025112064,9175745084597358951930117690379336625034795081384012658745260551343380212515132737967635576883932829454751676941147754471921789138721984364960384023140774169927970974789155628959731593868064961988619920037076698988273307138965338399342242609709908926770809957296826213134336,3353224134626427561602500336715008402681810956297147885262899879089906453754786267865646660435022874880913507973602724019241474008506915219304590523767700916339826465526865341795907798569240790958034878418053835192178240321920788927990411981075447742791980385643378916701952,1218472709505515137684237365352802939807708088778331411750529829786514244914225287264060393343270061729974389597568557526370840617808553221806537940174477826941794883967890953595623030925078088019855407481352241436280073655402291768292280309275704000753245035745049491496960,440261035350443217409863843339608295715353628154753509927647773975711443519634628306932859072064374368116968150827897615037054728368775949551481710632801381125652453564259193781095185934974417401206155110691974590541206852376134943170860097120712609617369498634368758605824,158181304830199975776100487724478337119099192282644670996408121716704996873403898725597997320352551050912831238879985226518918037474729692407011068720047060514561441873410503473952443328619556365169984853662852916906889748668357997606798446795480771004694855075981464358912,56514482043736927356758591552843934019046811257181316227963363787580738484969290647728886823101323454486262356747998038372630633346979252305200611867383316575617076173512878865727118039563516859789264670329001487548577383172347225296463542723103169137377078303420953961472,20078593015205134566965407004630958101736227625260358334543589850016929384979226809691201225743049425686038136037968775576720230984709336301060163883517016706407028280510917635452079848468840233044765014555566193061712047283414815154501701089560638681641684488563218972672,7093898302116907708752226649671339193094857528967004016671382265661904501875972624684490726445346955214213796541574271671606803051936491607460123113137335923909291403385038939565229375668407645816406847067960806717761792259647254087307482401986057295441249943910232944640,2492436028641785716870648227541369773267970282303416355920848097069778700073335336440583510188196744219137263597262327534832090562700166633400851254873541656584402372593572254093021875396924896982295995869626038842094634885069048599103951315946762861439914962111395090432,870882741803382026485800556673590982693731684060635557870582504845722621350517683328117535704563156401600276897021609586625025971838075470908653598954777977645251975446712246460789161951220001130347756629631129921844330852365679143621429321786491979476863282623113158656,302622465729274347788871353089031280168726462845707981326295738624748902362064955682844054596930227315434818345560408362612628013305061075239767299863041451114489556986892177235918590500000302459087511589259941837905818109569216544500108846146997012487671849650178924544,104582176318580750344875056948391407817597603213050823527349888930699106241797996776485561507360730379800391347727489820886213930019892708117125346938253900789596458973105092319831882885127244454441314161217487754918963786515683829444203209257421310353141314155391363072,35944994257473387867870958083553227417769159036171371730092258232912166768069543388014346376589836769639374942676416274625753537921386473793770752747519592936866410861576463851296958761045966309560701270524369125627084334126867896226166245166279981433900893731579727872,12287190619320953451945800436741172234402287083257661765059991077214607954779613899467291271282329961034793581665588707989717749237634504457394717526825414151063124543125090106596363022259345888157609600840674176369120971318469499736366669871448955601823003537999220736,4177432111980934643716209376235261795373712236119068984002363033394861716957934745694025573162102589230424572888719587518961686916978901100616339822314638576117369057019401204917279307475210836969842292992187878789607049371461691743962394687928626799602589176351875072,1412596160026572607677892937123997789309358581584703516140757340653444695778901323826410673458325332450928423301580039401109034301989777876175747907427999218342935906894181997667097877419249283912552485984457499056700608662234527285843087061636361080256088126235328512,475102853123622452534249685993698565966496995455953205454954677947913651235724290963218840401913505706278249747407933368804687375264858793213110689956410303186861542018082774036882578622746824450981238487915196396575283108709396675933291450010522144944201346805166080,158937883943586624552460119739761319801856673279223397564607735040337257566358832385458726211073650447158875598295112577696506099874765734354774730244396955501685341823915966596576031659869678136060563694715688405710719767283564945590569530200236952971092500596648896,52886710242908312273484103646454759528047326777024830710512960388784042918538568858479756375064409182872775978692614815603522661941875157740947530712722165893139983890741426813282351829921675543030506891747851983692061373605522702652521665407633813935468347240681472,17504680071881264294090406144836553319340213234174796856931888068152147967775820370394450147184363217697587793789194462144559156183204881144646273519979814733301741762304917411020281350192822347036935892014430062328417731787400812183372390438188595548713428376813568,5763143756836016613005692911599634543861313876041212524950974037499268672983900976625051596587546755694520464216050734831951761022675148321295764046545108793556727650871179038767693328467913766092618562240247678204341173238023506749831646957179751834066659237928960,1887432908449178392787899427007934718969442914375389814135496988888179128273753210234873083264470577307026320715185501757622658546974641184491461475419724341669247841446225176459305564535616392135082868991878520703995443819988698087218562804851611197921583748919296,614892965167064736901022505648989514203921063473755606530343635207203202047093500659787130497964619237625223727450566497722534716309254996309190073408801703958385266249572848147460823340374011821589389597180139845461163253716761993701718343783367176292066795778048,199274893330196155980364324936166553532798409053905435283760140614021827355347158550576509973186605974778688716682195249926207422386015917892924074795077704533257616178456491695737555093253991123845409164710454470942223648411608327602924475841744765922708283430912,64245072745261361647171729370277184965032388514368255238895415233577976711046424844871231026956284032197560723842327649337479119158962921617545229381761994899791220003645853516929312058950750853426052373370587526449107553811735029400116589889066896564395822997504,20604892585065626146595727672940254450696383508711224103971434413069062768820745628915844756904068223866583014396867290928786719227437230552780912767666336381395778736124223704696914042669168059100938622262710248683986813990316277705482613553323035564737667215360,6574356889822133866646251288306500885879932758539339721971177336253362027950135543550183774599533080883324277596751498948009152338767683429385518110572688550523686647278055816714549561595210842299606036352163815402443058374045861910419907354087849111820416397312,2086880983951035347091724385876051069911748584115898039896604958715626798087831201648581620184913528540508304983252290236879922853446834481059599423011100187486839600228078399196841589981260964188595780011309132432324670634812347645821772969112225185248022450176,659041335954488007529875183732536873795282714407448054520703765697713634332582226606838628901215831035025486556245159330915711927602782973281292606335307395976358663899879224481015692607023517028933256023230434226437619735108477800302867475112309800467893288960,207065273243215026226768119666914213918172674956573983793694416482557132479243337651299183720758007841971271097923968871535638632335391656517679632633475312204191811002625230755464343589199864830025502057688659078249901961057360239961762291217473743133727661056,64727761861224570007793557191854331427403643603536864428632571240877299097154724427979495760858662949759486047550377943737130401688679917063796052756306629877345445948620927479693696410941276005351177268821293638745539420212815525557275901408202647780888588288,20131293053290559875609251441449884896107117627509397005572894037193137154149772601185882486196539310112600372541870961257602925964078158990912580556778572875149177561223159876367021110650082540514670169141248200263919458900346265687528762568325934956976855040,6229591310482611215250800359611165966525885468280851308039427630972670252006746719107301892109061647029762570644354612657965841217564990485345310970176746574820024923575932054892268854965000738651006426357545307610931111790319470326477610584424208678271918080,1918064817759548093245675261237979878029221306473877925157685085893006723987896179429706932065723319075018695691569494058869631575283511654502205623931240239185096166390945688606688251001356701992120893436057488442880091726891886559779367426317477571647188736,587613635625541533880177934692354359763372553523465318117468645302721126989065966265699365114429421446854828124612693032676964811466902839236507061779857396685032156258895439009101652762395320922909460390237437896569389210044197236073021350215109011753193472,179124225877819139458393608898415316226460647806429683855846571970923966091457079264890443718584747790934752227155638935150400478803090896074565580764387253479847771853725353771613989513253408927950369392311208283174451475623743996965734302440350140359196672,54332497219347489604866865357412753527057430379997960342183491401119018073937052629735349609396935936485266345714690581604471112908284963938117562591276566873441637636478610039873669212750671698250586611949437434569559049593001050740369824053771056645169152,16398981538808413218919830468431795426324910866931709232471459894324552193301565778213030601086951155701646866239418552095083037207050117128524980083179689164065201864116552113562826435406844249114908433547274603893064544717145571465337092997983878276493312,4925325526278052840864344509480116884568040209713916100208297612484497522300281253787605469077067893062295040885367980302862743509591265613594625853320830171476948633418612793271071655048941831723335977140436814867724437674701283393819773352904135371501568,1472050888885176076980676508338956664263697223834616620273437117903373432355177740091207755527764840154317514754420891558680096181658885347162423541698293582679208793598889275968438811575641335127118539162015613185820013136611426969527870175424106865907712,437813843653304677226296196184658812572074382939476313813696272273403250005642358715111186209339432636901355307540192695910443244246335599793636833681796271668910109554235084101651565438506478757923058935164796456010035942949597196550721803758122280919040,129581763302032248158080841421298311899895391958506285137492382533402031386788277393765908077869915078387542888121587524869586351350325875116731374795981754555244165172336660417458495527176006595033759652294262562075539818383107546232767640268257539486208,38167608372421808282671771359782860616711184529559043871776288511875283101434935916843932854000858294731939259645458992498709850250384990308845560803812739481107659166960929584090254223457614221217847653186098740697039060001539237721525356470175710121984,11187977941855528845890197164397671278147866206394938685076971923836847859242104804669951824919171188338685050479413119881533578344386875902914085461534584114459927124202799311591423773971015749662290966739244856379806047413496574529930513600871222272000,3263794165204065462603593492059264717089295476320717896120186044709189579204839707988039794119302657908128084784393547799668442624078548811934283653895787256893442740953258521501716419724059521001919274189772628771724551343703447098482520200138497925120,947583152834125915755069019539733724080231102212454595742745260038308407147292033204905368352684545883046712751998857615884015693911776937736373766556513966705687215021379448389397440248111103945628715656226042398936263119846040744616652921210512040960,273806781167094012241872622661444473181627045184673130486856263434260750378639322184228478263696519810007304444862018117373790375717427708707177685572803100464176598291234807848307010797164692561904983557642409434424160466106112113711450050666659254272,78743052837792422375559475651873404961576024055062854735960913005957172338297275943193958025443784209942730521885250475832899017755665846989083460098845133611761126294746199293796923321338715941576535782139339100128620609305664802503992190783809341440,22538776854743028955330291718150324574246554559844888063023971384569367319821035531176665518740598148756464074486295880132112232476410695854495445535203534901351945868508072299620821326244197463589882910730453059700304774222551418599856222579078676480,6421069087452619293344283129780797948592264163197380449393925377610948126607169469992481329984790898097441541234579763166374186096389948046003581635094641329002243846467289796358693903469855250837927162022947237840279698358084036093955009187272102624,1820757422672803850956194197605265796704863689139909553102207020152545625743337573485008619856106792313991426915841326941851503251393336404509358436094200963295007547401671818711664589828747470836809060023329511853806698764131841537532510823134642176,513893844205478861004191389877903190983842691105019034308060016949773695036409200516004436495236598631616986335844515937419265016195276328989300286681157439052060767158615794047734723585596283949874630456243575453354919231984093494710644080142759936,144371059011814943522160146090853736996137624958013881004273878669586797512969151096897243383099383757618492775014606272289310154557903495306114783218730368664569039749273748635936166146491617195642186298763725700838444408265928520434506831405445120,40372075619627965237244402277271250371568253097656351304297381823356083889734361734086971467849513413605589289558089497738700527875045236537995572325730041954952580706658868661902868483768193042518342204275317475913831319485911208932398939728829440,11237896285817324983908151776996397877306677328347129803786417013262919744716010474422933008305383625027160389356672674970204552186932457582409499641565140166814127800147726356307261114407702447895103839694668295228161228664764560837689566494580736,3113871967853614933453743396847369161252480252197130148444967947260824893506268864535157248742953144828973743858724122929730433819402102661722489259535718458849645634486343026329409170767983478347312356149304942051763562872527610063051478917423104,858889013033822065531346256704665251655449244089372205036124374653365021694248338557029501631582348738886792807188021763845772269430152382520685917695850448702662104861732654170053305169461728375893119047316388773716943010904190174951584222867456,235831963382732253224202123560903017590092339020774908226526177129026736253668907924842961182695838070753677631442869656125769032868128223500939860052240600237329375269097959760860973674344377201396468307750161986818005945528608336452859118562816,64462383391950294737964251738461902343821836828675711698582322324381896895253740333386729991682489314278399976410651009716718351922127072697961853601600757160068564396645670036805697487724033107120565724096201634024012443179440547327236466892800,17541101452904614727253554673078336504775252049610008186656055037655692072064591753245762548189173483875769366901637553888167555466787460955268196301653621607495284416602879956117197915707558138227766835417951004877193286910801167049481908365312,4751851894981559163863181579905672062922151743882567301344704002122753972275922285109304656514991625109013226302463969556336417197159328152342164881168508554714004408336315877383317380095422488126551321377974935065177976451498062369455579877376,1281542988132650656960175445849306284260317990188426042504843873489730057745759556233865480758341154237230797952673489961096369812345907770055636410691509583634946329902830007413654114316006929602738983485488837281618544822242483159089427992576,344093452544116182948911776530971796009137824040372640123720106744227380996189916379053863348399880521199367204971387850201931843769431457129187876928660152920603138789144580248350774296941284181655736458841385258417760495666926286069059461120,91981666816101996330492569081399627513086772036667406649751407586377014378209561575154538217601960498562501655149196116928853402955698544888619597750147776804937352635598733253088883813476775911797222180473816612432880429060797621206514679808,24480284151876949753621504529137696999803678957314580411926040080113594168651728842396187746768502846543624790992195769903600538048915801237722902594748830609037683352388757237858581247288487414669576318256325716013994110030774976001338322944,6486801545404977538624416178991356247434379612212161597783432161074360692421476354326266999193736395556093099678225172353210702264786777398379880531386856420246628894629196560095638726107650677394966070364647835785162306999625642270691372288,1711403433701154637366437145323637989106175929388472617474327128580160241055745476885048127100053894567196241897739080009148395740389939525107074303114141929720230990219947038542618588924022774015316543345320536956081284922669590859405156352,449562893691791008165866699143448673604387506443596888070639452587430697304002362805299374334341907721792796621245685709267268241884491148560253986261103570777130044774880850674527987016981696686102617780750323317530958918259948919244122112,117585404483660670096350626524846946912436524904645708159321896265327987090733431827982981865328613361064013567048900525780087473836510210791202751044289675752620783050003593370455542725679588886373853740283972692588876479759356617185939456,30623152328303995155946260630734442114787825624002475804168321932598481030068016421446565073566445173621990840535364160507392448397263430635701103031830207434248408448052585170634499151374380608884604252744515994157448572164100261099078656,7941243175063210752158991932587509046927523682079560543876837922602666861803610320117734920988965089032796661701100939460298487050466612999537191181011614963580276847397363663444887449905763211687488934420677285349593108602576210517360640,2050585171172831800355198408995238072405879575351755276023289472828887214165499514157407853232067971663797804890190648216095689638703426539988200779572028783085436278851586253771469407988134263895266772481501547208890934177410530669326336,527261946660553510738949761823521805653683873272162654152475244004055243206752097367477767185332382975355618862690866712643613121254943710023156122899930226115491560933745302323224576739784398841374119351232587149732289660825418770894848,135002843013990624186557010376244261661526071084747026635272291022088735628912507482945529258956066572804352625171732148622302716312663523346385865344373557224825661452427883238168374778634500961573113755711979120905782329126632189444096,34421978433127944475578041283775659472520526334114509816179523171026849558563102662051393032796552053296052564475895959803029467807833340363496432933961697942744800493476856465223057337212502076717992198186268340835579781051844440465408,8740045981127748231072311749045563101135389283178348030607227037805967683026769948268098882923641226516573268055928262172519196430651354786203757062197922540902347473010720590821678274651263279346546960319820222856594607444996030474240,2209963587686263359056380290057710128461856138308441535972719820756536772195403437139995500055716579799123867486101837424965254518419775462327325679014016394840696849235342663327110725091200756270353042074783973025344498799732824313856,556491524997869987597480942991924928879229373745216395295765705130759604183755573391925214016742059386576250055508903997031619107863388373412202071250987085217078714426944152024358454219246756451644247677039052286456583217594573058048,139554080772411962804343627478805494634192371945867717537517240210034590218119425261911743916305793623421716172582913365315706600277462613917414847906221532711521044243145003225463562043475256878456984881253928590127785291788188180480,34853434254142304055811743788395532628292925453336408743322642903935519325331105450869709148522047440227845560228647049546660432634225009696018410956922526639487177004094562957853180310011248050267319162672213599539170053260167004160,8669142793903952002092863969487667844597540219118690020052360457399561223603278183633863937342920072611239814301432221581550537011013652928229588812289909842196677899890651225880411735264268346195134677246924265595624905511656845312,2147547397447072602502886078371500502333180469057420986132938443409873918057987278704255724107561242602387347254497099823741019738669943240544251595794042949090559219789139651512512055060219605078614568232440016081595477357542502208,529851111894390080887834234058695889871034630874711593594129635311043365374474229304642827995373521743474557113244347823215665503119013747106118831078270936936456643421984878785804114799979714446722973937653026011568703872075632640,130202070860763095128653870667617297429070999424181133876893494227627347938648455437746052142057814186006459705170184835348148638607324771086399418204366260400708050435481672770144741693741437032007671483295428585922034169737871360,31867157756230285496041104684606426891697842828422908222255079496722750008781341065181880585936858352691495768079604505433444599590229105500875268809072102629358612159968403347654604068552290022669540788416172717900948527388467200,7768525627417054175100388251564489012854276195626323843061635281336871896168725688796157108869286342977288121898159105669479330939805535922866014516110935208696969349401789737122997486196073530844818948286523892604349155149025280,1886305954147451560130516310747604018003485315415389514416991723961481383745161545353439579139551515609662269600859056749284795548074435480245813275937187647675290203885074788451558133104977430139670562509640201071468024440287232,456217925177857851752422796961765458652796649652682776792040151959691166645383186651744256910005269667267246202242820053659732011919242293203245134604536569460732125822810423561720974645436995722355025603731329506757748954699776,109907577910903787589348779780216047231370784693733982731433893554116538570499375489515338330632713972817139446135124798542809635793554284462950481630923976552153512949719770838077701895465637295497276727566414862871564814835712,26374631960559693675099843247545676046489974276038897194394914870363063990973303007250775683364444890497360758160834302713404931518587109887159799410475552312993428817426476535996099938719494212528679175962324582208654745137152,6304592831858991157948925191955626682662597015786699268802778904989068075833528693011140101124708246208142604144110222674296459517538520489709061892568935216550107584621230665842247048836868899572122818170745457938905855176704,1501232373050630032427188980135766802790085804418435307498979145315530847328526077148551403877777089535334221249316553601997232481949369417539505857726541660680832277812543203099243378097974469828568922055981270000342961180672,356096255408145548147740690238358171881730665075744664503142430058539249074238556063424143452718985793172100729354867326405985027799001657039654816471028627850209297815644061992260768890575467935775228365038532231162038157312,84144136629316217579830762495940550563315947486538434930988920619053071765556433394769224130843113000514242423344225008623433830985088792755521653516263793364402405579913243038706580630558485659048153227531143825101950827520,19807315773890108326530895425126606691469734397278117963132792297134401033065726931200545624130029579243782251096848978632492298632362375456686377239139227430323783162714642548933505195199585181511620673430553780788359245824,4644950031544147005196419741186962649861021597774619750564359388422442154594281774764285628639407024440556011760360749553652012725470593644108193823121317701685799131539017999530902092956038908442067932540748142802430515200,1085171684278762968789387436846555897060138010567454128412325433925937970574080093788308605578868421062567599125857488350381210761629936102328083427254049366347957279888474200636921537878003197894844548468678886164313415680,252572561041617393134102116634909011788977880387862711348953702996027545907506498693996020646205795083622338025688426642094229098034881486839754011946106532873103549825933545916910242371144617629365208858946114742375224576,58566936209979918300319043298444356331251459908385161936010857789167471512047206230192607329453223512923117748558604756947109963716707669941505514525891693274262324214877714271048309775253046323377764236302956584278691840,13530248484717134949155310401458082521847168476374844226696523872796532835449334760108546455847230647931118044478222142357714516424897903467695752602803924899860847538762207986806332009407682783845472159143277165434036224,3114255700364611658953281351672373754304682497128975378487294105274726245091594841277464677339120277048267671325975028603410776947147464620461469819259404547150241138720709552940215181978188318416881604816802759790174208,714177697736194837569026573110135997025761796356712750127221580820624640409809081893483913349388458932905013952605728388688573039192254138197107065089106868466766301730825545009141967564705886865102486227516512681828352,163181193523732055080232950114571989874407183828503492818623769866898398108025602675427759223906034644119556416203922155628949401335888727064544936687664187373464723348735016827892424768520776693701704582084580275712000,37149588755103540808806633316669387272811786595825843668705095290830422329915952348189241510327835341134139418628666551991280014411398813112200484303544899938529847585406002658403521054850097535585781553434507711985664,8426869570021943600265311358090291255451533605466716520499900723252691639488542904639911676275816056719537222664099277375268886061239202985501046863515843540941476629119679268349673430420772922470342409058355167846400,1904649892743422219456767563186718033261306008588774749482216030798707187954970737557589272783181882376557796182426111297256081205787482995124027534520426663480792370775679511255390552424545117131998995140467883850240,428952225837681080091879502718851603505438066036635077598755788568208910069213915911430714632943973949057322109156683741761233319303105407982401728533762135602447917156817685328789399402169608128605300353052617166848,96262211822865419236172407673472203460955748561527088922979531848392250080663056996294930239256277173452258621402477583049269150323314572020781714714567203334066884535959405723228745161652076259779555143506173591552,21526039896980565445268718913568234843863142851558050883244272675585025326870456761835155948399709738164630501810678505913083139260753301746983294814374331029099746472520343038539613274075091412707359552045989355520,4796694824331772912871587164289411459259289728802052695416946058709305476995552890749037095458294250234787671358058862002598263872508773630281868510286730170814362994465683739731609968166152913827742298193205785600,1065118494275223857073955067977834704742526485375551881185909403169836781039419492765090720383415821193728487806857474948921635543274087070449379261150952899905501593069701385191752970918655180867658026989094129664,235689315880698697660679127878651137767557661347862885967065784980294845482166606057616921105567596923257113007631551091018453417639294771961770276191281574074153197904615870332884549898085751938317886365709740032,51972815148208356062228648408685418624061731169770661015441215531773665716068719151967630096117837608402959470812039916023525082770633777510475364209310962168175292753615148191936079219997951437790580077860618240,11421291181129300408213109537971338834740492330135842804747213399329714161589001389326745321493321394713392981640106404611786664456584935171573650745838107992432476042330728434713268786032795669085821137207112248,2501295632669999274126212357070632311673929054096294709948577144308251185410161492449460331774764914857898766559046286775337076308841174280567871075585717584615874763320538818078055205225348362039400622979940352,545926211918859006564385567676838152116576327916832097208581379173544805841617126047466514166310349546391968724320751350116670420173375864947677394833333836085127860856103315979304858816600668637519025687574528,118749069309073161306089810686552219468576643652053760925163881856150826255918281851695801866913829597152584051610436308234391141552167185291415681755115797105839855211250130521933343689676235968715536406048768,25743173006665112656274840642905630873019930581450923081173351112089509125382167142368002594679738384534906474130423029540355556726430701186447697772059476999271587308802572041448235116140426916477210356087808,5562087043734413823719791830800245107390176553518672851581665632336970650007922088914923794560777447760602180954265311896471592056221458002948041440199458514468693181673853069770449501244830887587273054134272,1197748370534666540962958353383118531881227523061846702657234967840032001899635433887550972107383403161136686918992594563855040077263323917273547347317122338748770100258080318636858787258547264442348589580288,257071399620630580018397232427830149073322988007943039334958104795802744033927292120452692979476439300066516631834865636209948630958664602702982048241363065024064292639764486908628324580614404308483069341696,54993400256611729275072553002395012642622803787973322052020449139740572205172615755689611510339864844001630105470874580265632312786606953418204171852939966523958990490887963600333106011416475563170826468864,11725849160821023686235755946042323619070719846591084565611011318184978489810458043764690862278162021491074919848483342329486322573498575618478588024267102562870809744116381170573462449709555781670390538240,2492087261720646488136031121508986189908061709529354064463071285990938529483281531295966680983938135135390574934751791589430797873427354121940994669555902835402572969327427492512457103954353512041184487424,527929226124586893595403624524764447358174694136341860448475654713394817519906185947270091305163496569080587724876255828200828588241360454842237443565888569198176634931731277203739642919323339275951165440,111478214343302670877205537322087525469323662743079116597689791274806033576538188956958068863387941765520983562149314644508199573555936108040331513329198535175226325088301666068642719259491707628403548160,23464671477027850369435929574271210512778244195261789621730389963236902796635965421482098921736354545176139462200959925433007300198196727630978900104029258734202388816827056114539178287214324907967995904,4923313438463705466381246333898650413998385132143608368743228400628752514912164852911533741509639980459914900957132196759102564047703921167607129441569942325131453903848999918375053983762702301635387392,1029739575700345409599362914962681911431937382874644720245589191310560831231914349515463081207390031643718863646340760627446602957080142440714560123800651235798100541330415742703447699018848586142232576,214700292351171295407907974814741112493089970028861888262853288041704936263909999621161482954581148236514327554916178621796473526619667854520798668330932914686873110257160120833593367182255192791897856,44625347293605435837849122718568788790481153323052719119439932401059259760879932843176682848332004714563290382065670217751673422043332215520868248107728581001970542381805626387043438739638742507544576,9246615133095804952309957668943427602641063343967767592340281089506935869231555032100990981781325630222499108494757377656411366285287115378947279414401200593479455779391656419464696913504292178053120,1910049593937971838090637654340941308902435765538470553148552736416921218378948149205934181225104689809429725206447926634923444463605911343334205825581244472858649031400721518576757088980121280417792,393346890257280967088183344244796729125509378535056242593083767384949647157228513951981194784031744964523202774855024892064775221339467704792621727947758161457573497493821123755887992351871543317504,80757818346187503241931437827746973367472238717219957712673438831246856785564794345972611077061681022307802515624173073093580090011687797682129483938090427003897754122895421029152342614270269882368,16530265224666868754061222857483075696185218471202589707639312997217305032817625446310468749968766347732935220795944621566089563444560847074503769891211720279467948308500443715723020111005912887296,3373417593120998891970839361915910327804280035961809142521629287129720002531230807300231511275999917769077600740006413749124625447212042992173755280200492605040485490212985953340081850173761392640,686379229648238800751656754150083427577452477277506257777480900983017152042219799584743661955134826247169711193568122014978894991414519643389319849529989480848819329236208139548315846054165057536,139242131344114437613020012857124554648793504950617535354694078345374970667712146407929793722500917405021796788108401656460545220315449112200412570523522486354735469256076936685893337588621221888,28164270766927563947415550580360182159009999491444920957381579843169951078449795264264691440162727604504446966015942693666132958888518803205164848331492571414183349081121925248003162750760781824,5680107563664692624148958552899825635369035571339979010509907195951710965411695274811972602077348415161031707907362084144318685551476654822498473462647452878039140001747979782242947693100617728,1142230518383809538473452335314599875775703549253983145958861817947538150079679088533814792309781304945267192279164252824024575418245801315556632664667793615801251267085219974923351824598642688,229033565346746634005993908882199267660050329470709302497767130570978564113862115480480776925244724167584533726890027881285170281153279684496764464531919771117726310873795248436528398594924544,45793283662959703735223811810127858617648780698768324809908165477629738797855509459699525670326774262630832390452465780941913942661635913544791076937090836719370776340287666986475416814321664,9130002700912705646258109465939738402293631222644237538476456776828716172692479177797318674935637181024414270727504337350532022715620067197907726047666120810089791981940088944110349276131328,1815163597309980533653523228735744952799944247172266850013327453144664086559436446892150012765923885455833491965409917325396549407542145001170862125752477781449645633740431401836928317350848,359870101079833391096329032057030490714562335059221083027540638848952606738831696220229949075936921691607171588825233301111970444742613647153443239563924802919540293557131720851931482804224,71149256398620930054655459861556836280291931603590473753072081671558214536322134027656886551994618992841428564915225664509817428966360828721441328428098204045495135173171690744563552567296,14028110063400539567102192347132524688343293701729806862368820988241099329703398052276019816807700790884721271663981132526310525013797168799458134101294809210662200337749714619789512515584,2758302375040737964339239885531529536269040145207340487538162866288344778192030628739835344024165574975169272524077113945227755956685499758061751966426392234182322914302845701467552534528,540889220533052062290856999405579157730704410492923949220495553311010812446143107972928704010039587878890275738508489563812975657757374238363540415065949328095374310452191600330805161984,105781200266544997714819074378583619089840008531810365114479517708526246735510447740051184689827319953067083344948241452246508790436939460857610029782496066051042345296856471177132488704,20632529367040373828805561263610264109436116816051090711690965439199454101420610637447376570335072268058972097773457643510138387800478335573706195675377665616856433568713211612318916608,4013751897596853065312857119265283787478039767567752248156831032603627090016029517547386296349561944035500122503991682474742440856390244476581798931351403286830984491676790156678791168,778776888047850523922878562463893138607849023702587545097145288781949856606128280105189941033682095969110699555418857181065344470335188563110070745854659106955004152566531852769718272,150712971896086232584920998327745579840071618440010087826974741499423100081230647238886917453686601605606962640795384947539871308797099651985132643569528113628456870804827229426864128,29092028375739384714785815660796554426160879554414810555575309977091962193617328485523895670596229520471382239321446396265514851797396437327533146978693566842726265129304523713085440,5601367651934490487256175850898656938813011916830322678672911650940103168217210341046231853595787818418620485074491412145195733206443185940019565499177363871411129277919469078981632,1075776286792806231474307871610013454953071236681562590271035004831227437341831045083634356553966774864796537841013103622239228438673187894911293529619534616160325664718372592152576,206095715237924219260005924619666854116666227245961282939785106106449315578380421949173858908638063647516517429074892719135124592704160031575947364483549112682241194399538132678656,39386425010908127509052361703310494839136395709165503240345124337799591533322275861050564061910682999864322421403709261667992353118372687334406087785477900412212705935093856542720,7508729692863327331015465811908779279727869062342327741928732883540185463267266634583095554857733313191667512182421881522684608444878924807031230862716581905855409976585477496576,1428040752295198677506251161709726409650553798494552797177947146297190520491592067190568265760591024441459208436511026092401588871526825942845219645130022207673764747617442664448,270944968198960550909649545210984531608001027722208216632730828524526380702748909102201334774360980472738670475303975038032221660911333110962202665303590438982936149536707362816,51286173310894931010159917511816229017516931830195681030134818118981513745598845167555620778832870976163647580382117703920823572950891884540034968262551512143760551702261194752,9685249321523762964137442002368875730740455342852869258997997159375691760268284329048407183595886286048521098957323338260979105137989957159158361537496670646048009744213307392,1824842708656184770331327411402849014046014017791658726248570146451410333644354598803672705612920030129070254163732749988039188413287384533409071271440935527162309145775927296,343049857406276147234112999122021515299160101656101116651804933169213045187188590941724978979619345664930247614464313697213307293368971840297422127244886788914166022670465024,64345697391487364522043389422498764953064309012340117851281154192200774822757445287236232061307516839046056251955770454339725583358868976416537013141867284102768865041915904,12042752650516170140735063372595213033805815091508325011152402878956153437593841930710415366412068188250092514859472446341520749586187427731888062273673364045774120292334080,2249001582841092663364137250363898513233463153162052477668611597116890476133628693724323189068237956964796477388818666111304330002059671974187413766415458207117085604204544,419107547053828042086268820924647381555124019253135188683016451631826649576232803203509890153439173500636801529137095323088180419968063173143900535952555177959245931339776,77937619439678118311996136071428411996291284508451717873339187371095726706866446908072563492037135576618911236449605850834003414128024048752388733555052114733787293458432,14463358509208060016974597648855774169517958608577080168948993345998613024633787847661735676667730027827647287243018023400118762710374692019635803486724620064339052459008,2678589477789117486359501905154246823481736498544599733322935588718974416349566049013113716906024046917048316802171675747279867556582789793113818987918304069597985918976,495077266210966855409308068591897535735620618777629233785409440293437320107140708931643185684033313839751595898477171768852949439260586499706911142978613339475969501184,91323938773535744470696316920197304517548630617955870181306670644610622203163004772064037978917208782711611229771973356306425839586412619841475874493649574732335628288,16813428309330040481942398770539325329951820061062107268289650129053701640425553928186005318263130315030238217323414807663496128317041154421454432648824303184283220640,3089606853175797798543735356549279065842036855908402865879981782497763687665421797096839848141360879597941176120677003018676032586930923630457040738069606454589636608,566683921718143896819804470775690259447574141574487152356686221891607301230506464910511536197999292946898467482384420339677859865483516144582875145199406519684503552,103749212024109665436923386149396450196968476731703964144994181421526016298343178601907109842021306516847976901859726913885977092811033414063281372568296206048145408,18960533221104092709958540110880743223875415001401378022664082740369047737816815463857457734991992931410302089771089028075591063291111268972606027358178133821410304,3459025123165276638520367880612859287645092073797520916134546211709848085682828087186728350576162125555562632933461700017597320606762992594285995786388820428218368,629955560239095483050928361519342559786212542853320489887155866635410094063474267739492011932937593088479419988896227382061436918767141045079262108620245277188096,114534068460144206346033509427576181122045952443957277394022599759981209903019371714524310877407688378168818737497265038144444276824659185100641972822800036638720,20789473866423705576923409498676337143133115311789298228424281421196843062226337265409437897731257132737362961323211511101033732701403282615771437385756684559872,3767486181767144004732831521405759596978513459868779175095579887897847516031235028025515065087146646295522387137590824862748700433395138347066317300085519540224,681670242081075286726987845071111817869871919694916371984551098078160018796056223790439227971341394531394869002807554473595815048601450631190803282154019276800,123147728321183458974485400627777880837405067969221469924152884015779532330817898031950671971250330814203737394153571488361232844481276704503777106974822928384,22213781373572685966064653292568228495414075104875175063297804022023404717439098775487342539371631101882535306023058927627255253577226509277295318782720380928,4001076696152426871541409467187451032918683723916010175732492108081860077347954943355289413542120664038242648798667067276281382477062693248282868056307802112,719620345921419072488128835077332480354173830776192854088693724131583057578682285357357471716374126705334481587768002624815877077856559033821883601465098240,129245547985434763537997786574215456184841317305358015280531404203659859178659450344695658841946200819325203535689480960577185863876724290140439491123539968,23180685281804786444626569622454152557774836830423825090286749038400358820070177076962635585707209957704817612307129828909068848994672974869907958178018560,4151908979033273798036473940671534019344835073325319586041854518121133298093094060316651740721682893255848452110005326441736142676257139755990838247317504,742663344709309403793187299578858188377403821365509123086832953794477818144282537725344797038086133550534082460516477079491095406543913236013944663263232,132669115102119395710689936386738925896580325702102097882345668925520939786185924311773117132717956282198243213738683529775952154606382218424661565345792,23669642555873988806486945206485471202074393884470624761752491483984034385201761332878376462446656328676437450540294227809998125109991406978836427977728,4217617287673731533230978060444825128722800203342368178983560887572804090876290166287002558810137166669103602939121392219397679608059701463229932011520,750593859863698351441273089417306409972646732266398260992625668377936047335688102732351087294302406867910888853422097794955519391954860892217787510784,133417602846060226082311582563617929756547999089464078306145873713510829765148327197239455034339570683615655983554760261150181208849789128679067291648,23686373883967766766982471061107945148830827889799935990010386298217677950942775538336307205560635525389745244195699836241545579679818330028958732288,4200175810211707679523927449862643711556713768685640958317638827734386628364874836849944831738220258974695144709008849776516616080323901450035240960,743917861080702360237395846107248548376782381371950086160589049270197002551265533573356867307897643646765468039510747725201115507611883314591270912,131605900807658053342194971210149615607229560073673962821062451646864240807517103339238185437727417647731119225667662752256531164612724197772120064,23255295671151986044960635017793448275121676803874262832269809922480880284638151092046245635962825712088449695237347376718241156558087357782429696,4104561760277334995992910486506663301116454575765612768852753218062307849101917665022054046928182100345145037325423445130571643490795871138603008,723621530585462845157929740942758839127906988193169722047136598996754126975182881362027466547758941848901478300716135034186161320050973145300992,127425484140200444611421406778536441403657439817430346862048253113939615234587492625822377071699509272472306497296980428349272052077951181762560,22413034176819556370837832354834164828257417808531852494878876990562839476311174683280617646871367942965459586309594098955281793799931299204416,3937703916723956609992617475901266746474612988211874862078424225709073185040681444535266362706766510935226805192773114511964897858005710721024,691004848392684058294645446565850997577536117723387061172356844380005633215390102920133271716139615319835317745436032403209702496502704128000,121118777245367190930556238368205730187949646998879427386032532300961440238926643013065850049935699711646372002285395889968683400241949286400,21204599655787680942094938074576032805627446143352455356913782353909598459396069181335300739051440901881566519499977305264707417547356237824,3707933670652345981115677815699938239340901022491686620663683836700168408824996252314095771484739132321672041038277392734202212295959588864,647606816295458085155388420515582152979944072834512419219167702818849356361409903159493717453186877756745093004142147273623466976646772736,112969709087091619223355424755493624077175996621101666207903358515547833796760451777036540775846126791531386235055857337010822739144138752,19682335965345021015123674835988588858115478253367634422267860959589757381359401284150025806864572129189937010285416294170493354260062208,3424897274680061918917270709068159594368814718884805250999001331447907574947587302387288339627835029286543276698610836518716550078951424,595204755106542345289685813855555810301349291322627780630506129277996588498025456162330861448072561743054632347330289132440568974888960,103305696964452752591781400974244501765072300973296676482033302842277180473790406748553430541274998546014119142173393306424998230360064,17906544619976758450064392307420989576729478564098310254249573565379904011726987406075131064026670604959297988394724324205593366498304,3099695842695670654277611039348238507161860498879826041776139305101128572564684542250355317751591813238148441611902775616288146780160,535840904179450135273075245330567306781967955056793531455961613286168447084783428249523395029532451914653206375590743434901349758976,92502074063003792372270770855738792395745916416741132326055175661088449612302926378595615547580827845083218603702013711384720384000,15946115070541059217731839557768778498727846001049073907362133897610226409474349613574384406683163556674135160913569967614472359168,2744952374446077346228640007688881047814280111957028820772788759122225114730407971096543709471585847411782117890196531131189186560,471823572349134685987816404301973375225894324830104008913965436488451645265164560856150160736485753615731696947798246160205701120,80979951489401313666954479483694216432568656528768465121863584533567525980906968210895582986020380198899296295249397488052117504,13877664453269647874715959837016037370394569733221971598894882129496861045728879586772823320782399424831483002186897203732373504,2374564570252186185269017737435322337914204234973494650994528766147877334211144565673919358739461430380317396056185453786738688,405665316455124341713726608354187226685561091585268608251154932319795028915880415092067655589734929145258110293515146523351040,69191934110501136829965454583474379537150550101836406656183486771791946009491365501610283594961370890342844388518957026697216,11782407095553835147512290854635105122292331537972124966099566840196998525203847716638440898882944109477288337717292417794560,2003044844518453651108610179768091440844170047447391888092419349439891654585751749616486336216707970301542385921369871781888,339947953940550280979109201386341146781598438408965613917267850527494250493465263429678144833878585248361788084749409681408,57595188956865857655162274729268149410481938937583150257787191780040375655058418336216532657065130948409624534782855700480,9740893663609014429471192630717998262379169610565129852189262854572100050656938918946779173062347232300689672256126518272,1644511518725885265034892964469851037565658907619864470437489173232409829351207780987023351795626427662490397915094618112,277132312846375428442757291705012252693352609478160188581561008866916103246655283398500631434102836055798794992481159168,46616112461611949569170145275517758295519411238433754396238085435851502963166254484273048597308849500630482547073613824,7826543337147601025292765303732018309136486029715659831024424282444763968174982211119376982440029832681735381513214704,1311521177903585487928021593392432373661945460144043943500653888366888843211219547846757591120816690258837963346673664,219350288112154574934769616107112952177910435522214137666912735775550341909122944257277684185165745885225203595048960,36613800413687141754799489403933810458334059608858248586861197777620909741200370079435310739089884003533661324898304,6099315678469359068222809637970216145169789500310943169060944107933382864721417035551571022729211374403405638065152,1013988432748211842839474738964230742278209212804760025309447919633657796509155359918399814821838309110609042579456,168223336767104759373499815355007742182797798766185685027702521547259869995595158208557698390264768485866516611072,27850081860287252688259980454516464872451125796764712289610773873398056918760769407419468440724812539136139915264,4600861945743228952932142838608104717687005670935630156636278628318791757758756602244586299398322545817094401536,758420006100856284190329004704407153575196280959833636901294358140515782099692582308690849925772426299016093696,124745078676835168297870477941130246119964696624927031336944532678714888685607947054692066157212601782740428800,20472231065640522403977319122200058427301060373117938975731067902513995175714520251064969714123459733109067776,3352122836269748857329106798833615809672433406914916030717563191699549940000024818684393557283367683314393088,547611272668487025059876098786756588565685531925041921100325084951633928324903723048673332830270657854988288,89249761381732005622415837883909580639668589829858966931690638312537706537166890077917500625429131843772416,14511366414101943366261013153241329401568888656761300104756515442126595020917207510645645533542864326832128,2353749511075296665799392600844255625318482060746658122271650525085867304484334594869176201082775783621376,380843708852095239791356147758009555941032024460203678365157738362853201718552078671387656587811666583552,61468361380625998824299700232205344082608882087019873547010520863828157937083795631702650830217885403136,9895967532746524427290572098255183564074544311868597272930746234712418292026563106022562874735037812736,1589095118735836856103749267651105397796724440521940127963021167231456010304866305579848236789121242112,254512732156996852689472547674014471907318003901054826940289035465582286612658530375962612998265044992,40655550259190022522665790938994277417783054604166583312942962044129967426538929010300586692243730432,6476842556359465541929090428523764862129837475008744509177826158461338196521877714864586708859031552,1029016123513274829920154204361617587932563051896446447329933937749270480508469920489324179691536384,163034025064945603052923751094950455704690201079848112852085959737719977020672833593156661725831168,25758059509268713482811748116365081744347680418920183224533673945786671966875143273230411192141824,4057963468998362312726489687525124943084064176323027344959459138617520875922482312918021850943488,637447145986822419007657368660783224231392475731647338618539422431660054837370653585937035218944,99839388206752878704490609801980843763376953000735536929573208703990410672727995194032154632192,15590556008567478336634807981812072185610883219141533433065519075034780521751485209136198926336,2427186695441797076072060077744717134570639815765318216171507931178831109209866978725155549184,376709179320641924302294786964228695400019805803905681689769155410460308657181195255746102976,58284065259880022473460605187895058626784551762403727667092194943126191830028749505560694784,8989030582653910418432093978652682110662715124868469027267533923192559429158402815056969728,1381890514675908087671413989792984868194420191548190433311295067461324371413710622329544704,211743511624819791063119086625494624132610116282445751507211682576769101987980221351538688,32337004478506197189193649874290097987103308368516874009376045619088712652300423860858880,4921751808105305915175375210336543923554372947332130245175673809951888302846855300495360,746528607682263381946103329854315306074551716275273733640277341263033564368243437625344,112838189670198685745486692297939545468289222521576229172955316910387765823380218695680,16995120749012641704831888503723977025321633253000588066195341177022821926992491802624,2550503618526199187878570017669310976232830865078389416331672653855509958101509705728,381360482855471853077311051379352768756174383251009428992094314762653206777975701504,56810346023069024903957823460870050908980453431367523841169286716639025212474289152,8430911697017691421566412235327041166240157136715650360535086036043394271506001920,1246377953347562665577072201810473438358789404325867743426103053732132563725580288,183537667035205182096794838543025743492158480823318301883368852348103650892161024,26919832300887361029558117630866268718179380900223078253093687380566264054086400,3932438769324625645584122187757583827677362367027220532769184588534275093401600,572089710960642706383513528013656771283983176900678883825093855592132015833088,82879703750853624065467203929329090083505635127523226578935850160184963031040,11955911663921129633552662870566285708834836797154248182748563411032991625216,1717257538008627181442270148091891746139961439963051104372874547733016801280,245568881686232098221582987939203028786224264243335879323798402946953443328,34959279742568746551815844894454607397931655190346367687062573384077484032,4954137281939217507496992063475735710481672274820772631534484753709689344,698802174229567475671981504282180889145317351574988185238821318936547328,98103468090278656011768735440593541858438564980785601080270282434371584,13706311706528570714962892502708866694876597387433853742956401323057152,1905566624160737185266740444427689518109946396415627534817026783400960,263605824446195823993048483432666471011483615868985818646050027524096,36280400303569060652658832814076938563782089924888015822409653168128,4967444151597852588570795792041970391204586352498372635643170406400,676541032071946409099909149250367100446574855934842331429519142112,91645373567645392073242032170370593654118502035003493123321151488,12346271753592922468444986828753360574796991433134812095904077824,1653949139032680803917761402250977083486051914558548492009287680,220302845986047930077169257712835929098538810367386850661952512,29172837952336809130467567885805294279934608764786196963549184,3840123074828923038181825033616081876169505376921231869812736,502417736812449107497117268157306623724023617294202487386112,65325348592318282810640442898098981550348887984910665266688,8439894555626693862474488558539289489067814554730078658560,1083353892268561990811184287969318106952691890904555522048,138139825165231317228562951874087079857917557825309970432,17495152220971073346308618593911132738639343479232106496,2200386869438311446643606505098940608474943562758496256,274784985732917125884969028662235307062200721200070656,34066386392118637794422761953081413466164757615898624,4192018383837923758791831692487336004622054950732032,511922093192231646713532662307450319530998390120448,62028020510984349258261134586972186398069579171840,7455656526572114127247484497385530619632937963520,888819237227772017275167355580125315625149707264,105067470222447781623140648431924213078845685760,12313043847632252717503298415689732121344290816,1430150371476550314756236971599567116560830464,164604132965150053436862836181661369720610816,18766418101396516796805819534469514301546496,2119131433404402680229316495074226687313920,236883377144617677266679044866159843364864,26214778104788743755033162540010899992576,2869489075366797548893304282023450533888,310837636046827614624428277539688103936,33268211950475541401174550189585117184,3523173455605142701375696893142359104,368038492491826519223092138855485440,38057017987760849668592216619089920,3871553755823196043657602074615808,390468333064795797623009891880960,38569361472886182609543396929536,3791345208840452468065820620800,362130971398695260784899284992,34699120806036636726464401408,3185666524478313863851044864,298044124622553465145298944,26065481800659863486496768,2391406180740483290926080,196523971814021975830528,17832940430689993684992,1348964107338697842688,122868315209973770496,8296338816339398656,776335369907888128,44743561136807936,4449893079195648,205394991329280,22748079183872,768629792768,100903637504,2191790080,371621888,4218880,1057792,4096,2048,0,2&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11669</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11669"/>
		<updated>2026-07-05T23:40:50Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau (REFERENCIA) já foi estudado amplamente anteriormente aqui. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida (CITAÇÃO) e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, Ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado aqui é a implementação do método em paralelo, de maneira a acelerar os resultados.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Aqui,considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tendo uma grade em geometria toroide, a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter uma partícula sem spin, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados incessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropolis tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente (CITAÇÃO), ele pode ser calculado através de um algoritmo(CITAÇÃO) feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=mathematica&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e provavelmente foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema de lado 32, que foi utilizado aqui. Para facilitar trabalho futuro, a solução para grades de lado 8, 16 e 32 pode ser vista na página [[distribuição de energia exata para modelo de Ising]]&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11668</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11668"/>
		<updated>2026-07-05T23:38:32Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau (REFERENCIA) já foi estudado amplamente anteriormente aqui. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida (CITAÇÃO) e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, Ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
Outro desafio menor explorado aqui é a implementação do método em paralelo, de maneira a acelerar os resultados.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Aqui,considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tendo uma grade em geometria toroide, a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter uma partícula sem spin, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados incessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-N+4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método Wang-Landau ==&lt;br /&gt;
&lt;br /&gt;
Considerando uma distribuição canônica da forma &amp;lt;math&amp;gt;g(E)e^{-\frac{E}{k_bT}&amp;lt;/math&amp;gt;, a maior dificuldade da maioria dos algoritmos é encontrar a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; que representa a densidade de estados de cada energia. Algoritmos como o Metropolis tentam encontrar a função de partição através de amostragem aleatória, simulando diversos estados de maneira que a distribuição energética final represente o formato de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para uma dada temperatura.&lt;br /&gt;
&lt;br /&gt;
O algoritmo Wang-Landau tenta calcular diretamente a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; sem a dependência de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Nele, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é, inicialmente, definido como constante para todas as energias, possuindo valor 1. Então calcula-se a probabilidade do sistema passar de um estado para o outro considerando o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; da energia atual &amp;lt;math&amp;gt;E_1&amp;lt;/math&amp;gt; para uma nova energia candidata &amp;lt;math&amp;gt;E_2&amp;lt;/math&amp;gt;. Essa probabilidade de transição, denotada por &amp;lt;math&amp;gt;p(E_1 \rightarrow E_2)&amp;lt;/math&amp;gt;, é definida pela regra de aceitação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(E_1\rightarrow E_2) = min\left(1,\frac{g(E_1)}{g(E_2)}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Independentemente do resultado (aceitação ou rejeição), a função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para a energia posterior ao passo é multiplicada por um fator &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maior que 1, aumentando a densidade de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; para esse valor e tornando a transição ou permanência nele em próximas iterações menos provável.&lt;br /&gt;
Além de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, no início do código um histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; é montado para contar a quantidade de vezes que uma dada energia foi visitada, sendo atualizado no mesmo momento que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A forma como &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é montada faz com que, conforme a simulação avança, o histograma evolua para ser plano, já que energias que possuem um alto grau de degenerescência fazem com que &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; cresça mais rápido, fazendo com que esses estados se tornem menos comuns nas iterações. O oposto ocorre com energias com baixa degenerescência, onde são menos prováveis de serem encontradas, mas por terem um valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; menor, aumenta a probabilidade de serem aceitas.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é iterado até o histograma &amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt; chegar a um nível de planificação a qual o menor valor esteja dentro de um intervalo (normalmente 95%) da média. Quando isso ocorre, o histograma é reiniciado (&amp;lt;math&amp;gt;H(E)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; é mantido) e &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; é aproximado de 1, de maneira que sejam feitas mudanças menores na função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;. Essa mudança normalmente é dada por &amp;lt;math&amp;gt;f_{novo}=\sqrt{f_{velho}}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dada a regra de aceitação, o valor importante nas simulações é a razão entre valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; (tirando o logaritmo, a diferença). Mas como os valores de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; são sempre multiplicados por &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, é possível fazer uma normalização. A maneira mais simples e a utilizada aqui é através de um nível conhecido. Como sabemos as configurações de energia mínima e máxima do sistema e sua degenerescência (2, pois há duas formas de deixar alinhados e anti-alinhados), o sistema pode ser normalizado da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=2*g(E)/g(E_{min})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, considerando ambos os casos conhecidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
g_n(E)=g(E)/g(E_{min})+g(E)/g(E_{max})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa função deve ser capaz de minimizar o erro de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; no caso de uma evolução boa.&lt;br /&gt;
&lt;br /&gt;
== Grandezas termodinâmicas ==&lt;br /&gt;
&lt;br /&gt;
Tendo o valor de &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt;, é possível calcular as grandezas termodinâmicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(T) = \frac{\sum_EEg(E)e^{-E/k_BT}}{\sum_Eg(E)e^{-E/k_BT}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C(T) = \frac{\langle E^2\rangle - \langle E\rangle^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(T) = -k_BT\ln\left(\sum_Eg(E)e^{-E/k_BT}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S(T) = \frac{U(T) - F(T)}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas grandezas são funções da energia através de &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; e da temperatura. Porém, com &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; conhecido, o cálculo fica muito mais simples.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
&lt;br /&gt;
As simulações acabam gerando números muito grandes muito rápido. Devido a isso, tira-se o logaritmo das funções para melhor manipulação do valores.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
O valor da função &amp;lt;math&amp;gt;g(E)&amp;lt;/math&amp;gt; já é conhecido analiticamente (CITAÇÃO), ele pode ser calculado através de um algoritmo(CITAÇÃO) feito para execução no programa Wolfram Mathematica e segue abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=mathematica&amp;gt;&lt;br /&gt;
n = 8; m = 8;&lt;br /&gt;
&lt;br /&gt;
Clear[a, b, c, s, c2, s2, x, z, coef, z1, z2, z3, z4];&lt;br /&gt;
&lt;br /&gt;
acc = Floor[N[n m Log[2]/Log[10]] 1.5];&lt;br /&gt;
If[Mod[n, 2] == 0,&lt;br /&gt;
  z1 = 2^(m n/2 - 1) Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] c[n] Product[c2[k], {k, 2, n - 2, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] s[n] Product[s2[k], {k, 2, n - 2, 2}],&lt;br /&gt;
&lt;br /&gt;
  z1 = 2^(m n/2 - 1) c[n] Product[c2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z2 = 2^(m n/2 - 1) s[n] Product[s2[k], {k, 1, n - 1, 2}];&lt;br /&gt;
  z3 = 2^(m n/2 - 1) c[0] Product[c2[k], {k, 2, n - 1, 2}];&lt;br /&gt;
  z4 = 2^(m n/2 - 1) s[0] Product[s2[k], {k, 2, n - 1, 2}]];&lt;br /&gt;
&lt;br /&gt;
z1 + z2 + z3 + z4;&lt;br /&gt;
c[0] = ((1 - x)^m + (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
s[0] = ((1 - x)^m - (x(1 + x))^m)/2^(m/2);&lt;br /&gt;
c[n] = ((1 + x)^m + (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
s[n] = ((1 + x)^m - (x(1 - x))^m)/2^(m/2);&lt;br /&gt;
&lt;br /&gt;
b = 2x(1 - x^2);&lt;br /&gt;
&lt;br /&gt;
a[k_] = (1 + x^2)^2 - b Cos[Pi k/n];&lt;br /&gt;
c2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] + b^m);&lt;br /&gt;
s2[k_] = 2^(1 - 2m)(Sum[ m!/j!/(m - j)!(a[k]^2 - b^2)^(j/2) a[k]^(m - j), {j, 0, m, 2}] - b^m);&lt;br /&gt;
z = Rationalize[Chop[Expand[N[z1 + z2 + z3 + z4, acc]]]];&lt;br /&gt;
&lt;br /&gt;
coef = Table[0, {m n + 1}];&lt;br /&gt;
Do[coef[[j + 1]] = Coefficient[z, x, 2j], {j, 0, m n}];&lt;br /&gt;
&lt;br /&gt;
If[Apply[Plus, coef] != 2^(n m),&lt;br /&gt;
Print[&amp;quot;Error in calculation: Sum of coefficients incorrect.&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
Print[coef]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse código foi escrito pelo próprio Beale e provavelmente foi utilizado pelo mesmo para calcular os coeficientes publicados. Aqui, ele foi utilizado para gerar a solução exata para um sistema de lado 32, que foi utilizado aqui.&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11653</id>
		<title>Wang-Landau em simulação do tipo Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Wang-Landau_em_simula%C3%A7%C3%A3o_do_tipo_Blume-Capel&amp;diff=11653"/>
		<updated>2026-07-05T18:47:17Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: Criou página com &amp;#039;==Introdução==  O modelo de Wang-Landau (REFERENCIA) já foi estudado amplamente anteriormente aqui na cadeira. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.  Como o modelo de Ising já tem a sua função de partição conhecida (CITAÇÃO) e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisã...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Wang-Landau (REFERENCIA) já foi estudado amplamente anteriormente aqui na cadeira. Ele é um método que tenta melhorar o algoritmo de Metrópoles e calcular a função de partição de um sistema, como o de Ising ou Blume-Capel.&lt;br /&gt;
&lt;br /&gt;
Como o modelo de Ising já tem a sua função de partição conhecida (CITAÇÃO) e foi muito estudado, ele servirá como referência para o modelo a ser desenvolvido. Após se ter resultados exatos com a precisão esperada, Ele será aplicado ao sistema de Blume-Capel mais simples (&amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;), de maneira a se observar como a modificação do sistema muda as variáveis termodinâmicas dentro dele.&lt;br /&gt;
&lt;br /&gt;
== Níveis de energia do sistema ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Ising ===&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sem um campo externo, sabe-se que a energia é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O intervalo de energia coberto pelo sistema depende inteiramente do número de partículas &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; do sistema e da constante &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;. Aqui,considerando somente a interação entre vizinhos, os extremos são fáceis de serem visualizados e calculados. De maneira que o sistema completamente magnetizado, com todos os spins alinhados seja o ponto de menor energia, com &amp;lt;math&amp;gt;\mathcal{H}=-2NJ&amp;lt;/math&amp;gt; e o máximo, com todos desalinhados, seja &amp;lt;math&amp;gt;\mathcal{H}=2NJ&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tendo uma grade em geometria toroide, a mudança de um spin qualquer de &amp;lt;math&amp;gt;+1/2&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;-1/2&amp;lt;/math&amp;gt; muda 4 termos da equação de um vez. Considerando o sistema com menor energia possível, com todos os spins alinhados. Desalinhar um spin mudaria 4 termos positivos para negativos, aumentando a energia do sistema em &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt;. Se outro spin for trocado, agora, há duas possibilidades:&lt;br /&gt;
&lt;br /&gt;
* Vizinho do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt;&lt;br /&gt;
* Distante do primeiro spin trocado, de maneira que a energia é incrementada em &amp;lt;math&amp;gt;+4J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, é fácil ver que o sistema terá passos de energia sempre a distância &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt;, nunca tendo um múltiplo ímpar de energia, além de,nos extremos, ele pular um nível e fazer um passo de energia &amp;lt;math&amp;gt;4J&amp;lt;/math&amp;gt; de uma vez.&lt;br /&gt;
&lt;br /&gt;
=== Modelo de Blume-Capel ===&lt;br /&gt;
&lt;br /&gt;
Aqui o sistema apresenta um parâmetro extra no hamiltoniano do sistema, representando que ter uma partícula com spin é mais custoso ao sistema do que ter uma partícula sem spin, de maneira que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;}\sigma_i\sigma_j+D\sum_{k}\sigma_k^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse termo torna menos óbvio os estados extremos do sistema. Mas ao considerar o sistema específico em que &amp;lt;math&amp;gt;D=J=1&amp;lt;/math&amp;gt;, torna-se intuitivo novamente que os estados extremos são os mesmos de Ising, mas agora com o termo de magnetização que multiplica o &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; adicionando em ambos extremos &amp;lt;math&amp;gt;ND&amp;lt;/math&amp;gt;. Aqui será tratado o caso onde &amp;lt;math&amp;gt;J=D=1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os estados impossíveis do modelo de Blume-Capel que varia de &amp;lt;math&amp;gt;\mathcal{H}=-N&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\mathcal{H}=3N&amp;lt;/math&amp;gt;, existem menos estados incessíveis do que o caso anterior, sendo eles:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-(N-1)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-(N-2)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=-(N-4)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-4&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-6&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{H}=N-7&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11550</id>
		<title>Modelo Blume-Capel para partículas de spin 1</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11550"/>
		<updated>2026-06-01T15:23:04Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: Formatação&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Modelo de Ising ==&lt;br /&gt;
&lt;br /&gt;
Considere um grupo de partículas com spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; que interagem com seus vizinhos mais próximos. Pode-se calcular a energia do sistema através do Hamiltoniano &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com &amp;lt;math&amp;gt;\sigma_i&amp;lt;/math&amp;gt; representando o valor do spin da partícula &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, podendo ser &amp;lt;math&amp;gt;\pm 1/2&amp;lt;/math&amp;gt;. O somatório representa a energia potencial das partículas vizinhas, onde J representa o comportamento e a propensão ao alinhamento do sistema, podendo ser qualquer número real, no qual valores positivos de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; diminuindo a energia quando os spins estão alinhados e, valores negativos a aumentando. Assim, quanto mais longe de 0 $J&amp;lt;/math&amp;gt; estiver, mais o sistema tende a um extremo.&lt;br /&gt;
&lt;br /&gt;
Consideremos agora a aplicação de um campo magnético &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; externo, paralelo a direção do spin. Esse campo irá adicionar uma energia ao sistema que será&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}_{Mag}=-H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O termo negativo da equação surge pois a energia total do sistema será menor quando os spins estiverem alinhados com campo, com o mínimo de energia sendo &amp;lt;math&amp;gt;-HN&amp;lt;/math&amp;gt;, onde todas as &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas estão com o spin alinhado.&lt;br /&gt;
&lt;br /&gt;
Assim, a energia total do sistema será&amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j -H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora, consideremos o ensemble canonico, isso é, o conjunto de todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; que o sistema pode estar. Se a energia do sistema for medida com todas as partículas dentro dele estiverem dispostas aleatoriamente, a probabilidade de encontrar o sistema na energia &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt; é: &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)\propto e^{-\beta E(\lambda)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com &amp;lt;math&amp;gt;\beta=\frac{1}{k_b T}&amp;lt;/math&amp;gt;. Considerando que a soma de todas as probabilidades é 1, deves-se dividir &amp;lt;math&amp;gt;e^{-\beta E}&amp;lt;/math&amp;gt; pela soma de &amp;lt;math&amp;gt;e^{-\beta E_n(\lambda)}&amp;lt;/math&amp;gt; para todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; ao qual o sistema pode ser encontrado.&lt;br /&gt;
Importante ressaltar que soma é sobre &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; e não sobre todas as energias, pois muitos estados podem gerar a mesma energia, então não é feita uma soma simples por todo o sistema.&lt;br /&gt;
&lt;br /&gt;
Assim, o resultado é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)=\frac{e^{-\beta E(\lambda)}}{\sum_\lambda&#039; e^{-\beta E(\lambda&#039;)}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outra coisa importante ainda do modelo de Ising é a magnetização, que representa o quão ordenado o sistema é à partir do valor médio de todos os spins:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
M=\frac{1}{N}\sum_{n=1}^{N}\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
=== Energia do sistema ===&lt;br /&gt;
&lt;br /&gt;
Esse modelo é uma extensão do modelo de Ising onde, ao invés de se trabalhar com partículas de spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; onde &amp;lt;math&amp;gt;\sigma_i\in \{-\frac{1}{2},\frac{1}{2}\}&amp;lt;/math&amp;gt;, trabalha-se com partículas de spin 1 com &amp;lt;math&amp;gt;\sigma_i\in \{-1,0,1\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Essa mudança de um para três estados não muda de forma significativa o que foi visto anteriormente, mas adiciona um terceiro termo no hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}&amp;lt;/math&amp;gt;. Como aqui partículas podem ter spin nulo, define-se uma nova medida que está relacionada a quantidade de spins diferentes de zero, o momento de quadrupolo magnético&amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
Q= \sum_{n=1}^N\sigma_n^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse momento também é adicionado a energia, pois sair do estado &amp;lt;math&amp;gt;\sigma = 0&amp;lt;/math&amp;gt; adiciona energia aos sistema, isso faz com que o hamiltoniano completo seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j - H\sum_{n=1}^N\sigma_n + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde o parâmetro &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; é chamado de campo cristalino. Nessa implementação do modelo de Blume-Capel, o quadrado do momento de quadrupolo pode ser substituido por um módulo, já que os spins serão -1,0 ou 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ponto tri-crítico ===&lt;br /&gt;
&lt;br /&gt;
Analisa-se o sistema para um dado valor de J e considerando o sistema sem a presença de um campo magnético, de forma que a energia total seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analisando esse sistema simplificado, considerando tempos muito grandes e dividindo tudo por J, o sistema tenderá a três possíveis estados de energia mínima:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;D/J \gg 0&amp;lt;/math&amp;gt;: Aqui, o spin de cada partícula tem um peso grande sobre a energia total, o sistema tenderá a um estado onde grande parte dos spins são 0, logo, &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; são próximos de 0.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J \gg 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerente: Aqui, analisando-se &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, como &amp;lt;math&amp;gt;\beta\propto T^{-1}&amp;lt;/math&amp;gt;, beta é aproximadamente 0 e a probabilidade de se encontrar o sistema em dada configuração é a mesma para todas as configurações. Nesse caso, é mais provável que o sistema esteja com &amp;lt;math&amp;gt;M\approx 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q &amp;gt; 0 &amp;lt;/math&amp;gt; com as partículas com spins aleatórios.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerentes: Aqui, analisando novamente &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, estados onde a energia do sistema seja menor que zero serão favorecidos, pois estados positivos terão uma probabilidade menor que 1 (&amp;lt;math&amp;gt;e^{-\mathcal{H}/T}&amp;lt;1&amp;lt;/math&amp;gt;) e estados de energia menor que zero terão uma probabilidade maior (&amp;lt;math&amp;gt;e^{-(|\mathcal{H}|)/T}&amp;gt;1&amp;lt;/math&amp;gt;), isso fará com que os spins tendam a se alinhar e &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; serão próximos de 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Considerando que existem 3 regiões e se é possível mudar de uma para a outra, existe um ponto de interseção dos três estados. Esse ponto é chamado de ponto tri-crítico(TCP). Os valores de T e D desse ponto ainda não possuem um valor exato, mas aproximações numéricas estipulam que eles devem ser &amp;lt;math&amp;gt;T\approx 0.610\pm0.005&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D\approx 1.965\pm0.001&amp;lt;/math&amp;gt; &amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unidades Naturais ===&lt;br /&gt;
Antes de começar, é conveniente introduzir o conceito de unidades reduzidas. Como apenas razões entre os parâmetros físicos aparecerão nas equações finais, pode-se escolher uma constante como unidade de energia e utilizar unidades reduzidas, usando &amp;lt;math&amp;gt;k_B = 1&amp;lt;/math&amp;gt; e tomando &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; como unidade de energia. Dessa forma, todas as grandezas passam a ser medidas em unidades de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;, sendo comum trabalhar com as variáveis adimensionais&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;T^* = \frac{k_B T}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;D^* = \frac{D}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;H^* = \frac{H}{J}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao longo deste trabalho, os asteriscos serão omitidos, e todas as grandezas são entendidas como estando em unidades reduzidas.&lt;br /&gt;
&lt;br /&gt;
==  Método Monte-Carlo ==&lt;br /&gt;
&lt;br /&gt;
=== Algoritmo ===&lt;br /&gt;
&lt;br /&gt;
Como o número de estados cresce exponencialmente com o número de partículas, não é possível calcular essa distribuição diretamente. Em vez disso, constrói-se uma sequência de estados através de atualizações locais dos spins.&lt;br /&gt;
&lt;br /&gt;
O procedimento consiste em repetir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
# Escolhe-se aleatoriamente uma partícula.&lt;br /&gt;
# Propõe-se um novo valor de spin para essa partícula, escolhido uniformemente entre os três valores possíveis &amp;lt;math&amp;gt;\sigma \in \{-1, 0, 1\}.&amp;lt;/math&amp;gt;&lt;br /&gt;
# Calcula-se a variação de energia associada à mudança proposta: &amp;lt;math&amp;gt;\Delta E = E_{\text{novo}} - E_{\text{atual}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabendo a variação de energia, pode-se então decidir se o sistema será ou não atualizado.&lt;br /&gt;
&lt;br /&gt;
=== Probabilidade de transição ===&lt;br /&gt;
&lt;br /&gt;
Partindo do balanço detalhado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(i) W(i \rightarrow j) = P(j) W(j \rightarrow i),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E a probabilidade do sistema estar no estado &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt; definida anteriormente, chega-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{P(\lambda_1 \to \lambda_2)}{P(\lambda_2 \to \lambda_1)} = e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uma das maneiras de se definir &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; que resolvem esse sistema é o algoritmo de Metropolis &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;, aqui, a probabilidade de transição é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda_1 \to \lambda_2)=min\left(1,e^{\frac{E(\lambda_2)-E(\lambda_1)}{T}}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalentemente, gera-se um número aleatório uniforme &amp;lt;math&amp;gt;r \in [0,1)&amp;lt;/math&amp;gt;. A atualização é aceita se&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r &amp;lt; e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
essa solução garante,também, que a solução da cadeia de Markov seja exatamente a distribuição de Boltzmann.&lt;br /&gt;
&lt;br /&gt;
Quando o spin aleatório sorteado for igual ao atual, o sistema deve também guardar essa mudança, isso se dá para que o sistema respeite o balanço detalhado e não assuma que a probabilidade de permanência em um estado seja nula.&lt;br /&gt;
&lt;br /&gt;
==== Passo de Monte Carlo ====&lt;br /&gt;
&lt;br /&gt;
Considere um sistema contendo &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas em uma configuração &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;. Em algoritmos de Monte Carlo, um passo elementar consiste na seleção de uma partícula e na tentativa de atualização de seu estado segundo a dinâmica escolhida (por exemplo, o algoritmo de Metropolis).&lt;br /&gt;
&lt;br /&gt;
Como o número de partículas depende do tamanho do sistema, utilizar apenas o número de passos elementares dificulta a comparação entre simulações realizadas em redes de diferentes dimensões. Por esse motivo, define-se uma unidade de tempo computacional normalizada pelo tamanho do sistema.&lt;br /&gt;
&lt;br /&gt;
O Passo de Monte Carlo (MCS) corresponde a NNN tentativas de atualização elementares. Dessa forma, após um MCS, cada partícula terá sido selecionada, em média, uma vez para possível atualização. Essa definição permite comparar de maneira consistente a evolução temporal e as grandezas medidas em sistemas de diferentes tamanhos.&lt;br /&gt;
&lt;br /&gt;
== Implementação Computacional ==&lt;br /&gt;
&lt;br /&gt;
Começa-se criando uma matriz &amp;lt;code&amp;gt;state&amp;lt;/code&amp;gt;. Como esse código será executado diversas vezes com loops longos, diversos pontos devem ser otimizado para velocidade ao invés de legibilidade. O primeiro deles é o uso de uma tabela de referência &amp;lt;code&amp;gt;lookUp&amp;lt;/code&amp;gt;. Ela é gerada uma vez sempre que o tamanho da grade é alterado e possui 2 índices, o primeiro (&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;) sendo a partícula que se quer saber a posição das células adjacentes, e o segundo é um valor de 0 a 3 que guarda, em ordem, o índice da partícula imediatamente acima, abaixo, a esquerda e a direita da partícula &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Isso também permite que seja montado o sistema como periódico, onde a primeira e a última linha seriam vizinhas, assim como a primeira e última coluna. Isso é útil para diminuir os erros que surgem nas bordas, onde as partículas não teriam vizinhas nas quatro direções.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def genLookup(side):&lt;br /&gt;
    index = np.arange(side)&lt;br /&gt;
    &lt;br /&gt;
    up    = (index - side) % (side**2)&lt;br /&gt;
    down  = (index + side) % (side**2)&lt;br /&gt;
    left  = np.where(index       % side == 0, index - 1 + side, index - 1)&lt;br /&gt;
    right = np.where((index + 1) % side == 0, index + 1 - side, index + 1)&lt;br /&gt;
&lt;br /&gt;
    return np.stack((up, down, left, right))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, é pode-se iniciar o sistema com uma matriz 1D de N partículas, onde N é o quadrado do tamanho desejado de um lado da grade. Usa-se matrizes 1D ao invés de 2D para maximizar a velocidade do código.&lt;br /&gt;
&lt;br /&gt;
Com o sistema iniciado, se implementa o algoritmo de Metropolis em uma função que, quando aplicada sobre o estado &amp;lt;math&amp;gt;\lambda_i&amp;lt;/math&amp;gt;, evolui-rá ele para outro estado com uma quantidade definida de passos, podendo ser um passo fundamental, um MCS, ou qualquer outro valor conveniente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def timeSteps(state, lookup, steps = 1, J = 1, D = 1, T = 1):&lt;br /&gt;
    N = state.size&lt;br /&gt;
    varE = 0.0&lt;br /&gt;
&lt;br /&gt;
    # Repete a função para a quantidade de passos dada&lt;br /&gt;
    for i in range(steps):&lt;br /&gt;
    &lt;br /&gt;
        # A cada passo, escolhe uma partícula e um spin aleatórios&lt;br /&gt;
        index = np.random.randint(0, N)&lt;br /&gt;
        oldSpin = state[index]&lt;br /&gt;
        newSpin = np.random.randint(-1, 2)&lt;br /&gt;
    &lt;br /&gt;
        # avança a iteração se os spins forem iguais&lt;br /&gt;
        if newSpin == oldSpin:&lt;br /&gt;
            continue&lt;br /&gt;
        &lt;br /&gt;
        # Soma o estado dos vizinhos através da tabela de referência&lt;br /&gt;
        neiSum = np.sum(state[lookup[:, index]])&lt;br /&gt;
&lt;br /&gt;
        # Calcula a mudança de energia do passo&lt;br /&gt;
        dE = -J * (newSpin - oldSpin) * neiSum + D * (newSpin**2 - oldSpin**2)&lt;br /&gt;
        &lt;br /&gt;
        # Verifica se o passo foi ou não aceito&lt;br /&gt;
        if np.random.random() &amp;lt; np.exp(-dE / T):&lt;br /&gt;
            state[index] = newSpin&lt;br /&gt;
            varE += dE         &lt;br /&gt;
            &lt;br /&gt;
    # Retorna o estado depois de todos os passos e a variação de energia total    &lt;br /&gt;
    return state, varE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com todas essas etapas montadas, pode-se gerar a primeira simulação. Abaixo, pode-se analisar uma simulação com valores de D e T fixos e um número arbitrário de MCS&lt;br /&gt;
&lt;br /&gt;
[[file:Evolução blume capel.gif|thumb|400px|center|Simulação da evolução de um sistema com parâmetros aleatórios]]&lt;br /&gt;
&lt;br /&gt;
Aqui, pode-se observar a evolução de um único sistema, mas o grande trunfo do modelo de Blume-Capel é analisar os estados do sistema, especificamente o TCP. Para isso, uma única simulação não é suficiente, mas será necessário ver o estado de equilíbrio do sistema em um gráfico de Temperatura (T)/Campo cristalino (D) e analisar a magnetização média e o momento de quadrupolo médio. &lt;br /&gt;
&lt;br /&gt;
Como foi dito anteriormente, essas duas medidas serão iguais em dois casos e diferentes em um. Então o gráfico Temperatura (T)/Campo cristalino (D) irá mostrar &amp;lt;math&amp;gt;&amp;lt;M&amp;gt;&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;&amp;lt;Q&amp;gt;&amp;lt;/math&amp;gt;, além de um terceiro gráfico mostrando o módulo da diferença entre eles.&lt;br /&gt;
&lt;br /&gt;
[[file:Blume Capel espaco de fase.gif|thumb|800px|center|Evolução da magnetização, momento de quadrupolo e a diferença de ambos em uma grande área, simulações utilizada para identificar a posição dos estados]]&lt;br /&gt;
&lt;br /&gt;
Desenhando esses três gráficos, pode-se perceber que, onde o TCP teórico está próximo dos três estados de equilíbrio teóricos. Mas para avaliar se ele realmente é o TCP, é necessário verificar duas propriedades.&lt;br /&gt;
&lt;br /&gt;
# Nele, o sistema não deve chegar a um estado de equilíbrio único, mas sim alternar entre os conhecidos;&lt;br /&gt;
# A vizinhança dele deve ser composta por simulações que levam a um estado bem definido.&lt;br /&gt;
&lt;br /&gt;
Com isso, para avaliar o sistema, foram geradas várias simulações com diferentes valores de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; dem volta do valor teórico para encontrar qual é o valor que se chega nessa simulação e, se for possível encontrá-lo, qual é o tamanho do ponto.&lt;br /&gt;
&lt;br /&gt;
[[File:Blume Capel espaco de fase zoom.gif|thumb|800px|center|Espaços de fases Temperatura em y e D em x aproximado onde na região do PTC. A esquerda a evolução da magnetização do sistema, no meio a evolução do momento de quadrupolo e, a direita, o absoluto da diferença entre os dois. Um ponto vermelho localiza-se na previsão teórica do TCP, com três pontos azuis distribuídos ao seu redor mostrando pontos de simulação.]]&lt;br /&gt;
&lt;br /&gt;
Definindo os pontos a serem simulados separadamente, pode-se animar a evolução do sistema com os devidos parâmetros.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel Estado1.gif|thumb|300px|center|Estados onde Q é maior que E, com as partículas oscilando entre os três estados aleatoriamente.]]&lt;br /&gt;
| [[File:Blume Capel Estado2.gif|thumb|300px|center|Estados com Q e M próximos de 1, com a simulação estando de maneira quase homogênea em um único spin diferente de 0.]]&lt;br /&gt;
| [[File:Blume Capel Estado3.gif|thumb|300px|center|Estados com Q e M estão próximos de 0, com a maior parte das partículas estando com spin igual a 0.]]&lt;br /&gt;
|}&lt;br /&gt;
Além disso, pode-se também ver a evolução do estado no TCP:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel PTC1.png|thumb|250px|center|Momento em que é observado o estado com Q e M baixos.]]&lt;br /&gt;
| [[File:Blume Capel PTC2.png|thumb|250px|center|Momento em que é observado o estado com Q e M altos.]]&lt;br /&gt;
| [[File:Blume Capel PTC3.png|thumb|250px|center|Momento em que é observado o estado com Q muito maior que M.]]&lt;br /&gt;
| [[File:Blume Capel PTC.gif|thumb|200px|center|Animação total onde os gráficos foram extraídos, clique para ver animado (aviso de luzes piscantes).]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
&lt;br /&gt;
Esse trabalho deixou claro a existência de três estados possíveis, além de mostrar que em uma interface de estados o sistema muda voluntariamente entre os três diferentes estados. pode-se ver, parando o gráfico em alguns pontos específicos, que ele passou pelos três estados.&lt;br /&gt;
&lt;br /&gt;
Assim, o código aqui descrito mostra claramente uma implementação do modelo de Blume-Capel capaz de simular os três estados e um ponto onde os três oscilam entre si aleatoriamente. É importante notar que a variação entre os estados não é tão clara no TCP, pois os estados com M próximo de 0 acabam sendo semelhantes devido ao número de alterações que ocorrem a todo MCS.&lt;br /&gt;
&lt;br /&gt;
Mas o algoritmo aqui descrito está disponível na página [[Código:Modelo de Blume-Capel]] feito em Jupyter Notebook, é capaz de prever de maneira satisfatória a evolução de um sistema à partir das variáveis supridas à ele. &lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;mecEst&amp;quot;&amp;gt;Pathria, R. K.; Beale, Paul D.; &#039;&#039;Statistical Mechanics&#039;&#039;, third edition; Elsevier Ltd, 2011; secções 3.4, 12.3, 16.2A&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;point&amp;quot;&amp;gt;Beale, Paul D.; &#039;&#039;Finite-size scaling study of the two-dimensional Blume-Capel model&#039;&#039;; APS Journals, 1986; DOI https://doi.org/10.1103/PhysRevB.33.1717&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11549</id>
		<title>Modelo Blume-Capel para partículas de spin 1</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11549"/>
		<updated>2026-06-01T13:37:01Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: /* Implementação Computacional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Modelo de Ising ==&lt;br /&gt;
&lt;br /&gt;
Considere um grupo de partículas com spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; que interagem com seus vizinhos mais próximos. Pode-se calcular a energia do sistema através do Hamiltoniano &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com &amp;lt;math&amp;gt;\sigma_i&amp;lt;/math&amp;gt; representando o valor do spin da partícula &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, podendo ser &amp;lt;math&amp;gt;\pm 1/2&amp;lt;/math&amp;gt;. O somatório representa a energia potencial das partículas vizinhas, onde J representa o comportamento e a propensão ao alinhamento do sistema, podendo ser qualquer número real, no qual valores positivos de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; diminuindo a energia quando os spins estão alinhados e, valores negativos a aumentando. Assim, quanto mais longe de 0 $J&amp;lt;/math&amp;gt; estiver, mais o sistema tende a um extremo.&lt;br /&gt;
&lt;br /&gt;
Consideremos agora a aplicação de um campo magnético &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; externo, paralelo a direção do spin. Esse campo irá adicionar uma energia ao sistema que será&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}_{Mag}=-H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O termo negativo da equação surge pois a energia total do sistema será menor quando os spins estiverem alinhados com campo, com o mínimo de energia sendo &amp;lt;math&amp;gt;-HN&amp;lt;/math&amp;gt;, onde todas as &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas estão com o spin alinhado.&lt;br /&gt;
&lt;br /&gt;
Assim, a energia total do sistema será&amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j -H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora, consideremos o ensemble canonico, isso é, o conjunto de todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; que o sistema pode estar. Se a energia do sistema for medida com todas as partículas dentro dele estiverem dispostas aleatoriamente, a probabilidade de encontrar o sistema na energia &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt; é: &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)\propto e^{-\beta E(\lambda)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com &amp;lt;math&amp;gt;\beta=\frac{1}{k_b T}&amp;lt;/math&amp;gt;. Considerando que a soma de todas as probabilidades é 1, deves-se dividir &amp;lt;math&amp;gt;e^{-\beta E}&amp;lt;/math&amp;gt; pela soma de &amp;lt;math&amp;gt;e^{-\beta E_n(\lambda)}&amp;lt;/math&amp;gt; para todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; ao qual o sistema pode ser encontrado.&lt;br /&gt;
Importante ressaltar que soma é sobre &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; e não sobre todas as energias, pois muitos estados podem gerar a mesma energia, então não é feita uma soma simples por todo o sistema.&lt;br /&gt;
&lt;br /&gt;
Assim, o resultado é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)=\frac{e^{-\beta E(\lambda)}}{\sum_\lambda&#039; e^{-\beta E(\lambda&#039;)}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outra coisa importante ainda do modelo de Ising é a magnetização, que representa o quão ordenado o sistema é à partir do valor médio de todos os spins:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
M=\frac{1}{N}\sum_{n=1}^{N}\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
=== Energia do sistema ===&lt;br /&gt;
&lt;br /&gt;
Esse modelo é uma extensão do modelo de Ising onde, ao invés de se trabalhar com partículas de spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; onde &amp;lt;math&amp;gt;\sigma_i\in \{-\frac{1}{2},\frac{1}{2}\}&amp;lt;/math&amp;gt;, trabalha-se com partículas de spin 1 com &amp;lt;math&amp;gt;\sigma_i\in \{-1,0,1\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Essa mudança de um para três estados não muda de forma significativa o que foi visto anteriormente, mas adiciona um terceiro termo no hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}&amp;lt;/math&amp;gt;. Como aqui partículas podem ter spin nulo, define-se uma nova medida que está relacionada a quantidade de spins diferentes de zero, o momento de quadrupolo magnético&amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
Q= \sum_{n=1}^N\sigma_n^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse momento também é adicionado a energia, pois sair do estado &amp;lt;math&amp;gt;\sigma = 0&amp;lt;/math&amp;gt; adiciona energia aos sistema, isso faz com que o hamiltoniano completo seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j - H\sum_{n=1}^N\sigma_n + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde o parâmetro &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; é chamado de campo cristalino. Nessa implementação do modelo de Blume-Capel, o quadrado do momento de quadrupolo pode ser substituido por um módulo, já que os spins serão -1,0 ou 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ponto tri-crítico ===&lt;br /&gt;
&lt;br /&gt;
Analisa-se o sistema para um dado valor de J e considerando o sistema sem a presença de um campo magnético, de forma que a energia total seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analisando esse sistema simplificado, considerando tempos muito grandes e dividindo tudo por J, o sistema tenderá a três possíveis estados de energia mínima:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;D/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt;: Aqui, o spin de cada partícula tem um peso grande sobre a energia total, o sistema tenderá a um estado onde grande parte dos spins são 0, logo, &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; são próximos de 0.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerente: Aqui, analisando-se &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, como &amp;lt;math&amp;gt;\beta\propto T^{-1}&amp;lt;/math&amp;gt;, beta é aproximadamente 0 e a probabilidade de se encontrar o sistema em dada configuração é a mesma para todas as configurações. Nesse caso, é mais provável que o sistema esteja com &amp;lt;math&amp;gt;M\approx 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q &amp;gt; 0 &amp;lt;/math&amp;gt; com as partículas com spins aleatórios.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerentes: Aqui, analisando novamente &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, estados onde a energia do sistema seja menor que zero serão favorecidos, pois estados positivos terão uma probabilidade menor que 1 (&amp;lt;math&amp;gt;e^{-\mathcal{H}/T&amp;lt;1}&amp;lt;/math&amp;gt;) e estados de energia menor que zero terão uma probabilidade maior (&amp;lt;math&amp;gt;e^{-\mathcal{-|H| }/T&amp;gt;1}&amp;lt;/math&amp;gt;), isso fará com que os spins tendam a se alinhar e &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; serão próximos de 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Considerando que existem 3 regiões e se é possível mudar de uma para a outra, existe um ponto de interseção dos três estados. Esse ponto é chamado de ponto tri-crítico(TCP). Os valores de T e D desse ponto ainda não possuem um valor exato, mas aproximações numéricas estipulam que eles devem ser &amp;lt;math&amp;gt;T\approx 0.610\pm0.005&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D\approx 1.965\pm0.001&amp;lt;/math&amp;gt; &amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unidades Naturais ===&lt;br /&gt;
Antes de começar, é conveniente introduzir o conceito de unidades reduzidas. Como apenas razões entre os parâmetros físicos aparecerão nas equações finais, pode-se escolher uma constante como unidade de energia e utilizar unidades reduzidas, usando &amp;lt;math&amp;gt;k_B = 1&amp;lt;/math&amp;gt; e tomando &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; como unidade de energia. Dessa forma, todas as grandezas passam a ser medidas em unidades de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;, sendo comum trabalhar com as variáveis adimensionais&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;T^* = \frac{k_B T}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;D^* = \frac{D}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;H^* = \frac{H}{J}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao longo deste trabalho, os asteriscos serão omitidos, e todas as grandezas são entendidas como estando em unidades reduzidas.&lt;br /&gt;
&lt;br /&gt;
==  Método Monte-Carlo ==&lt;br /&gt;
&lt;br /&gt;
=== Algoritmo ===&lt;br /&gt;
&lt;br /&gt;
Como o número de estados cresce exponencialmente com o número de partículas, não é possível calcular essa distribuição diretamente. Em vez disso, constrói-se uma sequência de estados através de atualizações locais dos spins.&lt;br /&gt;
&lt;br /&gt;
O procedimento consiste em repetir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
# Escolhe-se aleatoriamente uma partícula.&lt;br /&gt;
# Propõe-se um novo valor de spin para essa partícula, escolhido uniformemente entre os três valores possíveis &amp;lt;math&amp;gt;\sigma \in \{-1, 0, 1\}.&amp;lt;/math&amp;gt;&lt;br /&gt;
# Calcula-se a variação de energia associada à mudança proposta: &amp;lt;math&amp;gt;\Delta E = E_{\text{novo}} - E_{\text{atual}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabendo a variação de energia, pode-se então decidir se o sistema será ou não atualizado.&lt;br /&gt;
&lt;br /&gt;
=== Probabilidade de transição ===&lt;br /&gt;
&lt;br /&gt;
Partindo do balanço detalhado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(i) W(i \rightarrow j) = P(j) W(j \rightarrow i),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E a probabilidade do sistema estar no estado &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt; definida anteriormente, chega-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{P(\lambda_1 \to \lambda_2)}{P(\lambda_2 \to \lambda_1)} = e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uma das maneiras de se definir &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; que resolvem esse sistema é o algoritmo de Metropolis &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;, aqui, a probabilidade de transição é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda_1 \to \lambda_2)=min\left(1,e^{\frac{E(\lambda_2)-E(\lambda_1)}{T}}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalentemente, gera-se um número aleatório uniforme &amp;lt;math&amp;gt;r \in [0,1)&amp;lt;/math&amp;gt;. A atualização é aceita se&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r &amp;lt; e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
essa solução garante,também, que a solução da cadeia de Markov seja exatamente a distribuição de Boltzmann.&lt;br /&gt;
&lt;br /&gt;
Quando o spin aleatório sorteado for igual ao atual, o sistema deve também guardar essa mudança, isso se dá para que o sistema respeite o balanço detalhado e não assuma que a probabilidade de permanência em um estado seja nula.&lt;br /&gt;
&lt;br /&gt;
==== Passo de Monte Carlo ====&lt;br /&gt;
&lt;br /&gt;
Considere um sistema contendo &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas em uma configuração &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;. Em algoritmos de Monte Carlo, um passo elementar consiste na seleção de uma partícula e na tentativa de atualização de seu estado segundo a dinâmica escolhida (por exemplo, o algoritmo de Metropolis).&lt;br /&gt;
&lt;br /&gt;
Como o número de partículas depende do tamanho do sistema, utilizar apenas o número de passos elementares dificulta a comparação entre simulações realizadas em redes de diferentes dimensões. Por esse motivo, define-se uma unidade de tempo computacional normalizada pelo tamanho do sistema.&lt;br /&gt;
&lt;br /&gt;
O Passo de Monte Carlo (MCS) corresponde a NNN tentativas de atualização elementares. Dessa forma, após um MCS, cada partícula terá sido selecionada, em média, uma vez para possível atualização. Essa definição permite comparar de maneira consistente a evolução temporal e as grandezas medidas em sistemas de diferentes tamanhos.&lt;br /&gt;
&lt;br /&gt;
== Implementação Computacional ==&lt;br /&gt;
&lt;br /&gt;
Começa-se criando uma matriz &amp;lt;code&amp;gt;state&amp;lt;/code&amp;gt;. Como esse código será executado diversas vezes com loops longos, diversos pontos devem ser otimizado para velocidade ao invés de legibilidade. O primeiro deles é o uso de uma tabela de referência &amp;lt;code&amp;gt;lookUp&amp;lt;/code&amp;gt;. Ela é gerada uma vez sempre que o tamanho da grade é alterado e possui 2 índices, o primeiro (&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;) sendo a partícula que se quer saber a posição das células adjacentes, e o segundo é um valor de 0 a 3 que guarda, em ordem, o índice da partícula imediatamente acima, abaixo, a esquerda e a direita da partícula &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Isso também permite que seja montado o sistema como periódico, onde a primeira e a última linha seriam vizinhas, assim como a primeira e última coluna. Isso é útil para diminuir os erros que surgem nas bordas, onde as partículas não teriam vizinhas nas quatro direções.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def genLookup(side):&lt;br /&gt;
    index = np.arange(side)&lt;br /&gt;
    &lt;br /&gt;
    up    = (index - side) % (side**2)&lt;br /&gt;
    down  = (index + side) % (side**2)&lt;br /&gt;
    left  = np.where(index       % side == 0, index - 1 + side, index - 1)&lt;br /&gt;
    right = np.where((index + 1) % side == 0, index + 1 - side, index + 1)&lt;br /&gt;
&lt;br /&gt;
    return np.stack((up, down, left, right))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, é pode-se iniciar o sistema com uma matriz 1D de N partículas, onde N é o quadrado do tamanho desejado de um lado da grade. Usa-se matrizes 1D ao invés de 2D para maximizar a velocidade do código.&lt;br /&gt;
&lt;br /&gt;
Com o sistema iniciado, se implementa o algoritmo de Metropolis em uma função que, quando aplicada sobre o estado &amp;lt;math&amp;gt;\lambda_i&amp;lt;/math&amp;gt;, evolui-rá ele para outro estado com uma quantidade definida de passos, podendo ser um passo fundamental, um MCS, ou qualquer outro valor conveniente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def timeSteps(state, lookup, steps = 1, J = 1, D = 1, T = 1):&lt;br /&gt;
    N = state.size&lt;br /&gt;
    varE = 0.0&lt;br /&gt;
&lt;br /&gt;
    # Repete a função para a quantidade de passos dada&lt;br /&gt;
    for i in range(steps):&lt;br /&gt;
    &lt;br /&gt;
        # A cada passo, escolhe uma partícula e um spin aleatórios&lt;br /&gt;
        index = np.random.randint(0, N)&lt;br /&gt;
        oldSpin = state[index]&lt;br /&gt;
        newSpin = np.random.randint(-1, 2)&lt;br /&gt;
    &lt;br /&gt;
        # avança a iteração se os spins forem iguais&lt;br /&gt;
        if newSpin == oldSpin:&lt;br /&gt;
            continue&lt;br /&gt;
        &lt;br /&gt;
        # Soma o estado dos vizinhos através da tabela de referência&lt;br /&gt;
        neiSum = np.sum(state[lookup[:, index]])&lt;br /&gt;
&lt;br /&gt;
        # Calcula a mudança de energia do passo&lt;br /&gt;
        dE = -J * (newSpin - oldSpin) * neiSum + D * (newSpin**2 - oldSpin**2)&lt;br /&gt;
        &lt;br /&gt;
        # Verifica se o passo foi ou não aceito&lt;br /&gt;
        if np.random.random() &amp;lt; np.exp(-dE / T):&lt;br /&gt;
            state[index] = newSpin&lt;br /&gt;
            varE += dE         &lt;br /&gt;
            &lt;br /&gt;
    # Retorna o estado depois de todos os passos e a variação de energia total    &lt;br /&gt;
    return state, varE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com todas essas etapas montadas, pode-se gerar a primeira simulação. Abaixo, pode-se analisar uma simulação com valores de D e T fixos e um número arbitrário de MCS&lt;br /&gt;
&lt;br /&gt;
[[file:Evolução blume capel.gif|thumb|400px|center|Simulação da evolução de um sistema com parâmetros aleatórios]]&lt;br /&gt;
&lt;br /&gt;
Aqui, pode-se observar a evolução de um único sistema, mas o grande trunfo do modelo de Blume-Capel é analisar os estados do sistema, especificamente o TCP. Para isso, uma única simulação não é suficiente, mas será necessário ver o estado de equilíbrio do sistema em um gráfico de Temperatura (T)/Campo cristalino (D) e analisar a magnetização média e o momento de quadrupolo médio. &lt;br /&gt;
&lt;br /&gt;
Como foi dito anteriormente, essas duas medidas serão iguais em dois casos e diferentes em um. Então o gráfico Temperatura (T)/Campo cristalino (D) irá mostrar &amp;lt;math&amp;gt;&amp;lt;M&amp;gt;&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;&amp;lt;Q&amp;gt;&amp;lt;/math&amp;gt;, além de um terceiro gráfico mostrando o módulo da diferença entre eles.&lt;br /&gt;
&lt;br /&gt;
[[file:Blume Capel espaco de fase.gif|thumb|800px|center|Evolução da magnetização, momento de quadrupolo e a diferença de ambos em uma grande área, simulações utilizada para identificar a posição dos estados]]&lt;br /&gt;
&lt;br /&gt;
Desenhando esses três gráficos, pode-se perceber que, onde o TCP teórico está próximo dos três estados de equilíbrio teóricos. Mas para avaliar se ele realmente é o TCP, é necessário verificar duas propriedades.&lt;br /&gt;
&lt;br /&gt;
# Nele, o sistema não deve chegar a um estado de equilíbrio único, mas sim alternar entre os conhecidos;&lt;br /&gt;
# A vizinhança dele deve ser composta por simulações que levam a um estado bem definido.&lt;br /&gt;
&lt;br /&gt;
Com isso, para avaliar o sistema, foram geradas várias simulações com diferentes valores de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; dem volta do valor teórico para encontrar qual é o valor que se chega nessa simulação e, se for possível encontrá-lo, qual é o tamanho do ponto.&lt;br /&gt;
&lt;br /&gt;
[[File:Blume Capel espaco de fase zoom.gif|thumb|800px|center|Espaços de fases Temperatura em y e D em x aproximado onde na região do PTC. A esquerda a evolução da magnetização do sistema, no meio a evolução do momento de quadrupolo e, a direita, o absoluto da diferença entre os dois. Um ponto vermelho localiza-se na previsão teórica do TCP, com três pontos azuis distribuídos ao seu redor mostrando pontos de simulação.]]&lt;br /&gt;
&lt;br /&gt;
Definindo os pontos a serem simulados separadamente, pode-se animar a evolução do sistema com os devidos parâmetros.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel Estado1.gif|thumb|300px|center|Estados onde Q é maior que E, com as partículas oscilando entre os três estados aleatoriamente.]]&lt;br /&gt;
| [[File:Blume Capel Estado2.gif|thumb|300px|center|Estados com Q e M próximos de 1, com a simulação estando de maneira quase homogênea em um único spin diferente de 0.]]&lt;br /&gt;
| [[File:Blume Capel Estado3.gif|thumb|300px|center|Estados com Q e M estão próximos de 0, com a maior parte das partículas estando com spin igual a 0.]]&lt;br /&gt;
|}&lt;br /&gt;
Além disso, pode-se também ver a evolução do estado no TCP:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel PTC1.png|thumb|250px|center|Momento em que é observado o estado com Q e M baixos.]]&lt;br /&gt;
| [[File:Blume Capel PTC2.png|thumb|250px|center|Momento em que é observado o estado com Q e M altos.]]&lt;br /&gt;
| [[File:Blume Capel PTC3.png|thumb|250px|center|Momento em que é observado o estado com Q muito maior que M.]]&lt;br /&gt;
| [[File:Blume Capel PTC.gif|thumb|200px|center|Animação total onde os gráficos foram extraídos, clique para ver animado (aviso de luzes piscantes).]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
&lt;br /&gt;
Esse trabalho deixou claro a existência de três estados possíveis, além de mostrar que em uma interface de estados o sistema muda voluntariamente entre os três diferentes estados. pode-se ver, parando o gráfico em alguns pontos específicos, que ele passou pelos três estados.&lt;br /&gt;
&lt;br /&gt;
Assim, o código aqui descrito mostra claramente uma implementação do modelo de Blume-Capel capaz de simular os três estados e um ponto onde os três oscilam entre si aleatoriamente. É importante notar que a variação entre os estados não é tão clara no TCP, pois os estados com M próximo de 0 acabam sendo semelhantes devido ao número de alterações que ocorrem a todo MCS.&lt;br /&gt;
&lt;br /&gt;
Mas o algoritmo aqui descrito está disponível na página [[Código:Modelo de Blume-Capel]] feito em Jupyter Notebook, é capaz de prever de maneira satisfatória a evolução de um sistema à partir das variáveis supridas à ele. &lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;mecEst&amp;quot;&amp;gt;Pathria, R. K.; Beale, Paul D.; &#039;&#039;Statistical Mechanics&#039;&#039;, third edition; Elsevier Ltd, 2011; secções 3.4, 12.3, 16.2A&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;point&amp;quot;&amp;gt;Beale, Paul D.; &#039;&#039;Finite-size scaling study of the two-dimensional Blume-Capel model&#039;&#039;; APS Journals, 1986; DOI https://doi.org/10.1103/PhysRevB.33.1717&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11548</id>
		<title>Modelo Blume-Capel para partículas de spin 1</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11548"/>
		<updated>2026-06-01T13:34:35Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Modelo de Ising ==&lt;br /&gt;
&lt;br /&gt;
Considere um grupo de partículas com spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; que interagem com seus vizinhos mais próximos. Pode-se calcular a energia do sistema através do Hamiltoniano &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com &amp;lt;math&amp;gt;\sigma_i&amp;lt;/math&amp;gt; representando o valor do spin da partícula &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, podendo ser &amp;lt;math&amp;gt;\pm 1/2&amp;lt;/math&amp;gt;. O somatório representa a energia potencial das partículas vizinhas, onde J representa o comportamento e a propensão ao alinhamento do sistema, podendo ser qualquer número real, no qual valores positivos de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; diminuindo a energia quando os spins estão alinhados e, valores negativos a aumentando. Assim, quanto mais longe de 0 $J&amp;lt;/math&amp;gt; estiver, mais o sistema tende a um extremo.&lt;br /&gt;
&lt;br /&gt;
Consideremos agora a aplicação de um campo magnético &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; externo, paralelo a direção do spin. Esse campo irá adicionar uma energia ao sistema que será&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}_{Mag}=-H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O termo negativo da equação surge pois a energia total do sistema será menor quando os spins estiverem alinhados com campo, com o mínimo de energia sendo &amp;lt;math&amp;gt;-HN&amp;lt;/math&amp;gt;, onde todas as &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas estão com o spin alinhado.&lt;br /&gt;
&lt;br /&gt;
Assim, a energia total do sistema será&amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j -H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora, consideremos o ensemble canonico, isso é, o conjunto de todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; que o sistema pode estar. Se a energia do sistema for medida com todas as partículas dentro dele estiverem dispostas aleatoriamente, a probabilidade de encontrar o sistema na energia &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt; é: &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)\propto e^{-\beta E(\lambda)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com &amp;lt;math&amp;gt;\beta=\frac{1}{k_b T}&amp;lt;/math&amp;gt;. Considerando que a soma de todas as probabilidades é 1, deves-se dividir &amp;lt;math&amp;gt;e^{-\beta E}&amp;lt;/math&amp;gt; pela soma de &amp;lt;math&amp;gt;e^{-\beta E_n(\lambda)}&amp;lt;/math&amp;gt; para todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; ao qual o sistema pode ser encontrado.&lt;br /&gt;
Importante ressaltar que soma é sobre &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; e não sobre todas as energias, pois muitos estados podem gerar a mesma energia, então não é feita uma soma simples por todo o sistema.&lt;br /&gt;
&lt;br /&gt;
Assim, o resultado é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)=\frac{e^{-\beta E(\lambda)}}{\sum_\lambda&#039; e^{-\beta E(\lambda&#039;)}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outra coisa importante ainda do modelo de Ising é a magnetização, que representa o quão ordenado o sistema é à partir do valor médio de todos os spins:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
M=\frac{1}{N}\sum_{n=1}^{N}\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
=== Energia do sistema ===&lt;br /&gt;
&lt;br /&gt;
Esse modelo é uma extensão do modelo de Ising onde, ao invés de se trabalhar com partículas de spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; onde &amp;lt;math&amp;gt;\sigma_i\in \{-\frac{1}{2},\frac{1}{2}\}&amp;lt;/math&amp;gt;, trabalha-se com partículas de spin 1 com &amp;lt;math&amp;gt;\sigma_i\in \{-1,0,1\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Essa mudança de um para três estados não muda de forma significativa o que foi visto anteriormente, mas adiciona um terceiro termo no hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}&amp;lt;/math&amp;gt;. Como aqui partículas podem ter spin nulo, define-se uma nova medida que está relacionada a quantidade de spins diferentes de zero, o momento de quadrupolo magnético&amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
Q= \sum_{n=1}^N\sigma_n^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse momento também é adicionado a energia, pois sair do estado &amp;lt;math&amp;gt;\sigma = 0&amp;lt;/math&amp;gt; adiciona energia aos sistema, isso faz com que o hamiltoniano completo seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j - H\sum_{n=1}^N\sigma_n + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde o parâmetro &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; é chamado de campo cristalino. Nessa implementação do modelo de Blume-Capel, o quadrado do momento de quadrupolo pode ser substituido por um módulo, já que os spins serão -1,0 ou 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ponto tri-crítico ===&lt;br /&gt;
&lt;br /&gt;
Analisa-se o sistema para um dado valor de J e considerando o sistema sem a presença de um campo magnético, de forma que a energia total seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analisando esse sistema simplificado, considerando tempos muito grandes e dividindo tudo por J, o sistema tenderá a três possíveis estados de energia mínima:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;D/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt;: Aqui, o spin de cada partícula tem um peso grande sobre a energia total, o sistema tenderá a um estado onde grande parte dos spins são 0, logo, &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; são próximos de 0.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerente: Aqui, analisando-se &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, como &amp;lt;math&amp;gt;\beta\propto T^{-1}&amp;lt;/math&amp;gt;, beta é aproximadamente 0 e a probabilidade de se encontrar o sistema em dada configuração é a mesma para todas as configurações. Nesse caso, é mais provável que o sistema esteja com &amp;lt;math&amp;gt;M\approx 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q &amp;gt; 0 &amp;lt;/math&amp;gt; com as partículas com spins aleatórios.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerentes: Aqui, analisando novamente &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, estados onde a energia do sistema seja menor que zero serão favorecidos, pois estados positivos terão uma probabilidade menor que 1 (&amp;lt;math&amp;gt;e^{-\mathcal{H}/T&amp;lt;1}&amp;lt;/math&amp;gt;) e estados de energia menor que zero terão uma probabilidade maior (&amp;lt;math&amp;gt;e^{-\mathcal{-|H| }/T&amp;gt;1}&amp;lt;/math&amp;gt;), isso fará com que os spins tendam a se alinhar e &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; serão próximos de 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Considerando que existem 3 regiões e se é possível mudar de uma para a outra, existe um ponto de interseção dos três estados. Esse ponto é chamado de ponto tri-crítico(TCP). Os valores de T e D desse ponto ainda não possuem um valor exato, mas aproximações numéricas estipulam que eles devem ser &amp;lt;math&amp;gt;T\approx 0.610\pm0.005&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D\approx 1.965\pm0.001&amp;lt;/math&amp;gt; &amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unidades Naturais ===&lt;br /&gt;
Antes de começar, é conveniente introduzir o conceito de unidades reduzidas. Como apenas razões entre os parâmetros físicos aparecerão nas equações finais, pode-se escolher uma constante como unidade de energia e utilizar unidades reduzidas, usando &amp;lt;math&amp;gt;k_B = 1&amp;lt;/math&amp;gt; e tomando &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; como unidade de energia. Dessa forma, todas as grandezas passam a ser medidas em unidades de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;, sendo comum trabalhar com as variáveis adimensionais&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;T^* = \frac{k_B T}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;D^* = \frac{D}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;H^* = \frac{H}{J}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao longo deste trabalho, os asteriscos serão omitidos, e todas as grandezas são entendidas como estando em unidades reduzidas.&lt;br /&gt;
&lt;br /&gt;
==  Método Monte-Carlo ==&lt;br /&gt;
&lt;br /&gt;
=== Algoritmo ===&lt;br /&gt;
&lt;br /&gt;
Como o número de estados cresce exponencialmente com o número de partículas, não é possível calcular essa distribuição diretamente. Em vez disso, constrói-se uma sequência de estados através de atualizações locais dos spins.&lt;br /&gt;
&lt;br /&gt;
O procedimento consiste em repetir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
# Escolhe-se aleatoriamente uma partícula.&lt;br /&gt;
# Propõe-se um novo valor de spin para essa partícula, escolhido uniformemente entre os três valores possíveis &amp;lt;math&amp;gt;\sigma \in \{-1, 0, 1\}.&amp;lt;/math&amp;gt;&lt;br /&gt;
# Calcula-se a variação de energia associada à mudança proposta: &amp;lt;math&amp;gt;\Delta E = E_{\text{novo}} - E_{\text{atual}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabendo a variação de energia, pode-se então decidir se o sistema será ou não atualizado.&lt;br /&gt;
&lt;br /&gt;
=== Probabilidade de transição ===&lt;br /&gt;
&lt;br /&gt;
Partindo do balanço detalhado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(i) W(i \rightarrow j) = P(j) W(j \rightarrow i),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E a probabilidade do sistema estar no estado &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt; definida anteriormente, chega-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{P(\lambda_1 \to \lambda_2)}{P(\lambda_2 \to \lambda_1)} = e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uma das maneiras de se definir &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; que resolvem esse sistema é o algoritmo de Metropolis &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;, aqui, a probabilidade de transição é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda_1 \to \lambda_2)=min\left(1,e^{\frac{E(\lambda_2)-E(\lambda_1)}{T}}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalentemente, gera-se um número aleatório uniforme &amp;lt;math&amp;gt;r \in [0,1)&amp;lt;/math&amp;gt;. A atualização é aceita se&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r &amp;lt; e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
essa solução garante,também, que a solução da cadeia de Markov seja exatamente a distribuição de Boltzmann.&lt;br /&gt;
&lt;br /&gt;
Quando o spin aleatório sorteado for igual ao atual, o sistema deve também guardar essa mudança, isso se dá para que o sistema respeite o balanço detalhado e não assuma que a probabilidade de permanência em um estado seja nula.&lt;br /&gt;
&lt;br /&gt;
==== Passo de Monte Carlo ====&lt;br /&gt;
&lt;br /&gt;
Considere um sistema contendo &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas em uma configuração &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;. Em algoritmos de Monte Carlo, um passo elementar consiste na seleção de uma partícula e na tentativa de atualização de seu estado segundo a dinâmica escolhida (por exemplo, o algoritmo de Metropolis).&lt;br /&gt;
&lt;br /&gt;
Como o número de partículas depende do tamanho do sistema, utilizar apenas o número de passos elementares dificulta a comparação entre simulações realizadas em redes de diferentes dimensões. Por esse motivo, define-se uma unidade de tempo computacional normalizada pelo tamanho do sistema.&lt;br /&gt;
&lt;br /&gt;
O Passo de Monte Carlo (MCS) corresponde a NNN tentativas de atualização elementares. Dessa forma, após um MCS, cada partícula terá sido selecionada, em média, uma vez para possível atualização. Essa definição permite comparar de maneira consistente a evolução temporal e as grandezas medidas em sistemas de diferentes tamanhos.&lt;br /&gt;
&lt;br /&gt;
== Implementação Computacional ==&lt;br /&gt;
&lt;br /&gt;
Começa-se criando uma matriz &amp;lt;code&amp;gt;state&amp;lt;/code&amp;gt;. Como esse código será executado diversas vezes com loops longos, diversos pontos devem ser otimizado para velocidade ao invés de legibilidade. O primeiro deles é o uso de uma tabela de referência &amp;lt;code&amp;gt;lookUp&amp;lt;/code&amp;gt;. Ela é gerada uma vez sempre que o tamanho da grade é alterado e possui 2 índices, o primeiro (&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;) sendo a partícula que se quer saber a posição das células adjacentes, e o segundo é um valor de 0 a 3 que guarda, em ordem, o índice da partícula imediatamente acima, abaixo, a esquerda e a direita da partícula &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Isso também permite que seja montado o sistema como periódico, onde a primeira e a última linha seriam vizinhas, assim como a primeira e última coluna. Isso é útil para diminuir os erros que surgem nas bordas, onde as partículas não teriam vizinhas nas quatro direções.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def genLookup(side):&lt;br /&gt;
    index = np.arange(side)&lt;br /&gt;
    &lt;br /&gt;
    up    = (index - side) % (side**2)&lt;br /&gt;
    down  = (index + side) % (side**2)&lt;br /&gt;
    left  = np.where(index       % side == 0, index - 1 + side, index - 1)&lt;br /&gt;
    right = np.where((index + 1) % side == 0, index + 1 - side, index + 1)&lt;br /&gt;
&lt;br /&gt;
    return np.stack((up, down, left, right))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, é pode-se iniciar o sistema com uma matriz 1D de N partículas, onde N é o quadrado do tamanho desejado de um lado da grade. Usa-se matrizes 1D ao invés de 2D para maximizar a velocidade do código.&lt;br /&gt;
&lt;br /&gt;
Com o sistema iniciado, se implementa o algoritmo de Metropolis em uma função que, quando aplicada sobre o estado &amp;lt;math&amp;gt;\lambda_i&amp;lt;/math&amp;gt;, evolui-rá ele para outro estado com uma quantidade definida de passos, podendo ser um passo fundamental, um MCS, ou qualquer outro valor conveniente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def timeSteps(state, lookup, steps = 1, J = 1, D = 1, T = 1):&lt;br /&gt;
    N = state.size&lt;br /&gt;
    varE = 0.0&lt;br /&gt;
&lt;br /&gt;
    # Repete a função para a quantidade de passos dada&lt;br /&gt;
    for i in range(steps):&lt;br /&gt;
    &lt;br /&gt;
        # A cada passo, escolhe uma partícula e um spin aleatórios&lt;br /&gt;
        index = np.random.randint(0, N)&lt;br /&gt;
        oldSpin = state[index]&lt;br /&gt;
        newSpin = np.random.randint(-1, 2)&lt;br /&gt;
    &lt;br /&gt;
        # avança a iteração se os spins forem iguais&lt;br /&gt;
        if newSpin == oldSpin:&lt;br /&gt;
            continue&lt;br /&gt;
        &lt;br /&gt;
        # Soma o estado dos vizinhos através da tabela de referência&lt;br /&gt;
        neiSum = np.sum(state[lookup[:, index]])&lt;br /&gt;
&lt;br /&gt;
        # Calcula a mudança de energia do passo&lt;br /&gt;
        dE = -J * (newSpin - oldSpin) * neiSum + D * (newSpin**2 - oldSpin**2)&lt;br /&gt;
        &lt;br /&gt;
        # Verifica se o passo foi ou não aceito&lt;br /&gt;
        if np.random.random() &amp;lt; np.exp(-dE / T):&lt;br /&gt;
            state[index] = newSpin&lt;br /&gt;
            varE += dE         &lt;br /&gt;
            &lt;br /&gt;
    # Retorna o estado depois de todos os passos e a variação de energia total    &lt;br /&gt;
    return state, varE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com todas essas etapas montadas, pode-se gerar a primeira simulação. Abaixo, pode-se analisar uma simulação com valores de D e T fixos e um número arbitrário de MCS&lt;br /&gt;
&lt;br /&gt;
[[file:Evolução blume capel.gif|thumb|400px|center|Simulação da evolução de um sistema com parâmetros aleatórios]]&lt;br /&gt;
&lt;br /&gt;
Aqui, pode-se observar a evolução de um único sistema, mas o grande trunfo do modelo de Blume-Capel é analisar os estados do sistema, especificamente o TCP. Para isso, uma única simulação não é suficiente, mas será necessário ver o estado de equilíbrio do sistema em um gráfico de Temperatura (T)/Campo cristalino (D) e analisar a magnetização média e o momento de quadrupolo médio. &lt;br /&gt;
&lt;br /&gt;
Como foi dito anteriormente, essas duas medidas serão iguais em dois casos e diferentes em um. Então o gráfico Temperatura (T)/Campo cristalino (D) irá mostrar &amp;lt;math&amp;gt;&amp;lt;M&amp;gt;&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;&amp;lt;Q&amp;gt;&amp;lt;/math&amp;gt;, além de um terceiro gráfico mostrando o módulo da diferença entre eles.&lt;br /&gt;
&lt;br /&gt;
[[file:Blume Capel espaco de fase.gif|frame|center|Evolução da magnetização, momento de quadrupolo e a diferença de ambos em uma grande área, simulações utilizada para identificar a posição dos estados]]&lt;br /&gt;
&lt;br /&gt;
Desenhando esses três gráficos, pode-se perceber que, onde o TCP teórico está próximo dos três estados de equilíbrio teóricos. Mas para avaliar se ele realmente é o TCP, é necessário verificar duas propriedades.&lt;br /&gt;
&lt;br /&gt;
# Nele, o sistema não deve chegar a um estado de equilíbrio único, mas sim alternar entre os conhecidos;&lt;br /&gt;
# A vizinhança dele deve ser composta por simulações que levam a um estado bem definido.&lt;br /&gt;
&lt;br /&gt;
Com isso, para avaliar o sistema, foram geradas várias simulações com diferentes valores de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; dem volta do valor teórico para encontrar qual é o valor que se chega nessa simulação e, se for possível encontrá-lo, qual é o tamanho do ponto.&lt;br /&gt;
&lt;br /&gt;
[[File:Blume Capel espaco de fase zoom.gif|frame|center|Espaços de fases Temperatura em y e D em x aproximado onde na região do PTC. A esquerda a evolução da magnetização do sistema, no meio a evolução do momento de quadrupolo e, a direita, o absoluto da diferença entre os dois. Um ponto vermelho localiza-se na previsão teórica do TCP, com três pontos azuis distribuídos ao seu redor mostrando pontos de simulação.]]&lt;br /&gt;
&lt;br /&gt;
Definindo os pontos a serem simulados separadamente, pode-se animar a evolução do sistema com os devidos parâmetros.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel Estado1.gif|thumb|300px|center|Estados onde Q é maior que E, com as partículas oscilando entre os três estados aleatoriamente.]]&lt;br /&gt;
| [[File:Blume Capel Estado2.gif|thumb|300px|center|Estados com Q e M próximos de 1, com a simulação estando de maneira quase homogênea em um único spin diferente de 0.]]&lt;br /&gt;
| [[File:Blume Capel Estado3.gif|thumb|300px|center|Estados com Q e M estão próximos de 0, com a maior parte das partículas estando com spin igual a 0.]]&lt;br /&gt;
|}&lt;br /&gt;
Além disso, pode-se também ver a evolução do estado no TCP:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel PTC1.png|thumb|250px|center|Momento em que é observado o estado com Q e M baixos.]]&lt;br /&gt;
| [[File:Blume Capel PTC2.png|thumb|250px|center|Momento em que é observado o estado com Q e M altos.]]&lt;br /&gt;
| [[File:Blume Capel PTC3.png|thumb|250px|center|Momento em que é observado o estado com Q muito maior que M.]]&lt;br /&gt;
| [[File:Blume Capel PTC.gif|thumb|200px|center|Animação total onde os gráficos foram extraídos, clique para ver animado (aviso de luzes piscantes).]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
&lt;br /&gt;
Esse trabalho deixou claro a existência de três estados possíveis, além de mostrar que em uma interface de estados o sistema muda voluntariamente entre os três diferentes estados. pode-se ver, parando o gráfico em alguns pontos específicos, que ele passou pelos três estados.&lt;br /&gt;
&lt;br /&gt;
Assim, o código aqui descrito mostra claramente uma implementação do modelo de Blume-Capel capaz de simular os três estados e um ponto onde os três oscilam entre si aleatoriamente. É importante notar que a variação entre os estados não é tão clara no TCP, pois os estados com M próximo de 0 acabam sendo semelhantes devido ao número de alterações que ocorrem a todo MCS.&lt;br /&gt;
&lt;br /&gt;
Mas o algoritmo aqui descrito está disponível na página [[Código:Modelo de Blume-Capel]] feito em Jupyter Notebook, é capaz de prever de maneira satisfatória a evolução de um sistema à partir das variáveis supridas à ele. &lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;mecEst&amp;quot;&amp;gt;Pathria, R. K.; Beale, Paul D.; &#039;&#039;Statistical Mechanics&#039;&#039;, third edition; Elsevier Ltd, 2011; secções 3.4, 12.3, 16.2A&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;point&amp;quot;&amp;gt;Beale, Paul D.; &#039;&#039;Finite-size scaling study of the two-dimensional Blume-Capel model&#039;&#039;; APS Journals, 1986; DOI https://doi.org/10.1103/PhysRevB.33.1717&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11547</id>
		<title>Modelo Blume-Capel para partículas de spin 1</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11547"/>
		<updated>2026-06-01T13:26:19Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Modelo de Ising ==&lt;br /&gt;
&lt;br /&gt;
Considere um grupo de partículas com spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; que interagem com seus vizinhos mais próximos. Pode-se calcular a energia do sistema através do Hamiltoniano &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com &amp;lt;math&amp;gt;\sigma_i&amp;lt;/math&amp;gt; representando o valor do spin da partícula &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, podendo ser &amp;lt;math&amp;gt;\pm 1/2&amp;lt;/math&amp;gt;. O somatório representa a energia potencial das partículas vizinhas, onde J representa o comportamento e a propensão ao alinhamento do sistema, podendo ser qualquer número real, no qual valores positivos de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; diminuindo a energia quando os spins estão alinhados e, valores negativos a aumentando. Assim, quanto mais longe de 0 $J&amp;lt;/math&amp;gt; estiver, mais o sistema tende a um extremo.&lt;br /&gt;
&lt;br /&gt;
Consideremos agora a aplicação de um campo magnético &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; externo, paralelo a direção do spin. Esse campo irá adicionar uma energia ao sistema que será&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}_{Mag}=-H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O termo negativo da equação surge pois a energia total do sistema será menor quando os spins estiverem alinhados com campo, com o mínimo de energia sendo &amp;lt;math&amp;gt;-HN&amp;lt;/math&amp;gt;, onde todas as &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas estão com o spin alinhado.&lt;br /&gt;
&lt;br /&gt;
Assim, a energia total do sistema será&amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j -H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora, consideremos o ensemble canonico, isso é, o conjunto de todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; que o sistema pode estar. Se a energia do sistema for medida com todas as partículas dentro dele estiverem dispostas aleatoriamente, a probabilidade de encontrar o sistema na energia &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt; é: &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)\propto e^{-\beta E(\lambda)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com &amp;lt;math&amp;gt;\beta=\frac{1}{k_b T}&amp;lt;/math&amp;gt;. Considerando que a soma de todas as probabilidades é 1, deves-se dividir &amp;lt;math&amp;gt;e^{-\beta E}&amp;lt;/math&amp;gt; pela soma de &amp;lt;math&amp;gt;e^{-\beta E_n(\lambda)}&amp;lt;/math&amp;gt; para todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; ao qual o sistema pode ser encontrado.&lt;br /&gt;
Importante ressaltar que soma é sobre &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; e não sobre todas as energias, pois muitos estados podem gerar a mesma energia, então não é feita uma soma simples por todo o sistema.&lt;br /&gt;
&lt;br /&gt;
Assim, o resultado é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)=\frac{e^{-\beta E(\lambda)}}{\sum_\lambda&#039; e^{-\beta E(\lambda&#039;)}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outra coisa importante ainda do modelo de Ising é a magnetização, que representa o quão ordenado o sistema é à partir do valor médio de todos os spins:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
M=\frac{1}{N}\sum_{n=1}^{N}\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
=== Energia do sistema ===&lt;br /&gt;
&lt;br /&gt;
Esse modelo é uma extensão do modelo de Ising onde, ao invés de se trabalhar com partículas de spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; onde &amp;lt;math&amp;gt;\sigma_i\in \{-\frac{1}{2},\frac{1}{2}\}&amp;lt;/math&amp;gt;, trabalha-se com partículas de spin 1 com &amp;lt;math&amp;gt;\sigma_i\in \{-1,0,1\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Essa mudança de um para três estados não muda de forma significativa o que foi visto anteriormente, mas adiciona um terceiro termo no hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}&amp;lt;/math&amp;gt;. Como aqui partículas podem ter spin nulo, define-se uma nova medida que está relacionada a quantidade de spins diferentes de zero, o momento de quadrupolo magnético&amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
Q= \sum_{n=1}^N\sigma_n^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse momento também é adicionado a energia, pois sair do estado &amp;lt;math&amp;gt;\sigma = 0&amp;lt;/math&amp;gt; adiciona energia aos sistema, isso faz com que o hamiltoniano completo seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j - H\sum_{n=1}^N\sigma_n + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde o parâmetro &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; é chamado de campo cristalino. Nessa implementação do modelo de Blume-Capel, o quadrado do momento de quadrupolo pode ser substituido por um módulo, já que os spins serão -1,0 ou 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ponto tri-crítico ===&lt;br /&gt;
&lt;br /&gt;
Analisa-se o sistema para um dado valor de J e considerando o sistema sem a presença de um campo magnético, de forma que a energia total seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analisando esse sistema simplificado, considerando tempos muito grandes e dividindo tudo por J, o sistema tenderá a três possíveis estados de energia mínima:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;D/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt;: Aqui, o spin de cada partícula tem um peso grande sobre a energia total, o sistema tenderá a um estado onde grande parte dos spins são 0, logo, &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; são próximos de 0.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerente: Aqui, analisando-se &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, como &amp;lt;math&amp;gt;\beta\propto T^{-1}&amp;lt;/math&amp;gt;, beta é aproximadamente 0 e a probabilidade de se encontrar o sistema em dada configuração é a mesma para todas as configurações. Nesse caso, é mais provável que o sistema esteja com &amp;lt;math&amp;gt;M\approx 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q &amp;gt; 0 &amp;lt;/math&amp;gt; com as partículas com spins aleatórios.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerentes: Aqui, analisando novamente &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, estados onde a energia do sistema seja menor que zero serão favorecidos, pois estados positivos terão uma probabilidade menor que 1 (&amp;lt;math&amp;gt;e^{-\mathcal{H}/T&amp;lt;1}&amp;lt;/math&amp;gt;) e estados de energia menor que zero terão uma probabilidade maior (&amp;lt;math&amp;gt;e^{-\mathcal{-|H| }/T&amp;gt;1}&amp;lt;/math&amp;gt;), isso fará com que os spins tendam a se alinhar e &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; serão próximos de 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Considerando que existem 3 regiões e se é possível mudar de uma para a outra, existe um ponto de interseção dos três estados. Esse ponto é chamado de ponto tri-crítico(TCP). Os valores de T e D desse ponto ainda não possuem um valor exato, mas aproximações numéricas estipulam que eles devem ser &amp;lt;math&amp;gt;T\approx 0.610\pm0.005&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D\approx 1.965\pm0.001&amp;lt;/math&amp;gt; &amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unidades Naturais ===&lt;br /&gt;
Antes de começar, é conveniente introduzir o conceito de unidades reduzidas. Como apenas razões entre os parâmetros físicos aparecerão nas equações finais, pode-se escolher uma constante como unidade de energia e utilizar unidades reduzidas, usando &amp;lt;math&amp;gt;k_B = 1&amp;lt;/math&amp;gt; e tomando &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; como unidade de energia. Dessa forma, todas as grandezas passam a ser medidas em unidades de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;, sendo comum trabalhar com as variáveis adimensionais&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;T^* = \frac{k_B T}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;D^* = \frac{D}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;H^* = \frac{H}{J}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao longo deste trabalho, os asteriscos serão omitidos, e todas as grandezas são entendidas como estando em unidades reduzidas.&lt;br /&gt;
&lt;br /&gt;
==  Método Monte-Carlo ==&lt;br /&gt;
&lt;br /&gt;
=== Algoritmo ===&lt;br /&gt;
&lt;br /&gt;
Como o número de estados cresce exponencialmente com o número de partículas, não é possível calcular essa distribuição diretamente. Em vez disso, constrói-se uma sequência de estados através de atualizações locais dos spins.&lt;br /&gt;
&lt;br /&gt;
O procedimento consiste em repetir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
# Escolhe-se aleatoriamente uma partícula.&lt;br /&gt;
# Propõe-se um novo valor de spin para essa partícula, escolhido uniformemente entre os três valores possíveis &amp;lt;math&amp;gt;\sigma \in \{-1, 0, 1\}.&amp;lt;/math&amp;gt;&lt;br /&gt;
# Calcula-se a variação de energia associada à mudança proposta: &amp;lt;math&amp;gt;\Delta E = E_{\text{novo}} - E_{\text{atual}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabendo a variação de energia, pode-se então decidir se o sistema será ou não atualizado.&lt;br /&gt;
&lt;br /&gt;
=== Probabilidade de transição ===&lt;br /&gt;
&lt;br /&gt;
Partindo do balanço detalhado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(i) W(i \rightarrow j) = P(j) W(j \rightarrow i),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E a probabilidade do sistema estar no estado &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt; definida anteriormente, chega-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{P(\lambda_1 \to \lambda_2)}{P(\lambda_2 \to \lambda_1)} = e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uma das maneiras de se definir &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; que resolvem esse sistema é o algoritmo de Metropolis &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;, aqui, a probabilidade de transição é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda_1 \to \lambda_2)=min\left(1,e^{\frac{E(\lambda_2)-E(\lambda_1)}{T}}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalentemente, gera-se um número aleatório uniforme &amp;lt;math&amp;gt;r \in [0,1)&amp;lt;/math&amp;gt;. A atualização é aceita se&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r &amp;lt; e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
essa solução garante,também, que a solução da cadeia de Markov seja exatamente a distribuição de Boltzmann.&lt;br /&gt;
&lt;br /&gt;
Quando o spin aleatório sorteado for igual ao atual, o sistema deve também guardar essa mudança, isso se dá para que o sistema respeite o balanço detalhado e não assuma que a probabilidade de permanência em um estado seja nula.&lt;br /&gt;
&lt;br /&gt;
==== Passo de Monte Carlo ====&lt;br /&gt;
&lt;br /&gt;
Considere um sistema contendo &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas em uma configuração &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;. Em algoritmos de Monte Carlo, um passo elementar consiste na seleção de uma partícula e na tentativa de atualização de seu estado segundo a dinâmica escolhida (por exemplo, o algoritmo de Metropolis).&lt;br /&gt;
&lt;br /&gt;
Como o número de partículas depende do tamanho do sistema, utilizar apenas o número de passos elementares dificulta a comparação entre simulações realizadas em redes de diferentes dimensões. Por esse motivo, define-se uma unidade de tempo computacional normalizada pelo tamanho do sistema.&lt;br /&gt;
&lt;br /&gt;
O Passo de Monte Carlo (MCS) corresponde a NNN tentativas de atualização elementares. Dessa forma, após um MCS, cada partícula terá sido selecionada, em média, uma vez para possível atualização. Essa definição permite comparar de maneira consistente a evolução temporal e as grandezas medidas em sistemas de diferentes tamanhos.&lt;br /&gt;
&lt;br /&gt;
== Implementação Computacional ==&lt;br /&gt;
&lt;br /&gt;
Começa-se criando uma matriz &amp;lt;code&amp;gt;state&amp;lt;/code&amp;gt;. Como esse código será executado diversas vezes com loops longos, diversos pontos devem ser otimizado para velocidade ao invés de legibilidade. O primeiro deles é o uso de uma tabela de referência &amp;lt;code&amp;gt;lookUp&amp;lt;/code&amp;gt;. Ela é gerada uma vez sempre que o tamanho da grade é alterado e possui 2 índices, o primeiro (&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;) sendo a partícula que se quer saber a posição das células adjacentes, e o segundo é um valor de 0 a 3 que guarda, em ordem, o índice da partícula imediatamente acima, abaixo, a esquerda e a direita da partícula &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Isso também permite que seja montado o sistema como periódico, onde a primeira e a última linha seriam vizinhas, assim como a primeira e última coluna. Isso é útil para diminuir os erros que surgem nas bordas, onde as partículas não teriam vizinhas nas quatro direções.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def genLookup(side):&lt;br /&gt;
    index = np.arange(side)&lt;br /&gt;
    &lt;br /&gt;
    up    = (index - side) % (side**2)&lt;br /&gt;
    down  = (index + side) % (side**2)&lt;br /&gt;
    left  = np.where(index       % side == 0, index - 1 + side, index - 1)&lt;br /&gt;
    right = np.where((index + 1) % side == 0, index + 1 - side, index + 1)&lt;br /&gt;
&lt;br /&gt;
    return np.stack((up, down, left, right))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, é pode-se iniciar o sistema com uma matriz 1D de N partículas, onde N é o quadrado do tamanho desejado de um lado da grade. Usa-se matrizes 1D ao invés de 2D para maximizar a velocidade do código.&lt;br /&gt;
&lt;br /&gt;
Com o sistema iniciado, se implementa o algoritmo de Metropolis em uma função que, quando aplicada sobre o estado &amp;lt;math&amp;gt;\lambda_i&amp;lt;/math&amp;gt;, evolui-rá ele para outro estado com uma quantidade definida de passos, podendo ser um passo fundamental, um MCS, ou qualquer outro valor conveniente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def timeSteps(state, lookup, steps = 1, J = 1, D = 1, T = 1):&lt;br /&gt;
    N = state.size&lt;br /&gt;
    varE = 0.0&lt;br /&gt;
&lt;br /&gt;
    # Repete a função para a quantidade de passos dada&lt;br /&gt;
    for i in range(steps):&lt;br /&gt;
    &lt;br /&gt;
        # A cada passo, escolhe uma partícula e um spin aleatórios&lt;br /&gt;
        index = np.random.randint(0, N)&lt;br /&gt;
        oldSpin = state[index]&lt;br /&gt;
        newSpin = np.random.randint(-1, 2)&lt;br /&gt;
    &lt;br /&gt;
        # avança a iteração se os spins forem iguais&lt;br /&gt;
        if newSpin == oldSpin:&lt;br /&gt;
            continue&lt;br /&gt;
        &lt;br /&gt;
        # Soma o estado dos vizinhos através da tabela de referência&lt;br /&gt;
        neiSum = np.sum(state[lookup[:, index]])&lt;br /&gt;
&lt;br /&gt;
        # Calcula a mudança de energia do passo&lt;br /&gt;
        dE = -J * (newSpin - oldSpin) * neiSum + D * (newSpin**2 - oldSpin**2)&lt;br /&gt;
        &lt;br /&gt;
        # Verifica se o passo foi ou não aceito&lt;br /&gt;
        if np.random.random() &amp;lt; np.exp(-dE / T):&lt;br /&gt;
            state[index] = newSpin&lt;br /&gt;
            varE += dE         &lt;br /&gt;
            &lt;br /&gt;
    # Retorna o estado depois de todos os passos e a variação de energia total    &lt;br /&gt;
    return state, varE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com todas essas etapas montadas, pode-se gerar a primeira simulação. Abaixo, pode-se analisar uma simulação com valores de D e T fixos e um número arbitrário de MCS&lt;br /&gt;
&lt;br /&gt;
[[file:Evolução blume capel.gif|frame|center|teste]]&lt;br /&gt;
&lt;br /&gt;
Aqui, pode-se observar a evolução de um único sistema, mas o grande trunfo do modelo de Blume-Capel é analisar os estados do sistema, especificamente o TCP. Para isso, uma única simulação não é suficiente, mas será necessário ver o estado de equilíbrio do sistema em um gráfico de Temperatura (T)/Campo cristalino (D) e analisar a magnetização média e o momento de quadrupolo médio. &lt;br /&gt;
&lt;br /&gt;
Como foi dito anteriormente, essas duas medidas serão iguais em dois casos e diferentes em um. Então o gráfico Temperatura (T)/Campo cristalino (D) irá mostrar &amp;lt;math&amp;gt;&amp;lt;M&amp;gt;&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;&amp;lt;Q&amp;gt;&amp;lt;/math&amp;gt;, além de um terceiro gráfico mostrando o módulo da diferença entre eles.&lt;br /&gt;
&lt;br /&gt;
[[file:Blume Capel espaco de fase.gif|frame|center|Evolução da magnetização, momento de quadrupolo e a diferença de ambos em uma grande área, simulações utilizada para identificar a posição dos estados]]&lt;br /&gt;
&lt;br /&gt;
Desenhando esses três gráficos, pode-se perceber que, onde o TCP teórico está próximo dos três estados de equilíbrio teóricos. Mas para avaliar se ele realmente é o TCP, é necessário verificar duas propriedades.&lt;br /&gt;
&lt;br /&gt;
# Nele, o sistema não deve chegar a um estado de equilíbrio único, mas sim alternar entre os conhecidos;&lt;br /&gt;
# A vizinhança dele deve ser composta por simulações que levam a um estado bem definido.&lt;br /&gt;
&lt;br /&gt;
Com isso, para avaliar o sistema, foram geradas várias simulações com diferentes valores de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; dem volta do valor teórico para encontrar qual é o valor que se chega nessa simulação e, se for possível encontrá-lo, qual é o tamanho do ponto.&lt;br /&gt;
&lt;br /&gt;
[[File:Blume Capel espaco de fase zoom.gif|frame|center|Espaços de fases Temperatura em y e D em x aproximado onde na região do PTC. A esquerda a evolução da magnetização do sistema, no meio a evolução do momento de quadrupolo e, a direita, o absoluto da diferença entre os dois. Um ponto vermelho localiza-se na previsão teórica do TCP, com três pontos azuis distribuídos ao seu redor mostrando pontos de simulação.]]&lt;br /&gt;
&lt;br /&gt;
Definindo os pontos a serem simulados separadamente, pode-se animar a evolução do sistema com os devidos parâmetros.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel Estado1.gif|frame|center|Estados onde Q é maior que E, com as partículas oscilando entre os três estados aleatoriamente.]]&lt;br /&gt;
| [[File:Blume Capel Estado2.gif|frame|center|Estados com Q e M próximos de 1, com a simulação estando de maneira quase homogênea em um único spin diferente de 0.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Blume Capel Estado3.gif|frame|center|Estados com Q e M estão próximos de 0, com a maior parte das partículas estando com spin igual a 0.]]&lt;br /&gt;
&lt;br /&gt;
Além disso, pode-se também ver a evolução do estado no TCP:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel PTC1.png|frame|center|Momento em que é observado o estado com Q e M baixos.]]&lt;br /&gt;
| [[File:Blume Capel PTC2.png|frame|center|Momento em que é observado o estado com Q e M altos.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel PTC3.png|frame|center|Momento em que é observado o estado com Q muito maior que M.]]&lt;br /&gt;
| [[File:Blume Capel PTC.gif|thumb|100px|center|Animação total onde os gráficos foram extraídos, clique para ver animado (aviso de luzes piscantes).]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
&lt;br /&gt;
Esse trabalho deixou claro a existência de três estados possíveis, além de mostrar que em uma interface de estados o sistema muda voluntariamente entre os três diferentes estados. pode-se ver, parando o gráfico em alguns pontos específicos, que ele passou pelos três estados.&lt;br /&gt;
&lt;br /&gt;
Assim, o código aqui descrito mostra claramente uma implementação do modelo de Blume-Capel capaz de simular os três estados e um ponto onde os três oscilam entre si aleatoriamente. É importante notar que a variação entre os estados não é tão clara no TCP, pois os estados com M próximo de 0 acabam sendo semelhantes devido ao número de alterações que ocorrem a todo MCS.&lt;br /&gt;
&lt;br /&gt;
Mas o algoritmo aqui descrito está disponível na página [[Código:Modelo de Blume-Capel]] feito em Jupyter Notebook, é capaz de prever de maneira satisfatória a evolução de um sistema à partir das variáveis supridas à ele. &lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;mecEst&amp;quot;&amp;gt;Pathria, R. K.; Beale, Paul D.; &#039;&#039;Statistical Mechanics&#039;&#039;, third edition; Elsevier Ltd, 2011; secções 3.4, 12.3, 16.2A&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;point&amp;quot;&amp;gt;Beale, Paul D.; &#039;&#039;Finite-size scaling study of the two-dimensional Blume-Capel model&#039;&#039;; APS Journals, 1986; DOI https://doi.org/10.1103/PhysRevB.33.1717&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11546</id>
		<title>Modelo Blume-Capel para partículas de spin 1</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11546"/>
		<updated>2026-06-01T13:25:14Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Modelo de Ising ==&lt;br /&gt;
&lt;br /&gt;
Considere um grupo de partículas com spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; que interagem com seus vizinhos mais próximos. Pode-se calcular a energia do sistema através do Hamiltoniano &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com &amp;lt;math&amp;gt;\sigma_i&amp;lt;/math&amp;gt; representando o valor do spin da partícula &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, podendo ser &amp;lt;math&amp;gt;\pm 1/2&amp;lt;/math&amp;gt;. O somatório representa a energia potencial das partículas vizinhas, onde J representa o comportamento e a propensão ao alinhamento do sistema, podendo ser qualquer número real, no qual valores positivos de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; diminuindo a energia quando os spins estão alinhados e, valores negativos a aumentando. Assim, quanto mais longe de 0 $J&amp;lt;/math&amp;gt; estiver, mais o sistema tende a um extremo.&lt;br /&gt;
&lt;br /&gt;
Consideremos agora a aplicação de um campo magnético &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; externo, paralelo a direção do spin. Esse campo irá adicionar uma energia ao sistema que será&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}_{Mag}=-H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O termo negativo da equação surge pois a energia total do sistema será menor quando os spins estiverem alinhados com campo, com o mínimo de energia sendo &amp;lt;math&amp;gt;-HN&amp;lt;/math&amp;gt;, onde todas as &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas estão com o spin alinhado.&lt;br /&gt;
&lt;br /&gt;
Assim, a energia total do sistema será&amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j -H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora, consideremos o ensemble canonico, isso é, o conjunto de todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; que o sistema pode estar. Se a energia do sistema for medida com todas as partículas dentro dele estiverem dispostas aleatoriamente, a probabilidade de encontrar o sistema na energia &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt; é: &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)\propto e^{-\beta E(\lambda)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com &amp;lt;math&amp;gt;\beta=\frac{1}{k_b T}&amp;lt;/math&amp;gt;. Considerando que a soma de todas as probabilidades é 1, deves-se dividir &amp;lt;math&amp;gt;e^{-\beta E}&amp;lt;/math&amp;gt; pela soma de &amp;lt;math&amp;gt;e^{-\beta E_n(\lambda)}&amp;lt;/math&amp;gt; para todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; ao qual o sistema pode ser encontrado.&lt;br /&gt;
Importante ressaltar que soma é sobre &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; e não sobre todas as energias, pois muitos estados podem gerar a mesma energia, então não é feita uma soma simples por todo o sistema.&lt;br /&gt;
&lt;br /&gt;
Assim, o resultado é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)=\frac{e^{-\beta E(\lambda)}}{\sum_\lambda&#039; e^{-\beta E(\lambda&#039;)}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outra coisa importante ainda do modelo de Ising é a magnetização, que representa o quão ordenado o sistema é à partir do valor médio de todos os spins:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
M=\frac{1}{N}\sum_{n=1}^{N}\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
=== Energia do sistema ===&lt;br /&gt;
&lt;br /&gt;
Esse modelo é uma extensão do modelo de Ising onde, ao invés de se trabalhar com partículas de spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; onde &amp;lt;math&amp;gt;\sigma_i\in \{-\frac{1}{2},\frac{1}{2}\}&amp;lt;/math&amp;gt;, trabalha-se com partículas de spin 1 com &amp;lt;math&amp;gt;\sigma_i\in \{-1,0,1\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Essa mudança de um para três estados não muda de forma significativa o que foi visto anteriormente, mas adiciona um terceiro termo no hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}&amp;lt;/math&amp;gt;. Como aqui partículas podem ter spin nulo, define-se uma nova medida que está relacionada a quantidade de spins diferentes de zero, o momento de quadrupolo magnético&amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
Q= \sum_{n=1}^N\sigma_n^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse momento também é adicionado a energia, pois sair do estado &amp;lt;math&amp;gt;\sigma = 0&amp;lt;/math&amp;gt; adiciona energia aos sistema, isso faz com que o hamiltoniano completo seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j - H\sum_{n=1}^N\sigma_n + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde o parâmetro &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; é chamado de campo cristalino. Nessa implementação do modelo de Blume-Capel, o quadrado do momento de quadrupolo pode ser substituido por um módulo, já que os spins serão -1,0 ou 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ponto tri-crítico ===&lt;br /&gt;
&lt;br /&gt;
Analisa-se o sistema para um dado valor de J e considerando o sistema sem a presença de um campo magnético, de forma que a energia total seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analisando esse sistema simplificado, considerando tempos muito grandes e dividindo tudo por J, o sistema tenderá a três possíveis estados de energia mínima:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;D/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt;: Aqui, o spin de cada partícula tem um peso grande sobre a energia total, o sistema tenderá a um estado onde grande parte dos spins são 0, logo, &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; são próximos de 0.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerente: Aqui, analisando-se &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, como &amp;lt;math&amp;gt;\beta\propto T^{-1}&amp;lt;/math&amp;gt;, beta é aproximadamente 0 e a probabilidade de se encontrar o sistema em dada configuração é a mesma para todas as configurações. Nesse caso, é mais provável que o sistema esteja com &amp;lt;math&amp;gt;M\approx 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q &amp;gt; 0 &amp;lt;/math&amp;gt; com as partículas com spins aleatórios.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerentes: Aqui, analisando novamente &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, estados onde a energia do sistema seja menor que zero serão favorecidos, pois estados positivos terão uma probabilidade menor que 1 (&amp;lt;math&amp;gt;e^{-\mathcal{H}/T&amp;lt;1}&amp;lt;/math&amp;gt;) e estados de energia menor que zero terão uma probabilidade maior (&amp;lt;math&amp;gt;e^{-\mathcal{-|H| }/T&amp;gt;1}&amp;lt;/math&amp;gt;), isso fará com que os spins tendam a se alinhar e &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; serão próximos de 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Considerando que existem 3 regiões e se é possível mudar de uma para a outra, existe um ponto de interseção dos três estados. Esse ponto é chamado de ponto tri-crítico(TCP). Os valores de T e D desse ponto ainda não possuem um valor exato, mas aproximações numéricas estipulam que eles devem ser &amp;lt;math&amp;gt;T\approx 0.610\pm0.005&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D\approx 1.965\pm0.001&amp;lt;/math&amp;gt; &amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unidades Naturais ===&lt;br /&gt;
Antes de começar, é conveniente introduzir o conceito de unidades reduzidas. Como apenas razões entre os parâmetros físicos aparecerão nas equações finais, pode-se escolher uma constante como unidade de energia e utilizar unidades reduzidas, usando &amp;lt;math&amp;gt;k_B = 1&amp;lt;/math&amp;gt; e tomando &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; como unidade de energia. Dessa forma, todas as grandezas passam a ser medidas em unidades de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;, sendo comum trabalhar com as variáveis adimensionais&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;T^* = \frac{k_B T}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;D^* = \frac{D}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;H^* = \frac{H}{J}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao longo deste trabalho, os asteriscos serão omitidos, e todas as grandezas são entendidas como estando em unidades reduzidas.&lt;br /&gt;
&lt;br /&gt;
==  Método Monte-Carlo ==&lt;br /&gt;
&lt;br /&gt;
=== Algoritmo ===&lt;br /&gt;
&lt;br /&gt;
Como o número de estados cresce exponencialmente com o número de partículas, não é possível calcular essa distribuição diretamente. Em vez disso, constrói-se uma sequência de estados através de atualizações locais dos spins.&lt;br /&gt;
&lt;br /&gt;
O procedimento consiste em repetir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
# Escolhe-se aleatoriamente uma partícula.&lt;br /&gt;
# Propõe-se um novo valor de spin para essa partícula, escolhido uniformemente entre os três valores possíveis &amp;lt;math&amp;gt;\sigma \in \{-1, 0, 1\}.&amp;lt;/math&amp;gt;&lt;br /&gt;
# Calcula-se a variação de energia associada à mudança proposta: &amp;lt;math&amp;gt;\Delta E = E_{\text{novo}} - E_{\text{atual}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabendo a variação de energia, pode-se então decidir se o sistema será ou não atualizado.&lt;br /&gt;
&lt;br /&gt;
=== Probabilidade de transição ===&lt;br /&gt;
&lt;br /&gt;
Partindo do balanço detalhado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(i) W(i \rightarrow j) = P(j) W(j \rightarrow i),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E a probabilidade do sistema estar no estado &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt; definida anteriormente, chega-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{P(\lambda_1 \to \lambda_2)}{P(\lambda_2 \to \lambda_1)} = e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uma das maneiras de se definir &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; que resolvem esse sistema é o algoritmo de Metropolis &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;, aqui, a probabilidade de transição é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda_1 \to \lambda_2)=min\left(1,e^{\frac{E(\lambda_2)-E(\lambda_1)}{T}}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalentemente, gera-se um número aleatório uniforme &amp;lt;math&amp;gt;r \in [0,1)&amp;lt;/math&amp;gt;. A atualização é aceita se&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r &amp;lt; e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
essa solução garante,também, que a solução da cadeia de Markov seja exatamente a distribuição de Boltzmann.&lt;br /&gt;
&lt;br /&gt;
Quando o spin aleatório sorteado for igual ao atual, o sistema deve também guardar essa mudança, isso se dá para que o sistema respeite o balanço detalhado e não assuma que a probabilidade de permanência em um estado seja nula.&lt;br /&gt;
&lt;br /&gt;
==== Passo de Monte Carlo ====&lt;br /&gt;
&lt;br /&gt;
Considere um sistema contendo &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas em uma configuração &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;. Em algoritmos de Monte Carlo, um passo elementar consiste na seleção de uma partícula e na tentativa de atualização de seu estado segundo a dinâmica escolhida (por exemplo, o algoritmo de Metropolis).&lt;br /&gt;
&lt;br /&gt;
Como o número de partículas depende do tamanho do sistema, utilizar apenas o número de passos elementares dificulta a comparação entre simulações realizadas em redes de diferentes dimensões. Por esse motivo, define-se uma unidade de tempo computacional normalizada pelo tamanho do sistema.&lt;br /&gt;
&lt;br /&gt;
O Passo de Monte Carlo (MCS) corresponde a NNN tentativas de atualização elementares. Dessa forma, após um MCS, cada partícula terá sido selecionada, em média, uma vez para possível atualização. Essa definição permite comparar de maneira consistente a evolução temporal e as grandezas medidas em sistemas de diferentes tamanhos.&lt;br /&gt;
&lt;br /&gt;
== Implementação Computacional ==&lt;br /&gt;
&lt;br /&gt;
Começa-se criando uma matriz &amp;lt;code&amp;gt;state&amp;lt;/code&amp;gt;. Como esse código será executado diversas vezes com loops longos, diversos pontos devem ser otimizado para velocidade ao invés de legibilidade. O primeiro deles é o uso de uma tabela de referência &amp;lt;code&amp;gt;lookUp&amp;lt;/code&amp;gt;. Ela é gerada uma vez sempre que o tamanho da grade é alterado e possui 2 índices, o primeiro (&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;) sendo a partícula que se quer saber a posição das células adjacentes, e o segundo é um valor de 0 a 3 que guarda, em ordem, o índice da partícula imediatamente acima, abaixo, a esquerda e a direita da partícula &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Isso também permite que seja montado o sistema como periódico, onde a primeira e a última linha seriam vizinhas, assim como a primeira e última coluna. Isso é útil para diminuir os erros que surgem nas bordas, onde as partículas não teriam vizinhas nas quatro direções.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def genLookup(side):&lt;br /&gt;
    index = np.arange(side)&lt;br /&gt;
    &lt;br /&gt;
    up    = (index - side) % (side**2)&lt;br /&gt;
    down  = (index + side) % (side**2)&lt;br /&gt;
    left  = np.where(index       % side == 0, index - 1 + side, index - 1)&lt;br /&gt;
    right = np.where((index + 1) % side == 0, index + 1 - side, index + 1)&lt;br /&gt;
&lt;br /&gt;
    return np.stack((up, down, left, right))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, é pode-se iniciar o sistema com uma matriz 1D de N partículas, onde N é o quadrado do tamanho desejado de um lado da grade. Usa-se matrizes 1D ao invés de 2D para maximizar a velocidade do código.&lt;br /&gt;
&lt;br /&gt;
Com o sistema iniciado, se implementa o algoritmo de Metropolis em uma função que, quando aplicada sobre o estado &amp;lt;math&amp;gt;\lambda_i&amp;lt;/math&amp;gt;, evolui-rá ele para outro estado com uma quantidade definida de passos, podendo ser um passo fundamental, um MCS, ou qualquer outro valor conveniente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def timeSteps(state, lookup, steps = 1, J = 1, D = 1, T = 1):&lt;br /&gt;
    N = state.size&lt;br /&gt;
    varE = 0.0&lt;br /&gt;
&lt;br /&gt;
    # Repete a função para a quantidade de passos dada&lt;br /&gt;
    for i in range(steps):&lt;br /&gt;
    &lt;br /&gt;
        # A cada passo, escolhe uma partícula e um spin aleatórios&lt;br /&gt;
        index = np.random.randint(0, N)&lt;br /&gt;
        oldSpin = state[index]&lt;br /&gt;
        newSpin = np.random.randint(-1, 2)&lt;br /&gt;
    &lt;br /&gt;
        # avança a iteração se os spins forem iguais&lt;br /&gt;
        if newSpin == oldSpin:&lt;br /&gt;
            continue&lt;br /&gt;
        &lt;br /&gt;
        # Soma o estado dos vizinhos através da tabela de referência&lt;br /&gt;
        neiSum = np.sum(state[lookup[:, index]])&lt;br /&gt;
&lt;br /&gt;
        # Calcula a mudança de energia do passo&lt;br /&gt;
        dE = -J * (newSpin - oldSpin) * neiSum + D * (newSpin**2 - oldSpin**2)&lt;br /&gt;
        &lt;br /&gt;
        # Verifica se o passo foi ou não aceito&lt;br /&gt;
        if np.random.random() &amp;lt; np.exp(-dE / T):&lt;br /&gt;
            state[index] = newSpin&lt;br /&gt;
            varE += dE         &lt;br /&gt;
            &lt;br /&gt;
    # Retorna o estado depois de todos os passos e a variação de energia total    &lt;br /&gt;
    return state, varE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com todas essas etapas montadas, pode-se gerar a primeira simulação. Abaixo, pode-se analisar uma simulação com valores de D e T fixos e um número arbitrário de MCS&lt;br /&gt;
&lt;br /&gt;
[[file:Evolução blume capel.gif|frame|center|teste]]&lt;br /&gt;
&lt;br /&gt;
Aqui, pode-se observar a evolução de um único sistema, mas o grande trunfo do modelo de Blume-Capel é analisar os estados do sistema, especificamente o TCP. Para isso, uma única simulação não é suficiente, mas será necessário ver o estado de equilíbrio do sistema em um gráfico de Temperatura (T)/Campo cristalino (D) e analisar a magnetização média e o momento de quadrupolo médio. &lt;br /&gt;
&lt;br /&gt;
Como foi dito anteriormente, essas duas medidas serão iguais em dois casos e diferentes em um. Então o gráfico Temperatura (T)/Campo cristalino (D) irá mostrar &amp;lt;math&amp;gt;&amp;lt;M&amp;gt;&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;&amp;lt;Q&amp;gt;&amp;lt;/math&amp;gt;, além de um terceiro gráfico mostrando o módulo da diferença entre eles.&lt;br /&gt;
&lt;br /&gt;
[[file:Blume Capel espaco de fase.gif|frame|center|Evolução da magnetização, momento de quadrupolo e a diferença de ambos em uma grande área, simulações utilizada para identificar a posição dos estados]]&lt;br /&gt;
&lt;br /&gt;
Desenhando esses três gráficos, pode-se perceber que, onde o TCP teórico está próximo dos três estados de equilíbrio teóricos. Mas para avaliar se ele realmente é o TCP, é necessário verificar duas propriedades.&lt;br /&gt;
&lt;br /&gt;
# Nele, o sistema não deve chegar a um estado de equilíbrio único, mas sim alternar entre os conhecidos;&lt;br /&gt;
# A vizinhança dele deve ser composta por simulações que levam a um estado bem definido.&lt;br /&gt;
&lt;br /&gt;
Com isso, para avaliar o sistema, foram geradas várias simulações com diferentes valores de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; dem volta do valor teórico para encontrar qual é o valor que se chega nessa simulação e, se for possível encontrá-lo, qual é o tamanho do ponto.&lt;br /&gt;
&lt;br /&gt;
[[File:Blume Capel espaco de fase zoom.gif|frame|center|Espaços de fases Temperatura em y e D em x aproximado onde na região do PTC. A esquerda a evolução da magnetização do sistema, no meio a evolução do momento de quadrupolo e, a direita, o absoluto da diferença entre os dois. Um ponto vermelho localiza-se na previsão teórica do TCP, com três pontos azuis distribuídos ao seu redor mostrando pontos de simulação.]]&lt;br /&gt;
&lt;br /&gt;
Definindo os pontos a serem simulados separadamente, pode-se animar a evolução do sistema com os devidos parâmetros.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel Estado1.gif|frame|center|Estados onde Q é maior que E, com as partículas oscilando entre os três estados aleatoriamente.]]&lt;br /&gt;
| [[File:Blume Capel Estado2.gif|frame|center|Estados com Q e M próximos de 1, com a simulação estando de maneira quase homogênea em um único spin diferente de 0.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Blume Capel Estado3.gif|frame|center|Estados com Q e M estão próximos de 0, com a maior parte das partículas estando com spin igual a 0.]]&lt;br /&gt;
&lt;br /&gt;
Além disso, pode-se também ver a evolução do estado no TCP:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel PTC1.png|frame|center|Momento em que é observado o estado com Q e M baixos.]]&lt;br /&gt;
| [[File:Blume Capel PTC2.png|frame|center|Momento em que é observado o estado com Q e M altos.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel PTC3.png|frame|center|Momento em que é observado o estado com Q muito maior que M.]]&lt;br /&gt;
| [[File:Blume Capel PTC.gif|thumb|420px|center|Animação total onde os gráficos foram extraídos, clique para ver animado (aviso de luzes piscantes).]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
&lt;br /&gt;
Esse trabalho deixou claro a existência de três estados possíveis, além de mostrar que em uma interface de estados o sistema muda voluntariamente entre os três diferentes estados. pode-se ver, parando o gráfico em alguns pontos específicos, que ele passou pelos três estados.&lt;br /&gt;
&lt;br /&gt;
Assim, o código aqui descrito mostra claramente uma implementação do modelo de Blume-Capel capaz de simular os três estados e um ponto onde os três oscilam entre si aleatoriamente. É importante notar que a variação entre os estados não é tão clara no TCP, pois os estados com M próximo de 0 acabam sendo semelhantes devido ao número de alterações que ocorrem a todo MCS.&lt;br /&gt;
&lt;br /&gt;
Mas o algoritmo aqui descrito está disponível na página [[Código:Modelo de Blume-Capel]] feito em Jupyter Notebook, é capaz de prever de maneira satisfatória a evolução de um sistema à partir das variáveis supridas à ele. &lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;mecEst&amp;quot;&amp;gt;Pathria, R. K.; Beale, Paul D.; &#039;&#039;Statistical Mechanics&#039;&#039;, third edition; Elsevier Ltd, 2011; secções 3.4, 12.3, 16.2A&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;point&amp;quot;&amp;gt;Beale, Paul D.; &#039;&#039;Finite-size scaling study of the two-dimensional Blume-Capel model&#039;&#039;; APS Journals, 1986; DOI https://doi.org/10.1103/PhysRevB.33.1717&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11545</id>
		<title>Modelo Blume-Capel para partículas de spin 1</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11545"/>
		<updated>2026-06-01T01:33:57Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Modelo de Ising ==&lt;br /&gt;
&lt;br /&gt;
Considere um grupo de partículas com spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; que interagem com seus vizinhos mais próximos. Pode-se calcular a energia do sistema através do Hamiltoniano &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com &amp;lt;math&amp;gt;\sigma_i&amp;lt;/math&amp;gt; representando o valor do spin da partícula &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, podendo ser &amp;lt;math&amp;gt;\pm 1/2&amp;lt;/math&amp;gt;. O somatório representa a energia potencial das partículas vizinhas, onde J representa o comportamento e a propensão ao alinhamento do sistema, podendo ser qualquer número real, no qual valores positivos de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; diminuindo a energia quando os spins estão alinhados e, valores negativos a aumentando. Assim, quanto mais longe de 0 $J&amp;lt;/math&amp;gt; estiver, mais o sistema tende a um extremo.&lt;br /&gt;
&lt;br /&gt;
Consideremos agora a aplicação de um campo magnético &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; externo, paralelo a direção do spin. Esse campo irá adicionar uma energia ao sistema que será&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}_{Mag}=-H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O termo negativo da equação surge pois a energia total do sistema será menor quando os spins estiverem alinhados com campo, com o mínimo de energia sendo &amp;lt;math&amp;gt;-HN&amp;lt;/math&amp;gt;, onde todas as &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas estão com o spin alinhado.&lt;br /&gt;
&lt;br /&gt;
Assim, a energia total do sistema será&amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j -H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora, consideremos o ensemble canonico, isso é, o conjunto de todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; que o sistema pode estar. Se a energia do sistema for medida com todas as partículas dentro dele estiverem dispostas aleatoriamente, a probabilidade de encontrar o sistema na energia &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt; é: &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)\propto e^{-\beta E(\lambda)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com &amp;lt;math&amp;gt;\beta=\frac{1}{k_b T}&amp;lt;/math&amp;gt;. Considerando que a soma de todas as probabilidades é 1, deves-se dividir &amp;lt;math&amp;gt;e^{-\beta E}&amp;lt;/math&amp;gt; pela soma de &amp;lt;math&amp;gt;e^{-\beta E_n(\lambda)}&amp;lt;/math&amp;gt; para todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; ao qual o sistema pode ser encontrado.&lt;br /&gt;
Importante ressaltar que soma é sobre &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; e não sobre todas as energias, pois muitos estados podem gerar a mesma energia, então não é feita uma soma simples por todo o sistema.&lt;br /&gt;
&lt;br /&gt;
Assim, o resultado é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)=\frac{e^{-\beta E(\lambda)}}{\sum_\lambda&#039; e^{-\beta E(\lambda&#039;)}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outra coisa importante ainda do modelo de Ising é a magnetização, que representa o quão ordenado o sistema é à partir do valor médio de todos os spins:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
M=\frac{1}{N}\sum_{n=1}^{N}\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
=== Energia do sistema ===&lt;br /&gt;
&lt;br /&gt;
Esse modelo é uma extensão do modelo de Ising onde, ao invés de se trabalhar com partículas de spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; onde &amp;lt;math&amp;gt;\sigma_i\in \{-\frac{1}{2},\frac{1}{2}\}&amp;lt;/math&amp;gt;, trabalha-se com partículas de spin 1 com &amp;lt;math&amp;gt;\sigma_i\in \{-1,0,1\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Essa mudança de um para três estados não muda de forma significativa o que foi visto anteriormente, mas adiciona um terceiro termo no hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}&amp;lt;/math&amp;gt;. Como aqui partículas podem ter spin nulo, define-se uma nova medida que está relacionada a quantidade de spins diferentes de zero, o momento de quadrupolo magnético&amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
Q= \sum_{n=1}^N\sigma_n^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse momento também é adicionado a energia, pois sair do estado &amp;lt;math&amp;gt;\sigma = 0&amp;lt;/math&amp;gt; adiciona energia aos sistema, isso faz com que o hamiltoniano completo seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j - H\sum_{n=1}^N\sigma_n + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde o parâmetro &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; é chamado de campo cristalino. Nessa implementação do modelo de Blume-Capel, o quadrado do momento de quadrupolo pode ser substituido por um módulo, já que os spins serão -1,0 ou 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ponto tri-crítico ===&lt;br /&gt;
&lt;br /&gt;
Analisa-se o sistema para um dado valor de J e considerando o sistema sem a presença de um campo magnético, de forma que a energia total seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analisando esse sistema simplificado, considerando tempos muito grandes e dividindo tudo por J, o sistema tenderá a três possíveis estados de energia mínima:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;D/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt;: Aqui, o spin de cada partícula tem um peso grande sobre a energia total, o sistema tenderá a um estado onde grande parte dos spins são 0, logo, &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; são próximos de 0.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerente: Aqui, analisando-se &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, como &amp;lt;math&amp;gt;\beta\propto T^{-1}&amp;lt;/math&amp;gt;, beta é aproximadamente 0 e a probabilidade de se encontrar o sistema em dada configuração é a mesma para todas as configurações. Nesse caso, é mais provável que o sistema esteja com &amp;lt;math&amp;gt;M\approx 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q &amp;gt; 0 &amp;lt;/math&amp;gt; com as partículas com spins aleatórios.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerentes: Aqui, analisando novamente &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, estados onde a energia do sistema seja menor que zero serão favorecidos, pois estados positivos terão uma probabilidade menor que 1 (&amp;lt;math&amp;gt;e^{-\mathcal{H}/T&amp;lt;1}&amp;lt;/math&amp;gt;) e estados de energia menor que zero terão uma probabilidade maior (&amp;lt;math&amp;gt;e^{-\mathcal{-|H| }/T&amp;gt;1}&amp;lt;/math&amp;gt;), isso fará com que os spins tendam a se alinhar e &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; serão próximos de 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Considerando que existem 3 regiões e se é possível mudar de uma para a outra, existe um ponto de interseção dos três estados. Esse ponto é chamado de ponto tri-crítico(TCP). Os valores de T e D desse ponto ainda não possuem um valor exato, mas aproximações numéricas estipulam que eles devem ser &amp;lt;math&amp;gt;T\approx 0.610\pm0.005&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D\approx 1.965\pm0.001&amp;lt;/math&amp;gt; &amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unidades Naturais ===&lt;br /&gt;
Antes de começar, é conveniente introduzir o conceito de unidades reduzidas. Como apenas razões entre os parâmetros físicos aparecerão nas equações finais, pode-se escolher uma constante como unidade de energia e utilizar unidades reduzidas, usando &amp;lt;math&amp;gt;k_B = 1&amp;lt;/math&amp;gt; e tomando &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; como unidade de energia. Dessa forma, todas as grandezas passam a ser medidas em unidades de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;, sendo comum trabalhar com as variáveis adimensionais&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;T^* = \frac{k_B T}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;D^* = \frac{D}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;H^* = \frac{H}{J}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao longo deste trabalho, os asteriscos serão omitidos, e todas as grandezas são entendidas como estando em unidades reduzidas.&lt;br /&gt;
&lt;br /&gt;
==  Método Monte-Carlo ==&lt;br /&gt;
&lt;br /&gt;
=== Algoritmo ===&lt;br /&gt;
&lt;br /&gt;
Como o número de estados cresce exponencialmente com o número de partículas, não é possível calcular essa distribuição diretamente. Em vez disso, constrói-se uma sequência de estados através de atualizações locais dos spins.&lt;br /&gt;
&lt;br /&gt;
O procedimento consiste em repetir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
# Escolhe-se aleatoriamente uma partícula.&lt;br /&gt;
# Propõe-se um novo valor de spin para essa partícula, escolhido uniformemente entre os três valores possíveis &amp;lt;math&amp;gt;\sigma \in \{-1, 0, 1\}.&amp;lt;/math&amp;gt;&lt;br /&gt;
# Calcula-se a variação de energia associada à mudança proposta: &amp;lt;math&amp;gt;\Delta E = E_{\text{novo}} - E_{\text{atual}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabendo a variação de energia, pode-se então decidir se o sistema será ou não atualizado.&lt;br /&gt;
&lt;br /&gt;
=== Probabilidade de transição ===&lt;br /&gt;
&lt;br /&gt;
Partindo do balanço detalhado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(i) W(i \rightarrow j) = P(j) W(j \rightarrow i),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E a probabilidade do sistema estar no estado &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt; definida anteriormente, chega-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{P(\lambda_1 \to \lambda_2)}{P(\lambda_2 \to \lambda_1)} = e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uma das maneiras de se definir &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; que resolvem esse sistema é o algoritmo de Metropolis &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;, aqui, a probabilidade de transição é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda_1 \to \lambda_2)=min\left(1,e^{\frac{E(\lambda_2)-E(\lambda_1)}{T}}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalentemente, gera-se um número aleatório uniforme &amp;lt;math&amp;gt;r \in [0,1)&amp;lt;/math&amp;gt;. A atualização é aceita se&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r &amp;lt; e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
essa solução garante,também, que a solução da cadeia de Markov seja exatamente a distribuição de Boltzmann.&lt;br /&gt;
&lt;br /&gt;
Quando o spin aleatório sorteado for igual ao atual, o sistema deve também guardar essa mudança, isso se dá para que o sistema respeite o balanço detalhado e não assuma que a probabilidade de permanência em um estado seja nula.&lt;br /&gt;
&lt;br /&gt;
==== Passo de Monte Carlo ====&lt;br /&gt;
&lt;br /&gt;
Considere um sistema contendo &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas em uma configuração &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;. Em algoritmos de Monte Carlo, um passo elementar consiste na seleção de uma partícula e na tentativa de atualização de seu estado segundo a dinâmica escolhida (por exemplo, o algoritmo de Metropolis).&lt;br /&gt;
&lt;br /&gt;
Como o número de partículas depende do tamanho do sistema, utilizar apenas o número de passos elementares dificulta a comparação entre simulações realizadas em redes de diferentes dimensões. Por esse motivo, define-se uma unidade de tempo computacional normalizada pelo tamanho do sistema.&lt;br /&gt;
&lt;br /&gt;
O Passo de Monte Carlo (MCS) corresponde a NNN tentativas de atualização elementares. Dessa forma, após um MCS, cada partícula terá sido selecionada, em média, uma vez para possível atualização. Essa definição permite comparar de maneira consistente a evolução temporal e as grandezas medidas em sistemas de diferentes tamanhos.&lt;br /&gt;
&lt;br /&gt;
== Implementação Computacional ==&lt;br /&gt;
&lt;br /&gt;
Começa-se criando uma matriz &amp;lt;code&amp;gt;state&amp;lt;/code&amp;gt;. Como esse código será executado diversas vezes com loops longos, diversos pontos devem ser otimizado para velocidade ao invés de legibilidade. O primeiro deles é o uso de uma tabela de referência &amp;lt;code&amp;gt;lookUp&amp;lt;/code&amp;gt;. Ela é gerada uma vez sempre que o tamanho da grade é alterado e possui 2 índices, o primeiro (&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;) sendo a partícula que se quer saber a posição das células adjacentes, e o segundo é um valor de 0 a 3 que guarda, em ordem, o índice da partícula imediatamente acima, abaixo, a esquerda e a direita da partícula &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Isso também permite que seja montado o sistema como periódico, onde a primeira e a última linha seriam vizinhas, assim como a primeira e última coluna. Isso é útil para diminuir os erros que surgem nas bordas, onde as partículas não teriam vizinhas nas quatro direções.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def genLookup(side):&lt;br /&gt;
    index = np.arange(side)&lt;br /&gt;
    &lt;br /&gt;
    up    = (index - side) % (side**2)&lt;br /&gt;
    down  = (index + side) % (side**2)&lt;br /&gt;
    left  = np.where(index       % side == 0, index - 1 + side, index - 1)&lt;br /&gt;
    right = np.where((index + 1) % side == 0, index + 1 - side, index + 1)&lt;br /&gt;
&lt;br /&gt;
    return np.stack((up, down, left, right))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, é pode-se iniciar o sistema com uma matriz 1D de N partículas, onde N é o quadrado do tamanho desejado de um lado da grade. Usa-se matrizes 1D ao invés de 2D para maximizar a velocidade do código.&lt;br /&gt;
&lt;br /&gt;
Com o sistema iniciado, se implementa o algoritmo de Metropolis em uma função que, quando aplicada sobre o estado &amp;lt;math&amp;gt;\lambda_i&amp;lt;/math&amp;gt;, evolui-rá ele para outro estado com uma quantidade definida de passos, podendo ser um passo fundamental, um MCS, ou qualquer outro valor conveniente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def timeSteps(state, lookup, steps = 1, J = 1, D = 1, T = 1):&lt;br /&gt;
    N = state.size&lt;br /&gt;
    varE = 0.0&lt;br /&gt;
&lt;br /&gt;
    # Repete a função para a quantidade de passos dada&lt;br /&gt;
    for i in range(steps):&lt;br /&gt;
    &lt;br /&gt;
        # A cada passo, escolhe uma partícula e um spin aleatórios&lt;br /&gt;
        index = np.random.randint(0, N)&lt;br /&gt;
        oldSpin = state[index]&lt;br /&gt;
        newSpin = np.random.randint(-1, 2)&lt;br /&gt;
    &lt;br /&gt;
        # avança a iteração se os spins forem iguais&lt;br /&gt;
        if newSpin == oldSpin:&lt;br /&gt;
            continue&lt;br /&gt;
        &lt;br /&gt;
        # Soma o estado dos vizinhos através da tabela de referência&lt;br /&gt;
        neiSum = np.sum(state[lookup[:, index]])&lt;br /&gt;
&lt;br /&gt;
        # Calcula a mudança de energia do passo&lt;br /&gt;
        dE = -J * (newSpin - oldSpin) * neiSum + D * (newSpin**2 - oldSpin**2)&lt;br /&gt;
        &lt;br /&gt;
        # Verifica se o passo foi ou não aceito&lt;br /&gt;
        if np.random.random() &amp;lt; np.exp(-dE / T):&lt;br /&gt;
            state[index] = newSpin&lt;br /&gt;
            varE += dE         &lt;br /&gt;
            &lt;br /&gt;
    # Retorna o estado depois de todos os passos e a variação de energia total    &lt;br /&gt;
    return state, varE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com todas essas etapas montadas, pode-se gerar a primeira simulação. Abaixo, pode-se analisar uma simulação com valores de D e T fixos e um número arbitrário de MCS&lt;br /&gt;
&lt;br /&gt;
[[file:Evolução blume capel.gif|frame|center|teste]]&lt;br /&gt;
&lt;br /&gt;
Aqui, pode-se observar a evolução de um único sistema, mas o grande trunfo do modelo de Blume-Capel é analisar os estados do sistema, especificamente o TCP. Para isso, uma única simulação não é suficiente, mas será necessário ver o estado de equilíbrio do sistema em um gráfico de Temperatura (T)/Campo cristalino (D) e analisar a magnetização média e o momento de quadrupolo médio. &lt;br /&gt;
&lt;br /&gt;
Como foi dito anteriormente, essas duas medidas serão iguais em dois casos e diferentes em um. Então o gráfico Temperatura (T)/Campo cristalino (D) irá mostrar &amp;lt;math&amp;gt;&amp;lt;M&amp;gt;&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;&amp;lt;Q&amp;gt;&amp;lt;/math&amp;gt;, além de um terceiro gráfico mostrando o módulo da diferença entre eles.&lt;br /&gt;
&lt;br /&gt;
[[file:Blume Capel espaco de fase.gif|frame|center|Evolução da magnetização, momento de quadrupolo e a diferença de ambos em uma grande área, simulações utilizada para identificar a posição dos estados]]&lt;br /&gt;
&lt;br /&gt;
Desenhando esses três gráficos, pode-se perceber que, onde o TCP teórico está próximo dos três estados de equilíbrio teóricos. Mas para avaliar se ele realmente é o TCP, é necessário verificar duas propriedades.&lt;br /&gt;
&lt;br /&gt;
# Nele, o sistema não deve chegar a um estado de equilíbrio único, mas sim alternar entre os conhecidos;&lt;br /&gt;
# A vizinhança dele deve ser composta por simulações que levam a um estado bem definido.&lt;br /&gt;
&lt;br /&gt;
Com isso, para avaliar o sistema, foram geradas várias simulações com diferentes valores de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; dem volta do valor teórico para encontrar qual é o valor que se chega nessa simulação e, se for possível encontrá-lo, qual é o tamanho do ponto.&lt;br /&gt;
&lt;br /&gt;
[[File:Blume Capel espaco de fase zoom.gif|frame|center|Espaços de fases Temperatura em y e D em x aproximado onde na região do PTC. A esquerda a evolução da magnetização do sistema, no meio a evolução do momento de quadrupolo e, a direita, o absoluto da diferença entre os dois. Um ponto vermelho localiza-se na previsão teórica do TCP, com três pontos azuis distribuídos ao seu redor mostrando pontos de simulação.]]&lt;br /&gt;
&lt;br /&gt;
Definindo os pontos a serem simulados separadamente, pode-se animar a evolução do sistema com os devidos parâmetros.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel Estado1.gif|frame|center|Estados onde Q é maior que E, com as partículas oscilando entre os três estados aleatoriamente.]]&lt;br /&gt;
| [[File:Blume Capel Estado2.gif|frame|center|Estados com Q e M próximos de 1, com a simulação estando de maneira quase homogênea em um único spin diferente de 0.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Blume Capel Estado3.gif|frame|center|Estados com Q e M estão próximos de 0, com a maior parte das partículas estando com spin igual a 0.]]&lt;br /&gt;
&lt;br /&gt;
Além disso, pode-se também ver a evolução do estado no TCP:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel PTC1.png|frame|center|Momento em que é observado o estado com Q e M baixos.]]&lt;br /&gt;
| [[File:Blume Capel PTC2.png|frame|center|Momento em que é observado o estado com Q e M altos.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel PTC3.png|frame|center|Momento em que é observado o estado com Q muito maior que M.]]&lt;br /&gt;
| [[File:Blume Capel PTC.gif|thumb|430px|center|Animação total onde os gráficos foram extraídos, clique para ver animado (aviso de luzes piscantes.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
&lt;br /&gt;
Esse trabalho deixou claro a existência de três estados possíveis, além de mostrar que em uma interface de estados o sistema muda voluntariamente entre os três diferentes estados. pode-se ver, parando o gráfico em alguns pontos específicos, que ele passou pelos três estados.&lt;br /&gt;
&lt;br /&gt;
Assim, o código aqui descrito mostra claramente uma implementação do modelo de Blume-Capel capaz de simular os três estados e um ponto onde os três oscilam entre si aleatoriamente. É importante notar que a variação entre os estados não é tão clara no TCP, pois os estados com M próximo de 0 acabam sendo semelhantes devido ao número de alterações que ocorrem a todo MCS.&lt;br /&gt;
&lt;br /&gt;
Mas o algoritmo aqui descrito está disponível na página [[Código:Modelo de Blume-Capel]] feito em Jupyter Notebook, é capaz de prever de maneira satisfatória a evolução de um sistema à partir das variáveis supridas à ele. &lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;mecEst&amp;quot;&amp;gt;Pathria, R. K.; Beale, Paul D.; &#039;&#039;Statistical Mechanics&#039;&#039;, third edition; Elsevier Ltd, 2011; secções 3.4, 12.3, 16.2A&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;point&amp;quot;&amp;gt;Beale, Paul D.; &#039;&#039;Finite-size scaling study of the two-dimensional Blume-Capel model&#039;&#039;; APS Journals, 1986; DOI https://doi.org/10.1103/PhysRevB.33.1717&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=C%C3%B3digo:Modelo_de_Blume-Capel&amp;diff=11544</id>
		<title>Código:Modelo de Blume-Capel</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=C%C3%B3digo:Modelo_de_Blume-Capel&amp;diff=11544"/>
		<updated>2026-06-01T01:33:32Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: Criou página com &amp;#039;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt; import matplotlib.pyplot as plt import matplotlib.animation as animation import numpy as np  from IPython.display import HTML from numba import njit, prange &amp;lt;/syntaxhighlight&amp;gt;  &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt; # Cria uma tabela de referência com o mesmo tamanho # da matriz de estado. Essa matriz terá, para uma partícula de  # índice 1, uma lista com os índices referente á um passo para cada # lado, usado para acelerar a simulação. @...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.animation as animation&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
from IPython.display import HTML&lt;br /&gt;
from numba import njit, prange&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Cria uma tabela de referência com o mesmo tamanho&lt;br /&gt;
# da matriz de estado. Essa matriz terá, para uma partícula de &lt;br /&gt;
# índice 1, uma lista com os índices referente á um passo para cada&lt;br /&gt;
# lado, usado para acelerar a simulação.&lt;br /&gt;
@njit&lt;br /&gt;
def genLookup(side):&lt;br /&gt;
    index = np.arange(side**2)&lt;br /&gt;
    &lt;br /&gt;
    up    = (index - side) % (side**2)&lt;br /&gt;
    down  = (index + side) % (side**2)&lt;br /&gt;
    left  = np.where(index       % side == 0, index - 1 + side, index - 1)&lt;br /&gt;
    right = np.where((index + 1) % side == 0, index + 1 - side, index + 1)&lt;br /&gt;
&lt;br /&gt;
    return np.stack((up, down, left, right))&lt;br /&gt;
&lt;br /&gt;
# Função que simula a mudança de um número predefinido de spins aleatoriamente&lt;br /&gt;
# Aceita a mudança se ela diminuir a energia, recusa se ela&lt;br /&gt;
# não ultrapassar o parâmetro de corte.&lt;br /&gt;
@njit&lt;br /&gt;
def timeSteps(state, lookup, steps = 1, J = 1, D = 1, T = 1):&lt;br /&gt;
    N = state.size&lt;br /&gt;
    varE = 0.0&lt;br /&gt;
&lt;br /&gt;
    # Repete a função para N passos&lt;br /&gt;
    for i in range(steps):&lt;br /&gt;
        &lt;br /&gt;
        # A cada passo, escolhe uma partícula e um spin aleatórios&lt;br /&gt;
        index = np.random.randint(0, N)&lt;br /&gt;
        oldSpin = state[index]&lt;br /&gt;
        newSpin = np.random.randint(-1, 2)&lt;br /&gt;
&lt;br /&gt;
        # Pula se os spins forem iguais&lt;br /&gt;
        if newSpin == oldSpin:&lt;br /&gt;
            continue&lt;br /&gt;
&lt;br /&gt;
        # Soma o estado dos vizinhos através da tabela de referência&lt;br /&gt;
        neiSum = state[lookup[0][index]] +\&lt;br /&gt;
                 state[lookup[1][index]] +\&lt;br /&gt;
                 state[lookup[2][index]] +\&lt;br /&gt;
                 state[lookup[3][index]]&lt;br /&gt;
&lt;br /&gt;
        # Calcula a mudança de energia do passo&lt;br /&gt;
        dE = -J * (newSpin - oldSpin) * neiSum + D * (newSpin**2 - oldSpin**2)&lt;br /&gt;
&lt;br /&gt;
        # Verifica se o passo foi ou não aceito&lt;br /&gt;
        if np.random.random() &amp;lt; np.exp(-dE / T):&lt;br /&gt;
            state[index] = newSpin&lt;br /&gt;
            varE += dE &lt;br /&gt;
    &lt;br /&gt;
    # Retorna o estado depois de n passos e a variação de energia total&lt;br /&gt;
    return state, varE&lt;br /&gt;
&lt;br /&gt;
# Função que cria a animação&lt;br /&gt;
def aniSpaceEvol(states, D, temp, ene, step=10):&lt;br /&gt;
    steps = np.shape(states)[0]&lt;br /&gt;
    time = np.linspace(0,steps,steps)&lt;br /&gt;
    side = int(np.sqrt(np.shape(states[0]))[0])&lt;br /&gt;
    layout = &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
            SS0&lt;br /&gt;
            SS1&lt;br /&gt;
            SS2&lt;br /&gt;
            &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    fig, axes = plt.subplot_mosaic(layout,&lt;br /&gt;
                                    figsize=(6, 4),&lt;br /&gt;
                                    dpi=72,&lt;br /&gt;
                                    layout=&amp;quot;constrained&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    mag = np.abs( np.mean(states , axis=1))&lt;br /&gt;
    qua = np.mean(np.abs( states), axis=1)&lt;br /&gt;
&lt;br /&gt;
    sysAx = axes[&#039;S&#039;]&lt;br /&gt;
    eneAx = axes[&#039;0&#039;]&lt;br /&gt;
    magAx = axes[&#039;1&#039;]&lt;br /&gt;
    quaAx = axes[&#039;2&#039;]&lt;br /&gt;
&lt;br /&gt;
    sysLine = sysAx.imshow(&lt;br /&gt;
        states[0].reshape((side,side)),&lt;br /&gt;
        cmap=plt.get_cmap(&#039;plasma&#039;,3),&lt;br /&gt;
        vmin=-1,&lt;br /&gt;
        vmax=1,&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
    cbar = fig.colorbar(sysLine, ax=sysAx)&lt;br /&gt;
    cbar.set_ticks([-2./3, 0, 2./3])&lt;br /&gt;
    cbar.set_ticklabels([&#039;Spin -1&#039;, &#039;Spin 0&#039;, &#039;Spin +1&#039;])&lt;br /&gt;
&lt;br /&gt;
    eneLine, = eneAx.plot([],[])&lt;br /&gt;
    magLine, = magAx.plot([],[])&lt;br /&gt;
    quaLine, = quaAx.plot([],[])&lt;br /&gt;
&lt;br /&gt;
    sysAx.set_xlim(-0.5,side-0.5)&lt;br /&gt;
    eneAx.set_xlim(time[0],time[-1])&lt;br /&gt;
    magAx.set_xlim(time[0],time[-1])&lt;br /&gt;
    quaAx.set_xlim(time[0],time[-1])&lt;br /&gt;
&lt;br /&gt;
    magAx.sharex(eneAx)&lt;br /&gt;
    quaAx.sharex(eneAx)&lt;br /&gt;
&lt;br /&gt;
    sysAx.set_ylim(-0.5,side-0.5)&lt;br /&gt;
    eneAx.set_ylim(np.min(ene),np.max(ene))&lt;br /&gt;
    magAx.set_ylim(0, 1)&lt;br /&gt;
    quaAx.set_ylim(0, 1)&lt;br /&gt;
&lt;br /&gt;
    sysAx.set_title(&amp;quot;Distribuição de spin&amp;quot;)&lt;br /&gt;
    eneAx.set_ylabel(&amp;quot;Energia&amp;quot;)&lt;br /&gt;
    magAx.set_ylabel(&amp;quot;Magnetização&amp;quot;)&lt;br /&gt;
    quaAx.set_ylabel(&amp;quot;Quadripolo&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    eneAx.tick_params(labelbottom=False)&lt;br /&gt;
    magAx.tick_params(labelbottom=False)&lt;br /&gt;
    quaAx.set_xlabel(&amp;quot;Passos (MCS)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    sysAx.set_axis_off()&lt;br /&gt;
    eneAx.grid()&lt;br /&gt;
    magAx.grid()&lt;br /&gt;
    quaAx.grid()&lt;br /&gt;
    &lt;br /&gt;
    def update(frame):&lt;br /&gt;
        sysLine.set_array(states[frame].reshape((side,side)))&lt;br /&gt;
        eneLine.set_data(time[:frame], ene[:frame])&lt;br /&gt;
        magLine.set_data(time[:frame], mag[:frame])&lt;br /&gt;
        quaLine.set_data(time[:frame], qua[:frame])&lt;br /&gt;
&lt;br /&gt;
        sysAx.set_title(f&amp;quot;Temperatura = {temp:1.3f}; D = {D:.3f}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        return [sysLine, eneLine, magLine, quaLine]&lt;br /&gt;
&lt;br /&gt;
    anim = animation.FuncAnimation(&lt;br /&gt;
                                fig,&lt;br /&gt;
                                update,&lt;br /&gt;
                                frames=range(0, states.shape[0], step),&lt;br /&gt;
                                interval=50,&lt;br /&gt;
                                blit=True&lt;br /&gt;
    )&lt;br /&gt;
    &lt;br /&gt;
    plt.close(fig)&lt;br /&gt;
    return anim&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Função utilizada para gerar os dados do espaço de fases.&lt;br /&gt;
# Utiliza o njit pela complexidade matemática.&lt;br /&gt;
# Recebe listas com os valores de D e T que se que simular&lt;br /&gt;
# além do tamanho da grade da simulação interna e quantos MCS se quer realizar&lt;br /&gt;
@njit&lt;br /&gt;
def genPhaseSpace(TStates, DStates, simSize, mcs, J=1.0):&lt;br /&gt;
    N  = simSize ** 2&lt;br /&gt;
    nT = TStates.size&lt;br /&gt;
    nD = DStates.size&lt;br /&gt;
    M  = np.zeros((steps, nT, nD))&lt;br /&gt;
    Q  = np.zeros((steps, nT, nD))&lt;br /&gt;
    &lt;br /&gt;
    lookup = genLookup(simSize)&lt;br /&gt;
    &lt;br /&gt;
    # utriliza-se o prange para aproveitar dos mútiplos núcleos da CPU&lt;br /&gt;
    # Itera sobre os valores de T e D que se quer realizar a simulação&lt;br /&gt;
    for i in prange(nT):&lt;br /&gt;
        for j in range(nD):&lt;br /&gt;
&lt;br /&gt;
            # Cria um estrado inicial para o sitema, igual para todos&lt;br /&gt;
            state = np.ones(N, dtype=np.int64)&lt;br /&gt;
&lt;br /&gt;
            # Calcula-se a Magnetização e o quadrupolo médio do sistema inicial&lt;br /&gt;
            M[0, i, j] = np.sum(state) / N&lt;br /&gt;
            Q[0, i, j] = np.sum(np.abs(state)) / N&lt;br /&gt;
&lt;br /&gt;
            # Realiza um número recebido de passos de monte carlo no sistema&lt;br /&gt;
            for k in range(1,mcs):&lt;br /&gt;
&lt;br /&gt;
                # A energia após cada passo é descartada, pois não nos interessa aqui&lt;br /&gt;
                state, _ = timeSteps(&lt;br /&gt;
                    state, lookup,&lt;br /&gt;
                    steps=N,&lt;br /&gt;
                    J=J,&lt;br /&gt;
                    D=DStates[j],&lt;br /&gt;
                    T=TStates[i]&lt;br /&gt;
                )&lt;br /&gt;
                &lt;br /&gt;
                # Salva os valors de M e Q no tempo k&lt;br /&gt;
                M[k, i, j] = np.sum(state) / N&lt;br /&gt;
                Q[k, i, j] = np.sum(np.abs(state)) / N&lt;br /&gt;
    return M, Q&lt;br /&gt;
&lt;br /&gt;
def aniPhaseSpace(M, Q, T, D, points = [], step=5):&lt;br /&gt;
    N = M.shape[0]&lt;br /&gt;
    extent = [D[0], D[-1], T[0], T[-1]]&lt;br /&gt;
    frames = range(1, N + 1, step)&lt;br /&gt;
&lt;br /&gt;
    MFrames = [np.mean(M[:k], axis=0) for k in frames]&lt;br /&gt;
    QFrames = [np.mean(Q[:k], axis=0) for k in frames]&lt;br /&gt;
    MQFrames = [np.abs(m - q) for m, q in zip(MFrames, QFrames)]&lt;br /&gt;
&lt;br /&gt;
    fig, axes = plt.subplots(1, 3, figsize=(14, 5), dpi=75, sharey=True)&lt;br /&gt;
&lt;br /&gt;
    imshow_kwargs = dict(origin=&#039;lower&#039;, aspect=&#039;auto&#039;, extent=extent,&lt;br /&gt;
                        interpolation=&#039;nearest&#039;, cmap=&amp;quot;viridis&amp;quot;, vmin = 0, vmax=1)&lt;br /&gt;
    im0 = axes[0].imshow(MFrames[0],  **imshow_kwargs)&lt;br /&gt;
    im1 = axes[1].imshow(QFrames[0],  **imshow_kwargs)&lt;br /&gt;
    im2 = axes[2].imshow(MQFrames[0], **imshow_kwargs)&lt;br /&gt;
    &lt;br /&gt;
    axes[0].set(ylabel=&amp;quot;Temperatura T&amp;quot;)&lt;br /&gt;
    plt.colorbar(im2, ax=axes[-1], fraction=0.04, pad=0.04)&lt;br /&gt;
    imTitle = fig.suptitle(&#039;&#039;, fontsize=12)&lt;br /&gt;
    &lt;br /&gt;
    for ax, im, title in zip(axes,&lt;br /&gt;
                             [im0, im1, im2],&lt;br /&gt;
                             [&lt;br /&gt;
                                &#039;&amp;lt;|M|&amp;gt;  (Magnetização)&#039;,&lt;br /&gt;
                                &#039;&amp;lt;Q&amp;gt;  (Momento quadripolar)&#039;,&lt;br /&gt;
                                &#039;|&amp;lt;M&amp;gt; - &amp;lt;Q&amp;gt;|  (Diferença entre pontos)&#039;&lt;br /&gt;
                            ]):&lt;br /&gt;
        for i, point in enumerate(points):&lt;br /&gt;
            ax.plot(point[0], point[1], &#039;bo&#039;, label=&#039;Ponto simulados&#039; if i == 0 else None)&lt;br /&gt;
        ax.plot(1.965, 0.61, &#039;ro&#039;, label=&#039;PTC (teórico)&#039;)&lt;br /&gt;
        ax.set(xlabel=&#039;D&#039;, title=title)&lt;br /&gt;
        ax.legend()&lt;br /&gt;
&lt;br /&gt;
    def update(idx):&lt;br /&gt;
        im0.set_array(MFrames[idx])&lt;br /&gt;
        im1.set_array(QFrames[idx])&lt;br /&gt;
        im2.set_array(MQFrames[idx])&lt;br /&gt;
        imTitle.set_text(f&#039;Tempo {list(frames)[idx]}/{N}&#039;)&lt;br /&gt;
        return [im0, im1, im2, imTitle]&lt;br /&gt;
    &lt;br /&gt;
    anim = animation.FuncAnimation(&lt;br /&gt;
        fig, update,&lt;br /&gt;
        frames=len(list(frames)),&lt;br /&gt;
        interval=80,&lt;br /&gt;
        blit=True&lt;br /&gt;
    )&lt;br /&gt;
    plt.tight_layout()&lt;br /&gt;
    plt.close(fig)&lt;br /&gt;
    return anim&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
gridSize = 20&lt;br /&gt;
mcs = 30_000&lt;br /&gt;
states = np.zeros((mcs,gridSize**2),dtype=int)&lt;br /&gt;
&lt;br /&gt;
D, T, J = (1.965, 0.61, 1)&lt;br /&gt;
&lt;br /&gt;
lookup = genLookup(gridSize)&lt;br /&gt;
&lt;br /&gt;
states[0], E_i = timeSteps(&lt;br /&gt;
        states[0].copy(),&lt;br /&gt;
        lookup,&lt;br /&gt;
        D = D,&lt;br /&gt;
        T = T,&lt;br /&gt;
        steps=50*gridSize**2&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E = np.zeros(mcs)&lt;br /&gt;
side =  int(np.sqrt(states[0].size))&lt;br /&gt;
&lt;br /&gt;
E[0]  =   D * np.sum(states[0]**2)&lt;br /&gt;
E[0] += - J * np.sum(states[0] * (states[0][lookup[1]] + states[0][lookup[2]]))&lt;br /&gt;
&lt;br /&gt;
for i in range(1,mcs):&lt;br /&gt;
    states[i], E_i = timeSteps(&lt;br /&gt;
        states[i-1].copy(),&lt;br /&gt;
        lookup,&lt;br /&gt;
        D = D,&lt;br /&gt;
        T = T,&lt;br /&gt;
        steps=gridSize**2&lt;br /&gt;
    )&lt;br /&gt;
    E[i] = E[i-1] + E_i&lt;br /&gt;
&lt;br /&gt;
anim = aniSpaceEvol(states, step = 100, D=D, temp = T, ene = E/(gridSize**2))&lt;br /&gt;
anim.save(&#039;TCP.gif&#039;, writer=&#039;ffmpeg&#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
simSize  = 20&lt;br /&gt;
gridSize = 50&lt;br /&gt;
mcs    = 500 &lt;br /&gt;
J = 1.0&lt;br /&gt;
&lt;br /&gt;
TStates = np.linspace(0.1, 5.1, gridSize)&lt;br /&gt;
DStates = np.linspace(0.0, 5.0, gridSize)&lt;br /&gt;
M,Q = genPhaseSpace(TStates, DStates, simSize, mcs)&lt;br /&gt;
&lt;br /&gt;
anim = aniPhaseSpace(&lt;br /&gt;
    M, Q,&lt;br /&gt;
    TStates, DStates,&lt;br /&gt;
    points = [(1.965,0.91), (1.665,0.61), (2.265,0.61)],&lt;br /&gt;
    step = 5&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
HTML(anim.to_jshtml())&lt;br /&gt;
anim.save(&#039;phaseSpace.gif&#039;, writer=&#039;ffmpeg&#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11543</id>
		<title>Modelo Blume-Capel para partículas de spin 1</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11543"/>
		<updated>2026-06-01T01:25:24Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; Essa página está em construção &amp;lt;/span&amp;gt; == &lt;br /&gt;
&lt;br /&gt;
== Modelo de Ising ==&lt;br /&gt;
&lt;br /&gt;
Considere um grupo de partículas com spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; que interagem com seus vizinhos mais próximos. Pode-se calcular a energia do sistema através do Hamiltoniano &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com &amp;lt;math&amp;gt;\sigma_i&amp;lt;/math&amp;gt; representando o valor do spin da partícula &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, podendo ser &amp;lt;math&amp;gt;\pm 1/2&amp;lt;/math&amp;gt;. O somatório representa a energia potencial das partículas vizinhas, onde J representa o comportamento e a propensão ao alinhamento do sistema, podendo ser qualquer número real, no qual valores positivos de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; diminuindo a energia quando os spins estão alinhados e, valores negativos a aumentando. Assim, quanto mais longe de 0 $J&amp;lt;/math&amp;gt; estiver, mais o sistema tende a um extremo.&lt;br /&gt;
&lt;br /&gt;
Consideremos agora a aplicação de um campo magnético &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; externo, paralelo a direção do spin. Esse campo irá adicionar uma energia ao sistema que será&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}_{Mag}=-H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O termo negativo da equação surge pois a energia total do sistema será menor quando os spins estiverem alinhados com campo, com o mínimo de energia sendo &amp;lt;math&amp;gt;-HN&amp;lt;/math&amp;gt;, onde todas as &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas estão com o spin alinhado.&lt;br /&gt;
&lt;br /&gt;
Assim, a energia total do sistema será&amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j -H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora, consideremos o ensemble canonico, isso é, o conjunto de todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; que o sistema pode estar. Se a energia do sistema for medida com todas as partículas dentro dele estiverem dispostas aleatoriamente, a probabilidade de encontrar o sistema na energia &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt; é: &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)\propto e^{-\beta E(\lambda)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com &amp;lt;math&amp;gt;\beta=\frac{1}{k_b T}&amp;lt;/math&amp;gt;. Considerando que a soma de todas as probabilidades é 1, deves-se dividir &amp;lt;math&amp;gt;e^{-\beta E}&amp;lt;/math&amp;gt; pela soma de &amp;lt;math&amp;gt;e^{-\beta E_n(\lambda)}&amp;lt;/math&amp;gt; para todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; ao qual o sistema pode ser encontrado.&lt;br /&gt;
Importante ressaltar que soma é sobre &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; e não sobre todas as energias, pois muitos estados podem gerar a mesma energia, então não é feita uma soma simples por todo o sistema.&lt;br /&gt;
&lt;br /&gt;
Assim, o resultado é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)=\frac{e^{-\beta E(\lambda)}}{\sum_\lambda&#039; e^{-\beta E(\lambda&#039;)}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outra coisa importante ainda do modelo de Ising é a magnetização, que representa o quão ordenado o sistema é à partir do valor médio de todos os spins:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
M=\frac{1}{N}\sum_{n=1}^{N}\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
=== Energia do sistema ===&lt;br /&gt;
&lt;br /&gt;
Esse modelo é uma extensão do modelo de Ising onde, ao invés de se trabalhar com partículas de spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; onde &amp;lt;math&amp;gt;\sigma_i\in \{-\frac{1}{2},\frac{1}{2}\}&amp;lt;/math&amp;gt;, trabalha-se com partículas de spin 1 com &amp;lt;math&amp;gt;\sigma_i\in \{-1,0,1\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Essa mudança de um para três estados não muda de forma significativa o que foi visto anteriormente, mas adiciona um terceiro termo no hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}&amp;lt;/math&amp;gt;. Como aqui partículas podem ter spin nulo, define-se uma nova medida que está relacionada a quantidade de spins diferentes de zero, o momento de quadrupolo magnético&amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
Q= \sum_{n=1}^N\sigma_n^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse momento também é adicionado a energia, pois sair do estado &amp;lt;math&amp;gt;\sigma = 0&amp;lt;/math&amp;gt; adiciona energia aos sistema, isso faz com que o hamiltoniano completo seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j - H\sum_{n=1}^N\sigma_n + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde o parâmetro &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; é chamado de campo cristalino. Nessa implementação do modelo de Blume-Capel, o quadrado do momento de quadrupolo pode ser substituido por um módulo, já que os spins serão -1,0 ou 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ponto tri-crítico ===&lt;br /&gt;
&lt;br /&gt;
Analisa-se o sistema para um dado valor de J e considerando o sistema sem a presença de um campo magnético, de forma que a energia total seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analisando esse sistema simplificado, considerando tempos muito grandes e dividindo tudo por J, o sistema tenderá a três possíveis estados de energia mínima:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;D/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt;: Aqui, o spin de cada partícula tem um peso grande sobre a energia total, o sistema tenderá a um estado onde grande parte dos spins são 0, logo, &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; são próximos de 0.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerente: Aqui, analisando-se &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, como &amp;lt;math&amp;gt;\beta\propto T^{-1}&amp;lt;/math&amp;gt;, beta é aproximadamente 0 e a probabilidade de se encontrar o sistema em dada configuração é a mesma para todas as configurações. Nesse caso, é mais provável que o sistema esteja com &amp;lt;math&amp;gt;M\approx 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q &amp;gt; 0 &amp;lt;/math&amp;gt; com as partículas com spins aleatórios.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerentes: Aqui, analisando novamente &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, estados onde a energia do sistema seja menor que zero serão favorecidos, pois estados positivos terão uma probabilidade menor que 1 (&amp;lt;math&amp;gt;e^{-\mathcal{H}/T&amp;lt;1}&amp;lt;/math&amp;gt;) e estados de energia menor que zero terão uma probabilidade maior (&amp;lt;math&amp;gt;e^{-\mathcal{-|H| }/T&amp;gt;1}&amp;lt;/math&amp;gt;), isso fará com que os spins tendam a se alinhar e &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; serão próximos de 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Considerando que existem 3 regiões e se é possível mudar de uma para a outra, existe um ponto de interseção dos três estados. Esse ponto é chamado de ponto tri-crítico(TCP). Os valores de T e D desse ponto ainda não possuem um valor exato, mas aproximações numéricas estipulam que eles devem ser &amp;lt;math&amp;gt;T\approx 0.610\pm0.005&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D\approx 1.965\pm0.001&amp;lt;/math&amp;gt; &amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unidades Naturais ===&lt;br /&gt;
Antes de começar, é conveniente introduzir o conceito de unidades reduzidas. Como apenas razões entre os parâmetros físicos aparecerão nas equações finais, pode-se escolher uma constante como unidade de energia e utilizar unidades reduzidas, usando &amp;lt;math&amp;gt;k_B = 1&amp;lt;/math&amp;gt; e tomando &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; como unidade de energia. Dessa forma, todas as grandezas passam a ser medidas em unidades de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;, sendo comum trabalhar com as variáveis adimensionais&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;T^* = \frac{k_B T}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;D^* = \frac{D}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;H^* = \frac{H}{J}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao longo deste trabalho, os asteriscos serão omitidos, e todas as grandezas são entendidas como estando em unidades reduzidas.&lt;br /&gt;
&lt;br /&gt;
==  Método Monte-Carlo ==&lt;br /&gt;
&lt;br /&gt;
=== Algoritmo ===&lt;br /&gt;
&lt;br /&gt;
Como o número de estados cresce exponencialmente com o número de partículas, não é possível calcular essa distribuição diretamente. Em vez disso, constrói-se uma sequência de estados através de atualizações locais dos spins.&lt;br /&gt;
&lt;br /&gt;
O procedimento consiste em repetir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
# Escolhe-se aleatoriamente uma partícula.&lt;br /&gt;
# Propõe-se um novo valor de spin para essa partícula, escolhido uniformemente entre os três valores possíveis &amp;lt;math&amp;gt;\sigma \in \{-1, 0, 1\}.&amp;lt;/math&amp;gt;&lt;br /&gt;
# Calcula-se a variação de energia associada à mudança proposta: &amp;lt;math&amp;gt;\Delta E = E_{\text{novo}} - E_{\text{atual}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabendo a variação de energia, pode-se então decidir se o sistema será ou não atualizado.&lt;br /&gt;
&lt;br /&gt;
=== Probabilidade de transição ===&lt;br /&gt;
&lt;br /&gt;
Partindo do balanço detalhado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(i) W(i \rightarrow j) = P(j) W(j \rightarrow i),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E a probabilidade do sistema estar no estado &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt; definida anteriormente, chega-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{P(\lambda_1 \to \lambda_2)}{P(\lambda_2 \to \lambda_1)} = e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uma das maneiras de se definir &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; que resolvem esse sistema é o algoritmo de Metropolis &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;, aqui, a probabilidade de transição é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda_1 \to \lambda_2)=min\left(1,e^{\frac{E(\lambda_2)-E(\lambda_1)}{T}}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalentemente, gera-se um número aleatório uniforme &amp;lt;math&amp;gt;r \in [0,1)&amp;lt;/math&amp;gt;. A atualização é aceita se&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r &amp;lt; e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
essa solução garante,também, que a solução da cadeia de Markov seja exatamente a distribuição de Boltzmann.&lt;br /&gt;
&lt;br /&gt;
Quando o spin aleatório sorteado for igual ao atual, o sistema deve também guardar essa mudança, isso se dá para que o sistema respeite o balanço detalhado e não assuma que a probabilidade de permanência em um estado seja nula.&lt;br /&gt;
&lt;br /&gt;
==== Passo de Monte Carlo ====&lt;br /&gt;
&lt;br /&gt;
Considere um sistema contendo &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas em uma configuração &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;. Em algoritmos de Monte Carlo, um passo elementar consiste na seleção de uma partícula e na tentativa de atualização de seu estado segundo a dinâmica escolhida (por exemplo, o algoritmo de Metropolis).&lt;br /&gt;
&lt;br /&gt;
Como o número de partículas depende do tamanho do sistema, utilizar apenas o número de passos elementares dificulta a comparação entre simulações realizadas em redes de diferentes dimensões. Por esse motivo, define-se uma unidade de tempo computacional normalizada pelo tamanho do sistema.&lt;br /&gt;
&lt;br /&gt;
O Passo de Monte Carlo (MCS) corresponde a NNN tentativas de atualização elementares. Dessa forma, após um MCS, cada partícula terá sido selecionada, em média, uma vez para possível atualização. Essa definição permite comparar de maneira consistente a evolução temporal e as grandezas medidas em sistemas de diferentes tamanhos.&lt;br /&gt;
&lt;br /&gt;
== Implementação Computacional ==&lt;br /&gt;
&lt;br /&gt;
Começa-se criando uma matriz &amp;lt;code&amp;gt;state&amp;lt;/code&amp;gt;. Como esse código será executado diversas vezes com loops longos, diversos pontos devem ser otimizado para velocidade ao invés de legibilidade. O primeiro deles é o uso de uma tabela de referência &amp;lt;code&amp;gt;lookUp&amp;lt;/code&amp;gt;. Ela é gerada uma vez sempre que o tamanho da grade é alterado e possui 2 índices, o primeiro (&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;) sendo a partícula que se quer saber a posição das células adjacentes, e o segundo é um valor de 0 a 3 que guarda, em ordem, o índice da partícula imediatamente acima, abaixo, a esquerda e a direita da partícula &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Isso também permite que seja montado o sistema como periódico, onde a primeira e a última linha seriam vizinhas, assim como a primeira e última coluna. Isso é útil para diminuir os erros que surgem nas bordas, onde as partículas não teriam vizinhas nas quatro direções.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def genLookup(side):&lt;br /&gt;
    index = np.arange(side)&lt;br /&gt;
    &lt;br /&gt;
    up    = (index - side) % (side**2)&lt;br /&gt;
    down  = (index + side) % (side**2)&lt;br /&gt;
    left  = np.where(index       % side == 0, index - 1 + side, index - 1)&lt;br /&gt;
    right = np.where((index + 1) % side == 0, index + 1 - side, index + 1)&lt;br /&gt;
&lt;br /&gt;
    return np.stack((up, down, left, right))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, é pode-se iniciar o sistema com uma matriz 1D de N partículas, onde N é o quadrado do tamanho desejado de um lado da grade. Usa-se matrizes 1D ao invés de 2D para maximizar a velocidade do código.&lt;br /&gt;
&lt;br /&gt;
Com o sistema iniciado, se implementa o algoritmo de Metropolis em uma função que, quando aplicada sobre o estado &amp;lt;math&amp;gt;\lambda_i&amp;lt;/math&amp;gt;, evolui-rá ele para outro estado com uma quantidade definida de passos, podendo ser um passo fundamental, um MCS, ou qualquer outro valor conveniente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def timeSteps(state, lookup, steps = 1, J = 1, D = 1, T = 1):&lt;br /&gt;
    N = state.size&lt;br /&gt;
    varE = 0.0&lt;br /&gt;
&lt;br /&gt;
    # Repete a função para a quantidade de passos dada&lt;br /&gt;
    for i in range(steps):&lt;br /&gt;
    &lt;br /&gt;
        # A cada passo, escolhe uma partícula e um spin aleatórios&lt;br /&gt;
        index = np.random.randint(0, N)&lt;br /&gt;
        oldSpin = state[index]&lt;br /&gt;
        newSpin = np.random.randint(-1, 2)&lt;br /&gt;
    &lt;br /&gt;
        # avança a iteração se os spins forem iguais&lt;br /&gt;
        if newSpin == oldSpin:&lt;br /&gt;
            continue&lt;br /&gt;
        &lt;br /&gt;
        # Soma o estado dos vizinhos através da tabela de referência&lt;br /&gt;
        neiSum = np.sum(state[lookup[:, index]])&lt;br /&gt;
&lt;br /&gt;
        # Calcula a mudança de energia do passo&lt;br /&gt;
        dE = -J * (newSpin - oldSpin) * neiSum + D * (newSpin**2 - oldSpin**2)&lt;br /&gt;
        &lt;br /&gt;
        # Verifica se o passo foi ou não aceito&lt;br /&gt;
        if np.random.random() &amp;lt; np.exp(-dE / T):&lt;br /&gt;
            state[index] = newSpin&lt;br /&gt;
            varE += dE         &lt;br /&gt;
            &lt;br /&gt;
    # Retorna o estado depois de todos os passos e a variação de energia total    &lt;br /&gt;
    return state, varE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com todas essas etapas montadas, pode-se gerar a primeira simulação. Abaixo, pode-se analisar uma simulação com valores de D e T fixos e um número arbitrário de MCS&lt;br /&gt;
&lt;br /&gt;
[[file:Evolução blume capel.gif|frame|center|teste]]&lt;br /&gt;
&lt;br /&gt;
Aqui, pode-se observar a evolução de um único sistema, mas o grande trunfo do modelo de Blume-Capel é analisar os estados do sistema, especificamente o TCP. Para isso, uma única simulação não é suficiente, mas será necessário ver o estado de equilíbrio do sistema em um gráfico de Temperatura (T)/Campo cristalino (D) e analisar a magnetização média e o momento de quadrupolo médio. &lt;br /&gt;
&lt;br /&gt;
Como foi dito anteriormente, essas duas medidas serão iguais em dois casos e diferentes em um. Então o gráfico Temperatura (T)/Campo cristalino (D) irá mostrar &amp;lt;math&amp;gt;&amp;lt;M&amp;gt;&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;&amp;lt;Q&amp;gt;&amp;lt;/math&amp;gt;, além de um terceiro gráfico mostrando o módulo da diferença entre eles.&lt;br /&gt;
&lt;br /&gt;
[[file:Blume Capel espaco de fase.gif|frame|center|Evolução da magnetização, momento de quadrupolo e a diferença de ambos em uma grande área, simulações utilizada para identificar a posição dos estados]]&lt;br /&gt;
&lt;br /&gt;
Desenhando esses três gráficos, pode-se perceber que, onde o TCP teórico está próximo dos três estados de equilíbrio teóricos. Mas para avaliar se ele realmente é o TCP, é necessário verificar duas propriedades.&lt;br /&gt;
&lt;br /&gt;
# Nele, o sistema não deve chegar a um estado de equilíbrio único, mas sim alternar entre os conhecidos;&lt;br /&gt;
# A vizinhança dele deve ser composta por simulações que levam a um estado bem definido.&lt;br /&gt;
&lt;br /&gt;
Com isso, para avaliar o sistema, foram geradas várias simulações com diferentes valores de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; dem volta do valor teórico para encontrar qual é o valor que se chega nessa simulação e, se for possível encontrá-lo, qual é o tamanho do ponto.&lt;br /&gt;
&lt;br /&gt;
[[File:Blume Capel espaco de fase zoom.gif|frame|center|Espaços de fases Temperatura em y e D em x aproximado onde na região do PTC. A esquerda a evolução da magnetização do sistema, no meio a evolução do momento de quadrupolo e, a direita, o absoluto da diferença entre os dois. Um ponto vermelho localiza-se na previsão teórica do TCP, com três pontos azuis distribuídos ao seu redor mostrando pontos de simulação.]]&lt;br /&gt;
&lt;br /&gt;
Definindo os pontos a serem simulados separadamente, pode-se animar a evolução do sistema com os devidos parâmetros.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel Estado1.gif|frame|center|Estados onde Q é maior que E, com as partículas oscilando entre os três estados aleatoriamente.]]&lt;br /&gt;
| [[File:Blume Capel Estado2.gif|frame|center|Estados com Q e M próximos de 1, com a simulação estando de maneira quase homogênea em um único spin diferente de 0.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Blume Capel Estado3.gif|frame|center|Estados com Q e M estão próximos de 0, com a maior parte das partículas estando com spin igual a 0.]]&lt;br /&gt;
&lt;br /&gt;
Além disso, pode-se também ver a evolução do estado no TCP:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel PTC1.png|frame|center|Momento em que é observado o estado com Q e M baixos.]]&lt;br /&gt;
| [[File:Blume Capel PTC2.png|frame|center|Momento em que é observado o estado com Q e M altos.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel PTC3.png|frame|center|Momento em que é observado o estado com Q muito maior que M.]]&lt;br /&gt;
| [[File:Blume Capel PTC.gif|thumb|430px|center|Animação total onde os gráficos foram extraídos, clique para ver animado (aviso de luzes piscantes.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
&lt;br /&gt;
Esse trabalho deixou claro a existência de três estados possíveis, além de mostrar que em uma interface de estados o sistema muda voluntariamente entre os três diferentes estados. pode-se ver, parando o gráfico em alguns pontos específicos, que ele passou pelos três estados.&lt;br /&gt;
&lt;br /&gt;
Assim, o código aqui descrito mostra claramente uma implementação do modelo de Blume-Capel capaz de simular os três estados e um ponto onde os três oscilam entre si aleatoriamente. É importante notar que a variação entre os estados não é tão clara no TCP, pois os estados com M próximo de 0 acabam sendo semelhantes devido ao número de alterações que ocorrem a todo MCS.&lt;br /&gt;
&lt;br /&gt;
Mas o algoritmo aqui descrito está disponível na página [[Código:Modelo de Blume-Capel]] feito em Jupyter Notebook, é capaz de prever de maneira satisfatória a evolução de um sistema à partir das variáveis supridas à ele. &lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;mecEst&amp;quot;&amp;gt;Pathria, R. K.; Beale, Paul D.; &#039;&#039;Statistical Mechanics&#039;&#039;, third edition; Elsevier Ltd, 2011; secções 3.4, 12.3, 16.2A&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;point&amp;quot;&amp;gt;Beale, Paul D.; &#039;&#039;Finite-size scaling study of the two-dimensional Blume-Capel model&#039;&#039;; APS Journals, 1986; DOI https://doi.org/10.1103/PhysRevB.33.1717&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11542</id>
		<title>Modelo Blume-Capel para partículas de spin 1</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11542"/>
		<updated>2026-06-01T01:24:32Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: /* Implementação Computacional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; Essa página está em construção &amp;lt;/span&amp;gt; == &lt;br /&gt;
&lt;br /&gt;
== Modelo de Ising ==&lt;br /&gt;
&lt;br /&gt;
Considere um grupo de partículas com spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; que interagem com seus vizinhos mais próximos. Pode-se calcular a energia do sistema através do Hamiltoniano &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com &amp;lt;math&amp;gt;\sigma_i&amp;lt;/math&amp;gt; representando o valor do spin da partícula &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, podendo ser &amp;lt;math&amp;gt;\pm 1/2&amp;lt;/math&amp;gt;. O somatório representa a energia potencial das partículas vizinhas, onde J representa o comportamento e a propensão ao alinhamento do sistema, podendo ser qualquer número real, no qual valores positivos de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; diminuindo a energia quando os spins estão alinhados e, valores negativos a aumentando. Assim, quanto mais longe de 0 $J&amp;lt;/math&amp;gt; estiver, mais o sistema tende a um extremo.&lt;br /&gt;
&lt;br /&gt;
Consideremos agora a aplicação de um campo magnético &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; externo, paralelo a direção do spin. Esse campo irá adicionar uma energia ao sistema que será&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}_{Mag}=-H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O termo negativo da equação surge pois a energia total do sistema será menor quando os spins estiverem alinhados com campo, com o mínimo de energia sendo &amp;lt;math&amp;gt;-HN&amp;lt;/math&amp;gt;, onde todas as &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas estão com o spin alinhado.&lt;br /&gt;
&lt;br /&gt;
Assim, a energia total do sistema será&amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j -H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora, consideremos o ensemble canonico, isso é, o conjunto de todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; que o sistema pode estar. Se a energia do sistema for medida com todas as partículas dentro dele estiverem dispostas aleatoriamente, a probabilidade de encontrar o sistema na energia &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt; é: &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)\propto e^{-\beta E(\lambda)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com &amp;lt;math&amp;gt;\beta=\frac{1}{k_b T}&amp;lt;/math&amp;gt;. Considerando que a soma de todas as probabilidades é 1, deves-se dividir &amp;lt;math&amp;gt;e^{-\beta E}&amp;lt;/math&amp;gt; pela soma de &amp;lt;math&amp;gt;e^{-\beta E_n(\lambda)}&amp;lt;/math&amp;gt; para todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; ao qual o sistema pode ser encontrado.&lt;br /&gt;
Importante ressaltar que soma é sobre &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; e não sobre todas as energias, pois muitos estados podem gerar a mesma energia, então não é feita uma soma simples por todo o sistema.&lt;br /&gt;
&lt;br /&gt;
Assim, o resultado é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)=\frac{e^{-\beta E(\lambda)}}{\sum_\lambda&#039; e^{-\beta E(\lambda&#039;)}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outra coisa importante ainda do modelo de Ising é a magnetização, que representa o quão ordenado o sistema é à partir do valor médio de todos os spins:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
M=\frac{1}{N}\sum_{n=1}^{N}\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
=== Energia do sistema ===&lt;br /&gt;
&lt;br /&gt;
Esse modelo é uma extensão do modelo de Ising onde, ao invés de se trabalhar com partículas de spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; onde &amp;lt;math&amp;gt;\sigma_i\in \{-\frac{1}{2},\frac{1}{2}\}&amp;lt;/math&amp;gt;, trabalha-se com partículas de spin 1 com &amp;lt;math&amp;gt;\sigma_i\in \{-1,0,1\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Essa mudança de um para três estados não muda de forma significativa o que foi visto anteriormente, mas adiciona um terceiro termo no hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}&amp;lt;/math&amp;gt;. Como aqui partículas podem ter spin nulo, define-se uma nova medida que está relacionada a quantidade de spins diferentes de zero, o momento de quadrupolo magnético&amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
Q= \sum_{n=1}^N\sigma_n^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse momento também é adicionado a energia, pois sair do estado &amp;lt;math&amp;gt;\sigma = 0&amp;lt;/math&amp;gt; adiciona energia aos sistema, isso faz com que o hamiltoniano completo seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j - H\sum_{n=1}^N\sigma_n + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde o parâmetro &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; é chamado de campo cristalino. Nessa implementação do modelo de Blume-Capel, o quadrado do momento de quadrupolo pode ser substituido por um módulo, já que os spins serão -1,0 ou 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ponto tri-crítico ===&lt;br /&gt;
&lt;br /&gt;
Analisa-se o sistema para um dado valor de J e considerando o sistema sem a presença de um campo magnético, de forma que a energia total seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analisando esse sistema simplificado, considerando tempos muito grandes e dividindo tudo por J, o sistema tenderá a três possíveis estados de energia mínima:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;D/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt;: Aqui, o spin de cada partícula tem um peso grande sobre a energia total, o sistema tenderá a um estado onde grande parte dos spins são 0, logo, &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; são próximos de 0.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerente: Aqui, analisando-se &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, como &amp;lt;math&amp;gt;\beta\propto T^{-1}&amp;lt;/math&amp;gt;, beta é aproximadamente 0 e a probabilidade de se encontrar o sistema em dada configuração é a mesma para todas as configurações. Nesse caso, é mais provável que o sistema esteja com &amp;lt;math&amp;gt;M\approx 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q &amp;gt; 0 &amp;lt;/math&amp;gt; com as partículas com spins aleatórios.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerentes: Aqui, analisando novamente &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, estados onde a energia do sistema seja menor que zero serão favorecidos, pois estados positivos terão uma probabilidade menor que 1 (&amp;lt;math&amp;gt;e^{-\mathcal{H}/T&amp;lt;1}&amp;lt;/math&amp;gt;) e estados de energia menor que zero terão uma probabilidade maior (&amp;lt;math&amp;gt;e^{-\mathcal{-|H| }/T&amp;gt;1}&amp;lt;/math&amp;gt;), isso fará com que os spins tendam a se alinhar e &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; serão próximos de 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Considerando que existem 3 regiões e se é possível mudar de uma para a outra, existe um ponto de interseção dos três estados. Esse ponto é chamado de ponto tri-crítico(TCP). Os valores de T e D desse ponto ainda não possuem um valor exato, mas aproximações numéricas estipulam que eles devem ser &amp;lt;math&amp;gt;T\approx 0.610\pm0.005&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D\approx 1.965\pm0.001&amp;lt;/math&amp;gt; &amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unidades Naturais ===&lt;br /&gt;
Antes de começar, é conveniente introduzir o conceito de unidades reduzidas. Como apenas razões entre os parâmetros físicos aparecerão nas equações finais, pode-se escolher uma constante como unidade de energia e utilizar unidades reduzidas, usando &amp;lt;math&amp;gt;k_B = 1&amp;lt;/math&amp;gt; e tomando &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; como unidade de energia. Dessa forma, todas as grandezas passam a ser medidas em unidades de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;, sendo comum trabalhar com as variáveis adimensionais&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;T^* = \frac{k_B T}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;D^* = \frac{D}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;H^* = \frac{H}{J}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao longo deste trabalho, os asteriscos serão omitidos, e todas as grandezas são entendidas como estando em unidades reduzidas.&lt;br /&gt;
&lt;br /&gt;
==  Método Monte-Carlo ==&lt;br /&gt;
&lt;br /&gt;
=== Algoritmo ===&lt;br /&gt;
&lt;br /&gt;
Como o número de estados cresce exponencialmente com o número de partículas, não é possível calcular essa distribuição diretamente. Em vez disso, constrói-se uma sequência de estados através de atualizações locais dos spins.&lt;br /&gt;
&lt;br /&gt;
O procedimento consiste em repetir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
# Escolhe-se aleatoriamente uma partícula.&lt;br /&gt;
# Propõe-se um novo valor de spin para essa partícula, escolhido uniformemente entre os três valores possíveis &amp;lt;math&amp;gt;\sigma \in \{-1, 0, 1\}.&amp;lt;/math&amp;gt;&lt;br /&gt;
# Calcula-se a variação de energia associada à mudança proposta: &amp;lt;math&amp;gt;\Delta E = E_{\text{novo}} - E_{\text{atual}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabendo a variação de energia, pode-se então decidir se o sistema será ou não atualizado.&lt;br /&gt;
&lt;br /&gt;
=== Probabilidade de transição ===&lt;br /&gt;
&lt;br /&gt;
Partindo do balanço detalhado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(i) W(i \rightarrow j) = P(j) W(j \rightarrow i),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E a probabilidade do sistema estar no estado &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt; definida anteriormente, chega-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{P(\lambda_1 \to \lambda_2)}{P(\lambda_2 \to \lambda_1)} = e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uma das maneiras de se definir &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; que resolvem esse sistema é o algoritmo de Metropolis &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;, aqui, a probabilidade de transição é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda_1 \to \lambda_2)=min\left(1,e^{\frac{E(\lambda_2)-E(\lambda_1)}{T}}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalentemente, gera-se um número aleatório uniforme &amp;lt;math&amp;gt;r \in [0,1)&amp;lt;/math&amp;gt;. A atualização é aceita se&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r &amp;lt; e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
essa solução garante,também, que a solução da cadeia de Markov seja exatamente a distribuição de Boltzmann.&lt;br /&gt;
&lt;br /&gt;
Quando o spin aleatório sorteado for igual ao atual, o sistema deve também guardar essa mudança, isso se dá para que o sistema respeite o balanço detalhado e não assuma que a probabilidade de permanência em um estado seja nula.&lt;br /&gt;
&lt;br /&gt;
==== Passo de Monte Carlo ====&lt;br /&gt;
&lt;br /&gt;
Considere um sistema contendo &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas em uma configuração &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;. Em algoritmos de Monte Carlo, um passo elementar consiste na seleção de uma partícula e na tentativa de atualização de seu estado segundo a dinâmica escolhida (por exemplo, o algoritmo de Metropolis).&lt;br /&gt;
&lt;br /&gt;
Como o número de partículas depende do tamanho do sistema, utilizar apenas o número de passos elementares dificulta a comparação entre simulações realizadas em redes de diferentes dimensões. Por esse motivo, define-se uma unidade de tempo computacional normalizada pelo tamanho do sistema.&lt;br /&gt;
&lt;br /&gt;
O Passo de Monte Carlo (MCS) corresponde a NNN tentativas de atualização elementares. Dessa forma, após um MCS, cada partícula terá sido selecionada, em média, uma vez para possível atualização. Essa definição permite comparar de maneira consistente a evolução temporal e as grandezas medidas em sistemas de diferentes tamanhos.&lt;br /&gt;
&lt;br /&gt;
== Implementação Computacional ==&lt;br /&gt;
&lt;br /&gt;
Começa-se criando uma matriz &amp;lt;code&amp;gt;state&amp;lt;/code&amp;gt;. Como esse código será executado diversas vezes com loops longos, diversos pontos devem ser otimizado para velocidade ao invés de legibilidade. O primeiro deles é o uso de uma tabela de referência &amp;lt;code&amp;gt;lookUp&amp;lt;/code&amp;gt;. Ela é gerada uma vez sempre que o tamanho da grade é alterado e possui 2 índices, o primeiro (&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;) sendo a partícula que se quer saber a posição das células adjacentes, e o segundo é um valor de 0 a 3 que guarda, em ordem, o índice da partícula imediatamente acima, abaixo, a esquerda e a direita da partícula &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Isso também permite que seja montado o sistema como periódico, onde a primeira e a última linha seriam vizinhas, assim como a primeira e última coluna. Isso é útil para diminuir os erros que surgem nas bordas, onde as partículas não teriam vizinhas nas quatro direções.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def genLookup(side):&lt;br /&gt;
    index = np.arange(side)&lt;br /&gt;
    &lt;br /&gt;
    up    = (index - side) % (side**2)&lt;br /&gt;
    down  = (index + side) % (side**2)&lt;br /&gt;
    left  = np.where(index       % side == 0, index - 1 + side, index - 1)&lt;br /&gt;
    right = np.where((index + 1) % side == 0, index + 1 - side, index + 1)&lt;br /&gt;
&lt;br /&gt;
    return np.stack((up, down, left, right))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, é pode-se iniciar o sistema com uma matriz 1D de N partículas, onde N é o quadrado do tamanho desejado de um lado da grade. Usa-se matrizes 1D ao invés de 2D para maximizar a velocidade do código.&lt;br /&gt;
&lt;br /&gt;
Com o sistema iniciado, se implementa o algoritmo de Metropolis em uma função que, quando aplicada sobre o estado &amp;lt;math&amp;gt;\lambda_i&amp;lt;/math&amp;gt;, evolui-rá ele para outro estado com uma quantidade definida de passos, podendo ser um passo fundamental, um MCS, ou qualquer outro valor conveniente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def timeSteps(state, lookup, steps = 1, J = 1, D = 1, T = 1):&lt;br /&gt;
    N = state.size&lt;br /&gt;
    varE = 0.0&lt;br /&gt;
&lt;br /&gt;
    # Repete a função para a quantidade de passos dada&lt;br /&gt;
    for i in range(steps):&lt;br /&gt;
    &lt;br /&gt;
        # A cada passo, escolhe uma partícula e um spin aleatórios&lt;br /&gt;
        index = np.random.randint(0, N)&lt;br /&gt;
        oldSpin = state[index]&lt;br /&gt;
        newSpin = np.random.randint(-1, 2)&lt;br /&gt;
    &lt;br /&gt;
        # avança a iteração se os spins forem iguais&lt;br /&gt;
        if newSpin == oldSpin:&lt;br /&gt;
            continue&lt;br /&gt;
        &lt;br /&gt;
        # Soma o estado dos vizinhos através da tabela de referência&lt;br /&gt;
        neiSum = np.sum(state[lookup[:, index]])&lt;br /&gt;
&lt;br /&gt;
        # Calcula a mudança de energia do passo&lt;br /&gt;
        dE = -J * (newSpin - oldSpin) * neiSum + D * (newSpin**2 - oldSpin**2)&lt;br /&gt;
        &lt;br /&gt;
        # Verifica se o passo foi ou não aceito&lt;br /&gt;
        if np.random.random() &amp;lt; np.exp(-dE / T):&lt;br /&gt;
            state[index] = newSpin&lt;br /&gt;
            varE += dE         &lt;br /&gt;
            &lt;br /&gt;
    # Retorna o estado depois de todos os passos e a variação de energia total    &lt;br /&gt;
    return state, varE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com todas essas etapas montadas, pode-se gerar a primeira simulação. Abaixo, pode-se analisar uma simulação com valores de D e T fixos e um número arbitrário de MCS&lt;br /&gt;
&lt;br /&gt;
[[file:Evolução blume capel.gif|frame|center|teste]]&lt;br /&gt;
&lt;br /&gt;
Aqui, pode-se observar a evolução de um único sistema, mas o grande trunfo do modelo de Blume-Capel é analisar os estados do sistema, especificamente o TCP. Para isso, uma única simulação não é suficiente, mas será necessário ver o estado de equilíbrio do sistema em um gráfico de Temperatura (T)/Campo cristalino (D) e analisar a magnetização média e o momento de quadrupolo médio. &lt;br /&gt;
&lt;br /&gt;
Como foi dito anteriormente, essas duas medidas serão iguais em dois casos e diferentes em um. Então o gráfico Temperatura (T)/Campo cristalino (D) irá mostrar &amp;lt;math&amp;gt;&amp;lt;M&amp;gt;&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;&amp;lt;Q&amp;gt;&amp;lt;/math&amp;gt;, além de um terceiro gráfico mostrando o módulo da diferença entre eles.&lt;br /&gt;
&lt;br /&gt;
[[file:Blume Capel espaco de fase.gif|frame|center|Evolução da magnetização, momento de quadrupolo e a diferença de ambos em uma grande área, simulações utilizada para identificar a posição dos estados]]&lt;br /&gt;
&lt;br /&gt;
Desenhando esses três gráficos, pode-se perceber que, onde o TCP teórico está próximo dos três estados de equilíbrio teóricos. Mas para avaliar se ele realmente é o TCP, é necessário verificar duas propriedades.&lt;br /&gt;
&lt;br /&gt;
# Nele, o sistema não deve chegar a um estado de equilíbrio único, mas sim alternar entre os conhecidos;&lt;br /&gt;
# A vizinhança dele deve ser composta por simulações que levam a um estado bem definido.&lt;br /&gt;
&lt;br /&gt;
Com isso, para avaliar o sistema, foram geradas várias simulações com diferentes valores de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; dem volta do valor teórico para encontrar qual é o valor que se chega nessa simulação e, se for possível encontrá-lo, qual é o tamanho do ponto.&lt;br /&gt;
&lt;br /&gt;
[[File:Blume Capel espaco de fase zoom.gif|frame|center|Espaços de fases Temperatura em y e D em x aproximado onde na região do PTC. A esquerda a evolução da magnetização do sistema, no meio a evolução do momento de quadrupolo e, a direita, o absoluto da diferença entre os dois. Um ponto vermelho localiza-se na previsão teórica do TCP, com três pontos azuis distribuídos ao seu redor mostrando pontos de simulação.]]&lt;br /&gt;
&lt;br /&gt;
Definindo os pontos a serem simulados separadamente, pode-se animar a evolução do sistema com os devidos parâmetros.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel Estado1.gif|frame|center|Estados onde Q é maior que E, com as partículas oscilando entre os três estados aleatoriamente.]]&lt;br /&gt;
| [[File:Blume Capel Estado2.gif|frame|center|Estados com Q e M próximos de 1, com a simulação estando de maneira quase homogênea em um único spin diferente de 0.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Blume Capel Estado3.gif|frame|center|Estados com Q e M estão próximos de 0, com a maior parte das partículas estando com spin igual a 0.]]&lt;br /&gt;
&lt;br /&gt;
Além disso, pode-se também ver a evolução do estado no TCP:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel PTC1.png|frame|center|Momento em que é observado o estado com Q e M baixos.]]&lt;br /&gt;
| [[File:Blume Capel PTC2.png|frame|center|Momento em que é observado o estado com Q e M altos.]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Blume Capel PTC3.png|frame|center|Momento em que é observado o estado com Q muito maior que M.]]&lt;br /&gt;
| [[File:Blume Capel PTC.gif|thumb|430px|center|Animação total onde os gráficos foram extraídos, clique para ver animado (aviso de luzes piscantes.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
&lt;br /&gt;
Esse trabalho deixou claro a existência de três estados possíveis, além de mostrar que em uma interface de estados o sistema muda voluntariamente entre os três diferentes estados. pode-se ver, parando o gráfico em alguns pontos específicos, que ele passou pelos três estados.&lt;br /&gt;
&lt;br /&gt;
Assim, o código aqui descrito mostra claramente uma implementação do modelo de Blume-Capel capaz de simular os três estados e um ponto onde os três oscilam entre si aleatoriamente. É importante notar que a variação entre os estados não é tão clara no TCP, pois os estados com M próximo de 0 acabam sendo semelhantes devido ao número de alterações que ocorrem a todo MCS.&lt;br /&gt;
&lt;br /&gt;
Mas o algoritmo aqui descrito está disponível na página [[Código:Modelo de Blume-Capel]] feito em Jupyter Notebook, é capaz de prever de maneira satisfatória a evolução de um sistema à partir das variáveis supridas à ele. &lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;mecEst&amp;quot;&amp;gt;Pathria, R. K.; Beale, Paul D.; &#039;&#039;Statistical Mechanics&#039;&#039;, third edition; Elsevier Ltd, 2011; secções 3.4, 12.3, 16.2A&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;point&amp;quot;&amp;gt;Beale, Paul D.; &#039;&#039;Finite-size scaling study of the two-dimensional Blume-Capel model&#039;&#039;; APS Journals, 1986; DOI https://doi.org/10.1103/PhysRevB.33.1717&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
&lt;br /&gt;
Esse trabalho deixou claro a existência de três estados possíveis, além de mostrar que em uma interface de estados o sistema muda voluntariamente entre diferentes estados. Porém, não foi possível determinar com certeza o TCP, pois, enquanto a borda entre o estado estático com spins fica claro quando comparado com os outros estados, o estado sem spin e com as partículas aleatórias acabam tendo uma divisão mais gradual. &lt;br /&gt;
&lt;br /&gt;
Mesmo assim, o código aqui descrito mostra claramente uma implementação do modelo de Blume-Capel capaz de simular os três estados de maneira funcional. &lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;mecEst&amp;quot;&amp;gt;Pathria, R. K.; Beale, Paul D.; &#039;&#039;Statistical Mechanics&#039;&#039;, third edition; Elsevier Ltd, 2011; secções 3.4, 12.3, 16.2A&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;point&amp;quot;&amp;gt;Beale, Paul D.; &#039;&#039;Finite-size scaling study of the two-dimensional Blume-Capel model&#039;&#039;; APS Journals, 1986; DOI https://doi.org/10.1103/PhysRevB.33.1717&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_PTC.gif&amp;diff=11541</id>
		<title>Arquivo:Blume Capel PTC.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_PTC.gif&amp;diff=11541"/>
		<updated>2026-06-01T01:22:48Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_PTC3.png&amp;diff=11540</id>
		<title>Arquivo:Blume Capel PTC3.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_PTC3.png&amp;diff=11540"/>
		<updated>2026-06-01T01:22:16Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_PTC1.png&amp;diff=11539</id>
		<title>Arquivo:Blume Capel PTC1.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_PTC1.png&amp;diff=11539"/>
		<updated>2026-06-01T01:21:55Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_PTC2.png&amp;diff=11538</id>
		<title>Arquivo:Blume Capel PTC2.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_PTC2.png&amp;diff=11538"/>
		<updated>2026-06-01T01:21:29Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_Estado3.gif&amp;diff=11534</id>
		<title>Arquivo:Blume Capel Estado3.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_Estado3.gif&amp;diff=11534"/>
		<updated>2026-05-31T22:38:23Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_espaco_de_fase_zoom.gif&amp;diff=11533</id>
		<title>Arquivo:Blume Capel espaco de fase zoom.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_espaco_de_fase_zoom.gif&amp;diff=11533"/>
		<updated>2026-05-31T22:34:10Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_Estado2.gif&amp;diff=11532</id>
		<title>Arquivo:Blume Capel Estado2.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_Estado2.gif&amp;diff=11532"/>
		<updated>2026-05-31T22:23:20Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_Estado1.gif&amp;diff=11531</id>
		<title>Arquivo:Blume Capel Estado1.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_Estado1.gif&amp;diff=11531"/>
		<updated>2026-05-31T22:22:46Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_espaco_de_fase.gif&amp;diff=11530</id>
		<title>Arquivo:Blume Capel espaco de fase.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_espaco_de_fase.gif&amp;diff=11530"/>
		<updated>2026-05-31T21:59:02Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: Misalocin carregada uma nova versão de Arquivo:Blume Capel espaco de fase.gif&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_espaco_de_fase.gif&amp;diff=11529</id>
		<title>Arquivo:Blume Capel espaco de fase.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Blume_Capel_espaco_de_fase.gif&amp;diff=11529"/>
		<updated>2026-05-31T21:49:13Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Evolu%C3%A7%C3%A3o_blume_capel.gif&amp;diff=11528</id>
		<title>Arquivo:Evolução blume capel.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Evolu%C3%A7%C3%A3o_blume_capel.gif&amp;diff=11528"/>
		<updated>2026-05-31T21:44:09Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: Misalocin carregada uma nova versão de Arquivo:Evolução blume capel.gif&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descrição do arquivo ==&lt;br /&gt;
Animação mostrando a evolução de um sistema Blume-Capel com T=1 e D=2&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Evolu%C3%A7%C3%A3o_blume_capel.gif&amp;diff=11527</id>
		<title>Arquivo:Evolução blume capel.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Evolu%C3%A7%C3%A3o_blume_capel.gif&amp;diff=11527"/>
		<updated>2026-05-31T21:41:51Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: Misalocin carregada uma nova versão de Arquivo:Evolução blume capel.gif&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descrição do arquivo ==&lt;br /&gt;
Animação mostrando a evolução de um sistema Blume-Capel com T=1 e D=2&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Animacao_blume_capel_generica.webp&amp;diff=11526</id>
		<title>Arquivo:Animacao blume capel generica.webp</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Animacao_blume_capel_generica.webp&amp;diff=11526"/>
		<updated>2026-05-31T21:36:11Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11525</id>
		<title>Modelo Blume-Capel para partículas de spin 1</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Blume-Capel_para_part%C3%ADculas_de_spin_1&amp;diff=11525"/>
		<updated>2026-05-31T21:22:07Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; Essa página está em construção &amp;lt;/span&amp;gt; == &lt;br /&gt;
&lt;br /&gt;
== Modelo de Ising ==&lt;br /&gt;
&lt;br /&gt;
Considere um grupo de partículas com spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; que interagem com seus vizinhos mais próximos. Pode-se calcular a energia do sistema através do Hamiltoniano &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com &amp;lt;math&amp;gt;\sigma_i&amp;lt;/math&amp;gt; representando o valor do spin da partícula &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, podendo ser &amp;lt;math&amp;gt;\pm 1/2&amp;lt;/math&amp;gt;. O somatório representa a energia potencial das partículas vizinhas, onde J representa o comportamento e a propensão ao alinhamento do sistema, podendo ser qualquer número real, no qual valores positivos de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; diminuindo a energia quando os spins estão alinhados e, valores negativos a aumentando. Assim, quanto mais longe de 0 $J&amp;lt;/math&amp;gt; estiver, mais o sistema tende a um extremo.&lt;br /&gt;
&lt;br /&gt;
Consideremos agora a aplicação de um campo magnético &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; externo, paralelo a direção do spin. Esse campo irá adicionar uma energia ao sistema que será&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}_{Mag}=-H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O termo negativo da equação surge pois a energia total do sistema será menor quando os spins estiverem alinhados com campo, com o mínimo de energia sendo &amp;lt;math&amp;gt;-HN&amp;lt;/math&amp;gt;, onde todas as &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas estão com o spin alinhado.&lt;br /&gt;
&lt;br /&gt;
Assim, a energia total do sistema será&amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}=-J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j -H\sum_{n=1}^N\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora, consideremos o ensemble canonico, isso é, o conjunto de todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; que o sistema pode estar. Se a energia do sistema for medida com todas as partículas dentro dele estiverem dispostas aleatoriamente, a probabilidade de encontrar o sistema na energia &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt; é: &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)\propto e^{-\beta E(\lambda)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com &amp;lt;math&amp;gt;\beta=\frac{1}{k_b T}&amp;lt;/math&amp;gt;. Considerando que a soma de todas as probabilidades é 1, deves-se dividir &amp;lt;math&amp;gt;e^{-\beta E}&amp;lt;/math&amp;gt; pela soma de &amp;lt;math&amp;gt;e^{-\beta E_n(\lambda)}&amp;lt;/math&amp;gt; para todos os estados &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; ao qual o sistema pode ser encontrado.&lt;br /&gt;
Importante ressaltar que soma é sobre &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; e não sobre todas as energias, pois muitos estados podem gerar a mesma energia, então não é feita uma soma simples por todo o sistema.&lt;br /&gt;
&lt;br /&gt;
Assim, o resultado é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda)=\frac{e^{-\beta E(\lambda)}}{\sum_\lambda&#039; e^{-\beta E(\lambda&#039;)}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outra coisa importante ainda do modelo de Ising é a magnetização, que representa o quão ordenado o sistema é à partir do valor médio de todos os spins:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
M=\frac{1}{N}\sum_{n=1}^{N}\sigma_n&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Blume-Capel ==&lt;br /&gt;
&lt;br /&gt;
=== Energia do sistema ===&lt;br /&gt;
&lt;br /&gt;
Esse modelo é uma extensão do modelo de Ising onde, ao invés de se trabalhar com partículas de spin &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt; onde &amp;lt;math&amp;gt;\sigma_i\in \{-\frac{1}{2},\frac{1}{2}\}&amp;lt;/math&amp;gt;, trabalha-se com partículas de spin 1 com &amp;lt;math&amp;gt;\sigma_i\in \{-1,0,1\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Essa mudança de um para três estados não muda de forma significativa o que foi visto anteriormente, mas adiciona um terceiro termo no hamiltoniano &amp;lt;math&amp;gt;\mathcal{H}&amp;lt;/math&amp;gt;. Como aqui partículas podem ter spin nulo, define-se uma nova medida que está relacionada a quantidade de spins diferentes de zero, o momento de quadrupolo magnético&amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;, definido como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
Q= \sum_{n=1}^N\sigma_n^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse momento também é adicionado a energia, pois sair do estado &amp;lt;math&amp;gt;\sigma = 0&amp;lt;/math&amp;gt; adiciona energia aos sistema, isso faz com que o hamiltoniano completo seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j - H\sum_{n=1}^N\sigma_n + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde o parâmetro &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; é chamado de campo cristalino. Nessa implementação do modelo de Blume-Capel, o quadrado do momento de quadrupolo pode ser substituido por um módulo, já que os spins serão -1,0 ou 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ponto tri-crítico ===&lt;br /&gt;
&lt;br /&gt;
Analisa-se o sistema para um dado valor de J e considerando o sistema sem a presença de um campo magnético, de forma que a energia total seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H}= - J\sum_{&amp;lt;i,j&amp;gt;} \sigma_i \sigma_j + D\sum_{m=1}^N\sigma_m^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analisando esse sistema simplificado, considerando tempos muito grandes e dividindo tudo por J, o sistema tenderá a três possíveis estados de energia mínima:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;D/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt;: Aqui, o spin de cada partícula tem um peso grande sobre a energia total, o sistema tenderá a um estado onde grande parte dos spins são 0, logo, &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; são próximos de 0.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;gt;&amp;gt; 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerente: Aqui, analisando-se &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, como &amp;lt;math&amp;gt;\beta\propto T^{-1}&amp;lt;/math&amp;gt;, beta é aproximadamente 0 e a probabilidade de se encontrar o sistema em dada configuração é a mesma para todas as configurações. Nesse caso, é mais provável que o sistema esteja com &amp;lt;math&amp;gt;M\approx 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q &amp;gt; 0 &amp;lt;/math&amp;gt; com as partículas com spins aleatórios.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;T/J &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D/J&amp;lt;/math&amp;gt; coerentes: Aqui, analisando novamente &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt;, estados onde a energia do sistema seja menor que zero serão favorecidos, pois estados positivos terão uma probabilidade menor que 1 (&amp;lt;math&amp;gt;e^{-\mathcal{H}/T&amp;lt;1}&amp;lt;/math&amp;gt;) e estados de energia menor que zero terão uma probabilidade maior (&amp;lt;math&amp;gt;e^{-\mathcal{-|H| }/T&amp;gt;1}&amp;lt;/math&amp;gt;), isso fará com que os spins tendam a se alinhar e &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; serão próximos de 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Considerando que existem 3 regiões e se é possível mudar de uma para a outra, existe um ponto de interseção dos três estados. Esse ponto é chamado de ponto tri-crítico(TCP). Os valores de T e D desse ponto ainda não possuem um valor exato, mas aproximações numéricas estipulam que eles devem ser &amp;lt;math&amp;gt;T\approx 0.610\pm0.005&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D\approx 1.965\pm0.001&amp;lt;/math&amp;gt; &amp;lt;ref name=&amp;quot;point&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unidades Naturais ===&lt;br /&gt;
Antes de começar, é conveniente introduzir o conceito de unidades reduzidas. Como apenas razões entre os parâmetros físicos aparecerão nas equações finais, pode-se escolher uma constante como unidade de energia e utilizar unidades reduzidas, usando &amp;lt;math&amp;gt;k_B = 1&amp;lt;/math&amp;gt; e tomando &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; como unidade de energia. Dessa forma, todas as grandezas passam a ser medidas em unidades de &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt;, sendo comum trabalhar com as variáveis adimensionais&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;T^* = \frac{k_B T}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;D^* = \frac{D}{J};&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;H^* = \frac{H}{J}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao longo deste trabalho, os asteriscos serão omitidos, e todas as grandezas são entendidas como estando em unidades reduzidas.&lt;br /&gt;
&lt;br /&gt;
==  Método Monte-Carlo ==&lt;br /&gt;
&lt;br /&gt;
=== Algoritmo ===&lt;br /&gt;
&lt;br /&gt;
Como o número de estados cresce exponencialmente com o número de partículas, não é possível calcular essa distribuição diretamente. Em vez disso, constrói-se uma sequência de estados através de atualizações locais dos spins.&lt;br /&gt;
&lt;br /&gt;
O procedimento consiste em repetir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
# Escolhe-se aleatoriamente uma partícula.&lt;br /&gt;
# Propõe-se um novo valor de spin para essa partícula, escolhido uniformemente entre os três valores possíveis &amp;lt;math&amp;gt;\sigma \in \{-1, 0, 1\}.&amp;lt;/math&amp;gt;&lt;br /&gt;
# Calcula-se a variação de energia associada à mudança proposta: &amp;lt;math&amp;gt;\Delta E = E_{\text{novo}} - E_{\text{atual}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sabendo a variação de energia, pode-se então decidir se o sistema será ou não atualizado.&lt;br /&gt;
&lt;br /&gt;
=== Probabilidade de transição ===&lt;br /&gt;
&lt;br /&gt;
Partindo do balanço detalhado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(i) W(i \rightarrow j) = P(j) W(j \rightarrow i),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E a probabilidade do sistema estar no estado &amp;lt;math&amp;gt;P(\lambda)&amp;lt;/math&amp;gt; definida anteriormente, chega-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{P(\lambda_1 \to \lambda_2)}{P(\lambda_2 \to \lambda_1)} = e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uma das maneiras de se definir &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; que resolvem esse sistema é o algoritmo de Metropolis &amp;lt;ref name=&amp;quot;mecEst&amp;quot; /&amp;gt;, aqui, a probabilidade de transição é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
P(\lambda_1 \to \lambda_2)=min\left(1,e^{\frac{E(\lambda_2)-E(\lambda_1)}{T}}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalentemente, gera-se um número aleatório uniforme &amp;lt;math&amp;gt;r \in [0,1)&amp;lt;/math&amp;gt;. A atualização é aceita se&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r &amp;lt; e^{-\Delta E/T}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
essa solução garante,também, que a solução da cadeia de Markov seja exatamente a distribuição de Boltzmann.&lt;br /&gt;
&lt;br /&gt;
Quando o spin aleatório sorteado for igual ao atual, o sistema deve também guardar essa mudança, isso se dá para que o sistema respeite o balanço detalhado e não assuma que a probabilidade de permanência em um estado seja nula.&lt;br /&gt;
&lt;br /&gt;
==== Passo de Monte Carlo ====&lt;br /&gt;
&lt;br /&gt;
Considere um sistema contendo &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas em uma configuração &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;. Em algoritmos de Monte Carlo, um passo elementar consiste na seleção de uma partícula e na tentativa de atualização de seu estado segundo a dinâmica escolhida (por exemplo, o algoritmo de Metropolis).&lt;br /&gt;
&lt;br /&gt;
Como o número de partículas depende do tamanho do sistema, utilizar apenas o número de passos elementares dificulta a comparação entre simulações realizadas em redes de diferentes dimensões. Por esse motivo, define-se uma unidade de tempo computacional normalizada pelo tamanho do sistema.&lt;br /&gt;
&lt;br /&gt;
O Passo de Monte Carlo (MCS) corresponde a NNN tentativas de atualização elementares. Dessa forma, após um MCS, cada partícula terá sido selecionada, em média, uma vez para possível atualização. Essa definição permite comparar de maneira consistente a evolução temporal e as grandezas medidas em sistemas de diferentes tamanhos.&lt;br /&gt;
&lt;br /&gt;
== Implementação Computacional ==&lt;br /&gt;
&lt;br /&gt;
Começa-se criando uma matriz &amp;lt;code&amp;gt;state&amp;lt;/code&amp;gt;. Como esse código será executado diversas vezes com loops longos, diversos pontos devem ser otimizado para velocidade ao invés de legibilidade. O primeiro deles é o uso de uma tabela de referência &amp;lt;code&amp;gt;lookUp&amp;lt;/code&amp;gt;. Ela é gerada uma vez sempre que o tamanho da grade é alterado e possui 2 índices, o primeiro (&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;) sendo a partícula que se quer saber a posição das células adjacentes, e o segundo é um valor de 0 a 3 que guarda, em ordem, o índice da partícula imediatamente acima, abaixo, a esquerda e a direita da partícula &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Isso também permite que seja montado o sistema como periódico, onde a primeira e a última linha seriam vizinhas, assim como a primeira e última coluna. Isso é útil para diminuir os erros que surgem nas bordas, onde as partículas não teriam vizinhas nas quatro direções.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def genLookup(side):&lt;br /&gt;
    index = np.arange(side)&lt;br /&gt;
    &lt;br /&gt;
    up    = (index - side) % (side**2)&lt;br /&gt;
    down  = (index + side) % (side**2)&lt;br /&gt;
    left  = np.where(index       % side == 0, index - 1 + side, index - 1)&lt;br /&gt;
    right = np.where((index + 1) % side == 0, index + 1 - side, index + 1)&lt;br /&gt;
&lt;br /&gt;
    return np.stack((up, down, left, right))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, é pode-se iniciar o sistema com uma matriz 1D de N partículas, onde N é o quadrado do tamanho desejado de um lado da grade. Usa-se matrizes 1D ao invés de 2D para maximizar a velocidade do código.&lt;br /&gt;
&lt;br /&gt;
Com o sistema iniciado, se implementa o algoritmo de Metropolis em uma função que, quando aplicada sobre o estado &amp;lt;math&amp;gt;\lambda_i&amp;lt;/math&amp;gt;, evolui-rá ele para outro estado com uma quantidade definida de passos, podendo ser um passo fundamental, um MCS, ou qualquer outro valor conveniente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def timeSteps(state, lookup, steps = 1, J = 1, D = 1, T = 1):&lt;br /&gt;
    N = state.size&lt;br /&gt;
    varE = 0.0&lt;br /&gt;
&lt;br /&gt;
    # Repete a função para a quantidade de passos dada&lt;br /&gt;
    for i in range(steps):&lt;br /&gt;
    &lt;br /&gt;
        # A cada passo, escolhe uma partícula e um spin aleatórios&lt;br /&gt;
        index = np.random.randint(0, N)&lt;br /&gt;
        oldSpin = state[index]&lt;br /&gt;
        newSpin = np.random.randint(-1, 2)&lt;br /&gt;
    &lt;br /&gt;
        # avança a iteração se os spins forem iguais&lt;br /&gt;
        if newSpin == oldSpin:&lt;br /&gt;
            continue&lt;br /&gt;
        &lt;br /&gt;
        # Soma o estado dos vizinhos através da tabela de referência&lt;br /&gt;
        neiSum = np.sum(state[lookup[:, index]])&lt;br /&gt;
&lt;br /&gt;
        # Calcula a mudança de energia do passo&lt;br /&gt;
        dE = -J * (newSpin - oldSpin) * neiSum + D * (newSpin**2 - oldSpin**2)&lt;br /&gt;
        &lt;br /&gt;
        # Verifica se o passo foi ou não aceito&lt;br /&gt;
        if np.random.random() &amp;lt; np.exp(-dE / T):&lt;br /&gt;
            state[index] = newSpin&lt;br /&gt;
            varE += dE         &lt;br /&gt;
            &lt;br /&gt;
    # Retorna o estado depois de todos os passos e a variação de energia total    &lt;br /&gt;
    return state, varE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com todas essas etapas montadas, pode-se gerar a primeira simulação. Abaixo, pode-se analisar uma simulação com valores de D e T fixos e um número arbitrário de MCS&lt;br /&gt;
&lt;br /&gt;
[IMAGEM]&lt;br /&gt;
&lt;br /&gt;
Aqui, pode-se observar a evolução de um único sistema, mas o grande trunfo do modelo de Blume-Capel é analisar os estados do sistema, especificamente o TCP. Para isso, uma única simulação não é suficiente, mas será necessário ver o estado de equilíbrio do sistema em um gráfico de Temperatura (T)/Campo cristalino (D) e analisar a magnetização média e o momento de quadrupolo médio. Como foi dito anteriormente, essas duas medidas serão iguais em dois casos e diferentes em um. Para tornar mais claro o terceiro caso, onde o que importa é que &amp;lt;math&amp;gt;&amp;lt;M&amp;gt;&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;&amp;lt;Q&amp;gt;&amp;lt;/math&amp;gt; sejam diferentes, também será desenhado o gráfico do módulo da diferença entre eles.&lt;br /&gt;
&lt;br /&gt;
[IMAGEM]&lt;br /&gt;
&lt;br /&gt;
Desenhando esses três gráficos, pode-se perceber que, onde o TCP teórico está próximo dos três estados de equilíbrio teóricos. Mas para avaliar se ele realmente é o TCP, é necessário verificar duas propriedades.&lt;br /&gt;
&lt;br /&gt;
# Nele, o sistema não deve chegar a um estado de equilíbrio único, mas sim alternar entre os conhecidos;&lt;br /&gt;
# A vizinhança dele deve ser composta por simulações que levam a um estado bem definido.&lt;br /&gt;
&lt;br /&gt;
Com isso, para avaliar o sistema, foram geradas várias simulações com diferentes valores de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; dem volta do valor teórico para encontrar qual é o valor que se chega nessa simulação e, se for possível encontrá-lo, qual é o tamanho do ponto.&lt;br /&gt;
&lt;br /&gt;
[IMAGEM]&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
&lt;br /&gt;
Esse trabalho deixou claro a existência de três estados possíveis, além de mostrar que em uma interface de estados o sistema muda voluntariamente entre diferentes estados. Porém, não foi possível determinar com certeza o TCP, pois, enquanto a borda entre o estado estático com spins fica claro quando comparado com os outros estados, o estado sem spin e com as partículas aleatórias acabam tendo uma divisão mais gradual. &lt;br /&gt;
&lt;br /&gt;
Mesmo assim, o código aqui descrito mostra claramente uma implementação do modelo de Blume-Capel capaz de simular os três estados de maneira funcional. &lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;mecEst&amp;quot;&amp;gt;Pathria, R. K.; Beale, Paul D.; &#039;&#039;Statistical Mechanics&#039;&#039;, third edition; Elsevier Ltd, 2011; secções 3.4, 12.3, 16.2A&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;point&amp;quot;&amp;gt;Beale, Paul D.; &#039;&#039;Finite-size scaling study of the two-dimensional Blume-Capel model&#039;&#039;; APS Journals, 1986; DOI https://doi.org/10.1103/PhysRevB.33.1717&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Evolu%C3%A7%C3%A3o_blume_capel.gif&amp;diff=11524</id>
		<title>Arquivo:Evolução blume capel.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Evolu%C3%A7%C3%A3o_blume_capel.gif&amp;diff=11524"/>
		<updated>2026-05-31T21:21:42Z</updated>

		<summary type="html">&lt;p&gt;Misalocin: Animação mostrando a evolução de um sistema Blume-Capel com T=1 e D=2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descrição do arquivo ==&lt;br /&gt;
Animação mostrando a evolução de um sistema Blume-Capel com T=1 e D=2&lt;/div&gt;</summary>
		<author><name>Misalocin</name></author>
	</entry>
</feed>