MNE 736: Introdu¸
c˜
ao aos M´
etodos Aprox. para Engenharia
RELAT ´
ORIO II
discente: Sara Coelho da Silva
docente: Dr. Jos´e Antonio Marques Carrer
PPGMNE: Programa de P´os Gradua¸c˜ao em M´etodos Num´ericos, UFPR. sarasilva@utfpr.edu.br
O PROBLEMA DA VIGA COM CARGA EM UMA DAS EXTREMIDADES 07 de Setembro de 2014
INTRODUC¸ ˜AO
Como j´a citado no relat´orio I, a equa¸c˜ao da onda governa uma grande variedade de fenˆomenos ondulat´orios. Como exemplo, podemos citar ondas eletromagn´eticas, ondas de ´agua, fluxo su-persˆonico, ac´ustica, ondas el´asticas em cordas vibrantes e membranas.
Neste estudo analisaremos a equa¸c˜ao da onda que rege a vibra¸c˜ao de uma viga engastada na sua extremidade inferior(ou `a direita) com uma carga de apoio em sua extremidade superior(ou `
a esquerda.)
Figura 1: Problema da viga engastada em uma extremidade
A amplitude da vibra¸c˜ao sofrida por este viga ser´a descrita por:
∂u ∂x2 = 1 c2 ∂u ∂t2 (1)
satisfazendo as condi¸c˜oes:
u(0, t) = 0 (a) : A viga est´a engastada na extremidade `a direita. u(x, 0) = 0 (b) : No instante inicial n~ao h´a nenhuma oscila¸c~ao. ut(x, 0) = 0 (c) : A velocidade inicial ´e nula, uma vez que u(x, 0) = 0.
onde:
• u(x, t) ´e a amplitude de oscila¸c˜ao da viga na posi¸c˜ao x e no instante t;
• c ´e a velocidade de propaga¸c˜ao da onda(vibra¸c˜ao) causada pela carga p(L, t) = 1.
• L ´e o comprimento da corda.
A dedu¸c˜ao da equa¸c˜ao da onda, aplicando as leis de Newton ao movimento de um segmento de corda, j´a foi apresentada no RELAT ´ORIO I.
Portanto, neste trabalho somente explicitaremos a solu¸c˜ao anal´ıtica do problema proposto e obteremos pelo M.D.F implementando em Fortran, a solu¸c˜ao num´erica.
Por fim faremos uma an´alise gr´afica comparativa (2d e 3d) da solu¸c˜ao num´erica obtida com a solu¸c˜ao anal´ıtica descrita na literatura.
1. A solu¸c˜ao anal´ıtica para o problema proposto
Para o problema j´a proposto e modelado pela equa¸c˜ao (1) desejarmos obter u(x, t), ou seja, saber como se comporta a viga em cada instante t, usando as condi¸c˜oes impostas anteriormente.
A solu¸c˜ao anal´ıtica para este problema est´a descrita nas disserta¸c˜oes [9] e [8] e ´e dada por:
u(x, t) = x + 8L π2 ∞ X n=1,3,5,7,... (−1)n n2 .sen nπx 2L . cos nπct 2L (2)
Conforme [5] podemos utilizar o M´etodo da Separa¸c˜ao das Vari´aveis explicitado no RE-LAT ´ORIO I para obtermos a solu¸c˜ao dada pela Equa¸c˜ao (2).
2.1 Implementa¸c˜ao Computacional da Solu¸c˜ao Anal´ıtica
Para implementa¸c˜ao da solu¸c˜ao anal´ıtica da Equa¸c˜ao da Onda renomeamos u(x, t) para f (x, t) e utilizamos Fortran 90.
Resumidamente realizou-se os seguintes procedimentos:
1- Abertura de arquivo de dados:
2- C´alculo dos incrementos: dx = L/(1.0d0 ∗ n) e dt = T /(1.0d0 ∗ m)
3- C´alculo das constantes adimensionais: ρ = cdt
dx, k1= ρ
2, k
2 = 2.(1 − k1).
4- C´alculo do n´umero de linhas e colunas a serem considerados: x = n + 1 e y = m + 1.
5- Aloca¸c˜ao da matriz que abriga os termos da s´erie que representa f (x, t):
allocate(termo(x, y))
6- Aloca¸c˜ao da matriz que abriga a soma dos termos da s´erie que representa f (x, t):
allocate(soma(x, y))
7- Aloca¸c˜ao da matriz que abriga a solu¸c˜ao anal´ıtica f (x, t): allocate(f(x,y))
8- Chamar a subrotina que calcula a solu¸c˜ao anal´ıtica f (x, t) : CALL SOLUCAO.ANALITICA
9- Implementa¸c˜ao da subrotina SOLUCAO.ANALITICA:
Da equa¸c˜ao (2) temos: u(x, t) = x + 8L π2 ∞ X n=1,3,5,7,... (−1)n n2 .sen nπx 2L . cos nπct 2L (2)
Como discretizamos x e t faremos: 1 ≤ i ≤ x e 1 ≤ j ≤ y para obtermos f (x, t) = u(x, t) somente nos pontos da malha. Ou seja,
u(x, t) = u((i − 1)dx, (j − 1)dt) = u(i, j) = f (i, j) (3) Aproximaremos (2) utilizando uma soma de 500 termos, da seguinte maneira:
• 1 ≤ i ≤ x : do i = 1, x • 1 ≤ j ≤ y : do j = 1, y • 1 ≤ k ≤ 1000, s = (2k − 1) = 1, 3, 5, 7, . . .. e faremos: termo(i, j) = (−1) s s2 .sen sπ(i − 1)dx 2L . cos sπc(j − 1)dt 2L (4)
soma(i, j)=soma(i, j)+termo(i, j)
Assim, iniciamos um ciclo duplo(do i = 1, x; do j = 1, y), para explorar cada ponto (i, j) que representa um ponto (x, t) da malha. Em seguida, executamos um ciclo interno (s = 1, 1000, 2) e obtemos:
f (i, j) = (i − 1)dx +8L
10 - Implementa¸c˜ao da subrotina IMPRIME-RESULTADOS:
Com esta subrotina, os valores obtidos na subrotina SOLUCAO.ANALITICA, s˜ao armaze-nados em um arquivo, para posterior visualiza¸c˜ao geom´etrica tridimensional:
(i − 1) ∗ DX, (j − 1) ∗ DT, f (i, j)
Para possibilitar a visualiza¸c˜ao gr´afica necessitamos de um aplicativo construtor de gr´aficos. Neste trabalho, utilizamos o gnuplot 4.6.
Usaremos um “script” apropriado editado no bloco de notas que possibilitar´a ao aplicativo gr´afico a representa¸c˜ao geom´etrica dos pontos j´a armazenados:
Figura 3: “Script” para visualiza¸c˜ao 3d da solu¸c˜ao anal´ıtica
Este “script” ´e chamado no programa implementado em FORTRAN, usando a seguinte des-cri¸c˜ao:
VER = SYSTEM (”Wgnuplot comandosanalitica3d.txt”)
Obtemos assim, a representa¸c˜ao 3d da solu¸c˜ao anal´ıtica, que ser´a comparada com a solu¸c˜ao num´erica na se¸c˜ao posterior.
No anexo ao relat´orio segue a implementa¸c˜ao completa e sequencial em FORTRAN, das solu¸c˜oes anal´ıtica e num´erica.
Figura 4: Solu¸c˜ao Anal´ıtica da Equa¸c˜ao da Onda
3. Solu¸c˜ao Num´erica da Equa¸c˜ao da Onda
Para obten¸c˜ao da solu¸c˜ao num´erica da Equa¸c˜ao da Onda aplicaremos o M´etodo das Di-feren¸cas Finitas (M.D.F)j´a descrito no RELAT ´ORIO I.
Nosso objetivo ´e obter a discretiza¸c˜ao do problema modelado pela Equa¸c˜ao (1):
∂2u ∂x2 = 1 c2 ∂2u ∂t2
satisfazendo as condi¸c˜oes:
u(0, t) = 0 (a) u(x, 0) = 0 (b) ut(x, 0) = 0 (c) ux(L, t) = 1 = p(L, t) (d) 3.1 Discretiza¸c˜ao
Vamos subdividir o trecho considerado no eixo x, o intervalo [0, L] = [0, 1], em se¸c˜oes espa¸cadas de 0.2 m, (∆x = 0.2) e para an´alise temporal utilizaremos T = 8 s seccionado em 800 subintervalos de comprimento ∆t = 0.01.
Obtemos assim, n = 5 subintervalos no eixo x e m = 800 subintervalos no eixo t e o nosso dom´ınio deixa de ser cont´ınuo (x, t) e passa a ser discreto, constitu´ıdo somente dos x.y = (n + 1).(m + 1) = 6 × 801 = 4806 pontos da malha.
Figura 5: Discretiza¸c˜ao do Dom´ınio em malha de 4806 n´os.
Deste modo, cada ponto (x, t) da malha ´e descrito por um n´o (i, j) : 1 ≤ i ≤ n + 1, 1 ≤ j ≤ n + 1. Ou seja,
(x, t) = ((i − 1)∆x, (j − 1)∆y).
3.2 Esquema Expl´ıcito
Para simplificarmos a nota¸c˜ao, adotaremos:
u(xi, tj) = ui,j, u(xi+ ∆x, tj) = ui+1,j, u(xi− ∆x, tj) = ui−1,j
E de maneira an´aloga,
u(xi, tj+ ∆t) = ui,j+1, u(xi, yj− ∆t) = ui,j−1
Assim, aplicando o M´etodo das Diferen¸cas Finitas, podemos escrever:
∂2u ∂t2 = uj+1i − 2uji + uj−1i ∆t2 (5) ∂2u ∂x2 = uji+1− 2uji + uji−1 ∆x2 (6)
Substituindo (5) e (6) em (1), resulta: uji+1− 2uji + uji−1 ∆x2 = 1 c2 uj+1i − 2uji + uj−1i ∆t2 ! (7)
Resolvendo (7) para uj+1i , escrevemos:
uj+1i = c.∆t ∆x 2 uji+1− 2uji + ui−1j + 2uji − uj−1i (8) Fazendo ent˜ao k1 = c.∆t ∆x 2
e k2 = 2.(1 − k1), obtemos finalmente a discretiza¸c˜ao da
Equa¸c˜ao da Onda:
uj+1i = k1.uji+1+ k2.uji + k1.uji−1− u j−1
i (9)
satisfazendo as condi¸c˜oes j´a impostas:
u(0, t) = uj1= 0 , (a)Condi¸c˜ao de Dirichlet u(x, 0) = 0 ⇐⇒ u1i = 0, ut(x, 0) = 0 ⇐⇒ ut(i, 1) = 0 (b)Condi¸c˜oes Iniciais
ux(L, t) = p ⇐⇒ ux(n + 1, j) = p (c)Condi¸c˜ao de Neumann
Em [1] e [4] a discretiza¸c˜ao dada em (9) ´e dita discretiza¸c˜ao por Esquema Expl´ıcito.
Observa¸c˜oes:
1. Para os n´os (1, j) e (i, 1) utilizaremos as condi¸c˜oes dadas em (a) e (b) respectivamente:
(
uj1= 0, 1 ≤ j ≤ m + 1 u1
i = 0, 2 ≤ i ≤ n + 1
Figura 7: Pontos de Fronteira
2. Para obter u2i = uj+1i , temos j = 1 em (9). No entanto, se empregar a equa¸c˜ao (9) para j = 1, devemos ter uj−1i = u0i e o n´o (i, 0) n˜ao est´a na malha discretizada: (1 ≤ i ≤ n + 1) × (1 ≤ j ≤ m + 1) .
Figura 8: Pontos abaixo da malha
Para o c´alculo de u0
i devemos empregar a Condi¸c˜ao de Inicial dada em (b):
∂u ∂t|t=0= 0 ⇐⇒ u2i − u0 i 2.∆t = 0 ⇒ u 0 i = u2i (10)
Assim, substituindo (10) em (9), obtemos uma nova equa¸c˜ao: u2i = k1.u1i+1+ k2.u1i + k1u1i−1− u 2 i (11) ou ainda, u2i = k1.u 1 i+1+ k2u1i + k1u1i−1 2 (12)
3. Se fizermos i = n + 1 em (9) necessitamos do n´o (i + 1, j) = (n + 2, j) que est´a fora da malha.
Figura 9: Pontos `a esquerda da malha
Neste caso, para o c´alculo de uj+1n+2 devemos empregar a Condi¸c˜ao de Neumann dada em (c): ux(n + 1, k) = p ⇐⇒ ukn+2− uk n 2∆x = p ⇐⇒ u k n+2= 2p∆x + ukn (13)
Portanto, substituindo i = n + 1 em (9) e usando (13) para k = j + 1 resulta:
uj+1n+1 = k1.(2p∆x + ujn) + k2ujn+1+ k1ujn− u j−1 n+1 (14) ou ainda, ujn+1= 2k1.ujn+ k2ujn+1− u j−1 n+1+ 2pk1∆x (15)
4. Para o n´o (n + 1, 1) em particular, devemos empregar (15) e lembrar que: u0n+1 = u2n+1. Deste modo, obtemos:
u2n+1= 2k1.u1n+ k2u1n+1− u 2
ou seja, u2n+1 = 2k1.u 1 n+ k2u1n+1+ 2pk1∆x 2 (17) Simplificando (16), resulta: u2n+1 = k1.u1n+ k2 2u 1 n+1+ pk1∆x (18) Resumindo, uj1 = 0, 1 ≤ j ≤ m + 1 u1i = 0, 2 ≤ i ≤ n + 1 u2i = k1.u 1 i+1+ k2u1i + k1u1i−1 2 , 2 ≤ i ≤ n u2n+1= k1.u1n+ k2 2 u 1 n+1+ pk1∆x uj+1i = k1.uji+1+ k2.uji + k1.uji−1− uj−1i , 2 ≤ j ≤ m, 2 ≤ i ≤ n ujn+1= 2k1.ujn+ k2ujn+1− u j−1 n+1+ 2pk1∆x, 2 ≤ j ≤ m.
3.3 Estabilidade Num´erica
Como j´a mencionada no RELAT ´ORIO I, os esquemas expl´ıcitos s˜ao condicionalmente est´aveis, pois necessitam de um passo de tempo menor que um certo passo de tempo cr´ıtico para que o algoritmo evolua corretamente sem divergir.
Para teste da estabilidade da uma solu¸c˜ao num´erica de uma equa¸c˜ao hiperb´olica utiliza-se a an´alise de von Neumann descrita em [4]:
∆t ≤ ∆x v ⇐⇒
v.∆t
∆x ≤ 1 (19)
onde o produto v.(∆t) representa a distˆancia percorrida por u durante um intervalo de tempo ∆t, e essa distˆancia deve ser sempre menor que o espa¸camento ∆x da malha.
Para o modelo hiperb´olico proposto neste trabalho:
∂2u ∂x2 = 1 c2 ∂2u ∂t2
a velocidade de propaga¸c˜ao da onda ´e dada pela constante c. Portanto, o crit´erio de estabi-lidade da solu¸c˜ao num´erica da equa¸c˜ao da onda ser´a dado por:
Co= c.
∆t ∆x ≤ 1
onde:
Co: n´umero de Courant;
Co ≤ 1 : Condi¸c˜ao CFL, representada pelas iniciais dos sobrenomes dos autores que
pri-meiro a enunciaram (Courant, Friedrichs e Lewy).
Na implementa¸c˜ao num´erica descrita na se¸c˜ao anterior adotamos:
∆x = Ln = 1 5 = 0.2 ∆t = mT = 8 800 = 0.01 c = 1 Assim, c.∆t ∆x = 0.01 0.2 = 0.05 ≤ 1.
Logo, a estabilidade da solu¸c˜ao num´erica est´a garantida.
3.4 Implementa¸c˜ao da Solu¸c˜ao Num´erica em Fortran
Para obten¸c˜ao da solu¸c˜ao num´erica do problema proposto implementou-se um programa em FORTRAN, onde resumidamente realizou-se os seguintes procedimentos:
1- Abertura de arquivo de dados apresentada na figura (4);
2- C´alculo dos incrementos: dx = L/(1.0d0 ∗ n) e dt = T /(1.0d0 ∗ m)
3- C´alculo das constantes adimensionais: ρ = cdt
dl , k1= ρ
2, k
2 = 2.(1 − k1).
4- C´alculo do n´umero de linhas e colunas a serem considerados na malha: x = n + 1 e y = m + 1.
5- Aloca¸c˜ao das matrizes u(x, y) e e(x, y) para armazenar a solu¸c˜ao num´erica e o erro come-tido na aproxima¸c˜ao.
- a condi¸c˜ao de contorno: u(1, j) = 0;
- a condi¸c˜ao inicial: u(i, 1) = 0
- os pontos u(i, 2) para i 6= n + 1
- o ponto u(n + 1, 2)
- os pontos u(i, j) para j > 2, i 6= n + 1
- o ponto u(n + 1, j) para j > 2
Figura 10: Subrotina em FORTRAN para implementa¸c˜ao da Solu¸c˜ao Num´erica
7- Implementa¸c˜ao de subrotina para c´alculo do erro cometido na aproxima¸c˜ao:
e(i, j) = |u(i, j) − h(i, j)|
8- Implementa¸c˜ao da subrotina IMPRIME-RESULTADOS para armazenamento das colunas utilizadas na representa¸c˜ao gr´afica tridimensional:
A Figura 11 traz o gr´afico da solu¸c˜ao num´erica obtida.
Figura 11: Solu¸c˜ao Num´erica da Equa¸c˜ao da Onda
J´a na Figura 12 podemos observar que o erro absoluto da aproxima¸c˜ao ´e inferior a 0.3.
9 - Implementa¸c˜ao da subrotina Solu¸c˜ao-2D para compara¸c˜ao gr´afica entre as solu¸c˜oes num´erica e analitica em um ponto x fixo na viga.
Figura 13: Compara¸c˜ao entre as solu¸c˜oes num´erica e anal´ıtica para x = L
Note que o comportamento oscilat´orio ´e descrito pelas duas solu¸c˜oes. No entanto, a solu¸c˜ao anal´ıtica ´e mais suave que a solu¸c˜ao num´erica.
J´a no meio da barra, em x = L/2 podemos observar uma melhor aproxima¸c˜ao entre a solu¸c˜ao num´erica e anal´ıtica, conforme indica a figura (14).
Figura 14: Compara¸c˜ao entre as solu¸c˜oes num´erica e anal´ıtica para x = L/2
Observa-se ainda que o erro se torna maior nos pontos (L, t) onde u(L, t) atinge amplitude m´axima ou m´ınima. Nos demais instantes de tempo, as solu¸c˜oes apresentam uma boa con-cordˆancia.
Figura 15: Erro cometido na aproxima¸c˜ao por M.D.F
Na an´alise do erro, obtemos erro absoluto ´e inferior a 0.3, o que indica a efic´acia do M´etodo das Diferen¸cas Finitas.
No ANEXO deste trabalho segue a implementa¸c˜ao completa do problema em Fortran.
Considera¸c˜oes finais
Neste trabalho, pudemos comprovar a efic´acia do M´etodo das Diferen¸cas Finitas (M.D.F) no estudo do Problema da Onda Unidimensional. Mesmo adotando aproxima¸c˜oes t˜ao simples (diferen¸cas finitas) e o Esquema Expl´ıcito, que ´e condicionalmente est´avel, obtemos uma boa precis˜ao comparada a solu¸c˜ao anal´ıtica.
Sabe-se que a estabilidade foi garantida pela escolha adequada dos passos no tempo e espa¸co, de modo que o Crit´erio de Courant foi verificado.
Os aspectos f´ısicos do problema tamb´em foram mantidos, uma vez que o objetivo era des-crever a oscila¸c˜ao de cada ponto da viga em fun¸c˜ao do tempo.
Quanto a implementa¸c˜ao do problema, o programa FORTRAN se mostrou eficiente e de r´apida execuca¸c˜ao, mesmo para uma malha bem refinada, desde que atendido o Crit´erio de Estabilidade. No entanto, utilizando dados que n˜ao satisfaziam a condi¸c˜ao c∆t
∆x ≤ 1 o programa apontava problema de execuca¸c˜ao.
A implementa¸c˜ao num´erica possibilitou uma r´apida verifica¸c˜ao do crit´erio de estabilidade estabelecido, pois foi feita de modo que os passos de tempo e espa¸co eram inseridos pelo usu´ario e em seguida emitia-se um aviso da garantia ou n˜ao da estabilidade da solu¸c˜ao. Pudemos ob-servar que, quanto menor o n´umero de Courant, menor ´e o erro absoluto. A implementa¸c˜ao inicial do arquivo de dados possibilitou a imediata varia¸c˜ao destes. Deste modo, pudemos testar diferentes dados de entrada.
Outra ferramenta que se mostrou muito eficaz foi a implementa¸c˜ao gr´afica. Adotando valores adequados, a visualiza¸c˜ao gr´afica das solu¸c˜oes e do erro mostrou-se muito ´util na constata¸c˜ao da efic´acia do m´etodo adotado.
Referˆ
encias
[1] ABBOTT, Michael B. Computacional Fluid Dynamics: an introduction for engineers. New York: Longman Scientific Technical, 1931.
[2] DIAS, Nelson L. Obten¸c˜ao de uma Solu¸c˜ao Anal´ıtica da Equa¸c˜ao de Difus˜ao-Advec¸c˜ao com Decaimento de Primeira Ordem pelo M´etodo da Transforma¸c˜ao de Similaridade Generalizada. RBRH - Revista Brasileira de Recursos H´ıdricos, Rio de Janeiro, v. 8, n.1, p. 181 a 188, Mar. 2003.
[3] FISCHER, H. B.; LIST, E. J.; KOH, R. C. Y.; IMBERGER, J.; BROOKS, N. H. Mixing in Inland and Coastal Waters.New York: Academic Press, 1979.
[4] FORTUNA, Armando de Oliveira. T´ecnicas Computacionais para Dinˆamica dos Fluidos: Conceitos B´asicos e Aplica¸c˜oes. 2a. Edi¸c˜ao. S˜ao Paulo: Edusp, 2012.
[5] GREENBERG, Michael D. Advanced Engineering Mathematics. 2a. Edi¸c˜ao. New Jersey: Prentice Hall, 1998.
[6] SMITH, G.D. Numerical solutions of partial differential equations: finite difference methods. 3a. Edi¸c˜ao. New York: Oxford University Press Inc., 1985.
[7] WROBEL, Carlos;et.all. M´etodos Num´ericos em Recursos H´ıdricos. Rio de Janeiro: ABRH, 1989.
[8] THOALDO, Daniele Cristina. Formula¸c˜ao Unidimensional do M´etodo dos Elementos de Contorno para a Equa¸c˜ao da Onda com solu¸c˜ao fundamental independente do tempo. 2011. 49 f. Disserta¸c˜ao (Mestrado em M´etodos Num´ericos em Engenharia) - PPGMNE,Setor de Ciˆencias Exatas e Setor de Tecnologia, UFPR, Curitiba, 2011.
[9] RODRIGUES, Vivianne L. C. Propaga¸c˜ao de ondas unidimensionais por meio de formula¸c˜ao dependente do tempo do M´etodo dos Elementos de Contorno. 2012. 68 f. Disserta¸c˜ao (Mes-trado em M´etodos Num´ericos em Engenharia) - PPGMNE,Setor de Ciˆencias Exatas e Setor de Tecnologia, UFPR, Curitiba, 2012.