Grupo2 - Ondas1: mudanças entre as edições
Linha 54: | Linha 54: | ||
<math> w_{j}^{n+1} = w_j^n + \frac{\Delta t}{2\Delta x}(v_{j+1}^{n} - v_{j-1}^{n}) </math>. | <math> w_{j}^{n+1} = w_j^n + \frac{\Delta t}{2\Delta x}(v_{j+1}^{n} - v_{j-1}^{n}) </math>. | ||
Entretanto, ao se realizar uma análise de estabilidade de Von Neumann, conclui-se que esse método é instável<ref>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 | 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: | ||
Linha 66: | Linha 66: | ||
<math> u_{j}^{n+1} = u_{j}^{n} + v_{j}^{n}\Delta t </math>, | <math> u_{j}^{n+1} = u_{j}^{n} + v_{j}^{n}\Delta t </math>, | ||
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 | 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) <ref name=recipes/>. | ||
Agora vamos unir todas as equações, utilizando, além da equação para <math> | 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> | ||
<math> v_j^n = \frac{1}{\Delta t} (u_{j}^{n+1} - u_{j}^{n})</math>, | <math> v_j^n = \frac{1}{\Delta t} (u_{j}^{n+1} - u_{j}^{n})</math>, |
Edição das 10h39min de 26 de novembro de 2017
Integrantes do grupo: Rodrigo Zamin Ferreira (262692), Leonardo Xavier Rodrigues (262696), Maurício Gomes de Queiroz (264889) e Rodrigo Lopes de Sousa Silva (262705)
Introdução
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. 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.
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:
em que é o deslocamento vertical da corda, é a velocidade de propagação da onda e , com o comprimento da corda.
Admitindo ,
.
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 e , de forma que:
As condições de contorno utilizadas aqui são (pontas fixas), e as condições iniciais são e
Algoritmos
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, corresponde à posição, e representa o tempo.
Método de Lax-Friedrichs -
Esse método consiste em inicialmente discretizar as equações no esquema FTCS (Forward Time Centered Space), ou seja, discretizando a derivada temporal utilizando os tempos n e n+1 e a derivada espacial através das posições j-1 e j+1:
,
.
Resultando em
,
.
Entretanto, ao se realizar uma análise de estabilidade de Von Neumann, conclui-se que esse método é instável[1] . Para torná-lo estável, é necessário trocarmos os termos e por suas médias espaciais, chegando, assim, na expressão do esquema de Lax-Friedrichs:
,
.
Para obtermos o valor de , que é o nosso objetivo, discretizamos a equação
,
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 [1] . 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) [1].
Agora vamos unir todas as equações, utilizando, além da equação para obtida acima, as discretizações de e
,
.
Assim, obtemos
.
Método de Leapfrog -
Neste método utilizamos os pontos intermediários na discretização das equações.
Para temos
,
Para temos
,
Para temos
,
Utilizando o fato de que
,
,
chegamos na equação para
,
o que é equivalente a discretizarmos a equação da onda diretamente, utilizando que, para uma função ,
,
sendo a discretização em .
Método de Lax-Wendroff de Dois Passos -
O primeiro passo consiste em calcular o valor de e utilizando o método de Lax-Friedrichs, para posterior cálculo de e :
,
,
,
,
Agora, no tempo :
,
,
Agrupando as equações,
,
,
E finalmente temos a equação unificada em u, utilizando a expressão para e as discretizações de e , como obtidas na seção sobre o Método de Lax-Friedrichs:
,
Programas
Ao implementarmos o método, surgem dois problemas: o problema não é auto-inicializável, pois para calcularmos o valor de , necessitamos de (além de ). Entretanto, isto é rapidamente solucionado quando discretizamos a condição inicial de que :
,
ou seja, para o cálculo de , utilizamos que . Para o método de Leapfrog, dessa forma conseguimos isolar , não havendo nenhum outro termo no tempo :
,
.
Porém, isso não ocorre com os outros dois métodos, pois surgem termos em diferentes posições para o tempo (de , , até ), 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 em todos os métodos, devido a sua simplicidade.
Além disso, são necessários valores de e de , com correspondendo a , para calcularmos e , para qualquer tempo, utilizando os métodos de Lax-Wendroff de dois passos e Lax-Friedrichs. A solução a este problema foi utilizarmos
.
Pensando na condição inicial , e estendendo para além da corda (pensando no seno de ), observamos que ela respeita as equações acima.
Análise de erros
Primeiramente, segue embaixo as soluções geradas pelos programas comparadas com a solução analítica, em seguida será mostrada a análise de erros. O gráfico foi gerado visando resolver um problema de uma corda presa nas pontas, com uma condição inicial em formato de seno.
A análise de erros se torna mais evidente durante a escolha do parâmetro , onde . Valores grandes trazem pouca acurácia, e valores pequenos necessitam de muito poder de computação (tempo e dinheiro).
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. Nesse caso, a solução é .
O erro aqui foi obtido fazendo uma média, ou seja,a soma do erro de cada ponto discretizado sobre o total de pontos, no tempo final VALOR AQUI.
Podemos observar a ordem com que os erros crescem à medida que o parâmetro k se torna maior. Lembrando que os valores da constante são determinados pela discretização do espaço e do tempo.
Aqui variamos o valor de , fixando
Observamos que se determinarmos a reta que melhor se ajusta às curvas dos métodos de Leapfrog e Lax-Wendroff, ela tem inclinação aproximadamente 1, já que a inclinação dá a ordem do erro global (já que fizemos o cálculo do erro após muitos passos transcorridos), que é sempre uma ordem menor do que o erro local (erro de um passo).
Simulação de Propagação de Onda 2D no Mar Dependente de Topografia
O modelo mais simples para a propagação de onda dependente da topografia parte da equação da onda [1], incluindo um termo da forma .
,
Sendo uma representação da profundidade em águas calmas. Em uma situação real, pode-se obtê-la por mapeamento eletrônico do terreno por sistema de sonar.
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. Podemos observar, por exemplo, que a medida que a profundidade diminui, a amplitude da onda e sua frequência crescem [5]. 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.
É importante notar o quão poderosa é a integração de equações parciais na vida de um engenheiro.
A dependência em de 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.
Estendendo o algoritmo do Leap-Frog à situação 2D, obtemos, para uma dada condição inicial e , onde é uma constante de valor igual a 1 e H não depende do tempo, por questão de simplicidade:
Podemos então, analisar como a mesma condição inicial se porta quando descreve uma gaussiana na origem:
Perfil da onda em sua diagonal:
Bibliografia
1"The Wave Equation in 1D and 2D," por Knut–Andreas Lie, Dept. of Informatics, University of Oslo; disponível em: [1]; Último acesso em 23/10/2017.
2"Digital terrain mapping of the underside of sea ice from a small AUV," por Wadhams, M. J. Doble; disponível em: DOI: 10.1029/2007GL031921 ; Último acesso em 23/10/2017.
3 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.
4 "Métodos Computacionais da Física C - Aula 2 - 2016/1" por Heitor C. M. Fernandes, Instituto de Física, UFRGS; Último acesso em 23/10/2017.