SlideShare uma empresa Scribd logo
Seminários de Matemática Aplicada e Pesquisa em Ensino – Prática IV




  CONTAMINAÇÃO METROPOLITANA DO
RIO CUIABÁ: MODELAGEM E SIMULAÇÃO
                        DE CENÁRIOS


          Luiz Fernando de Moraes Campos Filho

            Orientador: Prof. Dr. Geraldo Lucio Diniz




NOVEMBRO/2010                                                  2010/2




INSTITUTO DE CIÊNCIAS EXATAS E DA TERRA




                               UFMT

 UNIVERSIDADE FEDERAL DE MATO GROSSO
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
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ças
finitas.


      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 differences
method.
1     INTRODUÇÃO



      A água é um dos recursos naturais mais intensamente utilizados. É fundamental
para a existência e manutenção da vida e, para isso, deve estar presente no ambiente em
quantidade e qualidade apropriadas.

      Dentre os benefícios que a água promove ao ser humano estão: abastecimento
residencial, abastecimento industrial, irrigação, geração de energia elétrica, agricultura e
recreação. Todavia, se a água não estiver em condições apropriadas todos os benefícios
citados 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 das
principais 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üentemente
aos seus usuários (Alegria e Diniz, 2007).

      Outro dado importante também é que o volume de água na Terra está estimado em
1 trilhão e 386 bilhões de quilômetros cúbicos (Km3), sendo a maior parte - 97,2% desse
total - formada pela água salgada dos mares e oceanos. Algo como 1,8% da água total
está estocada sob a forma de neve ou gelo, no topo das grandes cadeias de montanhas
ou 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 quantia
vem sofrendo com os impactos ambientais causados pelo homem, correndo risco até de
num tempo muito curto se extinguir (Fonte do saber, 2010).

      Dentre os rios que sofrem com este problema está o Rio Cuiabá. Este rio é de
grande importância para a população de Mato Grosso, pois sua bacia hidrográfica
abrange 75% da população do estado e a maioria desse total é constituído de habitantes
de Cuiabá e Várzea Grande. (Wolmuth e Diniz, 2005).

      O crescimento populacional das cidades de Cuiabá e Várzea Grande e a falta de
infra-estrutura existente nelas vêm causando grandes prejuízos ambientais. Estas
cidades depositam, diariamente, cerca de 20 toneladas de resíduos sólidos (lixo
doméstico) e 400 mil litros de esgoto doméstico e industrial no rio Cuiabá (Wolmuth e
Diniz, 2005).

     Atualmente, cerca de 31% dos domicílios, em Cuiabá, estão conectados ao
sistema 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 24
horas por dia, o que mostra a necessidade de investimentos do poder público em
saneamento básico (Safford, 2009).

     Pelos dados acima, se pode concluir que grande parte do esgoto não é tratada
adequadamente. Como solução “imediata” os órgãos responsáveis pelo saneamento
bá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 habitats
aquá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 de
saneamento, 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á por
esgoto, através de um modelo matemático (Meyer e Diniz, 2007), seguido de sua
discretização espacial e temporal, cujos resultados serão apresentados através de
simulações computacionais para os cenários das estações úmida e seca.

     Como justificado acima, se espera que este trabalho possa servir para diagnóstico
e auxílio na adoção de políticas públicas de saneamento e mitigação da contaminação
do rio Cuiabá por esgoto.
2        DESCRIÇÃO DO PROBLEMA



         O rio Cuiabá é de grande importância para a sociedade mato-grossense. Esta
importância pode ser comprovada, uma vez que, historicamente, este rio é uma fonte de
vida e de recursos para o estado e, em particular, para a cidade de Cuiabá (Instituto
Açã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 paralelos
14º18’ a 17º00’ S e 54º40’ a 56º55’ W (Cavinatto et al.,1995), sendo dividida em três
bacias: superior, mediana e inferior.

         A parte superior fica perto da nascente do rio, constituída pelos municípios de
Jangada, Acorizal, Rosário Oeste, Chapada dos Guimarães, Campo Verde, Nova
Brasilândia e Planalto da Serra, este trecho possuí uma vegetação do tipo cerrado onde a
agricultura é uma atividade predominante.

         A bacia mediana abrange os municípios de Cuiabá, Várzea Grande, Nossa
Senhora do Livramento e Santo Antonio do Leverger, também conhecida como baixada
cuiabana onde a declividade do rio diminui o que favorece o depósito de sedimentos no
fundo do leito, transportados, principalmente, no período de cheias. Estes sedimentos
provocam uma redução da lamina d’água e diminui a seção do rio, tornando-o
suscetível à inundações e, com o aumento da velocidade das águas no período de
cheias, o solapamento* das barrancas (Lima, 1994).

         A bacia inferior abrange os municípios de Barão de Melgaço e Poconé. Este
trecho final é constituído de planícies de inundações que corresponde à região do
Pantanal. 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 de
Mato 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.
A área de estudo corresponde ao trecho urbano do rio Cuiabá, compreendido entre
a 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 de
largura (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áximas
médias diárias ocorrendo nos meses de setembro a novembro e atingem 36°C, as médias
mínimas diárias ocorrem no mês de julho, chegando aos 15°C. A precipitação média
anual fica em torno de 1.342 mm/ano, de acordo com as séries temporais medidas entre
1989-2000 (INMET, 2000).




Figura 1: Mapa da área de estudo, obtido através do Google Earth.
3     O MODELO MATEMÁTICO


     Neste relatório, serão considerados apenas poluentes oriundos da Estação
Elevatória da Prainha, Córrego do Barbado, Rio Coxipó e dois córregos da cidade de
Várzea Grande. Estes poluentes, em relação ao ponto de origem (Ponte Nova), estão
distribuí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) a
3,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, transporte
advectivo, a degradação global e as fontes poluidoras.

     A difusão efetiva consiste na mistura do esgoto lançado no rio com a água
presente 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 que
transporta 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 é que
denominamos advecção.

     A degradação global consiste na absorção do poluente pela biota, que
denominamos autodepuração pelo rio.

     As fontes poluidoras são as entradas de efluentes que, neste trabalho,
consideramos cinco ao todo (ver figura 2).
Chamando de C(x,y,t) a concentração de esgoto – medida em PPM (partes por
milhã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 seguintes
condições de contorno:

                C            C                C               C
                     0,         K1D1 ,         K 2C,         K 3D 2     (3)
                 0          1              2             3
4       METODOLOGIA

4.1       Discretização do modelo:



        Na construção de soluções aproximadas para equações diferenciais parciais, em
primeiro lugar, será feita a discretização do domínio e, para isso, se introduz uma malha
sobre a qual está definida a solução aproximada.

        Seja R o conjunto de pontos onde a equação está definida e S o contorno deste
conjunto, sendo que a malha tem pontos igualmente espaçados nas duas direções, ou
seja, Δx = Δy = h .

        A figura 2 ilustra a malha onde os pontos que estão representados por + são os
pontos 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 finitas
centradas, esta discretização envolve em cada ponto da malha, além do valor da solução
neste ponto, os valores que a solução assume nos quatro pontos adjacentes como ilustra
a figura 3.
Figura 4: Ilustração gráfica do método de diferenças finitas centradas, para os nós
interiores.


        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) e
retrógradas (backward) fornecem uma aproximação da ordem de h.

        No método de diferenças finitas centradas, as derivadas que aparecem na equação
diferencial (2) e (3) são substituídas pelas aproximações descritas por (4) a (13) a
seguir, onde os índices n e n+1 correspondem a discretização temporal, descrita na
seçã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,
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  0


Em 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.
Para a discretização temporal, será usado o método de Crank-Nicolson, por se
tratar de um método incondicionalmente estável, exceto para os casos de
descontinuidade da variável de estado, o que não é o caso. Neste caso, serão feitas as
aproximaçõ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 da
aproximação.




                                 t  C n 1  Cin
                          C  tn    i                                      (15)
                                 2         2



4.2       Construção do sistema de Equações


        Nesta etapa substituiremos os termos da equação (2) e da equação (3) pelas
aproximações propostas acima e obteremos um sistema de equações (considerando os
nós interiores e os nós da fronteira), cujo vetor solução do sistema nos dará como
resultado 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 descritas
acima, se obtêm o seguinte sistema de equações:
 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 termos
das 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                 
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  n


Em  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  n


Em  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) e
fazendo a manipulação algébrica das equações, se obtém o sistema algébrico de
equaçõ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ção
aproximada 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.
5     RESULTADOS E DISCUSSÃO



      Para o coeficiente de difusão, foram adotados três valores, considerando a difusão
