Trabalho final pronto 30-11-10

1.385 visualizações

Publicada em

Meu trabalho de conclusão de Curso - TCC

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.385
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Trabalho final pronto 30-11-10

  1. 1. Seminários de Matemática Aplicada e Pesquisa em Ensino – Prática IV CONTAMINAÇÃO METROPOLITANA DORIO CUIABÁ: MODELAGEM E SIMULAÇÃO DE CENÁRIOS Luiz Fernando de Moraes Campos Filho Orientador: Prof. Dr. Geraldo Lucio DinizNOVEMBRO/2010 2010/2INSTITUTO DE CIÊNCIAS EXATAS E DA TERRA UFMT UNIVERSIDADE FEDERAL DE MATO GROSSO
  2. 2. CONTAMINAÇÃO METROPOLITANA DO RIO CUIABÁ: MODELAGEM E SIMULAÇÃO DE CENÁRIOS Luiz Fernando De Moraes Campos Filho Como orientador do trabalho Contaminação Metropolitana do Rio Cuiabá: Modelagem e simulação de Cenários, realizado pelo discente Luiz Fernando de Moraes Campos Filho, aprovo esta versão final, como requisito para disciplina “Prática de Ensino de Matemática IV – Seminários de Matemática Aplicada e Pesquisa em Ensino”. Cuiabá, 26 de novembro de 2010. Geraldo Lúcio Diniz
  3. 3. CONTAMINAÇÃO METROPOLITANA DO RIO CUIABÁ: MODELAGEM E SIMULAÇÃO DE CENÁRIOS Metropolitan Contamination of Cuiaba River: Modelling and simulations of scenarios Luiz Fernando de Moraes Campos Filho Discente do Curso de Licenciatura Plena em Matemática Orientador: Geraldo Lúcio Diniz Professor do Departamento de Matemática da UFMT RESUMO Neste relatório são apresentados o modelo matemático, as aproximações numéricas e as simulações obtidas através do estudo do problema da contaminação de um trecho urbano do rio Cuiabá por esgoto. No estudo foi considerado apenas o meio aquático, tendo como objetivo avaliar a degradação ambiental deste rio, de grande importância para as populações ribeirinhas.Palavras-chave: Dispersão de esgoto. Contaminação de rio. Método de diferençasfinitas. ABSTRACT In this paper a mathematical model is presented, including the numerical approximations and simulations obtained by the studied problem of contamination for the urban stretch of Cuiabá River by wastewater. In the study, we considered only aquatic mean, of which goal was to model the environmental degradation of this river, that has high importance for the local population.Key words: Dispersion of wastewater. Contamination of river. Finite differencesmethod.
  4. 4. 1 INTRODUÇÃO A água é um dos recursos naturais mais intensamente utilizados. É fundamentalpara a existência e manutenção da vida e, para isso, deve estar presente no ambiente emquantidade e qualidade apropriadas. Dentre os benefícios que a água promove ao ser humano estão: abastecimentoresidencial, abastecimento industrial, irrigação, geração de energia elétrica, agricultura erecreação. Todavia, se a água não estiver em condições apropriadas todos os benefícioscitados acima são perdidos. Grande parte da água utilizada pelo ser humano vem de rios e lagos de água doce.Logo a contaminação destes é um grave problema para o próprio ser humano. Uma dasprincipais causas de contaminação dos rios e lagos é o lançamento de esgoto em suaságuas e esse impacto ambiental pode ser um problema fatal a estes e conseqüentementeaos seus usuários (Alegria e Diniz, 2007). Outro dado importante também é que o volume de água na Terra está estimado em1 trilhão e 386 bilhões de quilômetros cúbicos (Km3), sendo a maior parte - 97,2% dessetotal - formada pela água salgada dos mares e oceanos. Algo como 1,8% da água totalestá estocada sob a forma de neve ou gelo, no topo das grandes cadeias de montanhasou nas zonas polares. Outra porção é a água subterrânea, que abrange cerca de 0,9%desse total, restando então a água atmosférica (0,001%) e os rios e lagos de água doce,que ficam com somente 0,0092% dessa água do nosso planeta. Esta pequena quantiavem sofrendo com os impactos ambientais causados pelo homem, correndo risco até denum tempo muito curto se extinguir (Fonte do saber, 2010). Dentre os rios que sofrem com este problema está o Rio Cuiabá. Este rio é degrande importância para a população de Mato Grosso, pois sua bacia hidrográficaabrange 75% da população do estado e a maioria desse total é constituído de habitantesde Cuiabá e Várzea Grande. (Wolmuth e Diniz, 2005). O crescimento populacional das cidades de Cuiabá e Várzea Grande e a falta deinfra-estrutura existente nelas vêm causando grandes prejuízos ambientais. Estascidades depositam, diariamente, cerca de 20 toneladas de resíduos sólidos (lixo
  5. 5. doméstico) e 400 mil litros de esgoto doméstico e industrial no rio Cuiabá (Wolmuth eDiniz, 2005). Atualmente, cerca de 31% dos domicílios, em Cuiabá, estão conectados aosistema de saneamento, mas apenas 14% do esgoto coletado é tratado. Apesar de 80%da cidade ter acesso a água canalizada, apenas 57% dos domicílios tem este serviço 24horas por dia, o que mostra a necessidade de investimentos do poder público emsaneamento básico (Safford, 2009). Pelos dados acima, se pode concluir que grande parte do esgoto não é tratadaadequadamente. Como solução “imediata” os órgãos responsáveis pelo saneamentobásico adotam a escolha do seu lançamento in natura nos corpos d’água,comprometendo a qualidade da água, não apenas no local onde o esgoto é despejado,mas em toda a sua bacia hidrográfica (Alegria e Diniz, 2007; Cunha e Ferreira, 2006). A crescente degradação dos recursos hídricos, além de destruir os habitatsaquáticos e a biodiversidade, tem comprometido a própria saúde humana. Dessa forma,a água passou a ser uma preocupação crescente não apenas no que se refere àquantidade disponível, mas, principalmente, em relação à sua qualidade. Para que se possa planejar uma maneira mais eficiente de implantar um sistema desaneamento, que minimize os danos ao rio Cuiabá, é o que motivou o presente trabalho. Neste sentido, será feito um estudo sobre a contaminação do rio Cuiabá poresgoto, através de um modelo matemático (Meyer e Diniz, 2007), seguido de suadiscretização espacial e temporal, cujos resultados serão apresentados através desimulações computacionais para os cenários das estações úmida e seca. Como justificado acima, se espera que este trabalho possa servir para diagnósticoe auxílio na adoção de políticas públicas de saneamento e mitigação da contaminaçãodo rio Cuiabá por esgoto.
  6. 6. 2 DESCRIÇÃO DO PROBLEMA O rio Cuiabá é de grande importância para a sociedade mato-grossense. Estaimportância pode ser comprovada, uma vez que, historicamente, este rio é uma fonte devida e de recursos para o estado e, em particular, para a cidade de Cuiabá (InstitutoAção Verde). Sua bacia hidrográfica apresenta uma superfície de aproximadamente 28.000 km²até as proximidades do município de Barão do Melgaço e estende-se entre os paralelos14º18’ a 17º00’ S e 54º40’ a 56º55’ W (Cavinatto et al.,1995), sendo dividida em trêsbacias: superior, mediana e inferior. A parte superior fica perto da nascente do rio, constituída pelos municípios deJangada, Acorizal, Rosário Oeste, Chapada dos Guimarães, Campo Verde, NovaBrasilândia e Planalto da Serra, este trecho possuí uma vegetação do tipo cerrado onde aagricultura é uma atividade predominante. A bacia mediana abrange os municípios de Cuiabá, Várzea Grande, NossaSenhora do Livramento e Santo Antonio do Leverger, também conhecida como baixadacuiabana onde a declividade do rio diminui o que favorece o depósito de sedimentos nofundo do leito, transportados, principalmente, no período de cheias. Estes sedimentosprovocam uma redução da lamina d’água e diminui a seção do rio, tornando-osuscetível à inundações e, com o aumento da velocidade das águas no período decheias, o solapamento* das barrancas (Lima, 1994). A bacia inferior abrange os municípios de Barão de Melgaço e Poconé. Estetrecho final é constituído de planícies de inundações que corresponde à região doPantanal. Neste trecho, o rio Cuiabá banha as baías de Chacororé, Sá Mariana e outras. A bacia hidrográfica do rio Cuiabá é local de habitação de 75% da população deMato Grosso e a maioria, desse total, encontra-se nesses dois municípios. A captação deágua para abastecimento das duas cidades é feita à montante delas e todo esgoto aíproduzido é despejado diretamente no rio com pouco ou nenhum tratamento.* Solapamento é sinônimo de ceder, desmoronar.
  7. 7. A área de estudo corresponde ao trecho urbano do rio Cuiabá, compreendido entrea Ponte Nova até a jusante do encontro com o rio Coxipó (ver figura 1). O rio Cuiabá,neste trecho de estudo, possui aproximadamente 6,1 Km de comprimento e 0,2 Km delargura (obtidos através da ferramenta métrica do Google Earth). O clima nesta região équente tropical, semi-úmido, com temperatura média anual de 26°C, com máximasmédias diárias ocorrendo nos meses de setembro a novembro e atingem 36°C, as médiasmínimas diárias ocorrem no mês de julho, chegando aos 15°C. A precipitação médiaanual fica em torno de 1.342 mm/ano, de acordo com as séries temporais medidas entre1989-2000 (INMET, 2000).Figura 1: Mapa da área de estudo, obtido através do Google Earth.
  8. 8. 3 O MODELO MATEMÁTICO Neste relatório, serão considerados apenas poluentes oriundos da EstaçãoElevatória da Prainha, Córrego do Barbado, Rio Coxipó e dois córregos da cidade deVárzea Grande. Estes poluentes, em relação ao ponto de origem (Ponte Nova), estãodistribuídos da seguinte forma: Estação da Prainha (A) a 1,45 km, Córrego do Barbado(B) a 4,85 km, Córrego do Coxipó (C) a 6,06 km, Afluente 1 de Várzea Grande (D) a3,86 km e Afluente 2 de Várzea Grande (E) a 4,53km (ver a figura 2, a seguir).Figura 2: Descrição da Localização dos Poluentes no domínio Simplificado. No modelo, devem ser avaliados os fenômenos de difusão efetiva, transporteadvectivo, a degradação global e as fontes poluidoras. A difusão efetiva consiste na mistura do esgoto lançado no rio com a águapresente no corpo d’água, em termos microscópicos (movimento browniano). Os corpos d’água não são estáticos. Eles apresentam um movimento próprio quetransporta um poluente do seu ponto de despejo para outras regiões. Este transporte éfeito pelo campo de velocidades da água e a este fenômeno de transporte é quedenominamos advecção. A degradação global consiste na absorção do poluente pela biota, quedenominamos autodepuração pelo rio. As fontes poluidoras são as entradas de efluentes que, neste trabalho,consideramos cinco ao todo (ver figura 2).
  9. 9. Chamando de C(x,y,t) a concentração de esgoto – medida em PPM (partes pormilhão) – no ponto (x,y) para o instante t, o modelo pode ser descrito, genericamente,por: C  difusão  advecção  decaimento  fonte (1) t onde, Difusão  div   C  - cf . Marchuk (1986);    Advecção  div VC - cf . Marchuk (1986); Decaimento   C - cf . Bassanezi e Ferreira (1988); Assim, a equação evolutiva que modela a concentração de esgoto é dada por:  C t    div  C   div VC   C  fonte (2) sendo, α = a constante de difusibilidade efetiva no meio aquático.  V = o campo de velocidades. σ = a taxa de decaimento total no meio aquático. Para o domínio Ω, cuja fronteira  = 0  1  2  3 , se tem as seguintescondições de contorno: C C C C   0,   K1D1 ,   K 2C,   K 3D 2 (3)  0  1  2  3
  10. 10. 4 METODOLOGIA4.1 Discretização do modelo: Na construção de soluções aproximadas para equações diferenciais parciais, emprimeiro lugar, será feita a discretização do domínio e, para isso, se introduz uma malhasobre a qual está definida a solução aproximada. Seja R o conjunto de pontos onde a equação está definida e S o contorno desteconjunto, sendo que a malha tem pontos igualmente espaçados nas duas direções, ouseja, Δx = Δy = h . A figura 2 ilustra a malha onde os pontos que estão representados por + são ospontos de S e os demais são pontos de R.Figura 3: Discretização do domínio.4.1.1 Discretização espacial - método de diferenças finitas centradas. Para a discretização espacial será utilizado o método de diferenças finitascentradas, esta discretização envolve em cada ponto da malha, além do valor da soluçãoneste ponto, os valores que a solução assume nos quatro pontos adjacentes como ilustraa figura 3.
  11. 11. Figura 4: Ilustração gráfica do método de diferenças finitas centradas, para os nósinteriores. A escolha do método de diferenças finitas centradas para a discretização espacialé justificada por sua precisão, da ordem de h2, enquanto as fórmulas avante (forward) eretrógradas (backward) fornecem uma aproximação da ordem de h. No método de diferenças finitas centradas, as derivadas que aparecem na equaçãodiferencial (2) e (3) são substituídas pelas aproximações descritas por (4) a (13) aseguir, onde os índices n e n+1 correspondem a discretização temporal, descrita naseção seguinte.Difusão:   C C     2C  2C  div  C   div    ,      2  2  (4)   x y    x y Advecção:    div VC  V1  y  C x  V2  x, y  C y (5)onde,
  12. 12. C  Ci  ny  Ci ny Ci  ny  Ci ny  n n n 1 n 1    (6) x   4.x 4.x  C  Cin1  Cin1 Cin11  Cin1    1  (7)y  4.y 4.y  2C  Ci ny  2.Ci  Ci  ny Ci ny  2.Ci  Ci  ny  n n n n 1 n 1 n 1    (8)x 2   2. 2 x 2. 2 x   2C  Cin1  2.Cin  Cin1 Cin1  2.Cin 1  Cin11    1  (9)y2  2. 2 y 2. 2 y Em  0 , se tem: C  4.Cinny  Cin2ny 4.Cin ny  Cin 2ny  1 1 .     0 (10)   4.x 4.x   Pois Cin 1  0 e Cin  0Em 1 , se tem: C  3.Cin  4.Cin1  Cin 2 3.Cin 1  4.Cin11  Cin21  .       K1D1 (11)   4.y 4.y Em  2 , se tem: C  3.Cin 1  4.Cinny  Cin2ny 3.Cin  4.Cinny  Cin2ny 1 1  .       K 2 .C (12)   4.x 4.x   Em  3 , se tem: C  3.Cin  4.Cin1  Cin2 3.Cin 1  4.Cin1  Cin21  .     1   K 3D2 (13)   4.y 4.y 4.1.2 Discretização temporal - método Crank-Nicolson.
  13. 13. Para a discretização temporal, será usado o método de Crank-Nicolson, por setratar de um método incondicionalmente estável, exceto para os casos dedescontinuidade da variável de estado, o que não é o caso. Neste caso, serão feitas asaproximações dadas por (14) e (15), a seguir. d  t  C ( t )  Ci ( tn ) Ci  tn    i n 1 (14) dt  2 t Para as aproximações dadas anteriormente, o erro é da ordem de (Δt)², cf.Carnaham (1969). Assim, quanto menor o passo no tempo, melhor a precisão daaproximação.  t  C n 1  Cin C  tn    i (15)  2 24.2 Construção do sistema de Equações Nesta etapa substituiremos os termos da equação (2) e da equação (3) pelasaproximações propostas acima e obteremos um sistema de equações (considerando osnós interiores e os nós da fronteira), cujo vetor solução do sistema nos dará comoresultado a solução aproximada sobre os nós da malha.4.2.1 Construção do sistema para os pontos interiores da malha Após a substituição dos termos da equação (2) pelas aproximações descritasacima, se obtêm o seguinte sistema de equações:
  14. 14.  t t t  n 1  t tV1 (y)  Cin 1 1  2  2    Ci  ny   2 2 x  4x     x  y 2    1  t tV1 (y)  n 1  t tV2 (x, y)  Cinny   2    Ci 1   2 2 y  4y    2 x 4x     t tV2 (x, y)  Cin11   2   2 y 4y     t t t   t tV1 (y)  Cin 1  2  2    Ci  ny   2 2 x  4x   n   x  y 2     t tV1 (y)  n  t tV2 (x, y)  Cin ny  2    Ci 1  2 2 y  4y    2 x 4x     t tV2 (x, y)  Cin1  2   t  f  2 y 4y  4.2.2 Construção do sistema de equação para os pontos de contorno da malha De acordo com as condições de contorno (3), através da substituição dos termosdas equações (10) a (13) pelas aproximações acima, se tem que:Em  0 , se tem: C  4.Cinny  Cin2ny 4.Cin ny  Cin 2ny  1 1 .     0 (16)   4.x 4.x   Fazendo as substituições, se obtêm o seguinte sistema:    Ci  ny     Ci  ny    . x 4x  C    .    i  2ny  n 1  x 4x  Ci  2ny  n     Em 1 , se tem: C  3.Cin  4.Cin1  Cin 2 3.Cin 1  4.Cin11  Cin21  .       K1C (17)   4.y 4.y 
  15. 15. Após as substituições se obtêm o seguinte sistema: Ci  Ci  3 K1          3  K1       . C      . Ci 1      i 1  4y 2  y 4y  C   4y 2  y 4y  C   i  2  n 1  i2  nEm  2 , se tem que: C  3.Cin 1  4.Cinny  Cin2ny 3.Cin  4.Cinny  Cin2ny 1 1  .       K 2 .C (18)   4.x 4.x   Após as substituições se obtêm o seguinte sistema:  Ci   Ci  3 K 2        3 K 2       4x  2   x  4x  . Ci ny     4x  2   x  4x  . Ci ny           Ci 2ny  n 1 Ci 2ny  nEm  3 , se tem que: C  3.Cin  4.Cin1  Cin2 3.Cin 1  4.Cin1  Cin21   .     1   K 3C (19)   4.y 4.y Após as substituições, se obtêm o seguinte sistema:  Ci  Ci  3 K 3          3  K 3       . C      . Ci 1      i 1  4y 2  y 4y  C   4y 2  y 4y  C   i 2  n 1  i 2  n Por fim, substituindo os termos da equação (2) e (3) pelas equações (4) a (19) efazendo a manipulação algébrica das equações, se obtém o sistema algébrico deequações lineares, representado matricialmente na forma: 1 n ACn 1  BCn  d 2 (16)onde, C n 1 é a solução aproximada procurada, para o instante n+1 e C n é a soluçãoaproximada para o instante n, a partir da condição inicial C0 . Após a construção dos códigos numéricos se obteve a solução aproximada,conforme as simulações computacionais apresentadas a seguir.
  16. 16. 5 RESULTADOS E DISCUSSÃO Para o coeficiente de difusão, foram adotados três valores, considerando a difusãobaixa, média e alta. Para difusão baixa e alta os valores foram considerados de acordocom Wolmuth e Diniz (2005), tendo os seguintes valores para o coeficiente de difusão0,09 e 0,32 km²/h, respectivamente. Para a difusão média, o valor adotado foi de acordocom Carreras e Menéndez (1990), cujo valor para o coeficiente de difusão foi de 0,23km²/h. O parâmetro de decaimento total do meio aquático foi estimado, pois não foipossível encontrá-lo na literatura. Em Rocha (2003), encontramos a media anual de velocidades para o trecho do rioem estudo, onde é apresentado que a menor média ocorre no mês de julho, mêsconsiderado de estação seca, e consiste no valor de 1,7 km/h, enquanto a maior médiaocorre no mês de dezembro, mês considerado de estação úmida, cujo valor é 3,0 km/h.Com isto, foram adotados os valores de 1,7 km/h e de 3,0 km/h para as estações seca eúmida, respectivamente. Para a discretização espacial adotamos ∆x = ∆y = 0,01 km, e para a discretizaçãotemporal, adotamos ∆t = 0,4 horas. A tabela abaixo mostra os valores dos parâmetros adotados para obter assimulações dos cenários. A simulação de cenários foi realizada considerando um intervalo de tempo t = 40horas, tanto para estação seca quanto úmida.
  17. 17. Tabela 1 - Parâmetros utilizados na simulação dos cenários Valores Parâmetros Estação Seca Estação Úmida Unidades 0,09† 0,09 α 0,23‡ 0,23 km²/h 0,32§ 0,32 σ 0,1 0,1 h-1 V1 1,7 3 Km/h V2 (Estação Prainha) -0,1 -0,1 Km/h V2 (Córrego do Barbado) -0,1 -0,1 Km/h V2 (Córrego do Coxipó) -1,3 -1,3 Km/h V2 (Afluente 1 de VG) 0,1 0,1 Km/h V2 (Afluente 2 de VG) 0,2 0,2 Km/h Com estes dados, foram obtidas as simulações para as estações seca (Figuras 5, 6 e7), e úmida (figuras 8, 9 e 10), apresentadas a seguir.† Difusão baixa‡ Difusão média§ Difusão Alta
  18. 18. Figura 5. Concentração para 4 nós do domínio ao longo do tempo, na estação seca comdifusão baixa.Figura 6. Concentração para 4 nós do domínio ao longo do tempo na estação seca comdifusão média.
  19. 19. Figura 7. Concentração para 4 nós do domínio ao longo do tempo na estação seca comdifusão alta.Figura 8. Concentração para 4 nós do domínio ao longo do tempo na estação úmidacom difusão baixa.
  20. 20. Figura 9. Concentração para 4 nós do domínio ao longo do tempo na estação úmidacom difusão média.Figura 10. Concentração para 4 nós do domínio ao longo do tempo na estação úmidacom difusão alta.
  21. 21. De acordo com as simulações de cenários acima, observamos que na estação secahá uma dispersão mais lenta e um maior nível de concentração de esgoto, ao contrárioda estação úmida, que apresentou uma dispersão mais rápida e um menor nível deconcentração de esgoto, para o mesmo intervalo de tempo estudado. Estes resultadosforam compatíveis, pois no período chuvoso a velocidade da correnteza é maior. Observamos também que para os pontos próximos da fronteira  0 , isto é notrecho inicial da área de estudo, o nível de concentração de esgoto é maior quando oíndice de difusão considerado é alto. Já para os outros nós considerados valeu a seguinte lei: quanto maior for o índicede difusão, menor será o nível de concentração de esgoto nos pontos de descarga.Considerando os pontos próximos da região final da área de estudo, isto é, pontos sobrea fronteira  2 , podemos concluir que sendo a difusão baixa e a estação seca então onível de concentração de esgoto é alto, enquanto o nível de concentração de esgotodecresce em função da aumento do valor do coeficiente de difusão, chegando ao seuvalor mínimo de concentração, quando a difusão é alta e a estação é úmida. Estesresultados se mostraram compatíveis com a realidade, pois quanto menor for ocoeficiente de difusão maior será a concentração de esgoto. Em relação a trabalhos anteriores sobre o mesmo tipo de problema (Alegria eDiniz, 2007; Wolmuth e Diniz, 2005; Carreras e Menéndez, 1990), este trabalhoapresenta algumas melhorias, com a inclusão de mais fontes poluidoras e melhorprecisão de resultados, uma vez que foi usada uma malha mais refinada (12.000 nós).
  22. 22. 6 CONCLUSÕES Com base nos resultados obtidos para as simulações dos diferentes cenários,podemos concluir que o código elaborado se mostrou eficaz para os parâmetros develocidade encontrados na literatura e o coeficiente de difusão considerado, de modo asimular o processo de dispersão de poluentes no trecho do rio, apesar das oscilaçõesnuméricas inerentes ao método de diferenças finitas, apresentadas nas primeirasiterações, cuja estabilização ocorre ao longo do tempo, devido ao método de Crank-Nicolson, que é incondicionalmente estável. Desta forma, acreditamos que o modelo e o código numérico desenvolvidos sejamferramentas úteis. A apresentação gráfica dos resultados facilita a compreensão para osnão matemáticos, interessados neste tipo de estudo, o que permite a parceria compesquisadores de outras áreas e utilização por agentes da área ambiental. Neste sentido,o trabalho pode servir para diagnóstico e auxílio na adoção de políticas públicas desaneamento e mitigação da contaminação do rio Cuiabá pelo esgoto, que é um afluentede grande importância para a planície pantaneira.
  23. 23. 7 REFERÊNCIAS BIBLIOGRÁFICAS:ALEGRIA, A. F., DINIZ G. L. Estudo da poluição por esgoto num trecho urbano derio. Biomatemática, Campinas/SP, v. 17, 73-86, 2007.BASSANESI, R. C.; FERREIRA Jr., W. C. Equações Diferenciais com Aplicações.São Paulo: Ed. Harbra, 1988. 572p.BRAGA, BENEDITO. Introdução Á Engenharia Ambiental. São Paulo: Ed. PrenticeHall, 2002.CARRERAS, P. E., MENÉNDEZ, A. M. Mathematical simulation of pollutantdispersion. Ecological Modelling, Amsterdam, v. 52, 29-40, 1990.CUNHA, C. Métodos Numéricos para as Engenharias e Ciências Aplicadas.Campinas: Ed. Unicamp, 1993. 276p.CUNHA, C. L. N.; FERREIRA, A. P. Modelagem matemática para avaliação dosefeitos dos despejos orgânicos nas condições sanitárias de águas ambientais. Cadernosde Saúde Pública, Rio de Janeiro, v. 22, n. 8, 1715-1725, 2006.CARNAHAN, B; LUTHER, H. A; WILKES, J.D. Applied Numerical Methods,N.York: John Wiley & Sons, Inc., 1969. 621p.FONTE DO SABER. URL: http://www.fontedosaber.com/biologia/a-degradacao-do-meio-ambiente.html. Acesso em: 23/11/2010.INMET, Ministério da Agricultura e do Abastecimento, Delegacia Federal daAgricultura – DFA/MT 9.º Distrito de Metereologia. Cuiabá/MT. 2000. Boletim daEstação 2504600.INSTITUTO AÇÃO VERDE. URL: http://www.acaoverde.org.br/rio_cuiaba.php.Acesso em: 25/04/2010.MARCHUK, G. I.. Mathematical models in environmental problems. Studies inMathematics and its Applications. Vol.16. North-Holland, Amsterdan. 1986. 217p.
  24. 24. MEYER, J. F. C. A.; DINIZ, G L. Pollutant dispersion in wetland systems:mathematical modelling and numerical simulation. Ecological Modelling, Amsterdam,v.200, 360-370. 2007.SAFFORD, T. G. Características gerais da bacia do rio Cuiabá. Disponível em:http://www.portalnaturezaviva.org.br/RioCuiaba_CaracteristicasGerais_1.asp. Acessoem: 11/12/2009.WOLMUTH, L. D., DINIZ, G. L. Contaminação do Rio Cuiabá por Esgoto.Relatório técnico, disponível em:http://www.ufmt.br/icet/matematica/geraldo/relat_2005_1.pdf. Acesso em: 30/12/2009.2005.
  25. 25. AGRADECIMENTOS Em primeiro lugar agradeço a Deus por todas as dádivas recebidas até o presentemomento. Agradeço também a minha mãe Regina pela grande ajuda tanto no incentivo pelosestudos como na luta para me dar condições adequadas para estudar. Agradeço ao Professor Geraldo pela oportunidade que me deu, através da IniciaçãoCientifica e pelas eternas orientações ao longo da graduação. Agradeço aos Professores do Departamento de Matemática da Universidade Federalde Mato Grosso pela minha formação. Ao Conselho Nacional de Pesquisa e Tecnologia (CNPq) agradeço pelo auxiliofinanceiro durante a Bolsa de Iniciação Científica que gerou a base do presente trabalho. A minha amiga Tatiana Leal, agradeço pelas correções de coerência na escrita dotrabalho. Por fim, agradeço a todos os meus amigos mais chegados da graduação: Gilmar,Renata, Thaís, Ericson, Lizias, Wilton e Ricardo pela companhia e sugestões.
  26. 26. APÊNDICECódigos Numéricos Neste apêndice são apresentados os códigos numéricos utilizados naimplementação do método escolhido para as aproximações da solução do problema. Ocódigo foi elaborado em ambiente MATLAB®, gerando seis testes numéricos que são:teste estação seca – difusão baixa; teste estação seca – difusão média; teste estação seca– difusão alta; teste estação úmida – difusão baixa; teste estação úmida – difusão médiae teste estação úmida difusão alta, que serão apresentados à seguir, respectivamente. 1. Teste estação Seca - Difusão Baixa 1 % Programa preliminar p/ diferencas finitas 2 % Dispersao de esgoto no rio Cuiaba/MT - PIBIC Luiz Fernando 3 % sexta vesao - 26/11/2010 - Teste estação seca - Difusão Baixa 4 % 5 % Parametros do modelo 6 % 7 clear all; t0=clock; %format long; 8 alfa = 0.09; % coeficiente de difusão 9 sig = 0.1; % coeficiente de degradação 10 V1 = 1.7; % velocidade do rio 11 K1 = 0; % permeabilidade na fronteira Gama 1 12 K2 = 0; % permeabilidade na fronteira Gama 2 13 K3 = 0; % permeabilidade na fronteira Gama 3 14 % 15 % Parametros da discretizacao 16 % 17 xmin = 0; xmax = 6.0; 18 ymin = 0; ymax = 0.2;
  27. 27. 19 ti = 0; tf = 40;20 nx = 600;21 ny = 20;22 nt = 100;23 %24 % Calculo de parametros auxiliares25 %26 nnx= nx+1; nny= ny+1; ntn = nnx*nny; dt = (tf - ti)/nt;27 dx = (xmax - xmin)/nx;28 dy = (ymax - ymin)/ny;29 nau1 = round(nx/3)*nny;30 nau2 = round(2*nx/3)*nny;31 nau3 = round(nx/20)*nny;32 nau4 = round(nx/2)*nny;33 %34 % Construcao do campo V2 -> velocidades na direcao y35 %36 V2 = zeros(ntn,1);37 V2(ntn-nau3) = -1.3;38 V2(ntn-nau3-nny) = -1.3;39 V2(ntn-nau3-2*nny) = -1.3;40 V2(nau4) = -.1;41 V2(nau4+nny) = -.1;42 V2(nau3) = -0.1;43 V2(nau3+nny) = -0.1;44 V2(nau3+2*nny) = -0.1;45 V2(nau1+1) = 0.1;46 V2(nau1+nny+1) = 0.1;47 V2(nau2+1) = 0.2;
  28. 28. 48 V2(nau2+nny+1) = 0.2;49 %50 % Calculo do numero de Peclet51 %52 pec1 = (V1*dx)/alfa;53 pec2 = (max(abs(V2))*dy)/alfa;54 %55 % Zerando as Matrizes e o vetor d56 %57 A = sparse(ntn,ntn);58 B = sparse(ntn,ntn);59 d = zeros(ntn,1);60 %61 % Estabelecendo a condicao inicial62 %63 u0 = zeros(ntn,1);64 for k=1:1:nny65 u0(k) = u0(k)+0.001;66 end;67 u0(ntn-nau3) = .3;68 u0(ntn-nau3-nny) = .3;69 u0(ntn-nau3-2*nny) = .3;70 u0(nau4) = .3;71 u0(nau4+nny) = .3;72 u0(nau3) = .3;73 u0(nau3+nny) = .3;74 u0(nau3+2*nny) = .3;75 u0(nau1+1) = .3;76 u0(nau1+nny+1) = .3;
  29. 29. 77 u0(nau2+1) = .3;78 u0(nau2+nny+1) = .3;79 %80 % Construcao das Matrizes do sistema81 %82 % Construção em Gama 083 %84 for i = 2:ny85 A(i,i+nny) = -alfa/dx;86 B(i,i+nny) = alfa/dx;87 A(i,i+2*nny)= alfa/(4*dx);88 B(i,i+2*nny)= -alfa/(4*dx);89 end;90 %91 % Construção para os nodos centrais92 %93 for j = 1:1:nx-194 for i = nny*j+2:nny*j+ny95 A(i,i-nny) = -alfa*dt/(2*dx*dx)-V1*dt/(4*dx);96 B(i,i-nny) = +alfa*dt/(2*dx*dx)+V1*dt/(4*dx);97 A(i,i-1) = -alfa*dt/(2*dy*dy)-V2(i-1)/(4*dy);98 B(i,i-1) = +alfa*dt/(2*dy*dy)+V2(i-1)/(4*dy);99 A(i,i) = 1+alfa*dt/(dx*dx)+alfa*dt/(dy*dy)+sig*dt/2;100 B(i,i) = 1-alfa*dt/(dx*dx)-alfa*dt/(dy*dy)+sig*dt/2;101 A(i,i+1) = -alfa*dt/(2*dy*dy)+V2(i+1)*dt/(4*dy);102 B(i,i+1) = alfa*dt/(2*dy*dy)-V2(i+1)*dt/(4*dy);103 A(i,i+nny) = -alfa*dt/(2*dx*dx)+V1*dt/(4*dx);104 B(i,i+nny) = alfa*dt/(2*dx*dx)-V1*dt/(4*dx);105 end;
  30. 30. 106 end;107 %108 % Construção para a fronteira Gama 3109 %110 for i = 2*nny:nny:nx*nny111 A(i,i) = 3*alfa/(4*dy)-K3/2;112 B(i,i) = -3*alfa/(4*dy)-K3/2;113 A(i,i-1) = -alfa/(dy);114 B(i,i-1) = alfa/(dy);115 A(i,i-2) = alfa/(4*dy);116 B(i,i-2) = -alfa/(4*dy);117 end;118 %119 % Construção para a fronteira Gama 1120 %121 for j = 1:nx-1122 i = nny*j+1;123 A(i,i) = 3*alfa/(4*dy)-K1/2;124 B(i,i) = -3*alfa/(4*dy)-K1/2;125 A(i,i+1) = -alfa/(dy);126 B(i,i+1) = alfa/(dy);127 A(i,i+2) = alfa/(4*dy);128 B(i,i+2) = -alfa/(4*dy);129 end;130 %131 % Construção para a fronteira Gama 2132 %133 for i = nx*nny+1:ntn134 A(i,i) = 3*alfa/(4*dx)-K2/2;
  31. 31. 135 B(i,i) = -3*alfa/(4*dx)-K2/2;136 A(i,i-nny) = -alfa/(dx);137 B(i,i-nny) = alfa/(dx);138 A(i,i-2*nny) = alfa/(4*dx);139 B(i,i-2*nny) = -alfa/(4*dx);140 end;141 %142 % Estabelecendo vetor d143 %144 %for i = 10*ny:11*ny145 % d(i) = 0.0001;146 %end;147 d(ntn-nau3) = 0.0001;148 d(ntn-nau3-nny) = 0.0001;149 d(ntn-nau3-2*nny) = 0.0001;150 d(nau4) = 0.0002;151 d(nau4+nny) = 0.0002;152 d(nau3) = 0.0005;153 d(nau3+nny) = 0.0005;154 d(nau3+2*nny) = 0.0005;155 d(nau1+1) = 0.0003;156 d(nau1+nny+1) = 0.0003;157 d(nau2+1) = 0.0003;158 d(nau2+nny+1) = 0.0003;159 %160 % Fatoracao L U da matriz de rigidez161 %162 [ll uu] = lu(A);163 %
  32. 32. 164 % fazendo a matriz malha para o grid165 %166 k=0;167 for i=1:nx;168 for j=1:ny;169 k=k+1;170 ind = (i-1)*nny + j;171 malha(k,1)=ind;172 malha(k,2)=ind+nny;173 malha(k,3)=ind+1;174 k=k+1;175 malha(k,1)=ind+nny+1;176 malha(k,2)=ind+1;177 malha(k,3)=ind+nny;178 end;179 end;180 %181 % montagem da malha de coordenadas dos nos182 %183 k=0;184 for i=1:nnx185 x = (i-1)*dx;186 for j = 1:nny187 y = (j-1)*dy;188 k = k + 1;189 coord(k,1) = x;190 coord(k,2) = y;191 end;192 end;
  33. 33. 193 %194 % estruturando o vetor solucao para o grafico195 fig=figure;196 mov = avifile(animacao6.avi)197 trisurf(malha,coord(:,1),coord(:,2),u0),title(Cenario6),xlabel(Gamma_1),ylabel(Gamma_0),view(0,90),colorbar,shading interp;198 F = getframe(gca);199 mov = addframe(mov,F);200 %201 % resolução dos sucessivos sistemas.202 %203 nsp1 = 2*nny+ny/2; % Nó próximo a fronteira Gama 0204 nsp2 = (nx/2)*(ny/2); % Nó ao centro do domínio.205 nsp3 = (ntn-1)/2; % Nó próximo a fronteira Gama 3 - na parte central dodomínio206 nsp4 = ntn-ny/2-1; % Nó sobre a fronteira Gama 2207 %208 % resolução dos sucessivos sistemas.209 %210 for it = 1:nt211 nosep1(it) = u0(nsp1);212 nosep2(it) = u0(nsp2);213 nosep3(it) = u0(nsp3);214 nosep4(it) = u0(nsp4);215 t(it) = (it-1)*dt;216 ys = ll(B*u0+d);217 s = uuys;218 if mod(it,2)==1219 trisurf(malha,coord(:,1),coord(:,2),u0),title(Cenario6),xlabel(Gamma_1),ylabel(Gamma_0),view(0,90),colorbar,shading interp;220 F = getframe(gca);
  34. 34. 221 mov = addframe(mov,F);222 end;223 u0=s;224 end;225 t(it+1) = (it)*dt;226 nosep1(it+1) = u0(nsp1);227 nosep2(it+1) = u0(nsp2);228 nosep3(it+1) = u0(nsp3);229 nosep4(it+1) = u0(nsp4);230 mov = close(mov);231 subplot(2,2,1)232 plot(t,nosep1),grid on,title(Nó prox. Gamma_0), xlabel(tempo(horas)),ylabel(concentração(ppm));233 subplot(2,2,2)234 plot(t,nosep2),grid on,title(Nó ao centro de Omega), xlabel(tempo (horas)),ylabel(concentração(ppm));;235 subplot(2,2,3)236 plot(t,nosep3),grid on,title(Nó ao centro de Gamma_3), xlabel(tempo(horas)),ylabel(concentração(ppm));;237 subplot(2,2,4)238 plot(t,nosep4),grid on,title(Nó sobre Gamma_2), xlabel(tempo(horas)),ylabel(concentração(ppm));;239 etime(clock,t0);2. Teste Estação Seca – Difusão Média1 % Programa preliminar p/ diferencas finitas2 % Dispersao de esgoto no rio Cuiaba/MT - PIBIC Luiz Fernando3 % sexta vesao - 26/11/2010 - Teste estação seca - Difusão Média4 %5 % Parametros do modelo6 %
  35. 35. 7 clear all; t0=clock; %format long;8 alfa = 0.23; % coeficiente de difusão9 sig = 0.1; % coeficiente de degradação10 V1 = 1.7; % velocidade do rio11 K1 = 0; % permeabilidade na fronteira Gama 112 K2 = 0; % permeabilidade na fronteira Gama 213 K3 = 0; % permeabilidade na fronteira Gama 314 %15 % Parametros da discretizacao16 %17 xmin = 0; xmax = 6.0;18 ymin = 0; ymax = 0.2;19 ti = 0; tf = 40;20 nx = 600;21 ny = 20;22 nt = 100;23 %24 % Calculo de parametros auxiliares25 %26 nnx= nx+1; nny= ny+1; ntn = nnx*nny; dt = (tf - ti)/nt;27 dx = (xmax - xmin)/nx;28 dy = (ymax - ymin)/ny;29 nau1 = round(nx/3)*nny;30 nau2 = round(2*nx/3)*nny;31 nau3 = round(nx/20)*nny;32 nau4 = round(nx/2)*nny;33 %34 % Construcao do campo V2 -> velocidades na direcao y35 %
  36. 36. 36 V2 = zeros(ntn,1);37 V2(ntn-nau3) = -1.3;38 V2(ntn-nau3-nny) = -1.3;39 V2(ntn-nau3-2*nny) = -1.3;40 V2(nau4) = -.1;41 V2(nau4+nny) = -.1;42 V2(nau3) = -0.1;43 V2(nau3+nny) = -0.1;44 V2(nau3+2*nny) = -0.1;45 V2(nau1+1) = 0.1;46 V2(nau1+nny+1) = 0.1;47 V2(nau2+1) = 0.2;48 V2(nau2+nny+1) = 0.2;49 %50 % Calculo do numero de Peclet51 %52 pec1 = (V1*dx)/alfa;53 pec2 = (max(abs(V2))*dy)/alfa;54 %55 % Zerando as Matrizes e o vetor d56 %57 A = sparse(ntn,ntn);58 B = sparse(ntn,ntn);59 d = zeros(ntn,1);60 %61 % Estabelecendo a condicao inicial62 %63 u0 = zeros(ntn,1);64 for k=1:1:nny
  37. 37. 65 u0(k) = u0(k)+0.001;66 end;67 u0(ntn-nau3) = .3;68 u0(ntn-nau3-nny) = .3;69 u0(ntn-nau3-2*nny) = .3;70 u0(nau4) = .3;71 u0(nau4+nny) = .3;72 u0(nau3) = .3;73 u0(nau3+nny) = .3;74 u0(nau3+2*nny) = .3;75 u0(nau1+1) = .3;76 u0(nau1+nny+1) = .3;77 u0(nau2+1) = .3;78 u0(nau2+nny+1) = .3;79 %80 % Construcao das Matrizes do sistema81 %82 % Construção em Gama 083 %84 for i = 2:ny85 A(i,i+nny) = -alfa/dx;86 B(i,i+nny) = alfa/dx;87 A(i,i+2*nny)= alfa/(4*dx);88 B(i,i+2*nny)= -alfa/(4*dx);89 end;90 %91 % Construção para os nodos centrais92 %93 for j = 1:1:nx-1
  38. 38. 94 for i = nny*j+2:nny*j+ny95 A(i,i-nny) = -alfa*dt/(2*dx*dx)-V1*dt/(4*dx);96 B(i,i-nny) = +alfa*dt/(2*dx*dx)+V1*dt/(4*dx);97 A(i,i-1) = -alfa*dt/(2*dy*dy)-V2(i-1)/(4*dy);98 B(i,i-1) = +alfa*dt/(2*dy*dy)+V2(i-1)/(4*dy);99 A(i,i) = 1+alfa*dt/(dx*dx)+alfa*dt/(dy*dy)+sig*dt/2;100 B(i,i) = 1-alfa*dt/(dx*dx)-alfa*dt/(dy*dy)+sig*dt/2;101 A(i,i+1) = -alfa*dt/(2*dy*dy)+V2(i+1)*dt/(4*dy);102 B(i,i+1) = alfa*dt/(2*dy*dy)-V2(i+1)*dt/(4*dy);103 A(i,i+nny) = -alfa*dt/(2*dx*dx)+V1*dt/(4*dx);104 B(i,i+nny) = alfa*dt/(2*dx*dx)-V1*dt/(4*dx);105 end;106 end;107 %108 % Construção para a fronteira Gama 3109 %110 for i = 2*nny:nny:nx*nny111 A(i,i) = 3*alfa/(4*dy)-K3/2;112 B(i,i) = -3*alfa/(4*dy)-K3/2;113 A(i,i-1) = -alfa/(dy);114 B(i,i-1) = alfa/(dy);115 A(i,i-2) = alfa/(4*dy);116 B(i,i-2) = -alfa/(4*dy);117 end;118 %119 % Construção para a fronteira Gama 1120 %121 for j = 1:nx-1122 i = nny*j+1;
  39. 39. 123 A(i,i) = 3*alfa/(4*dy)-K1/2;124 B(i,i) = -3*alfa/(4*dy)-K1/2;125 A(i,i+1) = -alfa/(dy);126 B(i,i+1) = alfa/(dy);127 A(i,i+2) = alfa/(4*dy);128 B(i,i+2) = -alfa/(4*dy);129 end;130 %131 % Construção para a fronteira Gama 2132 %133 for i = nx*nny+1:ntn134 A(i,i) = 3*alfa/(4*dx)-K2/2;135 B(i,i) = -3*alfa/(4*dx)-K2/2;136 A(i,i-nny) = -alfa/(dx);137 B(i,i-nny) = alfa/(dx);138 A(i,i-2*nny) = alfa/(4*dx);139 B(i,i-2*nny) = -alfa/(4*dx);140 end;141 %142 % Estabelecendo vetor d143 %144 %for i = 10*ny:11*ny145 % d(i) = 0.0001;146 %end;147 d(ntn-nau3) = 0.0001;148 d(ntn-nau3-nny) = 0.0001;149 d(ntn-nau3-2*nny) = 0.0001;150 d(nau4) = 0.0002;151 d(nau4+nny) = 0.0002;
  40. 40. 152 d(nau3) = 0.0005;153 d(nau3+nny) = 0.0005;154 d(nau3+2*nny) = 0.0005;155 d(nau1+1) = 0.0003;156 d(nau1+nny+1) = 0.0003;157 d(nau2+1) = 0.0003;158 d(nau2+nny+1) = 0.0003;159 %160 % Fatoracao L U da matriz de rigidez161 %162 [ll uu] = lu(A);163 %164 % fazendo a matriz malha para o grid165 %166 k=0;167 for i=1:nx;168 for j=1:ny;169 k=k+1;170 ind = (i-1)*nny + j;171 malha(k,1)=ind;172 malha(k,2)=ind+nny;173 malha(k,3)=ind+1;174 k=k+1;175 malha(k,1)=ind+nny+1;176 malha(k,2)=ind+1;177 malha(k,3)=ind+nny;178 end;179 end;180 %
  41. 41. 181 % montagem da malha de coordenadas dos nos182 %183 k=0;184 for i=1:nnx185 x = (i-1)*dx;186 for j = 1:nny187 y = (j-1)*dy;188 k = k + 1;189 coord(k,1) = x;190 coord(k,2) = y;191 end;192 end;193 %194 % estruturando o vetor solucao para o grafico195 fig=figure;196 mov = avifile(animacao6.avi)197 trisurf(malha,coord(:,1),coord(:,2),u0),title(Cenario6),xlabel(Gamma_1),ylabel(Gamma_0),view(0,90),colorbar,shading interp;198 F = getframe(gca);199 mov = addframe(mov,F);200 %201 % resolução dos sucessivos sistemas.202 %203 nsp1 = 2*nny+ny/2; % Nó próximo a fronteira Gama 0204 nsp2 = (nx/2)*(ny/2); % Nó ao centro do domínio.205 nsp3 = (ntn-1)/2; % Nó próximo a fronteira Gama 3 - na parte central dodomínio206 nsp4 = ntn-ny/2-1; % Nó sobre a fronteira Gama 2207 %208 % resolução dos sucessivos sistemas.
  42. 42. 209 %210 for it = 1:nt211 nosep1(it) = u0(nsp1);212 nosep2(it) = u0(nsp2);213 nosep3(it) = u0(nsp3);214 nosep4(it) = u0(nsp4);215 t(it) = (it-1)*dt;216 ys = ll(B*u0+d);217 s = uuys;218 if mod(it,2)==1219 trisurf(malha,coord(:,1),coord(:,2),u0),title(Cenario6),xlabel(Gamma_1),ylabel(Gamma_0),view(0,90),colorbar,shading interp;220 F = getframe(gca);221 mov = addframe(mov,F);222 end;223 u0=s;224 end;225 t(it+1) = (it)*dt;226 nosep1(it+1) = u0(nsp1);227 nosep2(it+1) = u0(nsp2);228 nosep3(it+1) = u0(nsp3);229 nosep4(it+1) = u0(nsp4);230 mov = close(mov);231 subplot(2,2,1)232 plot(t,nosep1),grid on,title(Nó prox. Gamma_0), xlabel(tempo(horas)),ylabel(concentração(ppm));233 subplot(2,2,2)234 plot(t,nosep2),grid on,title(Nó ao centro de Omega), xlabel(tempo (horas)),ylabel(concentração(ppm));;235 subplot(2,2,3)
  43. 43. 236 plot(t,nosep3),grid on,title(Nó ao centro de Gamma_3), xlabel(tempo(horas)),ylabel(concentração(ppm));;237 subplot(2,2,4)238 plot(t,nosep4),grid on,title(Nó sobre Gamma_2), xlabel(tempo(horas)),ylabel(concentração(ppm));;239 etime(clock,t0);3. Teste Estação seca – Difusão Alta1 % Programa preliminar p/ diferencas finitas2 % Dispersao de esgoto no rio Cuiaba/MT - PIBIC Luiz Fernando3 % sexta vesao - 26/11/2010 - Teste estação seca - Difusão Alta4 %5 % Parametros do modelo6 %7 clear all; t0=clock; %format long;8 alfa = 0.32; % coeficiente de difusão9 sig = 0.1; % coeficiente de degradação10 V1 = 1.7; % velocidade do rio11 K1 = 0; % permeabilidade na fronteira Gama 112 K2 = 0; % permeabilidade na fronteira Gama 213 K3 = 0; % permeabilidade na fronteira Gama 314 %15 % Parametros da discretizacao16 %17 xmin = 0; xmax = 6.0;18 ymin = 0; ymax = 0.2;19 ti = 0; tf = 40;20 nx = 600;21 ny = 20;22 nt = 100;
  44. 44. 23 %24 % Calculo de parametros auxiliares25 %26 nnx= nx+1; nny= ny+1; ntn = nnx*nny; dt = (tf - ti)/nt;27 dx = (xmax - xmin)/nx;28 dy = (ymax - ymin)/ny;29 nau1 = round(nx/3)*nny;30 nau2 = round(2*nx/3)*nny;31 nau3 = round(nx/20)*nny;32 nau4 = round(nx/2)*nny;33 %34 % Construcao do campo V2 -> velocidades na direcao y35 %36 V2 = zeros(ntn,1);37 V2(ntn-nau3) = -1.3;38 V2(ntn-nau3-nny) = -1.3;39 V2(ntn-nau3-2*nny) = -1.3;40 V2(nau4) = -.1;41 V2(nau4+nny) = -.1;42 V2(nau3) = -0.1;43 V2(nau3+nny) = -0.1;44 V2(nau3+2*nny) = -0.1;45 V2(nau1+1) = 0.1;46 V2(nau1+nny+1) = 0.1;47 V2(nau2+1) = 0.2;48 V2(nau2+nny+1) = 0.2;49 %50 % Calculo do numero de Peclet51 %
  45. 45. 52 pec1 = (V1*dx)/alfa;53 pec2 = (max(abs(V2))*dy)/alfa;54 %55 % Zerando as Matrizes e o vetor d56 %57 A = sparse(ntn,ntn);58 B = sparse(ntn,ntn);59 d = zeros(ntn,1);60 %61 % Estabelecendo a condicao inicial62 %63 u0 = zeros(ntn,1);64 for k=1:1:nny65 u0(k) = u0(k)+0.001;66 end;67 u0(ntn-nau3) = .3;68 u0(ntn-nau3-nny) = .3;69 u0(ntn-nau3-2*nny) = .3;70 u0(nau4) = .3;71 u0(nau4+nny) = .3;72 u0(nau3) = .3;73 u0(nau3+nny) = .3;74 u0(nau3+2*nny) = .3;75 u0(nau1+1) = .3;76 u0(nau1+nny+1) = .3;77 u0(nau2+1) = .3;78 u0(nau2+nny+1) = .3;79 %80 % Construcao das Matrizes do sistema
  46. 46. 81 %82 % Construção em Gama 083 %84 for i = 2:ny85 A(i,i+nny) = -alfa/dx;86 B(i,i+nny) = alfa/dx;87 A(i,i+2*nny)= alfa/(4*dx);88 B(i,i+2*nny)= -alfa/(4*dx);89 end;90 %91 % Construção para os nodos centrais92 %93 for j = 1:1:nx-194 for i = nny*j+2:nny*j+ny95 A(i,i-nny) = -alfa*dt/(2*dx*dx)-V1*dt/(4*dx);96 B(i,i-nny) = +alfa*dt/(2*dx*dx)+V1*dt/(4*dx);97 A(i,i-1) = -alfa*dt/(2*dy*dy)-V2(i-1)/(4*dy);98 B(i,i-1) = +alfa*dt/(2*dy*dy)+V2(i-1)/(4*dy);99 A(i,i) = 1+alfa*dt/(dx*dx)+alfa*dt/(dy*dy)+sig*dt/2;100 B(i,i) = 1-alfa*dt/(dx*dx)-alfa*dt/(dy*dy)+sig*dt/2;101 A(i,i+1) = -alfa*dt/(2*dy*dy)+V2(i+1)*dt/(4*dy);102 B(i,i+1) = alfa*dt/(2*dy*dy)-V2(i+1)*dt/(4*dy);103 A(i,i+nny) = -alfa*dt/(2*dx*dx)+V1*dt/(4*dx);104 B(i,i+nny) = alfa*dt/(2*dx*dx)-V1*dt/(4*dx);105 end;106 end;107 %108 % Construção para a fronteira Gama 3109 %
  47. 47. 110 for i = 2*nny:nny:nx*nny111 A(i,i) = 3*alfa/(4*dy)-K3/2;112 B(i,i) = -3*alfa/(4*dy)-K3/2;113 A(i,i-1) = -alfa/(dy);114 B(i,i-1) = alfa/(dy);115 A(i,i-2) = alfa/(4*dy);116 B(i,i-2) = -alfa/(4*dy);117 end;118 %119 % Construção para a fronteira Gama 1120 %121 for j = 1:nx-1122 i = nny*j+1;123 A(i,i) = 3*alfa/(4*dy)-K1/2;124 B(i,i) = -3*alfa/(4*dy)-K1/2;125 A(i,i+1) = -alfa/(dy);126 B(i,i+1) = alfa/(dy);127 A(i,i+2) = alfa/(4*dy);128 B(i,i+2) = -alfa/(4*dy);129 end;130 %131 % Construção para a fronteira Gama 2132 %133 for i = nx*nny+1:ntn134 A(i,i) = 3*alfa/(4*dx)-K2/2;135 B(i,i) = -3*alfa/(4*dx)-K2/2;136 A(i,i-nny) = -alfa/(dx);137 B(i,i-nny) = alfa/(dx);138 A(i,i-2*nny) = alfa/(4*dx);
  48. 48. 139 B(i,i-2*nny) = -alfa/(4*dx);140 end;141 %142 % Estabelecendo vetor d143 %144 %for i = 10*ny:11*ny145 % d(i) = 0.0001;146 %end;147 d(ntn-nau3) = 0.0001;148 d(ntn-nau3-nny) = 0.0001;149 d(ntn-nau3-2*nny) = 0.0001;150 d(nau4) = 0.0002;151 d(nau4+nny) = 0.0002;152 d(nau3) = 0.0005;153 d(nau3+nny) = 0.0005;154 d(nau3+2*nny) = 0.0005;155 d(nau1+1) = 0.0003;156 d(nau1+nny+1) = 0.0003;157 d(nau2+1) = 0.0003;158 d(nau2+nny+1) = 0.0003;159 %160 % Fatoracao L U da matriz de rigidez161 %162 [ll uu] = lu(A);163 %164 % fazendo a matriz malha para o grid165 %166 k=0;167 for i=1:nx;
  49. 49. 168 for j=1:ny;169 k=k+1;170 ind = (i-1)*nny + j;171 malha(k,1)=ind;172 malha(k,2)=ind+nny;173 malha(k,3)=ind+1;174 k=k+1;175 malha(k,1)=ind+nny+1;176 malha(k,2)=ind+1;177 malha(k,3)=ind+nny;178 end;179 end;180 %181 % montagem da malha de coordenadas dos nos182 %183 k=0;184 for i=1:nnx185 x = (i-1)*dx;186 for j = 1:nny187 y = (j-1)*dy;188 k = k + 1;189 coord(k,1) = x;190 coord(k,2) = y;191 end;192 end;193 %194 % estruturando o vetor solucao para o grafico195 fig=figure;196 mov = avifile(animacao6.avi)
  50. 50. 197 trisurf(malha,coord(:,1),coord(:,2),u0),title(Cenario6),xlabel(Gamma_1),ylabel(Gamma_0),view(0,90),colorbar,shading interp;198 F = getframe(gca);199 mov = addframe(mov,F);200 %201 % resolução dos sucessivos sistemas.202 %203 nsp1 = 2*nny+ny/2; % Nó próximo a fronteira Gama 0204 nsp2 = (nx/2)*(ny/2); % Nó ao centro do domínio.205 nsp3 = (ntn-1)/2; % Nó próximo a fronteira Gama 3 - na parte central dodomínio206 nsp4 = ntn-ny/2-1; % Nó sobre a fronteira Gama 2207 %208 % resolução dos sucessivos sistemas.209 %210 for it = 1:nt211 nosep1(it) = u0(nsp1);212 nosep2(it) = u0(nsp2);213 nosep3(it) = u0(nsp3);214 nosep4(it) = u0(nsp4);215 t(it) = (it-1)*dt;216 ys = ll(B*u0+d);217 s = uuys;218 if mod(it,2)==1219 trisurf(malha,coord(:,1),coord(:,2),u0),title(Cenario6),xlabel(Gamma_1),ylabel(Gamma_0),view(0,90),colorbar,shading interp;220 F = getframe(gca);221 mov = addframe(mov,F);222 end;223 u0=s;224 end;
  51. 51. 225 t(it+1) = (it)*dt;226 nosep1(it+1) = u0(nsp1);227 nosep2(it+1) = u0(nsp2);228 nosep3(it+1) = u0(nsp3);229 nosep4(it+1) = u0(nsp4);230 mov = close(mov);231 subplot(2,2,1)232 plot(t,nosep1),grid on,title(Nó prox. Gamma_0), xlabel(tempo(horas)),ylabel(concentração(ppm));233 subplot(2,2,2)234 plot(t,nosep2),grid on,title(Nó ao centro de Omega), xlabel(tempo (horas)),ylabel(concentração(ppm));;235 subplot(2,2,3)236 plot(t,nosep3),grid on,title(Nó ao centro de Gamma_3), xlabel(tempo(horas)),ylabel(concentração(ppm));;237 subplot(2,2,4)238 plot(t,nosep4),grid on,title(Nó sobre Gamma_2), xlabel(tempo(horas)),ylabel(concentração(ppm));;239 etime(clock,t0);4. Teste Estação úmida – Difusão Baixa1 % Programa preliminar p/ diferencas finitas2 % Dispersao de esgoto no rio Cuiaba/MT - PIBIC Luiz Fernando3 % sexta vesao - 26/11/2010 - Teste estação úmida - Difusão Baixa4 %5 % Parametros do modelo6 %7 clear all; t0=clock; %format long;8 alfa = 0.09; % coeficiente de difusão9 sig = 0.1; % coeficiente de degradação10 V1 = 3.0; % velocidade do rio
  52. 52. 11 K1 = 0; % permeabilidade na fronteira Gama 112 K2 = 0; % permeabilidade na fronteira Gama 213 K3 = 0; % permeabilidade na fronteira Gama 314 %15 % Parametros da discretizacao16 %17 xmin = 0; xmax = 6.0;18 ymin = 0; ymax = 0.2;19 ti = 0; tf = 40;20 nx = 600;21 ny = 20;22 nt = 100;23 %24 % Calculo de parametros auxiliares25 %26 nnx= nx+1; nny= ny+1; ntn = nnx*nny; dt = (tf - ti)/nt;27 dx = (xmax - xmin)/nx;28 dy = (ymax - ymin)/ny;29 nau1 = round(nx/3)*nny;30 nau2 = round(2*nx/3)*nny;31 nau3 = round(nx/20)*nny;32 nau4 = round(nx/2)*nny;33 %34 % Construcao do campo V2 -> velocidades na direcao y35 %36 V2 = zeros(ntn,1);37 V2(ntn-nau3) = -1.3;38 V2(ntn-nau3-nny) = -1.3;39 V2(ntn-nau3-2*nny) = -1.3;
  53. 53. 40 V2(nau4) = -.1;41 V2(nau4+nny) = -.1;42 V2(nau3) = -0.1;43 V2(nau3+nny) = -0.1;44 V2(nau3+2*nny) = -0.1;45 V2(nau1+1) = 0.1;46 V2(nau1+nny+1) = 0.1;47 V2(nau2+1) = 0.2;48 V2(nau2+nny+1) = 0.2;49 %50 % Calculo do numero de Peclet51 %52 pec1 = (V1*dx)/alfa;53 pec2 = (max(abs(V2))*dy)/alfa;54 %55 % Zerando as Matrizes e o vetor d56 %57 A = sparse(ntn,ntn);58 B = sparse(ntn,ntn);59 d = zeros(ntn,1);60 %61 % Estabelecendo a condicao inicial62 %63 u0 = zeros(ntn,1);64 for k=1:1:nny65 u0(k) = u0(k)+0.001;66 end;67 u0(ntn-nau3) = .3;68 u0(ntn-nau3-nny) = .3;
  54. 54. 69 u0(ntn-nau3-2*nny) = .3;70 u0(nau4) = .3;71 u0(nau4+nny) = .3;72 u0(nau3) = .3;73 u0(nau3+nny) = .3;74 u0(nau3+2*nny) = .3;75 u0(nau1+1) = .3;76 u0(nau1+nny+1) = .3;77 u0(nau2+1) = .3;78 u0(nau2+nny+1) = .3;79 %80 % Construcao das Matrizes do sistema81 %82 % Construção em Gama 083 %84 for i = 2:ny85 A(i,i+nny) = -alfa/dx;86 B(i,i+nny) = alfa/dx;87 A(i,i+2*nny)= alfa/(4*dx);88 B(i,i+2*nny)= -alfa/(4*dx);89 end;90 %91 % Construção para os nodos centrais92 %93 for j = 1:1:nx-194 for i = nny*j+2:nny*j+ny95 A(i,i-nny) = -alfa*dt/(2*dx*dx)-V1*dt/(4*dx);96 B(i,i-nny) = +alfa*dt/(2*dx*dx)+V1*dt/(4*dx);97 A(i,i-1) = -alfa*dt/(2*dy*dy)-V2(i-1)/(4*dy);
  55. 55. 98 B(i,i-1) = +alfa*dt/(2*dy*dy)+V2(i-1)/(4*dy);99 A(i,i) = 1+alfa*dt/(dx*dx)+alfa*dt/(dy*dy)+sig*dt/2;100 B(i,i) = 1-alfa*dt/(dx*dx)-alfa*dt/(dy*dy)+sig*dt/2;101 A(i,i+1) = -alfa*dt/(2*dy*dy)+V2(i+1)*dt/(4*dy);102 B(i,i+1) = alfa*dt/(2*dy*dy)-V2(i+1)*dt/(4*dy);103 A(i,i+nny) = -alfa*dt/(2*dx*dx)+V1*dt/(4*dx);104 B(i,i+nny) = alfa*dt/(2*dx*dx)-V1*dt/(4*dx);105 end;106 end;107 %108 % Construção para a fronteira Gama 3109 %110 for i = 2*nny:nny:nx*nny111 A(i,i) = 3*alfa/(4*dy)-K3/2;112 B(i,i) = -3*alfa/(4*dy)-K3/2;113 A(i,i-1) = -alfa/(dy);114 B(i,i-1) = alfa/(dy);115 A(i,i-2) = alfa/(4*dy);116 B(i,i-2) = -alfa/(4*dy);117 end;118 %119 % Construção para a fronteira Gama 1120 %121 for j = 1:nx-1122 i = nny*j+1;123 A(i,i) = 3*alfa/(4*dy)-K1/2;124 B(i,i) = -3*alfa/(4*dy)-K1/2;125 A(i,i+1) = -alfa/(dy);126 B(i,i+1) = alfa/(dy);
  56. 56. 127 A(i,i+2) = alfa/(4*dy);128 B(i,i+2) = -alfa/(4*dy);129 end;130 %131 % Construção para a fronteira Gama 2132 %133 for i = nx*nny+1:ntn134 A(i,i) = 3*alfa/(4*dx)-K2/2;135 B(i,i) = -3*alfa/(4*dx)-K2/2;136 A(i,i-nny) = -alfa/(dx);137 B(i,i-nny) = alfa/(dx);138 A(i,i-2*nny) = alfa/(4*dx);139 B(i,i-2*nny) = -alfa/(4*dx);140 end;141 %142 % Estabelecendo vetor d143 %144 %for i = 10*ny:11*ny145 % d(i) = 0.0001;146 %end;147 d(ntn-nau3) = 0.0001;148 d(ntn-nau3-nny) = 0.0001;149 d(ntn-nau3-2*nny) = 0.0001;150 d(nau4) = 0.0002;151 d(nau4+nny) = 0.0002;152 d(nau3) = 0.0005;153 d(nau3+nny) = 0.0005;154 d(nau3+2*nny) = 0.0005;155 d(nau1+1) = 0.0003;
  57. 57. 156 d(nau1+nny+1) = 0.0003;157 d(nau2+1) = 0.0003;158 d(nau2+nny+1) = 0.0003;159 %160 % Fatoracao L U da matriz de rigidez161 %162 [ll uu] = lu(A);163 %164 % fazendo a matriz malha para o grid165 %166 k=0;167 for i=1:nx;168 for j=1:ny;169 k=k+1;170 ind = (i-1)*nny + j;171 malha(k,1)=ind;172 malha(k,2)=ind+nny;173 malha(k,3)=ind+1;174 k=k+1;175 malha(k,1)=ind+nny+1;176 malha(k,2)=ind+1;177 malha(k,3)=ind+nny;178 end;179 end;180 %181 % montagem da malha de coordenadas dos nos182 %183 k=0;184 for i=1:nnx
  58. 58. 185 x = (i-1)*dx;186 for j = 1:nny187 y = (j-1)*dy;188 k = k + 1;189 coord(k,1) = x;190 coord(k,2) = y;191 end;192 end;193 %194 % estruturando o vetor solucao para o grafico195 fig=figure;196 mov = avifile(animacao6.avi)197 trisurf(malha,coord(:,1),coord(:,2),u0),title(Cenario6),xlabel(Gamma_1),ylabel(Gamma_0),view(0,90),colorbar,shading interp;198 F = getframe(gca);199 mov = addframe(mov,F);200 %201 % resolução dos sucessivos sistemas.202 %203 nsp1 = 2*nny+ny/2; % Nó próximo a fronteira Gama 0204 nsp2 = (nx/2)*(ny/2); % Nó ao centro do domínio.205 nsp3 = (ntn-1)/2; % Nó próximo a fronteira Gama 3 - na parte central dodomínio206 nsp4 = ntn-ny/2-1; % Nó sobre a fronteira Gama 2207 %208 % resolução dos sucessivos sistemas.209 %210 for it = 1:nt211 nosep1(it) = u0(nsp1);212 nosep2(it) = u0(nsp2);
  59. 59. 213 nosep3(it) = u0(nsp3);214 nosep4(it) = u0(nsp4);215 t(it) = (it-1)*dt;216 ys = ll(B*u0+d);217 s = uuys;218 if mod(it,2)==1219 trisurf(malha,coord(:,1),coord(:,2),u0),title(Cenario6),xlabel(Gamma_1),ylabel(Gamma_0),view(0,90),colorbar,shading interp;220 F = getframe(gca);221 mov = addframe(mov,F);222 end;223 u0=s;224 end;225 t(it+1) = (it)*dt;226 nosep1(it+1) = u0(nsp1);227 nosep2(it+1) = u0(nsp2);228 nosep3(it+1) = u0(nsp3);229 nosep4(it+1) = u0(nsp4);230 mov = close(mov);231 subplot(2,2,1)232 plot(t,nosep1),grid on,title(Nó prox. Gamma_0), xlabel(tempo(horas)),ylabel(concentração(ppm));233 subplot(2,2,2)234 plot(t,nosep2),grid on,title(Nó ao centro de Omega), xlabel(tempo (horas)),ylabel(concentração(ppm));;235 subplot(2,2,3)236 plot(t,nosep3),grid on,title(Nó ao centro de Gamma_3), xlabel(tempo(horas)),ylabel(concentração(ppm));;237 subplot(2,2,4)238 plot(t,nosep4),grid on,title(Nó sobre Gamma_2), xlabel(tempo(horas)),ylabel(concentração(ppm));;
  60. 60. 239 etime(clock,t0);5. Teste Estação úmida – Difusão Média1 % Programa preliminar p/ diferencas finitas2 % Dispersao de esgoto no rio Cuiaba/MT - PIBIC Luiz Fernando3 % sexta vesao - 26/11/2010 - Teste estação úmida - Difusão Baixa4 %5 % Parametros do modelo6 %7 clear all; t0=clock; %format long;8 alfa = 0.23; % coeficiente de difusão9 sig = 0.1; % coeficiente de degradação10 V1 = 3.0; % velocidade do rio11 K1 = 0; % permeabilidade na fronteira Gama 112 K2 = 0; % permeabilidade na fronteira Gama 213 K3 = 0; % permeabilidade na fronteira Gama 314 %15 % Parametros da discretizacao16 %17 xmin = 0; xmax = 6.0;18 ymin = 0; ymax = 0.2;19 ti = 0; tf = 40;20 nx = 600;21 ny = 20;22 nt = 100;23 %24 % Calculo de parametros auxiliares25 %26 nnx= nx+1; nny= ny+1; ntn = nnx*nny; dt = (tf - ti)/nt;
  61. 61. 27 dx = (xmax - xmin)/nx;28 dy = (ymax - ymin)/ny;29 nau1 = round(nx/3)*nny;30 nau2 = round(2*nx/3)*nny;31 nau3 = round(nx/20)*nny;32 nau4 = round(nx/2)*nny;33 %34 % Construcao do campo V2 -> velocidades na direcao y35 %36 V2 = zeros(ntn,1);37 V2(ntn-nau3) = -1.3;38 V2(ntn-nau3-nny) = -1.3;39 V2(ntn-nau3-2*nny) = -1.3;40 V2(nau4) = -.1;41 V2(nau4+nny) = -.1;42 V2(nau3) = -0.1;43 V2(nau3+nny) = -0.1;44 V2(nau3+2*nny) = -0.1;45 V2(nau1+1) = 0.1;46 V2(nau1+nny+1) = 0.1;47 V2(nau2+1) = 0.2;48 V2(nau2+nny+1) = 0.2;49 %50 % Calculo do numero de Peclet51 %52 pec1 = (V1*dx)/alfa;53 pec2 = (max(abs(V2))*dy)/alfa;54 %55 % Zerando as Matrizes e o vetor d
  62. 62. 56 %57 A = sparse(ntn,ntn);58 B = sparse(ntn,ntn);59 d = zeros(ntn,1);60 %61 % Estabelecendo a condicao inicial62 %63 u0 = zeros(ntn,1);64 for k=1:1:nny65 u0(k) = u0(k)+0.001;66 end;67 u0(ntn-nau3) = .3;68 u0(ntn-nau3-nny) = .3;69 u0(ntn-nau3-2*nny) = .3;70 u0(nau4) = .3;71 u0(nau4+nny) = .3;72 u0(nau3) = .3;73 u0(nau3+nny) = .3;74 u0(nau3+2*nny) = .3;75 u0(nau1+1) = .3;76 u0(nau1+nny+1) = .3;77 u0(nau2+1) = .3;78 u0(nau2+nny+1) = .3;79 %80 % Construcao das Matrizes do sistema81 %82 % Construção em Gama 083 %84 for i = 2:ny
  63. 63. 85 A(i,i+nny) = -alfa/dx;86 B(i,i+nny) = alfa/dx;87 A(i,i+2*nny)= alfa/(4*dx);88 B(i,i+2*nny)= -alfa/(4*dx);89 end;90 %91 % Construção para os nodos centrais92 %93 for j = 1:1:nx-194 for i = nny*j+2:nny*j+ny95 A(i,i-nny) = -alfa*dt/(2*dx*dx)-V1*dt/(4*dx);96 B(i,i-nny) = +alfa*dt/(2*dx*dx)+V1*dt/(4*dx);97 A(i,i-1) = -alfa*dt/(2*dy*dy)-V2(i-1)/(4*dy);98 B(i,i-1) = +alfa*dt/(2*dy*dy)+V2(i-1)/(4*dy);99 A(i,i) = 1+alfa*dt/(dx*dx)+alfa*dt/(dy*dy)+sig*dt/2;100 B(i,i) = 1-alfa*dt/(dx*dx)-alfa*dt/(dy*dy)+sig*dt/2;101 A(i,i+1) = -alfa*dt/(2*dy*dy)+V2(i+1)*dt/(4*dy);102 B(i,i+1) = alfa*dt/(2*dy*dy)-V2(i+1)*dt/(4*dy);103 A(i,i+nny) = -alfa*dt/(2*dx*dx)+V1*dt/(4*dx);104 B(i,i+nny) = alfa*dt/(2*dx*dx)-V1*dt/(4*dx);105 end;106 end;107 %108 % Construção para a fronteira Gama 3109 %110 for i = 2*nny:nny:nx*nny111 A(i,i) = 3*alfa/(4*dy)-K3/2;112 B(i,i) = -3*alfa/(4*dy)-K3/2;113 A(i,i-1) = -alfa/(dy);
  64. 64. 114 B(i,i-1) = alfa/(dy);115 A(i,i-2) = alfa/(4*dy);116 B(i,i-2) = -alfa/(4*dy);117 end;118 %119 % Construção para a fronteira Gama 1120 %121 for j = 1:nx-1122 i = nny*j+1;123 A(i,i) = 3*alfa/(4*dy)-K1/2;124 B(i,i) = -3*alfa/(4*dy)-K1/2;125 A(i,i+1) = -alfa/(dy);126 B(i,i+1) = alfa/(dy);127 A(i,i+2) = alfa/(4*dy);128 B(i,i+2) = -alfa/(4*dy);129 end;130 %131 % Construção para a fronteira Gama 2132 %133 for i = nx*nny+1:ntn134 A(i,i) = 3*alfa/(4*dx)-K2/2;135 B(i,i) = -3*alfa/(4*dx)-K2/2;136 A(i,i-nny) = -alfa/(dx);137 B(i,i-nny) = alfa/(dx);138 A(i,i-2*nny) = alfa/(4*dx);139 B(i,i-2*nny) = -alfa/(4*dx);140 end;141 %142 % Estabelecendo vetor d
  65. 65. 143 %144 %for i = 10*ny:11*ny145 % d(i) = 0.0001;146 %end;147 d(ntn-nau3) = 0.0001;148 d(ntn-nau3-nny) = 0.0001;149 d(ntn-nau3-2*nny) = 0.0001;150 d(nau4) = 0.0002;151 d(nau4+nny) = 0.0002;152 d(nau3) = 0.0005;153 d(nau3+nny) = 0.0005;154 d(nau3+2*nny) = 0.0005;155 d(nau1+1) = 0.0003;156 d(nau1+nny+1) = 0.0003;157 d(nau2+1) = 0.0003;158 d(nau2+nny+1) = 0.0003;159 %160 % Fatoracao L U da matriz de rigidez161 %162 [ll uu] = lu(A);163 %164 % fazendo a matriz malha para o grid165 %166 k=0;167 for i=1:nx;168 for j=1:ny;169 k=k+1;170 ind = (i-1)*nny + j;171 malha(k,1)=ind;
  66. 66. 172 malha(k,2)=ind+nny;173 malha(k,3)=ind+1;174 k=k+1;175 malha(k,1)=ind+nny+1;176 malha(k,2)=ind+1;177 malha(k,3)=ind+nny;178 end;179 end;180 %181 % montagem da malha de coordenadas dos nos182 %183 k=0;184 for i=1:nnx185 x = (i-1)*dx;186 for j = 1:nny187 y = (j-1)*dy;188 k = k + 1;189 coord(k,1) = x;190 coord(k,2) = y;191 end;192 end;193 %194 % estruturando o vetor solucao para o grafico195 fig=figure;196 mov = avifile(animacao6.avi)197 trisurf(malha,coord(:,1),coord(:,2),u0),title(Cenario6),xlabel(Gamma_1),ylabel(Gamma_0),view(0,90),colorbar,shading interp;198 F = getframe(gca);199 mov = addframe(mov,F);200 %
  67. 67. 201 % resolução dos sucessivos sistemas.202 %203 nsp1 = 2*nny+ny/2; % Nó próximo a fronteira Gama 0204 nsp2 = (nx/2)*(ny/2); % Nó ao centro do domínio.205 nsp3 = (ntn-1)/2; % Nó próximo a fronteira Gama 3 - na parte central dodomínio206 nsp4 = ntn-ny/2-1; % Nó sobre a fronteira Gama 2207 %208 % resolução dos sucessivos sistemas.209 %210 for it = 1:nt211 nosep1(it) = u0(nsp1);212 nosep2(it) = u0(nsp2);213 nosep3(it) = u0(nsp3);214 nosep4(it) = u0(nsp4);215 t(it) = (it-1)*dt;216 ys = ll(B*u0+d);217 s = uuys;218 if mod(it,2)==1219 trisurf(malha,coord(:,1),coord(:,2),u0),title(Cenario6),xlabel(Gamma_1),ylabel(Gamma_0),view(0,90),colorbar,shading interp;220 F = getframe(gca);221 mov = addframe(mov,F);222 end;223 u0=s;224 end;225 t(it+1) = (it)*dt;226 nosep1(it+1) = u0(nsp1);227 nosep2(it+1) = u0(nsp2);228 nosep3(it+1) = u0(nsp3);
  68. 68. 229 nosep4(it+1) = u0(nsp4);230 mov = close(mov);231 subplot(2,2,1)232 plot(t,nosep1),grid on,title(Nó prox. Gamma_0), xlabel(tempo(horas)),ylabel(concentração(ppm));233 subplot(2,2,2)234 plot(t,nosep2),grid on,title(Nó ao centro de Omega), xlabel(tempo (horas)),ylabel(concentração(ppm));;235 subplot(2,2,3)236 plot(t,nosep3),grid on,title(Nó ao centro de Gamma_3), xlabel(tempo(horas)),ylabel(concentração(ppm));;237 subplot(2,2,4)238 plot(t,nosep4),grid on,title(Nó sobre Gamma_2), xlabel(tempo(horas)),ylabel(concentração(ppm));;239 etime(clock,t0);6. Teste Estação Úmida – Difusão Alta1 % Programa preliminar p/ diferencas finitas2 % Dispersao de esgoto no rio Cuiaba/MT - PIBIC Luiz Fernando3 % sexta vesao - 26/11/2010 - Teste estação úmida - Difusão Alta4 %5 % Parametros do modelo6 %7 clear all; t0=clock; %format long;8 alfa = 0.32; % coeficiente de difusão9 sig = 0.1; % coeficiente de degradação10 V1 = 3.0; % velocidade do rio11 K1 = 0; % permeabilidade na fronteira Gama 112 K2 = 0; % permeabilidade na fronteira Gama 213 K3 = 0; % permeabilidade na fronteira Gama 314 %
  69. 69. 15 % Parametros da discretizacao16 %17 xmin = 0; xmax = 6.0;18 ymin = 0; ymax = 0.2;19 ti = 0; tf = 40;20 nx = 600;21 ny = 20;22 nt = 100;23 %24 % Calculo de parametros auxiliares25 %26 nnx= nx+1; nny= ny+1; ntn = nnx*nny; dt = (tf - ti)/nt;27 dx = (xmax - xmin)/nx;28 dy = (ymax - ymin)/ny;29 nau1 = round(nx/3)*nny;30 nau2 = round(2*nx/3)*nny;31 nau3 = round(nx/20)*nny;32 nau4 = round(nx/2)*nny;33 %34 % Construcao do campo V2 -> velocidades na direcao y35 %36 V2 = zeros(ntn,1);37 V2(ntn-nau3) = -1.3;38 V2(ntn-nau3-nny) = -1.3;39 V2(ntn-nau3-2*nny) = -1.3;40 V2(nau4) = -.1;41 V2(nau4+nny) = -.1;42 V2(nau3) = -0.1;43 V2(nau3+nny) = -0.1;
  70. 70. 44 V2(nau3+2*nny) = -0.1;45 V2(nau1+1) = 0.1;46 V2(nau1+nny+1) = 0.1;47 V2(nau2+1) = 0.2;48 V2(nau2+nny+1) = 0.2;49 %50 % Calculo do numero de Peclet51 %52 pec1 = (V1*dx)/alfa;53 pec2 = (max(abs(V2))*dy)/alfa;54 %55 % Zerando as Matrizes e o vetor d56 %57 A = sparse(ntn,ntn);58 B = sparse(ntn,ntn);59 d = zeros(ntn,1);60 %61 % Estabelecendo a condicao inicial62 %63 u0 = zeros(ntn,1);64 for k=1:1:nny65 u0(k) = u0(k)+0.001;66 end;67 u0(ntn-nau3) = .3;68 u0(ntn-nau3-nny) = .3;69 u0(ntn-nau3-2*nny) = .3;70 u0(nau4) = .3;71 u0(nau4+nny) = .3;72 u0(nau3) = .3;
  71. 71. 73 u0(nau3+nny) = .3;74 u0(nau3+2*nny) = .3;75 u0(nau1+1) = .3;76 u0(nau1+nny+1) = .3;77 u0(nau2+1) = .3;78 u0(nau2+nny+1) = .3;79 %80 % Construcao das Matrizes do sistema81 %82 % Construção em Gama 083 %84 for i = 2:ny85 A(i,i+nny) = -alfa/dx;86 B(i,i+nny) = alfa/dx;87 A(i,i+2*nny)= alfa/(4*dx);88 B(i,i+2*nny)= -alfa/(4*dx);89 end;90 %91 % Construção para os nodos centrais92 %93 for j = 1:1:nx-194 for i = nny*j+2:nny*j+ny95 A(i,i-nny) = -alfa*dt/(2*dx*dx)-V1*dt/(4*dx);96 B(i,i-nny) = +alfa*dt/(2*dx*dx)+V1*dt/(4*dx);97 A(i,i-1) = -alfa*dt/(2*dy*dy)-V2(i-1)/(4*dy);98 B(i,i-1) = +alfa*dt/(2*dy*dy)+V2(i-1)/(4*dy);99 A(i,i) = 1+alfa*dt/(dx*dx)+alfa*dt/(dy*dy)+sig*dt/2;100 B(i,i) = 1-alfa*dt/(dx*dx)-alfa*dt/(dy*dy)+sig*dt/2;101 A(i,i+1) = -alfa*dt/(2*dy*dy)+V2(i+1)*dt/(4*dy);
  72. 72. 102 B(i,i+1) = alfa*dt/(2*dy*dy)-V2(i+1)*dt/(4*dy);103 A(i,i+nny) = -alfa*dt/(2*dx*dx)+V1*dt/(4*dx);104 B(i,i+nny) = alfa*dt/(2*dx*dx)-V1*dt/(4*dx);105 end;106 end;107 %108 % Construção para a fronteira Gama 3109 %110 for i = 2*nny:nny:nx*nny111 A(i,i) = 3*alfa/(4*dy)-K3/2;112 B(i,i) = -3*alfa/(4*dy)-K3/2;113 A(i,i-1) = -alfa/(dy);114 B(i,i-1) = alfa/(dy);115 A(i,i-2) = alfa/(4*dy);116 B(i,i-2) = -alfa/(4*dy);117 end;118 %119 % Construção para a fronteira Gama 1120 %121 for j = 1:nx-1122 i = nny*j+1;123 A(i,i) = 3*alfa/(4*dy)-K1/2;124 B(i,i) = -3*alfa/(4*dy)-K1/2;125 A(i,i+1) = -alfa/(dy);126 B(i,i+1) = alfa/(dy);127 A(i,i+2) = alfa/(4*dy);128 B(i,i+2) = -alfa/(4*dy);129 end;130 %
  73. 73. 131 % Construção para a fronteira Gama 2132 %133 for i = nx*nny+1:ntn134 A(i,i) = 3*alfa/(4*dx)-K2/2;135 B(i,i) = -3*alfa/(4*dx)-K2/2;136 A(i,i-nny) = -alfa/(dx);137 B(i,i-nny) = alfa/(dx);138 A(i,i-2*nny) = alfa/(4*dx);139 B(i,i-2*nny) = -alfa/(4*dx);140 end;141 %142 % Estabelecendo vetor d143 %144 %for i = 10*ny:11*ny145 % d(i) = 0.0001;146 %end;147 d(ntn-nau3) = 0.0001;148 d(ntn-nau3-nny) = 0.0001;149 d(ntn-nau3-2*nny) = 0.0001;150 d(nau4) = 0.0002;151 d(nau4+nny) = 0.0002;152 d(nau3) = 0.0005;153 d(nau3+nny) = 0.0005;154 d(nau3+2*nny) = 0.0005;155 d(nau1+1) = 0.0003;156 d(nau1+nny+1) = 0.0003;157 d(nau2+1) = 0.0003;158 d(nau2+nny+1) = 0.0003;159 %
  74. 74. 160 % Fatoracao L U da matriz de rigidez161 %162 [ll uu] = lu(A);163 %164 % fazendo a matriz malha para o grid165 %166 k=0;167 for i=1:nx;168 for j=1:ny;169 k=k+1;170 ind = (i-1)*nny + j;171 malha(k,1)=ind;172 malha(k,2)=ind+nny;173 malha(k,3)=ind+1;174 k=k+1;175 malha(k,1)=ind+nny+1;176 malha(k,2)=ind+1;177 malha(k,3)=ind+nny;178 end;179 end;180 %181 % montagem da malha de coordenadas dos nos182 %183 k=0;184 for i=1:nnx185 x = (i-1)*dx;186 for j = 1:nny187 y = (j-1)*dy;188 k = k + 1;
  75. 75. 189 coord(k,1) = x;190 coord(k,2) = y;191 end;192 end;193 %194 % estruturando o vetor solucao para o grafico195 fig=figure;196 mov = avifile(animacao6.avi)197 trisurf(malha,coord(:,1),coord(:,2),u0),title(Cenario6),xlabel(Gamma_1),ylabel(Gamma_0),view(0,90),colorbar,shading interp;198 F = getframe(gca);199 mov = addframe(mov,F);200 %201 % resolução dos sucessivos sistemas.202 %203 nsp1 = 2*nny+ny/2; % Nó próximo a fronteira Gama 0204 nsp2 = (nx/2)*(ny/2); % Nó ao centro do domínio.205 nsp3 = (ntn-1)/2; % Nó próximo a fronteira Gama 3 - na parte central dodomínio206 nsp4 = ntn-ny/2-1; % Nó sobre a fronteira Gama 2207 %208 % resolução dos sucessivos sistemas.209 %210 for it = 1:nt211 nosep1(it) = u0(nsp1);212 nosep2(it) = u0(nsp2);213 nosep3(it) = u0(nsp3);214 nosep4(it) = u0(nsp4);215 t(it) = (it-1)*dt;216 ys = ll(B*u0+d);
  76. 76. 217 s = uuys;218 if mod(it,2)==1219 trisurf(malha,coord(:,1),coord(:,2),u0),title(Cenario6),xlabel(Gamma_1),ylabel(Gamma_0),view(0,90),colorbar,shading interp;220 F = getframe(gca);221 mov = addframe(mov,F);222 end;223 u0=s;224 end;225 t(it+1) = (it)*dt;226 nosep1(it+1) = u0(nsp1);227 nosep2(it+1) = u0(nsp2);228 nosep3(it+1) = u0(nsp3);229 nosep4(it+1) = u0(nsp4);230 mov = close(mov);231 subplot(2,2,1)232 plot(t,nosep1),grid on,title(Nó prox. Gamma_0), xlabel(tempo(horas)),ylabel(concentração(ppm));233 subplot(2,2,2)234 plot(t,nosep2),grid on,title(Nó ao centro de Omega), xlabel(tempo (horas)),ylabel(concentração(ppm));;235 subplot(2,2,3)236 plot(t,nosep3),grid on,title(Nó ao centro de Gamma_3), xlabel(tempo(horas)),ylabel(concentração(ppm));;237 subplot(2,2,4)238 plot(t,nosep4),grid on,title(Nó sobre Gamma_2), xlabel(tempo(horas)),ylabel(concentração(ppm));;239 etime(clock,t0);

×