http://fiscomp.if.ufrgs.br/api.php?action=feedcontributions&user=Lucasdoria&feedformat=atomFísica Computacional - Contribuições do usuário [pt-br]2024-03-28T21:59:50ZContribuições do usuárioMediaWiki 1.39.4http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=2310Grupo - Ising 2D2018-01-26T19:49:21Z<p>Lucasdoria: </p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
O objetivo deste trabalho é estudar o comportamento de um sistema de Ising spins a partir do método de Monte Carlo. O problema do ferromagnetismo em um material foi abordado utilizando o algoritmo de metrópolis, considerando que o sistema interagia com um reservatório térmico externo. Várias propriedades do sistema foram investigadas, tais como a magnetização total, a energia por spin, o calor específico e a suscetibilidade magnética do sistema.<br />
<br />
== Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de spins de Ising <math>s={s_1,s_2,..s_i,...s_N}</math> que podem assumir valor <math>+1</math> e <math>-1</math>, respectivamente "up" e "down", onde <math>N</math> é a quantidade máxima de spins, ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. A evolução desse sistema de spins é descrito por uma dinâmica que possui as propriedades do processo de Markov de balanceamento detalhado e ergocidade, garantindo ao sistema que sua evolução o leva a estados estacionários de equilibrio descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising 2D tratado neste trabalho possui seus spins organizados em uma rede quadrada bidimensional de tamanho <math>N=L\times L</math> com vizinhança de Von Newmann e condições de contorno periódicas. A energia desse sistema é descrita pela equação <ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math>E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,</math><br />
<br />
onde <math>J</math> é a taxa de transição, <math>H</math> representa o campo magnético externo e <math>\mu</math> o momento magnético associado com cada spin. O primeiro somatório é sobre todas as vizinhanças de spins e o segundo sobre todos os spins. Neste trabalho, particularmente, escolhemos <math>J=1</math> para favorecer menores energias em spins apontados para cima (<math>s=1</math>), <math>\mu = 1 </math> e <math>0\le H</math><br />
<br />
A magnetização desse sistema é dada pela soma de todos os valores de spins:<br />
<br />
<math>M = \sum_{i=1}^N <s_i> </math>.<br />
<br />
Utilizando a abordagem da mecânica estatística, conforme descrito por Gibbs (1902), podemos estimar valores médios de propriedades macroscópicas de um sistema termodinâmico, como energia ou magnetização, a partir de uma amostragem de Boltzmann relativa ao valor da propriedade sobre todos os estados do sistema. Sendo assim, podemos estimar o valor energia do nosso sistema em estado de equilibro termodinâmico como sendo<br />
<br />
<math><E> = \frac{1}{Z}\sum_{\nu}E_{\nu} e^{-E{\nu}/kT}</math><br />
<br />
onde Z é a função partição <math>Z = \sum_{\nu} e^{-E{\nu}/kT} </math>, <math> E_{\nu}</math> é a energia do sistema no estado <math>\nu</math>, <math>T</math> é a temperatura de um reservatório em contato com o sistema e <math>k</math> é a constante de Boltzmann, escolhida nesse trabalho como tendo valor unitário. O mesmo serve para a magnetização:<br />
<br />
<math><M> = \frac{1}{Z}\sum_{\nu}|M_{\nu}| e^{-E{\nu}/kT}</math>, onde <math><M></math> é medido sobre o módulo da <math>M_{\nu}</math>, que é a magnetização no estado <math>\nu</math>.<br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins <math>(L^2)</math>, <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico por spin do sistema, dada por<br />
<br />
<math>c_{spin} = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação.<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
=== Algorítmo de Metrópolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações do sistema, utilizaremos o Algorítmo de Metropolis. O algoritmo funcionará escolhendo repetidamente um novo estado <math>\nu</math> e aceitando ou rejeitando o estado de acordo com uma probabilidade de aceitação <math>A(\mu \rightarrow \nu)</math> de transitar de um estado antigo <math>\mu</math> para o novo estado <math>\nu</math>. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza o método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
<br />
Temos que a condição de balanceamento detalhado é dada por <ref>M. E. J. Newman, G. T. Barkema, "Monte Carlo Methods in Statistical Physics". Oxford University Press Inc., New York, 1999.</ref>:<br />
<br />
<math>\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}, \qquad (3)</math><br />
<br />
onde <math>\Delta E = E_\nu - E_\mu</math>.<br />
<br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\nu \rightarrow \mu)</math>, portanto iremos igualar essa probabilidade a 1. <br />
Para que <math>(3)</math> seja respeitada, iremos definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\<br />
1, \qquad \qquad \text{caso contrario}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicas, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spin da matriz poderá assumir apenas os valores de +1 e -1, representando a magnetização desse spin.<br />
<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que fará com que tenhamos uma configuração aproximadamente aleatória, garantido uma magnetização média do sistema de aproximadamente 0.<br />
<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação <math>(1)</math> e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação <math>(1)</math>, temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k^\mu(J\displaystyle \sum_j s_{j} + H)</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math> e, como os vizinhos de <math>s_k</math> não mudam de estado, <math>s_j^\mu = s_j^\nu</math> para qualquer <math>j</math>.<br />
<br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Antes de começar o registro das medidas de magnetização e energia do sistema é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo para eliminar problemas transientes do sistema e o sistema tender a um estado de equilíbrio. Após esse tempo, inicia-se o registro. Os valores do calor específico por spin e da susceptibilidade magnética são feitos após o fim da dinâmica de Monte Carlo.<br />
<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. Também escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado. A partir disso, podemos utilizar o método de amostragem por importância para medir as médias da energia e da magnetização, além das médias da magnetização quadrada e da energia quadrada:<br />
<br />
<math><E> = \frac{1}{MCS}\sum_{\nu}E_{\nu}</math><br />
<br />
<math><E^2> = \frac{1}{MCS}\sum_{\nu}E_{\nu}^2</math><br />
<br />
<math><M> = \frac{1}{MCS}\sum_{\nu}|M_{\nu}|</math><br />
<br />
<math><M^2> = \frac{1}{MCS}\sum_{\nu}M_{\nu}^2</math><br />
<br />
onde <math>MCS</math> é a quantidade de passos de Monte Carlo dadas.<br />
<br />
== Resultados ==<br />
Para analisarmos os resultados obtidos pelo método de Metropolis, realizamos diversas medidas em sistemas com dimensões <math>20\times20</math>, <math>36\times36</math> e <math>48\times48</math>. Utilizamos para todas as medidas um tempo de equilíbrio de <math>10^5</math> Monte Carlo Steps e fizemos <math>10^6</math> medidas.<br />
<br />
Primeiramente, fizemos medidas para sistemas sem campo magnético, ou seja, <math>H=0</math>. Com isso, montamos histogramas da magnetização por spins e da energia por spins do sistema para cada um dos 3 casos em três diferentes temperaturas:<br />
<br />
[[Arquivo:Hist20.png|frameless|upright=5]]<br />
[[Arquivo:Hist36.png|frameless|upright=5]]<br />
[[Arquivo:Hist48.png|frameless|upright=5]]<br />
<br />
Imediatamente é possível notar que, para todas as temperaturas, quanto maior o número de spins, menor é a variância da energia, com as larguras das gaussianas ficando menores. Para a magnetização, para temperaturas menores que a temperatura crítica <math>T_c \approx 2.269</math> e tempos de simulação suficientemente longos, era esperado que tivéssemos duas gaussianas simétricas e de mesma altura, já que os spins estão livres para assumirem valores de +1 e -1. Esse resultado é facilmente observado para <math>T=2.2</math> no sistema 20x20, mas para os sistemas 36x36 e 48x48 as gaussianas possuem alturas diferentes. Esses resultados são indicativos do efeito de redes maiores, onde temos que quanto maior a rede, menor a probabilidade de haver mudança de magnetização do sistema, exigindo tempos de simulação cada vez maiores. Esse efeito pode ser observado ao compararmos as séries temporais da magnetização dos três sistemas:<br />
<br />
[[Arquivo:Séries.png|thumb|upright=5|none|alt=Alt text|Séries temporais da magnetização para os sistemas 20x20 (esquerda), 36x36 (centro) e 48x48 (direita).]]<br />
<br />
Como podemos ver pelas séries temporais, no mesmo período de tempo, o sistema 20x20 troca de estado diversas vezes, enquanto o sistema 36x36 troca apenas uma vez para o estado -1 e o sistema 48x48 não troca nenhuma vez para o estado -1.<br />
Além disso, pelos histogramas, é possível notar que quanto maior a temperatura em relação à temperatura crítica, mais a magnetização do sistema tende a zero, ou seja, as duas gaussianas vão se somando em <math>M=0</math>, resultado da transição de fase do ferromagnetismo para o paramagnetismo.<br />
<br />
[[Arquivo:MeExT.png|thumb|upright=5|none|alt=Alt text|Energia (esquerda) e magnetização (direita) em função da temperatura para diferentes tamanhos de rede. <math>T_c \approx 2.269</math>.]]<br />
<br />
Fazendo um gráfico para a energia em função da temperatura e da magnetização em função da temperatura para cada um dos sistemas, podemos ver que a energia aumenta com o aumento da temperatura, enquanto a magnetização decresce com o aumento da temperatura. Também é possível notar que em ambos os gráficos os resultados para os três tamanhos de sistemas são aproximadamente iguais até a a temperatura aproximar-se da temperatura crítica. Conforme a temperatura se aproxima da transição de fase, os resultados deixam de ser aproximadamente iguais, pois a energia passa a ser maior para redes maiores e voltam a tornarem-se similares após <math>T=2.5</math>. Para a magnetização, ao se aproximar da transição de fase, a magnetização decresce muito mais rapidamente em redes maiores, com os resultados tendendo a zero com o aumento da temperatura.<br />
<br />
<br />
[[Arquivo:SeXxT.png|thumb|upright=5|none|alt=Alt text|Calor específico em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
[[Arquivo:XxT.png|thumb|upright=5|none|alt=Alt text|Suscetibilidade magnética em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
<br />
Analisando os gráficos da suscetibilidade magnética e do calor específico em função da temperatura, podemos perceber que tanto a suscetibilidade magnética quanto o calor específico aumentam quando a temperatura se aproxima da temperatura crítica, com ambos os gráficos possuindo curvas que se tornam mais estreitas próximo de <math>T_c</math>, com os gráficos sendo mais estreitos em redes maiores. Também podemos ver que ambos os gráficos começam a decair um pouco após a temperatura crítica. Isso significa que as variâncias da energia e da magnetização aumentam consideravelmente com a transição de fase do sistema, implicando no aumento da suscetibilidade magnética e do calor específico ao redor da temperatura crítica. É possível perceber que esse efeito é maior em redes maiores, onde há uma grande diferença entre os valores das redes de diferentes tamanhos. No gráfico com a faixa de temperatura maior, podemos ver que para temperaturas menores que T = 2.1 e maiores que T = 2.8 tanto a suscetibilidade magnética quanto o calor específico possuem valores aproximadamente iguais para todos os tamanhos de rede.<br />
<br />
=== Um resultado de redes grandes ===<br />
Algo que pode resultar de simulações com redes grandes é o aparecimento de blocos de spins. Em uma rede suficientemente grande, pode ocorrer o aparecimento de aglomerados (clusters) de spins de determinada magnetização e esses aglomerados podem acabar crescendo até que se formem blocos de spins com uma direção que dão um resultado não tão esperado para o sistema. Um exemplo pode ser visto ao simularmos um sistema <math>100\times100</math> com temperatura <math>T=2.0</math>. Nessas condições, o sistema tende a ficar aproximadamente estável com magnetização aproximadamente +1 ou -1. Contudo, eventualmente pode ocorrer de uma simulação acabar com uma magnetização variando próximo de zero, como é possível ver na série temporal:<br />
<br />
[[Arquivo:Serie100.png|thumb|upright=3|none|alt=Alt text|Série temporal da magnetização. É possível notar que regularmente a série converge rapidamente para um estado com magnetização +1 (note que poderia também convergir para -1), mas há a possibilidade de ficar oscilando próximo de <math>M=0</math>.]]<br />
<br />
Ao olharmos um snapshot do estado de ambos os sistemas conseguimos entender o que está acontecendo:<br />
<br />
[[Arquivo:Snapshots.png|thumb|upright=4|none|alt=Alt text|Snapshot de uma simulação ordinária (esquerda) de um sistema 100x100 a uma temperatura de T=2.0 que convergiu para M = +1 e snapshot de um sistema (direita) onde ocorreu o aparecimento de blocos de spins. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1. Ambas snapshots tiradas após <math>10^4</math> Monte Carlo steps.]]<br />
<br />
No snapshot da simulação ordinária conseguimos ver que a maior parte dos spins estão com magnetização +1, o que está de acordo com a série temporal. Já no outro snapshot, temos a formação de um bloco de spins com magnetização -1 ocupando uma faixa vertical completa do sistema. Esse estado da rede faz com que spins que sejam invertidos dentro de um dos blocos influenciem muito pouco a magnetização do sistema e os spins das fronteiras entre os blocos que forem invertidos acabam apenas sendo invertidos novamente, fazendo com que a magnetização total do sistema oscile, mas se mantenha sempre próxima do mesmo valor. Para ilustrarmos esse efeito, temos uma animação para cada uma das evoluções: sem a formação de blocos e com formação de blocos.<br />
<br />
[[Arquivo:Sembloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema convergindo para magnetização +1 correspondente à série temporal "Simulação ordinária" no gráfico das séries temporais. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
[[Arquivo:Formarbloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema com formação de um bloco vertical de spins com magnetização +1. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
<br />
=== Simulação com campo magnético ===<br />
Para fazermos a simulação do modelo de Ising com campo magnético não nulo e termos resultados interessantes de serem observados, precisamos de duas características: primeiro, precisamos que o campo magnético seja pequeno para que possamos fazer observações, pois para campos magnéticos grandes os spins irão se alinhar rapidamente à direção do campo e, portanto, será pouco provável a mudança de estado do sistema. A segunda característica que precisamos é a de que a rede seja pequena, pois quanto maior a rede, menos provável é o sistema mudar de estado em tempos de simulação viáveis, assim como foi visto nos resultados sem campo magnético. <br />
Utilizando uma rede 20x20, fizemos histogramas para diferentes temperaturas para dois diferentes campos magnéticos:<br />
<br />
[[Arquivo:Histogramas com campo.png|thumb|upright=4|none|alt=Alt text|Histogramas da magnetização de uma rede 20x20 sob efeito de um campo magnético. À esquerda temos um campo magnético atuante <math>H = -0.005</math> e à direita temos um campo magnético <math>H = 0.005</math>.]]<br />
<br />
Podemos observar que para a temperatura inferior a <math>T_c</math>, temos a formação de uma gaussiana muito maior do que a outra, com a maior gaussiana sendo a que tem a magnetização alinhada com a direção do campo magnético exercendo influencia na rede. Ao utilizarmos temperaturas maiores que a temperatura crítica, vemos a magnetização aumentar ao redor de M = 0, até que em T = 3.0 temos apenas uma gaussiana centrada em M = 0, o que está de acordo com a transição de fase do sistema.<br />
Caso não tivéssemos respeitado uma das duas características citadas anteriormente para a simulação de Ising com campo magnético, a maior diferença estaria no sistema com temperatura inferior à temperatura crítica, pois teríamos a formação de apenas uma gaussiana e ela estaria alinhada à direção do campo magnético aplicado ao sistema.<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/><br />
<br />
== Bibliografias ==<br />
<br />
Tânia Tomé, Mário J. de Oliveira, "Stochastic Dynamics and Irreversibility". Universidade de São Paulo, São Paulo, Brasil. 2015.</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=2309Grupo - Ising 2D2018-01-26T19:32:56Z<p>Lucasdoria: /* Bibliografias */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
<br />
== Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de spins de Ising <math>s={s_1,s_2,..s_i,...s_N}</math> que podem assumir valor <math>+1</math> e <math>-1</math>, respectivamente "up" e "down", onde <math>N</math> é a quantidade máxima de spins, ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. A evolução desse sistema de spins é descrito por uma dinâmica que possui as propriedades do processo de Markov de balanceamento detalhado e ergocidade, garantindo ao sistema que sua evolução o leva a estados estacionários de equilibrio descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising 2D tratado neste trabalho possui seus spins organizados em uma rede quadrada bidimensional de tamanho <math>N=L\times L</math> com vizinhança de Von Newmann e condições de contorno periódicas. A energia desse sistema é descrita pela equação <ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math>E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,</math><br />
<br />
onde <math>J</math> é a taxa de transição, <math>H</math> representa o campo magnético externo e <math>\mu</math> o momento magnético associado com cada spin. O primeiro somatório é sobre todas as vizinhanças de spins e o segundo sobre todos os spins. Neste trabalho, particularmente, escolhemos <math>J=1</math> para favorecer menores energias em spins apontados para cima (<math>s=1</math>), <math>\mu = 1 </math> e <math>0\le H</math><br />
<br />
A magnetização desse sistema é dada pela soma de todos os valores de spins:<br />
<br />
<math>M = \sum_{i=1}^N <s_i> </math>.<br />
<br />
Utilizando a abordagem da mecânica estatística, conforme descrito por Gibbs (1902), podemos estimar valores médios de propriedades macroscópicas de um sistema termodinâmico, como energia ou magnetização, a partir de uma amostragem de Boltzmann relativa ao valor da propriedade sobre todos os estados do sistema. Sendo assim, podemos estimar o valor energia do nosso sistema em estado de equilibro termodinâmico como sendo<br />
<br />
<math><E> = \frac{1}{Z}\sum_{\nu}E_{\nu} e^{-E{\nu}/kT}</math><br />
<br />
onde Z é a função partição <math>Z = \sum_{\nu} e^{-E{\nu}/kT} </math>, <math> E_{\nu}</math> é a energia do sistema no estado <math>\nu</math>, <math>T</math> é a temperatura de um reservatório em contato com o sistema e <math>k</math> é a constante de Boltzmann, escolhida nesse trabalho como tendo valor unitário. O mesmo serve para a magnetização:<br />
<br />
<math><M> = \frac{1}{Z}\sum_{\nu}|M_{\nu}| e^{-E{\nu}/kT}</math>, onde <math><M></math> é medido sobre o módulo da <math>M_{\nu}</math>, que é a magnetização no estado <math>\nu</math>.<br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins <math>(L^2)</math>, <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico por spin do sistema, dada por<br />
<br />
<math>c_{spin} = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação.<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
=== Algorítmo de Metrópolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações do sistema, utilizaremos o Algorítmo de Metropolis. O algoritmo funcionará escolhendo repetidamente um novo estado <math>\nu</math> e aceitando ou rejeitando o estado de acordo com uma probabilidade de aceitação <math>A(\mu \rightarrow \nu)</math> de transitar de um estado antigo <math>\mu</math> para o novo estado <math>\nu</math>. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza o método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
<br />
Temos que a condição de balanceamento detalhado é dada por <ref>M. E. J. Newman, G. T. Barkema, "Monte Carlo Methods in Statistical Physics". Oxford University Press Inc., New York, 1999.</ref>:<br />
<br />
<math>\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}, \qquad (3)</math><br />
<br />
onde <math>\Delta E = E_\nu - E_\mu</math>.<br />
<br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\nu \rightarrow \mu)</math>, portanto iremos igualar essa probabilidade a 1. <br />
Para que <math>(3)</math> seja respeitada, iremos definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\<br />
1, \qquad \qquad \text{caso contrario}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicas, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spin da matriz poderá assumir apenas os valores de +1 e -1, representando a magnetização desse spin.<br />
<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que fará com que tenhamos uma configuração aproximadamente aleatória, garantido uma magnetização média do sistema de aproximadamente 0.<br />
<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação <math>(1)</math> e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação <math>(1)</math>, temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k^\mu(J\displaystyle \sum_j s_{j} + H)</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math> e, como os vizinhos de <math>s_k</math> não mudam de estado, <math>s_j^\mu = s_j^\nu</math> para qualquer <math>j</math>.<br />
<br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Antes de começar o registro das medidas de magnetização e energia do sistema é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo para eliminar problemas transientes do sistema e o sistema tender a um estado de equilíbrio. Após esse tempo, inicia-se o registro. Os valores do calor específico por spin e da susceptibilidade magnética são feitos após o fim da dinâmica de Monte Carlo.<br />
<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. Também escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado. A partir disso, podemos utilizar o método de amostragem por importância para medir as médias da energia e da magnetização, além das médias da magnetização quadrada e da energia quadrada:<br />
<br />
<math><E> = \frac{1}{MCS}\sum_{\nu}E_{\nu}</math><br />
<br />
<math><E^2> = \frac{1}{MCS}\sum_{\nu}E_{\nu}^2</math><br />
<br />
<math><M> = \frac{1}{MCS}\sum_{\nu}|M_{\nu}|</math><br />
<br />
<math><M^2> = \frac{1}{MCS}\sum_{\nu}M_{\nu}^2</math><br />
<br />
onde <math>MCS</math> é a quantidade de passos de Monte Carlo dadas.<br />
<br />
== Resultados ==<br />
Para analisarmos os resultados obtidos pelo método de Metropolis, realizamos diversas medidas em sistemas com dimensões <math>20\times20</math>, <math>36\times36</math> e <math>48\times48</math>. Utilizamos para todas as medidas um tempo de equilíbrio de <math>10^5</math> Monte Carlo Steps e fizemos <math>10^6</math> medidas.<br />
<br />
Primeiramente, fizemos medidas para sistemas sem campo magnético, ou seja, <math>H=0</math>. Com isso, montamos histogramas da magnetização por spins e da energia por spins do sistema para cada um dos 3 casos em três diferentes temperaturas:<br />
<br />
[[Arquivo:Hist20.png|frameless|upright=5]]<br />
[[Arquivo:Hist36.png|frameless|upright=5]]<br />
[[Arquivo:Hist48.png|frameless|upright=5]]<br />
<br />
Imediatamente é possível notar que, para todas as temperaturas, quanto maior o número de spins, menor é a variância da energia, com as larguras das gaussianas ficando menores. Para a magnetização, para temperaturas menores que a temperatura crítica <math>T_c \approx 2.269</math> e tempos de simulação suficientemente longos, era esperado que tivéssemos duas gaussianas simétricas e de mesma altura, já que os spins estão livres para assumirem valores de +1 e -1. Esse resultado é facilmente observado para <math>T=2.2</math> no sistema 20x20, mas para os sistemas 36x36 e 48x48 as gaussianas possuem alturas diferentes. Esses resultados são indicativos do efeito de redes maiores, onde temos que quanto maior a rede, menor a probabilidade de haver mudança de magnetização do sistema, exigindo tempos de simulação cada vez maiores. Esse efeito pode ser observado ao compararmos as séries temporais da magnetização dos três sistemas:<br />
<br />
[[Arquivo:Séries.png|thumb|upright=5|none|alt=Alt text|Séries temporais da magnetização para os sistemas 20x20 (esquerda), 36x36 (centro) e 48x48 (direita).]]<br />
<br />
Como podemos ver pelas séries temporais, no mesmo período de tempo, o sistema 20x20 troca de estado diversas vezes, enquanto o sistema 36x36 troca apenas uma vez para o estado -1 e o sistema 48x48 não troca nenhuma vez para o estado -1.<br />
Além disso, pelos histogramas, é possível notar que quanto maior a temperatura em relação à temperatura crítica, mais a magnetização do sistema tende a zero, ou seja, as duas gaussianas vão se somando em <math>M=0</math>, resultado da transição de fase do ferromagnetismo para o paramagnetismo.<br />
<br />
[[Arquivo:MeExT.png|thumb|upright=5|none|alt=Alt text|Energia (esquerda) e magnetização (direita) em função da temperatura para diferentes tamanhos de rede. <math>T_c \approx 2.269</math>.]]<br />
<br />
Fazendo um gráfico para a energia em função da temperatura e da magnetização em função da temperatura para cada um dos sistemas, podemos ver que a energia aumenta com o aumento da temperatura, enquanto a magnetização decresce com o aumento da temperatura. Também é possível notar que em ambos os gráficos os resultados para os três tamanhos de sistemas são aproximadamente iguais até a a temperatura aproximar-se da temperatura crítica. Conforme a temperatura se aproxima da transição de fase, os resultados deixam de ser aproximadamente iguais, pois a energia passa a ser maior para redes maiores e voltam a tornarem-se similares após <math>T=2.5</math>. Para a magnetização, ao se aproximar da transição de fase, a magnetização decresce muito mais rapidamente em redes maiores, com os resultados tendendo a zero com o aumento da temperatura.<br />
<br />
<br />
[[Arquivo:SeXxT.png|thumb|upright=5|none|alt=Alt text|Calor específico em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
[[Arquivo:XxT.png|thumb|upright=5|none|alt=Alt text|Suscetibilidade magnética em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
<br />
Analisando os gráficos da suscetibilidade magnética e do calor específico em função da temperatura, podemos perceber que tanto a suscetibilidade magnética quanto o calor específico aumentam quando a temperatura se aproxima da temperatura crítica, com ambos os gráficos possuindo curvas que se tornam mais estreitas próximo de <math>T_c</math>, com os gráficos sendo mais estreitos em redes maiores. Também podemos ver que ambos os gráficos começam a decair um pouco após a temperatura crítica. Isso significa que as variâncias da energia e da magnetização aumentam consideravelmente com a transição de fase do sistema, implicando no aumento da suscetibilidade magnética e do calor específico ao redor da temperatura crítica. É possível perceber que esse efeito é maior em redes maiores, onde há uma grande diferença entre os valores das redes de diferentes tamanhos. No gráfico com a faixa de temperatura maior, podemos ver que para temperaturas menores que T = 2.1 e maiores que T = 2.8 tanto a suscetibilidade magnética quanto o calor específico possuem valores aproximadamente iguais para todos os tamanhos de rede.<br />
<br />
=== Um resultado de redes grandes ===<br />
Algo que pode resultar de simulações com redes grandes é o aparecimento de blocos de spins. Em uma rede suficientemente grande, pode ocorrer o aparecimento de aglomerados (clusters) de spins de determinada magnetização e esses aglomerados podem acabar crescendo até que se formem blocos de spins com uma direção que dão um resultado não tão esperado para o sistema. Um exemplo pode ser visto ao simularmos um sistema <math>100\times100</math> com temperatura <math>T=2.0</math>. Nessas condições, o sistema tende a ficar aproximadamente estável com magnetização aproximadamente +1 ou -1. Contudo, eventualmente pode ocorrer de uma simulação acabar com uma magnetização variando próximo de zero, como é possível ver na série temporal:<br />
<br />
[[Arquivo:Serie100.png|thumb|upright=3|none|alt=Alt text|Série temporal da magnetização. É possível notar que regularmente a série converge rapidamente para um estado com magnetização +1 (note que poderia também convergir para -1), mas há a possibilidade de ficar oscilando próximo de <math>M=0</math>.]]<br />
<br />
Ao olharmos um snapshot do estado de ambos os sistemas conseguimos entender o que está acontecendo:<br />
<br />
[[Arquivo:Snapshots.png|thumb|upright=4|none|alt=Alt text|Snapshot de uma simulação ordinária (esquerda) de um sistema 100x100 a uma temperatura de T=2.0 que convergiu para M = +1 e snapshot de um sistema (direita) onde ocorreu o aparecimento de blocos de spins. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1. Ambas snapshots tiradas após <math>10^4</math> Monte Carlo steps.]]<br />
<br />
No snapshot da simulação ordinária conseguimos ver que a maior parte dos spins estão com magnetização +1, o que está de acordo com a série temporal. Já no outro snapshot, temos a formação de um bloco de spins com magnetização -1 ocupando uma faixa vertical completa do sistema. Esse estado da rede faz com que spins que sejam invertidos dentro de um dos blocos influenciem muito pouco a magnetização do sistema e os spins das fronteiras entre os blocos que forem invertidos acabam apenas sendo invertidos novamente, fazendo com que a magnetização total do sistema oscile, mas se mantenha sempre próxima do mesmo valor. Para ilustrarmos esse efeito, temos uma animação para cada uma das evoluções: sem a formação de blocos e com formação de blocos.<br />
<br />
[[Arquivo:Sembloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema convergindo para magnetização +1 correspondente à série temporal "Simulação ordinária" no gráfico das séries temporais. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
[[Arquivo:Formarbloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema com formação de um bloco vertical de spins com magnetização +1. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
<br />
=== Simulação com campo magnético ===<br />
Para fazermos a simulação do modelo de Ising com campo magnético não nulo e termos resultados interessantes de serem observados, precisamos de duas características: primeiro, precisamos que o campo magnético seja pequeno para que possamos fazer observações, pois para campos magnéticos grandes os spins irão se alinhar rapidamente à direção do campo e, portanto, será pouco provável a mudança de estado do sistema. A segunda característica que precisamos é a de que a rede seja pequena, pois quanto maior a rede, menos provável é o sistema mudar de estado em tempos de simulação viáveis, assim como foi visto nos resultados sem campo magnético. <br />
Utilizando uma rede 20x20, fizemos histogramas para diferentes temperaturas para dois diferentes campos magnéticos:<br />
<br />
[[Arquivo:Histogramas com campo.png|thumb|upright=4|none|alt=Alt text|Histogramas da magnetização de uma rede 20x20 sob efeito de um campo magnético. À esquerda temos um campo magnético atuante <math>H = -0.005</math> e à direita temos um campo magnético <math>H = 0.005</math>.]]<br />
<br />
Podemos observar que para a temperatura inferior a <math>T_c</math>, temos a formação de uma gaussiana muito maior do que a outra, com a maior gaussiana sendo a que tem a magnetização alinhada com a direção do campo magnético exercendo influencia na rede. Ao utilizarmos temperaturas maiores que a temperatura crítica, vemos a magnetização aumentar ao redor de M = 0, até que em T = 3.0 temos apenas uma gaussiana centrada em M = 0, o que está de acordo com a transição de fase do sistema.<br />
Caso não tivéssemos respeitado uma das duas características citadas anteriormente para a simulação de Ising com campo magnético, a maior diferença estaria no sistema com temperatura inferior à temperatura crítica, pois teríamos a formação de apenas uma gaussiana e ela estaria alinhada à direção do campo magnético aplicado ao sistema.<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/><br />
<br />
== Bibliografias ==<br />
<br />
Tânia Tomé, Mário J. de Oliveira, "Stochastic Dynamics and Irreversibility". Universidade de São Paulo, São Paulo, Brasil. 2015.</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=2308Grupo - Ising 2D2018-01-26T19:32:41Z<p>Lucasdoria: /* Algorítmo de Metrópolis */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
<br />
== Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de spins de Ising <math>s={s_1,s_2,..s_i,...s_N}</math> que podem assumir valor <math>+1</math> e <math>-1</math>, respectivamente "up" e "down", onde <math>N</math> é a quantidade máxima de spins, ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. A evolução desse sistema de spins é descrito por uma dinâmica que possui as propriedades do processo de Markov de balanceamento detalhado e ergocidade, garantindo ao sistema que sua evolução o leva a estados estacionários de equilibrio descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising 2D tratado neste trabalho possui seus spins organizados em uma rede quadrada bidimensional de tamanho <math>N=L\times L</math> com vizinhança de Von Newmann e condições de contorno periódicas. A energia desse sistema é descrita pela equação <ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math>E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,</math><br />
<br />
onde <math>J</math> é a taxa de transição, <math>H</math> representa o campo magnético externo e <math>\mu</math> o momento magnético associado com cada spin. O primeiro somatório é sobre todas as vizinhanças de spins e o segundo sobre todos os spins. Neste trabalho, particularmente, escolhemos <math>J=1</math> para favorecer menores energias em spins apontados para cima (<math>s=1</math>), <math>\mu = 1 </math> e <math>0\le H</math><br />
<br />
A magnetização desse sistema é dada pela soma de todos os valores de spins:<br />
<br />
<math>M = \sum_{i=1}^N <s_i> </math>.<br />
<br />
Utilizando a abordagem da mecânica estatística, conforme descrito por Gibbs (1902), podemos estimar valores médios de propriedades macroscópicas de um sistema termodinâmico, como energia ou magnetização, a partir de uma amostragem de Boltzmann relativa ao valor da propriedade sobre todos os estados do sistema. Sendo assim, podemos estimar o valor energia do nosso sistema em estado de equilibro termodinâmico como sendo<br />
<br />
<math><E> = \frac{1}{Z}\sum_{\nu}E_{\nu} e^{-E{\nu}/kT}</math><br />
<br />
onde Z é a função partição <math>Z = \sum_{\nu} e^{-E{\nu}/kT} </math>, <math> E_{\nu}</math> é a energia do sistema no estado <math>\nu</math>, <math>T</math> é a temperatura de um reservatório em contato com o sistema e <math>k</math> é a constante de Boltzmann, escolhida nesse trabalho como tendo valor unitário. O mesmo serve para a magnetização:<br />
<br />
<math><M> = \frac{1}{Z}\sum_{\nu}|M_{\nu}| e^{-E{\nu}/kT}</math>, onde <math><M></math> é medido sobre o módulo da <math>M_{\nu}</math>, que é a magnetização no estado <math>\nu</math>.<br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins <math>(L^2)</math>, <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico por spin do sistema, dada por<br />
<br />
<math>c_{spin} = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação.<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
=== Algorítmo de Metrópolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações do sistema, utilizaremos o Algorítmo de Metropolis. O algoritmo funcionará escolhendo repetidamente um novo estado <math>\nu</math> e aceitando ou rejeitando o estado de acordo com uma probabilidade de aceitação <math>A(\mu \rightarrow \nu)</math> de transitar de um estado antigo <math>\mu</math> para o novo estado <math>\nu</math>. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza o método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
<br />
Temos que a condição de balanceamento detalhado é dada por <ref>M. E. J. Newman, G. T. Barkema, "Monte Carlo Methods in Statistical Physics". Oxford University Press Inc., New York, 1999.</ref>:<br />
<br />
<math>\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}, \qquad (3)</math><br />
<br />
onde <math>\Delta E = E_\nu - E_\mu</math>.<br />
<br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\nu \rightarrow \mu)</math>, portanto iremos igualar essa probabilidade a 1. <br />
Para que <math>(3)</math> seja respeitada, iremos definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\<br />
1, \qquad \qquad \text{caso contrario}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicas, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spin da matriz poderá assumir apenas os valores de +1 e -1, representando a magnetização desse spin.<br />
<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que fará com que tenhamos uma configuração aproximadamente aleatória, garantido uma magnetização média do sistema de aproximadamente 0.<br />
<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação <math>(1)</math> e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação <math>(1)</math>, temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k^\mu(J\displaystyle \sum_j s_{j} + H)</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math> e, como os vizinhos de <math>s_k</math> não mudam de estado, <math>s_j^\mu = s_j^\nu</math> para qualquer <math>j</math>.<br />
<br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Antes de começar o registro das medidas de magnetização e energia do sistema é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo para eliminar problemas transientes do sistema e o sistema tender a um estado de equilíbrio. Após esse tempo, inicia-se o registro. Os valores do calor específico por spin e da susceptibilidade magnética são feitos após o fim da dinâmica de Monte Carlo.<br />
<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. Também escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado. A partir disso, podemos utilizar o método de amostragem por importância para medir as médias da energia e da magnetização, além das médias da magnetização quadrada e da energia quadrada:<br />
<br />
<math><E> = \frac{1}{MCS}\sum_{\nu}E_{\nu}</math><br />
<br />
<math><E^2> = \frac{1}{MCS}\sum_{\nu}E_{\nu}^2</math><br />
<br />
<math><M> = \frac{1}{MCS}\sum_{\nu}|M_{\nu}|</math><br />
<br />
<math><M^2> = \frac{1}{MCS}\sum_{\nu}M_{\nu}^2</math><br />
<br />
onde <math>MCS</math> é a quantidade de passos de Monte Carlo dadas.<br />
<br />
== Resultados ==<br />
Para analisarmos os resultados obtidos pelo método de Metropolis, realizamos diversas medidas em sistemas com dimensões <math>20\times20</math>, <math>36\times36</math> e <math>48\times48</math>. Utilizamos para todas as medidas um tempo de equilíbrio de <math>10^5</math> Monte Carlo Steps e fizemos <math>10^6</math> medidas.<br />
<br />
Primeiramente, fizemos medidas para sistemas sem campo magnético, ou seja, <math>H=0</math>. Com isso, montamos histogramas da magnetização por spins e da energia por spins do sistema para cada um dos 3 casos em três diferentes temperaturas:<br />
<br />
[[Arquivo:Hist20.png|frameless|upright=5]]<br />
[[Arquivo:Hist36.png|frameless|upright=5]]<br />
[[Arquivo:Hist48.png|frameless|upright=5]]<br />
<br />
Imediatamente é possível notar que, para todas as temperaturas, quanto maior o número de spins, menor é a variância da energia, com as larguras das gaussianas ficando menores. Para a magnetização, para temperaturas menores que a temperatura crítica <math>T_c \approx 2.269</math> e tempos de simulação suficientemente longos, era esperado que tivéssemos duas gaussianas simétricas e de mesma altura, já que os spins estão livres para assumirem valores de +1 e -1. Esse resultado é facilmente observado para <math>T=2.2</math> no sistema 20x20, mas para os sistemas 36x36 e 48x48 as gaussianas possuem alturas diferentes. Esses resultados são indicativos do efeito de redes maiores, onde temos que quanto maior a rede, menor a probabilidade de haver mudança de magnetização do sistema, exigindo tempos de simulação cada vez maiores. Esse efeito pode ser observado ao compararmos as séries temporais da magnetização dos três sistemas:<br />
<br />
[[Arquivo:Séries.png|thumb|upright=5|none|alt=Alt text|Séries temporais da magnetização para os sistemas 20x20 (esquerda), 36x36 (centro) e 48x48 (direita).]]<br />
<br />
Como podemos ver pelas séries temporais, no mesmo período de tempo, o sistema 20x20 troca de estado diversas vezes, enquanto o sistema 36x36 troca apenas uma vez para o estado -1 e o sistema 48x48 não troca nenhuma vez para o estado -1.<br />
Além disso, pelos histogramas, é possível notar que quanto maior a temperatura em relação à temperatura crítica, mais a magnetização do sistema tende a zero, ou seja, as duas gaussianas vão se somando em <math>M=0</math>, resultado da transição de fase do ferromagnetismo para o paramagnetismo.<br />
<br />
[[Arquivo:MeExT.png|thumb|upright=5|none|alt=Alt text|Energia (esquerda) e magnetização (direita) em função da temperatura para diferentes tamanhos de rede. <math>T_c \approx 2.269</math>.]]<br />
<br />
Fazendo um gráfico para a energia em função da temperatura e da magnetização em função da temperatura para cada um dos sistemas, podemos ver que a energia aumenta com o aumento da temperatura, enquanto a magnetização decresce com o aumento da temperatura. Também é possível notar que em ambos os gráficos os resultados para os três tamanhos de sistemas são aproximadamente iguais até a a temperatura aproximar-se da temperatura crítica. Conforme a temperatura se aproxima da transição de fase, os resultados deixam de ser aproximadamente iguais, pois a energia passa a ser maior para redes maiores e voltam a tornarem-se similares após <math>T=2.5</math>. Para a magnetização, ao se aproximar da transição de fase, a magnetização decresce muito mais rapidamente em redes maiores, com os resultados tendendo a zero com o aumento da temperatura.<br />
<br />
<br />
[[Arquivo:SeXxT.png|thumb|upright=5|none|alt=Alt text|Calor específico em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
[[Arquivo:XxT.png|thumb|upright=5|none|alt=Alt text|Suscetibilidade magnética em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
<br />
Analisando os gráficos da suscetibilidade magnética e do calor específico em função da temperatura, podemos perceber que tanto a suscetibilidade magnética quanto o calor específico aumentam quando a temperatura se aproxima da temperatura crítica, com ambos os gráficos possuindo curvas que se tornam mais estreitas próximo de <math>T_c</math>, com os gráficos sendo mais estreitos em redes maiores. Também podemos ver que ambos os gráficos começam a decair um pouco após a temperatura crítica. Isso significa que as variâncias da energia e da magnetização aumentam consideravelmente com a transição de fase do sistema, implicando no aumento da suscetibilidade magnética e do calor específico ao redor da temperatura crítica. É possível perceber que esse efeito é maior em redes maiores, onde há uma grande diferença entre os valores das redes de diferentes tamanhos. No gráfico com a faixa de temperatura maior, podemos ver que para temperaturas menores que T = 2.1 e maiores que T = 2.8 tanto a suscetibilidade magnética quanto o calor específico possuem valores aproximadamente iguais para todos os tamanhos de rede.<br />
<br />
=== Um resultado de redes grandes ===<br />
Algo que pode resultar de simulações com redes grandes é o aparecimento de blocos de spins. Em uma rede suficientemente grande, pode ocorrer o aparecimento de aglomerados (clusters) de spins de determinada magnetização e esses aglomerados podem acabar crescendo até que se formem blocos de spins com uma direção que dão um resultado não tão esperado para o sistema. Um exemplo pode ser visto ao simularmos um sistema <math>100\times100</math> com temperatura <math>T=2.0</math>. Nessas condições, o sistema tende a ficar aproximadamente estável com magnetização aproximadamente +1 ou -1. Contudo, eventualmente pode ocorrer de uma simulação acabar com uma magnetização variando próximo de zero, como é possível ver na série temporal:<br />
<br />
[[Arquivo:Serie100.png|thumb|upright=3|none|alt=Alt text|Série temporal da magnetização. É possível notar que regularmente a série converge rapidamente para um estado com magnetização +1 (note que poderia também convergir para -1), mas há a possibilidade de ficar oscilando próximo de <math>M=0</math>.]]<br />
<br />
Ao olharmos um snapshot do estado de ambos os sistemas conseguimos entender o que está acontecendo:<br />
<br />
[[Arquivo:Snapshots.png|thumb|upright=4|none|alt=Alt text|Snapshot de uma simulação ordinária (esquerda) de um sistema 100x100 a uma temperatura de T=2.0 que convergiu para M = +1 e snapshot de um sistema (direita) onde ocorreu o aparecimento de blocos de spins. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1. Ambas snapshots tiradas após <math>10^4</math> Monte Carlo steps.]]<br />
<br />
No snapshot da simulação ordinária conseguimos ver que a maior parte dos spins estão com magnetização +1, o que está de acordo com a série temporal. Já no outro snapshot, temos a formação de um bloco de spins com magnetização -1 ocupando uma faixa vertical completa do sistema. Esse estado da rede faz com que spins que sejam invertidos dentro de um dos blocos influenciem muito pouco a magnetização do sistema e os spins das fronteiras entre os blocos que forem invertidos acabam apenas sendo invertidos novamente, fazendo com que a magnetização total do sistema oscile, mas se mantenha sempre próxima do mesmo valor. Para ilustrarmos esse efeito, temos uma animação para cada uma das evoluções: sem a formação de blocos e com formação de blocos.<br />
<br />
[[Arquivo:Sembloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema convergindo para magnetização +1 correspondente à série temporal "Simulação ordinária" no gráfico das séries temporais. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
[[Arquivo:Formarbloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema com formação de um bloco vertical de spins com magnetização +1. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
<br />
=== Simulação com campo magnético ===<br />
Para fazermos a simulação do modelo de Ising com campo magnético não nulo e termos resultados interessantes de serem observados, precisamos de duas características: primeiro, precisamos que o campo magnético seja pequeno para que possamos fazer observações, pois para campos magnéticos grandes os spins irão se alinhar rapidamente à direção do campo e, portanto, será pouco provável a mudança de estado do sistema. A segunda característica que precisamos é a de que a rede seja pequena, pois quanto maior a rede, menos provável é o sistema mudar de estado em tempos de simulação viáveis, assim como foi visto nos resultados sem campo magnético. <br />
Utilizando uma rede 20x20, fizemos histogramas para diferentes temperaturas para dois diferentes campos magnéticos:<br />
<br />
[[Arquivo:Histogramas com campo.png|thumb|upright=4|none|alt=Alt text|Histogramas da magnetização de uma rede 20x20 sob efeito de um campo magnético. À esquerda temos um campo magnético atuante <math>H = -0.005</math> e à direita temos um campo magnético <math>H = 0.005</math>.]]<br />
<br />
Podemos observar que para a temperatura inferior a <math>T_c</math>, temos a formação de uma gaussiana muito maior do que a outra, com a maior gaussiana sendo a que tem a magnetização alinhada com a direção do campo magnético exercendo influencia na rede. Ao utilizarmos temperaturas maiores que a temperatura crítica, vemos a magnetização aumentar ao redor de M = 0, até que em T = 3.0 temos apenas uma gaussiana centrada em M = 0, o que está de acordo com a transição de fase do sistema.<br />
Caso não tivéssemos respeitado uma das duas características citadas anteriormente para a simulação de Ising com campo magnético, a maior diferença estaria no sistema com temperatura inferior à temperatura crítica, pois teríamos a formação de apenas uma gaussiana e ela estaria alinhada à direção do campo magnético aplicado ao sistema.<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/><br />
<br />
== Bibliografias ==<br />
M. E. J. Newman, G. T. Barkema, "Monte Carlo Methods in Statistical Physics". Oxford University Press Inc., New York, 1999.<br />
<br />
Tânia Tomé, Mário J. de Oliveira, "Stochastic Dynamics and Irreversibility". Universidade de São Paulo, São Paulo, Brasil. 2015.</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo3_-_Ondas2&diff=2307Grupo3 - Ondas22018-01-26T19:30:07Z<p>Lucasdoria: /* Scripts para a simulação dos resultados apresentados: */</p>
<hr />
<div>'''Grupo: Lucas Dória, Caetano Pires e Ânderson Rosa.'''<br />
<br />
O objetivo deste trabalho é analisar três métodos diferentes de integração numérica para resolução de equações diferenciais parciais (EDP's). A equação aqui abordada é a equação da onda, a qual consiste em uma EDP hiperbólica de segunda ordem. Uma pequena noção dos métodos numéricos é dada, após a explicação do problema físico abordado. Os dados encontrados são comentados e comparados com os resultados esperados. Simulações também foram feitas para melhor visualização dos fenômenos. Por último, foi feita uma análise de erros e estabilidade para cada um dos métodos, assim como algumas conclusões foram inferidas.<br />
<br />
== Introdução ==<br />
<br />
Equações diferenciais parciais hiperbólicas geralmente podem ser formuladas a partir de teoremas de conservação. Um exemplo é a equação do tipo:<br />
<br />
<math>\frac{\partial \vec{U}}{\partial t} + \nabla \cdot \vec{F}(U) = \vec{S}(U),</math><br />
<br />
onde <math>\vec{U}</math> é o vetor de densidades da quantidade conservada, i.e., <math>\vec{U} = (U_1,...,U_n),</math> <math>\vec{F}</math> é o fluxo de densidade e <math>\vec{S}</math> é um termo genérico representando fontes e/ou sumidouros.<br />
<br />
Uma classe especial de equações hiperbólicas são as chamadas equações de adveção, na qual a derivada temporal da quantidade conservada <math>\vec{U}(\vec{x},t)</math> é proporcional à sua derivada espacial. Nesses casos, <math>\vec{F}(U)</math> é diagonal e dada por:<br />
<br />
<math>\vec{F}(U) = v I \cdot \vec{U},</math><br />
<br />
onde <math>I</math> é a matriz identidade.<br />
<br />
Considerando apenas uma dimensão e com <math>\vec{U} \equiv u</math>, temos a equação de adveção:<br />
<br />
<math>\frac{\partial u}{\partial t} + v \frac{\partial u}{\partial x} = 0,</math><br />
<br />
onde <math>v</math> é a velocidade de propagação do pulso gerado. A equação admite uma solução analítica da forma <math>u = f(x - vt),</math> representando um pulso se movendo na direção positiva de <math>x.</math><br />
<br />
A equação da onda em uma dimensão é uma EDP hiperbólica de segunda ordem dada por<br />
<br />
<math><br />
\frac{\partial^2 u}{\partial t^2} = v^2 \frac{\partial^2 u}{\partial x^2},<br />
</math><br />
<br />
onde <math>u = u(x,t)</math> é o deslocamento transversal à direção de propagação de uma posição <math>x</math> no instante <math>t</math> e admite duas soluções, representadas por pulsos, na forma <math>f_1(x + vt)</math> e <math>f_2(x - vt).</math><br />
<br />
Assumindo que <math>v</math> não depende da posição na equação da onda, nos restringimos a problemas lineares. Além disso, se escrevermos<br />
<br />
<math><br />
k = v \frac{\partial u}{\partial x},\qquad s = \frac{\partial u}{\partial t},<br />
</math><br />
<br />
então a equação da onda pode ser escrita como um sistema de três equações diferenciais de primeira ordem:<br />
<br />
<math><br />
\begin{cases}\displaystyle \frac{\partial k}{\partial t} = v\frac{\partial s}{\partial x} \\\\<br />
\displaystyle \frac{\partial s}{\partial t} = v\frac{\partial k}{\partial x} \\\\<br />
\displaystyle \frac{\partial u}{\partial t} = s <br />
\end{cases}<br />
</math><br />
<br />
Em notação vetorial, o sistema acima pode ser reescrito na forma conservativa como: <math>\frac{\partial U}{\partial t}+ \frac{\partial F(U)}{\partial x} = 0, </math><br />
<br />
onde <math>U = \begin{pmatrix}k\\s\end{pmatrix},\quad \textrm{e}\quad F(U) =\begin{pmatrix}0 & -v\\-v & 0\end{pmatrix}</math><br />
<br />
==Condição CFL==<br />
<br />
Uma condição necessária mas nem sempre suficiente para a convergência de equações diferenciais parciais resolvidas a partir de métodos de diferença, conhecida como condição CFL <ref>Luciano Rezzolla, "Numerical Methods for the Solution of Partial Differential Equations". Albert Einstein Institute, Max-Planck-Institute for Gravitational Physics, Potsdam, Germany.</ref>, é formulada a partir do termo de “domínio de dependência”.<br />
<br />
Considerando, por exemplo, a equação da advecção [https://en.wikipedia.org/wiki/Advection] em uma aproximação a partir de métodos de diferença em sua forma explícita <br />
<br />
<math>\frac{U^{n+1}_i-U^n_i}{\Delta t} + v\frac{U^n_{i}-U^n_{i-1}}{\Delta x}=0,</math><br />
<br />
diz-se que o valor de <math>U^{n+1}_i</math> depende dos valores anteriores de <math>U^n_i</math> e <math>U^n_{i-1}</math>, e esses dois pontos dependem, novamente, de outros dois pontos em tempos anteriores. Todos esses pontos dependentes formam o domínio de dependência do valor <math>U^{n+1}_i</math>, representado abaixo (botar figura do domínio de dependência).<br />
<br />
A condição CFL enuncia que a condição mínima para que haja estabilidade em métodos de diferenças o domínio de dependência da equação diferencia parcial, dado por sua equação característica, deve estar situado dentro do domínio de dependência do esquema numérico.<br />
<br />
A partir dessa condição, define-se o número CFL como <br />
<br />
<math>r\equiv v\frac{\Delta t}{\Delta x}</math><br />
<br />
onde <math>\Delta t</math> é um passo na malha temporal e <math>\Delta x</math> é um passo na malha espacial. Para casos unidimensionais, como o que será tratado aqui, a condição CFL é satisfeita se r<br />
<br />
<math> \left|r\right| \le 1 </math> <br />
<br />
Um uso da condição CFL é determinar o tamanho do passo temporal, sabendo-se <math>v</math> e <math>\Delta x</math>:<br />
<br />
<math>\Delta t = c_{cfl}\frac{\Delta x}{\left|v\right|}</math><br />
<br />
onde o fator <math>c_{cfl}<1</math>.<br />
<br />
O número CFL pode ser entendido como um fluxo numérico advectivo adimensionalisado pelas malhas espacial e temporal do problema. De um ponto de vista matemático, ele garante que o domínio numérico de dependência é sempre maior que o domínio físico. De um ponto de vista físico, é garantido que a velocidade de propagação de qualquer perturbação, como uma onda, seja menor ou ao menos igual que a velocidade de propagação numérica, fazendo com que a distância propagada pela perturbação não seja maior do que a divisão da malha espacial:<br />
<br />
<math>\left|v\right|\Delta t \le \Delta x </math><br />
<br />
== O Problema Físico ==<br />
<br />
===O Modelo de Corda Ideal===<br />
<br />
Para uma primeira abordagem da equação da onda, consideramos uma corda com suas extremidades fixas. Podemos dividir o comprimento <math>L</math> dessa corda em <math>K</math> intervalos de comprimentos iguais, dessa forma <math>\Delta x = \frac{L}{K}</math>. Cada intervalo é discretizado, representado por <math>x_i</math>, <math>i=0,1,...,K</math>. Também podemos dividir o tempo em intervalos iguais <math>\Delta t</math> e denotá-los como <math>t_n</math>, <math>n =0,1,...,t_{max}</math>. Abaixo temos uma esquematização das informações que precisamos para cada ponto da corda:<br />
<br />
[[Arquivo:grid.png]]<br />
<br />
Tendo feita a discretização das variáveis, podemos aproximar a equação da onda por diferenciação finita, utilizando derivadas centradas da seguinte forma:<br />
<br />
<math>\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}</math><br />
<br />
<math>\frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}</math><br />
<br />
onde <math>U_i^n</math> representa o valor discretizado de <math>u(x_i,t_n)</math>.<br />
<br />
Assim, chegamos em uma equação discretizada:<br />
<br />
<math>\frac{U_i^{n+1}-2U_i^n+U_i^{n-1}}{(\Delta t)^2} = v^2 \frac{U_{i+1}^n-2U_i^n+U_{i-1}^n}{(\Delta x)^2}</math>. <br />
<br />
Sabendo que essa discretização da equação da onda pode ser verificada como sendo o método Leapfrog (ver seção do método de Leapfrog [https://fiscomp.if.ufrgs.br/index.php/Grupo3_-_Ondas2#O_M.C3.A9todo_de_Leapfrog método de Leapfrog]), podemos resolver a equação para <math>U_i^{n+1}</math> para sabermos o deslocamento vertical de uma partição da corda no momento de tempo seguinte, assim obtendo<br />
<br />
<math>U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}</math>,<br />
<br />
onde <math>r = v \frac{\Delta t}{\Delta x}.</math><br />
<br />
===Um Quadro Mais Realístico - O Modelo de Corda Rígida ===<br />
<br />
Para nos aproximarmos de um modelo mais real, podemos adicionar um termo à equação original da onda que corresponde ao efeito de fricção em uma corda. A equação da onda mais geral com efeito de fricção pode ser escrita como: <ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math>\frac{\partial^2 u}{\partial t^2} = v^2 \left( \frac{\partial^2 u}{\partial x^2} - \epsilon L^2 \frac{\partial^4 u}{\partial x^4} \right),</math><br />
<br />
onde <math>v</math> é a velocidade transversal de propagação do pulso na corda, dada pela relação <math>v = \sqrt[]{\frac{T}{\rho}}</math> (sendo <math>T</math> a tensão na corda e <math>\rho</math> a densidade linear da mesma), <math>\epsilon</math> é um parâmetro adimensional de fricção que representa a rigidez da corda e <math>L</math> o comprimento da corda.<br />
<br />
O parâmetro <math>\epsilon</math> é dado por<br />
<br />
<math>\epsilon = \kappa² \frac{E S}{T L^2}</math>,<br />
<br />
onde <math>\kappa</math> é o [https://en.wikipedia.org/wiki/Radius_of_gyration raio de giro] da corda, <math>E</math> é o [https://en.wikipedia.org/wiki/Young%27s_modulus Módulo de Young] e <math>S</math> a área da secção da corda.<br />
<br />
Discretizamos a equação da seguinte maneira:<br />
<br />
<math><br />
\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}</math><br />
<br />
<math> \frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}</math><br />
<br />
<math> \frac{\partial^4u}{\partial x^4}=\frac{U^n_{i+2}-4U^n_{i+1}+6U^n_i-4U^n_{i-1}+U^n_{i-2}}{\Delta x^4}<br />
</math><br />
<br />
e resolvemos para <math>U_i^{n+1}</math>, obtendo:<br />
<br />
<math> U_i^{n+1}=[2-2r^2-6\epsilon r^2K^2]U_i^n - U_i^{n-1} +r^2[1+4\epsilon K^2][U_{i+1}^n+U_{i-1}^n]-\epsilon r^2K^2[U_{i+2}^n + U_{i-2}^n].</math><br />
<br />
O fato de essa discretização depender do deslocamento da corda em posições <math>i-2</math> e <math>i+2</math> implica em precisarmos simular "pontos fantasmas" quando integramos os extremos das cordas. Para fazermos isso, podemos ou utilizar a aproximação <math>U_{-1}^n = -U_{+1}^n</math> ou podemos considerar esses "pontos fantasmas" como pontos presos e, portanto, sempre iguais a zero.<br />
<br />
== Os Métodos Utilizados ==<br />
<br />
Foi realizada uma abordagem ao problema da corda real a partir de três métodos diferentes de integração numérica.<br />
<br />
O método mais básico é chamado de FTCS (Forward-Time-Centered-Space) e consiste em duas expansões de Taylor ao redor do ponto <math>x_j</math>:<br />
<br />
<math>u(x_i + \Delta x,t^n) = u(x_i,t^n) + \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3),</math><br />
<br />
<math>u(x_i - \Delta x,t^n) = u(x_i,t^n) - \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3).</math><br />
<br />
Subtraindo as duas expressões, encontramos a expressão<br />
<br />
<math>\left.\frac{\partial u}{\partial x}\right|_i^n = \frac{u^n_{i+1} - u^n_{i-1}}{2 \Delta x} + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
A qual podemos substituir na equação da onda, juntamente com a discretização da derivada parcial temporal. Temos então que, para um sistema linear de equações hiperbólicas:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta t^2, \Delta x^2 \Delta t)</math><br />
<br />
Visto que essa última notação é mais genérica, ela será utilizada para a explicação dos métodos posteriores.<br />
<br />
=== O Método de Lax-Friedrichs ===<br />
<br />
O método de Lax-Friedrichs consiste em substituir o termo <math>\textbf{U}^n_i</math> com sua respectiva média espacial, i.e., <math>U^n_i = (U^n_{i+1} + U^n_{i-1})/2</math>. Logo, temos a seguinte equação de recorrência:<br />
<br />
<math>\textbf{U}^{n+1}_i = \frac{1}{2}(\textbf{U}^n_{i+1} + \textbf{U}^n_{i-1}) - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)</math><br />
<br />
=== O Método de Leapfrog ===<br />
<br />
Tanto o método FTCS quanto o método de Lax-Friedrichs são métodos de primeira ordem para a derivada temporal. Nessas circunstâncias, <math>v \Delta t</math> deve ser significantemente menor do que <math>\Delta x</math>, muito abaixo do limite imposto pela condição de Courant.<br />
<br />
Uma nova expressão para a derivada temporal, com precisão de segunda ordem é dada por<br />
<br />
<math>\left.\frac{\partial u}{\partial t}\right|^n_i = \frac{U^{n+1}_i - U^{n-1}_i}{2 \Delta t} + \mathcal{O}(\Delta t^2).</math><br />
<br />
Substituindo a nova expressão acima no método de FTCS discutido anteriormente, encontramos o método de Leapfrog:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^{n-1}_i - \frac{\Delta t}{\Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2).</math><br />
<br />
Como o método de Leapfrog será o mais aplicado na resolução do problema da onda, é interessante um aprofundamento maior do método. Podemos adaptar o método de Leapfrog para o sistema de equações definido para a equação da onda ao fazermos a discretização ao redor de um ponto qualquer <math>i</math> no instante de tempo <math>n</math>:<br />
<br />
<math><br />
k_{i+\frac{1}{2}}^n \equiv v \left.\frac{\partial U}{\partial x}\right|_{i+\frac{1}{2}}^{n} = v \frac{U_{i+1}^n-U_i^n}{\Delta x} + \mathcal{O}(\Delta x) \qquad (1)<br />
</math><br />
<br />
<math><br />
s_{i}^{n+\frac{1}{2}} \equiv \left.\frac{\partial U}{\partial t}\right|_{i}^{n+\frac{1}{2}} = \frac{U_{i}^{n+1}-U_i^n}{\Delta t} + \mathcal{O}(\Delta t) \qquad (2)<br />
</math><br />
<br />
Com essas discretizações, podemos utilizar as equações (1) e (2) para resolvermos para <math>k^{n+1}_{i+\frac{1}{2}}</math> apenas em termos de <math>s</math>, <math>k</math> e <math>r</math>. Fazendo as substituições dessas duas equações uma na outra (ver passo a passo: [[Dedução Leapfrog]]), obtemos:<br />
<br />
<math>\frac{\Delta x}{v}k^{n+1}_{i+\frac{1}{2}} = s^{n+\frac{1}{2}}_{i+1}\Delta t + \frac{\Delta x}{v}k^{n}_{i+\frac{1}{2}} + U^n_i - (s^{n+\frac{1}{2}}_i \Delta t + U^n_i)</math><br />
<br />
Dessa equação, chegamos a<br />
<br />
<math><br />
k_{i+\frac{1}{2}}^{n+1} = k_{i+\frac{1}{2}}^n+r(s_{i+1}^{n+\frac{1}{2}}-s_{i}^{n+\frac{1}{2}}) \qquad (3)<br />
</math><br />
<br />
Utilizando o mesmo raciocínio, podemos também resolver para <math>s^{n+\frac{1}{2}}_i</math> e obter<br />
<br />
<math><br />
s_i^{n+\frac{1}{2}} = s_{i}^{n-\frac{1}{2}}+r(k_{i+\frac{1}{2}}^{n}-k_{i-\frac{1}{2}}^{n}) \qquad (4)<br />
</math><br />
<br />
Com essas duas equações, podemos fazer uma integração utilizando o método de Euler para obter <math>U_i^{n+1}</math>, ou seja, o deslocamento de um determinado ponto <math>i</math> da corda no próximo instante de tempo:<br />
<br />
<math>U_i^{n+1} = U_i^n + \frac{\Delta t}{2}s_i^{n+\frac{1}{2}}+\mathcal{O}(\Delta x^2).</math><br />
<br />
Contudo, podemos fazer uma simples substituição das equações <math>(1)</math> e <math>(2)</math> nas equações <math>(3)</math> e <math>(4)</math> e, assim, obtemos que a representação de Leapfrog da equação da onda é dada pela discretização de segunda ordem da própria equação da onda, com <math>\mathcal{O}(\Delta t^2, \Delta x^2)</math> (ver passo a passo da comparação [[Discretização x Leapfrog]]. Isso nos dá uma solução de "um passo", onde só precisamos efetuar o cálculo da equação discretizada pelo método da derivação finita, ou seja, para o caso da corda ideal, a equação<br />
<br />
<math>U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}.</math><br />
<br />
=== O Método de Lax-Wendroff ===<br />
<br />
O método de Lax-Wendroff é a extensão do método de Lax-Friedrichs de segunda ordem. Calculamos o vetor <math>U</math> a partir de um passo médio de Lax-Friedrichs:<br />
<br />
<math>\textbf{U}^{n+\frac{1}{2}}_{i + \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i+1} + \textbf{U}^n_i] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_i] + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
<math>\textbf{U}^{n+\frac{1}{2}}_{i - \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i} + \textbf{U}^n_{i-1}] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
E encontramos os fluxos <math>\textbf{F}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}</math> a partir dos valores de <math>\textbf{U}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}.</math><br />
<br />
Logo, com um meio passo de Leapfrog, temos a expressão final do método:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{\Delta x} \left[\textbf{F}^{n + \frac{1}{2}}_{i + \frac{1}{2}} - \textbf{F}^{n + \frac{1}{2}}_{i - \frac{1}{2}}\right] + \mathcal{O}(\Delta x^2)</math><br />
<br />
== Análise e Discussão dos Resultados ==<br />
Escolhemos para simular quatro diferentes cordas: as cordas C2, C4 e C7, que são cordas dó de um piano <ref>Antoine Chaign, Anders Askenfelt, "Numerical simulations of piano strings. I. A physical model for a struck string using finite difference methods". Signal Department, Paris, France. Department of Speech Communication and Music Acoustics; Royal Institute of Technology, Stockholm, Sweden.</ref> e uma corda qualquer baseada nos dados encontrados no livro "''Computational Physics''" <ref name=giordano/>. Os dados das cordas C2, C4 e C7 estão na tabela abaixo, onde iremos definir para cada corda o comprimento, a massa, a tensão aplicada elas, o número de divisões existentes, amostragem de sinal (que é um parâmetro obtido experimentalmente)e o parâmetro de fricção.<br />
<br />
{| class="wikitable"<br />
|-<br />
!<br />
! '''C2'''<br />
! '''C4'''<br />
! '''C7'''<br />
|-<br />
| '''Comprimento''' (<math>m</math>)<br />
| <math>1.90</math><br />
| <math>0.62</math><br />
| <math>0.09</math><br />
|-<br />
| '''Massa'''(<math>g</math>)<br />
| <math>35</math><br />
| <math>3.93 </math><br />
| <math>0.467</math><br />
|-<br />
| '''Tensão''' (<math>N</math>)<br />
| <math>750</math><br />
| <math>670</math><br />
| <math>750</math><br />
|-<br />
| '''Divisões'''<br />
| <math>100</math><br />
| <math>50</math><br />
| <math>16</math><br />
|-<br />
| '''Amostragem de sinal'''<br />
| <math>16\times10^{3}</math><br />
| <math>32\times10^{3}</math><br />
| <math>96\times10^{3}</math><br />
|-<br />
|'''Parâmetro de fricção'''<br />
| <math>7.5\times10^{-6}</math><br />
| <math>3.82\times10^{-5}</math><br />
| <math>8.67\times10^{-4}</math><br />
|}<br />
<br />
Desses dados, temos que a densidade linear de massa das cordas é dada por <br />
<br />
<math>\rho = \frac{M}{L},</math><br />
<br />
onde <math>M</math> é a massa e <math>L</math> o comprimento da corda, <br />
<br />
<math>v = \sqrt{\frac{T}{\rho}},</math><br />
<br />
onde <math>T</math> é a tensão na corda, <br />
<br />
<math>\Delta x = \frac{L}{K},</math><br />
<br />
<math>\Delta t = \frac{1}{f_e},</math><br />
<br />
e <br />
<br />
<math>r = v\frac{\Delta t}{\Delta x}.</math><br />
<br />
Os dados obtidos a partir de todas essas equações são calculados pelo programa com base dos dados da tabela.<br />
<br />
Para a simulação baseada nos dados retirados do livro ''"Computational Physics"''<ref name=giordano/>, utilizamos uma corda com 2 metros de comprimento, com velocidade de propagação transversal da onda sendo 300<math>m/s</math>, <math>\Delta x</math> de 0.01<math>m</math>, <math>\Delta t = \frac{\Delta x }{4v}</math> e parâmetro de fricção de <math>7.5\times10^{-6}</math>.<br />
<br />
Supondo uma corda inicialmente em repouso, temos que em <math>t = 0</math> a corda irá receber em seu centro o equivalente à batida do martelo de um piano. Supomos que esse estímulo da batida do martelo possuía o formato aproximado de uma Gaussiana com amplitude de <math>\frac{1}{4}</math> do comprimento de cada corda. <br />
<br />
Então, com o estado inicial da simulação sendo um pulso com o formato de um pacote gaussiano, utilizando condições de contorno fixas, ou seja, mantendo as extremidades da corda paradas e utilizando os dados da tabela para simularmos cada uma das cordas, começamos a simular a propagação de ondas.<br />
<br />
Utilizando o método de Leapfrog, foi realizada uma primeira simulação para uma onda ideal em uma corda:<br />
<br />
[[File:ideal.gif|frame|none|alt=Alt text|Simulação de uma onda em uma corda ideal com condições de contorno u(0,t) = 0 e u(L,t) = 0. A corda simulada possuía comprimento de 2 metros e a amplitude inicial do pulso gaussiano tinha amplitude de 0.5 metros. Foi utilizado uma velocidade de propagação de 300 m/s, <math>\Delta x = 0.01</math> e <math>\Delta t = \frac{\Delta x }{4v}</math>.]]<br />
<br />
'''Corda C2:'''<br />
<br />
[[Arquivo:C2.gif|frame|none|alt=Alt text|Simulação de uma corda C2 de um piano com os parâmetros da tabela acima.]][[Arquivo:C2foto.png|frame|none|alt=Alt text|Estado da corda C2 em diferentes instantes de tempo.]]<br />
<br />
'''Corda C4:'''<br />
<br />
[[Arquivo:C4.gif|frame|none|alt=Alt text|Simulação de uma corda C4 de um piano com os parâmetros da tabela acima.]]<br />
[[Arquivo:C4foto.png|frame|none|alt=Alt text|Estado da corda C4 em diferentes instantes de tempo.]]<br />
<br />
'''Corda C7:'''<br />
<br />
[[Arquivo:C7.gif|frame|none|alt=Alt text|Simulação de uma corda C7 de um piano com os parâmetros da tabela acima.]]<br />
[[Arquivo:C7foto.png|frame|none|alt=Alt text|Estado da corda C7 em diferentes instantes de tempo.]]<br />
<br />
'''Corda com as definições do livro "''Computational Physics''"<ref name=giordano/>:'''<br />
<br />
[[Arquivo:Giordano.gif|frame|none|alt=Alt text|Simulação da corda exemplificada no livro ''Computational Physics'' <ref name=giordano/>. Os parâmetros utilizados estão descritos no texto.]]<br />
[[Arquivo:Giordanofoto.png|frame|none|alt=Alt text|Estado da corda usada como exemplo pelo autor Giordano <ref name=giordano/> em diferentes instantes de tempo.]]<br />
<br />
É possível observar que o tempo necessário para que, devido a fricção, os movimentos na corda diferenciem-se cada vez mais da solução para a corda ideal é menor para um tamanho de corda menor, ou seja, a fricção acaba sendo mais relevante mais rapidamente em cordas mais curtas. Isso significa que deixamos de ter apenas dois pulsos propagando-se em sentidos opostos para termos ou mais pulsos de amplitudes menores, ou a soma de pulsos de diferentes amplitudes.<br />
<br />
=== Scripts para a simulação dos resultados apresentados: ===<br />
<br />
[[Programa baseado no método de Leapfrog para a simulação de uma corda ideal]]<br />
<br />
[[Programa baseado no método de Leapfrog para a simulação de uma corda real]]<br />
<br />
== Análise de Erro e Estabilidade dos Métodos ==<br />
<br />
=== Estabilidade do método Leapfrog ===<br />
Pela estabilidade de Von Neumann, podemos escrever que <br />
<br />
<math><br />
r \leq 1.<br />
</math><br />
<br />
Para <math>r = 1</math>, a equação da discretização da onda pode ser reescrita como<br />
<br />
<math>U_i^{n+1} = U_{i+1}^n+U_{i-1}^n-U_i^{n-1}.</math><br />
<br />
Essa escolha com <br />
<br />
<math>\frac{\Delta x}{\Delta t} = v</math><br />
<br />
nos dá a solução exata sem dispersão numérica, como pode ser verificado pela condição CFL. Contudo, <math>r=1</math> é válido somente no caso de uma corda ideal.<br />
É conveniente escrever a condição acima em termos da amostragem de sinal <math>f_e = \frac{1}{\Delta t}</math> e a frequência fundamental da corda <math>f_1 = \frac{v}{2L}</math>, o que nos leva a<br />
<br />
<math><br />
Kf_1 \leq \frac{f_e}{2}<br />
</math><br />
<br />
O[https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem Teorema de Nyquist-Shannon] diz que a frequência superior no espectro deve ser menor do que <math>\frac{f_e}{2}</math> para evitar serrilhamento e para garantir uma reconstrução única e contínua. Logo, no caso ideal quando as autofrequências da corda são igualmente espaçadas (<math>\Delta f = f_1</math>), a condição de Nyquist indica que o número máximo de frequências no espectro é <math>K</math>. Isso significa que essa condição pode ser usada para selecionar o número apropriado de pontos espaciais <math>K</math> para a corda. Entretanto, como <math>K</math> é um inteiro, apenas valores discretos da frequência natural podem ser obtidos sem erros de trucamento, ou seja, usando <math>r = 1</math>. Como séries discretas não costumam ser utilizadas, precisamos aceitar pequenos erros de truncamento para ajustar <math>f_1</math>, ou seja, utilizando <math>r < 1</math>. No caso de uma onda com fricção, temos que <math>r=\frac{1}{4}</math> é um valor de boa estabilidade.<br />
<br />
== Referências Bibliográficas==<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Programa_baseado_no_m%C3%A9todo_de_Leapfrog_para_a_simula%C3%A7%C3%A3o_de_uma_corda_real&diff=2306Programa baseado no método de Leapfrog para a simulação de uma corda real2018-01-26T19:29:38Z<p>Lucasdoria: Criou página com '<source lang = "c"> #include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> void main() { int i, n, j; // Corda C2 //double l = 1.90, T = 750, M = 35...'</p>
<hr />
<div><source lang = "c"><br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <math.h><br />
#include <string.h><br />
<br />
void main()<br />
{<br />
int i, n, j;<br />
<br />
// Corda C2<br />
//double l = 1.90, T = 750, M = 35e-3, s = M/l, L = 100, f = 16.0e3, e = 7.5e-6;<br />
<br />
// Corda C4<br />
//double l = 0.62, T = 670, M = 3.93e-3, s = M/l, L = 50, f = 32.0e3, e = 3.82e-5;<br />
<br />
// Corda C7<br />
//double l = 0.09, T = 750, M = 0.467e-3, s = M/l, L = 16, f = 96.0e3, e = 8.67e-4;<br />
<br />
//double *u, *g, *h, t, c = sqrt(T/s), dx = l/L, dt = 1.0/f, r = c*dt/dx;<br />
<br />
// Geral<br />
double l = 2;<br />
double *u, *g, *h, t, r, c = 300, dx = 0.01, dt = dx/(4*c), e = 7.5e-6, L = l/dx;<br />
char choice[20], file[20];<br />
FILE *arq;<br />
<br />
double N = L, tmax = 0.04;<br />
// Alocação de memória dinâmica dos ponteiros em forma de vetor<br />
<br />
u = malloc(L * sizeof(double));<br />
g = malloc(L * sizeof(double));<br />
h = malloc(L * sizeof(double));<br />
<br />
if(l != 1.9 && l != 0.62 && l != 0.09)<br />
if(e == 0)<br />
r = 1.0;<br />
else<br />
r = 1.0/4.0;<br />
<br />
<br />
///////////////////////////////////////<br />
// Condição de inicial: Estacionária //<br />
///////////////////////////////////////<br />
/*for(i = 0; i < L; i++)<br />
{<br />
u[i] = sin(M_PI*i/10.0);<br />
g[i] = sin(M_PI*i/10.0);<br />
h[i] = sin(M_PI*i/10.0);<br />
}<br />
<br />
u[0] = 0;<br />
g[0] = 0;<br />
u[L-1] = 0;<br />
g[L-1] = 0;*/<br />
<br />
<br />
///////////////////////////////////////////<br />
// Condição de inicial: Pacote gaussiano //<br />
///////////////////////////////////////////<br />
<br />
if(L == 16)<br />
for(i = 0; i < L; i++)<br />
{<br />
u[i] = exp(-pow(i-L/2,2)*0.5);<br />
g[i] = exp(-pow(i-L/2,2)*0.5);<br />
h[i] = exp(-pow(i-L/2,2)*0.5);<br />
}<br />
else<br />
for(i = 0; i < L; i++)<br />
{<br />
u[i] = exp(-pow(i-L/2,2)/(5*5));<br />
g[i] = exp(-pow(i-L/2,2)/(5*5));<br />
h[i] = exp(-pow(i-L/2,2)/(5*5));<br />
}<br />
<br />
//for(i=1;i<L-1;i++)<br />
// {<br />
// h[i] = r*r*u[i+1] + 2*u[i]*(1-r*r) + r*r*u[i-1] - h[i];<br />
// }<br />
<br />
<br />
// Rotina onda em corda ideal<br />
/*for(t = 0; t <= tmax; t+=dt)<br />
{<br />
for(i=1;i<L-1;i++)<br />
{<br />
g[i] = r*r*u[i+1] + 2*u[i]*(1-r*r) + r*r*u[i-1] - h[i];<br />
}<br />
<br />
for(i=0;i<L;i++)<br />
{<br />
h[i] = u[i];<br />
u[i] = g[i];<br />
}<br />
printf("\nset grid\nset title 'Tempo = %.5lf'\nset yrange [-1:1]\npl \'-' w lp pt 7 ps 0.7\n", t);<br />
for (i = 0; i < L; i++)<br />
{<br />
printf("%lf\t%lf\n", i*dx, u[i]);<br />
}<br />
printf("e\npause 0.1\n");<br />
}*/<br />
printf("set term gif animate\nset o 'Giordano.gif'\n");<br />
// Rotina onda em corda real<br />
for(t = 0; t <= tmax; t+=dt)<br />
{<br />
for(i=1;i<L-1;i++)<br />
{<br />
if(i == 1)<br />
g[i] = (2-2*r*r-6*e*r*r*N*N)*u[i] - h[i] + r*r*(1+4*e*N*N)*(u[i+1]+u[i-1]) - e*r*r*N*N*(u[i+2]+(-u[i]));<br />
else if (i == L-2)<br />
g[i] = (2-2*r*r-6*e*r*r*N*N)*u[i] - h[i] + r*r*(1+4*e*N*N)*(u[i+1]+u[i-1]) - e*r*r*N*N*((-u[i])+u[i-2]);<br />
else<br />
g[i] = (2-2*r*r-6*e*r*r*N*N)*u[i] - h[i] + r*r*(1+4*e*N*N)*(u[i+1]+u[i-1]) - e*r*r*N*N*(u[i+2]+u[i-2]);<br />
}<br />
<br />
for(i=0;i<L;i++)<br />
{<br />
h[i] = u[i];<br />
u[i] = g[i];<br />
}<br />
<br />
if(t > tmax/10.0)<br />
{<br />
printf("\nset grid\nset title 'Tempo = %.5lf'\nset xrange [0:%lf]\nset yrange [-1:1]\npl \'-' t 'Giordano' w l lw 2 \n", t, l-dx);<br />
for (i = 0; i < L; i++)<br />
{<br />
printf("%lf\t%lf\n", i*dx, u[i]);<br />
}<br />
printf("e\npause 0.000001\n");<br />
}<br />
}<br />
<br />
}<br />
</source></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Programa_baseado_no_m%C3%A9todo_de_Leapfrog_para_a_simula%C3%A7%C3%A3o_de_uma_corda_ideal&diff=2305Programa baseado no método de Leapfrog para a simulação de uma corda ideal2018-01-26T19:20:00Z<p>Lucasdoria: </p>
<hr />
<div><source lang = "c"><br />
<br />
#include<stdio.h><br />
#include<stdlib.h><br />
#include<math.h><br />
#include"gauss.h"//Biblioteca para pulso gaussiano inicial.<br />
<br />
#define dx 0.1 //Tamanho do passo espacial.<br />
#define v 1.0 //Velocidade do pulso.<br />
#define L 100 //Tamanho da corda.<br />
#define t_max 300 //Duração da simulação.<br />
<br />
void propagate();<br />
<br />
void main()<br />
{<br />
propagate();<br />
}<br />
<br />
void propagate()<br />
{<br />
int i, n;<br />
double u[t_max][L], dt, alpha; // u[][] é o deslocamento u(x,t) da corda na posição x e no instante t.<br />
<br />
dt = dx/v;<br />
<br />
for(i = 0 ; i < t_max; i++) //Condições de contorno fixas. Corda presa nas extremidades.<br />
{<br />
u[i][0] = 0.0;<br />
u[i][L-1] = 0.0;<br />
}<br />
<br />
for(n = 0 ; n < 2 ; n++) //Condição inicial da corda. É dado um pulso gaussiano inicial a partir da função "gaussiana()".<br />
{<br />
for(i = 1 ; i < L-1 ; i++)<br />
{<br />
u[n][i] = gaussiana(i);<br />
}<br />
}<br />
<br />
alpha = v * dt/dx;<br />
<br />
<br />
for(n = 1; n < t_max ; n++) //Iterações principais do programa baseadas no método Staggered-Leapfrog.<br />
{<br />
for(i = 1 ; i < L-1 ; i++)<br />
{<br />
u[n+1][i] = alpha*alpha*u[n][i+1] + 2.0*u[n][i]*(1.0 - alpha*alpha) + alpha*alpha*u[n][i-1] - u[n-1][i];<br />
}<br />
<br />
printf("set title 'Tempo = %d'\nset xrange [%d:%d]\nset yrange [%lf:%lf]\npl \'-' w lp pt 7 ps 0.8 \n", n,0,L,-1.0,1.0);<br />
for(i = 0; i<L; i++)<br />
printf("%d\t%lf\n",i,u[n+1][i]);<br />
printf("e\npause 0.05\n"); <br />
}<br />
/*<br />
As últimas 4 linhas do programa (linhas acima) são comandos para o gnuplot. A partir do comando "pl \'-'" o programa manda um conjunto de dados para o gnuplot. Este, no final da iteração, espera por 0.05 segundos e depois plota o próximo conjunto de dados.<br />
<br />
O objetivo é simular o problema em tempo real e de uma maneira dinâmica, como feita nos .gif's apresentados no trabalho.<br />
*/<br />
<br />
}<br />
<br />
</source></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Programa_baseado_no_m%C3%A9todo_de_Leapfrog_para_a_simula%C3%A7%C3%A3o_de_uma_corda_ideal&diff=2304Programa baseado no método de Leapfrog para a simulação de uma corda ideal2018-01-26T19:19:39Z<p>Lucasdoria: </p>
<hr />
<div><source lang = "c"><br />
<br />
#include<stdio.h><br />
#include<stdlib.h><br />
#include<math.h><br />
#include"gauss.h" // Biblioteca para pulso gaussiano inicial.<br />
<br />
#define dx 0.1 // Tamanho do passo espacial.<br />
#define v 1.0 // Velocidade do pulso.<br />
#define L 100 // Tamanho da corda.<br />
#define t_max 300 // Duração da simulação.<br />
<br />
void propagate();<br />
<br />
void main()<br />
{<br />
propagate();<br />
}<br />
<br />
void propagate()<br />
{<br />
int i, n;<br />
double u[t_max][L], dt, alpha; // u[][] é o deslocamento u(x,t) da corda na posição x e no instante t.<br />
<br />
dt = dx/v;<br />
<br />
for(i = 0 ; i < t_max; i++) //Condições de contorno fixas. Corda presa nas extremidades.<br />
{<br />
u[i][0] = 0.0;<br />
u[i][L-1] = 0.0;<br />
}<br />
<br />
for(n = 0 ; n < 2 ; n++) //Condição inicial da corda. É dado um pulso gaussiano inicial a partir da função "gaussiana()".<br />
{<br />
for(i = 1 ; i < L-1 ; i++)<br />
{<br />
u[n][i] = gaussiana(i);<br />
}<br />
}<br />
<br />
alpha = v * dt/dx;<br />
<br />
<br />
for(n = 1; n < t_max ; n++) //Iterações principais do programa baseadas no método Staggered-Leapfrog.<br />
{<br />
for(i = 1 ; i < L-1 ; i++)<br />
{<br />
u[n+1][i] = alpha*alpha*u[n][i+1] + 2.0*u[n][i]*(1.0 - alpha*alpha) + alpha*alpha*u[n][i-1] - u[n-1][i];<br />
}<br />
<br />
printf("set title 'Tempo = %d'\nset xrange [%d:%d]\nset yrange [%lf:%lf]\npl \'-' w lp pt 7 ps 0.8 \n", n,0,L,-1.0,1.0);<br />
for(i = 0; i<L; i++)<br />
printf("%d\t%lf\n",i,u[n+1][i]);<br />
printf("e\npause 0.05\n"); <br />
}<br />
/*<br />
As últimas 4 linhas do programa (linhas acima) são comandos para o gnuplot. A partir do comando "pl \'-'" o programa manda um conjunto de dados para o gnuplot. Este, no final da iteração, espera por 0.05 segundos e depois plota o próximo conjunto de dados.<br />
<br />
O objetivo é simular o problema em tempo real e de uma maneira dinâmica, como feita nos .gif's apresentados no trabalho.<br />
*/<br />
<br />
}<br />
<br />
</source></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Programa_baseado_no_m%C3%A9todo_de_Leapfrog_para_a_simula%C3%A7%C3%A3o_de_uma_corda_ideal&diff=2303Programa baseado no método de Leapfrog para a simulação de uma corda ideal2018-01-26T19:16:34Z<p>Lucasdoria: Criou página com '<source lang = "c"> #include<stdio.h> #include<stdlib.h> #include<math.h> #include"gauss.h"//Biblioteca para pulso gaussiano inicial. #define dx 0.1 //Tamanho do passo espac...'</p>
<hr />
<div><source lang = "c"><br />
<br />
#include<stdio.h><br />
#include<stdlib.h><br />
#include<math.h><br />
#include"gauss.h"//Biblioteca para pulso gaussiano inicial.<br />
<br />
#define dx 0.1 //Tamanho do passo espacial.<br />
#define v 1.0 //Velocidade do pulso.<br />
#define L 100 //Tamanho da corda.<br />
#define t_max 300 //Duração da simulação.<br />
<br />
void propagate();<br />
<br />
void main()<br />
{<br />
propagate();<br />
}<br />
<br />
void propagate()<br />
{<br />
int i, n;<br />
double u[t_max][L], dt, alpha; // u[][] é o deslocamento u(x,t) da corda na posição x e no instante t.<br />
<br />
dt = dx/v;<br />
<br />
for(i = 0 ; i < t_max; i++) //Condições de contorno fixas. Corda presa nas extremidades.<br />
{<br />
u[i][0] = 0.0;<br />
u[i][L-1] = 0.0;<br />
}<br />
<br />
for(n = 0 ; n < 2 ; n++) //Condição inicial da corda. É dado um pulso gaussiano inicial a partir da função "gaussiana()".<br />
{<br />
for(i = 1 ; i < L-1 ; i++)<br />
{<br />
u[n][i] = gaussiana(i);<br />
}<br />
}<br />
<br />
alpha = v * dt/dx;<br />
<br />
<br />
for(n = 1; n < t_max ; n++) //Iterações principais do programa baseadas no método Staggered-Leapfrog.<br />
{<br />
for(i = 1 ; i < L-1 ; i++)<br />
{<br />
u[n+1][i] = alpha*alpha*u[n][i+1] + 2.0*u[n][i]*(1.0 - alpha*alpha) + alpha*alpha*u[n][i-1] - u[n-1][i];<br />
}<br />
<br />
printf("set title 'Tempo = %d'\nset xrange [%d:%d]\nset yrange [%lf:%lf]\npl \'-' w lp pt 7 ps 0.8 \n", n,0,L,-1.0,1.0);<br />
for(i = 0; i<L; i++)<br />
printf("%d\t%lf\n",i,u[n+1][i]);<br />
printf("e\npause 0.05\n"); <br />
}<br />
/*<br />
As últimas 4 linhas do programa (linhas acima) são comandos para o gnuplot. A partir do comando "pl \'-'" o programa manda um conjunto de dados para o gnuplot. Este, no final da iteração, espera por 0.05 segundos e depois plota o próximo conjunto de dados.<br />
<br />
O objetivo é simular o problema em tempo real e de uma maneira dinâmica, como feita nos .gif's apresentados no trabalho.<br />
*/<br />
<br />
}<br />
<br />
<\source></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo3_-_Ondas2&diff=2302Grupo3 - Ondas22018-01-26T19:05:36Z<p>Lucasdoria: /* Scripts para a simulação dos resultados apresentados: */</p>
<hr />
<div>'''Grupo: Lucas Dória, Caetano Pires e Ânderson Rosa.'''<br />
<br />
O objetivo deste trabalho é analisar três métodos diferentes de integração numérica para resolução de equações diferenciais parciais (EDP's). A equação aqui abordada é a equação da onda, a qual consiste em uma EDP hiperbólica de segunda ordem. Uma pequena noção dos métodos numéricos é dada, após a explicação do problema físico abordado. Os dados encontrados são comentados e comparados com os resultados esperados. Simulações também foram feitas para melhor visualização dos fenômenos. Por último, foi feita uma análise de erros e estabilidade para cada um dos métodos, assim como algumas conclusões foram inferidas.<br />
<br />
== Introdução ==<br />
<br />
Equações diferenciais parciais hiperbólicas geralmente podem ser formuladas a partir de teoremas de conservação. Um exemplo é a equação do tipo:<br />
<br />
<math>\frac{\partial \vec{U}}{\partial t} + \nabla \cdot \vec{F}(U) = \vec{S}(U),</math><br />
<br />
onde <math>\vec{U}</math> é o vetor de densidades da quantidade conservada, i.e., <math>\vec{U} = (U_1,...,U_n),</math> <math>\vec{F}</math> é o fluxo de densidade e <math>\vec{S}</math> é um termo genérico representando fontes e/ou sumidouros.<br />
<br />
Uma classe especial de equações hiperbólicas são as chamadas equações de adveção, na qual a derivada temporal da quantidade conservada <math>\vec{U}(\vec{x},t)</math> é proporcional à sua derivada espacial. Nesses casos, <math>\vec{F}(U)</math> é diagonal e dada por:<br />
<br />
<math>\vec{F}(U) = v I \cdot \vec{U},</math><br />
<br />
onde <math>I</math> é a matriz identidade.<br />
<br />
Considerando apenas uma dimensão e com <math>\vec{U} \equiv u</math>, temos a equação de adveção:<br />
<br />
<math>\frac{\partial u}{\partial t} + v \frac{\partial u}{\partial x} = 0,</math><br />
<br />
onde <math>v</math> é a velocidade de propagação do pulso gerado. A equação admite uma solução analítica da forma <math>u = f(x - vt),</math> representando um pulso se movendo na direção positiva de <math>x.</math><br />
<br />
A equação da onda em uma dimensão é uma EDP hiperbólica de segunda ordem dada por<br />
<br />
<math><br />
\frac{\partial^2 u}{\partial t^2} = v^2 \frac{\partial^2 u}{\partial x^2},<br />
</math><br />
<br />
onde <math>u = u(x,t)</math> é o deslocamento transversal à direção de propagação de uma posição <math>x</math> no instante <math>t</math> e admite duas soluções, representadas por pulsos, na forma <math>f_1(x + vt)</math> e <math>f_2(x - vt).</math><br />
<br />
Assumindo que <math>v</math> não depende da posição na equação da onda, nos restringimos a problemas lineares. Além disso, se escrevermos<br />
<br />
<math><br />
k = v \frac{\partial u}{\partial x},\qquad s = \frac{\partial u}{\partial t},<br />
</math><br />
<br />
então a equação da onda pode ser escrita como um sistema de três equações diferenciais de primeira ordem:<br />
<br />
<math><br />
\begin{cases}\displaystyle \frac{\partial k}{\partial t} = v\frac{\partial s}{\partial x} \\\\<br />
\displaystyle \frac{\partial s}{\partial t} = v\frac{\partial k}{\partial x} \\\\<br />
\displaystyle \frac{\partial u}{\partial t} = s <br />
\end{cases}<br />
</math><br />
<br />
Em notação vetorial, o sistema acima pode ser reescrito na forma conservativa como: <math>\frac{\partial U}{\partial t}+ \frac{\partial F(U)}{\partial x} = 0, </math><br />
<br />
onde <math>U = \begin{pmatrix}k\\s\end{pmatrix},\quad \textrm{e}\quad F(U) =\begin{pmatrix}0 & -v\\-v & 0\end{pmatrix}</math><br />
<br />
==Condição CFL==<br />
<br />
Uma condição necessária mas nem sempre suficiente para a convergência de equações diferenciais parciais resolvidas a partir de métodos de diferença, conhecida como condição CFL <ref>Luciano Rezzolla, "Numerical Methods for the Solution of Partial Differential Equations". Albert Einstein Institute, Max-Planck-Institute for Gravitational Physics, Potsdam, Germany.</ref>, é formulada a partir do termo de “domínio de dependência”.<br />
<br />
Considerando, por exemplo, a equação da advecção [https://en.wikipedia.org/wiki/Advection] em uma aproximação a partir de métodos de diferença em sua forma explícita <br />
<br />
<math>\frac{U^{n+1}_i-U^n_i}{\Delta t} + v\frac{U^n_{i}-U^n_{i-1}}{\Delta x}=0,</math><br />
<br />
diz-se que o valor de <math>U^{n+1}_i</math> depende dos valores anteriores de <math>U^n_i</math> e <math>U^n_{i-1}</math>, e esses dois pontos dependem, novamente, de outros dois pontos em tempos anteriores. Todos esses pontos dependentes formam o domínio de dependência do valor <math>U^{n+1}_i</math>, representado abaixo (botar figura do domínio de dependência).<br />
<br />
A condição CFL enuncia que a condição mínima para que haja estabilidade em métodos de diferenças o domínio de dependência da equação diferencia parcial, dado por sua equação característica, deve estar situado dentro do domínio de dependência do esquema numérico.<br />
<br />
A partir dessa condição, define-se o número CFL como <br />
<br />
<math>r\equiv v\frac{\Delta t}{\Delta x}</math><br />
<br />
onde <math>\Delta t</math> é um passo na malha temporal e <math>\Delta x</math> é um passo na malha espacial. Para casos unidimensionais, como o que será tratado aqui, a condição CFL é satisfeita se r<br />
<br />
<math> \left|r\right| \le 1 </math> <br />
<br />
Um uso da condição CFL é determinar o tamanho do passo temporal, sabendo-se <math>v</math> e <math>\Delta x</math>:<br />
<br />
<math>\Delta t = c_{cfl}\frac{\Delta x}{\left|v\right|}</math><br />
<br />
onde o fator <math>c_{cfl}<1</math>.<br />
<br />
O número CFL pode ser entendido como um fluxo numérico advectivo adimensionalisado pelas malhas espacial e temporal do problema. De um ponto de vista matemático, ele garante que o domínio numérico de dependência é sempre maior que o domínio físico. De um ponto de vista físico, é garantido que a velocidade de propagação de qualquer perturbação, como uma onda, seja menor ou ao menos igual que a velocidade de propagação numérica, fazendo com que a distância propagada pela perturbação não seja maior do que a divisão da malha espacial:<br />
<br />
<math>\left|v\right|\Delta t \le \Delta x </math><br />
<br />
== O Problema Físico ==<br />
<br />
===O Modelo de Corda Ideal===<br />
<br />
Para uma primeira abordagem da equação da onda, consideramos uma corda com suas extremidades fixas. Podemos dividir o comprimento <math>L</math> dessa corda em <math>K</math> intervalos de comprimentos iguais, dessa forma <math>\Delta x = \frac{L}{K}</math>. Cada intervalo é discretizado, representado por <math>x_i</math>, <math>i=0,1,...,K</math>. Também podemos dividir o tempo em intervalos iguais <math>\Delta t</math> e denotá-los como <math>t_n</math>, <math>n =0,1,...,t_{max}</math>. Abaixo temos uma esquematização das informações que precisamos para cada ponto da corda:<br />
<br />
[[Arquivo:grid.png]]<br />
<br />
Tendo feita a discretização das variáveis, podemos aproximar a equação da onda por diferenciação finita, utilizando derivadas centradas da seguinte forma:<br />
<br />
<math>\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}</math><br />
<br />
<math>\frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}</math><br />
<br />
onde <math>U_i^n</math> representa o valor discretizado de <math>u(x_i,t_n)</math>.<br />
<br />
Assim, chegamos em uma equação discretizada:<br />
<br />
<math>\frac{U_i^{n+1}-2U_i^n+U_i^{n-1}}{(\Delta t)^2} = v^2 \frac{U_{i+1}^n-2U_i^n+U_{i-1}^n}{(\Delta x)^2}</math>. <br />
<br />
Sabendo que essa discretização da equação da onda pode ser verificada como sendo o método Leapfrog (ver seção do método de Leapfrog [https://fiscomp.if.ufrgs.br/index.php/Grupo3_-_Ondas2#O_M.C3.A9todo_de_Leapfrog método de Leapfrog]), podemos resolver a equação para <math>U_i^{n+1}</math> para sabermos o deslocamento vertical de uma partição da corda no momento de tempo seguinte, assim obtendo<br />
<br />
<math>U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}</math>,<br />
<br />
onde <math>r = v \frac{\Delta t}{\Delta x}.</math><br />
<br />
===Um Quadro Mais Realístico - O Modelo de Corda Rígida ===<br />
<br />
Para nos aproximarmos de um modelo mais real, podemos adicionar um termo à equação original da onda que corresponde ao efeito de fricção em uma corda. A equação da onda mais geral com efeito de fricção pode ser escrita como: <ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math>\frac{\partial^2 u}{\partial t^2} = v^2 \left( \frac{\partial^2 u}{\partial x^2} - \epsilon L^2 \frac{\partial^4 u}{\partial x^4} \right),</math><br />
<br />
onde <math>v</math> é a velocidade transversal de propagação do pulso na corda, dada pela relação <math>v = \sqrt[]{\frac{T}{\rho}}</math> (sendo <math>T</math> a tensão na corda e <math>\rho</math> a densidade linear da mesma), <math>\epsilon</math> é um parâmetro adimensional de fricção que representa a rigidez da corda e <math>L</math> o comprimento da corda.<br />
<br />
O parâmetro <math>\epsilon</math> é dado por<br />
<br />
<math>\epsilon = \kappa² \frac{E S}{T L^2}</math>,<br />
<br />
onde <math>\kappa</math> é o [https://en.wikipedia.org/wiki/Radius_of_gyration raio de giro] da corda, <math>E</math> é o [https://en.wikipedia.org/wiki/Young%27s_modulus Módulo de Young] e <math>S</math> a área da secção da corda.<br />
<br />
Discretizamos a equação da seguinte maneira:<br />
<br />
<math><br />
\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}</math><br />
<br />
<math> \frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}</math><br />
<br />
<math> \frac{\partial^4u}{\partial x^4}=\frac{U^n_{i+2}-4U^n_{i+1}+6U^n_i-4U^n_{i-1}+U^n_{i-2}}{\Delta x^4}<br />
</math><br />
<br />
e resolvemos para <math>U_i^{n+1}</math>, obtendo:<br />
<br />
<math> U_i^{n+1}=[2-2r^2-6\epsilon r^2K^2]U_i^n - U_i^{n-1} +r^2[1+4\epsilon K^2][U_{i+1}^n+U_{i-1}^n]-\epsilon r^2K^2[U_{i+2}^n + U_{i-2}^n].</math><br />
<br />
O fato de essa discretização depender do deslocamento da corda em posições <math>i-2</math> e <math>i+2</math> implica em precisarmos simular "pontos fantasmas" quando integramos os extremos das cordas. Para fazermos isso, podemos ou utilizar a aproximação <math>U_{-1}^n = -U_{+1}^n</math> ou podemos considerar esses "pontos fantasmas" como pontos presos e, portanto, sempre iguais a zero.<br />
<br />
== Os Métodos Utilizados ==<br />
<br />
Foi realizada uma abordagem ao problema da corda real a partir de três métodos diferentes de integração numérica.<br />
<br />
O método mais básico é chamado de FTCS (Forward-Time-Centered-Space) e consiste em duas expansões de Taylor ao redor do ponto <math>x_j</math>:<br />
<br />
<math>u(x_i + \Delta x,t^n) = u(x_i,t^n) + \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3),</math><br />
<br />
<math>u(x_i - \Delta x,t^n) = u(x_i,t^n) - \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3).</math><br />
<br />
Subtraindo as duas expressões, encontramos a expressão<br />
<br />
<math>\left.\frac{\partial u}{\partial x}\right|_i^n = \frac{u^n_{i+1} - u^n_{i-1}}{2 \Delta x} + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
A qual podemos substituir na equação da onda, juntamente com a discretização da derivada parcial temporal. Temos então que, para um sistema linear de equações hiperbólicas:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta t^2, \Delta x^2 \Delta t)</math><br />
<br />
Visto que essa última notação é mais genérica, ela será utilizada para a explicação dos métodos posteriores.<br />
<br />
=== O Método de Lax-Friedrichs ===<br />
<br />
O método de Lax-Friedrichs consiste em substituir o termo <math>\textbf{U}^n_i</math> com sua respectiva média espacial, i.e., <math>U^n_i = (U^n_{i+1} + U^n_{i-1})/2</math>. Logo, temos a seguinte equação de recorrência:<br />
<br />
<math>\textbf{U}^{n+1}_i = \frac{1}{2}(\textbf{U}^n_{i+1} + \textbf{U}^n_{i-1}) - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)</math><br />
<br />
=== O Método de Leapfrog ===<br />
<br />
Tanto o método FTCS quanto o método de Lax-Friedrichs são métodos de primeira ordem para a derivada temporal. Nessas circunstâncias, <math>v \Delta t</math> deve ser significantemente menor do que <math>\Delta x</math>, muito abaixo do limite imposto pela condição de Courant.<br />
<br />
Uma nova expressão para a derivada temporal, com precisão de segunda ordem é dada por<br />
<br />
<math>\left.\frac{\partial u}{\partial t}\right|^n_i = \frac{U^{n+1}_i - U^{n-1}_i}{2 \Delta t} + \mathcal{O}(\Delta t^2).</math><br />
<br />
Substituindo a nova expressão acima no método de FTCS discutido anteriormente, encontramos o método de Leapfrog:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^{n-1}_i - \frac{\Delta t}{\Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2).</math><br />
<br />
Como o método de Leapfrog será o mais aplicado na resolução do problema da onda, é interessante um aprofundamento maior do método. Podemos adaptar o método de Leapfrog para o sistema de equações definido para a equação da onda ao fazermos a discretização ao redor de um ponto qualquer <math>i</math> no instante de tempo <math>n</math>:<br />
<br />
<math><br />
k_{i+\frac{1}{2}}^n \equiv v \left.\frac{\partial U}{\partial x}\right|_{i+\frac{1}{2}}^{n} = v \frac{U_{i+1}^n-U_i^n}{\Delta x} + \mathcal{O}(\Delta x) \qquad (1)<br />
</math><br />
<br />
<math><br />
s_{i}^{n+\frac{1}{2}} \equiv \left.\frac{\partial U}{\partial t}\right|_{i}^{n+\frac{1}{2}} = \frac{U_{i}^{n+1}-U_i^n}{\Delta t} + \mathcal{O}(\Delta t) \qquad (2)<br />
</math><br />
<br />
Com essas discretizações, podemos utilizar as equações (1) e (2) para resolvermos para <math>k^{n+1}_{i+\frac{1}{2}}</math> apenas em termos de <math>s</math>, <math>k</math> e <math>r</math>. Fazendo as substituições dessas duas equações uma na outra (ver passo a passo: [[Dedução Leapfrog]]), obtemos:<br />
<br />
<math>\frac{\Delta x}{v}k^{n+1}_{i+\frac{1}{2}} = s^{n+\frac{1}{2}}_{i+1}\Delta t + \frac{\Delta x}{v}k^{n}_{i+\frac{1}{2}} + U^n_i - (s^{n+\frac{1}{2}}_i \Delta t + U^n_i)</math><br />
<br />
Dessa equação, chegamos a<br />
<br />
<math><br />
k_{i+\frac{1}{2}}^{n+1} = k_{i+\frac{1}{2}}^n+r(s_{i+1}^{n+\frac{1}{2}}-s_{i}^{n+\frac{1}{2}}) \qquad (3)<br />
</math><br />
<br />
Utilizando o mesmo raciocínio, podemos também resolver para <math>s^{n+\frac{1}{2}}_i</math> e obter<br />
<br />
<math><br />
s_i^{n+\frac{1}{2}} = s_{i}^{n-\frac{1}{2}}+r(k_{i+\frac{1}{2}}^{n}-k_{i-\frac{1}{2}}^{n}) \qquad (4)<br />
</math><br />
<br />
Com essas duas equações, podemos fazer uma integração utilizando o método de Euler para obter <math>U_i^{n+1}</math>, ou seja, o deslocamento de um determinado ponto <math>i</math> da corda no próximo instante de tempo:<br />
<br />
<math>U_i^{n+1} = U_i^n + \frac{\Delta t}{2}s_i^{n+\frac{1}{2}}+\mathcal{O}(\Delta x^2).</math><br />
<br />
Contudo, podemos fazer uma simples substituição das equações <math>(1)</math> e <math>(2)</math> nas equações <math>(3)</math> e <math>(4)</math> e, assim, obtemos que a representação de Leapfrog da equação da onda é dada pela discretização de segunda ordem da própria equação da onda, com <math>\mathcal{O}(\Delta t^2, \Delta x^2)</math> (ver passo a passo da comparação [[Discretização x Leapfrog]]. Isso nos dá uma solução de "um passo", onde só precisamos efetuar o cálculo da equação discretizada pelo método da derivação finita, ou seja, para o caso da corda ideal, a equação<br />
<br />
<math>U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}.</math><br />
<br />
=== O Método de Lax-Wendroff ===<br />
<br />
O método de Lax-Wendroff é a extensão do método de Lax-Friedrichs de segunda ordem. Calculamos o vetor <math>U</math> a partir de um passo médio de Lax-Friedrichs:<br />
<br />
<math>\textbf{U}^{n+\frac{1}{2}}_{i + \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i+1} + \textbf{U}^n_i] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_i] + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
<math>\textbf{U}^{n+\frac{1}{2}}_{i - \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i} + \textbf{U}^n_{i-1}] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
E encontramos os fluxos <math>\textbf{F}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}</math> a partir dos valores de <math>\textbf{U}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}.</math><br />
<br />
Logo, com um meio passo de Leapfrog, temos a expressão final do método:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{\Delta x} \left[\textbf{F}^{n + \frac{1}{2}}_{i + \frac{1}{2}} - \textbf{F}^{n + \frac{1}{2}}_{i - \frac{1}{2}}\right] + \mathcal{O}(\Delta x^2)</math><br />
<br />
== Análise e Discussão dos Resultados ==<br />
Escolhemos para simular quatro diferentes cordas: as cordas C2, C4 e C7, que são cordas dó de um piano <ref>Antoine Chaign, Anders Askenfelt, "Numerical simulations of piano strings. I. A physical model for a struck string using finite difference methods". Signal Department, Paris, France. Department of Speech Communication and Music Acoustics; Royal Institute of Technology, Stockholm, Sweden.</ref> e uma corda qualquer baseada nos dados encontrados no livro "''Computational Physics''" <ref name=giordano/>. Os dados das cordas C2, C4 e C7 estão na tabela abaixo, onde iremos definir para cada corda o comprimento, a massa, a tensão aplicada elas, o número de divisões existentes, amostragem de sinal (que é um parâmetro obtido experimentalmente)e o parâmetro de fricção.<br />
<br />
{| class="wikitable"<br />
|-<br />
!<br />
! '''C2'''<br />
! '''C4'''<br />
! '''C7'''<br />
|-<br />
| '''Comprimento''' (<math>m</math>)<br />
| <math>1.90</math><br />
| <math>0.62</math><br />
| <math>0.09</math><br />
|-<br />
| '''Massa'''(<math>g</math>)<br />
| <math>35</math><br />
| <math>3.93 </math><br />
| <math>0.467</math><br />
|-<br />
| '''Tensão''' (<math>N</math>)<br />
| <math>750</math><br />
| <math>670</math><br />
| <math>750</math><br />
|-<br />
| '''Divisões'''<br />
| <math>100</math><br />
| <math>50</math><br />
| <math>16</math><br />
|-<br />
| '''Amostragem de sinal'''<br />
| <math>16\times10^{3}</math><br />
| <math>32\times10^{3}</math><br />
| <math>96\times10^{3}</math><br />
|-<br />
|'''Parâmetro de fricção'''<br />
| <math>7.5\times10^{-6}</math><br />
| <math>3.82\times10^{-5}</math><br />
| <math>8.67\times10^{-4}</math><br />
|}<br />
<br />
Desses dados, temos que a densidade linear de massa das cordas é dada por <br />
<br />
<math>\rho = \frac{M}{L},</math><br />
<br />
onde <math>M</math> é a massa e <math>L</math> o comprimento da corda, <br />
<br />
<math>v = \sqrt{\frac{T}{\rho}},</math><br />
<br />
onde <math>T</math> é a tensão na corda, <br />
<br />
<math>\Delta x = \frac{L}{K},</math><br />
<br />
<math>\Delta t = \frac{1}{f_e},</math><br />
<br />
e <br />
<br />
<math>r = v\frac{\Delta t}{\Delta x}.</math><br />
<br />
Os dados obtidos a partir de todas essas equações são calculados pelo programa com base dos dados da tabela.<br />
<br />
Para a simulação baseada nos dados retirados do livro ''"Computational Physics"''<ref name=giordano/>, utilizamos uma corda com 2 metros de comprimento, com velocidade de propagação transversal da onda sendo 300<math>m/s</math>, <math>\Delta x</math> de 0.01<math>m</math>, <math>\Delta t = \frac{\Delta x }{4v}</math> e parâmetro de fricção de <math>7.5\times10^{-6}</math>.<br />
<br />
Supondo uma corda inicialmente em repouso, temos que em <math>t = 0</math> a corda irá receber em seu centro o equivalente à batida do martelo de um piano. Supomos que esse estímulo da batida do martelo possuía o formato aproximado de uma Gaussiana com amplitude de <math>\frac{1}{4}</math> do comprimento de cada corda. <br />
<br />
Então, com o estado inicial da simulação sendo um pulso com o formato de um pacote gaussiano, utilizando condições de contorno fixas, ou seja, mantendo as extremidades da corda paradas e utilizando os dados da tabela para simularmos cada uma das cordas, começamos a simular a propagação de ondas.<br />
<br />
Utilizando o método de Leapfrog, foi realizada uma primeira simulação para uma onda ideal em uma corda:<br />
<br />
[[File:ideal.gif|frame|none|alt=Alt text|Simulação de uma onda em uma corda ideal com condições de contorno u(0,t) = 0 e u(L,t) = 0. A corda simulada possuía comprimento de 2 metros e a amplitude inicial do pulso gaussiano tinha amplitude de 0.5 metros. Foi utilizado uma velocidade de propagação de 300 m/s, <math>\Delta x = 0.01</math> e <math>\Delta t = \frac{\Delta x }{4v}</math>.]]<br />
<br />
'''Corda C2:'''<br />
<br />
[[Arquivo:C2.gif|frame|none|alt=Alt text|Simulação de uma corda C2 de um piano com os parâmetros da tabela acima.]][[Arquivo:C2foto.png|frame|none|alt=Alt text|Estado da corda C2 em diferentes instantes de tempo.]]<br />
<br />
'''Corda C4:'''<br />
<br />
[[Arquivo:C4.gif|frame|none|alt=Alt text|Simulação de uma corda C4 de um piano com os parâmetros da tabela acima.]]<br />
[[Arquivo:C4foto.png|frame|none|alt=Alt text|Estado da corda C4 em diferentes instantes de tempo.]]<br />
<br />
'''Corda C7:'''<br />
<br />
[[Arquivo:C7.gif|frame|none|alt=Alt text|Simulação de uma corda C7 de um piano com os parâmetros da tabela acima.]]<br />
[[Arquivo:C7foto.png|frame|none|alt=Alt text|Estado da corda C7 em diferentes instantes de tempo.]]<br />
<br />
'''Corda com as definições do livro "''Computational Physics''"<ref name=giordano/>:'''<br />
<br />
[[Arquivo:Giordano.gif|frame|none|alt=Alt text|Simulação da corda exemplificada no livro ''Computational Physics'' <ref name=giordano/>. Os parâmetros utilizados estão descritos no texto.]]<br />
[[Arquivo:Giordanofoto.png|frame|none|alt=Alt text|Estado da corda usada como exemplo pelo autor Giordano <ref name=giordano/> em diferentes instantes de tempo.]]<br />
<br />
É possível observar que o tempo necessário para que, devido a fricção, os movimentos na corda diferenciem-se cada vez mais da solução para a corda ideal é menor para um tamanho de corda menor, ou seja, a fricção acaba sendo mais relevante mais rapidamente em cordas mais curtas. Isso significa que deixamos de ter apenas dois pulsos propagando-se em sentidos opostos para termos ou mais pulsos de amplitudes menores, ou a soma de pulsos de diferentes amplitudes.<br />
<br />
=== Scripts para a simulação dos resultados apresentados: ===<br />
<br />
[[Programa baseado no método de Leapfrog para a simulação de uma corda ideal]]<br />
<br />
[[Programa baseado no método de Leapfrog para a simulação de uma corda real]]<br />
<br />
[[Script para criar .gif com os resultados]]<br />
<br />
== Análise de Erro e Estabilidade dos Métodos ==<br />
<br />
=== Estabilidade do método Leapfrog ===<br />
Pela estabilidade de Von Neumann, podemos escrever que <br />
<br />
<math><br />
r \leq 1.<br />
</math><br />
<br />
Para <math>r = 1</math>, a equação da discretização da onda pode ser reescrita como<br />
<br />
<math>U_i^{n+1} = U_{i+1}^n+U_{i-1}^n-U_i^{n-1}.</math><br />
<br />
Essa escolha com <br />
<br />
<math>\frac{\Delta x}{\Delta t} = v</math><br />
<br />
nos dá a solução exata sem dispersão numérica, como pode ser verificado pela condição CFL. Contudo, <math>r=1</math> é válido somente no caso de uma corda ideal.<br />
É conveniente escrever a condição acima em termos da amostragem de sinal <math>f_e = \frac{1}{\Delta t}</math> e a frequência fundamental da corda <math>f_1 = \frac{v}{2L}</math>, o que nos leva a<br />
<br />
<math><br />
Kf_1 \leq \frac{f_e}{2}<br />
</math><br />
<br />
O[https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem Teorema de Nyquist-Shannon] diz que a frequência superior no espectro deve ser menor do que <math>\frac{f_e}{2}</math> para evitar serrilhamento e para garantir uma reconstrução única e contínua. Logo, no caso ideal quando as autofrequências da corda são igualmente espaçadas (<math>\Delta f = f_1</math>), a condição de Nyquist indica que o número máximo de frequências no espectro é <math>K</math>. Isso significa que essa condição pode ser usada para selecionar o número apropriado de pontos espaciais <math>K</math> para a corda. Entretanto, como <math>K</math> é um inteiro, apenas valores discretos da frequência natural podem ser obtidos sem erros de trucamento, ou seja, usando <math>r = 1</math>. Como séries discretas não costumam ser utilizadas, precisamos aceitar pequenos erros de truncamento para ajustar <math>f_1</math>, ou seja, utilizando <math>r < 1</math>. No caso de uma onda com fricção, temos que <math>r=\frac{1}{4}</math> é um valor de boa estabilidade.<br />
<br />
== Referências Bibliográficas==<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo3_-_Ondas2&diff=2301Grupo3 - Ondas22018-01-26T19:03:42Z<p>Lucasdoria: /* Análise e Discussão dos Resultados */</p>
<hr />
<div>'''Grupo: Lucas Dória, Caetano Pires e Ânderson Rosa.'''<br />
<br />
O objetivo deste trabalho é analisar três métodos diferentes de integração numérica para resolução de equações diferenciais parciais (EDP's). A equação aqui abordada é a equação da onda, a qual consiste em uma EDP hiperbólica de segunda ordem. Uma pequena noção dos métodos numéricos é dada, após a explicação do problema físico abordado. Os dados encontrados são comentados e comparados com os resultados esperados. Simulações também foram feitas para melhor visualização dos fenômenos. Por último, foi feita uma análise de erros e estabilidade para cada um dos métodos, assim como algumas conclusões foram inferidas.<br />
<br />
== Introdução ==<br />
<br />
Equações diferenciais parciais hiperbólicas geralmente podem ser formuladas a partir de teoremas de conservação. Um exemplo é a equação do tipo:<br />
<br />
<math>\frac{\partial \vec{U}}{\partial t} + \nabla \cdot \vec{F}(U) = \vec{S}(U),</math><br />
<br />
onde <math>\vec{U}</math> é o vetor de densidades da quantidade conservada, i.e., <math>\vec{U} = (U_1,...,U_n),</math> <math>\vec{F}</math> é o fluxo de densidade e <math>\vec{S}</math> é um termo genérico representando fontes e/ou sumidouros.<br />
<br />
Uma classe especial de equações hiperbólicas são as chamadas equações de adveção, na qual a derivada temporal da quantidade conservada <math>\vec{U}(\vec{x},t)</math> é proporcional à sua derivada espacial. Nesses casos, <math>\vec{F}(U)</math> é diagonal e dada por:<br />
<br />
<math>\vec{F}(U) = v I \cdot \vec{U},</math><br />
<br />
onde <math>I</math> é a matriz identidade.<br />
<br />
Considerando apenas uma dimensão e com <math>\vec{U} \equiv u</math>, temos a equação de adveção:<br />
<br />
<math>\frac{\partial u}{\partial t} + v \frac{\partial u}{\partial x} = 0,</math><br />
<br />
onde <math>v</math> é a velocidade de propagação do pulso gerado. A equação admite uma solução analítica da forma <math>u = f(x - vt),</math> representando um pulso se movendo na direção positiva de <math>x.</math><br />
<br />
A equação da onda em uma dimensão é uma EDP hiperbólica de segunda ordem dada por<br />
<br />
<math><br />
\frac{\partial^2 u}{\partial t^2} = v^2 \frac{\partial^2 u}{\partial x^2},<br />
</math><br />
<br />
onde <math>u = u(x,t)</math> é o deslocamento transversal à direção de propagação de uma posição <math>x</math> no instante <math>t</math> e admite duas soluções, representadas por pulsos, na forma <math>f_1(x + vt)</math> e <math>f_2(x - vt).</math><br />
<br />
Assumindo que <math>v</math> não depende da posição na equação da onda, nos restringimos a problemas lineares. Além disso, se escrevermos<br />
<br />
<math><br />
k = v \frac{\partial u}{\partial x},\qquad s = \frac{\partial u}{\partial t},<br />
</math><br />
<br />
então a equação da onda pode ser escrita como um sistema de três equações diferenciais de primeira ordem:<br />
<br />
<math><br />
\begin{cases}\displaystyle \frac{\partial k}{\partial t} = v\frac{\partial s}{\partial x} \\\\<br />
\displaystyle \frac{\partial s}{\partial t} = v\frac{\partial k}{\partial x} \\\\<br />
\displaystyle \frac{\partial u}{\partial t} = s <br />
\end{cases}<br />
</math><br />
<br />
Em notação vetorial, o sistema acima pode ser reescrito na forma conservativa como: <math>\frac{\partial U}{\partial t}+ \frac{\partial F(U)}{\partial x} = 0, </math><br />
<br />
onde <math>U = \begin{pmatrix}k\\s\end{pmatrix},\quad \textrm{e}\quad F(U) =\begin{pmatrix}0 & -v\\-v & 0\end{pmatrix}</math><br />
<br />
==Condição CFL==<br />
<br />
Uma condição necessária mas nem sempre suficiente para a convergência de equações diferenciais parciais resolvidas a partir de métodos de diferença, conhecida como condição CFL <ref>Luciano Rezzolla, "Numerical Methods for the Solution of Partial Differential Equations". Albert Einstein Institute, Max-Planck-Institute for Gravitational Physics, Potsdam, Germany.</ref>, é formulada a partir do termo de “domínio de dependência”.<br />
<br />
Considerando, por exemplo, a equação da advecção [https://en.wikipedia.org/wiki/Advection] em uma aproximação a partir de métodos de diferença em sua forma explícita <br />
<br />
<math>\frac{U^{n+1}_i-U^n_i}{\Delta t} + v\frac{U^n_{i}-U^n_{i-1}}{\Delta x}=0,</math><br />
<br />
diz-se que o valor de <math>U^{n+1}_i</math> depende dos valores anteriores de <math>U^n_i</math> e <math>U^n_{i-1}</math>, e esses dois pontos dependem, novamente, de outros dois pontos em tempos anteriores. Todos esses pontos dependentes formam o domínio de dependência do valor <math>U^{n+1}_i</math>, representado abaixo (botar figura do domínio de dependência).<br />
<br />
A condição CFL enuncia que a condição mínima para que haja estabilidade em métodos de diferenças o domínio de dependência da equação diferencia parcial, dado por sua equação característica, deve estar situado dentro do domínio de dependência do esquema numérico.<br />
<br />
A partir dessa condição, define-se o número CFL como <br />
<br />
<math>r\equiv v\frac{\Delta t}{\Delta x}</math><br />
<br />
onde <math>\Delta t</math> é um passo na malha temporal e <math>\Delta x</math> é um passo na malha espacial. Para casos unidimensionais, como o que será tratado aqui, a condição CFL é satisfeita se r<br />
<br />
<math> \left|r\right| \le 1 </math> <br />
<br />
Um uso da condição CFL é determinar o tamanho do passo temporal, sabendo-se <math>v</math> e <math>\Delta x</math>:<br />
<br />
<math>\Delta t = c_{cfl}\frac{\Delta x}{\left|v\right|}</math><br />
<br />
onde o fator <math>c_{cfl}<1</math>.<br />
<br />
O número CFL pode ser entendido como um fluxo numérico advectivo adimensionalisado pelas malhas espacial e temporal do problema. De um ponto de vista matemático, ele garante que o domínio numérico de dependência é sempre maior que o domínio físico. De um ponto de vista físico, é garantido que a velocidade de propagação de qualquer perturbação, como uma onda, seja menor ou ao menos igual que a velocidade de propagação numérica, fazendo com que a distância propagada pela perturbação não seja maior do que a divisão da malha espacial:<br />
<br />
<math>\left|v\right|\Delta t \le \Delta x </math><br />
<br />
== O Problema Físico ==<br />
<br />
===O Modelo de Corda Ideal===<br />
<br />
Para uma primeira abordagem da equação da onda, consideramos uma corda com suas extremidades fixas. Podemos dividir o comprimento <math>L</math> dessa corda em <math>K</math> intervalos de comprimentos iguais, dessa forma <math>\Delta x = \frac{L}{K}</math>. Cada intervalo é discretizado, representado por <math>x_i</math>, <math>i=0,1,...,K</math>. Também podemos dividir o tempo em intervalos iguais <math>\Delta t</math> e denotá-los como <math>t_n</math>, <math>n =0,1,...,t_{max}</math>. Abaixo temos uma esquematização das informações que precisamos para cada ponto da corda:<br />
<br />
[[Arquivo:grid.png]]<br />
<br />
Tendo feita a discretização das variáveis, podemos aproximar a equação da onda por diferenciação finita, utilizando derivadas centradas da seguinte forma:<br />
<br />
<math>\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}</math><br />
<br />
<math>\frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}</math><br />
<br />
onde <math>U_i^n</math> representa o valor discretizado de <math>u(x_i,t_n)</math>.<br />
<br />
Assim, chegamos em uma equação discretizada:<br />
<br />
<math>\frac{U_i^{n+1}-2U_i^n+U_i^{n-1}}{(\Delta t)^2} = v^2 \frac{U_{i+1}^n-2U_i^n+U_{i-1}^n}{(\Delta x)^2}</math>. <br />
<br />
Sabendo que essa discretização da equação da onda pode ser verificada como sendo o método Leapfrog (ver seção do método de Leapfrog [https://fiscomp.if.ufrgs.br/index.php/Grupo3_-_Ondas2#O_M.C3.A9todo_de_Leapfrog método de Leapfrog]), podemos resolver a equação para <math>U_i^{n+1}</math> para sabermos o deslocamento vertical de uma partição da corda no momento de tempo seguinte, assim obtendo<br />
<br />
<math>U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}</math>,<br />
<br />
onde <math>r = v \frac{\Delta t}{\Delta x}.</math><br />
<br />
===Um Quadro Mais Realístico - O Modelo de Corda Rígida ===<br />
<br />
Para nos aproximarmos de um modelo mais real, podemos adicionar um termo à equação original da onda que corresponde ao efeito de fricção em uma corda. A equação da onda mais geral com efeito de fricção pode ser escrita como: <ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math>\frac{\partial^2 u}{\partial t^2} = v^2 \left( \frac{\partial^2 u}{\partial x^2} - \epsilon L^2 \frac{\partial^4 u}{\partial x^4} \right),</math><br />
<br />
onde <math>v</math> é a velocidade transversal de propagação do pulso na corda, dada pela relação <math>v = \sqrt[]{\frac{T}{\rho}}</math> (sendo <math>T</math> a tensão na corda e <math>\rho</math> a densidade linear da mesma), <math>\epsilon</math> é um parâmetro adimensional de fricção que representa a rigidez da corda e <math>L</math> o comprimento da corda.<br />
<br />
O parâmetro <math>\epsilon</math> é dado por<br />
<br />
<math>\epsilon = \kappa² \frac{E S}{T L^2}</math>,<br />
<br />
onde <math>\kappa</math> é o [https://en.wikipedia.org/wiki/Radius_of_gyration raio de giro] da corda, <math>E</math> é o [https://en.wikipedia.org/wiki/Young%27s_modulus Módulo de Young] e <math>S</math> a área da secção da corda.<br />
<br />
Discretizamos a equação da seguinte maneira:<br />
<br />
<math><br />
\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}</math><br />
<br />
<math> \frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}</math><br />
<br />
<math> \frac{\partial^4u}{\partial x^4}=\frac{U^n_{i+2}-4U^n_{i+1}+6U^n_i-4U^n_{i-1}+U^n_{i-2}}{\Delta x^4}<br />
</math><br />
<br />
e resolvemos para <math>U_i^{n+1}</math>, obtendo:<br />
<br />
<math> U_i^{n+1}=[2-2r^2-6\epsilon r^2K^2]U_i^n - U_i^{n-1} +r^2[1+4\epsilon K^2][U_{i+1}^n+U_{i-1}^n]-\epsilon r^2K^2[U_{i+2}^n + U_{i-2}^n].</math><br />
<br />
O fato de essa discretização depender do deslocamento da corda em posições <math>i-2</math> e <math>i+2</math> implica em precisarmos simular "pontos fantasmas" quando integramos os extremos das cordas. Para fazermos isso, podemos ou utilizar a aproximação <math>U_{-1}^n = -U_{+1}^n</math> ou podemos considerar esses "pontos fantasmas" como pontos presos e, portanto, sempre iguais a zero.<br />
<br />
== Os Métodos Utilizados ==<br />
<br />
Foi realizada uma abordagem ao problema da corda real a partir de três métodos diferentes de integração numérica.<br />
<br />
O método mais básico é chamado de FTCS (Forward-Time-Centered-Space) e consiste em duas expansões de Taylor ao redor do ponto <math>x_j</math>:<br />
<br />
<math>u(x_i + \Delta x,t^n) = u(x_i,t^n) + \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3),</math><br />
<br />
<math>u(x_i - \Delta x,t^n) = u(x_i,t^n) - \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3).</math><br />
<br />
Subtraindo as duas expressões, encontramos a expressão<br />
<br />
<math>\left.\frac{\partial u}{\partial x}\right|_i^n = \frac{u^n_{i+1} - u^n_{i-1}}{2 \Delta x} + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
A qual podemos substituir na equação da onda, juntamente com a discretização da derivada parcial temporal. Temos então que, para um sistema linear de equações hiperbólicas:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta t^2, \Delta x^2 \Delta t)</math><br />
<br />
Visto que essa última notação é mais genérica, ela será utilizada para a explicação dos métodos posteriores.<br />
<br />
=== O Método de Lax-Friedrichs ===<br />
<br />
O método de Lax-Friedrichs consiste em substituir o termo <math>\textbf{U}^n_i</math> com sua respectiva média espacial, i.e., <math>U^n_i = (U^n_{i+1} + U^n_{i-1})/2</math>. Logo, temos a seguinte equação de recorrência:<br />
<br />
<math>\textbf{U}^{n+1}_i = \frac{1}{2}(\textbf{U}^n_{i+1} + \textbf{U}^n_{i-1}) - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)</math><br />
<br />
=== O Método de Leapfrog ===<br />
<br />
Tanto o método FTCS quanto o método de Lax-Friedrichs são métodos de primeira ordem para a derivada temporal. Nessas circunstâncias, <math>v \Delta t</math> deve ser significantemente menor do que <math>\Delta x</math>, muito abaixo do limite imposto pela condição de Courant.<br />
<br />
Uma nova expressão para a derivada temporal, com precisão de segunda ordem é dada por<br />
<br />
<math>\left.\frac{\partial u}{\partial t}\right|^n_i = \frac{U^{n+1}_i - U^{n-1}_i}{2 \Delta t} + \mathcal{O}(\Delta t^2).</math><br />
<br />
Substituindo a nova expressão acima no método de FTCS discutido anteriormente, encontramos o método de Leapfrog:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^{n-1}_i - \frac{\Delta t}{\Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2).</math><br />
<br />
Como o método de Leapfrog será o mais aplicado na resolução do problema da onda, é interessante um aprofundamento maior do método. Podemos adaptar o método de Leapfrog para o sistema de equações definido para a equação da onda ao fazermos a discretização ao redor de um ponto qualquer <math>i</math> no instante de tempo <math>n</math>:<br />
<br />
<math><br />
k_{i+\frac{1}{2}}^n \equiv v \left.\frac{\partial U}{\partial x}\right|_{i+\frac{1}{2}}^{n} = v \frac{U_{i+1}^n-U_i^n}{\Delta x} + \mathcal{O}(\Delta x) \qquad (1)<br />
</math><br />
<br />
<math><br />
s_{i}^{n+\frac{1}{2}} \equiv \left.\frac{\partial U}{\partial t}\right|_{i}^{n+\frac{1}{2}} = \frac{U_{i}^{n+1}-U_i^n}{\Delta t} + \mathcal{O}(\Delta t) \qquad (2)<br />
</math><br />
<br />
Com essas discretizações, podemos utilizar as equações (1) e (2) para resolvermos para <math>k^{n+1}_{i+\frac{1}{2}}</math> apenas em termos de <math>s</math>, <math>k</math> e <math>r</math>. Fazendo as substituições dessas duas equações uma na outra (ver passo a passo: [[Dedução Leapfrog]]), obtemos:<br />
<br />
<math>\frac{\Delta x}{v}k^{n+1}_{i+\frac{1}{2}} = s^{n+\frac{1}{2}}_{i+1}\Delta t + \frac{\Delta x}{v}k^{n}_{i+\frac{1}{2}} + U^n_i - (s^{n+\frac{1}{2}}_i \Delta t + U^n_i)</math><br />
<br />
Dessa equação, chegamos a<br />
<br />
<math><br />
k_{i+\frac{1}{2}}^{n+1} = k_{i+\frac{1}{2}}^n+r(s_{i+1}^{n+\frac{1}{2}}-s_{i}^{n+\frac{1}{2}}) \qquad (3)<br />
</math><br />
<br />
Utilizando o mesmo raciocínio, podemos também resolver para <math>s^{n+\frac{1}{2}}_i</math> e obter<br />
<br />
<math><br />
s_i^{n+\frac{1}{2}} = s_{i}^{n-\frac{1}{2}}+r(k_{i+\frac{1}{2}}^{n}-k_{i-\frac{1}{2}}^{n}) \qquad (4)<br />
</math><br />
<br />
Com essas duas equações, podemos fazer uma integração utilizando o método de Euler para obter <math>U_i^{n+1}</math>, ou seja, o deslocamento de um determinado ponto <math>i</math> da corda no próximo instante de tempo:<br />
<br />
<math>U_i^{n+1} = U_i^n + \frac{\Delta t}{2}s_i^{n+\frac{1}{2}}+\mathcal{O}(\Delta x^2).</math><br />
<br />
Contudo, podemos fazer uma simples substituição das equações <math>(1)</math> e <math>(2)</math> nas equações <math>(3)</math> e <math>(4)</math> e, assim, obtemos que a representação de Leapfrog da equação da onda é dada pela discretização de segunda ordem da própria equação da onda, com <math>\mathcal{O}(\Delta t^2, \Delta x^2)</math> (ver passo a passo da comparação [[Discretização x Leapfrog]]. Isso nos dá uma solução de "um passo", onde só precisamos efetuar o cálculo da equação discretizada pelo método da derivação finita, ou seja, para o caso da corda ideal, a equação<br />
<br />
<math>U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}.</math><br />
<br />
=== O Método de Lax-Wendroff ===<br />
<br />
O método de Lax-Wendroff é a extensão do método de Lax-Friedrichs de segunda ordem. Calculamos o vetor <math>U</math> a partir de um passo médio de Lax-Friedrichs:<br />
<br />
<math>\textbf{U}^{n+\frac{1}{2}}_{i + \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i+1} + \textbf{U}^n_i] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_i] + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
<math>\textbf{U}^{n+\frac{1}{2}}_{i - \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i} + \textbf{U}^n_{i-1}] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
E encontramos os fluxos <math>\textbf{F}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}</math> a partir dos valores de <math>\textbf{U}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}.</math><br />
<br />
Logo, com um meio passo de Leapfrog, temos a expressão final do método:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{\Delta x} \left[\textbf{F}^{n + \frac{1}{2}}_{i + \frac{1}{2}} - \textbf{F}^{n + \frac{1}{2}}_{i - \frac{1}{2}}\right] + \mathcal{O}(\Delta x^2)</math><br />
<br />
== Análise e Discussão dos Resultados ==<br />
Escolhemos para simular quatro diferentes cordas: as cordas C2, C4 e C7, que são cordas dó de um piano <ref>Antoine Chaign, Anders Askenfelt, "Numerical simulations of piano strings. I. A physical model for a struck string using finite difference methods". Signal Department, Paris, France. Department of Speech Communication and Music Acoustics; Royal Institute of Technology, Stockholm, Sweden.</ref> e uma corda qualquer baseada nos dados encontrados no livro "''Computational Physics''" <ref name=giordano/>. Os dados das cordas C2, C4 e C7 estão na tabela abaixo, onde iremos definir para cada corda o comprimento, a massa, a tensão aplicada elas, o número de divisões existentes, amostragem de sinal (que é um parâmetro obtido experimentalmente)e o parâmetro de fricção.<br />
<br />
{| class="wikitable"<br />
|-<br />
!<br />
! '''C2'''<br />
! '''C4'''<br />
! '''C7'''<br />
|-<br />
| '''Comprimento''' (<math>m</math>)<br />
| <math>1.90</math><br />
| <math>0.62</math><br />
| <math>0.09</math><br />
|-<br />
| '''Massa'''(<math>g</math>)<br />
| <math>35</math><br />
| <math>3.93 </math><br />
| <math>0.467</math><br />
|-<br />
| '''Tensão''' (<math>N</math>)<br />
| <math>750</math><br />
| <math>670</math><br />
| <math>750</math><br />
|-<br />
| '''Divisões'''<br />
| <math>100</math><br />
| <math>50</math><br />
| <math>16</math><br />
|-<br />
| '''Amostragem de sinal'''<br />
| <math>16\times10^{3}</math><br />
| <math>32\times10^{3}</math><br />
| <math>96\times10^{3}</math><br />
|-<br />
|'''Parâmetro de fricção'''<br />
| <math>7.5\times10^{-6}</math><br />
| <math>3.82\times10^{-5}</math><br />
| <math>8.67\times10^{-4}</math><br />
|}<br />
<br />
Desses dados, temos que a densidade linear de massa das cordas é dada por <br />
<br />
<math>\rho = \frac{M}{L},</math><br />
<br />
onde <math>M</math> é a massa e <math>L</math> o comprimento da corda, <br />
<br />
<math>v = \sqrt{\frac{T}{\rho}},</math><br />
<br />
onde <math>T</math> é a tensão na corda, <br />
<br />
<math>\Delta x = \frac{L}{K},</math><br />
<br />
<math>\Delta t = \frac{1}{f_e},</math><br />
<br />
e <br />
<br />
<math>r = v\frac{\Delta t}{\Delta x}.</math><br />
<br />
Os dados obtidos a partir de todas essas equações são calculados pelo programa com base dos dados da tabela.<br />
<br />
Para a simulação baseada nos dados retirados do livro ''"Computational Physics"''<ref name=giordano/>, utilizamos uma corda com 2 metros de comprimento, com velocidade de propagação transversal da onda sendo 300<math>m/s</math>, <math>\Delta x</math> de 0.01<math>m</math>, <math>\Delta t = \frac{\Delta x }{4v}</math> e parâmetro de fricção de <math>7.5\times10^{-6}</math>.<br />
<br />
Supondo uma corda inicialmente em repouso, temos que em <math>t = 0</math> a corda irá receber em seu centro o equivalente à batida do martelo de um piano. Supomos que esse estímulo da batida do martelo possuía o formato aproximado de uma Gaussiana com amplitude de <math>\frac{1}{4}</math> do comprimento de cada corda. <br />
<br />
Então, com o estado inicial da simulação sendo um pulso com o formato de um pacote gaussiano, utilizando condições de contorno fixas, ou seja, mantendo as extremidades da corda paradas e utilizando os dados da tabela para simularmos cada uma das cordas, começamos a simular a propagação de ondas.<br />
<br />
Utilizando o método de Leapfrog, foi realizada uma primeira simulação para uma onda ideal em uma corda:<br />
<br />
[[File:ideal.gif|frame|none|alt=Alt text|Simulação de uma onda em uma corda ideal com condições de contorno u(0,t) = 0 e u(L,t) = 0. A corda simulada possuía comprimento de 2 metros e a amplitude inicial do pulso gaussiano tinha amplitude de 0.5 metros. Foi utilizado uma velocidade de propagação de 300 m/s, <math>\Delta x = 0.01</math> e <math>\Delta t = \frac{\Delta x }{4v}</math>.]]<br />
<br />
'''Corda C2:'''<br />
<br />
[[Arquivo:C2.gif|frame|none|alt=Alt text|Simulação de uma corda C2 de um piano com os parâmetros da tabela acima.]][[Arquivo:C2foto.png|frame|none|alt=Alt text|Estado da corda C2 em diferentes instantes de tempo.]]<br />
<br />
'''Corda C4:'''<br />
<br />
[[Arquivo:C4.gif|frame|none|alt=Alt text|Simulação de uma corda C4 de um piano com os parâmetros da tabela acima.]]<br />
[[Arquivo:C4foto.png|frame|none|alt=Alt text|Estado da corda C4 em diferentes instantes de tempo.]]<br />
<br />
'''Corda C7:'''<br />
<br />
[[Arquivo:C7.gif|frame|none|alt=Alt text|Simulação de uma corda C7 de um piano com os parâmetros da tabela acima.]]<br />
[[Arquivo:C7foto.png|frame|none|alt=Alt text|Estado da corda C7 em diferentes instantes de tempo.]]<br />
<br />
'''Corda com as definições do livro "''Computational Physics''"<ref name=giordano/>:'''<br />
<br />
[[Arquivo:Giordano.gif|frame|none|alt=Alt text|Simulação da corda exemplificada no livro ''Computational Physics'' <ref name=giordano/>. Os parâmetros utilizados estão descritos no texto.]]<br />
[[Arquivo:Giordanofoto.png|frame|none|alt=Alt text|Estado da corda usada como exemplo pelo autor Giordano <ref name=giordano/> em diferentes instantes de tempo.]]<br />
<br />
É possível observar que o tempo necessário para que, devido a fricção, os movimentos na corda diferenciem-se cada vez mais da solução para a corda ideal é menor para um tamanho de corda menor, ou seja, a fricção acaba sendo mais relevante mais rapidamente em cordas mais curtas. Isso significa que deixamos de ter apenas dois pulsos propagando-se em sentidos opostos para termos ou mais pulsos de amplitudes menores, ou a soma de pulsos de diferentes amplitudes.<br />
<br />
=== Scripts para a simulação dos resultados apresentados: ===<br />
<br />
[[Programa baseado no método de Leapfrog para a simulação de uma corda ideal]]<br />
<br />
== Análise de Erro e Estabilidade dos Métodos ==<br />
<br />
=== Estabilidade do método Leapfrog ===<br />
Pela estabilidade de Von Neumann, podemos escrever que <br />
<br />
<math><br />
r \leq 1.<br />
</math><br />
<br />
Para <math>r = 1</math>, a equação da discretização da onda pode ser reescrita como<br />
<br />
<math>U_i^{n+1} = U_{i+1}^n+U_{i-1}^n-U_i^{n-1}.</math><br />
<br />
Essa escolha com <br />
<br />
<math>\frac{\Delta x}{\Delta t} = v</math><br />
<br />
nos dá a solução exata sem dispersão numérica, como pode ser verificado pela condição CFL. Contudo, <math>r=1</math> é válido somente no caso de uma corda ideal.<br />
É conveniente escrever a condição acima em termos da amostragem de sinal <math>f_e = \frac{1}{\Delta t}</math> e a frequência fundamental da corda <math>f_1 = \frac{v}{2L}</math>, o que nos leva a<br />
<br />
<math><br />
Kf_1 \leq \frac{f_e}{2}<br />
</math><br />
<br />
O[https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem Teorema de Nyquist-Shannon] diz que a frequência superior no espectro deve ser menor do que <math>\frac{f_e}{2}</math> para evitar serrilhamento e para garantir uma reconstrução única e contínua. Logo, no caso ideal quando as autofrequências da corda são igualmente espaçadas (<math>\Delta f = f_1</math>), a condição de Nyquist indica que o número máximo de frequências no espectro é <math>K</math>. Isso significa que essa condição pode ser usada para selecionar o número apropriado de pontos espaciais <math>K</math> para a corda. Entretanto, como <math>K</math> é um inteiro, apenas valores discretos da frequência natural podem ser obtidos sem erros de trucamento, ou seja, usando <math>r = 1</math>. Como séries discretas não costumam ser utilizadas, precisamos aceitar pequenos erros de truncamento para ajustar <math>f_1</math>, ou seja, utilizando <math>r < 1</math>. No caso de uma onda com fricção, temos que <math>r=\frac{1}{4}</math> é um valor de boa estabilidade.<br />
<br />
== Referências Bibliográficas==<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Script&diff=2300Script2018-01-26T19:01:23Z<p>Lucasdoria: </p>
<hr />
<div><source lang="c"><br />
#include<stdio.h><br />
#include<stdlib.h><br />
#include<math.h><br />
#include"gauss.h"//Biblioteca para gerar pulso gaussiano inicial.<br />
<br />
#define dx 0.1 //Tamanho de passo dx.<br />
#define v 1.0 //Velocidade do pulso.<br />
#define L 100 //Tamanho da corda.<br />
#define t_max 300 //Tempo de simulação.<br />
<br />
void propagate();<br />
<br />
void main()<br />
{<br />
propagate();<br />
}<br />
<br />
void propagate()<br />
{<br />
int i, n;<br />
double u[t_max][L], dt, alpha; //u[t][x] é o deslocamento u(x,t) da corda na posição x e no instante t.<br />
<br />
dt = dx/v;<br />
<br />
for(i = 0 ; i < t_max; i++)//Condições de contorno fixas. Corda presa nas extremidades.<br />
{<br />
u[i][0] = 0.0;<br />
u[i][L-1] = 0.0;<br />
}<br />
<br />
for(n = 0 ; n < 2 ; n++)//Pulso gaussiano inicial.<br />
{<br />
for(i = 1 ; i < L-1 ; i++)<br />
{<br />
u[n][i] = gaussiana(i);<br />
}<br />
}<br />
<br />
alpha = v * dt/dx;<br />
<br />
<br />
for(n = 1; n < t_max ; n++)//Iterações do programa baseado no algoritmo Staggered-Leapfrog.<br />
{<br />
for(i = 1 ; i < L-1 ; i++)<br />
{<br />
u[n+1][i] = alpha*alpha*u[n][i+1] + 2.0*u[n][i]*(1.0 - alpha*alpha) + alpha*alpha*u[n][i-1] - u[n-1][i];<br />
}<br />
<br />
printf("set title 'Tempo = %d'\nset xrange [%d:%d]\nset yrange [%lf:%lf]\npl \'-' w lp pt 7 ps 0.8 \n", n,0,L,-1.0,1.0);<br />
for(i = 0; i<L; i++)<br />
printf("%d\t%lf\n",i,u[n+1][i]);<br />
printf("e\npause 0.05\n"); <br />
/*<br />
As últimas 4 linhas do programa (4 linhas acima) tem a função de graficar os dados estimados no gnuplot a cada iteração. Com uma pausa de 0.05 o comando "pl \'-'" indica que um conjunto de dados está para ser plotado.<br />
*/<br />
}<br />
<br />
}<br />
</source></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Script&diff=2299Script2018-01-26T18:59:26Z<p>Lucasdoria: Criou página com '<nowiki> #include<stdio.h> #include<stdlib.h> #include<math.h> #include"gauss.h"//Biblioteca para gerar pulso gaussiano inicial. #define dx 0.1 //Tamanho de passo dx. #defin...'</p>
<hr />
<div><nowiki><br />
<br />
#include<stdio.h><br />
#include<stdlib.h><br />
#include<math.h><br />
#include"gauss.h"//Biblioteca para gerar pulso gaussiano inicial.<br />
<br />
#define dx 0.1 //Tamanho de passo dx.<br />
#define v 1.0 //Velocidade do pulso.<br />
#define L 100 //Tamanho da corda.<br />
#define t_max 300 //Tempo de simulação.<br />
<br />
void propagate();<br />
<br />
void main()<br />
{<br />
propagate();<br />
}<br />
<br />
void propagate()<br />
{<br />
int i, n;<br />
double u[t_max][L], dt, alpha; //u[t][x] é o deslocamento u(x,t) da corda na posição x e no instante t.<br />
<br />
dt = dx/v;<br />
<br />
for(i = 0 ; i < t_max; i++)//Condições de contorno fixas. Corda presa nas extremidades.<br />
{<br />
u[i][0] = 0.0;<br />
u[i][L-1] = 0.0;<br />
}<br />
<br />
for(n = 0 ; n < 2 ; n++)//Pulso gaussiano inicial.<br />
{<br />
for(i = 1 ; i < L-1 ; i++)<br />
{<br />
u[n][i] = gaussiana(i);<br />
}<br />
}<br />
<br />
alpha = v * dt/dx;<br />
<br />
<br />
for(n = 1; n < t_max ; n++)//Iterações do programa baseado no algoritmo Staggered-Leapfrog.<br />
{<br />
for(i = 1 ; i < L-1 ; i++)<br />
{<br />
u[n+1][i] = alpha*alpha*u[n][i+1] + 2.0*u[n][i]*(1.0 - alpha*alpha) + alpha*alpha*u[n][i-1] - u[n-1][i];<br />
}<br />
<br />
printf("set title 'Tempo = %d'\nset xrange [%d:%d]\nset yrange [%lf:%lf]\npl \'-' w lp pt 7 ps 0.8 \n", n,0,L,-1.0,1.0);<br />
for(i = 0; i<L; i++)<br />
printf("%d\t%lf\n",i,u[n+1][i]);<br />
printf("e\npause 0.05\n"); <br />
/*<br />
As últimas 4 linhas do programa (4 linhas acima) tem a função de graficar os dados estimados no gnuplot a cada iteração. Com uma pausa de 0.05 o comando "pl \'-'" indica que um conjunto de dados está para ser plotado.<br />
*/<br />
}<br />
<br />
}<br />
<br />
</nowiki></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo3_-_Ondas2&diff=2298Grupo3 - Ondas22018-01-26T18:41:47Z<p>Lucasdoria: /* Análise e Discussão dos Resultados */</p>
<hr />
<div>'''Grupo: Lucas Dória, Caetano Pires e Ânderson Rosa.'''<br />
<br />
O objetivo deste trabalho é analisar três métodos diferentes de integração numérica para resolução de equações diferenciais parciais (EDP's). A equação aqui abordada é a equação da onda, a qual consiste em uma EDP hiperbólica de segunda ordem. Uma pequena noção dos métodos numéricos é dada, após a explicação do problema físico abordado. Os dados encontrados são comentados e comparados com os resultados esperados. Simulações também foram feitas para melhor visualização dos fenômenos. Por último, foi feita uma análise de erros e estabilidade para cada um dos métodos, assim como algumas conclusões foram inferidas.<br />
<br />
== Introdução ==<br />
<br />
Equações diferenciais parciais hiperbólicas geralmente podem ser formuladas a partir de teoremas de conservação. Um exemplo é a equação do tipo:<br />
<br />
<math>\frac{\partial \vec{U}}{\partial t} + \nabla \cdot \vec{F}(U) = \vec{S}(U),</math><br />
<br />
onde <math>\vec{U}</math> é o vetor de densidades da quantidade conservada, i.e., <math>\vec{U} = (U_1,...,U_n),</math> <math>\vec{F}</math> é o fluxo de densidade e <math>\vec{S}</math> é um termo genérico representando fontes e/ou sumidouros.<br />
<br />
Uma classe especial de equações hiperbólicas são as chamadas equações de adveção, na qual a derivada temporal da quantidade conservada <math>\vec{U}(\vec{x},t)</math> é proporcional à sua derivada espacial. Nesses casos, <math>\vec{F}(U)</math> é diagonal e dada por:<br />
<br />
<math>\vec{F}(U) = v I \cdot \vec{U},</math><br />
<br />
onde <math>I</math> é a matriz identidade.<br />
<br />
Considerando apenas uma dimensão e com <math>\vec{U} \equiv u</math>, temos a equação de adveção:<br />
<br />
<math>\frac{\partial u}{\partial t} + v \frac{\partial u}{\partial x} = 0,</math><br />
<br />
onde <math>v</math> é a velocidade de propagação do pulso gerado. A equação admite uma solução analítica da forma <math>u = f(x - vt),</math> representando um pulso se movendo na direção positiva de <math>x.</math><br />
<br />
A equação da onda em uma dimensão é uma EDP hiperbólica de segunda ordem dada por<br />
<br />
<math><br />
\frac{\partial^2 u}{\partial t^2} = v^2 \frac{\partial^2 u}{\partial x^2},<br />
</math><br />
<br />
onde <math>u = u(x,t)</math> é o deslocamento transversal à direção de propagação de uma posição <math>x</math> no instante <math>t</math> e admite duas soluções, representadas por pulsos, na forma <math>f_1(x + vt)</math> e <math>f_2(x - vt).</math><br />
<br />
Assumindo que <math>v</math> não depende da posição na equação da onda, nos restringimos a problemas lineares. Além disso, se escrevermos<br />
<br />
<math><br />
k = v \frac{\partial u}{\partial x},\qquad s = \frac{\partial u}{\partial t},<br />
</math><br />
<br />
então a equação da onda pode ser escrita como um sistema de três equações diferenciais de primeira ordem:<br />
<br />
<math><br />
\begin{cases}\displaystyle \frac{\partial k}{\partial t} = v\frac{\partial s}{\partial x} \\\\<br />
\displaystyle \frac{\partial s}{\partial t} = v\frac{\partial k}{\partial x} \\\\<br />
\displaystyle \frac{\partial u}{\partial t} = s <br />
\end{cases}<br />
</math><br />
<br />
Em notação vetorial, o sistema acima pode ser reescrito na forma conservativa como: <math>\frac{\partial U}{\partial t}+ \frac{\partial F(U)}{\partial x} = 0, </math><br />
<br />
onde <math>U = \begin{pmatrix}k\\s\end{pmatrix},\quad \textrm{e}\quad F(U) =\begin{pmatrix}0 & -v\\-v & 0\end{pmatrix}</math><br />
<br />
==Condição CFL==<br />
<br />
Uma condição necessária mas nem sempre suficiente para a convergência de equações diferenciais parciais resolvidas a partir de métodos de diferença, conhecida como condição CFL <ref>Luciano Rezzolla, "Numerical Methods for the Solution of Partial Differential Equations". Albert Einstein Institute, Max-Planck-Institute for Gravitational Physics, Potsdam, Germany.</ref>, é formulada a partir do termo de “domínio de dependência”.<br />
<br />
Considerando, por exemplo, a equação da advecção [https://en.wikipedia.org/wiki/Advection] em uma aproximação a partir de métodos de diferença em sua forma explícita <br />
<br />
<math>\frac{U^{n+1}_i-U^n_i}{\Delta t} + v\frac{U^n_{i}-U^n_{i-1}}{\Delta x}=0,</math><br />
<br />
diz-se que o valor de <math>U^{n+1}_i</math> depende dos valores anteriores de <math>U^n_i</math> e <math>U^n_{i-1}</math>, e esses dois pontos dependem, novamente, de outros dois pontos em tempos anteriores. Todos esses pontos dependentes formam o domínio de dependência do valor <math>U^{n+1}_i</math>, representado abaixo (botar figura do domínio de dependência).<br />
<br />
A condição CFL enuncia que a condição mínima para que haja estabilidade em métodos de diferenças o domínio de dependência da equação diferencia parcial, dado por sua equação característica, deve estar situado dentro do domínio de dependência do esquema numérico.<br />
<br />
A partir dessa condição, define-se o número CFL como <br />
<br />
<math>r\equiv v\frac{\Delta t}{\Delta x}</math><br />
<br />
onde <math>\Delta t</math> é um passo na malha temporal e <math>\Delta x</math> é um passo na malha espacial. Para casos unidimensionais, como o que será tratado aqui, a condição CFL é satisfeita se r<br />
<br />
<math> \left|r\right| \le 1 </math> <br />
<br />
Um uso da condição CFL é determinar o tamanho do passo temporal, sabendo-se <math>v</math> e <math>\Delta x</math>:<br />
<br />
<math>\Delta t = c_{cfl}\frac{\Delta x}{\left|v\right|}</math><br />
<br />
onde o fator <math>c_{cfl}<1</math>.<br />
<br />
O número CFL pode ser entendido como um fluxo numérico advectivo adimensionalisado pelas malhas espacial e temporal do problema. De um ponto de vista matemático, ele garante que o domínio numérico de dependência é sempre maior que o domínio físico. De um ponto de vista físico, é garantido que a velocidade de propagação de qualquer perturbação, como uma onda, seja menor ou ao menos igual que a velocidade de propagação numérica, fazendo com que a distância propagada pela perturbação não seja maior do que a divisão da malha espacial:<br />
<br />
<math>\left|v\right|\Delta t \le \Delta x </math><br />
<br />
== O Problema Físico ==<br />
<br />
===O Modelo de Corda Ideal===<br />
<br />
Para uma primeira abordagem da equação da onda, consideramos uma corda com suas extremidades fixas. Podemos dividir o comprimento <math>L</math> dessa corda em <math>K</math> intervalos de comprimentos iguais, dessa forma <math>\Delta x = \frac{L}{K}</math>. Cada intervalo é discretizado, representado por <math>x_i</math>, <math>i=0,1,...,K</math>. Também podemos dividir o tempo em intervalos iguais <math>\Delta t</math> e denotá-los como <math>t_n</math>, <math>n =0,1,...,t_{max}</math>. Abaixo temos uma esquematização das informações que precisamos para cada ponto da corda:<br />
<br />
[[Arquivo:grid.png]]<br />
<br />
Tendo feita a discretização das variáveis, podemos aproximar a equação da onda por diferenciação finita, utilizando derivadas centradas da seguinte forma:<br />
<br />
<math>\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}</math><br />
<br />
<math>\frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}</math><br />
<br />
onde <math>U_i^n</math> representa o valor discretizado de <math>u(x_i,t_n)</math>.<br />
<br />
Assim, chegamos em uma equação discretizada:<br />
<br />
<math>\frac{U_i^{n+1}-2U_i^n+U_i^{n-1}}{(\Delta t)^2} = v^2 \frac{U_{i+1}^n-2U_i^n+U_{i-1}^n}{(\Delta x)^2}</math>. <br />
<br />
Sabendo que essa discretização da equação da onda pode ser verificada como sendo o método Leapfrog (ver seção do método de Leapfrog [https://fiscomp.if.ufrgs.br/index.php/Grupo3_-_Ondas2#O_M.C3.A9todo_de_Leapfrog método de Leapfrog]), podemos resolver a equação para <math>U_i^{n+1}</math> para sabermos o deslocamento vertical de uma partição da corda no momento de tempo seguinte, assim obtendo<br />
<br />
<math>U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}</math>,<br />
<br />
onde <math>r = v \frac{\Delta t}{\Delta x}.</math><br />
<br />
===Um Quadro Mais Realístico - O Modelo de Corda Rígida ===<br />
<br />
Para nos aproximarmos de um modelo mais real, podemos adicionar um termo à equação original da onda que corresponde ao efeito de fricção em uma corda. A equação da onda mais geral com efeito de fricção pode ser escrita como: <ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math>\frac{\partial^2 u}{\partial t^2} = v^2 \left( \frac{\partial^2 u}{\partial x^2} - \epsilon L^2 \frac{\partial^4 u}{\partial x^4} \right),</math><br />
<br />
onde <math>v</math> é a velocidade transversal de propagação do pulso na corda, dada pela relação <math>v = \sqrt[]{\frac{T}{\rho}}</math> (sendo <math>T</math> a tensão na corda e <math>\rho</math> a densidade linear da mesma), <math>\epsilon</math> é um parâmetro adimensional de fricção que representa a rigidez da corda e <math>L</math> o comprimento da corda.<br />
<br />
O parâmetro <math>\epsilon</math> é dado por<br />
<br />
<math>\epsilon = \kappa² \frac{E S}{T L^2}</math>,<br />
<br />
onde <math>\kappa</math> é o [https://en.wikipedia.org/wiki/Radius_of_gyration raio de giro] da corda, <math>E</math> é o [https://en.wikipedia.org/wiki/Young%27s_modulus Módulo de Young] e <math>S</math> a área da secção da corda.<br />
<br />
Discretizamos a equação da seguinte maneira:<br />
<br />
<math><br />
\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}</math><br />
<br />
<math> \frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}</math><br />
<br />
<math> \frac{\partial^4u}{\partial x^4}=\frac{U^n_{i+2}-4U^n_{i+1}+6U^n_i-4U^n_{i-1}+U^n_{i-2}}{\Delta x^4}<br />
</math><br />
<br />
e resolvemos para <math>U_i^{n+1}</math>, obtendo:<br />
<br />
<math> U_i^{n+1}=[2-2r^2-6\epsilon r^2K^2]U_i^n - U_i^{n-1} +r^2[1+4\epsilon K^2][U_{i+1}^n+U_{i-1}^n]-\epsilon r^2K^2[U_{i+2}^n + U_{i-2}^n].</math><br />
<br />
O fato de essa discretização depender do deslocamento da corda em posições <math>i-2</math> e <math>i+2</math> implica em precisarmos simular "pontos fantasmas" quando integramos os extremos das cordas. Para fazermos isso, podemos ou utilizar a aproximação <math>U_{-1}^n = -U_{+1}^n</math> ou podemos considerar esses "pontos fantasmas" como pontos presos e, portanto, sempre iguais a zero.<br />
<br />
== Os Métodos Utilizados ==<br />
<br />
Foi realizada uma abordagem ao problema da corda real a partir de três métodos diferentes de integração numérica.<br />
<br />
O método mais básico é chamado de FTCS (Forward-Time-Centered-Space) e consiste em duas expansões de Taylor ao redor do ponto <math>x_j</math>:<br />
<br />
<math>u(x_i + \Delta x,t^n) = u(x_i,t^n) + \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3),</math><br />
<br />
<math>u(x_i - \Delta x,t^n) = u(x_i,t^n) - \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3).</math><br />
<br />
Subtraindo as duas expressões, encontramos a expressão<br />
<br />
<math>\left.\frac{\partial u}{\partial x}\right|_i^n = \frac{u^n_{i+1} - u^n_{i-1}}{2 \Delta x} + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
A qual podemos substituir na equação da onda, juntamente com a discretização da derivada parcial temporal. Temos então que, para um sistema linear de equações hiperbólicas:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta t^2, \Delta x^2 \Delta t)</math><br />
<br />
Visto que essa última notação é mais genérica, ela será utilizada para a explicação dos métodos posteriores.<br />
<br />
=== O Método de Lax-Friedrichs ===<br />
<br />
O método de Lax-Friedrichs consiste em substituir o termo <math>\textbf{U}^n_i</math> com sua respectiva média espacial, i.e., <math>U^n_i = (U^n_{i+1} + U^n_{i-1})/2</math>. Logo, temos a seguinte equação de recorrência:<br />
<br />
<math>\textbf{U}^{n+1}_i = \frac{1}{2}(\textbf{U}^n_{i+1} + \textbf{U}^n_{i-1}) - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)</math><br />
<br />
=== O Método de Leapfrog ===<br />
<br />
Tanto o método FTCS quanto o método de Lax-Friedrichs são métodos de primeira ordem para a derivada temporal. Nessas circunstâncias, <math>v \Delta t</math> deve ser significantemente menor do que <math>\Delta x</math>, muito abaixo do limite imposto pela condição de Courant.<br />
<br />
Uma nova expressão para a derivada temporal, com precisão de segunda ordem é dada por<br />
<br />
<math>\left.\frac{\partial u}{\partial t}\right|^n_i = \frac{U^{n+1}_i - U^{n-1}_i}{2 \Delta t} + \mathcal{O}(\Delta t^2).</math><br />
<br />
Substituindo a nova expressão acima no método de FTCS discutido anteriormente, encontramos o método de Leapfrog:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^{n-1}_i - \frac{\Delta t}{\Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2).</math><br />
<br />
Como o método de Leapfrog será o mais aplicado na resolução do problema da onda, é interessante um aprofundamento maior do método. Podemos adaptar o método de Leapfrog para o sistema de equações definido para a equação da onda ao fazermos a discretização ao redor de um ponto qualquer <math>i</math> no instante de tempo <math>n</math>:<br />
<br />
<math><br />
k_{i+\frac{1}{2}}^n \equiv v \left.\frac{\partial U}{\partial x}\right|_{i+\frac{1}{2}}^{n} = v \frac{U_{i+1}^n-U_i^n}{\Delta x} + \mathcal{O}(\Delta x) \qquad (1)<br />
</math><br />
<br />
<math><br />
s_{i}^{n+\frac{1}{2}} \equiv \left.\frac{\partial U}{\partial t}\right|_{i}^{n+\frac{1}{2}} = \frac{U_{i}^{n+1}-U_i^n}{\Delta t} + \mathcal{O}(\Delta t) \qquad (2)<br />
</math><br />
<br />
Com essas discretizações, podemos utilizar as equações (1) e (2) para resolvermos para <math>k^{n+1}_{i+\frac{1}{2}}</math> apenas em termos de <math>s</math>, <math>k</math> e <math>r</math>. Fazendo as substituições dessas duas equações uma na outra (ver passo a passo: [[Dedução Leapfrog]]), obtemos:<br />
<br />
<math>\frac{\Delta x}{v}k^{n+1}_{i+\frac{1}{2}} = s^{n+\frac{1}{2}}_{i+1}\Delta t + \frac{\Delta x}{v}k^{n}_{i+\frac{1}{2}} + U^n_i - (s^{n+\frac{1}{2}}_i \Delta t + U^n_i)</math><br />
<br />
Dessa equação, chegamos a<br />
<br />
<math><br />
k_{i+\frac{1}{2}}^{n+1} = k_{i+\frac{1}{2}}^n+r(s_{i+1}^{n+\frac{1}{2}}-s_{i}^{n+\frac{1}{2}}) \qquad (3)<br />
</math><br />
<br />
Utilizando o mesmo raciocínio, podemos também resolver para <math>s^{n+\frac{1}{2}}_i</math> e obter<br />
<br />
<math><br />
s_i^{n+\frac{1}{2}} = s_{i}^{n-\frac{1}{2}}+r(k_{i+\frac{1}{2}}^{n}-k_{i-\frac{1}{2}}^{n}) \qquad (4)<br />
</math><br />
<br />
Com essas duas equações, podemos fazer uma integração utilizando o método de Euler para obter <math>U_i^{n+1}</math>, ou seja, o deslocamento de um determinado ponto <math>i</math> da corda no próximo instante de tempo:<br />
<br />
<math>U_i^{n+1} = U_i^n + \frac{\Delta t}{2}s_i^{n+\frac{1}{2}}+\mathcal{O}(\Delta x^2).</math><br />
<br />
Contudo, podemos fazer uma simples substituição das equações <math>(1)</math> e <math>(2)</math> nas equações <math>(3)</math> e <math>(4)</math> e, assim, obtemos que a representação de Leapfrog da equação da onda é dada pela discretização de segunda ordem da própria equação da onda, com <math>\mathcal{O}(\Delta t^2, \Delta x^2)</math> (ver passo a passo da comparação [[Discretização x Leapfrog]]. Isso nos dá uma solução de "um passo", onde só precisamos efetuar o cálculo da equação discretizada pelo método da derivação finita, ou seja, para o caso da corda ideal, a equação<br />
<br />
<math>U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}.</math><br />
<br />
=== O Método de Lax-Wendroff ===<br />
<br />
O método de Lax-Wendroff é a extensão do método de Lax-Friedrichs de segunda ordem. Calculamos o vetor <math>U</math> a partir de um passo médio de Lax-Friedrichs:<br />
<br />
<math>\textbf{U}^{n+\frac{1}{2}}_{i + \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i+1} + \textbf{U}^n_i] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_i] + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
<math>\textbf{U}^{n+\frac{1}{2}}_{i - \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i} + \textbf{U}^n_{i-1}] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
E encontramos os fluxos <math>\textbf{F}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}</math> a partir dos valores de <math>\textbf{U}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}.</math><br />
<br />
Logo, com um meio passo de Leapfrog, temos a expressão final do método:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{\Delta x} \left[\textbf{F}^{n + \frac{1}{2}}_{i + \frac{1}{2}} - \textbf{F}^{n + \frac{1}{2}}_{i - \frac{1}{2}}\right] + \mathcal{O}(\Delta x^2)</math><br />
<br />
== Análise e Discussão dos Resultados ==<br />
Escolhemos para simular quatro diferentes cordas: as cordas C2, C4 e C7, que são cordas dó de um piano <ref>Antoine Chaign, Anders Askenfelt, "Numerical simulations of piano strings. I. A physical model for a struck string using finite difference methods". Signal Department, Paris, France. Department of Speech Communication and Music Acoustics; Royal Institute of Technology, Stockholm, Sweden.</ref> e uma corda qualquer baseada nos dados encontrados no livro "''Computational Physics''" <ref name=giordano/>. Os dados das cordas C2, C4 e C7 estão na tabela abaixo, onde iremos definir para cada corda o comprimento, a massa, a tensão aplicada elas, o número de divisões existentes, amostragem de sinal (que é um parâmetro obtido experimentalmente)e o parâmetro de fricção.<br />
<br />
{| class="wikitable"<br />
|-<br />
!<br />
! '''C2'''<br />
! '''C4'''<br />
! '''C7'''<br />
|-<br />
| '''Comprimento''' (<math>m</math>)<br />
| <math>1.90</math><br />
| <math>0.62</math><br />
| <math>0.09</math><br />
|-<br />
| '''Massa'''(<math>g</math>)<br />
| <math>35</math><br />
| <math>3.93 </math><br />
| <math>0.467</math><br />
|-<br />
| '''Tensão''' (<math>N</math>)<br />
| <math>750</math><br />
| <math>670</math><br />
| <math>750</math><br />
|-<br />
| '''Divisões'''<br />
| <math>100</math><br />
| <math>50</math><br />
| <math>16</math><br />
|-<br />
| '''Amostragem de sinal'''<br />
| <math>16\times10^{3}</math><br />
| <math>32\times10^{3}</math><br />
| <math>96\times10^{3}</math><br />
|-<br />
|'''Parâmetro de fricção'''<br />
| <math>7.5\times10^{-6}</math><br />
| <math>3.82\times10^{-5}</math><br />
| <math>8.67\times10^{-4}</math><br />
|}<br />
<br />
Desses dados, temos que a densidade linear de massa das cordas é dada por <br />
<br />
<math>\rho = \frac{M}{L},</math><br />
<br />
onde <math>M</math> é a massa e <math>L</math> o comprimento da corda, <br />
<br />
<math>v = \sqrt{\frac{T}{\rho}},</math><br />
<br />
onde <math>T</math> é a tensão na corda, <br />
<br />
<math>\Delta x = \frac{L}{K},</math><br />
<br />
<math>\Delta t = \frac{1}{f_e},</math><br />
<br />
e <br />
<br />
<math>r = v\frac{\Delta t}{\Delta x}.</math><br />
<br />
Os dados obtidos a partir de todas essas equações são calculados pelo programa com base dos dados da tabela.<br />
<br />
Para a simulação baseada nos dados retirados do livro ''"Computational Physics"''<ref name=giordano/>, utilizamos uma corda com 2 metros de comprimento, com velocidade de propagação transversal da onda sendo 300<math>m/s</math>, <math>\Delta x</math> de 0.01<math>m</math>, <math>\Delta t = \frac{\Delta x }{4v}</math> e parâmetro de fricção de <math>7.5\times10^{-6}</math>.<br />
<br />
Supondo uma corda inicialmente em repouso, temos que em <math>t = 0</math> a corda irá receber em seu centro o equivalente à batida do martelo de um piano. Supomos que esse estímulo da batida do martelo possuía o formato aproximado de uma Gaussiana com amplitude de <math>\frac{1}{4}</math> do comprimento de cada corda. <br />
<br />
Então, com o estado inicial da simulação sendo um pulso com o formato de um pacote gaussiano, utilizando condições de contorno fixas, ou seja, mantendo as extremidades da corda paradas e utilizando os dados da tabela para simularmos cada uma das cordas, começamos a simular a propagação de ondas.<br />
<br />
Utilizando o método de Leapfrog, foi realizada uma primeira simulação para uma onda ideal em uma corda:<br />
<br />
[[File:ideal.gif|frame|none|alt=Alt text|Simulação de uma onda em uma corda ideal com condições de contorno u(0,t) = 0 e u(L,t) = 0. A corda simulada possuía comprimento de 2 metros e a amplitude inicial do pulso gaussiano tinha amplitude de 0.5 metros. Foi utilizado uma velocidade de propagação de 300 m/s, <math>\Delta x = 0.01</math> e <math>\Delta t = \frac{\Delta x }{4v}</math>.]]<br />
<br />
'''Corda C2:'''<br />
<br />
[[Arquivo:C2.gif|frame|none|alt=Alt text|Simulação de uma corda C2 de um piano com os parâmetros da tabela acima.]][[Arquivo:C2foto.png|frame|none|alt=Alt text|Estado da corda C2 em diferentes instantes de tempo.]]<br />
<br />
'''Corda C4:'''<br />
<br />
[[Arquivo:C4.gif|frame|none|alt=Alt text|Simulação de uma corda C4 de um piano com os parâmetros da tabela acima.]]<br />
[[Arquivo:C4foto.png|frame|none|alt=Alt text|Estado da corda C4 em diferentes instantes de tempo.]]<br />
<br />
'''Corda C7:'''<br />
<br />
[[Arquivo:C7.gif|frame|none|alt=Alt text|Simulação de uma corda C7 de um piano com os parâmetros da tabela acima.]]<br />
[[Arquivo:C7foto.png|frame|none|alt=Alt text|Estado da corda C7 em diferentes instantes de tempo.]]<br />
<br />
'''Corda com as definições do livro "''Computational Physics''"<ref name=giordano/>:'''<br />
<br />
[[Arquivo:Giordano.gif|frame|none|alt=Alt text|Simulação da corda exemplificada no livro ''Computational Physics'' <ref name=giordano/>. Os parâmetros utilizados estão descritos no texto.]]<br />
[[Arquivo:Giordanofoto.png|frame|none|alt=Alt text|Estado da corda usada como exemplo pelo autor Giordano <ref name=giordano/> em diferentes instantes de tempo.]]<br />
<br />
É possível observar que o tempo necessário para que, devido a fricção, os movimentos na corda diferenciem-se cada vez mais da solução para a corda ideal é menor para um tamanho de corda menor, ou seja, a fricção acaba sendo mais relevante mais rapidamente em cordas mais curtas. Isso significa que deixamos de ter apenas dois pulsos propagando-se em sentidos opostos para termos ou mais pulsos de amplitudes menores, ou a soma de pulsos de diferentes amplitudes.<br />
<br />
Scripts para a simulação dos resultados apresentados:<br />
<br />
[[Script]]<br />
<br />
== Análise de Erro e Estabilidade dos Métodos ==<br />
<br />
=== Estabilidade do método Leapfrog ===<br />
Pela estabilidade de Von Neumann, podemos escrever que <br />
<br />
<math><br />
r \leq 1.<br />
</math><br />
<br />
Para <math>r = 1</math>, a equação da discretização da onda pode ser reescrita como<br />
<br />
<math>U_i^{n+1} = U_{i+1}^n+U_{i-1}^n-U_i^{n-1}.</math><br />
<br />
Essa escolha com <br />
<br />
<math>\frac{\Delta x}{\Delta t} = v</math><br />
<br />
nos dá a solução exata sem dispersão numérica, como pode ser verificado pela condição CFL. Contudo, <math>r=1</math> é válido somente no caso de uma corda ideal.<br />
É conveniente escrever a condição acima em termos da amostragem de sinal <math>f_e = \frac{1}{\Delta t}</math> e a frequência fundamental da corda <math>f_1 = \frac{v}{2L}</math>, o que nos leva a<br />
<br />
<math><br />
Kf_1 \leq \frac{f_e}{2}<br />
</math><br />
<br />
O[https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem Teorema de Nyquist-Shannon] diz que a frequência superior no espectro deve ser menor do que <math>\frac{f_e}{2}</math> para evitar serrilhamento e para garantir uma reconstrução única e contínua. Logo, no caso ideal quando as autofrequências da corda são igualmente espaçadas (<math>\Delta f = f_1</math>), a condição de Nyquist indica que o número máximo de frequências no espectro é <math>K</math>. Isso significa que essa condição pode ser usada para selecionar o número apropriado de pontos espaciais <math>K</math> para a corda. Entretanto, como <math>K</math> é um inteiro, apenas valores discretos da frequência natural podem ser obtidos sem erros de trucamento, ou seja, usando <math>r = 1</math>. Como séries discretas não costumam ser utilizadas, precisamos aceitar pequenos erros de truncamento para ajustar <math>f_1</math>, ou seja, utilizando <math>r < 1</math>. No caso de uma onda com fricção, temos que <math>r=\frac{1}{4}</math> é um valor de boa estabilidade.<br />
<br />
== Referências Bibliográficas==<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo3_-_Ondas2&diff=2115Grupo3 - Ondas22018-01-24T23:39:36Z<p>Lucasdoria: /* Análise e Discussão dos Resultados */</p>
<hr />
<div>'''Grupo: Lucas Dória, Caetano Pires e Ânderson Rosa.'''<br />
<br />
O objetivo deste trabalho é analisar três métodos diferentes de integração numérica para resolução de equações diferenciais parciais (EDP's). A equação aqui abordada é a equação da onda, a qual consiste em uma EDP hiperbólica de segunda ordem. Uma pequena noção dos métodos numéricos é dada, após a explicação do problema físico abordado. Os dados encontrados são comentados e comparados com os resultados esperados. Simulações também foram feitas para melhor visualização dos fenômenos. Por último, foi feita uma análise de erros e estabilidade para cada um dos métodos, assim como algumas conclusões foram inferidas.<br />
<br />
== Introdução ==<br />
<br />
Equações diferenciais parciais hiperbólicas geralmente podem ser formuladas a partir de teoremas de conservação. Um exemplo é a equação do tipo:<br />
<br />
<math>\frac{\partial \vec{U}}{\partial t} + \nabla \cdot \vec{F}(U) = \vec{S}(U),</math><br />
<br />
onde <math>\vec{U}</math> é o vetor de densidades da quantidade conservada, i.e., <math>\vec{U} = (U_1,...,U_n),</math> <math>\vec{F}</math> é o fluxo de densidade e <math>\vec{S}</math> é um termo genérico representando fontes e/ou sumidouros.<br />
<br />
Uma classe especial de equações hiperbólicas são as chamadas equações de adveção, na qual a derivada temporal da quantidade conservada <math>\vec{U}(\vec{x},t)</math> é proporcional à sua derivada espacial. Nesses casos, <math>\vec{F}(U)</math> é diagonal e dada por:<br />
<br />
<math>\vec{F}(U) = v I \cdot \vec{U},</math><br />
<br />
onde <math>I</math> é a matriz identidade.<br />
<br />
Considerando apenas uma dimensão e com <math>\vec{U} \equiv u</math>, temos a equação de adveção:<br />
<br />
<math>\frac{\partial u}{\partial t} + v \frac{\partial u}{\partial x} = 0,</math><br />
<br />
onde <math>v</math> é a velocidade de propagação do pulso gerado. A equação admite uma solução analítica da forma <math>u = f(x - vt),</math> representando um pulso se movendo na direção positiva de <math>x.</math><br />
<br />
A equação da onda em uma dimensão é uma EDP hiperbólica de segunda ordem dada por<br />
<br />
<math><br />
\frac{\partial^2 u}{\partial t^2} = v^2 \frac{\partial^2 u}{\partial x^2},<br />
</math><br />
<br />
onde <math>u = u(x,t)</math> é o deslocamento transversal à direção de propagação de uma posição <math>x</math> no instante <math>t</math> e admite duas soluções, representadas por pulsos, na forma <math>f_1(x + vt)</math> e <math>f_2(x - vt).</math><br />
<br />
Assumindo que <math>v</math> não depende da posição na equação da onda, nos restringimos a problemas lineares. Além disso, se escrevermos<br />
<br />
<math><br />
k = v \frac{\partial u}{\partial x},\qquad s = \frac{\partial u}{\partial t},<br />
</math><br />
<br />
então a equação da onda pode ser escrita como um sistema de três equações diferenciais de primeira ordem:<br />
<br />
<math><br />
\begin{cases}\displaystyle \frac{\partial k}{\partial t} = v\frac{\partial s}{\partial x} \\\\<br />
\displaystyle \frac{\partial s}{\partial t} = v\frac{\partial k}{\partial x} \\\\<br />
\displaystyle \frac{\partial u}{\partial t} = s <br />
\end{cases}<br />
</math><br />
<br />
Em notação vetorial, o sistema acima pode ser reescrito na forma conservativa como: <math>\frac{\partial U}{\partial t}+ \frac{\partial F(U)}{\partial x} = 0, </math><br />
<br />
onde <math>U = \begin{pmatrix}k\\s\end{pmatrix},\quad \textrm{e}\quad F(U) =\begin{pmatrix}0 & -v\\-v & 0\end{pmatrix}</math><br />
<br />
==Condição CFL==<br />
<br />
Uma condição necessária mas nem sempre suficiente para a convergência de equações diferenciais parciais resolvidas a partir de métodos de diferença, conhecida como condição CFL <ref>Luciano Rezzolla, "Numerical Methods for the Solution of Partial Differential Equations". Albert Einstein Institute, Max-Planck-Institute for Gravitational Physics, Potsdam, Germany.</ref>, é formulada a partir do termo de “domínio de dependência”.<br />
<br />
Considerando, por exemplo, a equação da advecção [https://en.wikipedia.org/wiki/Advection] em uma aproximação a partir de métodos de diferença em sua forma explícita <br />
<br />
<math>\frac{U^{n+1}_i-U^n_i}{\Delta t} + v\frac{U^n_{i}-U^n_{i-1}}{\Delta x}=0,</math><br />
<br />
diz-se que o valor de <math>U^{n+1}_i</math> depende dos valores anteriores de <math>U^n_i</math> e <math>U^n_{i-1}</math>, e esses dois pontos dependem, novamente, de outros dois pontos em tempos anteriores. Todos esses pontos dependentes formam o domínio de dependência do valor <math>U^{n+1}_i</math>, representado abaixo (botar figura do domínio de dependência).<br />
<br />
A condição CFL enuncia que a condição mínima para que haja estabilidade em métodos de diferenças o domínio de dependência da equação diferencia parcial, dado por sua equação característica, deve estar situado dentro do domínio de dependência do esquema numérico.<br />
<br />
A partir dessa condição, define-se o número CFL como <br />
<br />
<math>r\equiv v\frac{\Delta t}{\Delta x}</math><br />
<br />
onde <math>\Delta t</math> é um passo na malha temporal e <math>\Delta x</math> é um passo na malha espacial. Para casos unidimensionais, como o que será tratado aqui, a condição CFL é satisfeita se r<br />
<br />
<math> \left|r\right| \le 1 </math> <br />
<br />
Um uso da condição CFL é determinar o tamanho do passo temporal, sabendo-se <math>v</math> e <math>\Delta x</math>:<br />
<br />
<math>\Delta t = c_{cfl}\frac{\Delta x}{\left|v\right|}</math><br />
<br />
onde o fator <math>c_{cfl}<1</math>.<br />
<br />
O número CFL pode ser entendido como um fluxo numérico advectivo adimensionalisado pelas malhas espacial e temporal do problema. De um ponto de vista matemático, ele garante que o domínio numérico de dependência é sempre maior que o domínio físico. De um ponto de vista físico, é garantido que a velocidade de propagação de qualquer perturbação, como uma onda, seja menor ou ao menos igual que a velocidade de propagação numérica, fazendo com que a distância propagada pela perturbação não seja maior do que a divisão da malha espacial:<br />
<br />
<math>\left|v\right|\Delta t \le \Delta x </math><br />
<br />
== O Problema Físico ==<br />
<br />
===O Modelo de Corda Ideal===<br />
<br />
Para uma primeira abordagem da equação da onda, consideramos uma corda com suas extremidades fixas. Podemos dividir o comprimento <math>L</math> dessa corda em <math>K</math> intervalos de comprimentos iguais, dessa forma <math>\Delta x = \frac{L}{K}</math>. Cada intervalo é discretizado, representado por <math>x_i</math>, <math>i=0,1,...,K</math>. Também podemos dividir o tempo em intervalos iguais <math>\Delta t</math> e denotá-los como <math>t_n</math>, <math>n =0,1,...,t_{max}</math>. Abaixo temos uma esquematização das informações que precisamos para cada ponto da corda:<br />
<br />
[[Arquivo:grid.png]]<br />
<br />
Tendo feita a discretização das variáveis, podemos aproximar a equação da onda por diferenciação finita, utilizando derivadas centradas da seguinte forma:<br />
<br />
<math>\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}</math><br />
<br />
<math>\frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}</math><br />
<br />
onde <math>U_i^n</math> representa o valor discretizado de <math>u(x_i,t_n)</math>.<br />
<br />
Assim, chegamos em uma equação discretizada:<br />
<br />
<math>\frac{U_i^{n+1}-2U_i^n+U_i^{n-1}}{(\Delta t)^2} = v^2 \frac{U_{i+1}^n-2U_i^n+U_{i-1}^n}{(\Delta x)^2}</math>. <br />
<br />
Sabendo que essa discretização da equação da onda pode ser verificada como sendo o método Leapfrog (ver seção do método de Leapfrog [https://fiscomp.if.ufrgs.br/index.php/Grupo3_-_Ondas2#O_M.C3.A9todo_de_Leapfrog método de Leapfrog]), podemos resolver a equação para <math>U_i^{n+1}</math> para sabermos o deslocamento vertical de uma partição da corda no momento de tempo seguinte, assim obtendo<br />
<br />
<math>U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}</math>,<br />
<br />
onde <math>r = v \frac{\Delta t}{\Delta x}.</math><br />
<br />
===Um Quadro Mais Realístico - O Modelo de Corda Rígida ===<br />
<br />
Para nos aproximarmos de um modelo mais real, podemos adicionar um termo à equação original da onda que corresponde ao efeito de fricção em uma corda. A equação da onda mais geral com efeito de fricção pode ser escrita como: <ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math>\frac{\partial^2 u}{\partial t^2} = v^2 \left( \frac{\partial^2 u}{\partial x^2} - \epsilon L^2 \frac{\partial^4 u}{\partial x^4} \right),</math><br />
<br />
onde <math>v</math> é a velocidade transversal de propagação do pulso na corda, dada pela relação <math>v = \sqrt[]{\frac{T}{\rho}}</math> (sendo <math>T</math> a tensão na corda e <math>\rho</math> a densidade linear da mesma), <math>\epsilon</math> é um parâmetro adimensional de fricção que representa a rigidez da corda e <math>L</math> o comprimento da corda.<br />
<br />
O parâmetro <math>\epsilon</math> é dado por<br />
<br />
<math>\epsilon = \kappa² \frac{E S}{T L^2}</math>,<br />
<br />
onde <math>\kappa</math> é o [https://en.wikipedia.org/wiki/Radius_of_gyration raio de giro] da corda, <math>E</math> é o [https://en.wikipedia.org/wiki/Young%27s_modulus Módulo de Young] e <math>S</math> a área da secção da corda.<br />
<br />
Discretizamos a equação da seguinte maneira:<br />
<br />
<math><br />
\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}</math><br />
<br />
<math> \frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}</math><br />
<br />
<math> \frac{\partial^4u}{\partial x^4}=\frac{U^n_{i+2}-4U^n_{i+1}+6U^n_i-4U^n_{i-1}+U^n_{i-2}}{\Delta x^4}<br />
</math><br />
<br />
e resolvemos para <math>U_i^{n+1}</math>, obtendo:<br />
<br />
<math> U_i^{n+1}=[2-2r^2-6\epsilon r^2K^2]U_i^n - U_i^{n-1} +r^2[1+4\epsilon K^2][U_{i+1}^n+U_{i-1}^n]-\epsilon r^2K^2[U_{i+2}^n + U_{i-2}^n].</math><br />
<br />
O fato de essa discretização depender do deslocamento da corda em posições <math>i-2</math> e <math>i+2</math> implica em precisarmos simular "pontos fantasmas" quando integramos os extremos das cordas. Para fazermos isso, podemos ou utilizar a aproximação <math>U_{-1}^n = -U_{+1}^n</math> ou podemos considerar esses "pontos fantasmas" como pontos presos e, portanto, sempre iguais a zero.<br />
<br />
== Os Métodos Utilizados ==<br />
<br />
Foi realizada uma abordagem ao problema da corda real a partir de três métodos diferentes de integração numérica.<br />
<br />
O método mais básico é chamado de FTCS (Forward-Time-Centered-Space) e consiste em duas expansões de Taylor ao redor do ponto <math>x_j</math>:<br />
<br />
<math>u(x_i + \Delta x,t^n) = u(x_i,t^n) + \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3),</math><br />
<br />
<math>u(x_i - \Delta x,t^n) = u(x_i,t^n) - \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3).</math><br />
<br />
Subtraindo as duas expressões, encontramos a expressão<br />
<br />
<math>\left.\frac{\partial u}{\partial x}\right|_i^n = \frac{u^n_{i+1} - u^n_{i-1}}{2 \Delta x} + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
A qual podemos substituir na equação da onda, juntamente com a discretização da derivada parcial temporal. Temos então que, para um sistema linear de equações hiperbólicas:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta t^2, \Delta x^2 \Delta t)</math><br />
<br />
Visto que essa última notação é mais genérica, ela será utilizada para a explicação dos métodos posteriores.<br />
<br />
=== O Método de Lax-Friedrichs ===<br />
<br />
O método de Lax-Friedrichs consiste em substituir o termo <math>\textbf{U}^n_i</math> com sua respectiva média espacial, i.e., <math>U^n_i = (U^n_{i+1} + U^n_{i-1})/2</math>. Logo, temos a seguinte equação de recorrência:<br />
<br />
<math>\textbf{U}^{n+1}_i = \frac{1}{2}(\textbf{U}^n_{i+1} + \textbf{U}^n_{i-1}) - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)</math><br />
<br />
=== O Método de Leapfrog ===<br />
<br />
Tanto o método FTCS quanto o método de Lax-Friedrichs são métodos de primeira ordem para a derivada temporal. Nessas circunstâncias, <math>v \Delta t</math> deve ser significantemente menor do que <math>\Delta x</math>, muito abaixo do limite imposto pela condição de Courant.<br />
<br />
Uma nova expressão para a derivada temporal, com precisão de segunda ordem é dada por<br />
<br />
<math>\left.\frac{\partial u}{\partial t}\right|^n_i = \frac{U^{n+1}_i - U^{n-1}_i}{2 \Delta t} + \mathcal{O}(\Delta t^2).</math><br />
<br />
Substituindo a nova expressão acima no método de FTCS discutido anteriormente, encontramos o método de Leapfrog:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^{n-1}_i - \frac{\Delta t}{\Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2).</math><br />
<br />
Como o método de Leapfrog será o mais aplicado na resolução do problema da onda, é interessante um aprofundamento maior do método. Podemos adaptar o método de Leapfrog para o sistema de equações definido para a equação da onda ao fazermos a discretização ao redor de um ponto qualquer <math>i</math> no instante de tempo <math>n</math>:<br />
<br />
<math><br />
k_{i+\frac{1}{2}}^n \equiv v \left.\frac{\partial U}{\partial x}\right|_{i+\frac{1}{2}}^{n} = v \frac{U_{i+1}^n-U_i^n}{\Delta x} + \mathcal{O}(\Delta x) \qquad (1)<br />
</math><br />
<br />
<math><br />
s_{i}^{n+\frac{1}{2}} \equiv \left.\frac{\partial U}{\partial t}\right|_{i}^{n+\frac{1}{2}} = \frac{U_{i}^{n+1}-U_i^n}{\Delta t} + \mathcal{O}(\Delta t) \qquad (2)<br />
</math><br />
<br />
Com essas discretizações, podemos utilizar as equações (1) e (2) para resolvermos para <math>k^{n+1}_{i+\frac{1}{2}}</math> apenas em termos de <math>s</math>, <math>k</math> e <math>r</math>. Fazendo as substituições dessas duas equações uma na outra (ver passo a passo: [[Dedução Leapfrog]]), obtemos:<br />
<br />
<math>\frac{\Delta x}{v}k^{n+1}_{i+\frac{1}{2}} = s^{n+\frac{1}{2}}_{i+1}\Delta t + \frac{\Delta x}{v}k^{n}_{i+\frac{1}{2}} + U^n_i - (s^{n+\frac{1}{2}}_i \Delta t + U^n_i)</math><br />
<br />
Dessa equação, chegamos a<br />
<br />
<math><br />
k_{i+\frac{1}{2}}^{n+1} = k_{i+\frac{1}{2}}^n+r(s_{i+1}^{n+\frac{1}{2}}-s_{i}^{n+\frac{1}{2}}) \qquad (3)<br />
</math><br />
<br />
Utilizando o mesmo raciocínio, podemos também resolver para <math>s^{n+\frac{1}{2}}_i</math> e obter<br />
<br />
<math><br />
s_i^{n+\frac{1}{2}} = s_{i}^{n-\frac{1}{2}}+r(k_{i+\frac{1}{2}}^{n}-k_{i-\frac{1}{2}}^{n}) \qquad (4)<br />
</math><br />
<br />
Com essas duas equações, podemos fazer uma integração utilizando o método de Euler para obter <math>U_i^{n+1}</math>, ou seja, o deslocamento de um determinado ponto <math>i</math> da corda no próximo instante de tempo:<br />
<br />
<math>U_i^{n+1} = U_i^n + \frac{\Delta t}{2}s_i^{n+\frac{1}{2}}+\mathcal{O}(\Delta x^2).</math><br />
<br />
Contudo, podemos fazer uma simples substituição das equações <math>(1)</math> e <math>(2)</math> nas equações <math>(3)</math> e <math>(4)</math> e, assim, obtemos que a representação de Leapfrog da equação da onda é dada pela discretização de segunda ordem da própria equação da onda, com <math>\mathcal{O}(\Delta t^2, \Delta x^2)</math> (ver passo a passo da comparação [[Discretização x Leapfrog]]. Isso nos dá uma solução de "um passo", onde só precisamos efetuar o cálculo da equação discretizada pelo método da derivação finita, ou seja, para o caso da corda ideal, a equação<br />
<br />
<math>U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}.</math><br />
<br />
=== O Método de Lax-Wendroff ===<br />
<br />
O método de Lax-Wendroff é a extensão do método de Lax-Friedrichs de segunda ordem. Calculamos o vetor <math>U</math> a partir de um passo médio de Lax-Friedrichs:<br />
<br />
<math>\textbf{U}^{n+\frac{1}{2}}_{i + \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i+1} + \textbf{U}^n_i] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_i] + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
<math>\textbf{U}^{n+\frac{1}{2}}_{i - \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i} + \textbf{U}^n_{i-1}] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
E encontramos os fluxos <math>\textbf{F}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}</math> a partir dos valores de <math>\textbf{U}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}.</math><br />
<br />
Logo, com um meio passo de Leapfrog, temos a expressão final do método:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{\Delta x} \left[\textbf{F}^{n + \frac{1}{2}}_{i + \frac{1}{2}} - \textbf{F}^{n + \frac{1}{2}}_{i - \frac{1}{2}}\right] + \mathcal{O}(\Delta x^2)</math><br />
<br />
== Análise e Discussão dos Resultados ==<br />
Escolhemos para simular quatro diferentes cordas: as cordas C2, C4 e C7, que são cordas dó de um piano <ref>Antoine Chaign, Anders Askenfelt, "Numerical simulations of piano strings. I. A physical model for a struck string using finite difference methods". Signal Department, Paris, France. Department of Speech Communication and Music Acoustics; Royal Institute of Technology, Stockholm, Sweden.</ref> e uma corda qualquer baseada nos dados encontrados no livro "''Computational Physics''" <ref name=giordano/>. Os dados das cordas C2, C4 e C7 estão na tabela abaixo, onde iremos definir para cada corda o comprimento, a massa, a tensão aplicada elas, o número de divisões existentes, amostragem de sinal (que é um parâmetro obtido experimentalmente)e o parâmetro de fricção.<br />
<br />
{| class="wikitable"<br />
|-<br />
!<br />
! '''C2'''<br />
! '''C4'''<br />
! '''C7'''<br />
|-<br />
| '''Comprimento''' (<math>m</math>)<br />
| <math>1.90</math><br />
| <math>0.62</math><br />
| <math>0.09</math><br />
|-<br />
| '''Massa'''(<math>g</math>)<br />
| <math>35</math><br />
| <math>3.93 </math><br />
| <math>0.467</math><br />
|-<br />
| '''Tensão''' (<math>N</math>)<br />
| <math>750</math><br />
| <math>670</math><br />
| <math>750</math><br />
|-<br />
| '''Divisões'''<br />
| <math>100</math><br />
| <math>50</math><br />
| <math>16</math><br />
|-<br />
| '''Amostragem de sinal'''<br />
| <math>16\times10^{3}</math><br />
| <math>32\times10^{3}</math><br />
| <math>96\times10^{3}</math><br />
|-<br />
|'''Parâmetro de fricção'''<br />
| <math>7.5\times10^{-6}</math><br />
| <math>3.82\times10^{-5}</math><br />
| <math>8.67\times10^{-4}</math><br />
|}<br />
<br />
Desses dados, temos que a densidade linear de massa das cordas é dada por <br />
<br />
<math>\rho = \frac{M}{L},</math><br />
<br />
onde <math>M</math> é a massa e <math>L</math> o comprimento da corda, <br />
<br />
<math>v = \sqrt{\frac{T}{\rho}},</math><br />
<br />
onde <math>T</math> é a tensão na corda, <br />
<br />
<math>\Delta x = \frac{L}{K},</math><br />
<br />
<math>\Delta t = \frac{1}{f_e},</math><br />
<br />
e <br />
<br />
<math>r = v\frac{\Delta t}{\Delta x}.</math><br />
<br />
Os dados obtidos a partir de todas essas equações são calculados pelo programa com base dos dados da tabela.<br />
<br />
Para a simulação baseada nos dados retirados do livro ''"Computational Physics"''<ref name=giordano/>, utilizamos uma corda com 2 metros de comprimento, com velocidade de propagação transversal da onda sendo 300<math>m/s</math>, <math>\Delta x</math> de 0.01<math>m</math>, <math>\Delta t = \frac{\Delta x }{4v}</math> e parâmetro de fricção de <math>7.5\times10^{-6}</math>.<br />
<br />
Supondo uma corda inicialmente em repouso, temos que em <math>t = 0</math> a corda irá receber em seu centro o equivalente à batida do martelo de um piano. Supomos que esse estímulo da batida do martelo possuía o formato aproximado de uma Gaussiana com amplitude de <math>\frac{1}{4}</math> do comprimento de cada corda. <br />
<br />
Então, com o estado inicial da simulação sendo um pulso com o formato de um pacote gaussiano, utilizando condições de contorno fixas, ou seja, mantendo as extremidades da corda paradas e utilizando os dados da tabela para simularmos cada uma das cordas, começamos a simular a propagação de ondas.<br />
<br />
Utilizando o método de Leapfrog, foi realizada uma primeira simulação para uma onda ideal em uma corda:<br />
<br />
[[File:ideal.gif|frame|none|alt=Alt text|Simulação de uma onda em uma corda ideal com condições de contorno u(0,t) = 0 e u(L,t) = 0. A corda simulada possuía comprimento de 2 metros e a amplitude inicial do pulso gaussiano tinha amplitude de 0.5 metros. Foi utilizado uma velocidade de propagação de 300 m/s, <math>\Delta x = 0.01</math> e <math>\Delta t = \frac{\Delta x }{4v}</math>.]]<br />
<br />
'''Corda C2:'''<br />
<br />
[[Arquivo:C2.gif|frame|none|alt=Alt text|Simulação de uma corda C2 de um piano com os parâmetros da tabela acima.]][[Arquivo:C2foto.png|frame|none|alt=Alt text|Estado da corda C2 em diferentes instantes de tempo.]]<br />
<br />
'''Corda C4:'''<br />
<br />
[[Arquivo:C4.gif|frame|none|alt=Alt text|Simulação de uma corda C4 de um piano com os parâmetros da tabela acima.]]<br />
[[Arquivo:C4foto.png|frame|none|alt=Alt text|Estado da corda C4 em diferentes instantes de tempo.]]<br />
<br />
'''Corda C7:'''<br />
<br />
[[Arquivo:C7.gif|frame|none|alt=Alt text|Simulação de uma corda C7 de um piano com os parâmetros da tabela acima.]]<br />
[[Arquivo:C7foto.png|frame|none|alt=Alt text|Estado da corda C7 em diferentes instantes de tempo.]]<br />
<br />
'''Corda com as definições do livro "''Computational Physics''"<ref name=giordano/>:'''<br />
<br />
[[Arquivo:Giordano.gif|frame|none|alt=Alt text|Simulação da corda exemplificada no livro ''Computational Physics'' <ref name=giordano/>. Os parâmetros utilizados estão descritos no texto.]]<br />
[[Arquivo:Giordanofoto.png|frame|none|alt=Alt text|Estado da corda usada como exemplo pelo autor Giordano <ref name=giordano/> em diferentes instantes de tempo.]]<br />
<br />
É possível observar que o tempo necessário para que, devido a fricção, os movimentos na corda diferenciem-se cada vez mais da solução para a corda ideal é menor para um tamanho de corda menor, ou seja, a fricção acaba sendo mais relevante mais rapidamente em cordas mais curtas. Isso significa que deixamos de ter apenas dois pulsos propagando-se em sentidos opostos para termos ou mais pulsos de amplitudes menores, ou a soma de pulsos de diferentes amplitudes.<br />
<br />
== Análise de Erro e Estabilidade dos Métodos ==<br />
<br />
=== Estabilidade do método Leapfrog ===<br />
Pela estabilidade de Von Neumann, podemos escrever que <br />
<br />
<math><br />
r \leq 1.<br />
</math><br />
<br />
Para <math>r = 1</math>, a equação da discretização da onda pode ser reescrita como<br />
<br />
<math>U_i^{n+1} = U_{i+1}^n+U_{i-1}^n-U_i^{n-1}.</math><br />
<br />
Essa escolha com <br />
<br />
<math>\frac{\Delta x}{\Delta t} = v</math><br />
<br />
nos dá a solução exata sem dispersão numérica, como pode ser verificado pela condição CFL. Contudo, <math>r=1</math> é válido somente no caso de uma corda ideal.<br />
É conveniente escrever a condição acima em termos da amostragem de sinal <math>f_e = \frac{1}{\Delta t}</math> e a frequência fundamental da corda <math>f_1 = \frac{v}{2L}</math>, o que nos leva a<br />
<br />
<math><br />
Kf_1 \leq \frac{f_e}{2}<br />
</math><br />
<br />
O[https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem Teorema de Nyquist-Shannon] diz que a frequência superior no espectro deve ser menor do que <math>\frac{f_e}{2}</math> para evitar serrilhamento e para garantir uma reconstrução única e contínua. Logo, no caso ideal quando as autofrequências da corda são igualmente espaçadas (<math>\Delta f = f_1</math>), a condição de Nyquist indica que o número máximo de frequências no espectro é <math>K</math>. Isso significa que essa condição pode ser usada para selecionar o número apropriado de pontos espaciais <math>K</math> para a corda. Entretanto, como <math>K</math> é um inteiro, apenas valores discretos da frequência natural podem ser obtidos sem erros de trucamento, ou seja, usando <math>r = 1</math>. Como séries discretas não costumam ser utilizadas, precisamos aceitar pequenos erros de truncamento para ajustar <math>f_1</math>, ou seja, utilizando <math>r < 1</math>. No caso de uma onda com fricção, temos que <math>r=\frac{1}{4}</math> é um valor de boa estabilidade.<br />
<br />
== Referências Bibliográficas==<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo3_-_Ondas2&diff=2114Grupo3 - Ondas22018-01-24T23:39:23Z<p>Lucasdoria: /* Análise e Discussão dos Resultados */</p>
<hr />
<div>'''Grupo: Lucas Dória, Caetano Pires e Ânderson Rosa.'''<br />
<br />
O objetivo deste trabalho é analisar três métodos diferentes de integração numérica para resolução de equações diferenciais parciais (EDP's). A equação aqui abordada é a equação da onda, a qual consiste em uma EDP hiperbólica de segunda ordem. Uma pequena noção dos métodos numéricos é dada, após a explicação do problema físico abordado. Os dados encontrados são comentados e comparados com os resultados esperados. Simulações também foram feitas para melhor visualização dos fenômenos. Por último, foi feita uma análise de erros e estabilidade para cada um dos métodos, assim como algumas conclusões foram inferidas.<br />
<br />
== Introdução ==<br />
<br />
Equações diferenciais parciais hiperbólicas geralmente podem ser formuladas a partir de teoremas de conservação. Um exemplo é a equação do tipo:<br />
<br />
<math>\frac{\partial \vec{U}}{\partial t} + \nabla \cdot \vec{F}(U) = \vec{S}(U),</math><br />
<br />
onde <math>\vec{U}</math> é o vetor de densidades da quantidade conservada, i.e., <math>\vec{U} = (U_1,...,U_n),</math> <math>\vec{F}</math> é o fluxo de densidade e <math>\vec{S}</math> é um termo genérico representando fontes e/ou sumidouros.<br />
<br />
Uma classe especial de equações hiperbólicas são as chamadas equações de adveção, na qual a derivada temporal da quantidade conservada <math>\vec{U}(\vec{x},t)</math> é proporcional à sua derivada espacial. Nesses casos, <math>\vec{F}(U)</math> é diagonal e dada por:<br />
<br />
<math>\vec{F}(U) = v I \cdot \vec{U},</math><br />
<br />
onde <math>I</math> é a matriz identidade.<br />
<br />
Considerando apenas uma dimensão e com <math>\vec{U} \equiv u</math>, temos a equação de adveção:<br />
<br />
<math>\frac{\partial u}{\partial t} + v \frac{\partial u}{\partial x} = 0,</math><br />
<br />
onde <math>v</math> é a velocidade de propagação do pulso gerado. A equação admite uma solução analítica da forma <math>u = f(x - vt),</math> representando um pulso se movendo na direção positiva de <math>x.</math><br />
<br />
A equação da onda em uma dimensão é uma EDP hiperbólica de segunda ordem dada por<br />
<br />
<math><br />
\frac{\partial^2 u}{\partial t^2} = v^2 \frac{\partial^2 u}{\partial x^2},<br />
</math><br />
<br />
onde <math>u = u(x,t)</math> é o deslocamento transversal à direção de propagação de uma posição <math>x</math> no instante <math>t</math> e admite duas soluções, representadas por pulsos, na forma <math>f_1(x + vt)</math> e <math>f_2(x - vt).</math><br />
<br />
Assumindo que <math>v</math> não depende da posição na equação da onda, nos restringimos a problemas lineares. Além disso, se escrevermos<br />
<br />
<math><br />
k = v \frac{\partial u}{\partial x},\qquad s = \frac{\partial u}{\partial t},<br />
</math><br />
<br />
então a equação da onda pode ser escrita como um sistema de três equações diferenciais de primeira ordem:<br />
<br />
<math><br />
\begin{cases}\displaystyle \frac{\partial k}{\partial t} = v\frac{\partial s}{\partial x} \\\\<br />
\displaystyle \frac{\partial s}{\partial t} = v\frac{\partial k}{\partial x} \\\\<br />
\displaystyle \frac{\partial u}{\partial t} = s <br />
\end{cases}<br />
</math><br />
<br />
Em notação vetorial, o sistema acima pode ser reescrito na forma conservativa como: <math>\frac{\partial U}{\partial t}+ \frac{\partial F(U)}{\partial x} = 0, </math><br />
<br />
onde <math>U = \begin{pmatrix}k\\s\end{pmatrix},\quad \textrm{e}\quad F(U) =\begin{pmatrix}0 & -v\\-v & 0\end{pmatrix}</math><br />
<br />
==Condição CFL==<br />
<br />
Uma condição necessária mas nem sempre suficiente para a convergência de equações diferenciais parciais resolvidas a partir de métodos de diferença, conhecida como condição CFL <ref>Luciano Rezzolla, "Numerical Methods for the Solution of Partial Differential Equations". Albert Einstein Institute, Max-Planck-Institute for Gravitational Physics, Potsdam, Germany.</ref>, é formulada a partir do termo de “domínio de dependência”.<br />
<br />
Considerando, por exemplo, a equação da advecção [https://en.wikipedia.org/wiki/Advection] em uma aproximação a partir de métodos de diferença em sua forma explícita <br />
<br />
<math>\frac{U^{n+1}_i-U^n_i}{\Delta t} + v\frac{U^n_{i}-U^n_{i-1}}{\Delta x}=0,</math><br />
<br />
diz-se que o valor de <math>U^{n+1}_i</math> depende dos valores anteriores de <math>U^n_i</math> e <math>U^n_{i-1}</math>, e esses dois pontos dependem, novamente, de outros dois pontos em tempos anteriores. Todos esses pontos dependentes formam o domínio de dependência do valor <math>U^{n+1}_i</math>, representado abaixo (botar figura do domínio de dependência).<br />
<br />
A condição CFL enuncia que a condição mínima para que haja estabilidade em métodos de diferenças o domínio de dependência da equação diferencia parcial, dado por sua equação característica, deve estar situado dentro do domínio de dependência do esquema numérico.<br />
<br />
A partir dessa condição, define-se o número CFL como <br />
<br />
<math>r\equiv v\frac{\Delta t}{\Delta x}</math><br />
<br />
onde <math>\Delta t</math> é um passo na malha temporal e <math>\Delta x</math> é um passo na malha espacial. Para casos unidimensionais, como o que será tratado aqui, a condição CFL é satisfeita se r<br />
<br />
<math> \left|r\right| \le 1 </math> <br />
<br />
Um uso da condição CFL é determinar o tamanho do passo temporal, sabendo-se <math>v</math> e <math>\Delta x</math>:<br />
<br />
<math>\Delta t = c_{cfl}\frac{\Delta x}{\left|v\right|}</math><br />
<br />
onde o fator <math>c_{cfl}<1</math>.<br />
<br />
O número CFL pode ser entendido como um fluxo numérico advectivo adimensionalisado pelas malhas espacial e temporal do problema. De um ponto de vista matemático, ele garante que o domínio numérico de dependência é sempre maior que o domínio físico. De um ponto de vista físico, é garantido que a velocidade de propagação de qualquer perturbação, como uma onda, seja menor ou ao menos igual que a velocidade de propagação numérica, fazendo com que a distância propagada pela perturbação não seja maior do que a divisão da malha espacial:<br />
<br />
<math>\left|v\right|\Delta t \le \Delta x </math><br />
<br />
== O Problema Físico ==<br />
<br />
===O Modelo de Corda Ideal===<br />
<br />
Para uma primeira abordagem da equação da onda, consideramos uma corda com suas extremidades fixas. Podemos dividir o comprimento <math>L</math> dessa corda em <math>K</math> intervalos de comprimentos iguais, dessa forma <math>\Delta x = \frac{L}{K}</math>. Cada intervalo é discretizado, representado por <math>x_i</math>, <math>i=0,1,...,K</math>. Também podemos dividir o tempo em intervalos iguais <math>\Delta t</math> e denotá-los como <math>t_n</math>, <math>n =0,1,...,t_{max}</math>. Abaixo temos uma esquematização das informações que precisamos para cada ponto da corda:<br />
<br />
[[Arquivo:grid.png]]<br />
<br />
Tendo feita a discretização das variáveis, podemos aproximar a equação da onda por diferenciação finita, utilizando derivadas centradas da seguinte forma:<br />
<br />
<math>\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}</math><br />
<br />
<math>\frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}</math><br />
<br />
onde <math>U_i^n</math> representa o valor discretizado de <math>u(x_i,t_n)</math>.<br />
<br />
Assim, chegamos em uma equação discretizada:<br />
<br />
<math>\frac{U_i^{n+1}-2U_i^n+U_i^{n-1}}{(\Delta t)^2} = v^2 \frac{U_{i+1}^n-2U_i^n+U_{i-1}^n}{(\Delta x)^2}</math>. <br />
<br />
Sabendo que essa discretização da equação da onda pode ser verificada como sendo o método Leapfrog (ver seção do método de Leapfrog [https://fiscomp.if.ufrgs.br/index.php/Grupo3_-_Ondas2#O_M.C3.A9todo_de_Leapfrog método de Leapfrog]), podemos resolver a equação para <math>U_i^{n+1}</math> para sabermos o deslocamento vertical de uma partição da corda no momento de tempo seguinte, assim obtendo<br />
<br />
<math>U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}</math>,<br />
<br />
onde <math>r = v \frac{\Delta t}{\Delta x}.</math><br />
<br />
===Um Quadro Mais Realístico - O Modelo de Corda Rígida ===<br />
<br />
Para nos aproximarmos de um modelo mais real, podemos adicionar um termo à equação original da onda que corresponde ao efeito de fricção em uma corda. A equação da onda mais geral com efeito de fricção pode ser escrita como: <ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math>\frac{\partial^2 u}{\partial t^2} = v^2 \left( \frac{\partial^2 u}{\partial x^2} - \epsilon L^2 \frac{\partial^4 u}{\partial x^4} \right),</math><br />
<br />
onde <math>v</math> é a velocidade transversal de propagação do pulso na corda, dada pela relação <math>v = \sqrt[]{\frac{T}{\rho}}</math> (sendo <math>T</math> a tensão na corda e <math>\rho</math> a densidade linear da mesma), <math>\epsilon</math> é um parâmetro adimensional de fricção que representa a rigidez da corda e <math>L</math> o comprimento da corda.<br />
<br />
O parâmetro <math>\epsilon</math> é dado por<br />
<br />
<math>\epsilon = \kappa² \frac{E S}{T L^2}</math>,<br />
<br />
onde <math>\kappa</math> é o [https://en.wikipedia.org/wiki/Radius_of_gyration raio de giro] da corda, <math>E</math> é o [https://en.wikipedia.org/wiki/Young%27s_modulus Módulo de Young] e <math>S</math> a área da secção da corda.<br />
<br />
Discretizamos a equação da seguinte maneira:<br />
<br />
<math><br />
\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}</math><br />
<br />
<math> \frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}</math><br />
<br />
<math> \frac{\partial^4u}{\partial x^4}=\frac{U^n_{i+2}-4U^n_{i+1}+6U^n_i-4U^n_{i-1}+U^n_{i-2}}{\Delta x^4}<br />
</math><br />
<br />
e resolvemos para <math>U_i^{n+1}</math>, obtendo:<br />
<br />
<math> U_i^{n+1}=[2-2r^2-6\epsilon r^2K^2]U_i^n - U_i^{n-1} +r^2[1+4\epsilon K^2][U_{i+1}^n+U_{i-1}^n]-\epsilon r^2K^2[U_{i+2}^n + U_{i-2}^n].</math><br />
<br />
O fato de essa discretização depender do deslocamento da corda em posições <math>i-2</math> e <math>i+2</math> implica em precisarmos simular "pontos fantasmas" quando integramos os extremos das cordas. Para fazermos isso, podemos ou utilizar a aproximação <math>U_{-1}^n = -U_{+1}^n</math> ou podemos considerar esses "pontos fantasmas" como pontos presos e, portanto, sempre iguais a zero.<br />
<br />
== Os Métodos Utilizados ==<br />
<br />
Foi realizada uma abordagem ao problema da corda real a partir de três métodos diferentes de integração numérica.<br />
<br />
O método mais básico é chamado de FTCS (Forward-Time-Centered-Space) e consiste em duas expansões de Taylor ao redor do ponto <math>x_j</math>:<br />
<br />
<math>u(x_i + \Delta x,t^n) = u(x_i,t^n) + \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3),</math><br />
<br />
<math>u(x_i - \Delta x,t^n) = u(x_i,t^n) - \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3).</math><br />
<br />
Subtraindo as duas expressões, encontramos a expressão<br />
<br />
<math>\left.\frac{\partial u}{\partial x}\right|_i^n = \frac{u^n_{i+1} - u^n_{i-1}}{2 \Delta x} + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
A qual podemos substituir na equação da onda, juntamente com a discretização da derivada parcial temporal. Temos então que, para um sistema linear de equações hiperbólicas:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta t^2, \Delta x^2 \Delta t)</math><br />
<br />
Visto que essa última notação é mais genérica, ela será utilizada para a explicação dos métodos posteriores.<br />
<br />
=== O Método de Lax-Friedrichs ===<br />
<br />
O método de Lax-Friedrichs consiste em substituir o termo <math>\textbf{U}^n_i</math> com sua respectiva média espacial, i.e., <math>U^n_i = (U^n_{i+1} + U^n_{i-1})/2</math>. Logo, temos a seguinte equação de recorrência:<br />
<br />
<math>\textbf{U}^{n+1}_i = \frac{1}{2}(\textbf{U}^n_{i+1} + \textbf{U}^n_{i-1}) - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)</math><br />
<br />
=== O Método de Leapfrog ===<br />
<br />
Tanto o método FTCS quanto o método de Lax-Friedrichs são métodos de primeira ordem para a derivada temporal. Nessas circunstâncias, <math>v \Delta t</math> deve ser significantemente menor do que <math>\Delta x</math>, muito abaixo do limite imposto pela condição de Courant.<br />
<br />
Uma nova expressão para a derivada temporal, com precisão de segunda ordem é dada por<br />
<br />
<math>\left.\frac{\partial u}{\partial t}\right|^n_i = \frac{U^{n+1}_i - U^{n-1}_i}{2 \Delta t} + \mathcal{O}(\Delta t^2).</math><br />
<br />
Substituindo a nova expressão acima no método de FTCS discutido anteriormente, encontramos o método de Leapfrog:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^{n-1}_i - \frac{\Delta t}{\Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2).</math><br />
<br />
Como o método de Leapfrog será o mais aplicado na resolução do problema da onda, é interessante um aprofundamento maior do método. Podemos adaptar o método de Leapfrog para o sistema de equações definido para a equação da onda ao fazermos a discretização ao redor de um ponto qualquer <math>i</math> no instante de tempo <math>n</math>:<br />
<br />
<math><br />
k_{i+\frac{1}{2}}^n \equiv v \left.\frac{\partial U}{\partial x}\right|_{i+\frac{1}{2}}^{n} = v \frac{U_{i+1}^n-U_i^n}{\Delta x} + \mathcal{O}(\Delta x) \qquad (1)<br />
</math><br />
<br />
<math><br />
s_{i}^{n+\frac{1}{2}} \equiv \left.\frac{\partial U}{\partial t}\right|_{i}^{n+\frac{1}{2}} = \frac{U_{i}^{n+1}-U_i^n}{\Delta t} + \mathcal{O}(\Delta t) \qquad (2)<br />
</math><br />
<br />
Com essas discretizações, podemos utilizar as equações (1) e (2) para resolvermos para <math>k^{n+1}_{i+\frac{1}{2}}</math> apenas em termos de <math>s</math>, <math>k</math> e <math>r</math>. Fazendo as substituições dessas duas equações uma na outra (ver passo a passo: [[Dedução Leapfrog]]), obtemos:<br />
<br />
<math>\frac{\Delta x}{v}k^{n+1}_{i+\frac{1}{2}} = s^{n+\frac{1}{2}}_{i+1}\Delta t + \frac{\Delta x}{v}k^{n}_{i+\frac{1}{2}} + U^n_i - (s^{n+\frac{1}{2}}_i \Delta t + U^n_i)</math><br />
<br />
Dessa equação, chegamos a<br />
<br />
<math><br />
k_{i+\frac{1}{2}}^{n+1} = k_{i+\frac{1}{2}}^n+r(s_{i+1}^{n+\frac{1}{2}}-s_{i}^{n+\frac{1}{2}}) \qquad (3)<br />
</math><br />
<br />
Utilizando o mesmo raciocínio, podemos também resolver para <math>s^{n+\frac{1}{2}}_i</math> e obter<br />
<br />
<math><br />
s_i^{n+\frac{1}{2}} = s_{i}^{n-\frac{1}{2}}+r(k_{i+\frac{1}{2}}^{n}-k_{i-\frac{1}{2}}^{n}) \qquad (4)<br />
</math><br />
<br />
Com essas duas equações, podemos fazer uma integração utilizando o método de Euler para obter <math>U_i^{n+1}</math>, ou seja, o deslocamento de um determinado ponto <math>i</math> da corda no próximo instante de tempo:<br />
<br />
<math>U_i^{n+1} = U_i^n + \frac{\Delta t}{2}s_i^{n+\frac{1}{2}}+\mathcal{O}(\Delta x^2).</math><br />
<br />
Contudo, podemos fazer uma simples substituição das equações <math>(1)</math> e <math>(2)</math> nas equações <math>(3)</math> e <math>(4)</math> e, assim, obtemos que a representação de Leapfrog da equação da onda é dada pela discretização de segunda ordem da própria equação da onda, com <math>\mathcal{O}(\Delta t^2, \Delta x^2)</math> (ver passo a passo da comparação [[Discretização x Leapfrog]]. Isso nos dá uma solução de "um passo", onde só precisamos efetuar o cálculo da equação discretizada pelo método da derivação finita, ou seja, para o caso da corda ideal, a equação<br />
<br />
<math>U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}.</math><br />
<br />
=== O Método de Lax-Wendroff ===<br />
<br />
O método de Lax-Wendroff é a extensão do método de Lax-Friedrichs de segunda ordem. Calculamos o vetor <math>U</math> a partir de um passo médio de Lax-Friedrichs:<br />
<br />
<math>\textbf{U}^{n+\frac{1}{2}}_{i + \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i+1} + \textbf{U}^n_i] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_i] + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
<math>\textbf{U}^{n+\frac{1}{2}}_{i - \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i} + \textbf{U}^n_{i-1}] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
E encontramos os fluxos <math>\textbf{F}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}</math> a partir dos valores de <math>\textbf{U}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}.</math><br />
<br />
Logo, com um meio passo de Leapfrog, temos a expressão final do método:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{\Delta x} \left[\textbf{F}^{n + \frac{1}{2}}_{i + \frac{1}{2}} - \textbf{F}^{n + \frac{1}{2}}_{i - \frac{1}{2}}\right] + \mathcal{O}(\Delta x^2)</math><br />
<br />
== Análise e Discussão dos Resultados ==<br />
Escolhemos para simular [[teste]] quatro diferentes cordas: as cordas C2, C4 e C7, que são cordas dó de um piano <ref>Antoine Chaign, Anders Askenfelt, "Numerical simulations of piano strings. I. A physical model for a struck string using finite difference methods". Signal Department, Paris, France. Department of Speech Communication and Music Acoustics; Royal Institute of Technology, Stockholm, Sweden.</ref> e uma corda qualquer baseada nos dados encontrados no livro "''Computational Physics''" <ref name=giordano/>. Os dados das cordas C2, C4 e C7 estão na tabela abaixo, onde iremos definir para cada corda o comprimento, a massa, a tensão aplicada elas, o número de divisões existentes, amostragem de sinal (que é um parâmetro obtido experimentalmente)e o parâmetro de fricção.<br />
<br />
{| class="wikitable"<br />
|-<br />
!<br />
! '''C2'''<br />
! '''C4'''<br />
! '''C7'''<br />
|-<br />
| '''Comprimento''' (<math>m</math>)<br />
| <math>1.90</math><br />
| <math>0.62</math><br />
| <math>0.09</math><br />
|-<br />
| '''Massa'''(<math>g</math>)<br />
| <math>35</math><br />
| <math>3.93 </math><br />
| <math>0.467</math><br />
|-<br />
| '''Tensão''' (<math>N</math>)<br />
| <math>750</math><br />
| <math>670</math><br />
| <math>750</math><br />
|-<br />
| '''Divisões'''<br />
| <math>100</math><br />
| <math>50</math><br />
| <math>16</math><br />
|-<br />
| '''Amostragem de sinal'''<br />
| <math>16\times10^{3}</math><br />
| <math>32\times10^{3}</math><br />
| <math>96\times10^{3}</math><br />
|-<br />
|'''Parâmetro de fricção'''<br />
| <math>7.5\times10^{-6}</math><br />
| <math>3.82\times10^{-5}</math><br />
| <math>8.67\times10^{-4}</math><br />
|}<br />
<br />
Desses dados, temos que a densidade linear de massa das cordas é dada por <br />
<br />
<math>\rho = \frac{M}{L},</math><br />
<br />
onde <math>M</math> é a massa e <math>L</math> o comprimento da corda, <br />
<br />
<math>v = \sqrt{\frac{T}{\rho}},</math><br />
<br />
onde <math>T</math> é a tensão na corda, <br />
<br />
<math>\Delta x = \frac{L}{K},</math><br />
<br />
<math>\Delta t = \frac{1}{f_e},</math><br />
<br />
e <br />
<br />
<math>r = v\frac{\Delta t}{\Delta x}.</math><br />
<br />
Os dados obtidos a partir de todas essas equações são calculados pelo programa com base dos dados da tabela.<br />
<br />
Para a simulação baseada nos dados retirados do livro ''"Computational Physics"''<ref name=giordano/>, utilizamos uma corda com 2 metros de comprimento, com velocidade de propagação transversal da onda sendo 300<math>m/s</math>, <math>\Delta x</math> de 0.01<math>m</math>, <math>\Delta t = \frac{\Delta x }{4v}</math> e parâmetro de fricção de <math>7.5\times10^{-6}</math>.<br />
<br />
Supondo uma corda inicialmente em repouso, temos que em <math>t = 0</math> a corda irá receber em seu centro o equivalente à batida do martelo de um piano. Supomos que esse estímulo da batida do martelo possuía o formato aproximado de uma Gaussiana com amplitude de <math>\frac{1}{4}</math> do comprimento de cada corda. <br />
<br />
Então, com o estado inicial da simulação sendo um pulso com o formato de um pacote gaussiano, utilizando condições de contorno fixas, ou seja, mantendo as extremidades da corda paradas e utilizando os dados da tabela para simularmos cada uma das cordas, começamos a simular a propagação de ondas.<br />
<br />
Utilizando o método de Leapfrog, foi realizada uma primeira simulação para uma onda ideal em uma corda:<br />
<br />
[[File:ideal.gif|frame|none|alt=Alt text|Simulação de uma onda em uma corda ideal com condições de contorno u(0,t) = 0 e u(L,t) = 0. A corda simulada possuía comprimento de 2 metros e a amplitude inicial do pulso gaussiano tinha amplitude de 0.5 metros. Foi utilizado uma velocidade de propagação de 300 m/s, <math>\Delta x = 0.01</math> e <math>\Delta t = \frac{\Delta x }{4v}</math>.]]<br />
<br />
'''Corda C2:'''<br />
<br />
[[Arquivo:C2.gif|frame|none|alt=Alt text|Simulação de uma corda C2 de um piano com os parâmetros da tabela acima.]][[Arquivo:C2foto.png|frame|none|alt=Alt text|Estado da corda C2 em diferentes instantes de tempo.]]<br />
<br />
'''Corda C4:'''<br />
<br />
[[Arquivo:C4.gif|frame|none|alt=Alt text|Simulação de uma corda C4 de um piano com os parâmetros da tabela acima.]]<br />
[[Arquivo:C4foto.png|frame|none|alt=Alt text|Estado da corda C4 em diferentes instantes de tempo.]]<br />
<br />
'''Corda C7:'''<br />
<br />
[[Arquivo:C7.gif|frame|none|alt=Alt text|Simulação de uma corda C7 de um piano com os parâmetros da tabela acima.]]<br />
[[Arquivo:C7foto.png|frame|none|alt=Alt text|Estado da corda C7 em diferentes instantes de tempo.]]<br />
<br />
'''Corda com as definições do livro "''Computational Physics''"<ref name=giordano/>:'''<br />
<br />
[[Arquivo:Giordano.gif|frame|none|alt=Alt text|Simulação da corda exemplificada no livro ''Computational Physics'' <ref name=giordano/>. Os parâmetros utilizados estão descritos no texto.]]<br />
[[Arquivo:Giordanofoto.png|frame|none|alt=Alt text|Estado da corda usada como exemplo pelo autor Giordano <ref name=giordano/> em diferentes instantes de tempo.]]<br />
<br />
É possível observar que o tempo necessário para que, devido a fricção, os movimentos na corda diferenciem-se cada vez mais da solução para a corda ideal é menor para um tamanho de corda menor, ou seja, a fricção acaba sendo mais relevante mais rapidamente em cordas mais curtas. Isso significa que deixamos de ter apenas dois pulsos propagando-se em sentidos opostos para termos ou mais pulsos de amplitudes menores, ou a soma de pulsos de diferentes amplitudes.<br />
<br />
== Análise de Erro e Estabilidade dos Métodos ==<br />
<br />
=== Estabilidade do método Leapfrog ===<br />
Pela estabilidade de Von Neumann, podemos escrever que <br />
<br />
<math><br />
r \leq 1.<br />
</math><br />
<br />
Para <math>r = 1</math>, a equação da discretização da onda pode ser reescrita como<br />
<br />
<math>U_i^{n+1} = U_{i+1}^n+U_{i-1}^n-U_i^{n-1}.</math><br />
<br />
Essa escolha com <br />
<br />
<math>\frac{\Delta x}{\Delta t} = v</math><br />
<br />
nos dá a solução exata sem dispersão numérica, como pode ser verificado pela condição CFL. Contudo, <math>r=1</math> é válido somente no caso de uma corda ideal.<br />
É conveniente escrever a condição acima em termos da amostragem de sinal <math>f_e = \frac{1}{\Delta t}</math> e a frequência fundamental da corda <math>f_1 = \frac{v}{2L}</math>, o que nos leva a<br />
<br />
<math><br />
Kf_1 \leq \frac{f_e}{2}<br />
</math><br />
<br />
O[https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem Teorema de Nyquist-Shannon] diz que a frequência superior no espectro deve ser menor do que <math>\frac{f_e}{2}</math> para evitar serrilhamento e para garantir uma reconstrução única e contínua. Logo, no caso ideal quando as autofrequências da corda são igualmente espaçadas (<math>\Delta f = f_1</math>), a condição de Nyquist indica que o número máximo de frequências no espectro é <math>K</math>. Isso significa que essa condição pode ser usada para selecionar o número apropriado de pontos espaciais <math>K</math> para a corda. Entretanto, como <math>K</math> é um inteiro, apenas valores discretos da frequência natural podem ser obtidos sem erros de trucamento, ou seja, usando <math>r = 1</math>. Como séries discretas não costumam ser utilizadas, precisamos aceitar pequenos erros de truncamento para ajustar <math>f_1</math>, ou seja, utilizando <math>r < 1</math>. No caso de uma onda com fricção, temos que <math>r=\frac{1}{4}</math> é um valor de boa estabilidade.<br />
<br />
== Referências Bibliográficas==<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo3_-_Ondas2&diff=2113Grupo3 - Ondas22018-01-24T23:39:07Z<p>Lucasdoria: /* Análise e Discussão dos Resultados */</p>
<hr />
<div>'''Grupo: Lucas Dória, Caetano Pires e Ânderson Rosa.'''<br />
<br />
O objetivo deste trabalho é analisar três métodos diferentes de integração numérica para resolução de equações diferenciais parciais (EDP's). A equação aqui abordada é a equação da onda, a qual consiste em uma EDP hiperbólica de segunda ordem. Uma pequena noção dos métodos numéricos é dada, após a explicação do problema físico abordado. Os dados encontrados são comentados e comparados com os resultados esperados. Simulações também foram feitas para melhor visualização dos fenômenos. Por último, foi feita uma análise de erros e estabilidade para cada um dos métodos, assim como algumas conclusões foram inferidas.<br />
<br />
== Introdução ==<br />
<br />
Equações diferenciais parciais hiperbólicas geralmente podem ser formuladas a partir de teoremas de conservação. Um exemplo é a equação do tipo:<br />
<br />
<math>\frac{\partial \vec{U}}{\partial t} + \nabla \cdot \vec{F}(U) = \vec{S}(U),</math><br />
<br />
onde <math>\vec{U}</math> é o vetor de densidades da quantidade conservada, i.e., <math>\vec{U} = (U_1,...,U_n),</math> <math>\vec{F}</math> é o fluxo de densidade e <math>\vec{S}</math> é um termo genérico representando fontes e/ou sumidouros.<br />
<br />
Uma classe especial de equações hiperbólicas são as chamadas equações de adveção, na qual a derivada temporal da quantidade conservada <math>\vec{U}(\vec{x},t)</math> é proporcional à sua derivada espacial. Nesses casos, <math>\vec{F}(U)</math> é diagonal e dada por:<br />
<br />
<math>\vec{F}(U) = v I \cdot \vec{U},</math><br />
<br />
onde <math>I</math> é a matriz identidade.<br />
<br />
Considerando apenas uma dimensão e com <math>\vec{U} \equiv u</math>, temos a equação de adveção:<br />
<br />
<math>\frac{\partial u}{\partial t} + v \frac{\partial u}{\partial x} = 0,</math><br />
<br />
onde <math>v</math> é a velocidade de propagação do pulso gerado. A equação admite uma solução analítica da forma <math>u = f(x - vt),</math> representando um pulso se movendo na direção positiva de <math>x.</math><br />
<br />
A equação da onda em uma dimensão é uma EDP hiperbólica de segunda ordem dada por<br />
<br />
<math><br />
\frac{\partial^2 u}{\partial t^2} = v^2 \frac{\partial^2 u}{\partial x^2},<br />
</math><br />
<br />
onde <math>u = u(x,t)</math> é o deslocamento transversal à direção de propagação de uma posição <math>x</math> no instante <math>t</math> e admite duas soluções, representadas por pulsos, na forma <math>f_1(x + vt)</math> e <math>f_2(x - vt).</math><br />
<br />
Assumindo que <math>v</math> não depende da posição na equação da onda, nos restringimos a problemas lineares. Além disso, se escrevermos<br />
<br />
<math><br />
k = v \frac{\partial u}{\partial x},\qquad s = \frac{\partial u}{\partial t},<br />
</math><br />
<br />
então a equação da onda pode ser escrita como um sistema de três equações diferenciais de primeira ordem:<br />
<br />
<math><br />
\begin{cases}\displaystyle \frac{\partial k}{\partial t} = v\frac{\partial s}{\partial x} \\\\<br />
\displaystyle \frac{\partial s}{\partial t} = v\frac{\partial k}{\partial x} \\\\<br />
\displaystyle \frac{\partial u}{\partial t} = s <br />
\end{cases}<br />
</math><br />
<br />
Em notação vetorial, o sistema acima pode ser reescrito na forma conservativa como: <math>\frac{\partial U}{\partial t}+ \frac{\partial F(U)}{\partial x} = 0, </math><br />
<br />
onde <math>U = \begin{pmatrix}k\\s\end{pmatrix},\quad \textrm{e}\quad F(U) =\begin{pmatrix}0 & -v\\-v & 0\end{pmatrix}</math><br />
<br />
==Condição CFL==<br />
<br />
Uma condição necessária mas nem sempre suficiente para a convergência de equações diferenciais parciais resolvidas a partir de métodos de diferença, conhecida como condição CFL <ref>Luciano Rezzolla, "Numerical Methods for the Solution of Partial Differential Equations". Albert Einstein Institute, Max-Planck-Institute for Gravitational Physics, Potsdam, Germany.</ref>, é formulada a partir do termo de “domínio de dependência”.<br />
<br />
Considerando, por exemplo, a equação da advecção [https://en.wikipedia.org/wiki/Advection] em uma aproximação a partir de métodos de diferença em sua forma explícita <br />
<br />
<math>\frac{U^{n+1}_i-U^n_i}{\Delta t} + v\frac{U^n_{i}-U^n_{i-1}}{\Delta x}=0,</math><br />
<br />
diz-se que o valor de <math>U^{n+1}_i</math> depende dos valores anteriores de <math>U^n_i</math> e <math>U^n_{i-1}</math>, e esses dois pontos dependem, novamente, de outros dois pontos em tempos anteriores. Todos esses pontos dependentes formam o domínio de dependência do valor <math>U^{n+1}_i</math>, representado abaixo (botar figura do domínio de dependência).<br />
<br />
A condição CFL enuncia que a condição mínima para que haja estabilidade em métodos de diferenças o domínio de dependência da equação diferencia parcial, dado por sua equação característica, deve estar situado dentro do domínio de dependência do esquema numérico.<br />
<br />
A partir dessa condição, define-se o número CFL como <br />
<br />
<math>r\equiv v\frac{\Delta t}{\Delta x}</math><br />
<br />
onde <math>\Delta t</math> é um passo na malha temporal e <math>\Delta x</math> é um passo na malha espacial. Para casos unidimensionais, como o que será tratado aqui, a condição CFL é satisfeita se r<br />
<br />
<math> \left|r\right| \le 1 </math> <br />
<br />
Um uso da condição CFL é determinar o tamanho do passo temporal, sabendo-se <math>v</math> e <math>\Delta x</math>:<br />
<br />
<math>\Delta t = c_{cfl}\frac{\Delta x}{\left|v\right|}</math><br />
<br />
onde o fator <math>c_{cfl}<1</math>.<br />
<br />
O número CFL pode ser entendido como um fluxo numérico advectivo adimensionalisado pelas malhas espacial e temporal do problema. De um ponto de vista matemático, ele garante que o domínio numérico de dependência é sempre maior que o domínio físico. De um ponto de vista físico, é garantido que a velocidade de propagação de qualquer perturbação, como uma onda, seja menor ou ao menos igual que a velocidade de propagação numérica, fazendo com que a distância propagada pela perturbação não seja maior do que a divisão da malha espacial:<br />
<br />
<math>\left|v\right|\Delta t \le \Delta x </math><br />
<br />
== O Problema Físico ==<br />
<br />
===O Modelo de Corda Ideal===<br />
<br />
Para uma primeira abordagem da equação da onda, consideramos uma corda com suas extremidades fixas. Podemos dividir o comprimento <math>L</math> dessa corda em <math>K</math> intervalos de comprimentos iguais, dessa forma <math>\Delta x = \frac{L}{K}</math>. Cada intervalo é discretizado, representado por <math>x_i</math>, <math>i=0,1,...,K</math>. Também podemos dividir o tempo em intervalos iguais <math>\Delta t</math> e denotá-los como <math>t_n</math>, <math>n =0,1,...,t_{max}</math>. Abaixo temos uma esquematização das informações que precisamos para cada ponto da corda:<br />
<br />
[[Arquivo:grid.png]]<br />
<br />
Tendo feita a discretização das variáveis, podemos aproximar a equação da onda por diferenciação finita, utilizando derivadas centradas da seguinte forma:<br />
<br />
<math>\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}</math><br />
<br />
<math>\frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}</math><br />
<br />
onde <math>U_i^n</math> representa o valor discretizado de <math>u(x_i,t_n)</math>.<br />
<br />
Assim, chegamos em uma equação discretizada:<br />
<br />
<math>\frac{U_i^{n+1}-2U_i^n+U_i^{n-1}}{(\Delta t)^2} = v^2 \frac{U_{i+1}^n-2U_i^n+U_{i-1}^n}{(\Delta x)^2}</math>. <br />
<br />
Sabendo que essa discretização da equação da onda pode ser verificada como sendo o método Leapfrog (ver seção do método de Leapfrog [https://fiscomp.if.ufrgs.br/index.php/Grupo3_-_Ondas2#O_M.C3.A9todo_de_Leapfrog método de Leapfrog]), podemos resolver a equação para <math>U_i^{n+1}</math> para sabermos o deslocamento vertical de uma partição da corda no momento de tempo seguinte, assim obtendo<br />
<br />
<math>U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}</math>,<br />
<br />
onde <math>r = v \frac{\Delta t}{\Delta x}.</math><br />
<br />
===Um Quadro Mais Realístico - O Modelo de Corda Rígida ===<br />
<br />
Para nos aproximarmos de um modelo mais real, podemos adicionar um termo à equação original da onda que corresponde ao efeito de fricção em uma corda. A equação da onda mais geral com efeito de fricção pode ser escrita como: <ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math>\frac{\partial^2 u}{\partial t^2} = v^2 \left( \frac{\partial^2 u}{\partial x^2} - \epsilon L^2 \frac{\partial^4 u}{\partial x^4} \right),</math><br />
<br />
onde <math>v</math> é a velocidade transversal de propagação do pulso na corda, dada pela relação <math>v = \sqrt[]{\frac{T}{\rho}}</math> (sendo <math>T</math> a tensão na corda e <math>\rho</math> a densidade linear da mesma), <math>\epsilon</math> é um parâmetro adimensional de fricção que representa a rigidez da corda e <math>L</math> o comprimento da corda.<br />
<br />
O parâmetro <math>\epsilon</math> é dado por<br />
<br />
<math>\epsilon = \kappa² \frac{E S}{T L^2}</math>,<br />
<br />
onde <math>\kappa</math> é o [https://en.wikipedia.org/wiki/Radius_of_gyration raio de giro] da corda, <math>E</math> é o [https://en.wikipedia.org/wiki/Young%27s_modulus Módulo de Young] e <math>S</math> a área da secção da corda.<br />
<br />
Discretizamos a equação da seguinte maneira:<br />
<br />
<math><br />
\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}</math><br />
<br />
<math> \frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}</math><br />
<br />
<math> \frac{\partial^4u}{\partial x^4}=\frac{U^n_{i+2}-4U^n_{i+1}+6U^n_i-4U^n_{i-1}+U^n_{i-2}}{\Delta x^4}<br />
</math><br />
<br />
e resolvemos para <math>U_i^{n+1}</math>, obtendo:<br />
<br />
<math> U_i^{n+1}=[2-2r^2-6\epsilon r^2K^2]U_i^n - U_i^{n-1} +r^2[1+4\epsilon K^2][U_{i+1}^n+U_{i-1}^n]-\epsilon r^2K^2[U_{i+2}^n + U_{i-2}^n].</math><br />
<br />
O fato de essa discretização depender do deslocamento da corda em posições <math>i-2</math> e <math>i+2</math> implica em precisarmos simular "pontos fantasmas" quando integramos os extremos das cordas. Para fazermos isso, podemos ou utilizar a aproximação <math>U_{-1}^n = -U_{+1}^n</math> ou podemos considerar esses "pontos fantasmas" como pontos presos e, portanto, sempre iguais a zero.<br />
<br />
== Os Métodos Utilizados ==<br />
<br />
Foi realizada uma abordagem ao problema da corda real a partir de três métodos diferentes de integração numérica.<br />
<br />
O método mais básico é chamado de FTCS (Forward-Time-Centered-Space) e consiste em duas expansões de Taylor ao redor do ponto <math>x_j</math>:<br />
<br />
<math>u(x_i + \Delta x,t^n) = u(x_i,t^n) + \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3),</math><br />
<br />
<math>u(x_i - \Delta x,t^n) = u(x_i,t^n) - \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3).</math><br />
<br />
Subtraindo as duas expressões, encontramos a expressão<br />
<br />
<math>\left.\frac{\partial u}{\partial x}\right|_i^n = \frac{u^n_{i+1} - u^n_{i-1}}{2 \Delta x} + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
A qual podemos substituir na equação da onda, juntamente com a discretização da derivada parcial temporal. Temos então que, para um sistema linear de equações hiperbólicas:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta t^2, \Delta x^2 \Delta t)</math><br />
<br />
Visto que essa última notação é mais genérica, ela será utilizada para a explicação dos métodos posteriores.<br />
<br />
=== O Método de Lax-Friedrichs ===<br />
<br />
O método de Lax-Friedrichs consiste em substituir o termo <math>\textbf{U}^n_i</math> com sua respectiva média espacial, i.e., <math>U^n_i = (U^n_{i+1} + U^n_{i-1})/2</math>. Logo, temos a seguinte equação de recorrência:<br />
<br />
<math>\textbf{U}^{n+1}_i = \frac{1}{2}(\textbf{U}^n_{i+1} + \textbf{U}^n_{i-1}) - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)</math><br />
<br />
=== O Método de Leapfrog ===<br />
<br />
Tanto o método FTCS quanto o método de Lax-Friedrichs são métodos de primeira ordem para a derivada temporal. Nessas circunstâncias, <math>v \Delta t</math> deve ser significantemente menor do que <math>\Delta x</math>, muito abaixo do limite imposto pela condição de Courant.<br />
<br />
Uma nova expressão para a derivada temporal, com precisão de segunda ordem é dada por<br />
<br />
<math>\left.\frac{\partial u}{\partial t}\right|^n_i = \frac{U^{n+1}_i - U^{n-1}_i}{2 \Delta t} + \mathcal{O}(\Delta t^2).</math><br />
<br />
Substituindo a nova expressão acima no método de FTCS discutido anteriormente, encontramos o método de Leapfrog:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^{n-1}_i - \frac{\Delta t}{\Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2).</math><br />
<br />
Como o método de Leapfrog será o mais aplicado na resolução do problema da onda, é interessante um aprofundamento maior do método. Podemos adaptar o método de Leapfrog para o sistema de equações definido para a equação da onda ao fazermos a discretização ao redor de um ponto qualquer <math>i</math> no instante de tempo <math>n</math>:<br />
<br />
<math><br />
k_{i+\frac{1}{2}}^n \equiv v \left.\frac{\partial U}{\partial x}\right|_{i+\frac{1}{2}}^{n} = v \frac{U_{i+1}^n-U_i^n}{\Delta x} + \mathcal{O}(\Delta x) \qquad (1)<br />
</math><br />
<br />
<math><br />
s_{i}^{n+\frac{1}{2}} \equiv \left.\frac{\partial U}{\partial t}\right|_{i}^{n+\frac{1}{2}} = \frac{U_{i}^{n+1}-U_i^n}{\Delta t} + \mathcal{O}(\Delta t) \qquad (2)<br />
</math><br />
<br />
Com essas discretizações, podemos utilizar as equações (1) e (2) para resolvermos para <math>k^{n+1}_{i+\frac{1}{2}}</math> apenas em termos de <math>s</math>, <math>k</math> e <math>r</math>. Fazendo as substituições dessas duas equações uma na outra (ver passo a passo: [[Dedução Leapfrog]]), obtemos:<br />
<br />
<math>\frac{\Delta x}{v}k^{n+1}_{i+\frac{1}{2}} = s^{n+\frac{1}{2}}_{i+1}\Delta t + \frac{\Delta x}{v}k^{n}_{i+\frac{1}{2}} + U^n_i - (s^{n+\frac{1}{2}}_i \Delta t + U^n_i)</math><br />
<br />
Dessa equação, chegamos a<br />
<br />
<math><br />
k_{i+\frac{1}{2}}^{n+1} = k_{i+\frac{1}{2}}^n+r(s_{i+1}^{n+\frac{1}{2}}-s_{i}^{n+\frac{1}{2}}) \qquad (3)<br />
</math><br />
<br />
Utilizando o mesmo raciocínio, podemos também resolver para <math>s^{n+\frac{1}{2}}_i</math> e obter<br />
<br />
<math><br />
s_i^{n+\frac{1}{2}} = s_{i}^{n-\frac{1}{2}}+r(k_{i+\frac{1}{2}}^{n}-k_{i-\frac{1}{2}}^{n}) \qquad (4)<br />
</math><br />
<br />
Com essas duas equações, podemos fazer uma integração utilizando o método de Euler para obter <math>U_i^{n+1}</math>, ou seja, o deslocamento de um determinado ponto <math>i</math> da corda no próximo instante de tempo:<br />
<br />
<math>U_i^{n+1} = U_i^n + \frac{\Delta t}{2}s_i^{n+\frac{1}{2}}+\mathcal{O}(\Delta x^2).</math><br />
<br />
Contudo, podemos fazer uma simples substituição das equações <math>(1)</math> e <math>(2)</math> nas equações <math>(3)</math> e <math>(4)</math> e, assim, obtemos que a representação de Leapfrog da equação da onda é dada pela discretização de segunda ordem da própria equação da onda, com <math>\mathcal{O}(\Delta t^2, \Delta x^2)</math> (ver passo a passo da comparação [[Discretização x Leapfrog]]. Isso nos dá uma solução de "um passo", onde só precisamos efetuar o cálculo da equação discretizada pelo método da derivação finita, ou seja, para o caso da corda ideal, a equação<br />
<br />
<math>U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}.</math><br />
<br />
=== O Método de Lax-Wendroff ===<br />
<br />
O método de Lax-Wendroff é a extensão do método de Lax-Friedrichs de segunda ordem. Calculamos o vetor <math>U</math> a partir de um passo médio de Lax-Friedrichs:<br />
<br />
<math>\textbf{U}^{n+\frac{1}{2}}_{i + \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i+1} + \textbf{U}^n_i] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_i] + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
<math>\textbf{U}^{n+\frac{1}{2}}_{i - \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i} + \textbf{U}^n_{i-1}] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)</math>,<br />
<br />
E encontramos os fluxos <math>\textbf{F}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}</math> a partir dos valores de <math>\textbf{U}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}.</math><br />
<br />
Logo, com um meio passo de Leapfrog, temos a expressão final do método:<br />
<br />
<math>\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{\Delta x} \left[\textbf{F}^{n + \frac{1}{2}}_{i + \frac{1}{2}} - \textbf{F}^{n + \frac{1}{2}}_{i - \frac{1}{2}}\right] + \mathcal{O}(\Delta x^2)</math><br />
<br />
== Análise e Discussão dos Resultados ==<br />
Escolhemos para simular [teste] quatro diferentes cordas: as cordas C2, C4 e C7, que são cordas dó de um piano <ref>Antoine Chaign, Anders Askenfelt, "Numerical simulations of piano strings. I. A physical model for a struck string using finite difference methods". Signal Department, Paris, France. Department of Speech Communication and Music Acoustics; Royal Institute of Technology, Stockholm, Sweden.</ref> e uma corda qualquer baseada nos dados encontrados no livro "''Computational Physics''" <ref name=giordano/>. Os dados das cordas C2, C4 e C7 estão na tabela abaixo, onde iremos definir para cada corda o comprimento, a massa, a tensão aplicada elas, o número de divisões existentes, amostragem de sinal (que é um parâmetro obtido experimentalmente)e o parâmetro de fricção.<br />
<br />
{| class="wikitable"<br />
|-<br />
!<br />
! '''C2'''<br />
! '''C4'''<br />
! '''C7'''<br />
|-<br />
| '''Comprimento''' (<math>m</math>)<br />
| <math>1.90</math><br />
| <math>0.62</math><br />
| <math>0.09</math><br />
|-<br />
| '''Massa'''(<math>g</math>)<br />
| <math>35</math><br />
| <math>3.93 </math><br />
| <math>0.467</math><br />
|-<br />
| '''Tensão''' (<math>N</math>)<br />
| <math>750</math><br />
| <math>670</math><br />
| <math>750</math><br />
|-<br />
| '''Divisões'''<br />
| <math>100</math><br />
| <math>50</math><br />
| <math>16</math><br />
|-<br />
| '''Amostragem de sinal'''<br />
| <math>16\times10^{3}</math><br />
| <math>32\times10^{3}</math><br />
| <math>96\times10^{3}</math><br />
|-<br />
|'''Parâmetro de fricção'''<br />
| <math>7.5\times10^{-6}</math><br />
| <math>3.82\times10^{-5}</math><br />
| <math>8.67\times10^{-4}</math><br />
|}<br />
<br />
Desses dados, temos que a densidade linear de massa das cordas é dada por <br />
<br />
<math>\rho = \frac{M}{L},</math><br />
<br />
onde <math>M</math> é a massa e <math>L</math> o comprimento da corda, <br />
<br />
<math>v = \sqrt{\frac{T}{\rho}},</math><br />
<br />
onde <math>T</math> é a tensão na corda, <br />
<br />
<math>\Delta x = \frac{L}{K},</math><br />
<br />
<math>\Delta t = \frac{1}{f_e},</math><br />
<br />
e <br />
<br />
<math>r = v\frac{\Delta t}{\Delta x}.</math><br />
<br />
Os dados obtidos a partir de todas essas equações são calculados pelo programa com base dos dados da tabela.<br />
<br />
Para a simulação baseada nos dados retirados do livro ''"Computational Physics"''<ref name=giordano/>, utilizamos uma corda com 2 metros de comprimento, com velocidade de propagação transversal da onda sendo 300<math>m/s</math>, <math>\Delta x</math> de 0.01<math>m</math>, <math>\Delta t = \frac{\Delta x }{4v}</math> e parâmetro de fricção de <math>7.5\times10^{-6}</math>.<br />
<br />
Supondo uma corda inicialmente em repouso, temos que em <math>t = 0</math> a corda irá receber em seu centro o equivalente à batida do martelo de um piano. Supomos que esse estímulo da batida do martelo possuía o formato aproximado de uma Gaussiana com amplitude de <math>\frac{1}{4}</math> do comprimento de cada corda. <br />
<br />
Então, com o estado inicial da simulação sendo um pulso com o formato de um pacote gaussiano, utilizando condições de contorno fixas, ou seja, mantendo as extremidades da corda paradas e utilizando os dados da tabela para simularmos cada uma das cordas, começamos a simular a propagação de ondas.<br />
<br />
Utilizando o método de Leapfrog, foi realizada uma primeira simulação para uma onda ideal em uma corda:<br />
<br />
[[File:ideal.gif|frame|none|alt=Alt text|Simulação de uma onda em uma corda ideal com condições de contorno u(0,t) = 0 e u(L,t) = 0. A corda simulada possuía comprimento de 2 metros e a amplitude inicial do pulso gaussiano tinha amplitude de 0.5 metros. Foi utilizado uma velocidade de propagação de 300 m/s, <math>\Delta x = 0.01</math> e <math>\Delta t = \frac{\Delta x }{4v}</math>.]]<br />
<br />
'''Corda C2:'''<br />
<br />
[[Arquivo:C2.gif|frame|none|alt=Alt text|Simulação de uma corda C2 de um piano com os parâmetros da tabela acima.]][[Arquivo:C2foto.png|frame|none|alt=Alt text|Estado da corda C2 em diferentes instantes de tempo.]]<br />
<br />
'''Corda C4:'''<br />
<br />
[[Arquivo:C4.gif|frame|none|alt=Alt text|Simulação de uma corda C4 de um piano com os parâmetros da tabela acima.]]<br />
[[Arquivo:C4foto.png|frame|none|alt=Alt text|Estado da corda C4 em diferentes instantes de tempo.]]<br />
<br />
'''Corda C7:'''<br />
<br />
[[Arquivo:C7.gif|frame|none|alt=Alt text|Simulação de uma corda C7 de um piano com os parâmetros da tabela acima.]]<br />
[[Arquivo:C7foto.png|frame|none|alt=Alt text|Estado da corda C7 em diferentes instantes de tempo.]]<br />
<br />
'''Corda com as definições do livro "''Computational Physics''"<ref name=giordano/>:'''<br />
<br />
[[Arquivo:Giordano.gif|frame|none|alt=Alt text|Simulação da corda exemplificada no livro ''Computational Physics'' <ref name=giordano/>. Os parâmetros utilizados estão descritos no texto.]]<br />
[[Arquivo:Giordanofoto.png|frame|none|alt=Alt text|Estado da corda usada como exemplo pelo autor Giordano <ref name=giordano/> em diferentes instantes de tempo.]]<br />
<br />
É possível observar que o tempo necessário para que, devido a fricção, os movimentos na corda diferenciem-se cada vez mais da solução para a corda ideal é menor para um tamanho de corda menor, ou seja, a fricção acaba sendo mais relevante mais rapidamente em cordas mais curtas. Isso significa que deixamos de ter apenas dois pulsos propagando-se em sentidos opostos para termos ou mais pulsos de amplitudes menores, ou a soma de pulsos de diferentes amplitudes.<br />
<br />
== Análise de Erro e Estabilidade dos Métodos ==<br />
<br />
=== Estabilidade do método Leapfrog ===<br />
Pela estabilidade de Von Neumann, podemos escrever que <br />
<br />
<math><br />
r \leq 1.<br />
</math><br />
<br />
Para <math>r = 1</math>, a equação da discretização da onda pode ser reescrita como<br />
<br />
<math>U_i^{n+1} = U_{i+1}^n+U_{i-1}^n-U_i^{n-1}.</math><br />
<br />
Essa escolha com <br />
<br />
<math>\frac{\Delta x}{\Delta t} = v</math><br />
<br />
nos dá a solução exata sem dispersão numérica, como pode ser verificado pela condição CFL. Contudo, <math>r=1</math> é válido somente no caso de uma corda ideal.<br />
É conveniente escrever a condição acima em termos da amostragem de sinal <math>f_e = \frac{1}{\Delta t}</math> e a frequência fundamental da corda <math>f_1 = \frac{v}{2L}</math>, o que nos leva a<br />
<br />
<math><br />
Kf_1 \leq \frac{f_e}{2}<br />
</math><br />
<br />
O[https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem Teorema de Nyquist-Shannon] diz que a frequência superior no espectro deve ser menor do que <math>\frac{f_e}{2}</math> para evitar serrilhamento e para garantir uma reconstrução única e contínua. Logo, no caso ideal quando as autofrequências da corda são igualmente espaçadas (<math>\Delta f = f_1</math>), a condição de Nyquist indica que o número máximo de frequências no espectro é <math>K</math>. Isso significa que essa condição pode ser usada para selecionar o número apropriado de pontos espaciais <math>K</math> para a corda. Entretanto, como <math>K</math> é um inteiro, apenas valores discretos da frequência natural podem ser obtidos sem erros de trucamento, ou seja, usando <math>r = 1</math>. Como séries discretas não costumam ser utilizadas, precisamos aceitar pequenos erros de truncamento para ajustar <math>f_1</math>, ou seja, utilizando <math>r < 1</math>. No caso de uma onda com fricção, temos que <math>r=\frac{1}{4}</math> é um valor de boa estabilidade.<br />
<br />
== Referências Bibliográficas==<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1900Grupo - Ising 2D2018-01-23T10:23:55Z<p>Lucasdoria: /* Bibliografias */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de spins de Ising <math>s={s_1,s_2,..s_i,...s_N}</math> que podem assumir valor <math>+1</math> e <math>-1</math>, respectivamente "up" e "down", onde <math>N</math> é a quantidade máxima de spins, ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. A evolução desse sistema de spins é descrito por uma dinâmica que possui as propriedades do processo de Markov de balanceamento detalhado e ergocidade, garantindo ao sistema que sua evolução o leva a estados estacionários de equilibrio descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising 2D tratado neste trabalho possui seus spins organizados em uma rede quadrada bidimensional de tamanho <math>N=L\times L</math> com vizinhança de Von Newmann e condições de contorno periódicas. A energia desse sistema é descrita pela equação <ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math>E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,</math><br />
<br />
onde <math>J</math> é a taxa de transição, <math>H</math> representa o campo magnético externo e <math>\mu</math> o momento magnético associado com cada spin. O primeiro somatório é sobre todas as vizinhanças de spins e o segundo sobre todos os spins. Neste trabalho, particularmente, escolhemos <math>J=1</math> para favorecer menores energias em spins apontados para cima (<math>s=1</math>), <math>\mu = 1 </math> e <math>0\le H</math><br />
<br />
A magnetização desse sistema é dada pela soma de todos os valores de spins:<br />
<br />
<math>M = \sum_{i=1}^N <s_i> </math>.<br />
<br />
Utilizando a abordagem da mecânica estatística, conforme descrito por Gibbs (1902), podemos estimar valores médios de propriedades macroscópicas de um sistema termodinâmico, como energia ou magnetização, a partir de uma amostragem de Boltzmann relativa ao valor da propriedade sobre todos os estados do sistema. Sendo assim, podemos estimar o valor energia do nosso sistema em estado de equilibro termodinâmico como sendo<br />
<br />
<math><E> = \frac{1}{Z}\sum_{\nu}E_{\nu} e^{-E{\nu}/kT}</math><br />
<br />
onde Z é a função partição <math>Z = \sum_{\nu} e^{-E{\nu}/kT} </math>, <math> E_{\nu}</math> é a energia do sistema no estado <math>\nu</math>, <math>T</math> é a temperatura de um reservatório em contato com o sistema e <math>k</math> é a constante de Boltzmann, escolhida nesse trabalho como tendo valor unitário. O mesmo serve para a magnetização:<br />
<br />
<math><M> = \frac{1}{Z}\sum_{\nu}|M_{\nu}| e^{-E{\nu}/kT}</math>, onde <math><M></math> é medido sobre o módulo da <math>M_{\nu}</math>, que é a magnetização no estado <math>\nu</math>.<br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins <math>(L^2)</math>, <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico por spin do sistema, dada por<br />
<br />
<math>c_{spin} = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação.<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
=== Algorítmo de Metrópolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações do sistema, utilizaremos o Algorítmo de Metropolis. O algoritmo funcionará escolhendo repetidamente um novo estado <math>\nu</math> e aceitando ou rejeitando o estado de acordo com uma probabilidade de aceitação <math>A(\mu \rightarrow \nu)</math> de transitar de um estado antigo <math>\mu</math> para o novo estado <math>\nu</math>. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza o método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
<br />
Temos que a condição de balanceamento detalhado é dada por:<br />
<br />
<math>\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}, \qquad (3)</math><br />
<br />
onde <math>\Delta E = E_\nu - E_\mu</math>.<br />
<br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\nu \rightarrow \mu)</math>, portanto iremos igualar essa probabilidade a 1. <br />
Para que <math>(3)</math> seja respeitada, iremos definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\<br />
1, \qquad \qquad \text{caso contrario}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicas, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spin da matriz poderá assumir apenas os valores de +1 e -1, representando a magnetização desse spin.<br />
<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que fará com que tenhamos uma configuração aproximadamente aleatória, garantido uma magnetização média do sistema de aproximadamente 0.<br />
<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação <math>(1)</math> e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação <math>(1)</math>, temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k^\mu(J\displaystyle \sum_j s_{j} + H)</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math> e, como os vizinhos de <math>s_k</math> não mudam de estado, <math>s_j^\mu = s_j^\nu</math> para qualquer <math>j</math>.<br />
<br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Antes de começar o registro das medidas de magnetização e energia do sistema é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo para eliminar problemas transientes do sistema e o sistema tender a um estado de equilíbrio. Após esse tempo, inicia-se o registro. Os valores do calor específico por spin e da susceptibilidade magnética são feitos após o fim da dinâmica de Monte Carlo.<br />
<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. Também escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado. A partir disso, podemos utilizar o método de amostragem por importância para medir as médias da energia e da magnetização, além das médias da magnetização quadrada e da energia quadrada:<br />
<br />
<math><E> = \frac{1}{MCS}\sum_{\nu}E_{\nu}</math><br />
<br />
<math><E^2> = \frac{1}{MCS}\sum_{\nu}E_{\nu}^2</math><br />
<br />
<math><M> = \frac{1}{MCS}\sum_{\nu}|M_{\nu}|</math><br />
<br />
<math><M^2> = \frac{1}{MCS}\sum_{\nu}M_{\nu}^2</math><br />
<br />
onde <math>MCS</math> é a quantidade de passos de Monte Carlo dadas.<br />
<br />
== Resultados ==<br />
Para analisarmos os resultados obtidos pelo método de Metropolis, realizamos diversas medidas em sistemas com dimensões <math>20\times20</math>, <math>36\times36</math> e <math>48\times48</math>. Utilizamos para todas as medidas um tempo de equilíbrio de <math>10^5</math> Monte Carlo Steps e fizemos <math>10^6</math> medidas.<br />
<br />
Primeiramente, fizemos medidas para sistemas sem campo magnético, ou seja, <math>H=0</math>. Com isso, montamos histogramas da magnetização por spins e da energia por spins do sistema para cada um dos 3 casos em três diferentes temperaturas:<br />
<br />
[[Arquivo:Hist20.png|frameless|upright=5]]<br />
[[Arquivo:Hist36.png|frameless|upright=5]]<br />
[[Arquivo:Hist48.png|frameless|upright=5]]<br />
<br />
Imediatamente é possível notar que, para todas as temperaturas, quanto maior o número de spins, menor é a variância da energia, com as larguras das gaussianas ficando menores. Para a magnetização, para temperaturas menores que a temperatura crítica <math>T_c \approx 2.269</math> e tempos de simulação suficientemente longos, era esperado que tivéssemos duas gaussianas simétricas e de mesma altura, já que os spins estão livres para assumirem valores de +1 e -1. Esse resultado é facilmente observado para <math>T=2.2</math> no sistema 20x20, mas para os sistemas 36x36 e 48x48 as gaussianas possuem alturas diferentes. Esses resultados são indicativos do efeito de redes maiores, onde temos que quanto maior a rede, menor a probabilidade de haver mudança de magnetização do sistema, exigindo tempos de simulação cada vez maiores. Esse efeito pode ser observado ao compararmos as séries temporais da magnetização dos três sistemas:<br />
<br />
[[Arquivo:Séries.png|thumb|upright=5|none|alt=Alt text|Séries temporais da magnetização para os sistemas 20x20 (esquerda), 36x36 (centro) e 48x48 (direita).]]<br />
<br />
Como podemos ver pelas séries temporais, no mesmo período de tempo, o sistema 20x20 troca de estado diversas vezes, enquanto o sistema 36x36 troca apenas uma vez para o estado -1 e o sistema 48x48 não troca nenhuma vez para o estado -1.<br />
Além disso, pelos histogramas, é possível notar que quanto maior a temperatura em relação à temperatura crítica, mais a magnetização do sistema tende a zero, ou seja, as duas gaussianas vão se somando em <math>M=0</math>, resultado da transição de fase do ferromagnetismo para o paramagnetismo.<br />
<br />
[[Arquivo:MeExT.png|thumb|upright=5|none|alt=Alt text|Energia (esquerda) e magnetização (direita) em função da temperatura para diferentes tamanhos de rede. <math>T_c \approx 2.269</math>.]]<br />
<br />
Fazendo um gráfico para a energia em função da temperatura e da magnetização em função da temperatura para cada um dos sistemas, podemos ver que a energia aumenta com o aumento da temperatura, enquanto a magnetização decresce com o aumento da temperatura. Também é possível notar que em ambos os gráficos os resultados para os três tamanhos de sistemas são aproximadamente iguais até a a temperatura aproximar-se da temperatura crítica. Conforme a temperatura se aproxima da transição de fase, os resultados deixam de ser aproximadamente iguais, pois a energia passa a ser maior para redes maiores e voltam a tornarem-se similares após <math>T=2.5</math>. Para a magnetização, ao se aproximar da transição de fase, a magnetização decresce muito mais rapidamente em redes maiores, com os resultados tendendo a zero com o aumento da temperatura.<br />
<br />
<br />
[[Arquivo:SeXxT.png|thumb|upright=5|none|alt=Alt text|Calor específico em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
[[Arquivo:XxT.png|thumb|upright=5|none|alt=Alt text|Suscetibilidade magnética em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
<br />
Analisando os gráficos da suscetibilidade magnética e do calor específico em função da temperatura, podemos perceber que tanto a suscetibilidade magnética quanto o calor específico aumentam quando a temperatura se aproxima da temperatura crítica, com ambos os gráficos possuindo curvas que se tornam mais estreitas próximo de <math>T_c</math>, com os gráficos sendo mais estreitos em redes maiores. Também podemos ver que ambos os gráficos começam a decair um pouco após a temperatura crítica. Isso significa que as variâncias da energia e da magnetização aumentam consideravelmente com a transição de fase do sistema, implicando no aumento da suscetibilidade magnética e do calor específico ao redor da temperatura crítica. É possível perceber que esse efeito é maior em redes maiores, onde há uma grande diferença entre os valores das redes de diferentes tamanhos. No gráfico com a faixa de temperatura maior, podemos ver que para temperaturas menores que T = 2.1 e maiores que T = 2.8 tanto a suscetibilidade magnética quanto o calor específico possuem valores aproximadamente iguais para todos os tamanhos de rede.<br />
<br />
=== Um resultado de redes grandes ===<br />
Algo que pode resultar de simulações com redes grandes é o aparecimento de blocos de spins. Em uma rede suficientemente grande, pode ocorrer o aparecimento de aglomerados (clusters) de spins de determinada magnetização e esses aglomerados podem acabar crescendo até que se formem blocos de spins com uma direção que dão um resultado não tão esperado para o sistema. Um exemplo pode ser visto ao simularmos um sistema <math>100\times100</math> com temperatura <math>T=2.0</math>. Nessas condições, o sistema tende a ficar aproximadamente estável com magnetização aproximadamente +1 ou -1. Contudo, eventualmente pode ocorrer de uma simulação acabar com uma magnetização variando próximo de zero, como é possível ver na série temporal:<br />
<br />
[[Arquivo:Serie100.png|thumb|upright=3|none|alt=Alt text|Série temporal da magnetização. É possível notar que regularmente a série converge rapidamente para um estado com magnetização +1 (note que poderia também convergir para -1), mas há a possibilidade de ficar oscilando próximo de <math>M=0</math>.]]<br />
<br />
Ao olharmos um snapshot do estado de ambos os sistemas conseguimos entender o que está acontecendo:<br />
<br />
[[Arquivo:Snapshots.png|thumb|upright=4|none|alt=Alt text|Snapshot de uma simulação ordinária (esquerda) de um sistema 100x100 a uma temperatura de T=2.0 que convergiu para M = +1 e snapshot de um sistema (direita) onde ocorreu o aparecimento de blocos de spins. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1. Ambas snapshots tiradas após <math>10^4</math> Monte Carlo steps.]]<br />
<br />
No snapshot da simulação ordinária conseguimos ver que a maior parte dos spins estão com magnetização +1, o que está de acordo com a série temporal. Já no outro snapshot, temos a formação de um bloco de spins com magnetização -1 ocupando uma faixa vertical completa do sistema. Esse estado da rede faz com que spins que sejam invertidos dentro de um dos blocos influenciem muito pouco a magnetização do sistema e os spins das fronteiras entre os blocos que forem invertidos acabam apenas sendo invertidos novamente, fazendo com que a magnetização total do sistema oscile, mas se mantenha sempre próxima do mesmo valor. Para ilustrarmos esse efeito, temos uma animação para cada uma das evoluções: sem a formação de blocos e com formação de blocos.<br />
<br />
[[Arquivo:Sembloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema convergindo para magnetização +1 correspondente à série temporal "Simulação ordinária" no gráfico das séries temporais. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
[[Arquivo:Formarbloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema com formação de um bloco vertical de spins com magnetização +1. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
<br />
=== Simulação com campo magnético ===<br />
Para fazermos a simulação do modelo de Ising com campo magnético não nulo e termos resultados interessantes de serem observados, precisamos de duas características: primeiro, precisamos que o campo magnético seja pequeno para que possamos fazer observações, pois para campos magnéticos grandes os spins irão se alinhar rapidamente à direção do campo e, portanto, será pouco provável a mudança de estado do sistema. A segunda característica que precisamos é a de que a rede seja pequena, pois quanto maior a rede, menos provável é o sistema mudar de estado em tempos de simulação viáveis, assim como foi visto nos resultados sem campo magnético. <br />
Utilizando uma rede 20x20, fizemos histogramas para diferentes temperaturas para dois diferentes campos magnéticos:<br />
<br />
[[Arquivo:Histogramas com campo.png|thumb|upright=4|none|alt=Alt text|Histogramas da magnetização de uma rede 20x20 sob efeito de um campo magnético. À esquerda temos um campo magnético atuante <math>H = -0.005</math> e à direita temos um campo magnético <math>H = 0.005</math>.]]<br />
<br />
Podemos observar que para a temperatura inferior a <math>T_c</math>, temos a formação de uma gaussiana muito maior do que a outra, com a maior gaussiana sendo a que tem a magnetização alinhada com a direção do campo magnético exercendo influencia na rede. Ao utilizarmos temperaturas maiores que a temperatura crítica, vemos a magnetização aumentar ao redor de M = 0, até que em T = 3.0 temos apenas uma gaussiana centrada em M = 0, o que está de acordo com a transição de fase do sistema.<br />
Caso não tivéssemos respeitado uma das duas características citadas anteriormente para a simulação de Ising com campo magnético, a maior diferença estaria no sistema com temperatura inferior à temperatura crítica, pois teríamos a formação de apenas uma gaussiana e ela estaria alinhada à direção do campo magnético aplicado ao sistema.<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/><br />
<br />
== Bibliografias ==<br />
M. E. J. Newman, G. T. Barkema, "Monte Carlo Methods in Statistical Physics". Oxford University Press Inc., New York, 1999.<br />
<br />
Tânia Tomé, Mário J. de Oliveira, "Stochastic Dynamics and Irreversibility". Universidade de São Paulo, São Paulo, Brasil. 2015.</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1899Grupo - Ising 2D2018-01-23T10:23:37Z<p>Lucasdoria: /* Modelo de Ising */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de spins de Ising <math>s={s_1,s_2,..s_i,...s_N}</math> que podem assumir valor <math>+1</math> e <math>-1</math>, respectivamente "up" e "down", onde <math>N</math> é a quantidade máxima de spins, ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. A evolução desse sistema de spins é descrito por uma dinâmica que possui as propriedades do processo de Markov de balanceamento detalhado e ergocidade, garantindo ao sistema que sua evolução o leva a estados estacionários de equilibrio descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising 2D tratado neste trabalho possui seus spins organizados em uma rede quadrada bidimensional de tamanho <math>N=L\times L</math> com vizinhança de Von Newmann e condições de contorno periódicas. A energia desse sistema é descrita pela equação <ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math>E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,</math><br />
<br />
onde <math>J</math> é a taxa de transição, <math>H</math> representa o campo magnético externo e <math>\mu</math> o momento magnético associado com cada spin. O primeiro somatório é sobre todas as vizinhanças de spins e o segundo sobre todos os spins. Neste trabalho, particularmente, escolhemos <math>J=1</math> para favorecer menores energias em spins apontados para cima (<math>s=1</math>), <math>\mu = 1 </math> e <math>0\le H</math><br />
<br />
A magnetização desse sistema é dada pela soma de todos os valores de spins:<br />
<br />
<math>M = \sum_{i=1}^N <s_i> </math>.<br />
<br />
Utilizando a abordagem da mecânica estatística, conforme descrito por Gibbs (1902), podemos estimar valores médios de propriedades macroscópicas de um sistema termodinâmico, como energia ou magnetização, a partir de uma amostragem de Boltzmann relativa ao valor da propriedade sobre todos os estados do sistema. Sendo assim, podemos estimar o valor energia do nosso sistema em estado de equilibro termodinâmico como sendo<br />
<br />
<math><E> = \frac{1}{Z}\sum_{\nu}E_{\nu} e^{-E{\nu}/kT}</math><br />
<br />
onde Z é a função partição <math>Z = \sum_{\nu} e^{-E{\nu}/kT} </math>, <math> E_{\nu}</math> é a energia do sistema no estado <math>\nu</math>, <math>T</math> é a temperatura de um reservatório em contato com o sistema e <math>k</math> é a constante de Boltzmann, escolhida nesse trabalho como tendo valor unitário. O mesmo serve para a magnetização:<br />
<br />
<math><M> = \frac{1}{Z}\sum_{\nu}|M_{\nu}| e^{-E{\nu}/kT}</math>, onde <math><M></math> é medido sobre o módulo da <math>M_{\nu}</math>, que é a magnetização no estado <math>\nu</math>.<br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins <math>(L^2)</math>, <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico por spin do sistema, dada por<br />
<br />
<math>c_{spin} = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação.<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
=== Algorítmo de Metrópolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações do sistema, utilizaremos o Algorítmo de Metropolis. O algoritmo funcionará escolhendo repetidamente um novo estado <math>\nu</math> e aceitando ou rejeitando o estado de acordo com uma probabilidade de aceitação <math>A(\mu \rightarrow \nu)</math> de transitar de um estado antigo <math>\mu</math> para o novo estado <math>\nu</math>. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza o método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
<br />
Temos que a condição de balanceamento detalhado é dada por:<br />
<br />
<math>\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}, \qquad (3)</math><br />
<br />
onde <math>\Delta E = E_\nu - E_\mu</math>.<br />
<br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\nu \rightarrow \mu)</math>, portanto iremos igualar essa probabilidade a 1. <br />
Para que <math>(3)</math> seja respeitada, iremos definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\<br />
1, \qquad \qquad \text{caso contrario}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicas, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spin da matriz poderá assumir apenas os valores de +1 e -1, representando a magnetização desse spin.<br />
<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que fará com que tenhamos uma configuração aproximadamente aleatória, garantido uma magnetização média do sistema de aproximadamente 0.<br />
<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação <math>(1)</math> e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação <math>(1)</math>, temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k^\mu(J\displaystyle \sum_j s_{j} + H)</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math> e, como os vizinhos de <math>s_k</math> não mudam de estado, <math>s_j^\mu = s_j^\nu</math> para qualquer <math>j</math>.<br />
<br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Antes de começar o registro das medidas de magnetização e energia do sistema é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo para eliminar problemas transientes do sistema e o sistema tender a um estado de equilíbrio. Após esse tempo, inicia-se o registro. Os valores do calor específico por spin e da susceptibilidade magnética são feitos após o fim da dinâmica de Monte Carlo.<br />
<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. Também escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado. A partir disso, podemos utilizar o método de amostragem por importância para medir as médias da energia e da magnetização, além das médias da magnetização quadrada e da energia quadrada:<br />
<br />
<math><E> = \frac{1}{MCS}\sum_{\nu}E_{\nu}</math><br />
<br />
<math><E^2> = \frac{1}{MCS}\sum_{\nu}E_{\nu}^2</math><br />
<br />
<math><M> = \frac{1}{MCS}\sum_{\nu}|M_{\nu}|</math><br />
<br />
<math><M^2> = \frac{1}{MCS}\sum_{\nu}M_{\nu}^2</math><br />
<br />
onde <math>MCS</math> é a quantidade de passos de Monte Carlo dadas.<br />
<br />
== Resultados ==<br />
Para analisarmos os resultados obtidos pelo método de Metropolis, realizamos diversas medidas em sistemas com dimensões <math>20\times20</math>, <math>36\times36</math> e <math>48\times48</math>. Utilizamos para todas as medidas um tempo de equilíbrio de <math>10^5</math> Monte Carlo Steps e fizemos <math>10^6</math> medidas.<br />
<br />
Primeiramente, fizemos medidas para sistemas sem campo magnético, ou seja, <math>H=0</math>. Com isso, montamos histogramas da magnetização por spins e da energia por spins do sistema para cada um dos 3 casos em três diferentes temperaturas:<br />
<br />
[[Arquivo:Hist20.png|frameless|upright=5]]<br />
[[Arquivo:Hist36.png|frameless|upright=5]]<br />
[[Arquivo:Hist48.png|frameless|upright=5]]<br />
<br />
Imediatamente é possível notar que, para todas as temperaturas, quanto maior o número de spins, menor é a variância da energia, com as larguras das gaussianas ficando menores. Para a magnetização, para temperaturas menores que a temperatura crítica <math>T_c \approx 2.269</math> e tempos de simulação suficientemente longos, era esperado que tivéssemos duas gaussianas simétricas e de mesma altura, já que os spins estão livres para assumirem valores de +1 e -1. Esse resultado é facilmente observado para <math>T=2.2</math> no sistema 20x20, mas para os sistemas 36x36 e 48x48 as gaussianas possuem alturas diferentes. Esses resultados são indicativos do efeito de redes maiores, onde temos que quanto maior a rede, menor a probabilidade de haver mudança de magnetização do sistema, exigindo tempos de simulação cada vez maiores. Esse efeito pode ser observado ao compararmos as séries temporais da magnetização dos três sistemas:<br />
<br />
[[Arquivo:Séries.png|thumb|upright=5|none|alt=Alt text|Séries temporais da magnetização para os sistemas 20x20 (esquerda), 36x36 (centro) e 48x48 (direita).]]<br />
<br />
Como podemos ver pelas séries temporais, no mesmo período de tempo, o sistema 20x20 troca de estado diversas vezes, enquanto o sistema 36x36 troca apenas uma vez para o estado -1 e o sistema 48x48 não troca nenhuma vez para o estado -1.<br />
Além disso, pelos histogramas, é possível notar que quanto maior a temperatura em relação à temperatura crítica, mais a magnetização do sistema tende a zero, ou seja, as duas gaussianas vão se somando em <math>M=0</math>, resultado da transição de fase do ferromagnetismo para o paramagnetismo.<br />
<br />
[[Arquivo:MeExT.png|thumb|upright=5|none|alt=Alt text|Energia (esquerda) e magnetização (direita) em função da temperatura para diferentes tamanhos de rede. <math>T_c \approx 2.269</math>.]]<br />
<br />
Fazendo um gráfico para a energia em função da temperatura e da magnetização em função da temperatura para cada um dos sistemas, podemos ver que a energia aumenta com o aumento da temperatura, enquanto a magnetização decresce com o aumento da temperatura. Também é possível notar que em ambos os gráficos os resultados para os três tamanhos de sistemas são aproximadamente iguais até a a temperatura aproximar-se da temperatura crítica. Conforme a temperatura se aproxima da transição de fase, os resultados deixam de ser aproximadamente iguais, pois a energia passa a ser maior para redes maiores e voltam a tornarem-se similares após <math>T=2.5</math>. Para a magnetização, ao se aproximar da transição de fase, a magnetização decresce muito mais rapidamente em redes maiores, com os resultados tendendo a zero com o aumento da temperatura.<br />
<br />
<br />
[[Arquivo:SeXxT.png|thumb|upright=5|none|alt=Alt text|Calor específico em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
[[Arquivo:XxT.png|thumb|upright=5|none|alt=Alt text|Suscetibilidade magnética em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
<br />
Analisando os gráficos da suscetibilidade magnética e do calor específico em função da temperatura, podemos perceber que tanto a suscetibilidade magnética quanto o calor específico aumentam quando a temperatura se aproxima da temperatura crítica, com ambos os gráficos possuindo curvas que se tornam mais estreitas próximo de <math>T_c</math>, com os gráficos sendo mais estreitos em redes maiores. Também podemos ver que ambos os gráficos começam a decair um pouco após a temperatura crítica. Isso significa que as variâncias da energia e da magnetização aumentam consideravelmente com a transição de fase do sistema, implicando no aumento da suscetibilidade magnética e do calor específico ao redor da temperatura crítica. É possível perceber que esse efeito é maior em redes maiores, onde há uma grande diferença entre os valores das redes de diferentes tamanhos. No gráfico com a faixa de temperatura maior, podemos ver que para temperaturas menores que T = 2.1 e maiores que T = 2.8 tanto a suscetibilidade magnética quanto o calor específico possuem valores aproximadamente iguais para todos os tamanhos de rede.<br />
<br />
=== Um resultado de redes grandes ===<br />
Algo que pode resultar de simulações com redes grandes é o aparecimento de blocos de spins. Em uma rede suficientemente grande, pode ocorrer o aparecimento de aglomerados (clusters) de spins de determinada magnetização e esses aglomerados podem acabar crescendo até que se formem blocos de spins com uma direção que dão um resultado não tão esperado para o sistema. Um exemplo pode ser visto ao simularmos um sistema <math>100\times100</math> com temperatura <math>T=2.0</math>. Nessas condições, o sistema tende a ficar aproximadamente estável com magnetização aproximadamente +1 ou -1. Contudo, eventualmente pode ocorrer de uma simulação acabar com uma magnetização variando próximo de zero, como é possível ver na série temporal:<br />
<br />
[[Arquivo:Serie100.png|thumb|upright=3|none|alt=Alt text|Série temporal da magnetização. É possível notar que regularmente a série converge rapidamente para um estado com magnetização +1 (note que poderia também convergir para -1), mas há a possibilidade de ficar oscilando próximo de <math>M=0</math>.]]<br />
<br />
Ao olharmos um snapshot do estado de ambos os sistemas conseguimos entender o que está acontecendo:<br />
<br />
[[Arquivo:Snapshots.png|thumb|upright=4|none|alt=Alt text|Snapshot de uma simulação ordinária (esquerda) de um sistema 100x100 a uma temperatura de T=2.0 que convergiu para M = +1 e snapshot de um sistema (direita) onde ocorreu o aparecimento de blocos de spins. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1. Ambas snapshots tiradas após <math>10^4</math> Monte Carlo steps.]]<br />
<br />
No snapshot da simulação ordinária conseguimos ver que a maior parte dos spins estão com magnetização +1, o que está de acordo com a série temporal. Já no outro snapshot, temos a formação de um bloco de spins com magnetização -1 ocupando uma faixa vertical completa do sistema. Esse estado da rede faz com que spins que sejam invertidos dentro de um dos blocos influenciem muito pouco a magnetização do sistema e os spins das fronteiras entre os blocos que forem invertidos acabam apenas sendo invertidos novamente, fazendo com que a magnetização total do sistema oscile, mas se mantenha sempre próxima do mesmo valor. Para ilustrarmos esse efeito, temos uma animação para cada uma das evoluções: sem a formação de blocos e com formação de blocos.<br />
<br />
[[Arquivo:Sembloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema convergindo para magnetização +1 correspondente à série temporal "Simulação ordinária" no gráfico das séries temporais. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
[[Arquivo:Formarbloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema com formação de um bloco vertical de spins com magnetização +1. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
<br />
=== Simulação com campo magnético ===<br />
Para fazermos a simulação do modelo de Ising com campo magnético não nulo e termos resultados interessantes de serem observados, precisamos de duas características: primeiro, precisamos que o campo magnético seja pequeno para que possamos fazer observações, pois para campos magnéticos grandes os spins irão se alinhar rapidamente à direção do campo e, portanto, será pouco provável a mudança de estado do sistema. A segunda característica que precisamos é a de que a rede seja pequena, pois quanto maior a rede, menos provável é o sistema mudar de estado em tempos de simulação viáveis, assim como foi visto nos resultados sem campo magnético. <br />
Utilizando uma rede 20x20, fizemos histogramas para diferentes temperaturas para dois diferentes campos magnéticos:<br />
<br />
[[Arquivo:Histogramas com campo.png|thumb|upright=4|none|alt=Alt text|Histogramas da magnetização de uma rede 20x20 sob efeito de um campo magnético. À esquerda temos um campo magnético atuante <math>H = -0.005</math> e à direita temos um campo magnético <math>H = 0.005</math>.]]<br />
<br />
Podemos observar que para a temperatura inferior a <math>T_c</math>, temos a formação de uma gaussiana muito maior do que a outra, com a maior gaussiana sendo a que tem a magnetização alinhada com a direção do campo magnético exercendo influencia na rede. Ao utilizarmos temperaturas maiores que a temperatura crítica, vemos a magnetização aumentar ao redor de M = 0, até que em T = 3.0 temos apenas uma gaussiana centrada em M = 0, o que está de acordo com a transição de fase do sistema.<br />
Caso não tivéssemos respeitado uma das duas características citadas anteriormente para a simulação de Ising com campo magnético, a maior diferença estaria no sistema com temperatura inferior à temperatura crítica, pois teríamos a formação de apenas uma gaussiana e ela estaria alinhada à direção do campo magnético aplicado ao sistema.<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/><br />
<br />
== Bibliografias ==<br />
N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.<br />
<br />
M. E. J. Newman, G. T. Barkema, "Monte Carlo Methods in Statistical Physics". Oxford University Press Inc., New York, 1999.<br />
<br />
Tânia Tomé, Mário J. de Oliveira, "Stochastic Dynamics and Irreversibility". Universidade de São Paulo, São Paulo, Brasil. 2015.</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1898Grupo - Ising 2D2018-01-23T10:20:53Z<p>Lucasdoria: /* Modelo de Ising */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de spins de Ising <math>s={s_1,s_2,..s_i,...s_N}</math> que podem assumir valor <math>+1</math> e <math>-1</math>, respectivamente "up" e "down", onde <math>N</math> é a quantidade máxima de spins, ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. A evolução desse sistema de spins é descrito por uma dinâmica que possui as propriedades do processo de Markov de balanceamento detalhado e ergocidade, garantindo ao sistema que sua evolução o leva a estados estacionários de equilibrio descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising 2D tratado neste trabalho possui seus spins organizados em uma rede quadrada bidimensional de tamanho <math>N=L\times L</math> com vizinhança de Von Newmann e condições de contorno periódicas. A energia desse sistema é descrita pela equação <br />
<br />
<math>E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,</math><br />
<br />
onde <math>J</math> é a taxa de transição, <math>H</math> representa o campo magnético externo e <math>\mu</math> o momento magnético associado com cada spin. O primeiro somatório é sobre todas as vizinhanças de spins e o segundo sobre todos os spins. Neste trabalho, particularmente, escolhemos <math>J=1</math> para favorecer menores energias em spins apontados para cima (<math>s=1</math>), <math>\mu = 1 </math> e <math>0\le H</math><br />
<br />
A magnetização desse sistema é dada pela soma de todos os valores de spins:<br />
<br />
<math>M = \sum_{i=1}^N <s_i> </math>.<br />
<br />
Utilizando a abordagem da mecânica estatística, conforme descrito por Gibbs (1902), podemos estimar valores médios de propriedades macroscópicas de um sistema termodinâmico, como energia ou magnetização, a partir de uma amostragem de Boltzmann relativa ao valor da propriedade sobre todos os estados do sistema. Sendo assim, podemos estimar o valor energia do nosso sistema em estado de equilibro termodinâmico como sendo<br />
<br />
<math><E> = \frac{1}{Z}\sum_{\nu}E_{\nu} e^{-E{\nu}/kT}</math><br />
<br />
onde Z é a função partição <math>Z = \sum_{\nu} e^{-E{\nu}/kT} </math>, <math> E_{\nu}</math> é a energia do sistema no estado <math>\nu</math>, <math>T</math> é a temperatura de um reservatório em contato com o sistema e <math>k</math> é a constante de Boltzmann, escolhida nesse trabalho como tendo valor unitário. O mesmo serve para a magnetização:<br />
<br />
<math><M> = \frac{1}{Z}\sum_{\nu}|M_{\nu}| e^{-E{\nu}/kT}</math>, onde <math><M></math> é medido sobre o módulo da <math>M_{\nu}</math>, que é a magnetização no estado <math>\nu</math>.<br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins <math>(L^2)</math>, <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico por spin do sistema, dada por<br />
<br />
<math>c_{spin} = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação.<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
=== Algorítmo de Metrópolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações do sistema, utilizaremos o Algorítmo de Metropolis. O algoritmo funcionará escolhendo repetidamente um novo estado <math>\nu</math> e aceitando ou rejeitando o estado de acordo com uma probabilidade de aceitação <math>A(\mu \rightarrow \nu)</math> de transitar de um estado antigo <math>\mu</math> para o novo estado <math>\nu</math>. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza o método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
<br />
Temos que a condição de balanceamento detalhado é dada por:<br />
<br />
<math>\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}, \qquad (3)</math><br />
<br />
onde <math>\Delta E = E_\nu - E_\mu</math>.<br />
<br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\nu \rightarrow \mu)</math>, portanto iremos igualar essa probabilidade a 1. <br />
Para que <math>(3)</math> seja respeitada, iremos definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\<br />
1, \qquad \qquad \text{caso contrario}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicas, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spin da matriz poderá assumir apenas os valores de +1 e -1, representando a magnetização desse spin.<br />
<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que fará com que tenhamos uma configuração aproximadamente aleatória, garantido uma magnetização média do sistema de aproximadamente 0.<br />
<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação <math>(1)</math> e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação <math>(1)</math>, temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k^\mu(J\displaystyle \sum_j s_{j} + H)</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math> e, como os vizinhos de <math>s_k</math> não mudam de estado, <math>s_j^\mu = s_j^\nu</math> para qualquer <math>j</math>.<br />
<br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Antes de começar o registro das medidas de magnetização e energia do sistema é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo para eliminar problemas transientes do sistema e o sistema tender a um estado de equilíbrio. Após esse tempo, inicia-se o registro. Os valores do calor específico por spin e da susceptibilidade magnética são feitos após o fim da dinâmica de Monte Carlo.<br />
<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. Também escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado. A partir disso, podemos utilizar o método de amostragem por importância para medir as médias da energia e da magnetização, além das médias da magnetização quadrada e da energia quadrada:<br />
<br />
<math><E> = \frac{1}{MCS}\sum_{\nu}E_{\nu}</math><br />
<br />
<math><E^2> = \frac{1}{MCS}\sum_{\nu}E_{\nu}^2</math><br />
<br />
<math><M> = \frac{1}{MCS}\sum_{\nu}|M_{\nu}|</math><br />
<br />
<math><M^2> = \frac{1}{MCS}\sum_{\nu}M_{\nu}^2</math><br />
<br />
onde <math>MCS</math> é a quantidade de passos de Monte Carlo dadas.<br />
<br />
== Resultados ==<br />
Para analisarmos os resultados obtidos pelo método de Metropolis, realizamos diversas medidas em sistemas com dimensões <math>20\times20</math>, <math>36\times36</math> e <math>48\times48</math>. Utilizamos para todas as medidas um tempo de equilíbrio de <math>10^5</math> Monte Carlo Steps e fizemos <math>10^6</math> medidas.<br />
<br />
Primeiramente, fizemos medidas para sistemas sem campo magnético, ou seja, <math>H=0</math>. Com isso, montamos histogramas da magnetização por spins e da energia por spins do sistema para cada um dos 3 casos em três diferentes temperaturas:<br />
<br />
[[Arquivo:Hist20.png|frameless|upright=5]]<br />
[[Arquivo:Hist36.png|frameless|upright=5]]<br />
[[Arquivo:Hist48.png|frameless|upright=5]]<br />
<br />
Imediatamente é possível notar que, para todas as temperaturas, quanto maior o número de spins, menor é a variância da energia, com as larguras das gaussianas ficando menores. Para a magnetização, para temperaturas menores que a temperatura crítica <math>T_c \approx 2.269</math> e tempos de simulação suficientemente longos, era esperado que tivéssemos duas gaussianas simétricas e de mesma altura, já que os spins estão livres para assumirem valores de +1 e -1. Esse resultado é facilmente observado para <math>T=2.2</math> no sistema 20x20, mas para os sistemas 36x36 e 48x48 as gaussianas possuem alturas diferentes. Esses resultados são indicativos do efeito de redes maiores, onde temos que quanto maior a rede, menor a probabilidade de haver mudança de magnetização do sistema, exigindo tempos de simulação cada vez maiores. Esse efeito pode ser observado ao compararmos as séries temporais da magnetização dos três sistemas:<br />
<br />
[[Arquivo:Séries.png|thumb|upright=5|none|alt=Alt text|Séries temporais da magnetização para os sistemas 20x20 (esquerda), 36x36 (centro) e 48x48 (direita).]]<br />
<br />
Como podemos ver pelas séries temporais, no mesmo período de tempo, o sistema 20x20 troca de estado diversas vezes, enquanto o sistema 36x36 troca apenas uma vez para o estado -1 e o sistema 48x48 não troca nenhuma vez para o estado -1.<br />
Além disso, pelos histogramas, é possível notar que quanto maior a temperatura em relação à temperatura crítica, mais a magnetização do sistema tende a zero, ou seja, as duas gaussianas vão se somando em <math>M=0</math>, resultado da transição de fase do ferromagnetismo para o paramagnetismo.<br />
<br />
[[Arquivo:MeExT.png|thumb|upright=5|none|alt=Alt text|Energia (esquerda) e magnetização (direita) em função da temperatura para diferentes tamanhos de rede. <math>T_c \approx 2.269</math>.]]<br />
<br />
Fazendo um gráfico para a energia em função da temperatura e da magnetização em função da temperatura para cada um dos sistemas, podemos ver que a energia aumenta com o aumento da temperatura, enquanto a magnetização decresce com o aumento da temperatura. Também é possível notar que em ambos os gráficos os resultados para os três tamanhos de sistemas são aproximadamente iguais até a a temperatura aproximar-se da temperatura crítica. Conforme a temperatura se aproxima da transição de fase, os resultados deixam de ser aproximadamente iguais, pois a energia passa a ser maior para redes maiores e voltam a tornarem-se similares após <math>T=2.5</math>. Para a magnetização, ao se aproximar da transição de fase, a magnetização decresce muito mais rapidamente em redes maiores, com os resultados tendendo a zero com o aumento da temperatura.<br />
<br />
<br />
[[Arquivo:SeXxT.png|thumb|upright=5|none|alt=Alt text|Calor específico em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
[[Arquivo:XxT.png|thumb|upright=5|none|alt=Alt text|Suscetibilidade magnética em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
<br />
Analisando os gráficos da suscetibilidade magnética e do calor específico em função da temperatura, podemos perceber que tanto a suscetibilidade magnética quanto o calor específico aumentam quando a temperatura se aproxima da temperatura crítica, com ambos os gráficos possuindo curvas que se tornam mais estreitas próximo de <math>T_c</math>, com os gráficos sendo mais estreitos em redes maiores. Também podemos ver que ambos os gráficos começam a decair um pouco após a temperatura crítica. Isso significa que as variâncias da energia e da magnetização aumentam consideravelmente com a transição de fase do sistema, implicando no aumento da suscetibilidade magnética e do calor específico ao redor da temperatura crítica. É possível perceber que esse efeito é maior em redes maiores, onde há uma grande diferença entre os valores das redes de diferentes tamanhos. No gráfico com a faixa de temperatura maior, podemos ver que para temperaturas menores que T = 2.1 e maiores que T = 2.8 tanto a suscetibilidade magnética quanto o calor específico possuem valores aproximadamente iguais para todos os tamanhos de rede.<br />
<br />
=== Um resultado de redes grandes ===<br />
Algo que pode resultar de simulações com redes grandes é o aparecimento de blocos de spins. Em uma rede suficientemente grande, pode ocorrer o aparecimento de aglomerados (clusters) de spins de determinada magnetização e esses aglomerados podem acabar crescendo até que se formem blocos de spins com uma direção que dão um resultado não tão esperado para o sistema. Um exemplo pode ser visto ao simularmos um sistema <math>100\times100</math> com temperatura <math>T=2.0</math>. Nessas condições, o sistema tende a ficar aproximadamente estável com magnetização aproximadamente +1 ou -1. Contudo, eventualmente pode ocorrer de uma simulação acabar com uma magnetização variando próximo de zero, como é possível ver na série temporal:<br />
<br />
[[Arquivo:Serie100.png|thumb|upright=3|none|alt=Alt text|Série temporal da magnetização. É possível notar que regularmente a série converge rapidamente para um estado com magnetização +1 (note que poderia também convergir para -1), mas há a possibilidade de ficar oscilando próximo de <math>M=0</math>.]]<br />
<br />
Ao olharmos um snapshot do estado de ambos os sistemas conseguimos entender o que está acontecendo:<br />
<br />
[[Arquivo:Snapshots.png|thumb|upright=4|none|alt=Alt text|Snapshot de uma simulação ordinária (esquerda) de um sistema 100x100 a uma temperatura de T=2.0 que convergiu para M = +1 e snapshot de um sistema (direita) onde ocorreu o aparecimento de blocos de spins. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1. Ambas snapshots tiradas após <math>10^4</math> Monte Carlo steps.]]<br />
<br />
No snapshot da simulação ordinária conseguimos ver que a maior parte dos spins estão com magnetização +1, o que está de acordo com a série temporal. Já no outro snapshot, temos a formação de um bloco de spins com magnetização -1 ocupando uma faixa vertical completa do sistema. Esse estado da rede faz com que spins que sejam invertidos dentro de um dos blocos influenciem muito pouco a magnetização do sistema e os spins das fronteiras entre os blocos que forem invertidos acabam apenas sendo invertidos novamente, fazendo com que a magnetização total do sistema oscile, mas se mantenha sempre próxima do mesmo valor. Para ilustrarmos esse efeito, temos uma animação para cada uma das evoluções: sem a formação de blocos e com formação de blocos.<br />
<br />
[[Arquivo:Sembloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema convergindo para magnetização +1 correspondente à série temporal "Simulação ordinária" no gráfico das séries temporais. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
[[Arquivo:Formarbloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema com formação de um bloco vertical de spins com magnetização +1. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
<br />
=== Simulação com campo magnético ===<br />
Para fazermos a simulação do modelo de Ising com campo magnético não nulo e termos resultados interessantes de serem observados, precisamos de duas características: primeiro, precisamos que o campo magnético seja pequeno para que possamos fazer observações, pois para campos magnéticos grandes os spins irão se alinhar rapidamente à direção do campo e, portanto, será pouco provável a mudança de estado do sistema. A segunda característica que precisamos é a de que a rede seja pequena, pois quanto maior a rede, menos provável é o sistema mudar de estado em tempos de simulação viáveis, assim como foi visto nos resultados sem campo magnético. <br />
Utilizando uma rede 20x20, fizemos histogramas para diferentes temperaturas para dois diferentes campos magnéticos:<br />
<br />
[[Arquivo:Histogramas com campo.png|thumb|upright=4|none|alt=Alt text|Histogramas da magnetização de uma rede 20x20 sob efeito de um campo magnético. À esquerda temos um campo magnético atuante <math>H = -0.005</math> e à direita temos um campo magnético <math>H = 0.005</math>.]]<br />
<br />
Podemos observar que para a temperatura inferior a <math>T_c</math>, temos a formação de uma gaussiana muito maior do que a outra, com a maior gaussiana sendo a que tem a magnetização alinhada com a direção do campo magnético exercendo influencia na rede. Ao utilizarmos temperaturas maiores que a temperatura crítica, vemos a magnetização aumentar ao redor de M = 0, até que em T = 3.0 temos apenas uma gaussiana centrada em M = 0, o que está de acordo com a transição de fase do sistema.<br />
Caso não tivéssemos respeitado uma das duas características citadas anteriormente para a simulação de Ising com campo magnético, a maior diferença estaria no sistema com temperatura inferior à temperatura crítica, pois teríamos a formação de apenas uma gaussiana e ela estaria alinhada à direção do campo magnético aplicado ao sistema.<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/><br />
<br />
== Bibliografias ==<br />
N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.<br />
<br />
M. E. J. Newman, G. T. Barkema, "Monte Carlo Methods in Statistical Physics". Oxford University Press Inc., New York, 1999.<br />
<br />
Tânia Tomé, Mário J. de Oliveira, "Stochastic Dynamics and Irreversibility". Universidade de São Paulo, São Paulo, Brasil. 2015.</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1897Grupo - Ising 2D2018-01-23T10:18:55Z<p>Lucasdoria: /* Modelo de Ising */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de spins de Ising <math>s={s_1,s_2,..s_i,...s_N}</math> que podem assumir valor <math>+1</math> e <math>-1</math>, respectivamente "up" e "down", onde <math>N</math> é a quantidade máxima de spins, ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. A evolução desse sistema de spins é descrito por uma dinâmica que possui as propriedades do processo de Markov de balanceamento detalhado e ergocidade, garantindo ao sistema que sua evolução o leva a estados estacionários de equilibrio descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising 2D tratado neste trabalho possui seus spins organizados em uma rede quadrada bidimensional de tamanho <math>N=L\times L</math> com vizinhança de Von Newmann e condições de contorno periódicas. A energia desse sistema é descrita pela equação <br />
<br />
<math>E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,</math><br />
<br />
onde <math>J</math> é a taxa de transição, <math>H</math> representa o campo magnético externo e <math>\mu</math> o momento magnético associado com cada spin. O primeiro somatório é sobre todas as vizinhanças de spins e o segundo sobre todos os spins. Neste trabalho, particularmente, escolhemos <math>J=1</math> para favorecer menores energias em spins apontados para cima (<math>s=1</math>), <math>\mu = 1 </math> e <math>0\le H</math><br />
<br />
A magnetização desse sistema é dada pela soma de todos os valores de spins:<br />
<br />
<math>M = \sum_{i=1}^N <s_i> </math>.<br />
<br />
Utilizando a abordagem da mecânica estatística, conforme descrito por Gibbs (1902), podemos estimar valores médios de propriedades macroscópicas de um sistema termodinâmico, como energia ou magnetização, a partir de uma amostragem de Boltzmann relativa ao valor da propriedade sobre todos os estados do sistema. Sendo assim, podemos estimar o valor energia do nosso sistema em estado de equilibro termodinâmico como sendo<br />
<br />
<math><E> = \frac{1}{Z}\sum_{\nu}E_{\nu} e^{-E{\nu}/kT}</math><br />
<br />
onde Z é a função partição <math>Z = \sum_{\nu} e^{-E{\nu}/kT} </math>, <math> E_{\nu}</math> é a energia do sistema no estado <math>\nu</math>, <math>T</math> é a temperatura de um reservatório em contato com o sistema e <math>k</math> é a constante de Boltzmann, escolhida nesse trabalho como tendo valor unitário. O mesmo serve para a magnetização:<br />
<br />
<math><M> = \frac{1}{Z}\sum_{\nu}|M_{\nu}| e^{-E{\nu}/kT}</math>, onde <math><M></math> é medido sobre o módulo da <math>M_{\nu}</math>, que é a magnetização no estado <math>\nu</math>.<br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins (<math>L^2</math>), <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico por spin do sistema, dada por<br />
<br />
<math>c_{spin} = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação.<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
=== Algorítmo de Metrópolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações do sistema, utilizaremos o Algorítmo de Metropolis. O algoritmo funcionará escolhendo repetidamente um novo estado <math>\nu</math> e aceitando ou rejeitando o estado de acordo com uma probabilidade de aceitação <math>A(\mu \rightarrow \nu)</math> de transitar de um estado antigo <math>\mu</math> para o novo estado <math>\nu</math>. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza o método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
<br />
Temos que a condição de balanceamento detalhado é dada por:<br />
<br />
<math>\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}, \qquad (3)</math><br />
<br />
onde <math>\Delta E = E_\nu - E_\mu</math>.<br />
<br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\nu \rightarrow \mu)</math>, portanto iremos igualar essa probabilidade a 1. <br />
Para que <math>(3)</math> seja respeitada, iremos definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\<br />
1, \qquad \qquad \text{caso contrario}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicas, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spin da matriz poderá assumir apenas os valores de +1 e -1, representando a magnetização desse spin.<br />
<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que fará com que tenhamos uma configuração aproximadamente aleatória, garantido uma magnetização média do sistema de aproximadamente 0.<br />
<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação <math>(1)</math> e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação <math>(1)</math>, temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k^\mu(J\displaystyle \sum_j s_{j} + H)</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math> e, como os vizinhos de <math>s_k</math> não mudam de estado, <math>s_j^\mu = s_j^\nu</math> para qualquer <math>j</math>.<br />
<br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Antes de começar o registro das medidas de magnetização e energia do sistema é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo para eliminar problemas transientes do sistema e o sistema tender a um estado de equilíbrio. Após esse tempo, inicia-se o registro. Os valores do calor específico por spin e da susceptibilidade magnética são feitos após o fim da dinâmica de Monte Carlo.<br />
<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. Também escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado. A partir disso, podemos utilizar o método de amostragem por importância para medir as médias da energia e da magnetização, além das médias da magnetização quadrada e da energia quadrada:<br />
<br />
<math><E> = \frac{1}{MCS}\sum_{\nu}E_{\nu}</math><br />
<br />
<math><E^2> = \frac{1}{MCS}\sum_{\nu}E_{\nu}^2</math><br />
<br />
<math><M> = \frac{1}{MCS}\sum_{\nu}|M_{\nu}|</math><br />
<br />
<math><M^2> = \frac{1}{MCS}\sum_{\nu}M_{\nu}^2</math><br />
<br />
onde <math>MCS</math> é a quantidade de passos de Monte Carlo dadas.<br />
<br />
== Resultados ==<br />
Para analisarmos os resultados obtidos pelo método de Metropolis, realizamos diversas medidas em sistemas com dimensões <math>20\times20</math>, <math>36\times36</math> e <math>48\times48</math>. Utilizamos para todas as medidas um tempo de equilíbrio de <math>10^5</math> Monte Carlo Steps e fizemos <math>10^6</math> medidas.<br />
<br />
Primeiramente, fizemos medidas para sistemas sem campo magnético, ou seja, <math>H=0</math>. Com isso, montamos histogramas da magnetização por spins e da energia por spins do sistema para cada um dos 3 casos em três diferentes temperaturas:<br />
<br />
[[Arquivo:Hist20.png|frameless|upright=5]]<br />
[[Arquivo:Hist36.png|frameless|upright=5]]<br />
[[Arquivo:Hist48.png|frameless|upright=5]]<br />
<br />
Imediatamente é possível notar que, para todas as temperaturas, quanto maior o número de spins, menor é a variância da energia, com as larguras das gaussianas ficando menores. Para a magnetização, para temperaturas menores que a temperatura crítica <math>T_c \approx 2.269</math> e tempos de simulação suficientemente longos, era esperado que tivéssemos duas gaussianas simétricas e de mesma altura, já que os spins estão livres para assumirem valores de +1 e -1. Esse resultado é facilmente observado para <math>T=2.2</math> no sistema 20x20, mas para os sistemas 36x36 e 48x48 as gaussianas possuem alturas diferentes. Esses resultados são indicativos do efeito de redes maiores, onde temos que quanto maior a rede, menor a probabilidade de haver mudança de magnetização do sistema, exigindo tempos de simulação cada vez maiores. Esse efeito pode ser observado ao compararmos as séries temporais da magnetização dos três sistemas:<br />
<br />
[[Arquivo:Séries.png|thumb|upright=5|none|alt=Alt text|Séries temporais da magnetização para os sistemas 20x20 (esquerda), 36x36 (centro) e 48x48 (direita).]]<br />
<br />
Como podemos ver pelas séries temporais, no mesmo período de tempo, o sistema 20x20 troca de estado diversas vezes, enquanto o sistema 36x36 troca apenas uma vez para o estado -1 e o sistema 48x48 não troca nenhuma vez para o estado -1.<br />
Além disso, pelos histogramas, é possível notar que quanto maior a temperatura em relação à temperatura crítica, mais a magnetização do sistema tende a zero, ou seja, as duas gaussianas vão se somando em <math>M=0</math>, resultado da transição de fase do ferromagnetismo para o paramagnetismo.<br />
<br />
[[Arquivo:MeExT.png|thumb|upright=5|none|alt=Alt text|Energia (esquerda) e magnetização (direita) em função da temperatura para diferentes tamanhos de rede. <math>T_c \approx 2.269</math>.]]<br />
<br />
Fazendo um gráfico para a energia em função da temperatura e da magnetização em função da temperatura para cada um dos sistemas, podemos ver que a energia aumenta com o aumento da temperatura, enquanto a magnetização decresce com o aumento da temperatura. Também é possível notar que em ambos os gráficos os resultados para os três tamanhos de sistemas são aproximadamente iguais até a a temperatura aproximar-se da temperatura crítica. Conforme a temperatura se aproxima da transição de fase, os resultados deixam de ser aproximadamente iguais, pois a energia passa a ser maior para redes maiores e voltam a tornarem-se similares após <math>T=2.5</math>. Para a magnetização, ao se aproximar da transição de fase, a magnetização decresce muito mais rapidamente em redes maiores, com os resultados tendendo a zero com o aumento da temperatura.<br />
<br />
<br />
[[Arquivo:SeXxT.png|thumb|upright=5|none|alt=Alt text|Calor específico em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
[[Arquivo:XxT.png|thumb|upright=5|none|alt=Alt text|Suscetibilidade magnética em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
<br />
Analisando os gráficos da suscetibilidade magnética e do calor específico em função da temperatura, podemos perceber que tanto a suscetibilidade magnética quanto o calor específico aumentam quando a temperatura se aproxima da temperatura crítica, com ambos os gráficos possuindo curvas que se tornam mais estreitas próximo de <math>T_c</math>, com os gráficos sendo mais estreitos em redes maiores. Também podemos ver que ambos os gráficos começam a decair um pouco após a temperatura crítica. Isso significa que as variâncias da energia e da magnetização aumentam consideravelmente com a transição de fase do sistema, implicando no aumento da suscetibilidade magnética e do calor específico ao redor da temperatura crítica. É possível perceber que esse efeito é maior em redes maiores, onde há uma grande diferença entre os valores das redes de diferentes tamanhos. No gráfico com a faixa de temperatura maior, podemos ver que para temperaturas menores que T = 2.1 e maiores que T = 2.8 tanto a suscetibilidade magnética quanto o calor específico possuem valores aproximadamente iguais para todos os tamanhos de rede.<br />
<br />
=== Um resultado de redes grandes ===<br />
Algo que pode resultar de simulações com redes grandes é o aparecimento de blocos de spins. Em uma rede suficientemente grande, pode ocorrer o aparecimento de aglomerados (clusters) de spins de determinada magnetização e esses aglomerados podem acabar crescendo até que se formem blocos de spins com uma direção que dão um resultado não tão esperado para o sistema. Um exemplo pode ser visto ao simularmos um sistema <math>100\times100</math> com temperatura <math>T=2.0</math>. Nessas condições, o sistema tende a ficar aproximadamente estável com magnetização aproximadamente +1 ou -1. Contudo, eventualmente pode ocorrer de uma simulação acabar com uma magnetização variando próximo de zero, como é possível ver na série temporal:<br />
<br />
[[Arquivo:Serie100.png|thumb|upright=3|none|alt=Alt text|Série temporal da magnetização. É possível notar que regularmente a série converge rapidamente para um estado com magnetização +1 (note que poderia também convergir para -1), mas há a possibilidade de ficar oscilando próximo de <math>M=0</math>.]]<br />
<br />
Ao olharmos um snapshot do estado de ambos os sistemas conseguimos entender o que está acontecendo:<br />
<br />
[[Arquivo:Snapshots.png|thumb|upright=4|none|alt=Alt text|Snapshot de uma simulação ordinária (esquerda) de um sistema 100x100 a uma temperatura de T=2.0 que convergiu para M = +1 e snapshot de um sistema (direita) onde ocorreu o aparecimento de blocos de spins. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1. Ambas snapshots tiradas após <math>10^4</math> Monte Carlo steps.]]<br />
<br />
No snapshot da simulação ordinária conseguimos ver que a maior parte dos spins estão com magnetização +1, o que está de acordo com a série temporal. Já no outro snapshot, temos a formação de um bloco de spins com magnetização -1 ocupando uma faixa vertical completa do sistema. Esse estado da rede faz com que spins que sejam invertidos dentro de um dos blocos influenciem muito pouco a magnetização do sistema e os spins das fronteiras entre os blocos que forem invertidos acabam apenas sendo invertidos novamente, fazendo com que a magnetização total do sistema oscile, mas se mantenha sempre próxima do mesmo valor. Para ilustrarmos esse efeito, temos uma animação para cada uma das evoluções: sem a formação de blocos e com formação de blocos.<br />
<br />
[[Arquivo:Sembloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema convergindo para magnetização +1 correspondente à série temporal "Simulação ordinária" no gráfico das séries temporais. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
[[Arquivo:Formarbloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema com formação de um bloco vertical de spins com magnetização +1. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
<br />
=== Simulação com campo magnético ===<br />
Para fazermos a simulação do modelo de Ising com campo magnético não nulo e termos resultados interessantes de serem observados, precisamos de duas características: primeiro, precisamos que o campo magnético seja pequeno para que possamos fazer observações, pois para campos magnéticos grandes os spins irão se alinhar rapidamente à direção do campo e, portanto, será pouco provável a mudança de estado do sistema. A segunda característica que precisamos é a de que a rede seja pequena, pois quanto maior a rede, menos provável é o sistema mudar de estado em tempos de simulação viáveis, assim como foi visto nos resultados sem campo magnético. <br />
Utilizando uma rede 20x20, fizemos histogramas para diferentes temperaturas para dois diferentes campos magnéticos:<br />
<br />
[[Arquivo:Histogramas com campo.png|thumb|upright=4|none|alt=Alt text|Histogramas da magnetização de uma rede 20x20 sob efeito de um campo magnético. À esquerda temos um campo magnético atuante <math>H = -0.005</math> e à direita temos um campo magnético <math>H = 0.005</math>.]]<br />
<br />
Podemos observar que para a temperatura inferior a <math>T_c</math>, temos a formação de uma gaussiana muito maior do que a outra, com a maior gaussiana sendo a que tem a magnetização alinhada com a direção do campo magnético exercendo influencia na rede. Ao utilizarmos temperaturas maiores que a temperatura crítica, vemos a magnetização aumentar ao redor de M = 0, até que em T = 3.0 temos apenas uma gaussiana centrada em M = 0, o que está de acordo com a transição de fase do sistema.<br />
Caso não tivéssemos respeitado uma das duas características citadas anteriormente para a simulação de Ising com campo magnético, a maior diferença estaria no sistema com temperatura inferior à temperatura crítica, pois teríamos a formação de apenas uma gaussiana e ela estaria alinhada à direção do campo magnético aplicado ao sistema.<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/><br />
<br />
== Bibliografias ==<br />
N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.<br />
<br />
M. E. J. Newman, G. T. Barkema, "Monte Carlo Methods in Statistical Physics". Oxford University Press Inc., New York, 1999.<br />
<br />
Tânia Tomé, Mário J. de Oliveira, "Stochastic Dynamics and Irreversibility". Universidade de São Paulo, São Paulo, Brasil. 2015.</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1896Grupo - Ising 2D2018-01-23T10:18:32Z<p>Lucasdoria: /* Modelo de Ising */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de spins de Ising <math>s={s_1,s_2,..s_i,...s_N}</math> que podem assumir valor <math>+1</math> e <math>-1</math>, respectivamente "up" e "down", onde <math>N</math> é a quantidade máxima de spins, ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. A evolução desse sistema de spins é descrito por uma dinâmica que possui as propriedades do processo de Markov de balanceamento detalhado e ergocidade, garantindo ao sistema que sua evolução o leva a estados estacionários de equilibrio descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising 2D tratado neste trabalho possui seus spins organizados em uma rede quadrada bidimensional de tamanho <math>N=L\times L</math> com vizinhança de Von Newmann e condições de contorno periódicas. A energia desse sistema é descrita pela equação <br />
<br />
<math>E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,</math><br />
<br />
onde <math>J</math> é a taxa de transição, <math>H</math> representa o campo magnético externo e <math>\mu</math> o momento magnético associado com cada spin. O primeiro somatório é sobre todas as vizinhanças de spins e o segundo sobre todos os spins. Neste trabalho, particularmente, escolhemos <math>J=1</math> para favorecer menores energias em spins apontados para cima (<math>s=1</math>), <math>\mu = 1 </math> e <math>0\le H</math><br />
<br />
A magnetização desse sistema é dada pela soma de todos os valores de spins:<br />
<br />
<math>M = \sum_{i=1}^N s_i </math>.<br />
<br />
Utilizando a abordagem da mecânica estatística, conforme descrito por Gibbs (1902), podemos estimar valores médios de propriedades macroscópicas de um sistema termodinâmico, como energia ou magnetização, a partir de uma amostragem de Boltzmann relativa ao valor da propriedade sobre todos os estados do sistema. Sendo assim, podemos estimar o valor energia do nosso sistema em estado de equilibro termodinâmico como sendo<br />
<br />
<math><E> = \frac{1}{Z}\sum_{\nu}E_{\nu} e^{-E{\nu}/kT}</math><br />
<br />
onde Z é a função partição <math>Z = \sum_{\nu} e^{-E{\nu}/kT} </math>, <math> E_{\nu}</math> é a energia do sistema no estado <math>\nu</math>, <math>T</math> é a temperatura de um reservatório em contato com o sistema e <math>k</math> é a constante de Boltzmann, escolhida nesse trabalho como tendo valor unitário. O mesmo serve para a magnetização:<br />
<br />
<math><M> = \frac{1}{Z}\sum_{\nu}|M_{\nu}| e^{-E{\nu}/kT}</math>, onde <math><M></math> é medido sobre o módulo da <math>M_{\nu}</math>, que é a magnetização no estado <math>\nu</math>.<br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins (<math>L^2</math>), <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico por spin do sistema, dada por<br />
<br />
<math>c_{spin} = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação.<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
=== Algorítmo de Metrópolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações do sistema, utilizaremos o Algorítmo de Metropolis. O algoritmo funcionará escolhendo repetidamente um novo estado <math>\nu</math> e aceitando ou rejeitando o estado de acordo com uma probabilidade de aceitação <math>A(\mu \rightarrow \nu)</math> de transitar de um estado antigo <math>\mu</math> para o novo estado <math>\nu</math>. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza o método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
<br />
Temos que a condição de balanceamento detalhado é dada por:<br />
<br />
<math>\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}, \qquad (3)</math><br />
<br />
onde <math>\Delta E = E_\nu - E_\mu</math>.<br />
<br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\nu \rightarrow \mu)</math>, portanto iremos igualar essa probabilidade a 1. <br />
Para que <math>(3)</math> seja respeitada, iremos definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\<br />
1, \qquad \qquad \text{caso contrario}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicas, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spin da matriz poderá assumir apenas os valores de +1 e -1, representando a magnetização desse spin.<br />
<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que fará com que tenhamos uma configuração aproximadamente aleatória, garantido uma magnetização média do sistema de aproximadamente 0.<br />
<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação <math>(1)</math> e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação <math>(1)</math>, temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k^\mu(J\displaystyle \sum_j s_{j} + H)</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math> e, como os vizinhos de <math>s_k</math> não mudam de estado, <math>s_j^\mu = s_j^\nu</math> para qualquer <math>j</math>.<br />
<br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Antes de começar o registro das medidas de magnetização e energia do sistema é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo para eliminar problemas transientes do sistema e o sistema tender a um estado de equilíbrio. Após esse tempo, inicia-se o registro. Os valores do calor específico por spin e da susceptibilidade magnética são feitos após o fim da dinâmica de Monte Carlo.<br />
<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. Também escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado. A partir disso, podemos utilizar o método de amostragem por importância para medir as médias da energia e da magnetização, além das médias da magnetização quadrada e da energia quadrada:<br />
<br />
<math><E> = \frac{1}{MCS}\sum_{\nu}E_{\nu}</math><br />
<br />
<math><E^2> = \frac{1}{MCS}\sum_{\nu}E_{\nu}^2</math><br />
<br />
<math><M> = \frac{1}{MCS}\sum_{\nu}|M_{\nu}|</math><br />
<br />
<math><M^2> = \frac{1}{MCS}\sum_{\nu}M_{\nu}^2</math><br />
<br />
onde <math>MCS</math> é a quantidade de passos de Monte Carlo dadas.<br />
<br />
== Resultados ==<br />
Para analisarmos os resultados obtidos pelo método de Metropolis, realizamos diversas medidas em sistemas com dimensões <math>20\times20</math>, <math>36\times36</math> e <math>48\times48</math>. Utilizamos para todas as medidas um tempo de equilíbrio de <math>10^5</math> Monte Carlo Steps e fizemos <math>10^6</math> medidas.<br />
<br />
Primeiramente, fizemos medidas para sistemas sem campo magnético, ou seja, <math>H=0</math>. Com isso, montamos histogramas da magnetização por spins e da energia por spins do sistema para cada um dos 3 casos em três diferentes temperaturas:<br />
<br />
[[Arquivo:Hist20.png|frameless|upright=5]]<br />
[[Arquivo:Hist36.png|frameless|upright=5]]<br />
[[Arquivo:Hist48.png|frameless|upright=5]]<br />
<br />
Imediatamente é possível notar que, para todas as temperaturas, quanto maior o número de spins, menor é a variância da energia, com as larguras das gaussianas ficando menores. Para a magnetização, para temperaturas menores que a temperatura crítica <math>T_c \approx 2.269</math> e tempos de simulação suficientemente longos, era esperado que tivéssemos duas gaussianas simétricas e de mesma altura, já que os spins estão livres para assumirem valores de +1 e -1. Esse resultado é facilmente observado para <math>T=2.2</math> no sistema 20x20, mas para os sistemas 36x36 e 48x48 as gaussianas possuem alturas diferentes. Esses resultados são indicativos do efeito de redes maiores, onde temos que quanto maior a rede, menor a probabilidade de haver mudança de magnetização do sistema, exigindo tempos de simulação cada vez maiores. Esse efeito pode ser observado ao compararmos as séries temporais da magnetização dos três sistemas:<br />
<br />
[[Arquivo:Séries.png|thumb|upright=5|none|alt=Alt text|Séries temporais da magnetização para os sistemas 20x20 (esquerda), 36x36 (centro) e 48x48 (direita).]]<br />
<br />
Como podemos ver pelas séries temporais, no mesmo período de tempo, o sistema 20x20 troca de estado diversas vezes, enquanto o sistema 36x36 troca apenas uma vez para o estado -1 e o sistema 48x48 não troca nenhuma vez para o estado -1.<br />
Além disso, pelos histogramas, é possível notar que quanto maior a temperatura em relação à temperatura crítica, mais a magnetização do sistema tende a zero, ou seja, as duas gaussianas vão se somando em <math>M=0</math>, resultado da transição de fase do ferromagnetismo para o paramagnetismo.<br />
<br />
[[Arquivo:MeExT.png|thumb|upright=5|none|alt=Alt text|Energia (esquerda) e magnetização (direita) em função da temperatura para diferentes tamanhos de rede. <math>T_c \approx 2.269</math>.]]<br />
<br />
Fazendo um gráfico para a energia em função da temperatura e da magnetização em função da temperatura para cada um dos sistemas, podemos ver que a energia aumenta com o aumento da temperatura, enquanto a magnetização decresce com o aumento da temperatura. Também é possível notar que em ambos os gráficos os resultados para os três tamanhos de sistemas são aproximadamente iguais até a a temperatura aproximar-se da temperatura crítica. Conforme a temperatura se aproxima da transição de fase, os resultados deixam de ser aproximadamente iguais, pois a energia passa a ser maior para redes maiores e voltam a tornarem-se similares após <math>T=2.5</math>. Para a magnetização, ao se aproximar da transição de fase, a magnetização decresce muito mais rapidamente em redes maiores, com os resultados tendendo a zero com o aumento da temperatura.<br />
<br />
<br />
[[Arquivo:SeXxT.png|thumb|upright=5|none|alt=Alt text|Calor específico em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
[[Arquivo:XxT.png|thumb|upright=5|none|alt=Alt text|Suscetibilidade magnética em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. <math>T_c \approx 2.269</math>.]]<br />
<br />
Analisando os gráficos da suscetibilidade magnética e do calor específico em função da temperatura, podemos perceber que tanto a suscetibilidade magnética quanto o calor específico aumentam quando a temperatura se aproxima da temperatura crítica, com ambos os gráficos possuindo curvas que se tornam mais estreitas próximo de <math>T_c</math>, com os gráficos sendo mais estreitos em redes maiores. Também podemos ver que ambos os gráficos começam a decair um pouco após a temperatura crítica. Isso significa que as variâncias da energia e da magnetização aumentam consideravelmente com a transição de fase do sistema, implicando no aumento da suscetibilidade magnética e do calor específico ao redor da temperatura crítica. É possível perceber que esse efeito é maior em redes maiores, onde há uma grande diferença entre os valores das redes de diferentes tamanhos. No gráfico com a faixa de temperatura maior, podemos ver que para temperaturas menores que T = 2.1 e maiores que T = 2.8 tanto a suscetibilidade magnética quanto o calor específico possuem valores aproximadamente iguais para todos os tamanhos de rede.<br />
<br />
=== Um resultado de redes grandes ===<br />
Algo que pode resultar de simulações com redes grandes é o aparecimento de blocos de spins. Em uma rede suficientemente grande, pode ocorrer o aparecimento de aglomerados (clusters) de spins de determinada magnetização e esses aglomerados podem acabar crescendo até que se formem blocos de spins com uma direção que dão um resultado não tão esperado para o sistema. Um exemplo pode ser visto ao simularmos um sistema <math>100\times100</math> com temperatura <math>T=2.0</math>. Nessas condições, o sistema tende a ficar aproximadamente estável com magnetização aproximadamente +1 ou -1. Contudo, eventualmente pode ocorrer de uma simulação acabar com uma magnetização variando próximo de zero, como é possível ver na série temporal:<br />
<br />
[[Arquivo:Serie100.png|thumb|upright=3|none|alt=Alt text|Série temporal da magnetização. É possível notar que regularmente a série converge rapidamente para um estado com magnetização +1 (note que poderia também convergir para -1), mas há a possibilidade de ficar oscilando próximo de <math>M=0</math>.]]<br />
<br />
Ao olharmos um snapshot do estado de ambos os sistemas conseguimos entender o que está acontecendo:<br />
<br />
[[Arquivo:Snapshots.png|thumb|upright=4|none|alt=Alt text|Snapshot de uma simulação ordinária (esquerda) de um sistema 100x100 a uma temperatura de T=2.0 que convergiu para M = +1 e snapshot de um sistema (direita) onde ocorreu o aparecimento de blocos de spins. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1. Ambas snapshots tiradas após <math>10^4</math> Monte Carlo steps.]]<br />
<br />
No snapshot da simulação ordinária conseguimos ver que a maior parte dos spins estão com magnetização +1, o que está de acordo com a série temporal. Já no outro snapshot, temos a formação de um bloco de spins com magnetização -1 ocupando uma faixa vertical completa do sistema. Esse estado da rede faz com que spins que sejam invertidos dentro de um dos blocos influenciem muito pouco a magnetização do sistema e os spins das fronteiras entre os blocos que forem invertidos acabam apenas sendo invertidos novamente, fazendo com que a magnetização total do sistema oscile, mas se mantenha sempre próxima do mesmo valor. Para ilustrarmos esse efeito, temos uma animação para cada uma das evoluções: sem a formação de blocos e com formação de blocos.<br />
<br />
[[Arquivo:Sembloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema convergindo para magnetização +1 correspondente à série temporal "Simulação ordinária" no gráfico das séries temporais. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
[[Arquivo:Formarbloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema com formação de um bloco vertical de spins com magnetização +1. Animação feita até <math>3\times10^3</math> Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
<br />
=== Simulação com campo magnético ===<br />
Para fazermos a simulação do modelo de Ising com campo magnético não nulo e termos resultados interessantes de serem observados, precisamos de duas características: primeiro, precisamos que o campo magnético seja pequeno para que possamos fazer observações, pois para campos magnéticos grandes os spins irão se alinhar rapidamente à direção do campo e, portanto, será pouco provável a mudança de estado do sistema. A segunda característica que precisamos é a de que a rede seja pequena, pois quanto maior a rede, menos provável é o sistema mudar de estado em tempos de simulação viáveis, assim como foi visto nos resultados sem campo magnético. <br />
Utilizando uma rede 20x20, fizemos histogramas para diferentes temperaturas para dois diferentes campos magnéticos:<br />
<br />
[[Arquivo:Histogramas com campo.png|thumb|upright=4|none|alt=Alt text|Histogramas da magnetização de uma rede 20x20 sob efeito de um campo magnético. À esquerda temos um campo magnético atuante <math>H = -0.005</math> e à direita temos um campo magnético <math>H = 0.005</math>.]]<br />
<br />
Podemos observar que para a temperatura inferior a <math>T_c</math>, temos a formação de uma gaussiana muito maior do que a outra, com a maior gaussiana sendo a que tem a magnetização alinhada com a direção do campo magnético exercendo influencia na rede. Ao utilizarmos temperaturas maiores que a temperatura crítica, vemos a magnetização aumentar ao redor de M = 0, até que em T = 3.0 temos apenas uma gaussiana centrada em M = 0, o que está de acordo com a transição de fase do sistema.<br />
Caso não tivéssemos respeitado uma das duas características citadas anteriormente para a simulação de Ising com campo magnético, a maior diferença estaria no sistema com temperatura inferior à temperatura crítica, pois teríamos a formação de apenas uma gaussiana e ela estaria alinhada à direção do campo magnético aplicado ao sistema.<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/><br />
<br />
== Bibliografias ==<br />
N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.<br />
<br />
M. E. J. Newman, G. T. Barkema, "Monte Carlo Methods in Statistical Physics". Oxford University Press Inc., New York, 1999.<br />
<br />
Tânia Tomé, Mário J. de Oliveira, "Stochastic Dynamics and Irreversibility". Universidade de São Paulo, São Paulo, Brasil. 2015.</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1585Grupo - Ising 2D2018-01-21T18:39:28Z<p>Lucasdoria: /* Transições de fase(?) */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
Sobre Mecânica Estatística:<br />
<br />
Considera-se um sistema governado por um Hamiltoniano em contato com um reservatório térmico com temperatura <math>T</math> constante. O reservatório térmico, considerada uma pequena perturbação no sistema, troca energia com o sistema Hamiltoniano fazendo-o visitar diversos níveis de energia enquanto tende à temperatura do <math>T</math>. <br />
<br />
Uma forma de tratar essa interação é dando ao sistema uma dinâmica que o fará visitar diversos estados diferentes. Ou seja, a partir de uma dinâmica, o sistema pode passar de um estado <math>\mu</math> para outro estado <math>\nu</math> com uma probabilidade <math>P(\mu \rightarrow \nu)</math>, conhecida como taxa de transmissão. Também consideramos o peso <math>w_{\mu}(t)</math>, que é a probabilidade de o estado se encontrar no estado <math>\mu</math> no tempo <math>t</math>.<br />
Assim torna-se possível chegar a uma equação mestra capaz de descrever a taxa pela qual o sistema está alcançando um estado <math>\mu</math>:<br />
<br />
<math>\frac{dw_{\mu}}{dt} = \sum_{\nu}[w_{\mu}(t)P(\nu \rightarrow \mu) - w_{\nu}(t)P(\mu \rightarrow \nu)]</math><br />
<br />
Nosso sistema diz respeito a um corpo macroscópico formada por partes microscópicas, e a dinâmica diz respeito a essas últimas partes. Entretanto, também estamos interessados em características macroscópicas que emergem do micro. Dada uma característica <math>Q</math>, que assume o valor <math>Q_{\mu}</math> no estado <math>\mu</math>, podemos calcular o valor esperado (esperança) de <math>Q</math> em um tempo <math>t</math>:<br />
<br />
<math><Q> = \sum_{\mu}Q_{\mu}w_{\mu}(t)</math><br />
<br />
Equilibrio:<br />
<br />
Consideramos o estado de equilíbrio do sistema, caracterizado por <math>dw_{\mu}/dt = 0</math>, ou seja, probabilidade do sistema alcançar um estado <math>\mu</math> é igual à probabilidade de alcançar um estado <math>\nu</math>.<br />
<br />
Denotamos <math>p_{\mu} = \lim_{t \rightarrow \infty} w_{\mu}(t) </math><br />
como a probabilidade de encontrar <math>\mu</math> no estado de equilíbrio. Sabemos que para um sistema em equilíbrio térmico com o reservatório térmico a uma temperatura <math>T</math> a probabilidade é dada pela distribuição de Boltzmann, como demonstrado por Gibbs (1902):<br />
<br />
<math>p_{\mu} = \frac{1}{Z} e^{-E{\mu}/kT}</math><br />
<br />
onde Z é a função partição<br />
<br />
<math>Z = \sum_{\mu} e^{-E{\mu}/kT} </math><br />
<br />
sendo assim, podemos encontrar a esperança de uma quantidade <math>Q</math> para o sistema em estado de equilíbrio a partir da equação<br />
<br />
<math><Q> = \frac{1}{Z}\sum_{\mu}Q_{\mu} e^{-E{\mu}/kT}</math><br />
<br />
Processos de Markov:<br />
<br />
Um processo de Markov é um mecanismo que possibilita a geração de um novo estado <math>\nu</math> a partir de um estado atual <math>\mu</math>. A probabilidade desse acontecimento é dado pela probabilidade de transição <math>P(\mu \rightarrow \nu)</math>. Nesse processo, as probabilidades de transição devem satisfazer três condições:<br />
<br />
1)<math>\frac{dP}{dt} = 0</math> : As probabilidades de transição não devem variar com o tempo;<br />
<br />
2)<math>P(\mu \rightarrow \nu) = f(\mu,\nu) </math> : As probabilidades de transição são função apenas do estado atual <math>\mu</math> e do estado gerado <math>\nu</math>;<br />
<br />
3)<math>\sum_{\nu}P(\mu \rightarrow \nu) = 1</math>.<br />
<br />
Em uma simulação de Monte Carlo, utilizamos repetidamente o processo de Markov, gerando uma cadeia de Markov de geração de novos estados. O processo de Markov em atuação é escolhido de forma que após diversos passos de Monte Carlo serão produzidos uma sucessão de estados que surgem de acordo com a distribuição de Boltzmann. Conforme isso acontece, dizemos que o sistema se dirige ao equilíbrio.<br />
<br />
Para que o sistema se dirija ao equilíbrio, são impostas mais duas condições sobre os processos de Markov.<br />
<br />
1)Ergocidade: A partir de diversos processos de Markov ao longe de suficientes passos de Monte Carlo, nosso sistema deve ser capaz de visitar todos os estados possíveis. Essa condição permite que dado um estado <math>\gamma</math> e um estado atual <math>\mu</math>, <math>P(\mu \rightarrow \gamma) = 0</math>. Isso significa que um determinado estado pode não ser alcançado do estado atual do sistema, entretanto, após uma série de passos, ele deve ser alcançado a partir de algum estado <math>\nu</math> tal que <math>P(\nu \rightarrow \gamma) > 0</math>.<br />
<br />
2)Balanceamento detalhado:<br />
depois<br />
<br />
== O Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de psins de Ising ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. Esse sistema de spins é descrito por uma dinâmica que possui balanceamento detalhado e que o leva a estados estacionários de equilibrio, descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising é construido a partir de uma rede de <math>N</math> spins de Ising com interações entre primeiros vizinhos. Os spins de Ising apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j - H\sum_{i} s_i, \qquad (1)<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, <math>J</math> é a constante de correlação, que assumimos positiva e <math>H</math> é um campo magnético externo que atua sobre os spins.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima, inicialmente desconsiderando o campo magnético <math>H</math>, já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos, buscando um estado de menor energia.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T} \qquad (2)<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores (ver seção sobre o método Monte Carlo).<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio <math><s_i></math>. A magnetização total a uma temperatura <math>T</math> para um sistema de <math>N</math> spins é dada por<br />
<br />
<math><br />
M = \sum_i <s_i> = N <s_i>,<br />
</math><br />
<br />
<br />
Se adicionarmos um campo magnético ao problema, a função de energia do sistema se torna<br />
<br />
<math><br />
E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,<br />
</math><br />
<br />
onde <math>H</math> representa o campo magnético e <math>\mu</math> o momento magnético associado com cada spin. Este campo faz com que os spins tendam a se orientar paralelamente a <math>H</math>, visto que isso diminui a energia. Para obter a aproximação de campo médio, consideramos que o sistema é constituído de um único spin <math>s_i</math>, de tal forma que a única energia envolvida é a energia de campo. As probabilidades de encontrar o sistema de um único spin nos seus dois possíveis estados são dadas por<br />
<br />
<math><br />
\begin{cases}<br />
P_+ = C e^{+\mu H/k_b T},\\<br />
P_- = C e^{-\mu H/k_b T},<br />
\end{cases}<br />
</math><br />
<br />
onde <math>C</math> é um coeficiente que pode ser determinado tomando a condição de que as duas probabilidades se somem a 1. Portanto,<br />
<br />
<math><br />
C = \frac{1}{e^{+\mu H/k_b T} + e^{-\mu H/k_b T}},<br />
</math><br />
<br />
A média de <math>s_i</math> pode ser calculada por<br />
<br />
<math><br />
<s_i> = \sum_{s_i = \pm 1} s_i P_{\pm} = P_+ - P_- = \tanh(\mu H/k_b T).<br />
</math><br />
<br />
== O Método de Monte Carlo ==<br />
=== Método de Metropolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações de acordo com a probabilidade (2), utilizaremos o algoritmo de dinâmica estocástica chamado método de Metropolis. Nesse método, utilizamos um conjunto de probabilidades <math>g(\mu \rightarrow \nu)</math>,uma para cada conjunto de transições de estados, e então escolhemos um conjunto de probabilidades de aceitação <math>A(\mu \rightarrow \nu)</math>. O algoritmo funcionará escolhendo repetidamente um novo <math>\nu</math> e aceitando ou rejeitando o estado de acordo com nossa probabilidade de aceitação. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza do método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\mu \rightarrow \nu)</math>, portanto iremos igualar essa probabilidade a 1. Utilizando a equação (2), comparamos a razão das probabilidade de transição dos estados:<br />
<br />
<math>\frac{P(\mu \rightarrow \nu)}{P(\nu \rightarrow \mu)} = \frac{g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)}{g(\nu \rightarrow \mu)A(\nu \rightarrow \mu)}=\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}.</math><br />
<br />
Para que isso seja respeitado, iremos então definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\<br />
1, \qquad \qquad \text{caso contrario}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicos, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spin da matriz poderá assumir apenas os valores de 1 e -1, representando a magnetização desse spin.<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: Ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que garantirá que o sistema tenha energia infinita e, portanto, teremos uma configuração aproximadamente aleatória garantido uma magnetização média do sistema como aproximadamente 0.<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação (1) e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação (1), temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k(J\displaystyle \sum_j s_{j} + H),</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math>.<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. <br />
É interessante ressaltar que, durante a simulação, escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado.<br />
<br />
=== Medição ===<br />
Temos algumas medidas relevantes a serem feitas nessa simulação. Uma delas é a medida da magnetização, ou seja, o estado total do sistema. A magnetização total é dada pela soma dos estados de todos os spins, ou seja <br />
<br />
<math>M_\mu = \displaystyle \sum_i s_i^\mu.</math><br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins (<math>L^2</math>), <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico do sistema, dada por<br />
<br />
<math>c = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação. Antes de começar a medição das medidas de magnetização e energia do sistema, assim como os cálculos da suscetibilidade magnética e do calor específico, é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo para eliminar problemas transientes do sistema.<br />
<br />
=== Resultados ===<br />
Para analisarmos os resultados obtidos pelo método de Metropolis, realizamos diversas medidas em sistemas com dimensões <math>20\times20</math>, <math>36\times36</math> e <math>48\times48</math>. Primeiramente, fizemos medidas para sistemas sem campo magnético, ou seja, <math>H=0</math>. Com isso, montamos histogramas da magnetização e da energia do sistema para cada um dos 3 casos em três diferentes temperaturas:<br />
<br />
[[Arquivo:Hist20.png|frameless|upright=5]]<br />
[[Arquivo:Hist36.png|frameless|upright=5]]<br />
[[Arquivo:Hist48.png|frameless|upright=5]]<br />
<br />
Imediatamente é possível notar que para todas as temperaturas, quanto maior o número de spins, menor é a variância da energia, com as larguras das gaussianas ficando menores. Para a magnetização, para temperaturas menores que a temperatura crítica <math>T_c \approx 2.269</math> e tempos de simulação suficientemente longos, era esperado que tivéssemos duas gaussianas simétricas e de mesma altura, já que os spins estão livres para assumirem valores de +1 e -1. Esse resultado é facilmente observado para <math>T=2.2</math> no sistema 20x20, mas para o sistema 36x36 e 48x48 as gaussianas possuem alturas diferentes. Esses resultados são indicativos do efeito de sistemas grandes, que faz com que quanto maior o sistema, "mais difícil" é a magnetização mudar, exigindo tempos de simulação cada vez maiores. Além disso, é possível notar que quando maior a temperatura em relação à temperatura crítica, mais a magnetização vai se tornando nula, ou seja, as duas gaussianas vão se somando em <math>M=0</math>, resultado da transição de fase do ferromagnetismo para o paramagnetismo.<br />
<br />
[[Arquivo:MeExT.png|thumb|upright=5|none|alt=Alt text|Energia (esquerda) e magnetização (direita) em função da temperatura para diferentes tamanhos de rede. <math>T_c \approx 2.269</math>.]]<br />
<br />
Fazendo um gráfico para a energia em função da temperatura e da magnetização em função da temperatura para cada um dos sistemas, podemos ver que a energia aumenta com o aumento da temperatura, enquanto a magnetização decresce com o aumento da temperatura. Também é possível notar que em ambos os gráficos os resultados para os três tamanhos de sistemas são aproximadamente iguais até a temperatura crítica. Conforme a temperatura se aproxima da transição de fase, os resultados divergem com a energia incrementando mais rapidamente para redes maiores até tornarem-se novamente similares após <math>T=2.5</math>. Para a magnetização, ao se aproximar da transição de fase, a magnetização decresce muito mais rapidamente em redes maiores, com os resultados tendendo a zero com o aumento da temperatura.<br />
<br />
<br />
[[Arquivo:SeXxT.png|thumb|upright=5|none|alt=Alt text|Calor específico (esquerda) e suscetibilidade magnética (direita) em função da temperatura para diferentes tamanhos de rede. <math>T_c \approx 2.269</math>.]]<br />
<br />
Analisando os gráficos da suscetibilidade magnética e do calor específico em função da temperatura, podemos perceber que tanto a suscetibilidade magnética quando o calor específico aumentam quando a temperatura se aproxima da temperatura crítica, com ambos os gráficos possuindo curvas bastante estreitas ao redor de <math>T_c</math>, e voltam a decair após a transição de fase. Isso significa que a variância da energia e da magnetização aumentam consideravelmente com a transição de fase do sistema.<br />
<br />
=== Um resultado de redes grandes ===<br />
Algo que pode resultar de simulações com redes grandes é o aparecimento de blocos de spins. Em uma rede suficientemente grande, pode ocorrer o aparecimento de aglomerados (clusters) de spins de determinada magnetização e esses aglomerados podem acabar crescendo até que se formem blocos de spins com uma direção que dão um resultado não tão esperado para o sistema. Um exemplo pode ser visto ao simularmos um sistema <math>100\times100</math> com temperatura <math>T=2.0</math>. Nessas condições, o sistema tende a ficar aproximadamente estável com magnetização aproximadamente +1 ou -1. Contudo, eventualmente pode ocorrer de uma simulação acabar com uma magnetização variando próximo de zero, como é possível ver na série temporal:<br />
<br />
[[Arquivo:Serie100.png|thumb|upright=3|none|alt=Alt text|Série temporal da magnetização. É possível notar que regularmente a série converge rapidamente para um estado com magnetização +1 (note que poderia também convergir para -1), mas há a possibilidade de ficar oscilando próximo de <math>M=0</math>.]]<br />
<br />
Ao olharmos um snapshot do estado de ambos os sistemas conseguimos entender o que está acontecendo:<br />
<br />
[[Arquivo:Snapshots.png|thumb|upright=4|none|alt=Alt text|Snapshot de uma simulação ordinária (esquerda) de um sistema 100x100 a uma temperatura de T=2.0 que convergiu para M = +1 e snapshot de um sistema (direita) onde ocorreu o aparecimento de blocos de spins. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]<br />
<br />
No snapshot da simulação ordinária conseguimos ver que a maior parte dos spins estão com magnetização +1, o que está de acordo com a série temporal. Já na outra simulação, temos a formação de um bloco de spins com magnetização -1 ocupando uma faixa horizontal completa do sistema. Esse estado da rede faz com que spins que sejam invertidos dentro de um dos blocos influenciem muito pouco a magnetização de seu bloco e os spins das fronteiras entre os blocos acabam apenas sendo invertidos novamente, fazendo com que a magnetização total do sistema oscile, mas se mantenha sempre próxima do mesmo valor.<br />
<br />
=== Simulação com campo magnético ===<br />
Para fazermos a simulação do modelo de Ising com campo magnético não nulo e termos resultados interessantes de serem observados, precisamos de duas características: Primeiro, precisamos que o campo magnético seja pequeno para que possamos fazer observações, pois para campos magnéticos grandes os spins irão se alinhar rapidamente à direção do campo e, portanto, não há nada de novo a ser observado, além de ser pouco provável a mudança de estado de um spin. A segunda característica que precisamos é a de que a rede seja pequena, pois quando maior a rede, menos provável é um spin mudar de estado e, consequentemente, haver alterações relevantes na magnetização do sistema.<br />
Utilizando uma rede 20x20, fizemos histogramas para diferentes temperaturas para dois diferentes campos magnéticos:<br />
<br />
[[Arquivo:Histogramas com campo.png|thumb|upright=4|none|alt=Alt text|Histogramas da magnetização de uma rede 20x20 sob efeito de um campo magnético. À esquerda temos um campo magnético atuante <math>H = -0.005</math> e à direita temos um campo magnético <math>H = 0.005</math>.]]<br />
<br />
Podemos observar que para a temperatura inferior a <math>T_c</math>, temos a formação de uma gaussiana muito maior do que a outra, com a maior gaussiana sendo a que tem a magnetização alinhada com a direção do campo magnético exercendo influencia na rede. Ao utilizarmos temperaturas maiores que a temperatura crítica, vemos o histograma crescer ao redor de M = 0, até quem em T = 3.0 temos apenas uma gaussiana centrada em M = 0, o que está de acordo com a transição de fase do sistema.<br />
Caso não tivéssemos respeitado uma das duas características citadas anteriormente para a simulação de Ising com campo magnético, a maior diferença estaria no sistema com temperatura inferior à temperatura crítica, pois teríamos a formação de apenas uma gaussiana e ela estaria alinhada à direção do campo magnético aplicado ao sistema.<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1550Grupo - Ising 2D2018-01-21T05:04:33Z<p>Lucasdoria: /* Implementação */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
Sobre Mecânica Estatística:<br />
<br />
Considera-se um sistema governado por um Hamiltoniano em contato com um reservatório térmico com temperatura <math>T</math> constante. O reservatório térmico, considerada uma pequena perturbação no sistema, troca energia com o sistema Hamiltoniano fazendo-o visitar diversos níveis de energia enquanto tende à temperatura do <math>T</math>. <br />
<br />
Uma forma de tratar essa interação é dando ao sistema uma dinâmica que o fará visitar diversos estados diferentes. Ou seja, a partir de uma dinâmica, o sistema pode passar de um estado <math>\mu</math> para outro estado <math>\nu</math> com uma probabilidade <math>P(\mu \rightarrow \nu)</math>, conhecida como taxa de transmissão. Também consideramos o peso <math>w_{\mu}(t)</math>, que é a probabilidade de o estado se encontrar no estado <math>\mu</math> no tempo <math>t</math>.<br />
Assim torna-se possível chegar a uma equação mestra capaz de descrever a taxa pela qual o sistema está alcançando um estado <math>\mu</math>:<br />
<br />
<math>\frac{dw_{\mu}}{dt} = \sum_{\nu}[w_{\mu}(t)P(\nu \rightarrow \mu) - w_{\nu}(t)P(\mu \rightarrow \nu)]</math><br />
<br />
Nosso sistema diz respeito a um corpo macroscópico formada por partes microscópicas, e a dinâmica diz respeito a essas últimas partes. Entretanto, também estamos interessados em características macroscópicas que emergem do micro. Dada uma característica <math>Q</math>, que assume o valor <math>Q_{\mu}</math> no estado <math>\mu</math>, podemos calcular o valor esperado (esperança) de <math>Q</math> em um tempo <math>t</math>:<br />
<br />
<math><Q> = \sum_{\mu}Q_{\mu}w_{\mu}(t)</math><br />
<br />
Equilibrio:<br />
<br />
Consideramos o estado de equilíbrio do sistema, caracterizado por <math>dw_{\mu}/dt = 0</math>, ou seja, probabilidade do sistema alcançar um estado <math>\mu</math> é igual à probabilidade de alcançar um estado <math>\nu</math>.<br />
<br />
Denotamos <math>p_{\mu} = \lim_{t \rightarrow \infty} w_{\mu}(t) </math><br />
como a probabilidade de encontrar <math>\mu</math> no estado de equilíbrio. Sabemos que para um sistema em equilíbrio térmico com o reservatório térmico a uma temperatura <math>T</math> a probabilidade é dada pela distribuição de Boltzmann, como demonstrado por Gibbs (1902):<br />
<br />
<math>p_{\mu} = \frac{1}{Z} e^{-E{\mu}/kT}</math><br />
<br />
onde Z é a função partição<br />
<br />
<math>Z = \sum_{\mu} e^{-E{\mu}/kT} </math><br />
<br />
sendo assim, podemos encontrar a esperança de uma quantidade <math>Q</math> para o sistema em estado de equilíbrio a partir da equação<br />
<br />
<math><Q> = \frac{1}{Z}\sum_{\mu}Q_{\mu} e^{-E{\mu}/kT}</math><br />
<br />
Processos de Markov:<br />
<br />
Um processo de Markov é um mecanismo que possibilita a geração de um novo estado <math>\nu</math> a partir de um estado atual <math>\mu</math>. A probabilidade desse acontecimento é dado pela probabilidade de transição <math>P(\mu \rightarrow \nu)</math>. Nesse processo, as probabilidades de transição devem satisfazer três condições:<br />
<br />
1)<math>\frac{dP}{dt} = 0</math> : As probabilidades de transição não devem variar com o tempo;<br />
<br />
2)<math>P(\mu \rightarrow \nu) = f(\mu,\nu) </math> : As probabilidades de transição são função apenas do estado atual <math>\mu</math> e do estado gerado <math>\nu</math>;<br />
<br />
3)<math>\sum_{\nu}P(\mu \rightarrow \nu) = 1</math>.<br />
<br />
Em uma simulação de Monte Carlo, utilizamos repetidamente o processo de Markov, gerando uma cadeia de Markov de geração de novos estados. O processo de Markov em atuação é escolhido de forma que após diversos passos de Monte Carlo serão produzidos uma sucessão de estados que surgem de acordo com a distribuição de Boltzmann. Conforme isso acontece, dizemos que o sistema se dirige ao equilíbrio.<br />
<br />
Para que o sistema se dirija ao equilíbrio, são impostas mais duas condições sobre os processos de Markov.<br />
<br />
1)Ergocidade: A partir de diversos processos de Markov ao longe de suficientes passos de Monte Carlo, nosso sistema deve ser capaz de visitar todos os estados possíveis. Essa condição permite que dado um estado <math>\gamma</math> e um estado atual <math>\mu</math>, <math>P(\mu \rightarrow \gamma) = 0</math>. Isso significa que um determinado estado pode não ser alcançado do estado atual do sistema, entretanto, após uma série de passos, ele deve ser alcançado a partir de algum estado <math>\nu</math> tal que <math>P(\nu \rightarrow \gamma) > 0</math>.<br />
<br />
2)Balanceamento detalhado:<br />
depois<br />
<br />
== O Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de psins de Ising ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. Esse sistema de spins é descrito por uma dinâmica que possui balanceamento detalhado e que o leva a estados estacionários de equilibrio, descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising é construido a partir de uma rede de <math>N</math> spins de Ising com interações entre primeiros vizinhos. Os spins de Ising apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j - H\sum_{i} s_i, \qquad (1)<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, <math>J</math> é a constante de correlação, que assumimos positiva e <math>H</math> é um campo magnético externo que atua sobre os spins.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima, inicialmente desconsiderando o campo magnético <math>H</math>, já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos, buscando um estado de menor energia.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T} \qquad (2)<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores (ver seção sobre o método Monte Carlo).<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio <math><s_i></math>. A magnetização total a uma temperatura <math>T</math> para um sistema de <math>N</math> spins é dada por<br />
<br />
<math><br />
M = \sum_i <s_i> = N <s_i>,<br />
</math><br />
<br />
<br />
Se adicionarmos um campo magnético ao problema, a função de energia do sistema se torna<br />
<br />
<math><br />
E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,<br />
</math><br />
<br />
onde <math>H</math> representa o campo magnético e <math>\mu</math> o momento magnético associado com cada spin. Este campo faz com que os spins tendam a se orientar paralelamente a <math>H</math>, visto que isso diminui a energia. Para obter a aproximação de campo médio, consideramos que o sistema é constituído de um único spin <math>s_i</math>, de tal forma que a única energia envolvida é a energia de campo. As probabilidades de encontrar o sistema de um único spin nos seus dois possíveis estados são dadas por<br />
<br />
<math><br />
\begin{cases}<br />
P_+ = C e^{+\mu H/k_b T},\\<br />
P_- = C e^{-\mu H/k_b T},<br />
\end{cases}<br />
</math><br />
<br />
onde <math>C</math> é um coeficiente que pode ser determinado tomando a condição de que as duas probabilidades se somem a 1. Portanto,<br />
<br />
<math><br />
C = \frac{1}{e^{+\mu H/k_b T} + e^{-\mu H/k_b T}},<br />
</math><br />
<br />
A média de <math>s_i</math> pode ser calculada por<br />
<br />
<math><br />
<s_i> = \sum_{s_i = \pm 1} s_i P_{\pm} = P_+ - P_- = \tanh(\mu H/k_b T).<br />
</math><br />
<br />
== O Método de Monte Carlo ==<br />
=== Método de Metropolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações de acordo com a probabilidade (2), utilizaremos o algoritmo de dinâmica estocástica chamado método de Metropolis. Nesse método, utilizamos um conjunto de probabilidades <math>g(\mu \rightarrow \nu)</math>,uma para cada conjunto de transições de estados, e então escolhemos um conjunto de probabilidades de aceitação <math>A(\mu \rightarrow \nu)</math>. O algoritmo funcionará escolhendo repetidamente um novo <math>\nu</math> e aceitando ou rejeitando o estado de acordo com nossa probabilidade de aceitação. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza do método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\mu \rightarrow \nu)</math>, portanto iremos igualar essa probabilidade a 1. Utilizando a equação (2), comparamos a razão das probabilidade de transição dos estados:<br />
<br />
<math>\frac{P(\mu \rightarrow \nu)}{P(\nu \rightarrow \mu)} = \frac{g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)}{g(\nu \rightarrow \mu)A(\nu \rightarrow \mu)}=\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}.</math><br />
<br />
Para que isso seja respeitado, iremos então definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\<br />
1, \qquad \qquad \text{caso contrario}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicos, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spin da matriz poderá assumir apenas os valores de 1 e -1, representando a magnetização desse spin.<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: Ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que garantirá que o sistema tenha energia infinita e, portanto, teremos uma configuração aproximadamente aleatória garantido uma magnetização média do sistema como aproximadamente 0.<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação (1) e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação (1), temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k(J\displaystyle \sum_j s_{j} + H),</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math>.<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. <br />
É interessante ressaltar que, durante a simulação, escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado.<br />
<br />
=== Medição ===<br />
Temos algumas medidas relevantes a serem feitas nessa simulação. Uma delas é a medida da magnetização, ou seja, o estado total do sistema. A magnetização total é dada pela soma dos estados de todos os spins, ou seja <br />
<br />
<math>M_\mu = \displaystyle \sum_i s_i^\mu.</math><br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins (<math>L^2</math>), <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico do sistema, dada por<br />
<br />
<math>c = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação. Antes de começar a medição das medidas de magnetização e energia do sistema, assim como os cálculos da suscetibilidade magnética e do calor específico, é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo para eliminar problemas transientes do sistema.<br />
<br />
=== Resultados ===<br />
Para analisarmos os resultados obtidos pelo método de Metropolis, realizamos diversas medidas em sistemas com dimensões <math>20\times20</math>, <math>36\times36</math> e <math>48\times48</math>. Primeiramente, fizemos medidas para sistemas sem campo magnético, ou seja, <math>H=0</math>. Com isso, montamos histogramas da magnetização e da energia do sistema para cada um dos 3 casos em três diferentes temperaturas:<br />
<br />
(histogramas aqui)<br />
<br />
Imediatamente é possível notar que para todas as temperaturas, quanto maior o número de spins, menor é a variância da energia, com as larguras das gaussianas ficando menores. Para a magnetização, para temperaturas menores que a temperatura crítica <math>T_c \approx 2.269</math> e tempos de simulação suficientemente longos, era esperado que tivéssemos duas gaussianas simétricas e de mesma altura, já que os spins estão livres para assumirem valores de +1 e -1. Esse resultado é facilmente observado para <math>T=2.2</math> no sistema 20x20, mas para o sistema 36x36 e 48x48 as gaussianas possuem alturas diferentes. Esses resultados são indicativos do efeito de sistemas grandes, que faz com que quanto maior o sistema, "mais difícil" é a magnetização mudar, exigindo tempos de simulação cada vez maiores. Além disso, é possível notar que quando maior a temperatura em relação à temperatura crítica, mais a magnetização vai se tornando nula, ou seja, as duas gaussianas vão se somando em <math>M=0</math>, resultado da transição de fase do ferromagnetismo para o paramagnetismo.<br />
<br />
(MxT e ExT aqui)<br />
<br />
Fazendo um gráfico para a energia em função da temperatura e da magnetização em função da temperatura para cada um dos sistemas, podemos ver que a energia aumenta com o aumento da temperatura, enquanto a magnetização decresce com o aumento da temperatura. Também é possível notar que em ambos os gráficos os resultados para os três tamanhos de sistemas são aproximadamente iguais até a temperatura crítica. Conforme a temperatura se aproxima da transição de fase, os resultados divergem com a energia incrementando mais rapidamente para redes maiores até tornarem-se novamente similares após <math>T=2.5</math>. Para a magnetização, ao se aproximar da transição de fase, a magnetização decresce muito mais rapidamente em redes maiores, com os resultados tendendo a zero com o aumento da temperatura.<br />
<br />
Analisando os gráficos da suscetibilidade magnética e do calor específico em função da temperatura, podemos perceber que tanto a suscetibilidade magnética quando o calor específico aumentam quando a temperatura se aproxima da temperatura crítica, com ambos os gráficos possuindo curvas bastante estreitas ao redor de <math>T_c</math>, e voltam a decair após a transição de fase. Isso significa que a variância da energia e da magnetização aumentam consideravelmente com a transição de fase do sistema.<br />
<br />
=== Um resultado de redes grandes ===<br />
Algo que pode resultar em simulações com redes grandes é o aparecimento de blocos de spins. Em uma rede suficientemente grande, pode ocorrer o aparecimento de aglomerados (clusters) de spins de determinada magnetização e esses aglomerados podem acabar crescendo até que se formem blocos de de spins com uma direção que dão um resultado não tão esperado para o sistema. Um exemplo pode ser visto ao simularmos um sistema <math>100\times100</math> com temperatura <math>T=2.0</math>. Nessas condições, o sistema tende a ficar aproximadamente estável com magnetização aproximadamente +1 ou -1. Contudo, eventualmente pode ocorrer de uma simulação acabar com uma magnetização variando em torno de zero, como é possível ver na série temporal:<br />
<br />
(Série temporal aqui)<br />
<br />
Ao olharmos um snapshot do estado de ambos os sistemas conseguimos entender o que está acontecendo:<br />
<br />
(Snapshots aqui)<br />
<br />
No snapshot da simulação ordinária conseguimos ver que a maior parte dos spins estão com magnetização +1, o que está de acordo com a série temporal. Já na outra simulação, temos a formação de um bloco de spins com magnetização -1 ocupando uma faixa horizontal completa do sistema. Esse estado da rede faz com que spins que sejam invertidos dentro de um dos blocos influenciem muito pouco a magnetização de seu bloco e os spins das fronteiras entre os blocos acabam apenas sendo invertidos novamente, fazendo com que a magnetização total do sistema oscile, mas se mantenha sempre próxima do mesmo valor.<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1541Grupo - Ising 2D2018-01-21T03:03:00Z<p>Lucasdoria: /* Introdução */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
Sobre Mecânica Estatística:<br />
<br />
Considera-se um sistema governado por um Hamiltoniano em contato com um reservatório térmico com temperatura <math>T</math> constante. O reservatório térmico, considerada uma pequena perturbação no sistema, troca energia com o sistema Hamiltoniano fazendo-o visitar diversos níveis de energia enquanto tende à temperatura do <math>T</math>. <br />
<br />
Uma forma de tratar essa interação é dando ao sistema uma dinâmica que o fará visitar diversos estados diferentes. Ou seja, a partir de uma dinâmica, o sistema pode passar de um estado <math>\mu</math> para outro estado <math>\nu</math> com uma probabilidade <math>P(\mu \rightarrow \nu)</math>, conhecida como taxa de transmissão. Também consideramos o peso <math>w_{\mu}(t)</math>, que é a probabilidade de o estado se encontrar no estado <math>\mu</math> no tempo <math>t</math>.<br />
Assim torna-se possível chegar a uma equação mestra capaz de descrever a taxa pela qual o sistema está alcançando um estado <math>\mu</math>:<br />
<br />
<math>\frac{dw_{\mu}}{dt} = \sum_{\nu}[w_{\mu}(t)P(\nu \rightarrow \mu) - w_{\nu}(t)P(\mu \rightarrow \nu)]</math><br />
<br />
Nosso sistema diz respeito a um corpo macroscópico formada por partes microscópicas, e a dinâmica diz respeito a essas últimas partes. Entretanto, também estamos interessados em características macroscópicas que emergem do micro. Dada uma característica <math>Q</math>, que assume o valor <math>Q_{\mu}</math> no estado <math>\mu</math>, podemos calcular o valor esperado (esperança) de <math>Q</math> em um tempo <math>t</math>:<br />
<br />
<math><Q> = \sum_{\mu}Q_{\mu}w_{\mu}(t)</math><br />
<br />
Equilibrio:<br />
<br />
Consideramos o estado de equilíbrio do sistema, caracterizado por <math>dw_{\mu}/dt = 0</math>, ou seja, probabilidade do sistema alcançar um estado <math>\mu</math> é igual à probabilidade de alcançar um estado <math>\nu</math>.<br />
<br />
Denotamos <math>p_{\mu} = \lim_{t \rightarrow \infty} w_{\mu}(t) </math><br />
como a probabilidade de encontrar <math>\mu</math> no estado de equilíbrio. Sabemos que para um sistema em equilíbrio térmico com o reservatório térmico a uma temperatura <math>T</math> a probabilidade é dada pela distribuição de Boltzmann, como demonstrado por Gibbs (1902):<br />
<br />
<math>p_{\mu} = \frac{1}{Z} e^{-E{\mu}/kT}</math><br />
<br />
onde Z é a função partição<br />
<br />
<math>Z = \sum_{\mu} e^{-E{\mu}/kT} </math><br />
<br />
sendo assim, podemos encontrar a esperança de uma quantidade <math>Q</math> para o sistema em estado de equilíbrio a partir da equação<br />
<br />
<math><Q> = \frac{1}{Z}\sum_{\mu}Q_{\mu} e^{-E{\mu}/kT}</math><br />
<br />
Processos de Markov<br />
<br />
== O Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de psins de Ising ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. Esse sistema de spins é descrito por uma dinâmica que possui balanceamento detalhado e que o leva a estados estacionários de equilibrio, descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising é construido a partir de uma rede de <math>N</math> spins de Ising com interações entre primeiros vizinhos. Os spins de Ising apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j - H\sum_{i} s_i, \qquad (1)<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, <math>J</math> é a constante de correlação, que assumimos positiva e <math>H</math> é um campo magnético externo que atua sobre os spins.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima, inicialmente desconsiderando o campo magnético <math>H</math>, já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos, buscando um estado de menor energia.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T} \qquad (2)<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores (ver seção sobre o método Monte Carlo).<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio <math><s_i></math>. A magnetização total a uma temperatura <math>T</math> para um sistema de <math>N</math> spins é dada por<br />
<br />
<math><br />
M = \sum_i <s_i> = N <s_i>,<br />
</math><br />
<br />
<br />
Se adicionarmos um campo magnético ao problema, a função de energia do sistema se torna<br />
<br />
<math><br />
E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,<br />
</math><br />
<br />
onde <math>H</math> representa o campo magnético e <math>\mu</math> o momento magnético associado com cada spin. Este campo faz com que os spins tendam a se orientar paralelamente a <math>H</math>, visto que isso diminui a energia. Para obter a aproximação de campo médio, consideramos que o sistema é constituído de um único spin <math>s_i</math>, de tal forma que a única energia envolvida é a energia de campo. As probabilidades de encontrar o sistema de um único spin nos seus dois possíveis estados são dadas por<br />
<br />
<math><br />
\begin{cases}<br />
P_+ = C e^{+\mu H/k_b T},\\<br />
P_- = C e^{-\mu H/k_b T},<br />
\end{cases}<br />
</math><br />
<br />
onde <math>C</math> é um coeficiente que pode ser determinado tomando a condição de que as duas probabilidades se somem a 1. Portanto,<br />
<br />
<math><br />
C = \frac{1}{e^{+\mu H/k_b T} + e^{-\mu H/k_b T}},<br />
</math><br />
<br />
A média de <math>s_i</math> pode ser calculada por<br />
<br />
<math><br />
<s_i> = \sum_{s_i = \pm 1} s_i P_{\pm} = P_+ - P_- = \tanh(\mu H/k_b T).<br />
</math><br />
<br />
== O Método de Monte Carlo ==<br />
=== Método de Metropolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações de acordo com a probabilidade (2), utilizaremos o algoritmo de dinâmica estocástica chamado método de Metropolis. Nesse método, utilizamos um conjunto de probabilidades <math>g(\mu \rightarrow \nu)</math>,uma para cada conjunto de transições de estados, e então escolhemos um conjunto de probabilidades de aceitação <math>A(\mu \rightarrow \nu)</math>. O algoritmo funcionará escolhendo repetidamente um novo <math>\nu</math> e aceitando ou rejeitando o estado de acordo com nossa probabilidade de aceitação. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza do método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\mu \rightarrow \nu)</math>, portanto iremos igualar essa probabilidade a 1. Utilizando a equação (2), comparamos a razão das probabilidade de transição dos estados:<br />
<br />
<math>\frac{P(\mu \rightarrow \nu)}{P(\nu \rightarrow \mu)} = \frac{g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)}{g(\nu \rightarrow \mu)A(\nu \rightarrow \mu)}=\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}.</math><br />
<br />
Para que isso seja respeitado, iremos então definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\<br />
1, \qquad \qquad \text{caso contrario}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicos, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spins da matriz poderá assumir apenas os valores de 1 e -1, representando a magnetização desse spin.<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: Ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que garantirá que o sistema tenha energia infinita e, portanto, teremos uma configuração aproximadamente aleatória garantido uma magnetização média do sistema como aproximadamente 0.<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação (1) e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação (1), temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k(J\displaystyle \sum_j s_{j} + H),</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math>.<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. <br />
É interessante ressaltar que, durante a simulação, escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado.<br />
<br />
=== Medição ===<br />
Temos algumas medidas relevantes a serem feitas nessa simulação. Uma delas é a medida da magnetização, ou seja, o estado total do sistema. A magnetização total é dada pela soma dos estados de todos os spins, ou seja <br />
<br />
<math>M_\mu = \displaystyle \sum_i s_i^\mu.</math><br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins (<math>L^2</math>), <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico do sistema, dada por<br />
<br />
<math>c = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação. Antes de começar a somar as medidas de magnetização e energia do sistema para os cálculos da suscetibilidade magnética e do calor específico, é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo.<br />
<br />
<br />
=== Resultados ===<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1540Grupo - Ising 2D2018-01-21T03:01:52Z<p>Lucasdoria: /* Introdução */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
Sobre Mecânica Estatística:<br />
<br />
Considera-se um sistema governado por um Hamiltoniano em contato com um reservatório térmico com temperatura <math>T</math> constante. O reservatório térmico, considerada uma pequena perturbação no sistema, troca energia com o sistema Hamiltoniano fazendo-o visitar diversos níveis de energia enquanto tende à temperatura do <math>T</math>. <br />
<br />
Uma forma de tratar essa interação é dando ao sistema uma dinâmica que o fará visitar diversos estados diferentes. Ou seja, a partir de uma dinâmica, o sistema pode passar de um estado <math>\mu</math> para outro estado <math>\nu</math> com uma probabilidade <math>P(\mu -> \nu)</math>, conhecida como taxa de transmissão. Também consideramos o peso <math>w_{\mu}(t)</math>, que é a probabilidade de o estado se encontrar no estado <math>\mu</math> no tempo <math>t</math>.<br />
Assim torna-se possível chegar a uma equação mestra capaz de descrever a taxa pela qual o sistema está alcançando um estado <math>\mu</math>:<br />
<br />
<math>\frac{dw_{\mu}}{dt} = \sum_{\nu}[w_{\mu}(t)P(\nu \rightarrow \mu) - w_{\nu}(t)P(\mu \rightarrow \nu)]</math><br />
<br />
Nosso sistema diz respeito a um corpo macroscópico formada por partes microscópicas, e a dinâmica diz respeito a essas últimas partes. Entretanto, também estamos interessados em características macroscópicas que emergem do micro. Dada uma característica <math>Q</math>, que assume o valor <math>Q_{\mu}</math> no estado <math>\mu</math>, podemos calcular o valor esperado (esperança) de <math>Q</math> em um tempo <math>t</math>:<br />
<br />
<math><Q> = \sum_{\mu}Q_{\mu}w_{\mu}(t)</math><br />
<br />
Equilibrio:<br />
<br />
Consideramos o estado de equilíbrio do sistema, caracterizado por <math>dw_{\mu}/dt = 0</math>, ou seja, probabilidade do sistema alcançar um estado <math>\mu</math> é igual à probabilidade de alcançar um estado <math>\nu</math>.<br />
<br />
Denotamos <math>p_{\mu} = \lim_{t \rightarrow \inf} w_{\mu}(t) </math><br />
como a probabilidade de encontrar <math>\mu</math> no estado de equilíbrio. Sabemos que para um sistema em equilíbrio térmico com o reservatório térmico a uma temperatura <math>T</math> a probabilidade é dada pela distribuição de Boltzmann, como demonstrado por Gibbs (1902):<br />
<br />
<math>p_{\mu} = \frac{1}{Z} e^{-E{\mu}/kT}</math><br />
<br />
onde Z é a função partição<br />
<br />
<math>Z = \sum_{\mu} e^{-E{\mu}/kT} </math><br />
<br />
sendo assim, podemos encontrar a esperança de uma quantidade <math>Q</math> para o sistema em estado de equilíbrio a partir da equação<br />
<br />
<math><Q> = \frac{1}{Z}\sum_{\mu}Q_{\mu} e^{-E{\mu}/kT}</math><br />
<br />
Processos de Markov<br />
<br />
== O Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de psins de Ising ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. Esse sistema de spins é descrito por uma dinâmica que possui balanceamento detalhado e que o leva a estados estacionários de equilibrio, descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising é construido a partir de uma rede de <math>N</math> spins de Ising com interações entre primeiros vizinhos. Os spins de Ising apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j - H\sum_{i} s_i, \qquad (1)<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, <math>J</math> é a constante de correlação, que assumimos positiva e <math>H</math> é um campo magnético externo que atua sobre os spins.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima, inicialmente desconsiderando o campo magnético <math>H</math>, já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos, buscando um estado de menor energia.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T} \qquad (2)<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores (ver seção sobre o método Monte Carlo).<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio <math><s_i></math>. A magnetização total a uma temperatura <math>T</math> para um sistema de <math>N</math> spins é dada por<br />
<br />
<math><br />
M = \sum_i <s_i> = N <s_i>,<br />
</math><br />
<br />
<br />
Se adicionarmos um campo magnético ao problema, a função de energia do sistema se torna<br />
<br />
<math><br />
E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,<br />
</math><br />
<br />
onde <math>H</math> representa o campo magnético e <math>\mu</math> o momento magnético associado com cada spin. Este campo faz com que os spins tendam a se orientar paralelamente a <math>H</math>, visto que isso diminui a energia. Para obter a aproximação de campo médio, consideramos que o sistema é constituído de um único spin <math>s_i</math>, de tal forma que a única energia envolvida é a energia de campo. As probabilidades de encontrar o sistema de um único spin nos seus dois possíveis estados são dadas por<br />
<br />
<math><br />
\begin{cases}<br />
P_+ = C e^{+\mu H/k_b T},\\<br />
P_- = C e^{-\mu H/k_b T},<br />
\end{cases}<br />
</math><br />
<br />
onde <math>C</math> é um coeficiente que pode ser determinado tomando a condição de que as duas probabilidades se somem a 1. Portanto,<br />
<br />
<math><br />
C = \frac{1}{e^{+\mu H/k_b T} + e^{-\mu H/k_b T}},<br />
</math><br />
<br />
A média de <math>s_i</math> pode ser calculada por<br />
<br />
<math><br />
<s_i> = \sum_{s_i = \pm 1} s_i P_{\pm} = P_+ - P_- = \tanh(\mu H/k_b T).<br />
</math><br />
<br />
== O Método de Monte Carlo ==<br />
=== Método de Metropolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações de acordo com a probabilidade (2), utilizaremos o algoritmo de dinâmica estocástica chamado método de Metropolis. Nesse método, utilizamos um conjunto de probabilidades <math>g(\mu \rightarrow \nu)</math>,uma para cada conjunto de transições de estados, e então escolhemos um conjunto de probabilidades de aceitação <math>A(\mu \rightarrow \nu)</math>. O algoritmo funcionará escolhendo repetidamente um novo <math>\nu</math> e aceitando ou rejeitando o estado de acordo com nossa probabilidade de aceitação. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza do método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\mu \rightarrow \nu)</math>, portanto iremos igualar essa probabilidade a 1. Utilizando a equação (2), comparamos a razão das probabilidade de transição dos estados:<br />
<br />
<math>\frac{P(\mu \rightarrow \nu)}{P(\nu \rightarrow \mu)} = \frac{g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)}{g(\nu \rightarrow \mu)A(\nu \rightarrow \mu)}=\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}.</math><br />
<br />
Para que isso seja respeitado, iremos então definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\<br />
1, \qquad \qquad \text{caso contrario}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicos, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spins da matriz poderá assumir apenas os valores de 1 e -1, representando a magnetização desse spin.<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: Ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que garantirá que o sistema tenha energia infinita e, portanto, teremos uma configuração aproximadamente aleatória garantido uma magnetização média do sistema como aproximadamente 0.<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação (1) e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação (1), temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k(J\displaystyle \sum_j s_{j} + H),</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math>.<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. <br />
É interessante ressaltar que, durante a simulação, escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado.<br />
<br />
=== Medição ===<br />
Temos algumas medidas relevantes a serem feitas nessa simulação. Uma delas é a medida da magnetização, ou seja, o estado total do sistema. A magnetização total é dada pela soma dos estados de todos os spins, ou seja <br />
<br />
<math>M_\mu = \displaystyle \sum_i s_i^\mu.</math><br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins (<math>L^2</math>), <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico do sistema, dada por<br />
<br />
<math>c = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação. Antes de começar a somar as medidas de magnetização e energia do sistema para os cálculos da suscetibilidade magnética e do calor específico, é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo.<br />
<br />
<br />
=== Resultados ===<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1539Grupo - Ising 2D2018-01-21T02:59:08Z<p>Lucasdoria: /* Método de Metropolis */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
Sobre Mecânica Estatística:<br />
<br />
Considera-se um sistema governado por um Hamiltoniano em contato com um reservatório térmico com temperatura <math>T</math> constante. O reservatório térmico, considerada uma pequena perturbação no sistema, troca energia com o sistema Hamiltoniano fazendo-o visitar diversos níveis de energia enquanto tende à temperatura do <math>T</math>. <br />
<br />
Uma forma de tratar essa interação é dando ao sistema uma dinâmica que o fará visitar diversos estados diferentes. Ou seja, a partir de uma dinâmica, o sistema pode passar de um estado <math>\mu</math> para outro estado <math>\nu</math> com uma probabilidade <math>P(\mu -> \nu)</math>, conhecida como taxa de transmissão. Também consideramos o peso <math>w_{\mu}(t)</math>, que é a probabilidade de o estado se encontrar no estado <math>\mu</math> no tempo <math>t</math>.<br />
Assim torna-se possível chegar a uma equação mestra capaz de descrever a taxa pela qual o sistema está alcançando um estado <math>\mu</math>:<br />
<br />
<math>\frac{dw_{\mu}}{dt} = \sum_{\nu}[w_{\mu}(t)P(\nu -> \mu) - w_{\nu}(t)P(\mu -> \nu)]</math><br />
<br />
Nosso sistema diz respeito a um corpo macroscópico formada por partes microscópicas, e a dinâmica diz respeito a essas últimas partes. Entretanto, também estamos interessados em características macroscópicas que emergem do micro. Dada uma característica <math>Q</math>, que assume o valor <math>Q_{\mu}</math> no estado <math>\mu</math>, podemos calcular o valor esperado (esperança) de <math>Q</math> em um tempo <math>t</math>:<br />
<br />
<math><Q> = \sum_{\mu}Q_{\mu}w_{\mu}(t)</math><br />
<br />
Equilibrio:<br />
<br />
Consideramos o estado de equilíbrio do sistema, caracterizado por <math>dw_{\mu}/dt = 0</math>, ou seja, probabilidade do sistema alcançar um estado <math>\mu</math> é igual à probabilidade de alcançar um estado <math>\nu</math>.<br />
<br />
Denotamos <math>p_{\mu} = \lim_{t -> \inf} w_{\mu}(t) </math><br />
como a probabilidade de encontrar <math>\mu</math> no estado de equilíbrio. Sabemos que para um sistema em equilíbrio térmico com o reservatório térmico a uma temperatura <math>T</math> a probabilidade é dada pela distribuição de Boltzmann, como demonstrado por Gibbs (1902):<br />
<br />
<math>p_{\mu} = \frac{1}{Z} e^{-E{\mu}/kT}</math><br />
<br />
onde Z é a função partição<br />
<br />
<math>Z = \sum_{\mu} e^{-E{\mu}/kT} </math><br />
<br />
sendo assim, podemos encontrar a esperança de uma quantidade <math>Q</math> para o sistema em estado de equilíbrio a partir da equação<br />
<br />
<math><Q> = \frac{1}{Z}\sum_{\mu}Q_{\mu} e^{-E{\mu}/kT}</math><br />
<br />
Processos de Markov<br />
<br />
== O Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de psins de Ising ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. Esse sistema de spins é descrito por uma dinâmica que possui balanceamento detalhado e que o leva a estados estacionários de equilibrio, descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising é construido a partir de uma rede de <math>N</math> spins de Ising com interações entre primeiros vizinhos. Os spins de Ising apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j - H\sum_{i} s_i, \qquad (1)<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, <math>J</math> é a constante de correlação, que assumimos positiva e <math>H</math> é um campo magnético externo que atua sobre os spins.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima, inicialmente desconsiderando o campo magnético <math>H</math>, já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos, buscando um estado de menor energia.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T} \qquad (2)<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores (ver seção sobre o método Monte Carlo).<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio <math><s_i></math>. A magnetização total a uma temperatura <math>T</math> para um sistema de <math>N</math> spins é dada por<br />
<br />
<math><br />
M = \sum_i <s_i> = N <s_i>,<br />
</math><br />
<br />
<br />
Se adicionarmos um campo magnético ao problema, a função de energia do sistema se torna<br />
<br />
<math><br />
E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,<br />
</math><br />
<br />
onde <math>H</math> representa o campo magnético e <math>\mu</math> o momento magnético associado com cada spin. Este campo faz com que os spins tendam a se orientar paralelamente a <math>H</math>, visto que isso diminui a energia. Para obter a aproximação de campo médio, consideramos que o sistema é constituído de um único spin <math>s_i</math>, de tal forma que a única energia envolvida é a energia de campo. As probabilidades de encontrar o sistema de um único spin nos seus dois possíveis estados são dadas por<br />
<br />
<math><br />
\begin{cases}<br />
P_+ = C e^{+\mu H/k_b T},\\<br />
P_- = C e^{-\mu H/k_b T},<br />
\end{cases}<br />
</math><br />
<br />
onde <math>C</math> é um coeficiente que pode ser determinado tomando a condição de que as duas probabilidades se somem a 1. Portanto,<br />
<br />
<math><br />
C = \frac{1}{e^{+\mu H/k_b T} + e^{-\mu H/k_b T}},<br />
</math><br />
<br />
A média de <math>s_i</math> pode ser calculada por<br />
<br />
<math><br />
<s_i> = \sum_{s_i = \pm 1} s_i P_{\pm} = P_+ - P_- = \tanh(\mu H/k_b T).<br />
</math><br />
<br />
== O Método de Monte Carlo ==<br />
=== Método de Metropolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações de acordo com a probabilidade (2), utilizaremos o algoritmo de dinâmica estocástica chamado método de Metropolis. Nesse método, utilizamos um conjunto de probabilidades <math>g(\mu \rightarrow \nu)</math>,uma para cada conjunto de transições de estados, e então escolhemos um conjunto de probabilidades de aceitação <math>A(\mu \rightarrow \nu)</math>. O algoritmo funcionará escolhendo repetidamente um novo <math>\nu</math> e aceitando ou rejeitando o estado de acordo com nossa probabilidade de aceitação. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza do método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\mu \rightarrow \nu)</math>, portanto iremos igualar essa probabilidade a 1. Utilizando a equação (2), comparamos a razão das probabilidade de transição dos estados:<br />
<br />
<math>\frac{P(\mu \rightarrow \nu)}{P(\nu \rightarrow \mu)} = \frac{g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)}{g(\nu \rightarrow \mu)A(\nu \rightarrow \mu)}=\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}.</math><br />
<br />
Para que isso seja respeitado, iremos então definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\<br />
1, \qquad \qquad \text{caso contrario}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicos, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spins da matriz poderá assumir apenas os valores de 1 e -1, representando a magnetização desse spin.<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: Ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que garantirá que o sistema tenha energia infinita e, portanto, teremos uma configuração aproximadamente aleatória garantido uma magnetização média do sistema como aproximadamente 0.<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação (1) e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação (1), temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k(J\displaystyle \sum_j s_{j} + H),</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math>.<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. <br />
É interessante ressaltar que, durante a simulação, escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado.<br />
<br />
=== Medição ===<br />
Temos algumas medidas relevantes a serem feitas nessa simulação. Uma delas é a medida da magnetização, ou seja, o estado total do sistema. A magnetização total é dada pela soma dos estados de todos os spins, ou seja <br />
<br />
<math>M_\mu = \displaystyle \sum_i s_i^\mu.</math><br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins (<math>L^2</math>), <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico do sistema, dada por<br />
<br />
<math>c = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação. Antes de começar a somar as medidas de magnetização e energia do sistema para os cálculos da suscetibilidade magnética e do calor específico, é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo.<br />
<br />
<br />
=== Resultados ===<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1538Grupo - Ising 2D2018-01-21T02:58:22Z<p>Lucasdoria: /* Método de Metropolis */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
Sobre Mecânica Estatística:<br />
<br />
Considera-se um sistema governado por um Hamiltoniano em contato com um reservatório térmico com temperatura <math>T</math> constante. O reservatório térmico, considerada uma pequena perturbação no sistema, troca energia com o sistema Hamiltoniano fazendo-o visitar diversos níveis de energia enquanto tende à temperatura do <math>T</math>. <br />
<br />
Uma forma de tratar essa interação é dando ao sistema uma dinâmica que o fará visitar diversos estados diferentes. Ou seja, a partir de uma dinâmica, o sistema pode passar de um estado <math>\mu</math> para outro estado <math>\nu</math> com uma probabilidade <math>P(\mu -> \nu)</math>, conhecida como taxa de transmissão. Também consideramos o peso <math>w_{\mu}(t)</math>, que é a probabilidade de o estado se encontrar no estado <math>\mu</math> no tempo <math>t</math>.<br />
Assim torna-se possível chegar a uma equação mestra capaz de descrever a taxa pela qual o sistema está alcançando um estado <math>\mu</math>:<br />
<br />
<math>\frac{dw_{\mu}}{dt} = \sum_{\nu}[w_{\mu}(t)P(\nu -> \mu) - w_{\nu}(t)P(\mu -> \nu)]</math><br />
<br />
Nosso sistema diz respeito a um corpo macroscópico formada por partes microscópicas, e a dinâmica diz respeito a essas últimas partes. Entretanto, também estamos interessados em características macroscópicas que emergem do micro. Dada uma característica <math>Q</math>, que assume o valor <math>Q_{\mu}</math> no estado <math>\mu</math>, podemos calcular o valor esperado (esperança) de <math>Q</math> em um tempo <math>t</math>:<br />
<br />
<math><Q> = \sum_{\mu}Q_{\mu}w_{\mu}(t)</math><br />
<br />
Equilibrio:<br />
<br />
Consideramos o estado de equilíbrio do sistema, caracterizado por <math>dw_{\mu}/dt = 0</math>, ou seja, probabilidade do sistema alcançar um estado <math>\mu</math> é igual à probabilidade de alcançar um estado <math>\nu</math>.<br />
<br />
Denotamos <math>p_{\mu} = \lim_{t -> \inf} w_{\mu}(t) </math><br />
como a probabilidade de encontrar <math>\mu</math> no estado de equilíbrio. Sabemos que para um sistema em equilíbrio térmico com o reservatório térmico a uma temperatura <math>T</math> a probabilidade é dada pela distribuição de Boltzmann, como demonstrado por Gibbs (1902):<br />
<br />
<math>p_{\mu} = \frac{1}{Z} e^{-E{\mu}/kT}</math><br />
<br />
onde Z é a função partição<br />
<br />
<math>Z = \sum_{\mu} e^{-E{\mu}/kT} </math><br />
<br />
sendo assim, podemos encontrar a esperança de uma quantidade <math>Q</math> para o sistema em estado de equilíbrio a partir da equação<br />
<br />
<math><Q> = \frac{1}{Z}\sum_{\mu}Q_{\mu} e^{-E{\mu}/kT}</math><br />
<br />
Processos de Markov<br />
<br />
== O Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de psins de Ising ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. Esse sistema de spins é descrito por uma dinâmica que possui balanceamento detalhado e que o leva a estados estacionários de equilibrio, descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising é construido a partir de uma rede de <math>N</math> spins de Ising com interações entre primeiros vizinhos. Os spins de Ising apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j - H\sum_{i} s_i, \qquad (1)<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, <math>J</math> é a constante de correlação, que assumimos positiva e <math>H</math> é um campo magnético externo que atua sobre os spins.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima, inicialmente desconsiderando o campo magnético <math>H</math>, já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos, buscando um estado de menor energia.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T} \qquad (2)<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores (ver seção sobre o método Monte Carlo).<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio <math><s_i></math>. A magnetização total a uma temperatura <math>T</math> para um sistema de <math>N</math> spins é dada por<br />
<br />
<math><br />
M = \sum_i <s_i> = N <s_i>,<br />
</math><br />
<br />
<br />
Se adicionarmos um campo magnético ao problema, a função de energia do sistema se torna<br />
<br />
<math><br />
E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,<br />
</math><br />
<br />
onde <math>H</math> representa o campo magnético e <math>\mu</math> o momento magnético associado com cada spin. Este campo faz com que os spins tendam a se orientar paralelamente a <math>H</math>, visto que isso diminui a energia. Para obter a aproximação de campo médio, consideramos que o sistema é constituído de um único spin <math>s_i</math>, de tal forma que a única energia envolvida é a energia de campo. As probabilidades de encontrar o sistema de um único spin nos seus dois possíveis estados são dadas por<br />
<br />
<math><br />
\begin{cases}<br />
P_+ = C e^{+\mu H/k_b T},\\<br />
P_- = C e^{-\mu H/k_b T},<br />
\end{cases}<br />
</math><br />
<br />
onde <math>C</math> é um coeficiente que pode ser determinado tomando a condição de que as duas probabilidades se somem a 1. Portanto,<br />
<br />
<math><br />
C = \frac{1}{e^{+\mu H/k_b T} + e^{-\mu H/k_b T}},<br />
</math><br />
<br />
A média de <math>s_i</math> pode ser calculada por<br />
<br />
<math><br />
<s_i> = \sum_{s_i = \pm 1} s_i P_{\pm} = P_+ - P_- = \tanh(\mu H/k_b T).<br />
</math><br />
<br />
== O Método de Monte Carlo ==<br />
=== Método de Metropolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações de acordo com a probabilidade (2), utilizaremos o algoritmo de dinâmica estocástica chamado método de Metropolis. Nesse método, utilizamos um conjunto de probabilidades <math>g(\mu \rightarrow \nu)</math>,uma para cada conjunto de transições de estados, e então escolhemos um conjunto de probabilidades de aceitação <math>A(\mu \rightarrow \nu)</math>. O algoritmo funcionará escolhendo repetidamente um novo <math>\nu</math> e aceitando ou rejeitando o estado de acordo com nossa probabilidade de aceitação. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza do método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\mu \rightarrow \nu)</math>, portanto iremos igualar essa probabilidade a 1. Utilizando a equação (2), comparamos a razão das probabilidade de transição dos estados:<br />
<br />
<math>\frac{P(\mu \rightarrow \nu)}{P(\nu \rightarrow \mu)} = \frac{g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)}{g(\nu \rightarrow \mu)A(\nu \rightarrow \mu)}=\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}.</math><br />
<br />
Para que isso seja respeitado, iremos então definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E > 0\\\\<br />
1 \qquad \qquad \text{Caso contrario}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicos, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spins da matriz poderá assumir apenas os valores de 1 e -1, representando a magnetização desse spin.<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: Ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que garantirá que o sistema tenha energia infinita e, portanto, teremos uma configuração aproximadamente aleatória garantido uma magnetização média do sistema como aproximadamente 0.<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação (1) e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação (1), temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k(J\displaystyle \sum_j s_{j} + H),</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math>.<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. <br />
É interessante ressaltar que, durante a simulação, escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado.<br />
<br />
=== Medição ===<br />
Temos algumas medidas relevantes a serem feitas nessa simulação. Uma delas é a medida da magnetização, ou seja, o estado total do sistema. A magnetização total é dada pela soma dos estados de todos os spins, ou seja <br />
<br />
<math>M_\mu = \displaystyle \sum_i s_i^\mu.</math><br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins (<math>L^2</math>), <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico do sistema, dada por<br />
<br />
<math>c = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação. Antes de começar a somar as medidas de magnetização e energia do sistema para os cálculos da suscetibilidade magnética e do calor específico, é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo.<br />
<br />
<br />
=== Resultados ===<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1537Grupo - Ising 2D2018-01-21T02:58:01Z<p>Lucasdoria: /* Método de Metropolis */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
Sobre Mecânica Estatística:<br />
<br />
Considera-se um sistema governado por um Hamiltoniano em contato com um reservatório térmico com temperatura <math>T</math> constante. O reservatório térmico, considerada uma pequena perturbação no sistema, troca energia com o sistema Hamiltoniano fazendo-o visitar diversos níveis de energia enquanto tende à temperatura do <math>T</math>. <br />
<br />
Uma forma de tratar essa interação é dando ao sistema uma dinâmica que o fará visitar diversos estados diferentes. Ou seja, a partir de uma dinâmica, o sistema pode passar de um estado <math>\mu</math> para outro estado <math>\nu</math> com uma probabilidade <math>P(\mu -> \nu)</math>, conhecida como taxa de transmissão. Também consideramos o peso <math>w_{\mu}(t)</math>, que é a probabilidade de o estado se encontrar no estado <math>\mu</math> no tempo <math>t</math>.<br />
Assim torna-se possível chegar a uma equação mestra capaz de descrever a taxa pela qual o sistema está alcançando um estado <math>\mu</math>:<br />
<br />
<math>\frac{dw_{\mu}}{dt} = \sum_{\nu}[w_{\mu}(t)P(\nu -> \mu) - w_{\nu}(t)P(\mu -> \nu)]</math><br />
<br />
Nosso sistema diz respeito a um corpo macroscópico formada por partes microscópicas, e a dinâmica diz respeito a essas últimas partes. Entretanto, também estamos interessados em características macroscópicas que emergem do micro. Dada uma característica <math>Q</math>, que assume o valor <math>Q_{\mu}</math> no estado <math>\mu</math>, podemos calcular o valor esperado (esperança) de <math>Q</math> em um tempo <math>t</math>:<br />
<br />
<math><Q> = \sum_{\mu}Q_{\mu}w_{\mu}(t)</math><br />
<br />
Equilibrio:<br />
<br />
Consideramos o estado de equilíbrio do sistema, caracterizado por <math>dw_{\mu}/dt = 0</math>, ou seja, probabilidade do sistema alcançar um estado <math>\mu</math> é igual à probabilidade de alcançar um estado <math>\nu</math>.<br />
<br />
Denotamos <math>p_{\mu} = \lim_{t -> \inf} w_{\mu}(t) </math><br />
como a probabilidade de encontrar <math>\mu</math> no estado de equilíbrio. Sabemos que para um sistema em equilíbrio térmico com o reservatório térmico a uma temperatura <math>T</math> a probabilidade é dada pela distribuição de Boltzmann, como demonstrado por Gibbs (1902):<br />
<br />
<math>p_{\mu} = \frac{1}{Z} e^{-E{\mu}/kT}</math><br />
<br />
onde Z é a função partição<br />
<br />
<math>Z = \sum_{\mu} e^{-E{\mu}/kT} </math><br />
<br />
sendo assim, podemos encontrar a esperança de uma quantidade <math>Q</math> para o sistema em estado de equilíbrio a partir da equação<br />
<br />
<math><Q> = \frac{1}{Z}\sum_{\mu}Q_{\mu} e^{-E{\mu}/kT}</math><br />
<br />
Processos de Markov<br />
<br />
== O Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de psins de Ising ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. Esse sistema de spins é descrito por uma dinâmica que possui balanceamento detalhado e que o leva a estados estacionários de equilibrio, descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising é construido a partir de uma rede de <math>N</math> spins de Ising com interações entre primeiros vizinhos. Os spins de Ising apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j - H\sum_{i} s_i, \qquad (1)<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, <math>J</math> é a constante de correlação, que assumimos positiva e <math>H</math> é um campo magnético externo que atua sobre os spins.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima, inicialmente desconsiderando o campo magnético <math>H</math>, já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos, buscando um estado de menor energia.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T} \qquad (2)<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores (ver seção sobre o método Monte Carlo).<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio <math><s_i></math>. A magnetização total a uma temperatura <math>T</math> para um sistema de <math>N</math> spins é dada por<br />
<br />
<math><br />
M = \sum_i <s_i> = N <s_i>,<br />
</math><br />
<br />
<br />
Se adicionarmos um campo magnético ao problema, a função de energia do sistema se torna<br />
<br />
<math><br />
E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,<br />
</math><br />
<br />
onde <math>H</math> representa o campo magnético e <math>\mu</math> o momento magnético associado com cada spin. Este campo faz com que os spins tendam a se orientar paralelamente a <math>H</math>, visto que isso diminui a energia. Para obter a aproximação de campo médio, consideramos que o sistema é constituído de um único spin <math>s_i</math>, de tal forma que a única energia envolvida é a energia de campo. As probabilidades de encontrar o sistema de um único spin nos seus dois possíveis estados são dadas por<br />
<br />
<math><br />
\begin{cases}<br />
P_+ = C e^{+\mu H/k_b T},\\<br />
P_- = C e^{-\mu H/k_b T},<br />
\end{cases}<br />
</math><br />
<br />
onde <math>C</math> é um coeficiente que pode ser determinado tomando a condição de que as duas probabilidades se somem a 1. Portanto,<br />
<br />
<math><br />
C = \frac{1}{e^{+\mu H/k_b T} + e^{-\mu H/k_b T}},<br />
</math><br />
<br />
A média de <math>s_i</math> pode ser calculada por<br />
<br />
<math><br />
<s_i> = \sum_{s_i = \pm 1} s_i P_{\pm} = P_+ - P_- = \tanh(\mu H/k_b T).<br />
</math><br />
<br />
== O Método de Monte Carlo ==<br />
=== Método de Metropolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações de acordo com a probabilidade (2), utilizaremos o algoritmo de dinâmica estocástica chamado método de Metropolis. Nesse método, utilizamos um conjunto de probabilidades <math>g(\mu \rightarrow \nu)</math>,uma para cada conjunto de transições de estados, e então escolhemos um conjunto de probabilidades de aceitação <math>A(\mu \rightarrow \nu)</math>. O algoritmo funcionará escolhendo repetidamente um novo <math>\nu</math> e aceitando ou rejeitando o estado de acordo com nossa probabilidade de aceitação. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza do método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\mu \rightarrow \nu)</math>, portanto iremos igualar essa probabilidade a 1. Utilizando a equação (2), comparamos a razão das probabilidade de transição dos estados:<br />
<br />
<math>\frac{P(\mu \rightarrow \nu)}{P(\nu \rightarrow \mu)} = \frac{g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)}{g(\nu \rightarrow \mu)A(\nu \rightarrow \mu)}=\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}.</math><br />
<br />
Para que isso seja respeitado, iremos então definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \textnormal{se } \Delta E > 0\\\\<br />
1 \qquad \qquad \textnormal{Caso contrário}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicos, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spins da matriz poderá assumir apenas os valores de 1 e -1, representando a magnetização desse spin.<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: Ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que garantirá que o sistema tenha energia infinita e, portanto, teremos uma configuração aproximadamente aleatória garantido uma magnetização média do sistema como aproximadamente 0.<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação (1) e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação (1), temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k(J\displaystyle \sum_j s_{j} + H),</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math>.<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. <br />
É interessante ressaltar que, durante a simulação, escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado.<br />
<br />
=== Medição ===<br />
Temos algumas medidas relevantes a serem feitas nessa simulação. Uma delas é a medida da magnetização, ou seja, o estado total do sistema. A magnetização total é dada pela soma dos estados de todos os spins, ou seja <br />
<br />
<math>M_\mu = \displaystyle \sum_i s_i^\mu.</math><br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins (<math>L^2</math>), <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico do sistema, dada por<br />
<br />
<math>c = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação. Antes de começar a somar as medidas de magnetização e energia do sistema para os cálculos da suscetibilidade magnética e do calor específico, é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo.<br />
<br />
<br />
=== Resultados ===<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1535Grupo - Ising 2D2018-01-21T02:57:36Z<p>Lucasdoria: /* Método de Metropolis */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
Sobre Mecânica Estatística:<br />
<br />
Considera-se um sistema governado por um Hamiltoniano em contato com um reservatório térmico com temperatura <math>T</math> constante. O reservatório térmico, considerada uma pequena perturbação no sistema, troca energia com o sistema Hamiltoniano fazendo-o visitar diversos níveis de energia enquanto tende à temperatura do <math>T</math>. <br />
<br />
Uma forma de tratar essa interação é dando ao sistema uma dinâmica que o fará visitar diversos estados diferentes. Ou seja, a partir de uma dinâmica, o sistema pode passar de um estado <math>\mu</math> para outro estado <math>\nu</math> com uma probabilidade <math>P(\mu -> \nu)</math>, conhecida como taxa de transmissão. Também consideramos o peso <math>w_{\mu}(t)</math>, que é a probabilidade de o estado se encontrar no estado <math>\mu</math> no tempo <math>t</math>.<br />
Assim torna-se possível chegar a uma equação mestra capaz de descrever a taxa pela qual o sistema está alcançando um estado <math>\mu</math>:<br />
<br />
<math>\frac{dw_{\mu}}{dt} = \sum_{\nu}[w_{\mu}(t)P(\nu -> \mu) - w_{\nu}(t)P(\mu -> \nu)]</math><br />
<br />
Nosso sistema diz respeito a um corpo macroscópico formada por partes microscópicas, e a dinâmica diz respeito a essas últimas partes. Entretanto, também estamos interessados em características macroscópicas que emergem do micro. Dada uma característica <math>Q</math>, que assume o valor <math>Q_{\mu}</math> no estado <math>\mu</math>, podemos calcular o valor esperado (esperança) de <math>Q</math> em um tempo <math>t</math>:<br />
<br />
<math><Q> = \sum_{\mu}Q_{\mu}w_{\mu}(t)</math><br />
<br />
Equilibrio:<br />
<br />
Consideramos o estado de equilíbrio do sistema, caracterizado por <math>dw_{\mu}/dt = 0</math>, ou seja, probabilidade do sistema alcançar um estado <math>\mu</math> é igual à probabilidade de alcançar um estado <math>\nu</math>.<br />
<br />
Denotamos <math>p_{\mu} = \lim_{t -> \inf} w_{\mu}(t) </math><br />
como a probabilidade de encontrar <math>\mu</math> no estado de equilíbrio. Sabemos que para um sistema em equilíbrio térmico com o reservatório térmico a uma temperatura <math>T</math> a probabilidade é dada pela distribuição de Boltzmann, como demonstrado por Gibbs (1902):<br />
<br />
<math>p_{\mu} = \frac{1}{Z} e^{-E{\mu}/kT}</math><br />
<br />
onde Z é a função partição<br />
<br />
<math>Z = \sum_{\mu} e^{-E{\mu}/kT} </math><br />
<br />
sendo assim, podemos encontrar a esperança de uma quantidade <math>Q</math> para o sistema em estado de equilíbrio a partir da equação<br />
<br />
<math><Q> = \frac{1}{Z}\sum_{\mu}Q_{\mu} e^{-E{\mu}/kT}</math><br />
<br />
== O Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de psins de Ising ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. Esse sistema de spins é descrito por uma dinâmica que possui balanceamento detalhado e que o leva a estados estacionários de equilibrio, descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising é construido a partir de uma rede de <math>N</math> spins de Ising com interações entre primeiros vizinhos. Os spins de Ising apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j - H\sum_{i} s_i, \qquad (1)<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, <math>J</math> é a constante de correlação, que assumimos positiva e <math>H</math> é um campo magnético externo que atua sobre os spins.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima, inicialmente desconsiderando o campo magnético <math>H</math>, já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos, buscando um estado de menor energia.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T} \qquad (2)<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores (ver seção sobre o método Monte Carlo).<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio <math><s_i></math>. A magnetização total a uma temperatura <math>T</math> para um sistema de <math>N</math> spins é dada por<br />
<br />
<math><br />
M = \sum_i <s_i> = N <s_i>,<br />
</math><br />
<br />
<br />
Se adicionarmos um campo magnético ao problema, a função de energia do sistema se torna<br />
<br />
<math><br />
E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,<br />
</math><br />
<br />
onde <math>H</math> representa o campo magnético e <math>\mu</math> o momento magnético associado com cada spin. Este campo faz com que os spins tendam a se orientar paralelamente a <math>H</math>, visto que isso diminui a energia. Para obter a aproximação de campo médio, consideramos que o sistema é constituído de um único spin <math>s_i</math>, de tal forma que a única energia envolvida é a energia de campo. As probabilidades de encontrar o sistema de um único spin nos seus dois possíveis estados são dadas por<br />
<br />
<math><br />
\begin{cases}<br />
P_+ = C e^{+\mu H/k_b T},\\<br />
P_- = C e^{-\mu H/k_b T},<br />
\end{cases}<br />
</math><br />
<br />
onde <math>C</math> é um coeficiente que pode ser determinado tomando a condição de que as duas probabilidades se somem a 1. Portanto,<br />
<br />
<math><br />
C = \frac{1}{e^{+\mu H/k_b T} + e^{-\mu H/k_b T}},<br />
</math><br />
<br />
A média de <math>s_i</math> pode ser calculada por<br />
<br />
<math><br />
<s_i> = \sum_{s_i = \pm 1} s_i P_{\pm} = P_+ - P_- = \tanh(\mu H/k_b T).<br />
</math><br />
<br />
== O Método de Monte Carlo ==<br />
=== Método de Metropolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações de acordo com a probabilidade (2), utilizaremos o algoritmo de dinâmica estocástica chamado método de Metropolis. Nesse método, utilizamos um conjunto de probabilidades <math>g(\mu \rightarrow \nu)</math>,uma para cada conjunto de transições de estados, e então escolhemos um conjunto de probabilidades de aceitação <math>A(\mu \rightarrow \nu)</math>. O algoritmo funcionará escolhendo repetidamente um novo <math>\nu</math> e aceitando ou rejeitando o estado de acordo com nossa probabilidade de aceitação. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza do método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\mu \rightarrow \nu)</math>, portanto iremos igualar essa probabilidade a 1. Utilizando a equação (2), comparamos a razão das probabilidade de transição dos estados:<br />
<br />
<math>\frac{P(\mu \rightarrow \nu)}{P(\nu \rightarrow \mu)} = \frac{g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)}{g(\nu \rightarrow \mu)A(\nu \rightarrow \mu)}=\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}.</math><br />
<br />
Para que isso seja respeitado, iremos então definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se} \Delta E > 0\\\\<br />
1 \qquad \qquad \text{Caso contrário}.<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicos, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spins da matriz poderá assumir apenas os valores de 1 e -1, representando a magnetização desse spin.<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: Ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que garantirá que o sistema tenha energia infinita e, portanto, teremos uma configuração aproximadamente aleatória garantido uma magnetização média do sistema como aproximadamente 0.<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação (1) e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação (1), temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k(J\displaystyle \sum_j s_{j} + H),</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math>.<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. <br />
É interessante ressaltar que, durante a simulação, escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado.<br />
<br />
=== Medição ===<br />
Temos algumas medidas relevantes a serem feitas nessa simulação. Uma delas é a medida da magnetização, ou seja, o estado total do sistema. A magnetização total é dada pela soma dos estados de todos os spins, ou seja <br />
<br />
<math>M_\mu = \displaystyle \sum_i s_i^\mu.</math><br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins (<math>L^2</math>), <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico do sistema, dada por<br />
<br />
<math>c = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação. Antes de começar a somar as medidas de magnetização e energia do sistema para os cálculos da suscetibilidade magnética e do calor específico, é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo.<br />
<br />
<br />
=== Resultados ===<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1534Grupo - Ising 2D2018-01-21T02:54:08Z<p>Lucasdoria: /* Introdução(?) */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
Sobre Mecânica Estatística:<br />
<br />
Considera-se um sistema governado por um Hamiltoniano em contato com um reservatório térmico com temperatura <math>T</math> constante. O reservatório térmico, considerada uma pequena perturbação no sistema, troca energia com o sistema Hamiltoniano fazendo-o visitar diversos níveis de energia enquanto tende à temperatura do <math>T</math>. <br />
<br />
Uma forma de tratar essa interação é dando ao sistema uma dinâmica que o fará visitar diversos estados diferentes. Ou seja, a partir de uma dinâmica, o sistema pode passar de um estado <math>\mu</math> para outro estado <math>\nu</math> com uma probabilidade <math>P(\mu -> \nu)</math>, conhecida como taxa de transmissão. Também consideramos o peso <math>w_{\mu}(t)</math>, que é a probabilidade de o estado se encontrar no estado <math>\mu</math> no tempo <math>t</math>.<br />
Assim torna-se possível chegar a uma equação mestra capaz de descrever a taxa pela qual o sistema está alcançando um estado <math>\mu</math>:<br />
<br />
<math>\frac{dw_{\mu}}{dt} = \sum_{\nu}[w_{\mu}(t)P(\nu -> \mu) - w_{\nu}(t)P(\mu -> \nu)]</math><br />
<br />
Nosso sistema diz respeito a um corpo macroscópico formada por partes microscópicas, e a dinâmica diz respeito a essas últimas partes. Entretanto, também estamos interessados em características macroscópicas que emergem do micro. Dada uma característica <math>Q</math>, que assume o valor <math>Q_{\mu}</math> no estado <math>\mu</math>, podemos calcular o valor esperado (esperança) de <math>Q</math> em um tempo <math>t</math>:<br />
<br />
<math><Q> = \sum_{\mu}Q_{\mu}w_{\mu}(t)</math><br />
<br />
Equilibrio:<br />
<br />
Consideramos o estado de equilíbrio do sistema, caracterizado por <math>dw_{\mu}/dt = 0</math>, ou seja, probabilidade do sistema alcançar um estado <math>\mu</math> é igual à probabilidade de alcançar um estado <math>\nu</math>.<br />
<br />
Denotamos <math>p_{\mu} = \lim_{t -> \inf} w_{\mu}(t) </math><br />
como a probabilidade de encontrar <math>\mu</math> no estado de equilíbrio. Sabemos que para um sistema em equilíbrio térmico com o reservatório térmico a uma temperatura <math>T</math> a probabilidade é dada pela distribuição de Boltzmann, como demonstrado por Gibbs (1902):<br />
<br />
<math>p_{\mu} = \frac{1}{Z} e^{-E{\mu}/kT}</math><br />
<br />
onde Z é a função partição<br />
<br />
<math>Z = \sum_{\mu} e^{-E{\mu}/kT} </math><br />
<br />
sendo assim, podemos encontrar a esperança de uma quantidade <math>Q</math> para o sistema em estado de equilíbrio a partir da equação<br />
<br />
<math><Q> = \frac{1}{Z}\sum_{\mu}Q_{\mu} e^{-E{\mu}/kT}</math><br />
<br />
== O Modelo de Ising ==<br />
<br />
A denominação "modelo de Ising" é utilizada para tratar um sistema de psins de Ising ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. Esse sistema de spins é descrito por uma dinâmica que possui balanceamento detalhado e que o leva a estados estacionários de equilibrio, descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.<br />
<br />
O modelo de Ising é construido a partir de uma rede de <math>N</math> spins de Ising com interações entre primeiros vizinhos. Os spins de Ising apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j - H\sum_{i} s_i, \qquad (1)<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, <math>J</math> é a constante de correlação, que assumimos positiva e <math>H</math> é um campo magnético externo que atua sobre os spins.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima, inicialmente desconsiderando o campo magnético <math>H</math>, já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos, buscando um estado de menor energia.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T} \qquad (2)<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores (ver seção sobre o método Monte Carlo).<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio <math><s_i></math>. A magnetização total a uma temperatura <math>T</math> para um sistema de <math>N</math> spins é dada por<br />
<br />
<math><br />
M = \sum_i <s_i> = N <s_i>,<br />
</math><br />
<br />
<br />
Se adicionarmos um campo magnético ao problema, a função de energia do sistema se torna<br />
<br />
<math><br />
E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,<br />
</math><br />
<br />
onde <math>H</math> representa o campo magnético e <math>\mu</math> o momento magnético associado com cada spin. Este campo faz com que os spins tendam a se orientar paralelamente a <math>H</math>, visto que isso diminui a energia. Para obter a aproximação de campo médio, consideramos que o sistema é constituído de um único spin <math>s_i</math>, de tal forma que a única energia envolvida é a energia de campo. As probabilidades de encontrar o sistema de um único spin nos seus dois possíveis estados são dadas por<br />
<br />
<math><br />
\begin{cases}<br />
P_+ = C e^{+\mu H/k_b T},\\<br />
P_- = C e^{-\mu H/k_b T},<br />
\end{cases}<br />
</math><br />
<br />
onde <math>C</math> é um coeficiente que pode ser determinado tomando a condição de que as duas probabilidades se somem a 1. Portanto,<br />
<br />
<math><br />
C = \frac{1}{e^{+\mu H/k_b T} + e^{-\mu H/k_b T}},<br />
</math><br />
<br />
A média de <math>s_i</math> pode ser calculada por<br />
<br />
<math><br />
<s_i> = \sum_{s_i = \pm 1} s_i P_{\pm} = P_+ - P_- = \tanh(\mu H/k_b T).<br />
</math><br />
<br />
== O Método de Monte Carlo ==<br />
=== Método de Metropolis ===<br />
Para o método de Monte Carlo responsável por gerar configurações de acordo com a probabilidade (2), utilizaremos o algoritmo de dinâmica estocástica chamado método de Metropolis. Nesse método, utilizamos um conjunto de probabilidades <math>g(\mu \rightarrow \nu)</math>,uma para cada conjunto de transições de estados, e então escolhemos um conjunto de probabilidades de aceitação <math>A(\mu \rightarrow \nu)</math>. O algoritmo funcionará escolhendo repetidamente um novo <math>\nu</math> e aceitando ou rejeitando o estado de acordo com nossa probabilidade de aceitação. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. <br />
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza do método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. <br />
Vamos supor que tenhamos os estados <math>\mu</math> e <math>\nu</math> e que temos a relação de energias: <math>E_\mu < E_\nu</math>. Então, a maior das duas chances de aceitação é <math>A(\mu \rightarrow \nu)</math>, portanto iremos igualar essa probabilidade a 1. Utilizando a equação (2), comparamos a razão das probabilidade de transição dos estados:<br />
<br />
<math>\frac{P(\mu \rightarrow \nu)}{P(\nu \rightarrow \mu)} = \frac{g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)}{g(\nu \rightarrow \mu)A(\nu \rightarrow \mu)}=\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}.</math><br />
<br />
Para que isso seja respeitado, iremos então definir o valor de <math>A(\mu \rightarrow \nu)</math> como <math>e^{-\frac{\Delta E}{k_BT}}</math>. Temos, assim, o algoritmo de Metropolis:<br />
<br />
<math>A(\mu \rightarrow \nu) = \begin{cases}<br />
e^{-\frac{\Delta E}{k_BT}} \qquad \text{se } \Delta E > 0\\\\<br />
1 \qquad \qquad \text{Caso contrário.}<br />
\end{cases}</math><br />
<br />
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.<br />
<br />
=== Implementação ===<br />
Para a implementação do método, utilizaremos uma matriz <math>L\times L</math> com condições de contorno periódicos, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spins da matriz poderá assumir apenas os valores de 1 e -1, representando a magnetização desse spin.<br />
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: Ou determinamos <math>T=0</math> e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos <math>T=\infty</math>, o que garantirá que o sistema tenha energia infinita e, portanto, teremos uma configuração aproximadamente aleatória garantido uma magnetização média do sistema como aproximadamente 0.<br />
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação (1) e durante a dinâmica da simulação calcularmos apenas <math>\Delta E</math>, atualizando a nova energia do sistema com <math>E_\nu = E_\mu + \Delta E</math>.<br />
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação (1), temos que só um spin <math>(s_k)</math> irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de <math>s_k</math>, <math>s_k^\nu - s_k^\mu = -2s_k^\mu</math>. Utilizando isso e fazendo a diferença entre as energias, podemos escrever <br />
<br />
<math>\Delta E = 2s_k(J\displaystyle \sum_j s_{j} + H),</math><br />
<br />
onde o somatório se dá nos vizinhos de <math>s_k</math>.<br />
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos <math>k_B = 1</math>. Além disso, também utilizamos <math>J=1</math>. <br />
É interessante ressaltar que, durante a simulação, escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado.<br />
<br />
=== Medição ===<br />
Temos algumas medidas relevantes a serem feitas nessa simulação. Uma delas é a medida da magnetização, ou seja, o estado total do sistema. A magnetização total é dada pela soma dos estados de todos os spins, ou seja <br />
<br />
<math>M_\mu = \displaystyle \sum_i s_i^\mu.</math><br />
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar <math>\Delta M</math> sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer <math>s_k</math> temos <math>\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu</math>, temos que <br />
<br />
<math>M_\nu = M_\mu + 2s_k^\nu.</math><br />
<br />
Outra medida relevante é a suscetibilidade magnética do sistema, dada por <br />
<br />
<math>\chi = \frac{<M^2> - <M>^2}{Nk_BT},</math><br />
<br />
onde <math>N</math> é o número total de spins (<math>L^2</math>), <math><M^2></math> e <math><M></math> são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.<br />
Por fim, temos a medida do calor específico do sistema, dada por<br />
<br />
<math>c = \frac{<E^2> - <E>^2}{Nk_B^2T^2},</math><br />
<br />
onde <math><E^2></math> e <math><E></math> são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação. Antes de começar a somar as medidas de magnetização e energia do sistema para os cálculos da suscetibilidade magnética e do calor específico, é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo.<br />
<br />
<br />
=== Resultados ===<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1516Grupo - Ising 2D2018-01-21T00:40:19Z<p>Lucasdoria: /* Teoria do Campo Médio: Uma abordagem aproximada */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T}<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores (ver seção sobre o método Monte Carlo).<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio <math><s_i></math>. A magnetização total a uma temperatura <math>T</math> para um sistema de <math>N</math> spins é dada por<br />
<br />
<math><br />
M = \sum_i <s_i> = N <s_i>,<br />
</math><br />
<br />
<br />
Se adicionarmos um campo magnético ao problema, a função de energia do sistema se torna<br />
<br />
<math><br />
E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,<br />
</math><br />
<br />
onde <math>H</math> representa o campo magnético e <math>\mu</math> o momento magnético associado com cada spin. Este campo faz com que os spins tendam a se orientar paralelamente a <math>H</math>, visto que isso diminui a energia. Para obter a aproximação de campo médio, consideramos que o sistema é constituído de um único spin <math>s_i</math>, de tal forma que a única energia envolvida é a energia de campo. As probabilidades de encontrar o sistema de um único spin nos seus dois possíveis estados são dadas por<br />
<br />
<math><br />
\begin{cases}<br />
P_+ = C e^{+\mu H/k_b T},\\<br />
P_- = C e^{-\mu H/k_b T},<br />
\end{cases}<br />
</math><br />
<br />
onde <math>C</math> é um coeficiente que pode ser determinado tomando a condição de que as duas probabilidades se somem a 1. Portanto,<br />
<br />
<math><br />
C = \frac{1}{e^{+\mu H/k_b T} + e^{-\mu H/k_b T}},<br />
</math><br />
<br />
A média de <math>s_i</math> pode ser calculada por<br />
<br />
<math><br />
<s_i> = \sum_{s_i = \pm 1} s_i P_{\pm} = P_+ - P_- = \tanh(\mu H/k_b T).<br />
</math><br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1515Grupo - Ising 2D2018-01-21T00:39:44Z<p>Lucasdoria: /* Teoria do Campo Médio: Uma abordagem aproximada */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T}<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores (ver seção sobre o método Monte Carlo).<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio <math><s_i></math>. A magnetização total a uma temperatura <math>T</math> para um sistema de <math>N</math> spins é dada por<br />
<br />
<math><br />
M = \sum_i <s_i> = N <s_i>,<br />
</math><br />
<br />
<br />
Se adicionarmos um campo magnético ao problema, a função de energia do sistema se torna<br />
<br />
<math><br />
E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,<br />
</math><br />
<br />
onde <math>H</math> representa o campo magnético e <math>\mu</math> o momento magnético associado com cada spin. Este campo faz com que os spins tendam a se orientar paralelamente a <math>H</math>, visto que isso diminui a energia. Para obter a aproximação de campo médio, consideramos que o sistema é constituído de um único spin <math>s_i</math>, de tal forma que a única energia envolvida é a energia de campo. As probabilidades de encontrar o sistema de um único spin nos seus dois possíveis estados são dadas por<br />
<br />
<math><br />
\begin{cases}<br />
P_+ = C e^{+\mu H/k_b T},\\<br />
P_- = C e^{-\mu H/k_b T},<br />
\end{cases}<br />
</math><br />
<br />
onde <math>C</math> é um coeficiente que pode ser determinado fazendo a condição de que as duas probabilidades se somem a 1. Portanto,<br />
<br />
<math><br />
C = \frac{1}{e^{+\mu H/k_b T} + e^{-\mu H/k_b T}},<br />
</math><br />
<br />
A média de <math>s_i</math> pode ser calculada por<br />
<br />
<math><br />
<s_i> = \sum_{s_i = \pm 1} s_i P_{\pm} = P_+ - P_- = \tanh(\mu H/k_b T).<br />
</math><br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1514Grupo - Ising 2D2018-01-21T00:38:30Z<p>Lucasdoria: /* Teoria do Campo Médio: Uma abordagem aproximada */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T}<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores (ver seção sobre o método Monte Carlo).<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio <math><s_i></math>. A magnetização total a uma temperatura <math>T</math> para um sistema de <math>N</math> spins é dada por<br />
<br />
<math><br />
M = \sum_i <s_i> = N <s_i>,<br />
</math><br />
<br />
<br />
Se adicionarmos um campo magnético ao problema, a função de energia do sistema se torna<br />
<br />
<math><br />
E = -J \sum_{<ij>} s_i s_j - \mu H \sum_i s_i,<br />
</math><br />
<br />
onde <math>H</math> representa o campo magnético e <math>\mu</math> o momento magnético associado com cada spin. Este campo faz com que os spins tendam a se orientar paralelamente a <math>H</math>, visto que isso diminui a energia. Para obter a aproximação de campo médio, consideramos que o sistema é constituído de um único spin <math>s_i</math>, de tal forma que a única energia envolvida é a energia de campo. As probabilidades de encontrar o sistema de um único spin nos seus dois possíveis estados são dadas por<br />
<br />
<math><br />
P_+ = C e^{+\mu H/k_b T},<br />
P_- = C e^{-\mu H/k_b T},<br />
</math><br />
<br />
onde <math>C</math> é um coeficiente que pode ser determinado fazendo a condição de que as duas probabilidades se somem a 1. Portanto,<br />
<br />
<math><br />
C = \frac{1}{e^{+\mu H/k_b T} + e^{-\mu H/k_b T}},<br />
</math><br />
<br />
A média de <math>s_i</math> pode ser calculada por<br />
<br />
<math><br />
<s_i> = \sum_{s_i = \pm 1} s_i P_{\pm} = P_+ - P_- = \tanh(\mu H/k_b T).<br />
</math><br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1513Grupo - Ising 2D2018-01-20T22:49:46Z<p>Lucasdoria: /* Conclusões e Observações */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T}<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores.\\<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio $<s_i>$<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1512Grupo - Ising 2D2018-01-20T22:49:14Z<p>Lucasdoria: /* Conclusões e Observações ? */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T}<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores.\\<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio $<s_i>$<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ==<br />
<br />
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano(modelo XY[https://en.wikipedia.org/wiki/Classical_XY_model]), ou até mesmo considerar vetores em três dimensões(modelo de Heisenberg [https://en.wikipedia.org/wiki/Classical_Heisenberg_model]). Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1509Grupo - Ising 2D2018-01-20T22:38:45Z<p>Lucasdoria: /* O Modelo de Ising */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T}<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis. Essa interação do sistema com uma fonte à temperatura <math>T</math> faz com que o sistema passe por transições de um microestado para outro, fazendo com que spins individuais alternem entre +1 e -1 enquanto ganham ou perdem energia devido a fonte.<br />
<br />
Uma medida macroscópica do momento magnético total do sistema é chamada de magnetização, e é uma média dos diversos microestados que o sistema visita durante uma medida. O momento magnético de um microestado <math>M_{\alpha}</math> é a soma dos valores dos spins daquele estado em particular. Assim, a magnetização medida é dada por<br />
<br />
<math><br />
M = \sum_{\alpha} M_{\alpha} P_{\alpha},<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores.\\<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio $<s_i>$<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ? ==<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1507Grupo - Ising 2D2018-01-20T22:30:07Z<p>Lucasdoria: /* O Modelo de Ising */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T}<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis.<br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores.\\<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio $<s_i>$<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ? ==<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1506Grupo - Ising 2D2018-01-20T22:29:12Z<p>Lucasdoria: </p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<ref name=giordano>N. J. Giordano, "Computational Physics". Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.</ref><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann</ref>fator de Boltzmann<ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T}<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis.<br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores.\\<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio $<s_i>$<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ? ==<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1504Grupo - Ising 2D2018-01-20T22:26:51Z<p>Lucasdoria: /* O Modelo de Ising */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por</ref> e uma corda com dados pré-estabelecidos encontrados em <ref name=giordano/><br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann</ref> e uma corda com dados pré-estabelecidos encontrados em <ref name=giordano/><br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T}<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis.<br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores.\\<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio $<s_i>$<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ? ==<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1503Grupo - Ising 2D2018-01-20T22:25:29Z<p>Lucasdoria: /* Referências */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann<br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T}<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis.<br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores.\\<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio $<s_i>$<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ? ==<br />
<br />
== Referências ==<br />
<br />
<references/></div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1440Grupo - Ising 2D2018-01-20T18:44:25Z<p>Lucasdoria: /* O Modelo de Ising */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann<br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T}<br />
</math><br />
<br />
onde <math>E_{\alpha}</math> é a energia do estado <math>\alpha</math> correspondente e <math>k_b</math> a constante de Boltzmann. Cada um desses estados é uma configuração particular do conjunto de spins, chamados microestados do sistema. Portanto, se temos uma cadeia com <math>N</math> Ising spins, o sistema possui <math>2^{N}</math> microestados possíveis.<br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores.\\<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio $<s_i>$<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ? ==<br />
<br />
== Referências ==</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1438Grupo - Ising 2D2018-01-20T18:38:26Z<p>Lucasdoria: /* O Modelo de Ising */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
Para um sistema que se encontra em equilíbrio com uma fonte em temperatura <math>T</math>, a probabilidade de encontrar o sistema em um estado particular é proporcional ao fator de Boltzmann<br />
<br />
<math><br />
P_{\alpha} \propto e^{-E_{\alpha}/k_b T}<br />
</math><br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores.\\<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio $<s_i>$<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ? ==<br />
<br />
== Referências ==</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1437Grupo - Ising 2D2018-01-20T18:32:55Z<p>Lucasdoria: /* Teoria do Campo Médio: Uma abordagem aproximada */</p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
O método do campo médio pode ser utilizado para introduzir algumas propriedades de um sistema de spins, assim como uma primeira análise de transições de fase. Porém seus resultados não são quantitativamente exatos, sendo necessária uma abordagem diferente ao problema para fins de resultados melhores.\\<br />
<br />
A magnetização do sistema está relacionada ao alinhamento de spin médio $<s_i>$<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ? ==<br />
<br />
== Referências ==</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1436Grupo - Ising 2D2018-01-20T18:31:50Z<p>Lucasdoria: </p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ? ==<br />
<br />
== Referências ==</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1434Grupo - Ising 2D2018-01-20T18:29:19Z<p>Lucasdoria: </p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.[https://pt.wikipedia.org/wiki/Conjunto_can%C3%B3nico]<br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ? ==</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1432Grupo - Ising 2D2018-01-20T18:28:22Z<p>Lucasdoria: </p>
<hr />
<div>'''Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.<br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ? ==</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1431Grupo - Ising 2D2018-01-20T18:27:46Z<p>Lucasdoria: </p>
<hr />
<div>'''Grupo: Lucas Dória, Caetano Pires e Ânderson Rosa.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.<br />
<br />
== Teoria do Campo Médio: Uma abordagem aproximada ==<br />
<br />
== O Método de Monte Carlo ==<br />
<br />
== Transições de fase(?) ==<br />
<br />
== Conclusões e Observações ? ==</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1430Grupo - Ising 2D2018-01-20T18:25:47Z<p>Lucasdoria: </p>
<hr />
<div>'''Grupo: Lucas Dória, Caetano Pires e Ânderson Rosa.'''<br />
<br />
sepa falar algo aqui tb<br />
<br />
== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1429Grupo - Ising 2D2018-01-20T18:25:10Z<p>Lucasdoria: </p>
<hr />
<div>== Introdução(?) ==<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
== O Modelo de Ising ==<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.</div>Lucasdoriahttp://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Ising_2D&diff=1428Grupo - Ising 2D2018-01-20T18:24:16Z<p>Lucasdoria: Criou página com '=Introdução(?)= -talvez falar sobre materiais ferromagnéticos; -falar sobre os conceitos de mec estatística necessários?; -falar sobre o sistema de spins (geometricame...'</p>
<hr />
<div>=Introdução(?)=<br />
<br />
-talvez falar sobre materiais ferromagnéticos;<br />
<br />
-falar sobre os conceitos de mec estatística necessários?;<br />
<br />
-falar sobre o sistema de spins (geometricamente)?;<br />
<br />
=O Modelo de Ising=<br />
<br />
O modelo de Ising é construído a partir da assunção de que os spins do sistema apontam apenas na direção <math>+z</math> ou <math>-z</math>. Assim, o <math>i</math>-ésimo spin do sistema pode assumir dois valores, que por conveniência são assumidos <math>s_i = \pm 1.</math> Cada um desses "Ising spins" interage com outros spins do sistema.<br />
<br />
Em um material magnético real, a interação é maior entre spins mais próximos. Com essa motivação, uma forma de representar a interação entre os spins do sistema é levar em conta a interação apenas entre um spin e seus vizinhos mais próximos da cadeia de spins. A energia de tal sistema pode ser expressa por<br />
<br />
<math><br />
E = - J \sum_{<ij>} s_i s_j,<br />
</math><br />
<br />
onde a soma se dá sobre todos os pares de spins mais próximos entre si, e <math>J</math> é a constante de correlação, que assumimos positiva.<br />
<br />
Uma análise qualitativa da expressão para a energia do microestado acima já mostra, por exemplo, que se dois spins são paralelos entre si, a energia de interação entre eles é <math>-J</math>. Se os spins são antiparalelos, então o produto dentro da soma é negativo, de forma que <math>E = J.</math> Portanto, as interações favorecem um alinhamento paralelo entre spins vizinhos.<br />
<br />
Embora a energia do sistema seja menor quando todos os spins são paralelos entre si, é preciso considerar o efeito da temperatura sobre o sistema. No modelo estudado em questão, é considerado que o sistema se encontra em equilíbrio com uma fonte de temperatura <math>T</math>, de forma que o comportamento do sistema pode ser estudado a partir do ensemble canônico.</div>Lucasdoria