baixa, média e alta. Para difusão baixa e alta os valores foram considerados de acordo
com Wolmuth e Diniz (2005), tendo os seguintes valores para o coeficiente de difusão
0,09 e 0,32 km²/h, respectivamente. Para a difusão média, o valor adotado foi de acordo
com Carreras e Menéndez (1990), cujo valor para o coeficiente de difusão foi de 0,23
km²/h.

      O parâmetro de decaimento total do meio aquático foi estimado, pois não foi
possível encontrá-lo na literatura.

      Em Rocha (2003), encontramos a media anual de velocidades para o trecho do rio
em estudo, onde é apresentado que a menor média ocorre no mês de julho, mês
considerado de estação seca, e consiste no valor de 1,7 km/h, enquanto a maior média
ocorre 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ção
temporal, adotamos ∆t = 0,4 horas.

      A tabela abaixo mostra os valores dos parâmetros adotados para obter as
simulações dos cenários.

      A simulação de cenários foi realizada considerando um intervalo de tempo t = 40
horas, tanto para estação seca quanto úmida.
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 e
7), e úmida (figuras 8, 9 e 10), apresentadas a seguir.




†
  Difusão baixa
‡
  Difusão média
§
  Difusão Alta
Figura 5. Concentração para 4 nós do domínio ao longo do tempo, na estação seca com
difusão baixa.




Figura 6. Concentração para 4 nós do domínio ao longo do tempo na estação seca com
difusão média.
Figura 7. Concentração para 4 nós do domínio ao longo do tempo na estação seca com
difusão alta.




Figura 8. Concentração para 4 nós do domínio ao longo do tempo na estação úmida
com difusão baixa.
Figura 9. Concentração para 4 nós do domínio ao longo do tempo na estação úmida
com difusão média.




Figura 10. Concentração para 4 nós do domínio ao longo do tempo na estação úmida
com difusão alta.
De acordo com as simulações de cenários acima, observamos que na estação seca
há uma dispersão mais lenta e um maior nível de concentração de esgoto, ao contrário
da estação úmida, que apresentou uma dispersão mais rápida e um menor nível de
concentração de esgoto, para o mesmo intervalo de tempo estudado. Estes resultados
foram 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 é no

trecho 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 índice
de 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 sobre
a fronteira  2 , podemos concluir que sendo a difusão baixa e a estação seca então o
nível de concentração de esgoto é alto, enquanto o nível de concentração de esgoto
decresce em função da aumento do valor do coeficiente de difusão, chegando ao seu
valor mínimo de concentração, quando a difusão é alta e a estação é úmida. Estes
resultados se mostraram compatíveis com a realidade, pois quanto menor for o
coeficiente de difusão maior será a concentração de esgoto.

     Em relação a trabalhos anteriores sobre o mesmo tipo de problema (Alegria e
Diniz, 2007; Wolmuth e Diniz, 2005; Carreras e Menéndez, 1990), este trabalho
apresenta algumas melhorias, com a inclusão de mais fontes poluidoras e melhor
precisão de resultados, uma vez que foi usada uma malha mais refinada (12.000 nós).
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 de
velocidade encontrados na literatura e o coeficiente de difusão considerado, de modo a
simular o processo de dispersão de poluentes no trecho do rio, apesar das oscilações
numéricas inerentes ao método de diferenças finitas, apresentadas nas primeiras
iteraçõ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 sejam
ferramentas úteis. A apresentação gráfica dos resultados facilita a compreensão para os
não matemáticos, interessados neste tipo de estudo, o que permite a parceria com
pesquisadores 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 de
saneamento e mitigação da contaminação do rio Cuiabá pelo esgoto, que é um afluente
de grande importância para a planície pantaneira.
7      REFERÊNCIAS BIBLIOGRÁFICAS:



ALEGRIA, A. F., DINIZ G. L. Estudo da poluição por esgoto num trecho urbano de
rio. 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. Prentice
Hall, 2002.

CARRERAS, P. E., MENÉNDEZ, A. M. Mathematical simulation of pollutant
dispersion. 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 dos
efeitos dos despejos orgânicos nas condições sanitárias de águas ambientais. Cadernos
de 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 da
Agricultura – DFA/MT 9.º Distrito de Metereologia. Cuiabá/MT. 2000. Boletim da
Estaçã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 in
Mathematics and its Applications. Vol.16. North-Holland, Amsterdan. 1986. 217p.
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.   Acesso
em: 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.
AGRADECIMENTOS



  Em primeiro lugar agradeço a Deus por todas as dádivas recebidas até o presente
momento.

  Agradeço também a minha mãe Regina pela grande ajuda tanto no incentivo pelos
estudos 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ção
Cientifica e pelas eternas orientações ao longo da graduação.

  Agradeço aos Professores do Departamento de Matemática da Universidade Federal
de Mato Grosso pela minha formação.

  Ao Conselho Nacional de Pesquisa e Tecnologia (CNPq) agradeço pelo auxilio
financeiro 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 do
trabalho.

  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.
APÊNDICE




Códigos Numéricos

     Neste apêndice são apresentados os códigos numéricos utilizados na
implementação do método escolhido para as aproximações da solução do problema. O
có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édia
e 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;
19 ti = 0; tf = 40;
20 nx = 600;

21 ny = 20;
22 nt = 100;
23 %
24 %    Calculo de parametros auxiliares
25 %
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 y
35 %
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 Peclet
51 %
52 pec1 = (V1*dx)/alfa;
53 pec2 = (max(abs(V2))*dy)/alfa;
54 %
55 %      Zerando as Matrizes e o vetor d

56 %
57 A = sparse(ntn,ntn);
58 B = sparse(ntn,ntn);
59 d = zeros(ntn,1);
60 %
61 % Estabelecendo a condicao inicial
62 %

63 u0 = zeros(ntn,1);
64 for k=1:1:nny
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 sistema
81 %
82 %      Construção em Gama 0
83 %
84 for i = 2:ny

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 centrais

92 %
93 for j = 1:1:nx-1
94 for i = nny*j+2:nny*j+ny
95     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 3
109 %
110 for i = 2*nny:nny:nx*nny
111   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 1
120 %

121 for j = 1:nx-1
122     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 2
132 %

133 for i = nx*nny+1:ntn
134     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

143 %
144 %for i = 10*ny:11*ny
145 %      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 rigidez
161 %

162 [ll uu] = lu(A);
163 %
164 %      fazendo a matriz malha para o grid
165 %

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 nos
182 %
183 k=0;
184 for i=1:nnx

185          x = (i-1)*dx;
186          for j = 1:nny
187        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 grafico

195     fig=figure;
196     mov = avifile('animacao6.avi')
197                              trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario
6'),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 0
204 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 do
domínio
206 nsp4 = ntn-ny/2-1;       % Nó sobre a fronteira Gama 2
207 %

208 % resolução dos sucessivos sistemas.
209 %
210 for it = 1:nt
211   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)==1
219                              trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario
6'),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);


2. Teste Estação Seca – Difusão Média
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 Média
4 %
5 %     Parametros do modelo
6 %
7 clear all; t0=clock; %format long;
8 alfa = 0.23;        % 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;
19 ti = 0; tf = 40;
20 nx = 600;
21 ny = 20;

22 nt = 100;
23 %
24 %    Calculo de parametros auxiliares
25 %
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 y
35 %
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 Peclet

51 %
52 pec1 = (V1*dx)/alfa;
53 pec2 = (max(abs(V2))*dy)/alfa;
54 %
55 %    Zerando as Matrizes e o vetor d
56 %

57 A = sparse(ntn,ntn);
58 B = sparse(ntn,ntn);
59 d = zeros(ntn,1);
60 %
61 % Estabelecendo a condicao inicial
62 %

63 u0 = zeros(ntn,1);
64 for k=1:1:nny
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 sistema
81 %
82 %      Construção em Gama 0
83 %
84 for i = 2:ny
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 centrais

