http://fiscomp.if.ufrgs.br/index.php?title=Ondas_1&feed=atom&action=historyOndas 1 - Histórico de revisão2024-03-28T11:47:38ZHistórico de revisões para esta página neste wikiMediaWiki 1.39.4http://fiscomp.if.ufrgs.br/index.php?title=Ondas_1&diff=2723&oldid=prevHeitor: Criou página com ' '''Integrantes do grupo:''' Rodrigo Zamin Ferreira (262692), Leonardo Xavier Rodrigues (262696), Maurício Gomes de Queiroz (264889) e Rodrigo Lopes de Sousa Silva (262705)...'2020-01-19T13:34:52Z<p>Criou página com ' '''Integrantes do grupo:''' Rodrigo Zamin Ferreira (262692), Leonardo Xavier Rodrigues (262696), Maurício Gomes de Queiroz (264889) e Rodrigo Lopes de Sousa Silva (262705)...'</p>
<p><b>Página nova</b></p><div><br />
'''Integrantes do grupo:''' Rodrigo Zamin Ferreira (262692), Leonardo Xavier Rodrigues (262696), Maurício Gomes de Queiroz (264889) e Rodrigo Lopes de Sousa Silva (262705)<br />
<br />
==Introdução==<br />
<br />
A modelagem numérica vem se tornando cada vez mais uma ferramenta indispensável para um engenheiro. Tal modelagem pode trazer informações importantes para entender como melhor abordar o desenvolvimento de um projeto, neste caso, um que envolva ondas. Nós, como futuros engenheiros físicos, pensamos em trazer um problema mais "concreto", de engenharia costeira e portuária, que pode ou não surgir em nossas vidas profissionais mas cujo método de solução certamente estará presente. <br />
Aqui será apresentado um modelo baseado em uma condição inicial e um perfil topográfico do local estudado que descreve a evolução temporal de uma onda.<br />
<br />
Inicialmente, para testarmos os diferentes métodos, utilizaremos a equação da onda em uma dimensão, que é uma equação diferencial parcial de segunda ordem, para modelarmos uma corda:<br />
<br />
<math> \frac{\partial^2 u}{\partial t^2} = c^2 \frac{\partial^{2} u}{\partial x^{2}} </math><br />
<br />
em que <math> u(x, t) </math> é o deslocamento vertical da corda, <math>c</math> é a velocidade de propagação da onda e <math> 0<x<L </math>, com <math> L </math> o comprimento da corda.<br />
<br />
Podemos reescrever a equação da seguinte forma:<br />
<br />
<math> \frac{\partial}{\partial t} \Big( \frac{\partial u}{\partial t} \Big) = c\frac{\partial}{\partial x} \Big( c\frac{\partial u}{\partial x} \Big) </math> .<br />
<br />
Uma vez que os métodos citados abaixo são para equações de primeira ordem, é necessário separarmos a equação em um sistema de equações, fazendo a substituição <math> v=\frac{\partial u}{\partial t} </math> e <math> w= c\frac{\partial u}{\partial x} </math>, de forma que:<br />
<br />
<math><br />
<br />
\begin{cases}<br />
\dfrac{\partial v}{\partial t}=c\dfrac{\partial w}{\partial x} \\<br />
<br />
\\<br />
<br />
c\dfrac{\partial v}{\partial x}=\dfrac{\partial w}{\partial t} \\<br />
<br />
\end{cases}<br />
<br />
</math><br />
<br />
Aqui usaremos <math>c=1</math>, sem perda de generalidade. As condições de contorno utilizadas aqui são <math> u(0, t) = u(L, t) = 0 </math> (pontas fixas), e as condições iniciais são <math> u(x,0) = \sin{\Big(\frac{\pi x}{L}\Big)} </math> e <math> \frac{\partial u}{\partial t}(x, 0) = 0 </math><br />
<br />
==Algoritmos==<br />
<br />
Apresentaremos aqui três abordagens diferentes para a solução da equação diferencial parcial apresentada, e após, seus respectivos erros associados. A respeito das discretizações, <math> j </math> corresponde à posição, e <math> n </math> representa o tempo.<br />
<br />
===Método de Lax-Friedrichs ===<br />
<br />
Esse método de ordem <math> \mathcal{O}(\Delta x^2, \Delta t)</math><ref name=recipes></ref> consiste em inicialmente discretizar as equações no esquema FTCS (Forward Time Centered Space), ou seja, discretizando a derivada temporal utilizando os tempos <math>n</math> e <math>n+1</math> e a derivada espacial através das posições <math>j-1</math> e <math>j+1</math>: <br />
<br />
<math> \frac{1}{\Delta t}(v_{j}^{n+1} - v_j^n) = \frac{1}{2\Delta x} (w_{j+1}^{n} - w_{j-1}^{n}) </math>, <br />
<br />
<br />
<math> \frac{1}{\Delta t}(w_{j}^{n+1} - w_j^n) = \frac{1}{2\Delta x} (v_{j+1}^{n} - v_{j-1}^{n})</math>.<br />
<br />
Resultando em<br />
<br />
<math> v_{j}^{n+1} = v_j^n + \frac{\Delta t}{2\Delta x}(w_{j+1}^{n} - w_{j-1}^{n}) </math>, <br />
<br />
<br />
<math> w_{j}^{n+1} = w_j^n + \frac{\Delta t}{2\Delta x}(v_{j+1}^{n} - v_{j-1}^{n}) </math>.<br />
<br />
Entretanto, ao se realizar uma análise de estabilidade de Von Neumann, conclui-se que esse método é instável<ref name=recipes>Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2007). "Numerical Recipes: The Art of Scientific Computing" (3rd ed.). New York: Cambridge University Press. ISBN 978-0-521-88068-8.</ref> . Para torná-lo estável, é necessário trocarmos os termos <math> v_j^n </math> e <math> w_j^n </math> por suas médias espaciais, chegando, assim, na expressão do esquema de Lax-Friedrichs:<br />
<br />
<br />
<math> v_{j}^{n+1} = \Big( \frac{ v_{j-1}^{n} + v_{j+1}^{n}}{2} \Big) + \frac{\Delta t}{2\Delta x}(w_{j+1}^{n} - w_{j-1}^{n}) </math>,<br />
<br />
<br />
<math> w_{j}^{n+1} = \Big( \frac{ w_{j-1}^{n} + w_{j+1}^{n}}{2} \Big) + \frac{\Delta t}{2\Delta x}(v_{j+1}^{n} - v_{j-1}^{n}) </math>.<br />
<br />
Para obtermos o valor de <math> u_{j}^{n+1} </math>, que é o nosso objetivo, discretizamos a equação <math> \frac{\partial u}{\partial t} = v</math><br />
<br />
<math> u_{j}^{n+1} = u_{j}^{n} + v_{j}^{n}\Delta t </math>,<br />
<br />
Embora as médias espaciais sejam necessárias para a estabilidade do método, elas introduzem um problema: surge um efeito chamado de dissipação numérica, ou seja, a amplitude da solução diminui com o tempo. Isso pode ser observado através da análise de Von Neumann ou de uma investigação da equação do esquema Lax-Friedrichs <ref name=recipes/> . Por este método, observa-se que ao inserirmos as médias, mudamos a equação original do problema, pois agora há também um termo do tipo difusivo (uma derivada segunda), com constante de difusão <math>\frac{(\Delta x)^2}{2\Delta t}</math> <ref name=recipes/>.<br />
<br />
Agora vamos unir todas as equações, utilizando, além da equação para <math>u</math> obtida acima, as discretizações de <math> v=\frac{\partial u}{\partial t} </math> e <math> w= \frac{\partial u}{\partial x} </math><br />
<br />
<math> v_j^n = \frac{1}{\Delta t} (u_{j}^{n+1} - u_{j}^{n})</math>,<br />
<br />
<br />
<math> w_j^n = \frac{1}{2\Delta x} (u_{j+1}^{n} - u_{j-1}^{n})</math>.<br />
<br />
Assim, obtemos<br />
<br />
<math> u_{j}^{n+1} = u_{j}^{n} + \Big( \frac{u_{j-1}^{n} + u_{j+1}^{n}}{2} \Big) - \Big( \frac{u_{j-1}^{n-1} + u_{j+1}^{n-1}}{2} \Big) + \frac{(\Delta t)^2}{4(\Delta x)^2} \Big( u_{j-2}^{n-1} -2u_{j}^{n-1} + u_{j+2}^{n-1}\Big) </math>.<br />
<br />
===Método de Leapfrog ===<br />
Neste método , de ordem <math> \mathcal{O}(\Delta x^2, \Delta t^2 )</math> <ref name=recipes></ref>, utilizamos os pontos intermediários na discretização das equações.<br />
<br />
Para <math>v</math> temos<br />
<br />
<math> \frac{1}{\Delta t}\bigg( v_{j}^{n+\frac{1}{2}} - v_{j}^{n-\frac{1}{2}}\bigg) = \frac{1}{\Delta x}\Big(w_{j+\frac{1}{2}}^{n} - w_{j-\frac{1}{2}}^{n}\bigg) \Rightarrow v_{j}^{n+\frac{1}{2}} = v_{j}^{n-\frac{1}{2}} + \frac{\Delta t}{\Delta x} \bigg(w_{j+\frac{1}{2}}^{n} - w_{j-\frac{1}{2}}^{n} \bigg) </math>,<br />
<br />
<br />
Para <math>w</math> temos<br />
<br />
<math> \frac{1}{\Delta x}\bigg(v_{j+1}^{n+\frac{1}{2}} - v_{j}^{n+\frac{1}{2}}\bigg) = \frac{1}{\Delta t}\bigg(w_{j+\frac{1}{2}}^{n+1} - w_{j+\frac{1}{2}}^{n} \bigg) \Rightarrow w_{j+\frac{1}{2}}^{n+1} = w_{j+\frac{1}{2}}^{n} + \frac{\Delta t}{\Delta x} \bigg(v_{j+1}^{n+\frac{1}{2}} - v_{j}^{n+\frac{1}{2}}\bigg) </math>,<br />
<br />
<br />
Para <math>u</math> temos<br />
<br />
<math> v_{j}^{n+\frac{1}{2}} = \frac{\partial u}{\partial t} \bigg|_{j}^{n+\frac{1}{2}} = \frac{1}{\Delta t} (u_{j}^{n+1} - u_j^n) \Rightarrow u_{j}^{n+1} = u_j^n + v_{j}^{n+\frac{1}{2}} \Delta t</math>,<br />
<br />
<br />
Utilizando o fato de que <br />
<br />
<math> v_{j}^{n+\frac{1}{2}} = \frac{1}{\Delta t} (u_{j}^{n+1} - u_j^n)</math>,<br />
<br />
<br />
<math>w_{j+\frac{1}{2}}^{n} = \frac{1}{\Delta x} (u_{j+1}^{n} - u_{j}^{n})</math>,<br />
<br />
chegamos na equação para <math>u_{j}^{n+1}</math><br />
<br />
<br />
<math> u_{j}^{n+1} = 2u_{j}^{n} - u_{j}^{n-1} + \frac{(\Delta t)^2}{(\Delta x)^2}(u_{j+1}^{n} - 2u_{j}^{n} + u_{j-1}^{n}) </math>,<br />
<br />
o que é equivalente a discretizarmos a equação da onda diretamente, utilizando que, para uma função <math>f(x)</math>,<br />
<br />
<math> \frac{d^2f}{dx^2}\bigg|_j = \frac{1}{(\Delta x)^2}(f_{j-1} - 2f_j + f_{j+1})</math>,<br />
<br />
sendo <math>j</math> a discretização em <math>x</math>.<br />
<br />
===Método de Lax-Wendroff de Dois Passos ===<br />
<br />
Para este método, de ordem <math> \mathcal{O}(\Delta x^2, \Delta t^2 )</math>, o primeiro passo consiste em calcular o valor de <math>v^{n+\frac{1}{2}}</math> e <math>w^{n+\frac{1}{2}}</math> utilizando o método de Lax-Friedrichs, para posterior cálculo de <math>v^{n+1}</math> e <math>w^{n+1}</math>:<br />
<br />
<math> v_{j+\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}( v_{j+1}^{n} + v_{j}^{n} ) + \frac{\Delta t }{2\Delta x} (w_{j+1}^{n} - w_{j}^{n}) </math>,<br />
<br />
<br />
<math> v_{j-\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}( v_{j}^{n} + v_{j-1}^{n} ) + \frac{\Delta t }{2\Delta x} (w_{j}^{n} - w_{j-1}^{n}) </math>,<br />
<br />
<br />
<math> w_{j+\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}( w_{j+1}^{n} + w_{j}^{n} ) + \frac{\Delta t }{2\Delta x} (v_{j+1}^{n} - v_{j}^{n}) </math>,<br />
<br />
<br />
<math> w_{j-\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}( w_{j}^{n} + w_{j-1}^{n} ) + \frac{\Delta t }{2\Delta x} (v_{j}^{n} - v_{j-1}^{n}) </math>,<br />
<br />
<br />
Agora, no tempo <math>n+1</math>:<br />
<br />
<math> v_{j}^{n+1} = v_{j}^{n} + \frac{\Delta t}{\Delta x} \bigg(w_{j+\frac{1}{2}}^{n+\frac{1}{2}} - w_{j-\frac{1}{2}}^{n+\frac{1}{2}}\bigg) </math>,<br />
<br />
<br />
<math> w_{j}^{n+1} = w_{j}^{n} + \frac{\Delta t}{\Delta x} \bigg(v_{j+\frac{1}{2}}^{n+\frac{1}{2}} - v_{j-\frac{1}{2}}^{n+\frac{1}{2}}\bigg) </math>,<br />
<br />
<br />
Agrupando as equações,<br />
<br />
<math> w_{j}^{n+1} = w_j^n + \frac{\Delta t}{\Delta x} \Bigg[\frac{1}{2}(v_{j+1}^{n} - v_{j-1}^{n}) + \frac{\Delta t}{2\Delta x} (w_{j+1}^{n} - 2 w_{j}^{n} + w_{j-1}^{n})\Bigg] </math>,<br />
<br />
<br />
<math> v_{j}^{n+1} = v_j^n + \frac{\Delta t}{\Delta x} \Bigg[\frac{1}{2}(w_{j+1}^{n} - w_{j-1}^{n}) + \frac{\Delta t}{2\Delta x} (v_{j+1}^{n} - 2 v_{j}^{n} + v_{j-1}^{n})\Bigg] </math>,<br />
<br />
E finalmente temos a equação unificada em u, utilizando a expressão para <math> v_{j}^{n+1} </math> e as discretizações de <math> v=\frac{\partial u}{\partial t} </math> e <math> w= \frac{\partial u}{\partial x} </math>, como obtidas na seção sobre o Método de Lax-Friedrichs:<br />
<br />
<math> u_{j}^{n+1} = u_{j}^{n} + v_{j}^{n}\Delta t </math><br />
<br />
<math> u_{j}^{n+1} = 2u_{j}^{n} - u_{j}^{n-1} + \frac{(\Delta t)^2}{2(\Delta x)^2}\Bigg[ \frac{1}{2}u_{j+2}^{n-1} - \frac{1}{2}u_{j-2}^{n-1} + u_{j+1}^{n} - u_{j+1}^{n-1} - 2u_{j}^{n} + u_{j}^{n-1} + u_{j-1}^{n} - u_{j-1}^{n-1}\Bigg] </math>,<br />
<br />
== Implementação==<br />
<br />
Ao implementarmos o método, surgem dois problemas: o problema não é auto-inicializável, pois para calcularmos o valor de <math>u_j^{1}</math>, necessitamos de <math>u_j^{-1}</math> (além de <math>u_j^{0}</math>). Entretanto, isto é rapidamente solucionado quando discretizamos a condição inicial de que <math> \frac{\partial u}{\partial t}(x, 0) = 0 </math>:<br />
<br />
<math>\frac{1}{2\Delta t} (u_j^{1} - u_j^{-1}) = 0 \Rightarrow u_j^{1} = u_j^{-1}</math>,<br />
<br />
ou seja, para o cálculo de <math>u_j^{-1}</math>, utilizamos que <math> u_j^{1} = u_j^{-1} </math>. Através do método de Leapfrog, dessa forma conseguimos isolar <math>u_j^{-1}</math>:<br />
<br />
<br />
<math> u_{j}^{-1} = 2u_{j}^{0} - u_{j}^{-1} + \frac{(\Delta t)^2}{(\Delta x)^2}(u_{j+1}^{0} - 2u_{j}^{0} + u_{j-1}^{0})</math>,<br />
<br />
<br />
<math> u_{j}^{-1} = u_{j}^{0} + \frac{(\Delta t)^2}{2(\Delta x)^2}(u_{j+1}^{0} - 2u_{j}^{0} + u_{j-1}^{0})</math>.<br />
<br />
Porém, isso não ocorre com os outros dois métodos, pois surgem termos em diferentes posições para o tempo <math>n=0</math> (de <math>u_{-2}^{0}</math>, <math>u_{-1}^{0}</math>, até <math>u_{2}^{0}</math>), sendo necessário resolvermos o sistema como um todo simultaneamente, ou seja, teríamos que inverter uma matriz. Por isso, foi utilizado o método de Leapfrog para o cálculo de <math>u_j^{-1}</math> em todos os métodos, devido a sua simplicidade.<br />
<br />
Além disso, são necessários valores de <math>u_{-1}^n</math> e de <math>u_{j_{max}+1}^n</math>, com <math>j_{max}</math> correspondendo a <math>x = L</math>, para calcularmos <math>u_1^{n}</math> e <math>u_{j_{max}}^{n}</math>, para qualquer tempo, utilizando os métodos de Lax-Wendroff de dois passos e Lax-Friedrichs. A solução a este problema foi utilizarmos <br />
<br />
<math>u_{-1}^n = -u_{1}^n </math><br />
<br />
<math>u_{j_{max}+1}^n = -u_{j_{max}-1}^n </math>.<br />
<br />
Pensando na condição inicial <math> u(x,0) = \sin{\Big(\frac{\pi x}{L}\Big)} </math>, e estendendo para além da corda (pensando no seno de <math> -\infty<x<\infty </math>), observamos que ela respeita as equações acima.<br />
<br />
== Solução e Análise de erros ==<br />
<br />
Primeiramente, apresentamos abaixo as soluções geradas pelos programas, em comparação com a solução analítica.<br />
<br />
[[Arquivo:Output_comp.png|frame|100px|center|Comparação da solução analítica com as soluções numéricas]]<br />
<br />
Aqui já podemos observar o que foi comentado na seção sobre o método de Lax-Friedrichs: devido à dissipação numérica inerente ao método, há uma diminuição da amplitude da onda ao longo do tempo, embora ela mantenha sua forma. Isso interferirá na análise do erro deste método, o que será apresentado na sequência.<br />
<br />
<br />
A partir do cálulo da solução analítica da equação da onda, podemos calcular quanto o valor obtido pelos métodos difere da solução real, o que leva a uma visualização do erro corrente em cada método de integração.<br />
Nesse caso, a solução é <math>u(x, t) = \cos{\Big(\frac{\pi t}{L}\Big)}\sin{\Big(\frac{\pi x}{L}\Big)}</math> <ref><br />
Weisstein, Eric W. "Wave Equation--1-Dimensional." From MathWorld--A Wolfram Web Resource; disponível em: [http://mathworld.wolfram.com/WaveEquation1-Dimensional.html]; último acesso em 26/11/2017</ref>.A análise de erros se torna mais evidente durante a escolha do parâmetro <math>k</math>, onde <math>k = \frac{\Delta t}{\Delta x}</math>. Valores grandes trazem pouca acurácia, e valores pequenos necessitam de muito poder de computação (tempo e dinheiro).<br />
<br />
O erro foi obtido efetuando uma média espacial, ou seja, o programa foi evoluindo até um tempo final <math>t_f = 100</math>, e, em <math>t=t_f</math>, foi feita uma média sobre o valor absoluto da diferença entre a solução analítica e a numérica. Aqui variamos o valor de <math>\Delta t</math>, fixando <math> \Delta x=1</math>, de forma que <math>k=\Delta t</math>.<br />
<br />
[[Arquivo:erro_dt.jpeg|frame|400px|center|Comparação do erro global entre os três métodos estudados com escala logarítimica em ambos os eixos]]<br />
<br />
Podemos observar que os erros crescem à medida que o parâmetro k se torna maior, como seria de se esperar. <br />
<br />
Além disso, sabendo a ordem do erro dos métodos, podemos determinar a inclinação da reta que melhor se ajusta aos pontos. Se um método tem erro de ordem <math>(\Delta t)^n</math>,<br />
<br />
<math>\varepsilon _l = \alpha (\Delta t)^n</math><br />
<br />
em que <math>\varepsilon _l</math> é o erro local, ou seja, o erro de um passo do método, e <math>\alpha</math> é uma constante. Assim, o erro global <math>\varepsilon _g</math>, ou seja, o erro após N passos, é dado por <br />
<br />
<math>\varepsilon _g = N\varepsilon _l= N\alpha (\Delta t)^n </math><br />
<br />
Como <math>N = \frac{t_f}{\Delta t}</math>, <math>\varepsilon _g = \frac{t_f}{\Delta t}\alpha (\Delta t)^n = \alpha t_f (\Delta t)^{n-1}</math>.<br />
Logo, se o erro local é de ordem <math>(\Delta t)^n</math>, o erro global (que é o que calculamos aqui) é de ordem <math>(\Delta t)^{n-1}</math>. Além disso, como utilizamos escala logarítmica para representar os resultados, a função do erro global se torna<br />
<br />
<math>\log{\varepsilon _g} = \log{\alpha t_f (\Delta t)^{n-1}} = \log{\alpha t_f} + (n-1)\log{(\Delta t)}</math><br />
<br />
Ou seja, a inclinação do gráfico do erro global é <math>n-1</math>.<br />
<br />
Observamos que se determinarmos a reta que melhor se ajusta às curvas dos métodos de Leapfrog e Lax-Wendroff, ela tem inclinação aproximada de 1, já que os métodos são de ordem <math>(\Delta t)^2</math>. Com relação ao gráfico do erro do método de Lax-Friedrichs, é mais complicado de fazer sua análise, uma vez que há o efeito de dissipação numérica, que se intensifica para valores menores de <math>\Delta t</math>. Podemos observar nos dados que o ponto de máximo na parte esquerda do gráfico corresponde a um erro de aproximadamente <math>0,63</math>, que é a média da solução analítica no tempo <math>t = t_f</math> (conforme solução analítica, a amplitude no tempo <math>t=100</math> é <math>\cos{\Big(\frac{100\pi}{49}\Big)} \approx 1</math>, e a média de <math>\sin{\Big(\frac{\pi x}{L}\Big)}</math> vale <math>\frac{2}{\pi} \approx 0.64</math>). Isso significa que, devido à dissipação, a solução numérica é praticamente 0 frente à solução analítica na parte esquerda do gráfico.<br />
<br />
== Simulação de Propagação de Onda 2D no Mar Dependente de Topografia ==<br />
<br />
O modelo mais simples para a propagação de onda dependente da topografia parte da equação da onda <ref>Lie, Knut-Andreas. "The Wave Equation in 1D and 2D". Dept. of Informatics, University of Oslo; disponível em: [http://www.uio.no/studier/emner/matnat/ifi/INF2340/v05/foiler/sim04.pdf]; último acesso em 23/10/2017.</ref> <ref>Hjorth-Jensen, Morten. Computational Physics, University of Oslo, 2009.</ref>, incluindo uma velocidade dependente da posição, da forma <math>gH(x,y,t)</math>.<br />
<br />
<math> \frac{\partial^2 u}{\partial t^2} = \Big( \frac{\partial}{\partial x} gH(x,y,t) \frac{\partial u}{\partial x}\Big) + \Big( \frac{\partial}{\partial y} gH(x,y,t) \frac{\partial u}{\partial y}\Big) - \frac{\partial^2 H}{\partial t^2} </math> ,<br />
<br />
<br />
Sendo <math>H(x,y,t)</math> uma representação da profundidade em águas calmas, <math>g</math> a aceleração da gravidade e <math>u(x, y, t)</math> a elevação da água em relação ao nível de águas calmas. Em uma situação real, pode-se obtê-la por mapeamento eletrônico do terreno por sistema de sonar. A dependência em <math>t</math> de <math>H(x,y,t)</math> permite um modelo no qual o terreno se modifica com o tempo. Isto é, pode-se observar o efeito que o deslocamento de placas tectônicas, deslizamentos, e até explosões provocam no comportamento das ondas na costa de um país e o reconhecimento de áreas críticas. Entretanto, utilizaremos aqui <math>H = H(x, y)</math>, sem dependência no tempo, e mudaremos as condições iniciais para a modelagem do problema, além de usarmos <math>g=1</math>, para simplificarmos as expressões.<br />
<br />
[[Arquivo:Grupo2_ondas1_imagem1.png |frame|500px|center| Exemplo de mapeamento de terreno sub - calota polar feito por AUV (''autonomous underwater vehicle'')<ref>Wadhams, M. J. Doble. "Digital terrain mapping of the underside of sea ice from a small AUV"; disponível em: DOI: 10.1029/2007GL031921 ; último acesso em 23/10/2017.</ref> ]]<br />
<br />
Como primeira abordagem visando uma análise em 2D, a integração da equação em 1D (mesmo sendo uma situação muito idealizada) já traz resultados interessantes. Pode ser mostrado que a velocidade da onda pode ser dada por <math>v=\sqrt{gH}</math>, para o caso em que <math>\lambda<<H</math>, o que é razoável para um tsunami, que tem um comprimento de onda da ordem de até centenas de quilômetros, com uma profundidade da ordem de quilômetros<ref name=lang>Silveira, F. L.; Varriale, M. C. "Propagação das ondas marítimas e dos tsunami". Caderno Brasileiro de Ensino de Física, V. 22, N. 2: P. 190-215, 2005.</ref>. Como o período da onde não se altera <ref name=lang></ref>, quanto menor a profundidade, menor a velocidade, e menor o seu comprimento de onda. Além disso, devido à conservação de energia, e supondo que a extensão da frente de onda não seja alterada, é obtida a chamada Lei de Green<ref name=lang></ref>:<br />
<br />
<math>\frac{A_2}{A_1} = \Bigg(\frac{H_1}{H_2}\Bigg)^{\frac{1}{4}}</math><br />
<br />
em que <math>A</math> é a amplitude da onda, e os índices representando dois meios. Logo, quanto menos profundo, maior a amplitude da onda. Esta informação por si só ajuda na construção de proteção contra quebra de ondas, pois é obtido o tamanho que as mesmas atingem. Nos gráficos abaixo podemos observar esses efeitos.<br />
<br />
[[Arquivo:top_visitados.jpg |frame|500x500px||center| Pontos visitados por simulação em 1D ]]<br />
<br />
E no caso em que simulamos uma fina camada de líquido, podemos ver a diminuição de velocidade da onda e o aumento de sua amplitude, especialmente no trecho mais à esquerda:<br />
<br />
<br />
[[Arquivo:camada_de_liquido.gif |frame|500px|center| Simulação em 1D de ondas perto da margem, com camada fina de líquido ]]<br />
<br />
É importante notar o quão poderosa é a integração de equações parciais na vida de um engenheiro.<br />
<br />
Estendendo o algoritmo de Leapfrog à situação 2D, obtemos, para uma condição inicial de uma gaussiana com média 0 e desvio padrão 1, tanto em <math>x</math> quanto em <math>y</math>, e <math>H(x,y) = 1</math>:<br />
<br />
[[Arquivo:02ss.gif |frame|500px|center|Simulação em 2D de ondas em águas com profundidade constante, visão de cima]]<br />
[[Arquivo:01ss.gif|frame|500px|center|Simulação em 2D de onda em águas com profundidade constante, visão em ângulo]]<br />
<br />
<br />
Podemos então, analisar como a mesma condição inicial se porta quando <math>H(x,y) = 1-e^{\frac{-(x^2 + y^2)}{2}}</math>, simulando uma elevação de terra:<br />
<br />
<br />
<br />
[[Arquivo:02cs.gif |frame|500px|center|Simulação em 2D de ondas em águas com gaussiana na origem, visão de cima]]<br />
[[Arquivo:01cs.gif|frame|500px|center|Simulação em 2D de onda em águas com gaussiana na origem, visão em ângulo]]<br />
<br />
Perfil da onda em sua diagonal:<br />
[[Arquivo:Output_12344.png|frame|500px|center|Perfil da onda em sua diagonal no tempo de simulação igual a 300]]<br />
<br />
==Códigos==<br />
<br />
===Equação da onda em uma dimensão===<br />
[[Lax-Friedrichs]]<br />
<br />
[[Lax-Wendroff de dois passos]]<br />
<br />
[[Leapfrog]]<br />
<br />
[[Erro: Lax-Friedrichs]]<br />
<br />
[[Erro: Lax-Wendroff de dois passos]]<br />
<br />
[[Erro: Leapfrog]]<br />
<br />
===Equação da onda em duas dimensões===<br />
[[Onda 2D: Leapfrog]]<br />
<br />
==Bibliografia==<br />
<references/></div>Heitor