Baixe o app para aproveitar ainda mais
Prévia do material em texto
1/4 Universidade Federal do Rio de Janeiro Escola Politécnica Departamento de Recursos Hídricos e Meio Ambiente EEH591 - MODELAGEM HIDRÁULICA & AMBIENTAL Quinto Trabalho Entrega: 16/05/2012 (pode ser feito em grupos de até 3 alunos) Devolução: 06/06/12 Questão 1: Escreva uma subrotina para resolver sistemas de equações tri-diagonais, usando o algoritmo de dupla varredura (double sweep), apresentado na seção 4.6.3 do livro Computational Fluid Dynamics (Abbott & Basco). [Dica: use precisão dupla.] Veja na página 3 um exemplo escrito em FORTRAN. Atenção: no exemplo, os vetores A e C estão tro- cados em relação ao que consta no capítulo 4 do livro. Questão 2: a.) Resolva os problemas 7 e 10 do capítulo 4 do livro Computational Fluid Dynamics. b.) Repita o problema 7 indicado na questão 2, com as seguintes modificações: i. Use o esquema implícito de Crank-Nicholson ( = ½). ii. Idem. Use a subrotina da questão 1 para computar. iii. Idem. iv. Compare e comente os resultados das duas versões do problema 7. Questão 3: Suponha um reator, para tratamento de efluentes de uma indústria, composto por um tanque com barreiras alternadas, como indicado no esquema abaixo, onde Ca e Ce são as concentrações de afluxo e de efluxo. Neste tipo de tanque, o transporte do contaminante em geral é predominantemente advectivo. A re- moção de contaminantes ocorre pela absorção feita pelas raízes de aguapé1. Um modelo matemático 1D para o transporte advectivo-difusivo de contaminantes neste tanque, incluindo o processo de re- moção de contaminantes, pode ser escrito como: 2 2 C C C u D kC t x x (1) Onde C é a concentração do contaminante, u=Q/A é a velocidade média do fluxo Q no canal com seção hidráulica A, e k é a constante de remoção. Considerando: Q = 0.1 m³/s ; A = 2.0 m² ; tempo de percurso = 2.0 horas Ca = 100 mg/l ; T90 = 2.5 horas; considere x = 4 m. Calcule analiticamente (sem difusão) o valor da concentração no efluente (Ce), e depois calcule através de modelos numéricos (com a difusão) usando as seguintes alternativas: 1 Veja http://www.jardimdeflores.com.br/CURIOSIDADES/A24aguap%E9.htm Ca Ce 2/4 a. Esquema numérico explícito, progressivo no tempo. Para derivadas espaciais, use derivada à ré de 1ª ordem no termo advectivo e centrado no termo difusivo. Considere: 1. Número de Courant = 1 e D = 0,001 m²/s 2. Número de Courant = 1 e D = 0,010 m²/s 3. Número de Courant = 1 e D = 0,100 m²/s 4. Número de Courant = 1 e D = 1,000 m²/s b. Esquema numérico implícito, progressivo no tempo, centrado em n+½ (Cranck Nicholson). Para derivadas espaciais, use derivada à ré de 2ª ordem no termo advectivo e centrado no termo difusi- vo. Considere pelo meonso os casos abaixo: 1. Número de Courant = 2 e D = 0,001 m²/s 2. Número de Courant = 3 e D = 0,010 m²/s 3. Número de Courant = 4 e D = 0,100 m²/s 4. Número de Courant = 5 e D = 1,000 m²/s Para o modelo numérico, faça um programa e use a subrotina da questão 1. Comente suas respostas. Para cada caso faça um gráfico mostrando como varia C ao longo do canal nos seguintes tempos: 1. Instante inicial 2. Após 20 passos de tempo. 3. Após 100 passos de tempo. 4. Último resultado satisfazendo o critério de parada. Dicas: O item a) pode ser feito no Excel – é similar ao exercício da lista 3. Para o item b) é necessário apenas 1 programa, basta programar de modo adequado, permitindo mudar os dados de entrada e rodar para as diferentes opções. Crie um critério de parada do modelo. Por exemplo: o modelo deve parar quando o valor do resultado na última seção não mudar mais que 0,01% em relação ao valor da rodada anterior. Veja esquema na página 4. Esta lista pode ser feita em grupos de até 3 alunos. 3/4 ********************************************************************* * SUBROUTINE VARRE2 (A,B,C,D,N,NORDEM) * ********************************************************************* * * Subrotina para cálculo de sistemas tridiagonais Algoritmo "doublé * sweep". Secao 4.6.3. do livro Computational Fluid Dynamics (Abbot & * Basco). * N = numero de equações * Equações do tipo * A[j] Z(j-1) + B[j] Z(j) + C[j] Z(j+1) = Dj (1) * #### Note que A e C estão trocados em relação ao livro #### * * Condições de contorno: * #### ATENÇÃO: caso haja condição do tipo mista ou tipo Neumman, ou * #### seja, BET1 ou BETN são diferentes de zero, o ideal ‚ * #### armar o sistema de modo a colocar tal condição * #### no ponto 1. * * ponto 1 (ALF1 e BET1 são constantes) * ALF1*Z(1)+BET1*(dZ(1)/dx)=CC1 (2) * para um esquema de diferenças finitas progressivas de segunda * ordem, usando Z(3)=E2{E1*Z(1)+F1}+F2, e Z(2)=E1*Z(1)+F1, * ou seja, a recorrência do double sweep, tem-se: * Z(1)={CC1-BET1/(2DX)*[F1(4-E2)-F2]}/ * {ALF1+BET1/(2DX)*[E1(4-E2)-3]} * ponto N (ALFN e BETN são constante) * ALFN*Z(N)+BETN*(DZ(N)/DX)=CCN (3) * que pode ser escrito como * -E[N-1]*Z(N-1) + Z(N) = F[N-1] * onde E[N-1] e F[N-1] são funções da esquematização de (3). * por exemplo: * - esquema de diferenças regressivas de primeira ordem; * E[N-1] = BETN/DX/{ALFN+BETN/DX} * F[N-1] = CCN/{ALFN+BETN/DX} * - esquema de diferenças regressivas de segunda ordem; * E[N-1] = 4BETN/(2DX)/{ALFN+3*BETN/(2DX)} * F[N-1] = {CCN-BETN/(2DX)*Z'(N-2)}/{ALFN+3*BETN/(2DX)} * onde Z'(N-2) seria o valor de Z(N-2) extrapolado ou interpolado * para o instante de tempo adequado, dependendo do esquema de * discretização temporal adotado. Note que Z'(N-2) só e necessário no * caso de condição de contorno com derivada, i.e., BETN=/=0. * De qualquer modo, os valores de E[N-1] e F[N-1] são passados para a * subrotina pelo programa principal. * Deste modo define-se os valores dos vetores A, B, C , D nas posições 1 * e N-1, ou seja: * ponto 1: * A[1]=0.0 * B[1]=ALF1 * C[1]=BET1/(DX) ...esquema de ordem DX * C[1]=BET1/(2DX) ...esquema de ordem DX^2 * D[1]=CC1 * ponto N: * A[N]=-E(N-1) * B[N]=1.0 * C[N]=0.0 * D[N]=F(N-1) * * Resposta sai no vetor D. ********************************************************************* * IMPLICIT REAL*8 (A-H,O-Z) PARAMETER (NM=200) c DIMENSION A(NM),B(NM),C(NM),D(NM),E(NM),F(NM) c C le E(N-1) & F(N-1) E(N-1)=-A(N) F(N-1)= D(N) C C Varre de N-1 ate 2 para calcular E & F de N-2 ate 1. DO J=N-1,2,-1 DEN=C(J)*E(J)+B(J) E(J-1)=-A(J)/DEN F(J-1)=(D(J)-C(J)*F(J))/DEN ENDDO C C Calcula Z(1) e coloca em D[1] IF (C(1).EQ.0.0) THEN D(1)=D(1)/B(1) ELSEIF (NORDEM.EQ.2) THEN D(1)=(D(1)-C(1)*(F(1)*(4.0-E(2))-F(2)))/ & (B(1)+C(1)*(E(1)*(4.0-E(2))-3.0)) ELSE D(1)=(D(1)-C(1)*F(1))/(B(1)+C(1)*(E(1)-1.0)) ENDIF C C Varre de 1 ate N-1 para calcular resposta de 2 ate N, pondo em D. DO J=1,N-1 D(J+1)=D(J)*E(J)+F(J) ENDDO C RETURN END 4/4 Esquema numérico Equação governante: 2 2 C C C u D kC t x x Esquema numérico: 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 2 1 2 3 4 3 41 2 2 2 2 21 2 2 2 3 4 3 4 2 2 n n n n n n n n j j j j j j j j n n n n n n j j j j j j n n j j n n n n n n nr r j j j j j j j C C C C C C C C u u t x x C C C C C C t D D kC kC x x C C C C C C C C C 1 1 1 11 1 1 12 2 2n n n n n n n n nj j j j j j j j jC C C C C C C t kC kC Selecionando variáveis: 1 1 1 1 1 # 1 2 1 1 2 # 1 3 2 2 2 2 2 3 4 2 2 2 Linear: 2 2 sendo : Quad: jj j n j n n nr r j j j n n n n n n n n nr r j j j j j j j j j n n n C C C tk C C C C C C C C C C C tkC C C C C CA B D # 1 2 3 3n n n nC C C C Ou mais simplesmente: 1 1 1 1 1 n n n n j j j j j j jC C C A B C D Repare que neste exemplo, A e C são trocados em relação ao que está no livro. Escola Politécnica Departamento de Recursos Hídricos e Meio Ambiente Quinto Trabalho Questão 1: Questão 2: Questão 3:
Compartilhar