92 %
93 for j = 1:1:nx-1
94 for i = nny*j+2:nny*j+ny
95    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 3

109 %
110 for i = 2*nny:nny:nx*nny
111   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 1
120 %

121 for j = 1:nx-1
122     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 2
132 %
133 for i = nx*nny+1:ntn
134     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
143 %

144 %for i = 10*ny:11*ny
145 %      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 rigidez
161 %
162 [ll uu] = lu(A);
163 %
164 %      fazendo a matriz malha para o grid
165 %
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 nos
182 %

183 k=0;
184 for i=1:nnx
185          x = (i-1)*dx;
186          for j = 1:nny
187        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 grafico
195     fig=figure;

196     mov = avifile('animacao6.avi')
197                              trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario
6'),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 0
204 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 do
domínio
206 nsp4 = ntn-ny/2-1;       % Nó sobre a fronteira Gama 2
207 %
208 % resolução dos sucessivos sistemas.
209 %
210 for it = 1:nt

211   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)==1
219                              trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario
6'),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);


3. Teste Estação seca – Difusão Alta
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 Alta

4 %
5 %     Parametros do modelo
6 %
7 clear all; t0=clock; %format long;
8 alfa = 0.32;        % 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;
19 ti = 0; tf = 40;
20 nx = 600;
21 ny = 20;
22 nt = 100;
23 %
24 %    Calculo de parametros auxiliares

25 %
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 y
35 %
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 Peclet
51 %
52 pec1 = (V1*dx)/alfa;
53 pec2 = (max(abs(V2))*dy)/alfa;

54 %
55 %      Zerando as Matrizes e o vetor d
56 %
57 A = sparse(ntn,ntn);
58 B = sparse(ntn,ntn);
59 d = zeros(ntn,1);

60 %
61 % Estabelecendo a condicao inicial
62 %
63 u0 = zeros(ntn,1);
64 for k=1:1:nny
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 sistema
81 %
82 %      Construção em Gama 0

83 %
84 for i = 2:ny
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 centrais
92 %
93 for j = 1:1:nx-1
94 for i = nny*j+2:nny*j+ny
95     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 3
109 %
110 for i = 2*nny:nny:nx*nny
111   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 1
120 %
121 for j = 1:nx-1
122     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 2
132 %
133 for i = nx*nny+1:ntn
134     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
143 %
144 %for i = 10*ny:11*ny
145 %      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 rigidez
161 %
162 [ll uu] = lu(A);
163 %
164 %      fazendo a matriz malha para o grid
165 %

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 nos
182 %

183 k=0;
184 for i=1:nnx
185          x = (i-1)*dx;
186          for j = 1:nny
187        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 grafico

195     fig=figure;
196     mov = avifile('animacao6.avi')
197                              trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario
6'),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 0
204 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 do
domínio

206 nsp4 = ntn-ny/2-1;       % Nó sobre a fronteira Gama 2
207 %
208 % resolução dos sucessivos sistemas.
209 %
210 for it = 1:nt
211   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)==1
219                              trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario
6'),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);



4. Teste Estação úmida – 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 úmida - 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 = 3.0;             % 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;

19 ti = 0; tf = 40;
20 nx = 600;
21 ny = 20;
22 nt = 100;
23 %
24 %    Calculo de parametros auxiliares
25 %

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 y
35 %
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 Peclet
51 %
52 pec1 = (V1*dx)/alfa;
53 pec2 = (max(abs(V2))*dy)/alfa;
54 %

55 %      Zerando as Matrizes e o vetor d
56 %
57 A = sparse(ntn,ntn);
58 B = sparse(ntn,ntn);
59 d = zeros(ntn,1);
60 %

61 % Estabelecendo a condicao inicial
62 %
63 u0 = zeros(ntn,1);
64 for k=1:1:nny
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 sistema
81 %
82 %      Construção em Gama 0
83 %

84 for i = 2:ny
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 centrais
92 %
93 for j = 1:1:nx-1
94 for i = nny*j+2:nny*j+ny
95     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 3
109 %
110 for i = 2*nny:nny:nx*nny
111   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 1
120 %
121 for j = 1:nx-1
122     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 2
132 %
133 for i = nx*nny+1:ntn
134     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
143 %
144 %for i = 10*ny:11*ny
145 %      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 rigidez
161 %
162 [ll uu] = lu(A);
163 %

164 %      fazendo a matriz malha para o grid
165 %
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 nos
182 %

183 k=0;
184 for i=1:nnx
185          x = (i-1)*dx;
186          for j = 1:nny

187        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 grafico
195     fig=figure;
196     mov = avifile('animacao6.avi')
197                              trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario
6'),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 0
204 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 do
domínio

206 nsp4 = ntn-ny/2-1;       % Nó sobre a fronteira Gama 2
207 %
208 % resolução dos sucessivos sistemas.
209 %
210 for it = 1:nt
211   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)==1
219                              trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario
6'),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);



5. Teste Estação úmida – Difusão Média
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 úmida - Difusão Baixa
4 %
5 %     Parametros do modelo

6 %
7 clear all; t0=clock; %format long;
8 alfa = 0.23;        % coeficiente de difusão
9 sig = 0.1;          % coeficiente de degradação
10 V1 = 3.0;           % 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;

19 ti = 0; tf = 40;
20 nx = 600;
21 ny = 20;
22 nt = 100;
23 %
24 %    Calculo de parametros auxiliares

25 %
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 y

35 %
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 Peclet
51 %
52 pec1 = (V1*dx)/alfa;
53 pec2 = (max(abs(V2))*dy)/alfa;

54 %
55 %   Zerando as Matrizes e o vetor d
56 %
57 A = sparse(ntn,ntn);

58 B = sparse(ntn,ntn);
59 d = zeros(ntn,1);
60 %
61 % Estabelecendo a condicao inicial
62 %
63 u0 = zeros(ntn,1);

64 for k=1:1:nny
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 sistema
81 %
82 %      Construção em Gama 0

83 %
84 for i = 2:ny
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 centrais
92 %

93 for j = 1:1:nx-1
94 for i = nny*j+2:nny*j+ny
95     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 3
109 %
110 for i = 2*nny:nny:nx*nny
111    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 1
120 %
121 for j = 1:nx-1

122     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 2
132 %
133 for i = nx*nny+1:ntn
134     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
143 %
144 %for i = 10*ny:11*ny

145 %    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 rigidez
161 %
162 [ll uu] = lu(A);
163 %

164 %    fazendo a matriz malha para o grid
165 %
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 nos
182 %
183 k=0;
184 for i=1:nnx
185          x = (i-1)*dx;
186          for j = 1:nny

187        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 grafico
195     fig=figure;
196     mov = avifile('animacao6.avi')
197                              trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario
6'),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 0
204 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 do
domínio

206 nsp4 = ntn-ny/2-1;       % Nó sobre a fronteira Gama 2
207 %
208 % resolução dos sucessivos sistemas.
209 %
210 for it = 1:nt
211   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)==1

219                              trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario
6'),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);


6. Teste Estação Úmida – Difusão Alta
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 úmida - Difusão Alta
4 %
5 %    Parametros do modelo
6 %
7 clear all; t0=clock; %format long;
8 alfa = 0.32;       % coeficiente de difusão

9 sig = 0.1;         % coeficiente de degradação
10 V1 = 3.0;           % 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;
19 ti = 0; tf = 40;
20 nx = 600;
21 ny = 20;
22 nt = 100;

23 %
24 %    Calculo de parametros auxiliares
25 %
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 y
35 %

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 Peclet
51 %

52 pec1 = (V1*dx)/alfa;
53 pec2 = (max(abs(V2))*dy)/alfa;
54 %
55 %      Zerando as Matrizes e o vetor d
56 %
57 A = sparse(ntn,ntn);
58 B = sparse(ntn,ntn);

59 d = zeros(ntn,1);
60 %
61 % Estabelecendo a condicao inicial
62 %
63 u0 = zeros(ntn,1);
64 for k=1:1:nny

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 sistema

81 %
82 %      Construção em Gama 0
83 %
84 for i = 2:ny
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 centrais
92 %
93 for j = 1:1:nx-1

94 for i = nny*j+2:nny*j+ny
95     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 3
109 %

110 for i = 2*nny:nny:nx*nny
111   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 1
120 %
121 for j = 1:nx-1
122     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 2
132 %

133 for i = nx*nny+1:ntn
134     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
143 %
144 %for i = 10*ny:11*ny
145 %      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 rigidez
161 %

162 [ll uu] = lu(A);
163 %
164 %      fazendo a matriz malha para o grid
165 %
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 nos
182 %
183 k=0;
184 for i=1:nnx
185          x = (i-1)*dx;
186          for j = 1:nny

187        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 grafico
195     fig=figure;
196     mov = avifile('animacao6.avi')

197                              trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario
6'),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 0
204 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 do
domínio
206 nsp4 = ntn-ny/2-1;       % Nó sobre a fronteira Gama 2
207 %
208 % resolução dos sucessivos sistemas.
209 %

210 for it = 1:nt
211   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)==1

219                              trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario
6'),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);

Mais conteúdo relacionado

Mais procurados

Estudo de demandas do sistema de abastecimento de água
Estudo de demandas do sistema de abastecimento de águaEstudo de demandas do sistema de abastecimento de água
Estudo de demandas do sistema de abastecimento de água
Carlos Elson Cunha
 
Aspectos conceituais do gerenciamento de recursos hídricos2
Aspectos conceituais do gerenciamento de recursos hídricos2Aspectos conceituais do gerenciamento de recursos hídricos2
Aspectos conceituais do gerenciamento de recursos hídricos2
Nilton Goulart
 

Mais procurados (19)

Estudo de demandas do sistema de abastecimento de água
Estudo de demandas do sistema de abastecimento de águaEstudo de demandas do sistema de abastecimento de água
Estudo de demandas do sistema de abastecimento de água
 
Aspectos conceituais do gerenciamento de recursos hídricos2
Aspectos conceituais do gerenciamento de recursos hídricos2Aspectos conceituais do gerenciamento de recursos hídricos2
Aspectos conceituais do gerenciamento de recursos hídricos2
 
AS CAUSAS E CONSEQUÊNCIAS DO IMPACTO SOCIOAMBIENTAL NO RIO CAUAMÉ – PRAIA DA ...
AS CAUSAS E CONSEQUÊNCIAS DO IMPACTO SOCIOAMBIENTAL NO RIO CAUAMÉ – PRAIA DA ...AS CAUSAS E CONSEQUÊNCIAS DO IMPACTO SOCIOAMBIENTAL NO RIO CAUAMÉ – PRAIA DA ...
AS CAUSAS E CONSEQUÊNCIAS DO IMPACTO SOCIOAMBIENTAL NO RIO CAUAMÉ – PRAIA DA ...
 
Sistema Hídrico
Sistema HídricoSistema Hídrico
Sistema Hídrico
 
Ronnie Peterson Magalhães Cardoso - TCC Ciências Econômicas
Ronnie Peterson Magalhães Cardoso - TCC Ciências EconômicasRonnie Peterson Magalhães Cardoso - TCC Ciências Econômicas
Ronnie Peterson Magalhães Cardoso - TCC Ciências Econômicas
 
Cartilha nascentes
Cartilha nascentesCartilha nascentes
Cartilha nascentes
 
Informativo insp 71
Informativo insp   71Informativo insp   71
Informativo insp 71
 
TVJur.com - Aula de Direito Ambiental - Recursos hídricos
TVJur.com - Aula de Direito Ambiental - Recursos hídricosTVJur.com - Aula de Direito Ambiental - Recursos hídricos
TVJur.com - Aula de Direito Ambiental - Recursos hídricos
 
20 anos da Lei das Águas no Brasil - José Claudio Junqueira
20 anos da Lei das Águas no Brasil - José Claudio Junqueira20 anos da Lei das Águas no Brasil - José Claudio Junqueira
20 anos da Lei das Águas no Brasil - José Claudio Junqueira
 
Sma cartilha nascentes_pag1_10
Sma cartilha nascentes_pag1_10Sma cartilha nascentes_pag1_10
Sma cartilha nascentes_pag1_10
 
Bacias hidrográficas: território, saúde, gestão e revitalização - Revitaliza ...
Bacias hidrográficas: território, saúde, gestão e revitalização - Revitaliza ...Bacias hidrográficas: território, saúde, gestão e revitalização - Revitaliza ...
Bacias hidrográficas: território, saúde, gestão e revitalização - Revitaliza ...
 
Trabalho hidraulica
Trabalho hidraulicaTrabalho hidraulica
Trabalho hidraulica
 
Ana comite de bacia - o que é o que faz
Ana   comite de bacia - o que é o que fazAna   comite de bacia - o que é o que faz
Ana comite de bacia - o que é o que faz
 
Mata ciliar
Mata ciliarMata ciliar
Mata ciliar
 
505 an 10_dezembro_2014.ok
505 an 10_dezembro_2014.ok505 an 10_dezembro_2014.ok
505 an 10_dezembro_2014.ok
 
Parecer ictiofauna no Rio das Velhas: revitalização, barragens e conexões com...
Parecer ictiofauna no Rio das Velhas: revitalização, barragens e conexões com...Parecer ictiofauna no Rio das Velhas: revitalização, barragens e conexões com...
Parecer ictiofauna no Rio das Velhas: revitalização, barragens e conexões com...
 
2013 6ano geografia_etapa02
2013 6ano geografia_etapa022013 6ano geografia_etapa02
2013 6ano geografia_etapa02
 
Nascentes do Brasil – Proteção e recuperação de nascentes e áreas de recarga ...
Nascentes do Brasil – Proteção e recuperação de nascentes e áreas de recarga ...Nascentes do Brasil – Proteção e recuperação de nascentes e áreas de recarga ...
Nascentes do Brasil – Proteção e recuperação de nascentes e áreas de recarga ...
 
São Francisco: Escassez Hídrica, Transposição e Revitalização João Suassuna
São Francisco: Escassez Hídrica, Transposição e Revitalização  João Suassuna São Francisco: Escassez Hídrica, Transposição e Revitalização  João Suassuna
São Francisco: Escassez Hídrica, Transposição e Revitalização João Suassuna
 

Destaque

Lista - Funções Afins e Lineares
Lista - Funções Afins e LinearesLista - Funções Afins e Lineares
Lista - Funções Afins e Lineares
luiz10filho
 
Atividades - Geogebra
Atividades - GeogebraAtividades - Geogebra
Atividades - Geogebra
luiz10filho
 
Atividades - Matemática discreta
Atividades - Matemática discretaAtividades - Matemática discreta
Atividades - Matemática discreta
luiz10filho
 
Atividades - Cálculo - Sequências
Atividades - Cálculo - SequênciasAtividades - Cálculo - Sequências
Atividades - Cálculo - Sequências
luiz10filho
 
Qual é a área de uma elipse?
Qual é a área de uma elipse?Qual é a área de uma elipse?
Qual é a área de uma elipse?
luiz10filho
 
Ementa - Português/Matemática - Exame de acesso IFMT
Ementa - Português/Matemática - Exame de acesso IFMTEmenta - Português/Matemática - Exame de acesso IFMT
Ementa - Português/Matemática - Exame de acesso IFMT
luiz10filho
 
Lista - Trigonometria
Lista - TrigonometriaLista - Trigonometria
Lista - Trigonometria
luiz10filho
 
Formação em rede - Complexo Temático
Formação em rede - Complexo TemáticoFormação em rede - Complexo Temático
Formação em rede - Complexo Temático
luiz10filho
 
Aritmética I - Unidade 10 e 11
Aritmética I - Unidade 10 e 11Aritmética I - Unidade 10 e 11
Aritmética I - Unidade 10 e 11
luiz10filho
 
Sexto ano - Arlete Maria da Silva
Sexto ano - Arlete Maria da SilvaSexto ano - Arlete Maria da Silva
Sexto ano - Arlete Maria da Silva
luiz10filho
 
Lista - Geometria
Lista - GeometriaLista - Geometria
Lista - Geometria
luiz10filho
 

Destaque (13)

Lista - Funções Afins e Lineares
Lista - Funções Afins e LinearesLista - Funções Afins e Lineares
Lista - Funções Afins e Lineares
 
Atividades - Geogebra
Atividades - GeogebraAtividades - Geogebra
Atividades - Geogebra
 
Atividades - Matemática discreta
Atividades - Matemática discretaAtividades - Matemática discreta
Atividades - Matemática discreta
 
Atividades - Cálculo - Sequências
Atividades - Cálculo - SequênciasAtividades - Cálculo - Sequências
Atividades - Cálculo - Sequências
 
Qual é a área de uma elipse?
Qual é a área de uma elipse?Qual é a área de uma elipse?
Qual é a área de uma elipse?
 
Ementa - Português/Matemática - Exame de acesso IFMT
Ementa - Português/Matemática - Exame de acesso IFMTEmenta - Português/Matemática - Exame de acesso IFMT
Ementa - Português/Matemática - Exame de acesso IFMT
 
Lista - Trigonometria
Lista - TrigonometriaLista - Trigonometria
Lista - Trigonometria
 
Formação em rede - Complexo Temático
Formação em rede - Complexo TemáticoFormação em rede - Complexo Temático
Formação em rede - Complexo Temático
 
Aritmética I - Unidade 10 e 11
Aritmética I - Unidade 10 e 11Aritmética I - Unidade 10 e 11
Aritmética I - Unidade 10 e 11
 
PROFMAT - MA14
PROFMAT - MA14PROFMAT - MA14
PROFMAT - MA14
 
Sexto ano - Arlete Maria da Silva
Sexto ano - Arlete Maria da SilvaSexto ano - Arlete Maria da Silva
Sexto ano - Arlete Maria da Silva
 
Lista - Geometria
Lista - GeometriaLista - Geometria
Lista - Geometria
 
PROFMAT - MA14
PROFMAT - MA14PROFMAT - MA14
PROFMAT - MA14
 

Semelhante a Trabalho final pronto 30-11-10

Aproveitamento de água da chuva: para fins não potáveis
Aproveitamento de água da chuva: para fins não potáveisAproveitamento de água da chuva: para fins não potáveis
Aproveitamento de água da chuva: para fins não potáveis
petambiental
 
Gestão participativa dos recursos hídricos da bacia da lagoa do campelo singa
Gestão participativa dos recursos hídricos da bacia da lagoa do campelo singaGestão participativa dos recursos hídricos da bacia da lagoa do campelo singa
Gestão participativa dos recursos hídricos da bacia da lagoa do campelo singa
Leidiana Alves
 

Semelhante a Trabalho final pronto 30-11-10 (20)

Estudo de caso
Estudo de casoEstudo de caso
Estudo de caso
 
Aproveitamento de água da chuva: para fins não potáveis
Aproveitamento de água da chuva: para fins não potáveisAproveitamento de água da chuva: para fins não potáveis
Aproveitamento de água da chuva: para fins não potáveis
 
10 propostas texto final - descanalização rios urbanos de BH
10 propostas texto final - descanalização rios urbanos de BH10 propostas texto final - descanalização rios urbanos de BH
10 propostas texto final - descanalização rios urbanos de BH
 
Artigo qualidade da água
Artigo qualidade da águaArtigo qualidade da água
Artigo qualidade da água
 
Ciência Equatorial - ISSN 2179-9563 - V1N1 2011
Ciência Equatorial - ISSN 2179-9563 - V1N1 2011Ciência Equatorial - ISSN 2179-9563 - V1N1 2011
Ciência Equatorial - ISSN 2179-9563 - V1N1 2011
 
Recarga de manancial com água de reúso – Uma alternativa para a conservação d...
Recarga de manancial com água de reúso – Uma alternativa para a conservação d...Recarga de manancial com água de reúso – Uma alternativa para a conservação d...
Recarga de manancial com água de reúso – Uma alternativa para a conservação d...
 
Projeto Bacias de contenção - fhidro
Projeto Bacias de contenção - fhidroProjeto Bacias de contenção - fhidro
Projeto Bacias de contenção - fhidro
 
2 ARTIGO EWERTON GUTO.pdf
2 ARTIGO EWERTON GUTO.pdf2 ARTIGO EWERTON GUTO.pdf
2 ARTIGO EWERTON GUTO.pdf
 
ARTIGO EWERTON GUTO.pdf
ARTIGO EWERTON GUTO.pdfARTIGO EWERTON GUTO.pdf
ARTIGO EWERTON GUTO.pdf
 
Gestão participativa dos recursos hídricos da bacia da lagoa do campelo singa
Gestão participativa dos recursos hídricos da bacia da lagoa do campelo singaGestão participativa dos recursos hídricos da bacia da lagoa do campelo singa
Gestão participativa dos recursos hídricos da bacia da lagoa do campelo singa
 
Pereira antoniofernandodearaujonavarro
Pereira antoniofernandodearaujonavarroPereira antoniofernandodearaujonavarro
Pereira antoniofernandodearaujonavarro
 
Luis henrique ferreira
Luis henrique ferreiraLuis henrique ferreira
Luis henrique ferreira
 
Informativo insp 67
Informativo insp   67Informativo insp   67
Informativo insp 67
 
Trabalho
TrabalhoTrabalho
Trabalho
 
8 geitos de mudar o mundo
8 geitos de mudar o mundo8 geitos de mudar o mundo
8 geitos de mudar o mundo
 
Àgua e Clima em São Paulo
Àgua e Clima em São PauloÀgua e Clima em São Paulo
Àgua e Clima em São Paulo
 
Meioambiente2questoes
Meioambiente2questoesMeioambiente2questoes
Meioambiente2questoes
 
Meioambiente2questoes
Meioambiente2questoesMeioambiente2questoes
Meioambiente2questoes
 
Informativo insp 63
Informativo insp   63Informativo insp   63
Informativo insp 63
 
Informativo insp 20
Informativo insp   20Informativo insp   20
Informativo insp 20
 

Trabalho final pronto 30-11-10

  • 1. Seminários de Matemática Aplicada e Pesquisa em Ensino – Prática IV CONTAMINAÇÃO METROPOLITANA DO RIO CUIABÁ: MODELAGEM E SIMULAÇÃO DE CENÁRIOS Luiz Fernando de Moraes Campos Filho Orientador: Prof. Dr. Geraldo Lucio Diniz NOVEMBRO/2010 2010/2 INSTITUTO DE CIÊNCIAS EXATAS E DA TERRA UFMT UNIVERSIDADE FEDERAL DE MATO GROSSO
  • 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. 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ças finitas. 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 differences method.
  • 4. 1 INTRODUÇÃO A água é um dos recursos naturais mais intensamente utilizados. É fundamental para a existência e manutenção da vida e, para isso, deve estar presente no ambiente em quantidade e qualidade apropriadas. Dentre os benefícios que a água promove ao ser humano estão: abastecimento residencial, abastecimento industrial, irrigação, geração de energia elétrica, agricultura e recreação. Todavia, se a água não estiver em condições apropriadas todos os benefícios citados 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 das principais 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üentemente aos seus usuários (Alegria e Diniz, 2007). Outro dado importante também é que o volume de água na Terra está estimado em 1 trilhão e 386 bilhões de quilômetros cúbicos (Km3), sendo a maior parte - 97,2% desse total - formada pela água salgada dos mares e oceanos. Algo como 1,8% da água total está estocada sob a forma de neve ou gelo, no topo das grandes cadeias de montanhas ou 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 quantia vem sofrendo com os impactos ambientais causados pelo homem, correndo risco até de num tempo muito curto se extinguir (Fonte do saber, 2010). Dentre os rios que sofrem com este problema está o Rio Cuiabá. Este rio é de grande importância para a população de Mato Grosso, pois sua bacia hidrográfica abrange 75% da população do estado e a maioria desse total é constituído de habitantes de Cuiabá e Várzea Grande. (Wolmuth e Diniz, 2005). O crescimento populacional das cidades de Cuiabá e Várzea Grande e a falta de infra-estrutura existente nelas vêm causando grandes prejuízos ambientais. Estas cidades depositam, diariamente, cerca de 20 toneladas de resíduos sólidos (lixo
  • 5. doméstico) e 400 mil litros de esgoto doméstico e industrial no rio Cuiabá (Wolmuth e Diniz, 2005). Atualmente, cerca de 31% dos domicílios, em Cuiabá, estão conectados ao sistema 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 24 horas por dia, o que mostra a necessidade de investimentos do poder público em saneamento básico (Safford, 2009). Pelos dados acima, se pode concluir que grande parte do esgoto não é tratada adequadamente. Como solução “imediata” os órgãos responsáveis pelo saneamento bá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 habitats aquá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 de saneamento, 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á por esgoto, através de um modelo matemático (Meyer e Diniz, 2007), seguido de sua discretização espacial e temporal, cujos resultados serão apresentados através de simulações computacionais para os cenários das estações úmida e seca. Como justificado acima, se espera que este trabalho possa servir para diagnóstico e auxílio na adoção de políticas públicas de saneamento e mitigação da contaminação do rio Cuiabá por esgoto.
  • 6. 2 DESCRIÇÃO DO PROBLEMA O rio Cuiabá é de grande importância para a sociedade mato-grossense. Esta importância pode ser comprovada, uma vez que, historicamente, este rio é uma fonte de vida e de recursos para o estado e, em particular, para a cidade de Cuiabá (Instituto Açã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 paralelos 14º18’ a 17º00’ S e 54º40’ a 56º55’ W (Cavinatto et al.,1995), sendo dividida em três bacias: superior, mediana e inferior. A parte superior fica perto da nascente do rio, constituída pelos municípios de Jangada, Acorizal, Rosário Oeste, Chapada dos Guimarães, Campo Verde, Nova Brasilândia e Planalto da Serra, este trecho possuí uma vegetação do tipo cerrado onde a agricultura é uma atividade predominante. A bacia mediana abrange os municípios de Cuiabá, Várzea Grande, Nossa Senhora do Livramento e Santo Antonio do Leverger, também conhecida como baixada cuiabana onde a declividade do rio diminui o que favorece o depósito de sedimentos no fundo do leito, transportados, principalmente, no período de cheias. Estes sedimentos provocam uma redução da lamina d’água e diminui a seção do rio, tornando-o suscetível à inundações e, com o aumento da velocidade das águas no período de cheias, o solapamento* das barrancas (Lima, 1994). A bacia inferior abrange os municípios de Barão de Melgaço e Poconé. Este trecho final é constituído de planícies de inundações que corresponde à região do Pantanal. 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 de Mato 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. A área de estudo corresponde ao trecho urbano do rio Cuiabá, compreendido entre a 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 de largura (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áximas médias diárias ocorrendo nos meses de setembro a novembro e atingem 36°C, as médias mínimas diárias ocorrem no mês de julho, chegando aos 15°C. A precipitação média anual fica em torno de 1.342 mm/ano, de acordo com as séries temporais medidas entre 1989-2000 (INMET, 2000). Figura 1: Mapa da área de estudo, obtido através do Google Earth.
  • 8. 3 O MODELO MATEMÁTICO Neste relatório, serão considerados apenas poluentes oriundos da Estação Elevatória da Prainha, Córrego do Barbado, Rio Coxipó e dois córregos da cidade de Várzea Grande. Estes poluentes, em relação ao ponto de origem (Ponte Nova), estão distribuí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) a 3,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, transporte advectivo, a degradação global e as fontes poluidoras. A difusão efetiva consiste na mistura do esgoto lançado no rio com a água presente 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 que transporta 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 é que denominamos advecção. A degradação global consiste na absorção do poluente pela biota, que denominamos autodepuração pelo rio. As fontes poluidoras são as entradas de efluentes que, neste trabalho, consideramos cinco ao todo (ver figura 2).
  • 9. Chamando de C(x,y,t) a concentração de esgoto – medida em PPM (partes por milhã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 seguintes condições de contorno: C C C C   0,   K1D1 ,   K 2C,   K 3D 2 (3)  0  1  2  3
  • 10. 4 METODOLOGIA 4.1 Discretização do modelo: Na construção de soluções aproximadas para equações diferenciais parciais, em primeiro lugar, será feita a discretização do domínio e, para isso, se introduz uma malha sobre a qual está definida a solução aproximada. Seja R o conjunto de pontos onde a equação está definida e S o contorno deste conjunto, sendo que a malha tem pontos igualmente espaçados nas duas direções, ou seja, Δx = Δy = h . A figura 2 ilustra a malha onde os pontos que estão representados por + são os pontos 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 finitas centradas, esta discretização envolve em cada ponto da malha, além do valor da solução neste ponto, os valores que a solução assume nos quatro pontos adjacentes como ilustra a figura 3.
  • 11. Figura 4: Ilustração gráfica do método de diferenças finitas centradas, para os nós interiores. 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) e retrógradas (backward) fornecem uma aproximação da ordem de h. No método de diferenças finitas centradas, as derivadas que aparecem na equação diferencial (2) e (3) são substituídas pelas aproximações descritas por (4) a (13) a seguir, onde os índices n e n+1 correspondem a discretização temporal, descrita na seçã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. 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  0 Em 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. Para a discretização temporal, será usado o método de Crank-Nicolson, por se tratar de um método incondicionalmente estável, exceto para os casos de descontinuidade da variável de estado, o que não é o caso. Neste caso, serão feitas as aproximaçõ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 da aproximação.  t  C n 1  Cin C  tn    i (15)  2 2 4.2 Construção do sistema de Equações Nesta etapa substituiremos os termos da equação (2) e da equação (3) pelas aproximações propostas acima e obteremos um sistema de equações (considerando os nós interiores e os nós da fronteira), cujo vetor solução do sistema nos dará como resultado 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 descritas acima, se obtêm o seguinte sistema de equações:
  • 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 termos das 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. 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  n Em  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  n Em  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) e fazendo a manipulação algébrica das equações, se obtém o sistema algébrico de equaçõ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ção aproximada 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. 5 RESULTADOS E DISCUSSÃO Para o coeficiente de difusão, foram adotados três valores, considerando a difusão baixa, média e alta. Para difusão baixa e alta os valores foram considerados de acordo com Wolmuth e Diniz (2005), tendo os seguintes valores para o coeficiente de difusão 0,09 e 0,32 km²/h, respectivamente. Para a difusão média, o valor adotado foi de acordo com Carreras e Menéndez (1990), cujo valor para o coeficiente de difusão foi de 0,23 km²/h. O parâmetro de decaimento total do meio aquático foi estimado, pois não foi possível encontrá-lo na literatura. Em Rocha (2003), encontramos a media anual de velocidades para o trecho do rio em estudo, onde é apresentado que a menor média ocorre no mês de julho, mês considerado de estação seca, e consiste no valor de 1,7 km/h, enquanto a maior média ocorre 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ção temporal, adotamos ∆t = 0,4 horas. A tabela abaixo mostra os valores dos parâmetros adotados para obter as simulações dos cenários. A simulação de cenários foi realizada considerando um intervalo de tempo t = 40 horas, tanto para estação seca quanto úmida.
  • 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 e 7), e úmida (figuras 8, 9 e 10), apresentadas a seguir. † Difusão baixa ‡ Difusão média § Difusão Alta
  • 18. Figura 5. Concentração para 4 nós do domínio ao longo do tempo, na estação seca com difusão baixa. Figura 6. Concentração para 4 nós do domínio ao longo do tempo na estação seca com difusão média.
  • 19. Figura 7. Concentração para 4 nós do domínio ao longo do tempo na estação seca com difusão alta. Figura 8. Concentração para 4 nós do domínio ao longo do tempo na estação úmida com difusão baixa.
  • 20. Figura 9. Concentração para 4 nós do domínio ao longo do tempo na estação úmida com difusão média. Figura 10. Concentração para 4 nós do domínio ao longo do tempo na estação úmida com difusão alta.
  • 21. De acordo com as simulações de cenários acima, observamos que na estação seca há uma dispersão mais lenta e um maior nível de concentração de esgoto, ao contrário da estação úmida, que apresentou uma dispersão mais rápida e um menor nível de concentração de esgoto, para o mesmo intervalo de tempo estudado. Estes resultados foram 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 é no trecho 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 índice de 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 sobre a fronteira  2 , podemos concluir que sendo a difusão baixa e a estação seca então o nível de concentração de esgoto é alto, enquanto o nível de concentração de esgoto decresce em função da aumento do valor do coeficiente de difusão, chegando ao seu valor mínimo de concentração, quando a difusão é alta e a estação é úmida. Estes resultados se mostraram compatíveis com a realidade, pois quanto menor for o coeficiente de difusão maior será a concentração de esgoto. Em relação a trabalhos anteriores sobre o mesmo tipo de problema (Alegria e Diniz, 2007; Wolmuth e Diniz, 2005; Carreras e Menéndez, 1990), este trabalho apresenta algumas melhorias, com a inclusão de mais fontes poluidoras e melhor precisão de resultados, uma vez que foi usada uma malha mais refinada (12.000 nós).
  • 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 de velocidade encontrados na literatura e o coeficiente de difusão considerado, de modo a simular o processo de dispersão de poluentes no trecho do rio, apesar das oscilações numéricas inerentes ao método de diferenças finitas, apresentadas nas primeiras iteraçõ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 sejam ferramentas úteis. A apresentação gráfica dos resultados facilita a compreensão para os não matemáticos, interessados neste tipo de estudo, o que permite a parceria com pesquisadores 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 de saneamento e mitigação da contaminação do rio Cuiabá pelo esgoto, que é um afluente de grande importância para a planície pantaneira.
  • 23. 7 REFERÊNCIAS BIBLIOGRÁFICAS: ALEGRIA, A. F., DINIZ G. L. Estudo da poluição por esgoto num trecho urbano de rio. 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. Prentice Hall, 2002. CARRERAS, P. E., MENÉNDEZ, A. M. Mathematical simulation of pollutant dispersion. 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 dos efeitos dos despejos orgânicos nas condições sanitárias de águas ambientais. Cadernos de 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 da Agricultura – DFA/MT 9.º Distrito de Metereologia. Cuiabá/MT. 2000. Boletim da Estaçã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 in Mathematics and its Applications. Vol.16. North-Holland, Amsterdan. 1986. 217p.
  • 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. Acesso em: 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. AGRADECIMENTOS Em primeiro lugar agradeço a Deus por todas as dádivas recebidas até o presente momento. Agradeço também a minha mãe Regina pela grande ajuda tanto no incentivo pelos estudos 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ção Cientifica e pelas eternas orientações ao longo da graduação. Agradeço aos Professores do Departamento de Matemática da Universidade Federal de Mato Grosso pela minha formação. Ao Conselho Nacional de Pesquisa e Tecnologia (CNPq) agradeço pelo auxilio financeiro 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 do trabalho. 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. APÊNDICE Códigos Numéricos Neste apêndice são apresentados os códigos numéricos utilizados na implementação do método escolhido para as aproximações da solução do problema. O có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édia e 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. 19 ti = 0; tf = 40; 20 nx = 600; 21 ny = 20; 22 nt = 100; 23 % 24 % Calculo de parametros auxiliares 25 % 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 y 35 % 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. 48 V2(nau2+nny+1) = 0.2; 49 % 50 % Calculo do numero de Peclet 51 % 52 pec1 = (V1*dx)/alfa; 53 pec2 = (max(abs(V2))*dy)/alfa; 54 % 55 % Zerando as Matrizes e o vetor d 56 % 57 A = sparse(ntn,ntn); 58 B = sparse(ntn,ntn); 59 d = zeros(ntn,1); 60 % 61 % Estabelecendo a condicao inicial 62 % 63 u0 = zeros(ntn,1); 64 for k=1:1:nny 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;
  • 29. 77 u0(nau2+1) = .3; 78 u0(nau2+nny+1) = .3; 79 % 80 % Construcao das Matrizes do sistema 81 % 82 % Construção em Gama 0 83 % 84 for i = 2:ny 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 centrais 92 % 93 for j = 1:1:nx-1 94 for i = nny*j+2:nny*j+ny 95 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. 106 end; 107 % 108 % Construção para a fronteira Gama 3 109 % 110 for i = 2*nny:nny:nx*nny 111 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 1 120 % 121 for j = 1:nx-1 122 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 2 132 % 133 for i = nx*nny+1:ntn 134 A(i,i) = 3*alfa/(4*dx)-K2/2;
  • 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 d 143 % 144 %for i = 10*ny:11*ny 145 % 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 rigidez 161 % 162 [ll uu] = lu(A); 163 %
  • 32. 164 % fazendo a matriz malha para o grid 165 % 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 nos 182 % 183 k=0; 184 for i=1:nnx 185 x = (i-1)*dx; 186 for j = 1:nny 187 y = (j-1)*dy; 188 k = k + 1; 189 coord(k,1) = x; 190 coord(k,2) = y; 191 end; 192 end;
  • 33. 193 % 194 % estruturando o vetor solucao para o grafico 195 fig=figure; 196 mov = avifile('animacao6.avi') 197 trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario 6'),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 0 204 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 do domínio 206 nsp4 = ntn-ny/2-1; % Nó sobre a fronteira Gama 2 207 % 208 % resolução dos sucessivos sistemas. 209 % 210 for it = 1:nt 211 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)==1 219 trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario 6'),xlabel('Gamma_1'),ylabel('Gamma_0'),view(0,90),colorbar,shading interp; 220 F = getframe(gca);
  • 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édia 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 Média 4 % 5 % Parametros do modelo 6 %
  • 35. 7 clear all; t0=clock; %format long; 8 alfa = 0.23; % 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; 19 ti = 0; tf = 40; 20 nx = 600; 21 ny = 20; 22 nt = 100; 23 % 24 % Calculo de parametros auxiliares 25 % 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 y 35 %
  • 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 Peclet 51 % 52 pec1 = (V1*dx)/alfa; 53 pec2 = (max(abs(V2))*dy)/alfa; 54 % 55 % Zerando as Matrizes e o vetor d 56 % 57 A = sparse(ntn,ntn); 58 B = sparse(ntn,ntn); 59 d = zeros(ntn,1); 60 % 61 % Estabelecendo a condicao inicial 62 % 63 u0 = zeros(ntn,1); 64 for k=1:1:nny
  • 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 sistema 81 % 82 % Construção em Gama 0 83 % 84 for i = 2:ny 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 centrais 92 % 93 for j = 1:1:nx-1
  • 38. 94 for i = nny*j+2:nny*j+ny 95 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 3 109 % 110 for i = 2*nny:nny:nx*nny 111 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 1 120 % 121 for j = 1:nx-1 122 i = nny*j+1;
  • 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 2 132 % 133 for i = nx*nny+1:ntn 134 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 143 % 144 %for i = 10*ny:11*ny 145 % 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. 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 rigidez 161 % 162 [ll uu] = lu(A); 163 % 164 % fazendo a matriz malha para o grid 165 % 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. 181 % montagem da malha de coordenadas dos nos 182 % 183 k=0; 184 for i=1:nnx 185 x = (i-1)*dx; 186 for j = 1:nny 187 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 grafico 195 fig=figure; 196 mov = avifile('animacao6.avi') 197 trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario 6'),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 0 204 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 do domínio 206 nsp4 = ntn-ny/2-1; % Nó sobre a fronteira Gama 2 207 % 208 % resolução dos sucessivos sistemas.
  • 42. 209 % 210 for it = 1:nt 211 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)==1 219 trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario 6'),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. 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 Alta 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 Alta 4 % 5 % Parametros do modelo 6 % 7 clear all; t0=clock; %format long; 8 alfa = 0.32; % 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; 19 ti = 0; tf = 40; 20 nx = 600; 21 ny = 20; 22 nt = 100;
  • 44. 23 % 24 % Calculo de parametros auxiliares 25 % 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 y 35 % 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 Peclet 51 %
  • 45. 52 pec1 = (V1*dx)/alfa; 53 pec2 = (max(abs(V2))*dy)/alfa; 54 % 55 % Zerando as Matrizes e o vetor d 56 % 57 A = sparse(ntn,ntn); 58 B = sparse(ntn,ntn); 59 d = zeros(ntn,1); 60 % 61 % Estabelecendo a condicao inicial 62 % 63 u0 = zeros(ntn,1); 64 for k=1:1:nny 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 sistema
  • 46. 81 % 82 % Construção em Gama 0 83 % 84 for i = 2:ny 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 centrais 92 % 93 for j = 1:1:nx-1 94 for i = nny*j+2:nny*j+ny 95 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 3 109 %
  • 47. 110 for i = 2*nny:nny:nx*nny 111 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 1 120 % 121 for j = 1:nx-1 122 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 2 132 % 133 for i = nx*nny+1:ntn 134 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. 139 B(i,i-2*nny) = -alfa/(4*dx); 140 end; 141 % 142 % Estabelecendo vetor d 143 % 144 %for i = 10*ny:11*ny 145 % 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 rigidez 161 % 162 [ll uu] = lu(A); 163 % 164 % fazendo a matriz malha para o grid 165 % 166 k=0; 167 for i=1:nx;
  • 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 nos 182 % 183 k=0; 184 for i=1:nnx 185 x = (i-1)*dx; 186 for j = 1:nny 187 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 grafico 195 fig=figure; 196 mov = avifile('animacao6.avi')
  • 50. 197 trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario 6'),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 0 204 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 do domínio 206 nsp4 = ntn-ny/2-1; % Nó sobre a fronteira Gama 2 207 % 208 % resolução dos sucessivos sistemas. 209 % 210 for it = 1:nt 211 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)==1 219 trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario 6'),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. 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 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 úmida - 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 = 3.0; % velocidade do rio
  • 52. 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; 19 ti = 0; tf = 40; 20 nx = 600; 21 ny = 20; 22 nt = 100; 23 % 24 % Calculo de parametros auxiliares 25 % 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 y 35 % 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. 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 Peclet 51 % 52 pec1 = (V1*dx)/alfa; 53 pec2 = (max(abs(V2))*dy)/alfa; 54 % 55 % Zerando as Matrizes e o vetor d 56 % 57 A = sparse(ntn,ntn); 58 B = sparse(ntn,ntn); 59 d = zeros(ntn,1); 60 % 61 % Estabelecendo a condicao inicial 62 % 63 u0 = zeros(ntn,1); 64 for k=1:1:nny 65 u0(k) = u0(k)+0.001; 66 end; 67 u0(ntn-nau3) = .3; 68 u0(ntn-nau3-nny) = .3;
  • 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 sistema 81 % 82 % Construção em Gama 0 83 % 84 for i = 2:ny 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 centrais 92 % 93 for j = 1:1:nx-1 94 for i = nny*j+2:nny*j+ny 95 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. 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 3 109 % 110 for i = 2*nny:nny:nx*nny 111 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 1 120 % 121 for j = 1:nx-1 122 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. 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 2 132 % 133 for i = nx*nny+1:ntn 134 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 143 % 144 %for i = 10*ny:11*ny 145 % 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. 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 rigidez 161 % 162 [ll uu] = lu(A); 163 % 164 % fazendo a matriz malha para o grid 165 % 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 nos 182 % 183 k=0; 184 for i=1:nnx
  • 58. 185 x = (i-1)*dx; 186 for j = 1:nny 187 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 grafico 195 fig=figure; 196 mov = avifile('animacao6.avi') 197 trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario 6'),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 0 204 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 do domínio 206 nsp4 = ntn-ny/2-1; % Nó sobre a fronteira Gama 2 207 % 208 % resolução dos sucessivos sistemas. 209 % 210 for it = 1:nt 211 nosep1(it) = u0(nsp1); 212 nosep2(it) = u0(nsp2);
  • 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)==1 219 trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario 6'),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. 239 etime(clock,t0); 5. Teste Estação úmida – Difusão Média 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 úmida - Difusão Baixa 4 % 5 % Parametros do modelo 6 % 7 clear all; t0=clock; %format long; 8 alfa = 0.23; % coeficiente de difusão 9 sig = 0.1; % coeficiente de degradação 10 V1 = 3.0; % 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; 19 ti = 0; tf = 40; 20 nx = 600; 21 ny = 20; 22 nt = 100; 23 % 24 % Calculo de parametros auxiliares 25 % 26 nnx= nx+1; nny= ny+1; ntn = nnx*nny; dt = (tf - ti)/nt;
  • 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 y 35 % 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 Peclet 51 % 52 pec1 = (V1*dx)/alfa; 53 pec2 = (max(abs(V2))*dy)/alfa; 54 % 55 % Zerando as Matrizes e o vetor d
  • 62. 56 % 57 A = sparse(ntn,ntn); 58 B = sparse(ntn,ntn); 59 d = zeros(ntn,1); 60 % 61 % Estabelecendo a condicao inicial 62 % 63 u0 = zeros(ntn,1); 64 for k=1:1:nny 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 sistema 81 % 82 % Construção em Gama 0 83 % 84 for i = 2:ny
  • 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 centrais 92 % 93 for j = 1:1:nx-1 94 for i = nny*j+2:nny*j+ny 95 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 3 109 % 110 for i = 2*nny:nny:nx*nny 111 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. 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 1 120 % 121 for j = 1:nx-1 122 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 2 132 % 133 for i = nx*nny+1:ntn 134 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. 143 % 144 %for i = 10*ny:11*ny 145 % 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 rigidez 161 % 162 [ll uu] = lu(A); 163 % 164 % fazendo a matriz malha para o grid 165 % 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. 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 nos 182 % 183 k=0; 184 for i=1:nnx 185 x = (i-1)*dx; 186 for j = 1:nny 187 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 grafico 195 fig=figure; 196 mov = avifile('animacao6.avi') 197 trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario 6'),xlabel('Gamma_1'),ylabel('Gamma_0'),view(0,90),colorbar,shading interp; 198 F = getframe(gca); 199 mov = addframe(mov,F); 200 %
  • 67. 201 % resolução dos sucessivos sistemas. 202 % 203 nsp1 = 2*nny+ny/2; % Nó próximo a fronteira Gama 0 204 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 do domínio 206 nsp4 = ntn-ny/2-1; % Nó sobre a fronteira Gama 2 207 % 208 % resolução dos sucessivos sistemas. 209 % 210 for it = 1:nt 211 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)==1 219 trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario 6'),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. 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 Alta 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 úmida - Difusão Alta 4 % 5 % Parametros do modelo 6 % 7 clear all; t0=clock; %format long; 8 alfa = 0.32; % coeficiente de difusão 9 sig = 0.1; % coeficiente de degradação 10 V1 = 3.0; % 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 %
  • 69. 15 % Parametros da discretizacao 16 % 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 auxiliares 25 % 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 y 35 % 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. 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 Peclet 51 % 52 pec1 = (V1*dx)/alfa; 53 pec2 = (max(abs(V2))*dy)/alfa; 54 % 55 % Zerando as Matrizes e o vetor d 56 % 57 A = sparse(ntn,ntn); 58 B = sparse(ntn,ntn); 59 d = zeros(ntn,1); 60 % 61 % Estabelecendo a condicao inicial 62 % 63 u0 = zeros(ntn,1); 64 for k=1:1:nny 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;
  • 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 sistema 81 % 82 % Construção em Gama 0 83 % 84 for i = 2:ny 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 centrais 92 % 93 for j = 1:1:nx-1 94 for i = nny*j+2:nny*j+ny 95 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. 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 3 109 % 110 for i = 2*nny:nny:nx*nny 111 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 1 120 % 121 for j = 1:nx-1 122 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. 131 % Construção para a fronteira Gama 2 132 % 133 for i = nx*nny+1:ntn 134 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 143 % 144 %for i = 10*ny:11*ny 145 % 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. 160 % Fatoracao L U da matriz de rigidez 161 % 162 [ll uu] = lu(A); 163 % 164 % fazendo a matriz malha para o grid 165 % 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 nos 182 % 183 k=0; 184 for i=1:nnx 185 x = (i-1)*dx; 186 for j = 1:nny 187 y = (j-1)*dy; 188 k = k + 1;
  • 75. 189 coord(k,1) = x; 190 coord(k,2) = y; 191 end; 192 end; 193 % 194 % estruturando o vetor solucao para o grafico 195 fig=figure; 196 mov = avifile('animacao6.avi') 197 trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario 6'),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 0 204 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 do domínio 206 nsp4 = ntn-ny/2-1; % Nó sobre a fronteira Gama 2 207 % 208 % resolução dos sucessivos sistemas. 209 % 210 for it = 1:nt 211 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. 217 s = uuys; 218 if mod(it,2)==1 219 trisurf(malha,coord(:,1),coord(:,2),u0),title('Cenario 6'),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);