UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM COMPUTAÇÃO Modelo Computacional Paralelo para a Hidrodinâmica e para o Transporte de Substâncias Bidimensional e Tridimensional por ROGÉRIO LUIS RIZZI Tese submetida à avaliação, como requisito parcial para a obtenção do grau de Doutor em Ciência da Computação Prof. Dr. Tiarajú Asmuz Diverio Orientador Porto Alegre, agosto de 2002 2 CIP - CATALOGAÇÃO NA PUBLICAÇÃO Rizzi, Rogério Luis Modelo Computacional Paralelo para a Hidrodinâmica e para o Transporte de substâncias 2D e 3D/por Rogério Luis Rizzi.-Porto Alegre: PPGC da UFRGS, 2002 254 p.: il. Tese (doutorado) - Universidade Federal do Rio Grande do Sul. Programa de Pós-Graduação em Computação, Porto Alegre, BR - RS, 2002. Orientador: Diverio, Tiarajú Asmuz. 1. Equações shallow water 3D. 2. Transporte escalar de substâncias 3D. 3. Esquema numérico semi-implícito. 4. Refinamento local. 5. Método dos fluxos limitados. 6. Decomposição de domínio. I. Diverio, Tiarajú Asmuz. II. Título. UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL Reitora: Profª. Wrana Maria Panizzi Pró-Reitor de Ensino: Prof. José Carlos Ferraz Hennemann Pró-Reitor Adjunto de Pós-graduação: Prof. Jaime Evaldo Fensterseifer Diretor do Instituto de Informática: Prof. Philippe Olivier Alexandre Navaux Coordenador do PPGC: Prof. Carlos Alberto Heuser Bibliotecária-Chefe do Instituto de Informática: Beatriz Regina Bastos Haro 3 Agradecimentos Gostaria de agradecer.... Ao Programa de Pós Graduação em Computação do Instituto de Informática da UFRGS, por todos os recursos disponibilizados. A Universidade Estadual do Oeste do Paraná, cuja liberação foi fundamental para minha estada em Porto Alegre, o que possibilitou além da convivência na UFRGS, a dedicação exclusiva à pesquisa. A CAPES, pelo fomento. Aos professores do PPGC que compartilharam seu conhecimento. Aos colegas de disciplinas, de trabalhos, de risadas e preocupações. A todos os funcionários do Instituto de Informática da UFRGS, especialmente à Ida Rossi por sua dedicação em “garimpar” referências bibliográficas; ao Sr. Astrogildo, que em sua “vigilância” no prédio, dividiu sua companhia nos muitos sábados e domingos. Ao professor Tiarajú Asmuz Diverio, por aceitar-me como orientando e compartilhar esses quatro anos de muito trabalho. Aos amigos e colegas do Instituto de Informática dentre eles, Delcino Picinin Jr., André Luis Martinotto, Ana Paula Canal, Marcos Cassal, Marilton Aguiar, César Zeferino, Leandro Wives, Carlos Augusto Santos, Rafael Boher. Ao amigo, companheiro de trabalho e brilhante profissional, Ricardo Vargas Dorneles, mais conhecido como “Cadinho”. Este trabalho só foi possível devido as suas inúmeras contribuições, seja discutindo “estênceis e sobreposições”, seja especificando e implementando as estruturas de dados e discutindo as muitas estratégias de solução paralela. Aos professores Jean Leendertse, Vicenzo Casulli e Edward Gross, pela atenção, pelos conselhos e pela gentileza de enviar o material técnico, frutos de suas experiências e dedicação a área. Meu agradecimento e admiração. As muitas contribuições, “bate-papo”, e materiais cedidos, pelos professores Alejandro Cassalas (IPH-UFRGS), Suzana Vinzon (COPPE-UFRJ), Alvaro Luiz De Bortoli e Rudnei Cunha (IM-UFRGS), Renato Simões Silva (LNCC), Dan Marchesin (IMPA), Phillipe A. O. Navaux (II-UFRGS) e Carlos de Moura (IME-UERJ). Aos meus amigos, e colegas de trabalho, de Cascavel, Célia Kavanagh, Amarildo de Vicente, João Cândido Bracarense, Leila Franzini, Onildes Taschetto, Janice Parizotto, Cinara Ita, e tantos outros que sempre perguntavam “como andavam as coisas pelos pampas", um abraço! A minha família, e a minha querida esposa Claudia pelo amor, compreensão e paciência. Muito obrigado pelo seu apoio. 4 Sumário Lista de Abreviaturas............................................................................................ Lista de Figuras...................................................................................................... Lista de Tabelas...................................................................................................... Lista de Fórmulas.................................................................................................. Resumo...................................................................................................................... Abstract..................................................................................................................... 1 1.1 1.2 Objetivos e justificativas........................................................................... Apresentação.............................................................................................. Introdução.................................................................................................. Classificação e aproximações para os modelos..................................... Modelo hidrodinâmico: ESW 3D............................................................. Condições de contorno e condições iniciais.................................................. Modelo hidrodinâmico: ESW 2D-IV........................................................ Condições de contorno e condições iniciais.................................................. Modelo de transporte escalar: ETM 3D.................................................. Condições de contorno e condições iniciais.................................................. Modelo de transporte escalar: ETM 2D-IV............................................. Parametrização da turbulência................................................................ Classificação de modelos de turbulência...................................................... Modelo de turbulência de zero equações...................................................... Condições de contorno................................................................................. Estudo de Caso: Lago Guaíba.................................................................. 07 10 12 14 16 17 18 20 24 26 26 28 29 30 32 32 34 36 36 38 39 41 42 42 46 46 48 51 54 55 56 56 59 62 67 68 72 72 80 80 82 84 Introdução............................................................................................... 2 2.1 2.2 2.3 2.3.1 Problemas de valor inicial e de fronteira.................................... 2.4 2.4.1 2.5 2.6 2.7 2.5.1 2.7.1 2.7.2 2.7.3 2.8 3 3.1 3.2 3.2.1 Sistemas de coordenadas, valores nodais e malha................. Malha horizontal: espaço-alternada....................................................... Malha vertical............................................................................................. Malha vertical e representação da topografia............................................... 3.3 3.4 3.5 3.5.1 3.5.2 3.5.3 Valores nodais e variáveis dependentes................................................. Condições de contorno discretas............................................................. Domínios computacionais........................................................................ Configurações geométricas e enumeração................................................... Armazenamento: estruturas de dados......................................................... Regiões não retangulares: método ADI......................................................... Métodos adaptativos para a malha numérica....................................... Refinamento local para o transporte: método-h........................................ 3.6 3.6.1 4 4.1 4.2 4.3 4.4 4.5 ESW 3D na forma discreta...................................................................... Condições de contorno discretas: ESW 3D............................................ ESW 2D-IV na forma discreta.................................................................. ETM 3D na forma discreta....................................................................... Condições de contorno discretas: ETM 3D............................................ Modelos na forma discreta................................................................ 5 4.6 4.7 ETM 2D-IV na forma discreta.................................................................. Modelo de turbulência na forma discreta.............................................. 85 86 88 89 91 92 93 95 102 5 5.1 5.1.1 5.1.2 5.1.3 5.1.4 Métodos numéricos............................................................................. Método com limitação de fluxo: formulação de Sweby........................ Funções interpolantes.................................................................................. Funções interpolantes para velocidades arbitrárias..................................... Esquemas de limitação de fluxo: caso multidimensional............................. Funções limitadoras de fluxo....................................................................... Método beta................................................................................................ 5.2 6 6.1 6.1.1 6.1.2 Esquemas numéricos.......................................................................... 106 Esquemas semi-implícito: ESW 3D........................................................ 106 114 116 117 119 122 125 128 Solução explícita para termos das ESW....................................................... Condições de contorno: supressão de termos.............................................. Esquema semi-implícito fluxo numérico: ETM 2D-IV.......................... Esquemas semi-implícitos: método ADI................................................. Esquema numérico para a advecção horizontal: método FLM........... Esquema numérico semi-implícito: método beta.................................. Condições de contorno: extrapolação........................................................... 6.2 6.3 6.4 6.5 6.5.1 7 7.1 7.2 7.3 7.3.1 7.3.2 7.3.3 Solução Paralela: ambiente computacional e métodos........ 138 Plataforma computacional e ambiente de programação...................... 138 Decomposição de dados........................................................................... 140 Particionamento de malha e balanceamento de carga........................ 140 141 144 145 146 147 152 155 156 157 158 159 162 162 164 171 173 174 7.4 7.5 7.6 7.7 7.4.1 7.4.2 7.5.1 7.6.1 7.6.2 7.7.1 Heurísticas para o particionamento............................................................. Métodos e algoritmos de mapeamento........................................................ Heurísticas e métodos de balanceamento de carga..................................... Métodos de decomposição de domínio................................................... Métodos de Schwarz.................................................................................... Método aditivo de Schwarz: solução paralela.............................................. Métodos de solução para os sistemas de equações lineares.............. Métodos iterativos do subespaço de Krylov.................................................. Pré-condicionamento............................................................................... Pré-condicionador polinomial....................................................................... Pré-condicionador MDD aditivo de Schwarz................................................ Algoritmo do gradiente conjugado........................................................... GC paralelo: particionamento de dados....................................................... 7.8 7.9 7.10 7.10.1 Método Krylov-Schwarz..................................................................... Algoritmo do resíduo mínimo generalizado............................................ Método Direto: solução local e pipeline................................................... Algoritmo de Thomas pipeline...................................................................... 8 8.1 8.2 8.3 Conclusões................................................................................................. 180 Contribuições............................................................................................. 182 Trabalhos futuros...................................................................................... 185 Monotonicidade............................................................................................ 188 Consistência e estabilidade.......................................................................... 188 Conclusões, contribuições e trabalhos futuros...................... 180 Anexo 1 Propriedades numéricas e computacionais...................................... 186 6 Difusão numérica menor que a difusão física.............................................. Acurácia espacial e temporal de alta ordem................................................. Leis de conservação escalar......................................................................... Soluções fortes e soluções fracas................................................................. Condição de entropia e unicidade da solução.............................................. Consistência e variação limitada.................................................................. Soluções escalares TVD: acurácia de alta ordem......................................... Consistência entre a continuidade e o transporte........................................ Positividade da solução................................................................................ Transporte da solução.................................................................................. Conservação da massa................................................................................. Esquema semi-implícito............................................................................... Esquemas Euleriano e semi-Lagrangeano................................................... Esquemas de integração temporal............................................................... Componente horizontal: integração em subciclos........................................ Integração temporal: interpolação................................................................ Integração temporal: método ADI................................................................. 191 193 194 195 195 196 197 198 200 201 202 202 205 208 208 209 210 Anexo 2 Métricas para avaliar a qualidade numérica..................................... 212 Anexo 3 Métricas para avaliar o desempenho da solução paralela............. 215 Anexo 4 Funções de restrição de fluxo.............................................................. 216 Bibliografia................................................................................................................ 235 7 Lista de Abreviaturas 1D 2D 2D-IV 3D ADI ARF ANL ASD BBL BFS BCG CC CFL CI CCP CGS CHARM COPPE CMAQ CPU CSR CTC CUS DFC CFD DPL EC EC-IV ECQM ECQMx ECQMy EE EI EDOs EDPs ENO ESL ESWs ETM FFT FLM FLM-T FCT FLOPS F-M FOM GC GCR GMCPAD Unidimensional Bidimensional Bidimensional integrada na vertical Tridimensional Alternating Direction Implicit Area preserving Flux-Form Advection Algorithm Argonne National Laboratory Accurate Space Derivative Bottom Boundary Layer Breadth First Search Biconjugate Gradient Condição de Contorno Courant-Friedrichs-Levy Condição Inicial Computação Científica Paralela Conjugate Gradient Squared Cubic-Parabolic High Accuracy Resolution Method Coordenação do Programa de Pós-Graduação em Engenharia Community Multiscale Air Quality Unidade de Processamento e Controle Compressed Sparse Row Consistência do Transporte com a Continuidade Cubic Interpolation Scheme Diferença Finita Centrais (ou Centrada) Dinâmica de Fluidos Computacional Diffusive Piecewise Linear Equação da Continuidade Equação da Continuidade Integrada na Vertical Equação da Conservação da Quantidade do Movimento Equação da Conservação da Quantidade do Movimento na direção X Equação da Conservação da Quantidade do Movimento na direção Y Equação da Energia Equação Integral Equações Diferenciais Ordinárias Equações Diferenciais Parciais Essentially Non Oscillatory Esquema Semi-Lagrangeano Equações Shallow Water Equação do Transporte de substâncias Fourier Fast Transforms Flux-Limiter Methods Flux-Limiter Methods Trapezoidal Flux Corrected Transport Floating Point Operations per Second Fiduccia-Mattheyses Full Orthogonalization Method Gradiente Conjugado Generalized Conjugate Residual Grupo de Mat. da Computação e Processamento de Alto Desempenho 8 GMRES GPPD HCUS HQUICK HSFC IC I/O ILU IMPA INPE ISNAS K-L LNCC LUS MAS MAAS MARF MB MC MDD MDF MICOM MEF MMS MPDATA MPE MPL MPI MPP MSS MUSCL MVF M-Y NCAR NKS ORB PCs PL PPGC PPM PVC PVI PVIC PVT Q3D QETE QUICK RCB RMQ RSB SC SORB SDP SMART Método Resíduo mínimo Generalizado Grupo de Processamento Paralelo e Distribuído Harmonic Cubic Interpolation Scheme Harmonic Quadratic Upwind Scheme Hilbert Space-Filling Curve Fatoração de Cholesky Incompleta Input/Output Fatoração LU Incompleta Instituto de Matemática Pura e Aplicada Instituto Nacional de Pesquisas Espaciais Interpolation Scheme which is Nonoscillatory for Advected Scalars Kernighan-Lin Laboratório Nacional de Computação Científica Linear Upwind Scheme Método Alternante de Schwarz Método Aditivo de Schwarz Area Monotone Preserving Flux-Form Advection Algorithm Megabyte Monotonized Central Método de Decomposição de Domínio Método das Diferenças Finitas Miami Isopycnic Coordinate Ocean Model Método dos Elementos Finitos Método Multiplicativo de Schwarz Multidimensional Positive-Definite Advective Transport Algorithm MultiProcessing Environment Modified Piecewise Linear Message Passing Interface Massively Parallel Processors Método de Schwarz com Sobreposição Monotonic Upstream Scheme for Conservation Laws Método dos Volumes Finitos Mellor-Yamada National Center for Atmospheric Research Newton-Schwarz-Krylov Orthogonal Recursive Bisection Computadores Pessoais Piecewise Linear Programa de Pós-Graduação em Computação Piecewise Parabolic Methods Problema de Valor de Contorno Problema de Valor Inicial Problema de Valor Inicial e de Contorno Princípio da Viscosidade Turbulenta Quase Tridimensional Quasi-Equilibrium Turbulent Energy Quadratic Upwind Scheme Recursive Coordinate Bisection Raiz Média Quadrada Recursive Spectral Bisection Superfície de Controle Straigh Orthogonal Recursive Bisection Simétrica e Definida Positiva Sharp and Monotonic Algorithm for Realistic Transport 9 SO SOR SPL SPMD SRCB STRIP SSTRIP STRIP TV TVD UFRGS UMIST USPL USR UWMCB VC Sistema Operacional Sobre-Relaxação Sucessiva Symmetric Piecewise Linear Single Program Multiple Data Straigh Recursive Coordinate Bisection Stripwise Partitioning Straigh Stripwise Partitioning Stripwise Partitioning Total Variation Total Variation Diminishing Universidade Federal do Rio Grande do Sul Upstream Monotonic Interpolation for Scalar Transport Upstream Symmetric Piecewise Linear Upstream Symmetric Limiter Upstream Weighting Multiple Cell Balance Volume de Controle 10 Lista de Figuras FIGURA 2.1 FIGURA 2.2 FIGURA 3.1 FIGURA 3.2 FIGURA 3.3 FIGURA 3.4 FIGURA 3.5 FIGURA 3.6 FIGURA 3.7 FIGURA 3.8 FIGURA 3.9 FIGURA 3.10 FIGURA 3.11 FIGURA 3.12 FIGURA 3.13 FIGURA 3.14 FIGURA 3.15 FIGURA 3.16 FIGURA 3.17 FIGURA 3.18 FIGURA 6.1 FIGURA 6.2 FIGURA 6.3 FIGURA 6.4 FIGURA 6.5 FIGURA 6.6 FIGURA 6.7 FIGURA 6.8 FIGURA 6.9 FIGURA 7.1 FIGURA 7.2 FIGURA 7.3 FIGURA 7.4 FIGURA 7.5 FIGURA 7.6 FIGURA 7.7 FIGURA 7.8 FIGURA 7.9 FIGURA 7.10 FIGURA 7.11 FIGURA 7.12 FIGURA 7.13 FIGURA 7.14 FIGURA 7.15 FIGURA 7.16 FIGURA 7.17 FIGURA 7.18 FIGURA 7.19 FIGURA 7.20 Perfil das velocidades para as ESW-IV............................................. Imagem real do Lago Guaíba, obtida via sonar............................... Malha espaço-alternada Arakawa tipo C......................................... Batimetria do Lago Guaíba representada por 100 isolinhas........... Regimes de escoamento para uma dada coordenada vertical......... Domínio físico e domínio em coordenadas Cartesianas.................. Célula 3D no sistema de coordenadas (x,y,z).................................. Localização das variáveis dependentes no plano X-Z...................... Domínio retangular de dimensão 4×3............................................. Representação matricial para o domínio discreto........................... Domínio não retangular cujas fronteiras são irregulares................ Domínio discretizado com estêncil de 5-pontos.............................. Exemplo para formato CSR............................................................. Subdomínio onde se destacam as células e suas enumerações..... Uma configuração do Lago Guaíba para o método ADI.................. Matriz 3-diagonal para uma linha genérica com CC U-U................ Matriz 3-diagonal para uma coluna genérica com CC η-η.............. Algoritmo para interpolação linear dos níveis.................................. Malha do transporte encaixada na malha da hidrodinâmica.......... Substâncias saindo na fronteira outflow devido a CC gradiente..... Curva para a solução analítica para os níveis de água.................... Curva para a solução numérica para os níveis de água.................. Curva de níveis: solução analítica para os níveis da água............... Curva de níveis: solução numérica para os níveis da água............. Curvas para solução numérica para velocidades verticais.............. Curvas para solução numérica para velocidades verticais.............. Curvas para a solução numérica: velocidades horizontais.............. Estêncil computacional para o transporte horizontal...................... Coluna vertical representando as CC tipo não escoamento............ Particionamento, em 23 processos, usando o algoritmo RCB......... Particionamento, em 16 processos, usando a biblioteca METIS..... Subdomínios gerados pelo método alternante de Schwarz............. Algoritmo alternante de Schwarz..................................................... Algoritmo do MDD aditivo de Schwarz............................................ Algoritmo aditivo de Schwarz (em paralelo)..................................... Subdomínios com mostrando CC tipo Dirichlet homogêneas......... Speedup × número de processos para 23 processos....................... Eficiência × número de processos para 23 processos...................... Algoritmo para cálculo do fator incompleto, IC(0)............................ Algoritmo para o cálculo do fator incompleto diagonal, DIC(0)........ Algoritmo do GC pré-condicionado paralelizado.............................. Tempo de execução com e sem pré-condicionamento (Guaiba200) Tempo de execução com e sem pré-condicionamento (Guaiba100) Speedup × número de processos para o GC (Guaiba200)............... Speedup × número de processos para o GC (Guaiba100)............... Eficiência × número de processos para o GC (Guaiba200).............. Eficiência × número de processos para o GC (Guaiba100).............. Desempenho computacional do MAAS × KS (Guaiba200).............. Desempenho computacional do MAAS × KS (Guaiba100).............. 32 45 47 47 49 52 53 53 57 57 58 59 60 61 63 63 65 70 71 71 110 110 112 112 113 113 113 128 129 143 143 148 148 152 153 154 154 155 160 161 164 166 167 167 167 168 168 169 169 11 FIGURA 7.21 FIGURA 7.22 FIGURA 7.23 FIGURA 7.24 FIGURA 7.25 FIGURA 7.26 FIGURA 7.27 FIGURA 7.28 FIGURA 7.29 FIGURA 7.30 FIGURA 7.31 FIGURA 7.32 FIGURA 7.33 FIGURA 7.34 FIGURA 7.35 FIGURA 7.36 - Acurácia: solução monoprocessada × multiprocessada (float)......... Acurácia: solução monoprocessada × multiprocessada (float)......... Acurácia: solução monoprocessada × multiprocessada (double)..... Acurácia: solução monoprocessada × multiprocessada (double)..... Algoritmo GMRES(m)....................................................................... Passos forward e backward do algoritmo de Thomas..................... Algoritmo para inversão da matriz triangular inferior..................... Algoritmo para inversão da matriz 3-diagonal SDP......................... Decomposição de domínio: um sistema para cada linha................ Particionamento de dados para um subdomínio regular................ Escalonamento para o algoritmo de Thomas.................................. Escalonamento para o algoritmo de Thomas pipeline..................... Particionamento em faixas na direção Y......................................... Campo de velocidade para o particionamento em faixas................ Speedup obtido, para um dado refinamento: método ADI.............. Eficiência obtida, dado refinamento, para o método ADI................ 170 170 171 171 173 173 174 174 175 175 176 176 177 178 178 179 FIGURA A1.1 - Exemplo para oscilação numérica e difusão numérica................... 187 FIGURA A1.2 - Posicionamento dos fluxos numéricos nas faces da célula 3D........ 203 12 Lista de Tabelas TABELA 3.1 TABELA 3.2 TABELA 5.1 TABELA 5.2 TABELA 5.3 TABELA 5.4 TABELA 7.1 TABELA A1.1 TABELA A1.2 TABELA A4.1 TABELA A4.2 TABELA A4.3 TABELA A4.4 TABELA A4.5 TABELA A4.6 TABELA A4.7 TABELA A4.8 TABELA A4.9 TABELA A4.10TABELA A4.11TABELA A4.12TABELA A4.13TABELA A4.14TABELA A4.15TABELA A4.16TABELA A4.17TABELA A4.18TABELA A4.19TABELA A4.20TABELA A4.21TABELA A4.22TABELA A4.23TABELA A4.24TABELA A4.25TABELA A4.26TABELA A4.27TABELA A4.28TABELA A4.29TABELA A4.30TABELA A4.31TABELA A4.32TABELA A4.33TABELA A4.34TABELA A4.35TABELA A4.36TABELA A4.37TABELA A4.38TABELA A4.39Exemplo de sublinhas de cálculo para método ADI: direção X...... Exemplo de subcolunas de cálculo para método ADI: direção Y.... Teste com a onda quadrada e o esquema UMIST.......................... Experimento (UMIST) com Cr=0,25: análise da precisão................ Experimento (UMIST) com Cr=0,25: influência do perfil................. Resultados para o teste para o esquema beta................................ Número de iterações do GC com e sem pré-condicionamento....... Resultados para condição CTC: dados iniciais constantes............. Resultados para condição CTC: dados iniciais não constantes...... Resultados para o teste com onda quadrada para Cr=0,25 (FLM).. Resultados para o teste com onda quadrada para Cr=0,25 (FLM).. Resultados para o teste com onda quadrada para Cr=0,25 (FLM).. Resultados para o teste com onda quadrada para Cr=0,25 (FLM).. Resultados para o teste com onda quadrada para Cr=0,25 (FLM).. Resultados para o teste com onda quadrada para Cr=0,25 (FLM).. Resultados para o teste com onda quadrada para Cr=0,25 (FLM).. Resultados para o teste com onda quadrada para Cr=0,25 (FLM).. Resultados para o teste com onda quadrada para Cr=0,40 (FLM).. Resultados para o teste com onda quadrada para Cr=0,40 (FLM).. Resultados para o teste com onda quadrada para Cr=0,40 (FLM).. Resultados para o teste com onda quadrada para Cr=0,40 (FLM).. Resultados para o teste com onda quadrada para Cr=0,40 (FLM).. Resultados para o teste com onda quadrada para Cr=0,40 (FLM).. Resultados para o teste com onda quadrada para Cr=0,33 (FLM).. Análise da precisão dos resultados do esquema upwind............... Análise da precisão dos resultados do esquema upwind............... Análise da precisão dos resultados do esquema Roe-Superbee..... Análise da precisão dos resultados do esquema Roe-Superbee..... Análise da precisão dos resultados do esquema UMIST................ Análise da precisão dos resultados do esquema UMIST................ Análise dos resultados para erros relativos no esquema upwind... Análise dos resultados para erros relativos no esquema upwind... Análise dos resultados para erros relativos no esquema Roe......... Análise dos resultados para erros relativos no esquema Roe......... Análise dos resultados para erros relativos no esquema UMIST.... Análise dos resultados para erros relativos no esquema UMIST.... Análise da influência do perfil para o esquema Roe-Superbee....... Análise da influência do perfil para o esquema Roe-Superbee....... Análise da influência do perfil para o esquema Roe-Superbee....... Análise da influência do perfil para o esquema upwind................. Análise da influência do perfil para o esquema upwind................. Análise da influência do perfil para o esquema upwind................. Análise da influência do perfil para o esquema UMIST.................. Análise da influência do perfil para o esquema UMIST.................. Análise da influência do perfil para o esquema UMIST.................. Análise da influência do perfil para o esquema UMIST.................. Análise da influência do perfil para o esquema upwind................. Análise da influência do perfil para o esquema Roe-Superbee....... 65 66 100 101 102 105 166 200 200 216 216 217 217 217 218 218 218 220 220 220 221 221 221 222 223 223 224 224 224 225 225 226 226 226 227 227 228 228 228 229 229 229 230 230 230 231 231 231 13 TABELA A4.40TABELA A4.41TABELA A4.42TABELA A4.43TABELA A4.44TABELA A4.45- Análise da influência do perfil para o esquema Roe-Superbee....... Análise da influência do perfil para o esquema upwind................. Análise da influência do perfil para o esquema UMIST.................. Análise da influência do perfil para o esquema Roe-Superbee....... Análise da influência do perfil para o esquema upwind................. Análise da influência do perfil para o esquema UMIST.................. 232 232 233 233 233 234 14 Lista de Fórmulas FÓRMULA 2.1FÓRMULA 2.2 FÓRMULA 2.3 FÓRMULA 2.4 FÓRMULA 2.5 FÓRMULA 2.6 FÓRMULA 2.7 FÓRMULA 2.8 FÓRMULA 2.9 FÓRMULA 2.10FÓRMULA 4.1 FÓRMULA 4.2 FÓRMULA 4.3 FÓRMULA 4.4 FÓRMULA 4.5 FÓRMULA 4.6 FÓRMULA 4.7 FÓRMULA 4.8 FÓRMULA 4.9 FÓRMULA 4.10 FÓRMULA 4.11 FÓRMULA 4.12 FÓRMULA 4.13 FÓRMULA 4.14 FÓRMULA 5.1 FÓRMULA 5.2 FÓRMULA 5.3 FÓRMULA 5.4 FÓRMULA 5.5 FÓRMULA 5.6 FÓRMULA 5.7 FÓRMULA 5.8 FÓRMULA 5.9 FÓRMULA 5.10 FÓRMULA 6.1 FÓRMULA 6.2 FÓRMULA 6.3 FÓRMULA 6.4 FÓRMULA 6.5 FÓRMULA 6.6 FÓRMULA 6.7 FÓRMULA 6.8 FÓRMULA 6.9 FÓRMULA 7.1 FÓRMULA 7.2 ESW 3D: equação quantidade do movimento na direção X......... ESW 3D: equação quantidade do movimento na direção Y......... ESW 3D: equação da continuidade............................................. ESW 3D: equação da continuidade integrada na vertical............ ESW 2D-IV: equação quantidade do movimento na direção X.... ESW 2D-IV: equação quantidade do movimento na direção Y.... ESW 2D-IV: equação da continuidade......................................... ETM 3D........................................................................................ Taxa de decaimento...................................................................... ETM 2D-IV.................................................................................... Componente u da velocidade horizontal na forma discreta.......... Componente v da velocidade horizontal na forma discreta.......... Nível de água na forma discreta................................................... Velocidade vertical w na forma discreta....................................... Formulação matricial para a componente u da velocidade.......... Formulação matricial para a componente v da velocidade.......... Formulação matricial para os níveis de água............................... Formulação matricial para o vetor dos operadores em X............. Formulação matricial para o vetor dos operadores em Y............. Formulação para os coeficientes de viscosidade em X................. Formulação para os coeficientes de viscosidade em Y................. Formulação matricial para os níveis de água.............................. ETM 3D na forma discreta........................................................... ETM 3D na forma conservativa fluxo........................................... Função interpolante de van Leer.................................................. Função limitadora de fluxo........................................................... Condição suficiente para a função de restrição de fluxo.............. Condição para restrição em função do número de Péclet............ Função limitadora de fluxo para velocidades arbitrárias............. Funções monitoras de fluxo......................................................... Função fluxo numérico para face superior.................................. Função fluxo numérico para face superior: esquema beta.......... Função fluxo numérico para face inferior: esquema beta............ Função fluxo numérico para advecção vertical: esquema beta.... Sistema de equações lineares para os níveis de água.................. ESW 1D........................................................................................ Operador explícito para a componente u da velocidade............... Operador explícito para a componente v da velocidade............... Sistema de equações para a concentração ETM 2D-IV -............. Sistema de equações 3-diagonal: primeiro passo de tempo........ Sistema de equações 3-diagonal: segundo passo de tempo......... Fluxos numéricos para as velocidades horizontais: FLM............. Sistema de equações lineares para ETM 3D................................ MDD multiplicativo de Schwarz................................................... Método aditivo de Schwarz para N subdomínios......................... 29 29 29 29 31 31 31 34 34 37 73 74 75 75 76 76 76 77 78 78 78 78 81 82 89 90 90 90 91 91 102 102 102 102 104 107 107 113 113 117 118 122 124 148 149 FÓRMULA A1.1 - Condição de estabilidade para esquema numérico das ESW...... 183 FÓRMULA A1.2 - Condição de estabilidade para esquema beta da ETM 3D........... 184 FÓRMULA A1.3 - Coeficiente de difusão numérica.................................................. 185 15 FÓRMULA A1.4 FÓRMULA A1.5 FÓRMULA A1.6 FÓRMULA A1.7 FÓRMULA A1.8 - Coeficiente de difusão numérica para o esquema beta................ Problema de valor inicial: lei de conservação escalar................... Equação integral para solução fraca............................................ Equação da continuidade............................................................. Equação do transporte escalar..................................................... 186 188 189 192 193 16 Resumo Neste trabalho desenvolveu-se e implementou-se um modelo computacional paralelo multifísica para a simulação do transporte de substâncias e do escoamento hidrodinâmico, bidimensional (2D) e tridimensional (3D), em corpos de água. Sua motivação está centrada no fato de que as margens e zonas costeiras de rios, lagos, estuários, mares e oceanos são locais de aglomerações de seres humanos, dada a sua importância para as atividades econômica, de transporte e de lazer, causando desequilíbrios a esses ecossistemas. Esse fato impulsiona o desenvolvimento de pesquisas relativas a esta temática. Portanto, o objetivo deste trabalho é o de construir um modelo computacional com alta qualidade numérica, que possibilite simular os comportamentos da hidrodinâmica e do transporte escalar de substâncias em corpos de água com complexa configuração geométrica, visando a contribuir para seu manejo racional. Visto que a ênfase nessa tese são os aspectos numéricos e computacionais dos algoritmos, analisaram-se as características e propriedades numérico-computacionais que as soluções devem contemplar, tais como a estabilidade, a monotonicidade, a positividade e a conservação da massa. As estratégias de soluções enfocam os termos advectivos e difusivos, horizontais e verticais, da equação do transporte. Desse modo, a advecção horizontal é resolvida empregando o método da limitação dos fluxos de Sweby, e o transporte vertical (advecção e difusão) é resolvido com os métodos beta de Gross e de Crank-Nicolson. São empregadas malhas com distintas resoluções para a solução do problema multifísica. O esquema numérico resultante é semi-implícito, computacionalmente eficiente, estável e fornece acurácia espacial e temporal de segunda ordem. Os sistemas de equações resultantes da discretização, em diferenças finitas, das equações do escoamento e do transporte 3D, são de grande porte, lineares, esparsos e simétricos definidos-positivos (SDP). No caso 2D os sistemas são lineares, mas os sistemas de equações para a equação do transporte não são simétricos. Assim, para a solução de sistemas de equações SDP e dos sistemas não simétricos empregam-se, respectivamente, os métodos do subespaço de Krylov do gradiente conjugado e do resíduo mínimo generalizado. No caso da solução dos sistemas 3-diagonal, utiliza-se o algoritmo de Thomas e o algoritmo de Cholesky. A solução paralela foi obtida sob duas abordagens. A decomposição ou particionamento de dados, onde as operações e os dados são distribuídos entre os processos disponíveis e são resolvidos em paralelo. E, a decomposição de domínio, onde obtém-se a solução do problema global combinando as soluções de subproblemas locais. Em particular, emprega-se neste trabalho, o método de decomposição de domínio aditivo de Schwarz, como método de solução, e como pré-condicionador. Para maximizar a relação computação/comunicação, visto que a eficiência computacional da solução paralela depende diretamente do balanceamento de carga e da minimização da comunicação entre os processos, empregou-se algoritmos de particionamento de grafos para obter localmente os subproblemas, ou as partes dos dados. O modelo computacional paralelo resultante mostrou-se computacionalmente eficiente e com alta qualidade numérica Palavras-chave: equações shallow water 3D, equação de transporte escalar 3D, esquemas numéricos semi-implícito, refinamento local, método de Sweby, método de decomposição de Schwarz. 17 TITLE: “PARALLEL COMPUTATIONAL MODEL FOR HYDRODYNAMICS AND FOR THE SCALAR TWO-DIMENSIONAL AND THREE-DIMENSIONAL TRANSPORT OF SUBSTANCES” Abstract A multi-physics parallel computational model was developed and implemented for the simulation of substance transport and for the two-dimensional (2D) and threedimensional (3D) hydrodynamic flow in water bodies. The motivation for this work is focused in the fact that the margins and coastal zones of rivers, lakes, estuaries, seas and oceans are places of human agglomeration, because of their importance for economic, transport, and leisure activities causing ecosystem disequilibrium. This fact stimulates the researches related to this topic. Therefore, the goal of this work is to build a computational model of high numerical quality, that allows the simulation of hydrodynamics and of scalar transport of substances behavior in water bodies of complex configuration, aiming at their rational management. Since the focuses of this thesis are the numerical and computational aspects of the algorithms, the main numerical-computational characteristics and properties that the solutions need to fulfill were analyzed. That is: stability, monotonicity, positivity and mass conservation. Solution strategies focus on advective and diffusive terms, horizontal and vertical terms of the transport equation. In this way, horizontal advection is solved using Sweby’s flow limiting method; and the vertical transport (advection and diffusion) is solved with Gross and Crank-Nicolson’s beta methods. Meshes of different resolutions are employed in the solution of the multi-physics problem. The resulting numerical scheme is semi-implicit, computationally efficient, stable and provides second order accuracy in space and in time. The equation systems resulting of the discretization, in finite differences, of the flow and 3D transport are of large scale, linear, sparse and symmetric positive definite (SPD). In the 2D case, the systems are linear, but the equation systems for the transport equation are not symmetric. Therefore, for the solution of SPD equation systems and of the non-symmetric systems we employ, respectively, the methods of Krylov’s sub-space of the conjugate gradient and of the generalized minimum residue. In the case of the solution of 3-diagonal systems, Thomas algorithm and Cholesky algorithm are used. The parallel solution was obtained through two approaches. In data decomposition or partitioning, operation and data are distributed among the processes available and are solved in parallel. In domain decomposition the solution of the global problem is obtained combining the solutions of the local sub-problems. In particular, in this work, Schwarz additive domain decomposition method is used as solution method and as preconditioner. In order to maximize the computation/communication relation, since the computational efficiency of the parallel solution depends directly of the load balancing and of the minimization of the communication between processes, graph-partitioning algorithms were used to obtain the sub-problems or part of the data locally. The resulting parallel computational model is computationally efficient and of high numerical quality. Key words: shallow water 3D equations, 3D equation of scalar transport, semi-implicit numerical schemes, local refinement, Sweby method, Schwarz domain decomposition method. 18 1 Introdução O Grupo de Matemática da Computação e Processamento de Alto Desempenho (GMCPAD) e o Grupo de Processamento Paralelo e Distribuído (GPPD) do Programa de Pós-Graduação em Computação da Universidade Federal do Rio Grande do Sul (PPGC da UFRGS) vem trabalhando em aplicações de alto desempenho, e dentre elas está contemplado o desenvolvimento de modelos computacionais paralelos para a simulação do escoamento e do transporte de substâncias em corpos de água. O objetivo desses modelos, enquanto aplicação, é simular complexos processos hidrodinâmicos e de transporte de substâncias que ocorrem em corpos de água, como aqueles de lagos, regiões costeiras e estuários. Essas questões são os principais elementos motivadores desta tese, porém, enquanto pesquisa aplicada em Ciência da Computação, mais especificamente em Computação Científica Paralela, o objetivo deste trabalho é desenvolver esquemas numéricos e estratégias de solução paralelas apropriados, sob o ponto de vista numérico e computacional, à construção de modelos computacional paralelos multifísica, nos quais são simulados diferentes fenômenos físicos no mesmo domínio de definição. Esse é caso da hidrodinâmica 3D e do transporte escalar de substâncias 3D, como tratado neste trabalho. Para esta tese, foi desenvolvido um modelo paralelo para a hidrodinâmica (modo barotrópico, que é aquele que considera apenas as ondas de gravidade externa) e para o transporte de substâncias (dejetos humanos) em corpos de águas rasos, motivado pelo fato de que a disponibilização desses modelos computacionais com alta resolução e alto desempenho permite a simulação em detalhes da circulação e do transporte de substâncias nesses ambientes. Essas questões são essenciais para a compreensão das atividades ecológicas relacionadas a esses ambientes. Para contextualizar o modelo computacional paralelo multifísica aqui desenvolvido em relação aos modelos já existentes, objetivando-se comparar suas características, fez-se uma ampla revisão bibliográfica, onde se encontrou 36 modelos. A análise mostra que as principais características dinâmicas e numéricas de grande parte desses modelos segue o mesmo padrão. A discretização é via diferenças finitas, usa-se o método ADI e o algoritmo de Thomas para obter a solução – seqüencial - dos sistemas de equações, e usa-se o sistema de coordenadas cartesianas ou curvilíneas para construir a malha horizontal. Além disso, esses modelos são desenvolvidos ou para o escoamento ou para o transporte de substâncias. Exemplos desses modelos, que são semelhantes ao desenvolvido originalmente por Leendertse [LEE70] e [LEE71], e que reúnem essas caraterísticas, típicas de modelos 2D integrados na vertical, são os de: Cassalas [CSL85], Silveira [SIL86] e Kaplan [KAP98]. Exemplos de modelos 2D que não seguem essas características são os de Paglieri [PAG97] e Ding [DIN98]. Nesses dois casos a advecção é discretizada usando a abordagem semi-Lagrangeano e a solução numérica é obtida em paralelo. Em [PAG97] a solução paralela é obtida via decomposição de domínio, e em [DIN98] a solução paralela é obtida via transformada rápida de Fourier (FFT). Outros modelos, agora no caso 3D, são aqueles cujas principais características são: a separação dos modos (modo interno e modo externo), o uso de malha curvilínea (ou malha não estruturada) na horizontal, o uso do sistema sigma na vertical, e cuja solução é obtida seqüencialmente. Exemplos são os modelos de: Sheng [SHE83], Gomes e Blumberg [GOM95], Fortunato [FOR96]. Alguns exemplos de modelos 3D que não usam a separação dos modos são os de: Vollebregt [VOL97], Vilar [VLA99], Kim e Lee [KIM94], Bonaventura e Villa [ROS2000], Zhu, Johnson, Bangalope, Huddleston e Skjellum [ZHU98], Zheng e Wang [ZHE99], Li e Zhanh [LIY96], Gross [GRO98], Cassuli [CAS92], e Leendertse [LEE89]. 19 Destacam-se algumas particularidades de alguns desses modelos 3D de modo a permitir uma comparação mais específica com o modelo computacional paralelo multifísica desenvolvido nesta tese, particularmente os modelos de [SHE83], [VOL97], [ZHE98], [VLA99] e [ZHE99]. No trabalho de Sheng destaca-se, principalmente, pela discussão sistemática e abrangente das principais características dinâmicas e numéricas dos modelos hidrodinâmico e de transporte de substâncias. Além disso, outro ponto de destaque no trabalhe de Sheng é a discussão das EDPs dos modelos matemáticos de modo a obter EDPs adimensionais em coordenadas sigma na vertical e em coordenadas curvilíneas na horizontal. A solução seqüencial é obtida via separação dos modos e a parametrização da turbulência é semi-empírica. Vollebregt [VOL97] desenvolveu modelos 3D, para a hidrodinâmica e para o transporte de substâncias, e usa o sistema de coordenadas Cartesianas na vertical e coordenadas curvilíneas na horizontal. Um modelo de parametrização da turbulência κ − ε (modelo de duas equações) é, também, desenvolvido e implementado. Para obter a solução paralela dos modelos emprega-se o método ADI combinado com estratégias de transposição dos dados, e métodos do subespaço de Krylov. Os algoritmos numéricos seguem a abordagem desenvolvida por Leendertse [LEE89]. O trabalho de Vilar [VLA99] contempla, também, a solução – seqüencial e via método ADI – dos modelos hidrodinâmicos e de transporte de substâncias 3D. A parametrização da turbulência é semi-empírica e semelhante aquela feita por Sheng. Destaca-se o processo de discretização, que é feito empregando o método dos volumes finitos usando uma malha não estruturada na horizontal, e de modo a permitir o uso de um sistema híbrido (como, por exemplo, sigma-Cartesiano-sigma) na vertical. Já o trabalho de Zheng e Wang [ZHE99] se destaca por ser um modelo abrangente para o transporte multi-constituinte de substâncias de modo a simular sua advecção, difusão e reações químicas em escoamento através de meios porosos (groundwater flow). A discretização via diferenças finitas envolve esquemas numéricos empregando as abordagens semi-Lagrangiana e TVD. A solução – seqüencial – é obtida empregados-se métodos iterativos (pré-condicionados) do subespaço de Krylov. Em [ZHU98] desenvolve-se o modelo 3D empregando o método das diferenças finitas para a discretização das EDPs, as malhas horizontal e vertical são em coordenadas Cartesianas, a solução paralela é obtida via decomposição de dados. A estratégia de solução e os algoritmos numéricos seguem a abordagem desenvolvida originalmente por Casulli [CAS92]. No caso do modelo computacional paralelo para a hidrodinâmica e para o transporte de substâncias 2D e 3D desenvolvido nesta tese, pode-se sintetizar algumas de suas características são: discretização via diferenças finitas (forma conservativa, via fluxo numérico); malha espaço-alternada na horizontal; sistema de coordenadas Cartesianas para a malha vertical; algoritmos para calcular os fluxos são construídos usando os métodos de limitação de fluxo de Sweby ([SWE84] e o Beta de Gross [GRO98]; desenvolvimento de estratégias de solução paralela empregando o método ADI combinado com o algoritmo de Thomas na versão pipeline como Povitsky [POV98], a decomposição de dados, e decomposição de domínio e o método Krylov-Schwarz. A solução para o problema multifísica foi obtida construíndo-se um refinamento local. A parametrização da turbulência é, também, semi-empírica, dado que o modelo de turbulência é do tipo zero equações. Essas características tornam o modelo computacional desenvolvido neste trabalho distinto de todos os encontrados na literatura. Nas próximas seções segue-se uma descrição mais detalhada e técnica dos principais atributos numéricos e computacionais deste modelo computacional multifísica. 20 1.1 Objetivos e justificativas Considerando-se que o objetivo geral é desenvolver um modelo computacional paralelo multifísica, os objetivos específicos deste trabalho foram, portanto, o de desenvolver esquemas numéricos, estratégias de paralelização e de solução apropriados, sob o ponto de vista numérico e computacional, à construção desses modelos paralelos. No decorrer das atividades de pesquisa, analisaram-se os mais importantes atributos numéricos e computacionais que modelos paralelos devem considerar, visando à qualidade numérica e ao desempenho computacional. Com essa abordagem construiram-se modelos computacionalmente eficientes, e que oferecem soluções numéricas condizentes com a realidade física. Além disso, com o exame detalhado das propriedades dos modelos fundamentaram-se os critérios e as abordagens para a construção dos esquemas (algoritmos) numéricos. As soluções paralelas também foram desenvolvidas sob essa abordagem. O resultado final é a produção de modelos computacionais eficientes e acurados, apropriados para simulações de eventos de longa duração. No caso dos esquemas numéricos do modelo hidrodinâmico, eles foram construídos baseados na estratégia desenvolvida por Casulli ([CAS90], [CAS92] e [CAS94]). Essa escolha decorreu do fato de que nesses trabalhos estabeleceu-se uma rigorosa base matemática para a construção dos esquemas numéricos, de modo que o algoritmo numérico resultante não depende de considerações heurísticas, acarretando a eliminação de inconsistências na solução numérica, como aquelas que surgem em modelos que empregam a técnica da divisão do modo (mode splitting). A análise de estabilidade das equações diferenciais parciais (EDPs) que modelam a hidrodinâmica mostrou que a celeridade (velocidade de propagação da onda) é expressa por alguns termos constituintes das EDPs. Tais termos são os coeficientes dos gradientes de pressão barotrópica nas equações da conservação da quantidade de movimento, e as derivadas espaciais das velocidades na equação da continuidade. Portanto, esses termos devem ser discretizados implicitamente para que a estabilidade do esquema numérico não dependa da celeridade. Os demais termos constituintes das EDPs não têm essa restrição e podem ser discretizados explicitamente, de modo que o esquema numérico resultante é semi-implícito. Com essa abordagem, o esquema numérico para a hidrodinâmica não depende das condições Courant-Friedrichs-Levy (CFL) [FLE88], e tem um mínimo grau de implicidade, de modo que o algoritmo numérico é estável e tem máxima eficiência computacional com o mínimo de custo computacional. Note-se, porém, que o algoritmo desenvolvido nos trabalhos iniciais de Casulli ([CAS90] e [CAS92]) é numericamente estável e computacionalmente eficiente, mas ele é de primeira ordem de acurácia no tempo, o que introduz amortecimento artificial na solução numérica. Porém, esse erro de amortecimento pode ser reduzido ao mínimo quando se emprega uma média no tempo como no esquema Crank-Nicolson, como foi mostrado por Patnaik [PAT87]. Então, para obter uma acurácia temporal de segunda ordem, emprega-se o método trapezoidal ou seu caso particular, o método −θ . Tomando θ = 0,5 os termos dos níveis da água (gradientes de pressão barotrópica) são aproximados como uma média nos níveis de tempo n e n + 1 . O esquema de integração temporal resultante apresenta acurácia de segunda ordem, e o esquema numérico é estável e independente da velocidade da onda [CAS94]. Especificamente, aproximam-se os gradientes de elevação e a difusão vertical nas equações de conservação da quantidade de movimento, e a equação da continuidade, de modo implícito usando o método −θ . Os termos de difusão horizontal, de advecção (horizontal e vertical) e de Coriolis são aproximados explicitamente. Nessa abordagem geram-se sistemas de equações lineares cujas matrizes são simétricas definidas- 21 positivas (SDP). Nessa situação a existência e a unicidade da solução numérica são asseguradas. A solução desses sistemas SDP fornece os níveis de água. As velocidades horizontais são obtidas resolvendo sistemas de equações 3-diagonal, também SDP, de dimensão igual a da quantidade de camadas. As velocidades verticais são calculadas explicitamente. Sob o ponto de vista de solução numérica, essa abordagem requer a solução de sistemas de equações lineares com matrizes tipo 5-diagonal, que são aqueles sistemas de equações cujas matrizes dos coeficientes têm no máximo cinco elementos por linha, e requer a solução dos sistemas 3-diagonal. Esses resultados induziram os desenvolvimentos de determinadas estratégias quando da obtenção da solução paralela. Na solução da equação do transporte escalar de substâncias (ETM), deu-se especial atenção quando da construção dos esquemas numéricos aos dois termos mais críticos dessa EDP, que são as advecções vertical e horizontal, e o termo da difusão vertical. Isso se justifica pelo fato de que o objetivo central de esquemas advectivos verticais é simular apropriadamente a mistura vertical e, portanto, devem-se desenvolver esquemas numéricos com baixa difusão numérica, pois caso contrário, a difusão numérica obscurece a difusão física calculada pelo modelo de fechamento de turbulência. No caso da advecção, sua solução deve contemplar esquemas que não sejam suscetíveis de sofrerem de oscilações numéricas no entorno dos altos gradientes de concentração como aqueles que surgem quando da simulação de eventos como o despejo de dejetos. Além disso, deve-se considerar nessas abordagens as estratégias para obter a solução paralela do transporte escalar tendo em vista que o modelo computacional desenvolvido neste trabalho é aquele para problemas multifísica. Esses problemas são aqueles nos quais os fenômenos simulados são divididos em diferentes fenômenos físicos no mesmo domínio ou subdomínio de definição, e que exigem diferentes escalas espaço-temporais nos algoritmos numéricos para a obtenção de suas soluções. Esse é a situação da solução para a hidrodinâmica 3D e da solução para o transporte escalar de substâncias 3D. Nesse caso, devido as soluções já desenvolvidas para a hidrodinâmica, um esquema numérico para o transporte escalar com dependência implícita de dados somente na coluna de água facilita o desenvolvimento de estratégias na obtenção de sua solução paralela. Esses objetivos balizaram a escolha do método de solução para o transporte de substâncias, de modo que o transporte vertical seja tratado implicitamente e o transporte horizontal seja tratado explicitamente. Para a solução da advecção vertical empregou-se o método − β semi-implícito desenvolvido por Gross [GRO98]. A análise de estabilidade desse método mostra que ele é estável para todos os números de Courant. Além disso, tem menos erros de difusão e de dispersão que uma abordagem puramente implícita. Por esses atributos, essa abordagem é particularmente importante em esquemas advectivos verticais para representar a mistura vertical. Para a solução da difusão vertical empregou-se o método Crank-Nicolson que é semi-implícito e incondicionalmente estável [FLE88]. O resultado é a produção de um esquema numérico semi-implícito para o transporte vertical (advecção e difusão), e que pode ser empregado em regiões com grande variação no número de Courant, visto que esquemas apropriados são aqueles que são acurados para baixos números de Courant e que tenham uma boa acurácia para altos números de Courant, já que esta é uma característica marcante em muitos corpos de água. Essa escolha não impõe uma excessiva limitação na magnitude do passo de tempo, melhorando a eficiência computacional. 22 O uso dos métodos beta e Crank-Nicolson gera um esquema numérico semiimplícito para o transporte vertical. Assim, uma solução explícita para o transporte horizontal, combinada com o esquema do transporte vertical, pode fornecer um esquema numérico global que é semi-implícito e tem o importante atributo computacional de gerar sistemas de equações que são 3-diagonal. A questão central é como aproximar o transporte horizontal explicitamente sem degradar completamente a sua acurácia, visto que a solução da advecção horizontal pode sofrer de fortes oscilações numéricas no entorno dos altos gradientes de concentração se o esquema de solução não for apropriadamente construído. Essa questão é essencial e faz-se uma análise sistemática de soluções para esse problema através da especificação de uma série de funções limitadoras de fluxo considerando-se o emprego do esquema de limitação de fluxo de Sweby para a solução explícita da advecção horizontal. Essa escolha, discutida detalhadamente no anexo 1, decorre do fato de que soluções advectivas devem ser limitadas, acuradas e estáveis e essas características dependem do método empregado. Métodos numéricos lineares somente são efetivos em regiões com baixa advecção. Por exemplo, o esquema upwind de primeira ordem produz soluções estáveis e limitadas, mas é pouco acurado dado que é muito difusivo em regiões com alta advecção e/ou altos gradientes. As soluções limitadas, acuradas e estáveis são obtidas empregado-se malhas altamente refinadas e/ou esquemas com alta ordem de acurácia. Neste trabalho desenvolvem-se essas duas abordagens para obter soluções advectivas de alta qualidade numérica. Malhas refinadas são discutidas no capítulo 3, enquanto os esquemas não lineares conservativos são discutidos no capítulo 5 e empregam o método de limitação dos fluxos (FLM), de modo que as soluções tenham acurácia de no mínimo segunda ordem. Neste trabalho são analisadas e implementadas várias funções de restrição do fluxo numérico, já que essas funções que definem a qualidade dos resultados do método FLM. Especificamente, a advecção horizontal da ETM é discretizada empregando métodos de restrição de fluxo desenvolvido por Sweby [SWE84]. Dependendo da escolha da função limitadora de fluxo os esquemas numéricos explícitos construídos sob tal abordagem obedecem à característica de serem Total Variation Diminishing (TVD), satisfazendo a condição de entropia, que é um critério matemático que permite obter a solução correta entre as soluções fracas do problema, fornecendo soluções fisicamente corretas ([OSH84], [SNO98] e [SAT98]). No tocante à paralelização, adotou-se a abordagem programação explícita, na qual há um completo controle sobre as estratégias de implementação e sobre a própria implementação. Essa escolha decorre do fato de que as aplicações paralelas desenvolvidas neste trabalho visam arquiteturas tipo clusters de PCs, e inexistem ferramentas apropriadas para extrair o paralelismo implicitamente desse tipo de arquitetura. Além disso, em clusters multiprocessados, como o caso do disponível no Instituto de Informática da UFRGS, tem-se memória compartilhada, na qual os dados e as operações são globais, isto é, têm o mesmo endereçamento, e tem-se memória distribuída, na qual a comunicação entre processos é obtida através de trocas de mensagens. Assim, deve-se explorar os dois níveis de paralelismo, o intra e o internodal. Nesses ambientes de processamento paralelo as soluções podem ser obtidas via decomposição de dados, em que as operações e os dados são distribuídos entre os processadores, ou via decomposição de domínio, em que a solução é obtida através da combinação de soluções dos subproblemas. Sob quaisquer dessas abordagens são decompostos o domínio ou os dados, de modo a identificar as células da fronteira e as células internas a cada subdomínio ou conjunto de dados. O objetivo, nesse caso, é balancear a carga computacional entre eles de modo a minimizar o tempo de 23 comunicação entre os processos. Essas questões são do escopo de métodos de particionamento de malha. O problema de particionamento do domínio computacional (ou malha numérica) é visto como um problema de particionamento de grafos, quando se considera no grafo que o conjunto de vértices são as células computacionais, e as arestas são as comunicações entre essas células. Então, pode-se associar a cada nodo da arquitetura os processos ou dados, e às arestas, as comunicações ou dependências de dados. Além disso, pode-se associar aos pesos dos nodos a carga computacional, e aos pesos das arestas, a carga de comunicação. Essa abordagem é particularmente atraente, pois apesar de o problema de particionamento não possuir solução ótima (é um problema NP-difícil), os algoritmos baseados em grafos têm uma firme base matemática, que pode ser explorada para estabelecer algoritmos aproximativos de solução de modo a gerar os subdomínios ou as porções de dados. Já os métodos de decomposição de domínios para solução das EDPs constituem um conjunto de técnicas (matemáticas e computacionais) para obter a solução do problema global combinando as soluções dos subproblemas locais. Essa abordagem é apropriada, não somente do ponto de vista computacional, mas também do matemático, já que existe uma firme base matemática para os algoritmos decorrentes dessa abordagem (problemas elípticos) como discutido em [CHA94], [SMI96] e [QUA99]. Em particular, o método de decomposição de domínio aditivo de Schwarz é empregado neste trabalho sob duas abordagens. Em uma delas é como método de solução, e na outra como pré-condicionador. Nessa última abordagem tem-se o chamado método Krylov-Schwarz, que é um dos métodos mais efetivos atualmente utilizados na solução de grandes e esparsos sistemas de equações. Os métodos de solução usados para resolver os sistemas de equações localmente ou de modo distribuído, ou seja, que foram empregados de modo seqüencial ou que se tornaram objeto de processos de paralelização, foram o método direto de Thomas e os métodos iterativos do gradiente conjugado (GC) e do resíduo mínimo generalizado (GMRES). Quando as matrizes são 3-diagonal, o emprego do algoritmo de Thomas é inquestionável quanto à robustez e à rapidez. Ele é um método direto de ordem N, onde N é a dimensão da matriz, e não preenche a matriz. Devido a essas características, foi empregado neste trabalho para obter as soluções dos sistemas 3diagonal, como aqueles gerados pelo do método ADI (Alternating Direction Implicit) no caso de modelos 2D, e como aqueles gerados pela discretização do transporte vertical no modelo ETM 3D. Devido a formulação dos algoritmos numéricos, as velocidades horizontais do modelo hidrodinâmico 3D foram obtidas via algoritmo de Cholesky. Para resolver os sistemas de equações lineares com matrizes tipo 5-diagonal, que são aquelas que têm no máximo cinco elementos por linha, foram empregados métodos iterativos do subespaço de Krylov. A opção por esses métodos decorreu de análise feita a partir da literatura técnica. Métodos diretos têm a vantagem de serem robustos e de fornecerem uma solução numérica exata, exceto pelos arredondamentos decorrentes da aritmética de ponto flutuante. Porém, levam ao preenchimento da matriz destruindo sua esparsidade, o que dificulta o armazenamento e sua a otimização. Além disso, apresentam dependência global nas operações, tornando complicada a sua paralelização. Já os métodos iterativos clássicos (Jacobi, GaussSeidel, SOR, etc.) são, geralmente, computacionalmente menos eficientes, quando comparados aos métodos iterativos do subespaço de Krylov [SAA96]. Métodos do subespaço de Krylov são particularmente eficientes quando aplicados a matrizes grandes e esparsas. A eficiência decorre do fato de que seus algoritmos são construídos sobre operações básicas em álgebra linear e, portanto, são altamente 24 paralelizáveis. Uma aparente desvantagem dos métodos iterativos do subespaço de Krylov é a falta de uma sólida base matemática. Porém, no caso particular em que as matrizes são diagonalmente dominantes, simétricas ou não, essa classe tem métodos como o gradiente conjugado (GC), para matrizes simétricas definidas-positivas, e o como o resíduo mínimo generalizado (GMRES), para matrizes não simétricas. Esses algoritmos convergem rapidamente e suas propriedades são bem conhecidas, sobretudo as do algoritmo do GC. Por essas razões, foram esses os métodos de solução empregados neste trabalho. 1.2 Apresentação Note-se, portanto, que a construção de um modelo computacional paralelo para simular a hidrodinâmica e o transporte de substâncias em corpos de água abrange várias etapas, que vão desde a definição do modelo matemático até a análise e a validação dos resultados. Sendo assim, para uma melhor apresentação do trabalho realizado, são sinteticamente pontuadas, a seguir, as principais questões que devem ser levadas em conta no desenvolvimento desses modelos paralelos: 1. Os modelos matemáticos que descrevem os problemas de valor inicial e de contorno, que são constituídos por equações diferenciais parciais ou equações integrais, condições de contorno e condições iniciais; 2. A malha numérica, o método de discretização para obter a versão discreta das EDPs, e as funções interpolantes para construir os esquemas (algoritmos) numéricos; 3. Os algoritmos de particionamento de malha que devem particionar o domínio computacional de modo a obter a melhor relação carga computacional /comunicação; 4. As estratégias e técnicas de paralelização que devem considerar a decomposição do problema em subproblemas e/ou dados, de modo que a solução paralela seja consistente com a solução em um só processador; 5. Os métodos de solução apropriados para serem empregados em conjunto com as estratégias de paralelização, objetivando maximizar a eficiência computacional; 6. A plataforma em que é implementado o código computacional. Se tal plataforma é formada por clusters de PCs heterogêneos e multiprocessados, o balanceamento da carga e a comunicação entre os processos são questões que devem ser adequadamente consideradas; Essas questões são discutidas ao longo deste trabalho. O capítulo 2 trata dos problemas de valor inicial e de contorno que, neste trabalho, são constituídos das equações diferenciais parciais, e das condições iniciais e de contorno. Nesse capítulo, são constituídos, classificados e discutidos todos os modelos matemáticos empregados, e são apresentadas as aproximações e considerações físicas e matemáticas desses modelos. O capítulo 3 contempla as discussões relativas ao sistema de coordenadas, aos valores nodais, a malha numérica e o domínio discreto. Nele se discutem as características das malhas horizontal e vertical, bem como se definem as variáveis dependentes na forma discreta. Discute-se, também, como são construídas as condições de contorno superior, inferior, e laterais abertas e fechadas. Além disso, discutem-se os tipos de domínio empregados para aproximar a região, considerando-se domínios retangulares e não retangulares. O capítulo 4 discute os modelos introduzidos no capítulo 2, porém, dessa vez, na forma discreta. Adotando-se o método das diferenças finitas, são construídos os modelos hidrodinâmico e de transporte de substâncias 2D e 3D. Além disso, é construído um modesto modelo de parametrização de turbulência na forma discreta, 25 de modo a obter os coeficientes de difusão e de viscosidade turbulenta para os modelos 3D da hidrodinâmica e do transporte de substâncias. O capítulo 5 aborda os métodos e técnicas de aproximação para os fluxos numéricos. A partir de uma ampla revisão bibliográfica da literatura técnica, optou-se por construir funções aproximantes para a advecção horizontal do modelo de transporte 3D, considerando-se que o método de limitação de fluxo de Sweby, dado que ele tem a desejável característica de ser TVD. Na solução da advecção vertical do modelo de transporte 3D foi empregado o método beta de Gross. Nos casos de modelos 2D, a abordagem para tratar os termos advectivos foi, em geral, a upwind de primeira ordem, dado que o interesse nesses casos foi explorar os aspectos computacionais e obter background para desenvolver os modelos 3D. No capítulo 6, é discutida a aplicação dos métodos e técnicas de aproximação introduzidos no capítulo 5 para construir os esquemas numéricos para a obtenção das soluções das EDPs do escoamento nos casos 2D e 3D. Também se discutem os esquemas numéricos para a solução das EDPs do transporte escalar, nos casos 2D e 3D. Todas as condições de contorno implementadas são apresentadas e analisadas. O capítulo 7 contempla as questões relativas ao paralelismo – métodos e estratégias – e ao ambiente computacional. Nele são discutidos paradigmas de programação, a plataforma computacional e os ambientes de programação empregados neste trabalho. Duas abordagens foram empregadas para a obtenção da solução paralela: a decomposição de dados e a decomposição de domínio. Além disso, faz-se uma discussão sobre o problema de particionamento de malha numérica, bem como do procedimento de refinamento local para a solução detalhada do transporte de substâncias. Apresentam-se os métodos e as estratégias empregadas para a solução dos sistemas de equações lineares resultantes dos procedimentos de discretização e das funções interpolantes. Discute-se sobre os métodos iterativos do subespaço de Krylov, pré-condicionadores algébricos e sobre o algoritmo de Thomas. Além disso, é discutido o método aditivo de Schwarz, como “resolvedor” (solver) e como précondicionador. Neste último caso, obtém-se o método de Krylov-Schwarz, que também é empregado na obtenção da solução paralela para os sistemas de equações lineares. O capítulo 8 trata especificamente da apresentação das discussões e considerações finais decorrentes deste trabalho, bem como os apontamentos e comentários sobre trabalhos futuros. O anexo 1 discorre sobre as propriedades e características numéricocomputacionais que modelos computacionais de escoamento de superfície livre e de transporte escalar devem considerar quando do seu desenvolvimento e implementação. Discutem-se em detalhes a monotonicidade, a estabilidade, a consistência entre a continuidade e o transporte, a difusão numérica e a difusão física, a positividade, o transporte da solução, a conservação de massa, a construção de esquemas semiimplícitos e esquemas de integração temporal. Nos anexos 2 e 3 são apresentadas, respectivamente, as principais métricas para a avaliação da qualidade numérica e do desempenho computacional desses tipos de modelos computacionais paralelos. No anexo 4 discorre-se sobre os resultados, tabelados, de várias funções de restrição de fluxo que foram empregadas para obter a solução numérica da advecção horizontal da ETM 3D. 26 2 Problemas de valor inicial e de contorno Para realizar simulações de fenômenos físicos, deve-se inicialmente traduzi-los em modelos matemáticos capazes de fornecer uma descrição precisa da natureza dos eventos, quando se consideram seus aspectos essenciais. Esses problemas são, geralmente, expressos através de equações diferenciais parciais (EDPs) (ou equações integrais), de condições iniciais (CI) e de condições de contorno (CC), e formam um problema de valor inicial e de contorno (PVIC). Em um PVIC para problemas evolutivos, as equações são definidas em x , y, z , t ) ∈Ω ⊆ 3 × ( 0,T ) ; as CI são definidas em ( x , y, z ) ∈Ω ; e as CC, em ( ( x , y, z ) × t ∈∂Ω × [0, T ] , onde Ω e ∂Ω denotam, respectivamente, o interior e a fronteira do domínio, e T denota um dado tempo. A especificação das CC e CI são, nesse caso, imprescindíveis na simulação. Condições de contorno tipo Dirichlet, Neumann e Cauchy definem o tipo da interação do escoamento ou do transporte, sob a ação de forças, na interface interiorexterior do domínio. As CC podem ser abertas, quando do caso de fronteiras fictícias que delimitam o interior e o exterior do domínio, nas quais as perturbações podem entrar e sair do domínio. Outras CC são as fechadas, situação em que não é permitido às perturbações entrar ou sair do domínio. Para resolver numericamente esse PVIC contínuo, empregam-se métodos de discretização e funções interpolantes para aproximar as derivadas de modo a obter uma versão discreta, resolvivel computacionalmente. A solução é obtida através da construção de esquemas (algoritmos) numéricos que são definidos em uma malha computacional, de modo que os valores das variáveis dependentes associados a esses pontos são obtidos a partir do cálculo dos sistemas de equações que fornecem esses valores no nível de tempo t + Δt a partir do conhecimento dos valores no nível t , onde Δt é o passo de tempo. 2.1 Introdução A dinâmica dos fluidos lida com o comportamento de fluidos em repouso ou em movimento. São muitos os conceitos necessários para oferecer uma visão geral a título de introdução a ela. Alguns desses conceitos são expostos a seguir, objetivando definir uma terminologia básica que é empregada ao longo do texto. Discussões a respeito desses conceitos podem ser encontrados em [BTC90], [FOX98], [RIZ98] e [APS2001]. Fluido é a matéria que se deforma continuamente sob a aplicação de uma tensão de cisalhamento não importando quão pequena ela possa ser. Assim, os fluidos compreendem as fases líquidas e gasosas das formas físicas nas quais a matéria existe. Uma distinção entre fluidos e sólidos pode ser feita comparando seus comportamentos. Ao contrário do fluido um sólido pode se deformar, porém não continuamente, quando uma tensão de cisalhamento lhe é aplicada. Um escoamento é o transporte de substâncias em um fluido em que existe um deslocamento relativo de suas diversas partes [MAC76]. O escoamento pode ou não ter fronteiras. Se qualquer propriedade do fluido não varia com o tempo, o escoamento é dito estacionário (ou permanente). Um escoamento é governado pelos princípios fundamentais da Mecânica e da Termodinâmica Clássica. A aplicação desses princípios fornece o modelo matemático que é escrito na forma de equações diferenciais ou equações integrais (EI). A abordagem integral permite a presença de descontinuidades na região, e isso tem particular importância em escoamentos com ondas de choque (escoamentos compressíveis). A forma diferencial assume que as propriedades do escoamento são 27 diferenciáveis, logo contínuas. Isso indica que a forma integral, por poder tratar expressões descontínuas, é indispensável na construção de soluções fracas, como discutido no anexo 1. Quando as quantidades do meio são contínuas e suficientemente diferenciáveis (suaves), pode-se mostrar que as duas formas são equivalentes. Em geral, os textos sobre Mecânica dos Fluidos adotam os termos sistema e volume de controle (VC) para definir a região de trabalho. Um sistema é definido como uma quantidade de massa fixa e identificável; as fronteiras do sistema separam-no do ambiente à volta e podem ser fixas ou móveis, porém não há transferências de massa através das mesmas. Um VC é um volume arbitrário em uma região através da qual o fluido escoa. A fronteira geométrica, isto é, o contorno da região, é chamada superfície de controle (SC). Ela pode ser real ou fictícia, e pode estar em repouso ou em movimento. Quanto ao enfoque, os princípios fundamentais que são aplicados ao estudo da Mecânica dos Fluidos podem ser formulados em termos de VCs infinitesimais ou finitos. Por infinitesimal, entende-se que a abordagem é via elemento diferencial de área ou de volume, e por finito, entende-se uma dada região finita do plano ou do espaço. As grandezas (ou quantidades) físicas como comprimento, tempo, massa e temperatura são as dimensões, isto é, as variáveis espaciais e temporal do problema. Suas grandezas mensuráveis podem ser subdivididas em dois grupos: as primárias (ou básicas) e secundárias (ou derivadas das primárias), que são aquelas cujas dimensões são expressas em termos das primárias. As quantidades físicas devem ser dimensionalmente homogêneas, ou seja, devem estar no mesmo sistema de unidades. Na Mecânica dos Fluidos dos meios contínuos, não se considera a estrutura molecular do fluido, apesar de ele ser composto por moléculas em constante movimento. Isso se deve ao fato de que, para a maioria das aplicações tecnológicas, o interesse está nos efeitos médios ou macroscópicos de muitas moléculas, pois são os elementos perceptíveis e mensuráveis. Então, pode-se tratar um fluido como matéria contínua (hipótese do contínuo), deixando de lado o comportamento molecular. Além disso, são encontradas as forças superficiais, que atuam nas fronteiras de um meio através do contato direto. As forças desenvolvidas sem contato físico e distribuídas por todo o volume do fluido são denominadas forças de campo. As tensões produzidas em um meio resultam das forças que atuam em alguma parte desse meio. A tensão, uma grandeza tensorial de segunda ordem, é um modo de descrever o modo pelo qual as forças atuantes nas fronteiras do meio são transmitidas através dele. Os fluidos podem ser classificados, de modo geral, de acordo com a relação entre a tensão de cisalhamento aplicada e a taxa de deformação. Como um fluido é a matéria que se deforma continuamente sob a ação de uma tensão de cisalhamento, na ausência dela não há deformação. Fluidos nos quais a tensão de cisalhamento é diretamente proporcional à taxa de deformação são chamados de Newtonianos. NãoNewtonianos são aqueles nos quais essa tensão não é diretamente proporcional à taxa de deformação. A resistência à deformação que um fluido Newtoniano oferece quando submetido à ação da tensão de cisalhamento é uma constante que depende das propriedades do fluido sob influência do meio físico, e é proporcional à taxa de deformação. Essa constante é a viscosidade. Uma classificação dos fluidos sob esse ponto de vista pode ser encontrada em [FOX98]. Em problemas definidos no escopo da Mecânica Newtoniana, as equações (EDPs ou EIs) empregadas são as da continuidade (EC), da conservação da quantidade de movimento (ECQM) e da energia (EE), que são declarações matemáticas de três 28 princípios físicos fundamentais: a massa é conservada, a quantidade de movimento é conservada, e a energia é conservada. Esses princípios, escritos na forma matemática, dão origem às chamadas equações completas, que não se resumem apenas às equações conservação da quantidade de movimento para um escoamento viscoso. O sistema completo que abrange as equações da continuidade, da conservação da quantidade de movimento e da energia é chamado de equações de Navier-Stokes [AND95]. Ele pode ser escrito nos sistemas de referência fixos ou não, nas abordagens integral e diferencial, nas formas conservativas e não conservativas [HIR92]. Se o escoamento é invíscido (não viscoso), o sistema é chamado de equações de Euler. Quando o fluido é viscoso e incompressível, pode-se considerar a (quase) desvinculação dos processos mecânicos dos térmicos no escoamento. Deixam de existir os efeitos térmicos com origem em expansões internas do fluido. Um elo de ligação que permanece entre a parte dinâmica e a térmica do escoamento é a viscosidade molecular e, então, pode-se admitir que a viscosidade molecular é constante [SIL86]. É possível, portanto, simular o escoamento mecânico de um fluido viscoso incompressível somente com as equações da conservação da quantidade de movimento e da continuidade. Usando a terminologia adotada em modelos atmosféricos, o enfoque desta tese está na parte dinâmica dos modelos hidrodinâmicos e de transporte escalar de substâncias em corpos de água rasos, com particular atenção aos seus aspectos numéricos e computacionais. As equações que modelam tais fenômenos são chamadas, respectivamente, de equações shallow water (ESW) e de equação do transporte escalar de substâncias (ETM). Quanto à parte física, a única questão abordada é a parametrização (simplificada) da turbulência. Especificamente, no tocante à parte dinâmica, os processos físicos considerados pelo modelo hidrodinâmico são a taxa de variação local, a taxa advectiva, a aceleração de Coriolis, os gradientes de pressão barotrópica, os atritos nas interfaces águasedimento e água-superfície livre. Quanto ao transporte de sedimentos, os processos físicos envolvidos são a taxa local e a taxa advectiva da variação de concentração. Essas quantidades físicas são calculadas pelos modelos de escoamento e de transporte de substâncias. Quanto à parte física, os processos físicos envolvidos são, para o modelo hidrodinâmico, a viscosidade cinemática turbulenta nas direções horizontal e vertical. No caso do modelo de transporte, os processos físicos envolvidos são a difusão turbulenta nas direções horizontal e vertical. Essas quantidades físicas são calculadas pelo modelo de turbulência ou obtidas através de expressões semi-empíricas. A discussão sobre essa ou aquela escolha é feita na seção 2.7.2. 2.2 Classificação e aproximações para os modelos Os modelos matemáticos podem ser classificados de acordo com as características dinâmicas e numéricas [SHE83]. Quando de acordo com a dinâmica, a dimensão espacial é a característica de classificação. Assim, eles podem ser unidimensional (1D), bidimensional (2D), tridimensional (3D) ou quase 3D (Q3D). Modelos 3D são os baseados nas equações completas. Modelos Q3D são aqueles modelos nos quais o corpo de água é dividido em várias camadas horizontais, sendo a camada superior a única com espessura variável no tempo devido às alterações da superfície livre. A integração entre as camadas é realizada pela equação da continuidade. Nesse modelo, são desprezados os efeitos inerciais e de atrito verticais. Esse é o caso das ESW 3D que, a rigor, são modelos Q3D. Quanto aos modelos 2D, existem basicamente dois tipos: o integrado na vertical e o integrado na horizontal. O integrado na horizontal é restrito a corpos de água 29 fortemente estratificados com domínio suficientemente regular. Nesse caso, as EDPs são obtidas integrando-se na largura do corpo de água, e as variáveis dependentes são representativas da largura da seção transversal [SCE91]. O integrado na vertical é o mais popular e é discutido detalhadamente nos trabalhos de Leendertse ([LEE67], [LEE70] e [LEE71]). Outra abordagem, que considera aspectos horizontais e verticais, pode ser vista em [WUJ95]. Uma discussão mais qualitativa sobre a hidrodinâmica e o transporte pode ser encontrada em [WEI92], [ZHE95] e [TUC98]. E uma discussão detalhada sobre os aspectos físicos e matemáticos da modelagem da qualidade da água pode ser vista em [ORL83]. Neste trabalho, descrevem-se, porém, objetivamente, as aproximações físicas consideradas na dedução dessas EDPs, que são: 1. incompressibilidade do escoamento: sendo a água um fluido com variação total da densidade muito menor que a unidade, pode-se desacoplar as equações de continuidade e de conservação da quantidade de movimento da equação da energia, mostrando que é possível obter a equação do transporte de calor da equação da energia [VLA99]; 2. fluido Newtoniano: nesse caso considera-se que os tensores de forças são linearmente proporcionais ao tensor de deformação e pode-se considerar que a viscosidade molecular é constante como em [CHE93] e [VLA99]; 3. aproximação hidrostática: sendo as escalas horizontais muito maiores que as verticais, pode-se considerar que as acelerações verticais são desprezadas quando relativas às outras que intervêm na equação do movimento na direção vertical. Uma análise dimensional das ordens de magnitude das forças envolvidas mostra que as contribuições devem-se à gravidade e à pressão. Assim, a equação da quantidade de movimento vertical reduz-se ao balanço hidrostático das forças; 4. aproximação de Boussinesq: considera que as acelerações dos fluxos são menores que as da gravidade e, portanto, as variações de densidade são importantes quando afetam os termos de gravidade e não o são nos termos de inércia [VLA99]. Ou seja, assume-se que a densidade é constante, exceto nos termos baroclínicos [CHE93]. Nesse caso, a integração da equação de estado, que depende somente da concentração da substância (e da temperatura), incorpora ao modelo hidrodinâmico a variação de densidade; 5. decomposição de Reynolds: devido ao caráter turbulento do fluxo, as equações de Navier Stokes não podem ser resolvidas nem analítica nem numericamente, pois as incógnitas são de magnitude instantâneas. Uma solução para esse problema é a decomposição proposta por Reynolds (promediação de Reynolds), que consiste em considerar as magnitudes como sendo compostas de uma parte relativamente lenta e outra turbulenta, que leva em conta as perturbações da primeira, obtendo as equações de Navier-Stokes em valores médios temporais (ou promediadas); 6. fechamento de turbulência: ao decompor e promediar as equações obtêm-se modelos de fechamento da turbulência cujos termos regulam as variações do campo de flutuações. Esses modelos são resolvidos como os de fluxos turbulentos com termos de viscosidade, em que se supõe que são proporcionais ao gradiente da magnitude transportada, e cujo fator de proporcionalidade é a viscosidade e a difusão turbulenta horizontal e vertical, que são obtidas através de modelos de turbulências. 2.3 Modelo hidrodinâmico: ESW 3D O modelo matemático de escoamentos de superfície livre com densidade constante, escrito em variáveis primitivas, e que pode ser obtido a partir das equações de Navier-Stokes assumindo a promediação de Reynolds e o escoamento como sendo 30 hidrostático, é chamado de equações shallow water (ESW) ([LEE89], [CAS90] e [WEI92]). Sob o ponto de vista matemático, as ESW formam um sistema de EDPs hiperbólicas não-lineares para um fluido incompressível com superfície livre. Esse sistema é composto pelas equações da conservação da quantidade de movimento para as velocidades horizontais (ECQMx e ECQMy) e pela equação da continuidade (EC), e é escrito como: ⎛ ∂ 2u ∂ 2u ⎞ ∂ ⎛ ∂u ⎞ ∂u ∂u ∂u ∂u ∂η +u +v +w =− g + νh ⎜ 2 + 2 ⎟ + ⎜ν v ⎟ + Φv ∂t ∂x ∂y ∂z ∂x ∂y ⎠ ∂z ⎝ ∂z ⎠ ⎝ ∂x ( 2.1) ⎛ ∂ 2v ∂ 2v ⎞ ∂ ⎛ ∂v ⎞ ∂v ∂v ∂v ∂v ∂η +u +v +w =− g + νh ⎜ 2 + 2 ⎟ + ⎜ν v ⎟ − Φu ∂t ∂x ∂y ∂z ∂y ∂y ⎠ ∂z ⎝ ∂z ⎠ ⎝ ∂x ∂u ∂v ∂w + + = 0 ( 2.3 ) ∂x ∂y ∂z em que: 1. ( 2.2) u = u ( x , y , z , t ) e v = v ( x , y, z , t ) são as velocidades horizontais nas direções X e Y , e w = w ( x , y , z , t ) é a velocidade vertical na direção Z ; 2. 3. 4. 5. 6. η = η ( x , y , t ) é o nível de água; Φ = 2 ω senφ é a força de Coriolis, onde ω é a velocidade angular da Terra e φ é a latitude; ν h =ν h ( x , y , z , t ) horizontal; é o coeficiente de viscosidade cinemática turbulenta ν v = ν v ( x , y , z , t ) é o coeficiente de viscosidade cinemática turbulenta vertical; g é a aceleração gravitacional, e t é o tempo. Integrando a equação da continuidade (ECIV) sobre a coluna de água e usando a condição de contorno cinemática na superfície livre, obtém-se a equação para a integração entre as camadas, dada por: ∂η ∂ ⎛ + ⎜ ∂t ∂x ⎜ ⎝ ∫ ⎞ ∂ ⎛ udz ⎟ + ⎜ ⎟ ∂y ⎜ −h ⎠ ⎝ η ∫ ⎞ vdz ⎟ = 0 ⎟ −h ⎠ η ( 2.4 ) sendo h = h ( x, y ) a profundidade da água medida a partir de um dado nível, como aquele determinado pela superfície da água não perturbada, em que a profundidade total é dada por H ( x,y,t ) = h ( x,y ) + η ( x,y,t ) . 2.3.1 Condições de contorno e condições iniciais z = η , são obtidas considerando que não há escoamento atravessando essa interface, sendo a difusão vertical, que é determinada pelos coeficientes das viscosidades cinemáticas turbulenta vertical em (2.1) e (2.2), a responsável por estabelecer as CC nessa interface. Essas CC são dadas por ([AGO94] e [GRO99a]): As condições de contorno na superfície livre, isto é, na interface água-vento, em νv ∂u v = τ x ( uagua − uar ) ∂z (u agua − uar ) + (v agua − v ar ) 2 2 31 νv ∂u v = τ y (v agua − v ar ) ∂z (u agua − uar ) + (v agua − v ar ) 2 2 em que os coeficientes de atrito na interface água-superfície livre nas direções X e Y são como: v v v v τ x = ρarCd e τ y = ρarCd v em que Cd é o coeficiente de atrito do vento na superfície da água; uagua e vagua são as velocidades da água na camada superior nas direções X e Y , respectivamente; onde (uar ,var ) = ( (u,v ) senφ, ( u,v ) cos φ é a velocidade do vento, φ é o ângulo entre a ) velocidade do vento com o eixo X . As CC no leito do corpo de água, isto é, na interface sedimento-água, são obtidas considerando que não há fluxo atravessando essa interface, sendo a difusão vertical a responsável por estabelecer as CC nessa interface. Nesse caso, pode-se especificar essas CC empregando a expressão de Manning-Chezy ou um modelo de turbulência de camada limite ([CAS2000] e [APS2001]). A primeira abordagem foi considerada neste trabalho e nesse caso, as CC inferiores são dadas, em z = −h , por: νv s 2 em que τ = g C z 2 2 ∂u s ∂v s = τ x u e νv = τ yv ∂z ∂z ( ) −1 u + v , onde C z é o coeficiente de atrito de Chezy, sendo que 2 2 fundo, sendo que esses efeitos podem ser incorporados nas equações, considerando que são funções do gradiente do nível da água e da velocidade da água como [LEE67]: u e v são as componentes da velocidade na interface sedimento-água nas direções X e Y , respectivamente. Essas componentes agregam os efeitos da rugosidade no ∂u ∂η ∂v ∂η +g =0 +g =0 ev = ∂t ∂y ∂t ∂x u= sendo que outras expressões para os diferentes tipos de rugosidade do leito podem ser vistas em [GRO99a] e [VLA99], onde se obtém o atrito no fundo através um perfil logarítmico, função da rugosidade e, da constante de von Karman. Note-se que as CC podem ser dos tipos laterais abertas (inflow e outflow), laterais fechadas, superior e inferior. As CC superior e inferior são aquelas em que há deslizamento parcial e são especificadas em termos dos atritos nas interfaces da superfície livre e do leito do corpo de água, respectivamente, como feito nessa seção. Nas fronteiras laterais abertas especifica-se ou CC de Dirichlet (modelo de escoamento), definindo níveis de água ou vazão, ou a CC de Neumann (modelo de transporte), definindo que o gradiente é nulo. Nas fronteiras laterais fechadas especifica-se que não há fluxo e há deslizamento completo, indicando que não há penetração de água em paredes sólidas e que as velocidades da água nessas fronteiras são dadas pela componente tangencial da velocidade. Esses tipos de CCs são discutidos na seção 2.5.1, 3.2.1 e 3.4. As condições iniciais para o PVIC podem ser obtidas considerando que o escoamento se encontra parado no tempo inicial e com uma dada elevação para a superfície da água. Mas essa é uma simplificação não necessária. Note-se, também, que as equações da conservação da quantidade de movimento devem ser modificadas quando o constituinte modelado na equação do transporte é, por exemplo, o sal ou sedimentos. Nesses casos, deve-se considerar o gradiente de densidade no termo de pressão, e faz-se necessário utilizar uma equação de estado para relacionar a concentração da substância com a massa específica da água ρ e a 32 temperatura. Isso é necessário devido ao fato de que a densidade da água varia quando essas substâncias estão nela dissolvidas, o que altera o regime do escoamento e isso deve ser incorporado nas equações de conservação da quantidade de movimento. Nessas condições, vale a relação ∂p ∂z = − ρ g , sendo p a pressão. Essa abordagem é dita aproximação de Boussinesq, e nela a densidade é constante em todos os termos de força, exceto na força de corpo das ECQMs [CHE93]. Integrando essa expressão convenientemente, obtém-se uma nova formulação para as ECQMx e ECQMy como pode ser vista em [KIM94] e [GRO98]. 2.4 Modelo hidrodinâmico: ESW 2D-IV Modelos 2D podem ser integrados na vertical (2D-IV) quando o corpo de água é bem misturado ou parcialmente estratificado. Essa classe envolve os mais conhecidos modelos 2D em uso. Essa aproximação pode ser considerada quando o fluido tem densidade constante e uniforme; os movimentos ocorrem sobretudo na horizontal, onde a escala vertical H é muito menor que a horizontal L ; os efeitos das flutuações de velocidade de pequena escala estão agregados dentro dos termos de tensão e de viscosidade (promediação de Reynolds). Assim, a integração vertical de uma variável dependente qualquer ψ , que fornece seu valor médio na vertical, como ilustrado na fig. 2.1, é determinada por ([LEE71] e [CSL85]): 1 H onde h,η e H = h + η são, respectivamente, a profundidade abaixo de um nível de referência, o nível da água acima desse referencial, e a profundidade total. A variável dependente ψ pode ser u ,v ou s , que são, respectivamente, as velocidades horizontais nas direções X e Y da água e a concentração. Então, ϕ denota, respectivamente, U , V e S que são as velocidades horizontais médias e a concentração média, variáveis dependentes de modelos hidrodinâmicos e de transporte de substâncias integrados na vertical. perfil de velocidades: ESW 2D ∫ η ψ dz = ϕ −h η nível de referência U H= Hu + η profundidade abaixo do nível de referência (batimetrias Hu e Hv) interface sedimento-água FIGURA 2.1 - Perfil das velocidades para as ESW integradas verticalmente Após manipulações algébricas, cujos detalhes podem ser vistos em [CSL85] e [WEI92], as ESW 2D integradas verticalmente (ESW 2D-IV) são escritas como: v ⎛ ∂ 2U ∂ 2U ⎞ ∂U ∂U ∂U ∂η τ x τs +U +V − Φ V = −g + − x + εh ⎜ 2 + ⎟ ∂t ∂x ∂y ∂x ρ H ρ H ∂y 2 ⎠ ⎝ ∂x ( 2.5 ) 33 τy ⎛ ∂ 2V ∂ 2V ⎞ ∂V ∂V ∂V ∂η τ y +U +V + ΦU = −g + − + εh ⎜ 2 + 2 ⎟ ∂t ∂x ∂y ∂y ρ H ρ H ∂y ⎠ ⎝ ∂x v s ( 2.6) ∂η ∂ ⎡(h + η )U ⎤ ∂ ⎡(h + η )V ⎤ ⎦+ ⎣ ⎦ =0 + ⎣ ∂t ∂x ∂y em que: 1. 2. ( 2.7 ) g é a aceleração gravitacional, e ρ = ρagua é a densidade da água; H = h + η é a distância do fundo até a superfície livre, onde η = η ( x , y , t ) é a elevação da água acima de um nível de referência, e h = h ( x , y ) representa a profundidade abaixo desse nível; 3. 4. 5. U = U ( x , y, t ) e V = V ( x , y, t ) são as componentes das velocidades horizontais médias obtidas pela integração vertical nas direções X e Y ; Φ = 2 ω senφ é a força de Coriolis, onde ω é a velocidade angular da Terra e φ é a latitude; ε h é o coeficiente de viscosidade cinemática turbulenta horizontal. 2.4.1 Condições de contorno e condições iniciais As condições de contorno inferiores são especificadas assumindo, como no modelo 3D, que não há fluxo e a difusão vertical é o único termo onde se agregam os atritos nessa interface. Desse modo considera-se o coeficiente de Chezy Cz = 7,83ln(0,3 H Zo ) , em que Zo ≈ 0,001 é a rugosidade na interface água-leito do m corpo de água. Esse parâmetro é, no perfil turbulento de velocidade de Prandtl, uma medida da ordem de grandeza da espessura da camada limite. Ou seja, é uma medida que é afetada pela natureza do fluido. As CC são, para as direções X e Y , como: ρagua H s τx =g τy U U 2 +V 2 V U 2 +V 2 e =g 2 2 ρagua H Cz H Cz H s Para as CC superiores, consideram-se os coeficientes de atrito na interface águasuperfície livre nas direções X e Y , resultando em: ρagua H onde W x = (U ,V v τx = C ρarW v d 2 x e v τy ρagua H v = C d ρarWy2 ) sen φ e Wy = (U ,V ) cos φ são as componentes da velocidade do vento nessas direções, medidas a 10 metros acima do nível da água; ρar é a densidade v do ar e Cd é o coeficiente de atrito na superfície da água. v Como as velocidades horizontais e o coeficiente de arrasto Cd são obtidos a 10 metros acima do nível da água, eles são, muitas vezes, denotados na literatura técnica por U 10 ,V10 e C10 . Existem diferentes relações empíricas para determinar o arrasto do vento na superfície da água, e sua interação e a sua contribuição na determinação do atrito na interface água-superfície livre. Algumas expressões encontradas na literatura técnica estão sistematizadas em [VLA99] e são como: 1. 2. C10 = 0.9.10−3 ; 10ms −1 < (U 10 ,V10 ) < 23ms −1 ; C10 = ( 2.4 ± 0.5 )10−3 ; (U 10 ,V10 ) > 10ms −1 ; 34 3. 4. 5. C10 = 1.2.10−3 ; (U 10 ,V10 ) ≈ 10ms −1 ; C10 = 1.1410−3 ; 4ms −1 < (U 10 ,V10 ) <11ms −1 ; C10 = 0.98 + 0.14 (U 10 ,V10 ) 10−3 . ( ) sendo que essas relações também se aplicam às condições de contorno discutidas na seção 2.3.1 (para o modelo 3D). Nas ESW, considera-se que a distribuição de pressão na vertical é hidrostática, de modo que os gradientes de pressão barotrópica são substituídos pelos gradientes da superfície livre da água. A distribuição das velocidades verticais é considerada uniforme, e as substâncias dissolvidas são bem misturadas na coluna vertical de água. Sendo a coordenada vertical aproximada pela pressão, dado que a água está em equilíbrio hidrostático, desprezam-se a aceleração vertical e a componente vertical da força de Coriolis. 2.5 Modelo de transporte escalar: ETM 3D A presença de substâncias dispersas e/ou dissolvidas em corpos de água que sejam decorrentes ou não de atividades humanas como, por exemplo, derramamento de petróleo, despejo de dejetos domésticos, despejo industrial, sedimentos, etc., e a construção de obras de acesso portuário e/ou de transporte fluvial nas margens costeiras de estuários e lagos podem resultar em danos a esses ecossistemas. É, portanto, importante a previsão, o monitoramento e a avaliação dessas ações e/ou atividades. A modelagem computacional do transporte (advecção-difusão) e do regime hidrodinâmico (escoamento) permite avaliar o impacto de como determinadas ações podem alterar o regime hidrodinâmico, bem como a dispersão de determinadas substâncias. Este trabalho considera que o constituinte simulado é aquele formado por dejetos humanos e o interesse é obter a concentração dos coliformes fecais em regiões contaminadas. O termo de fonte da equação de transporte escalar de substâncias é uma abstração de um emissário que, em geral, é construído através de uma tubulação cuja extremidade tem difusores ([VIN91] e [CAM99]). Para uma eficiente diluição, de modo a não contaminar regiões que tenham importância ambiental e econômica, o local do despejo deve ser apropriado e considerar o regime hidrodinâmico do corpo de água. O transporte do constituinte é realizado através de uma série de mecanismos conhecidos como mistura e classificados como sendo aqueles que produzem o transporte advectivo, e aqueles que produzem o transporte difusivo. O transporte advectivo é realizado pelo campo de escoamento, que é influenciado por fatores astronômicos (marés), meteorológicos (ventos, chuvas), sazonais (descarga de água) e por efeitos secundários (força de Coriolis). O transporte difusivo deve-se principalmente à turbulência do escoamento, pois a difusão molecular é menos importante [SCE91]. Note-se que os fenômenos de advecção e convecção são parte integrante das mais variadas áreas e, em particular de problemas sob o escopo da Dinâmica dos Fluidos. Alguns autores, como Vreugdenhil [VRE94], não distinguem esses fenômenos físicos, indicando que ambos significam o transporte de alguma quantidade (calor, massa, quantidade de movimento, etc.) por um escoamento, já que o processo físico é o mesmo, independentemente da causa. A distinção é feita em dinâmica dos fluidos geofísica, onde a convecção indica escoamento vertical gerado pela diferença de densidade de um fluido termicamente estratificado, enquanto a advecção denota o escoamento horizontal devido ao termo não linear da equação do movimento. Neste trabalho se emprega o termo advecção para denotar ambos casos, como Vreugdenhil. 35 Não considerando os fenômenos de natureza química, são basicamente dois os processos envolvidos no transporte de substâncias: a advecção e a difusão. Simplificadamente, pode-se dizer que a advecção transporta as substâncias sem dispersá-las, e que a difusão é o fenômeno pelo qual as substâncias vão se espalhando ao mesmo tempo em que a concentração do poluente vai baixando. É devido à difusão que, mesmo na ausência da circulação, a concentração das substâncias diminui ao longo do tempo. Em geral, o estudo dessa dispersão é feito a partir da formação inicial da pluma e da sua conseqüente distribuição pelos movimentos da água. A dispersão e a configuração da pluma dependem de fatores como a especificação dos difusores, a taxa de vazão e a densidade da substância ejetada, etc. Além disso, dependem do transporte das substâncias pelos processos advectivo e difusivo turbulento, sendo esses dependentes do campo de velocidades e das características físicas da água na região de lançamento. Levando-se em conta a ação da circulação sobre uma pluma inicial, se a fonte do afluente está localizada em um ponto ( x 0 , y0 , z 0 ) , a concentração da substância ejetada em uma célula 3D deve satisfazer o fato de que a variação total de concentração no tempo deve ser igual à variação advectiva, mais a difusão turbulenta, mais o termo de decaimento, mais o termo de fonte. Essa afirmação pode ser escrito matematicamente como ([GRO98] e [CAM99]): ∂S ∂ ( uS ) ∂ (vS ) ∂ ( wS ) ∂ ⎛ ∂S ⎞ ∂ ⎛ ∂S ⎞ ∂ ⎛ ∂S ⎞ ⎫ + + + = ⎜ εh ⎟+ ⎜ εh ⎟+ ⎜ εv ⎟ +⎪ ∂t ∂x ∂y ∂x ⎝ ∂x ⎠ ∂y ⎝ ∂y ⎠ ∂z ⎝ ∂z ⎠ ⎪ { 14444∂y 4 244444 14444444 244444444 3 4 3 2.8 1. ) ⎬ ( 2. 3. ⎪ + F ( x 0 , y0 , z 0 , t ) S + K ( x , y, z , t ) ⎪ 144 2444 14 244 4 3 4 3 4. 5. ⎭ onde os indicadores numéricos expressos na parte inferior da equação 2.8 indicam que a respectiva porção da EDP representa: 1. taxa de variação local, dada pela variação temporal da concentração S em cada ponto do espaço; 2. termo advectivo horizontal e vertical, que é a variação de S produzida pelo transporte das substâncias (ou efluentes) pela circulação; 3. termo de difusão turbulenta horizontal e vertical, que é variação produzida por movimentos de subescala (movimentos turbulentos); 4. 5. termo fonte, que representa a vazão da emissão em ( x 0 , y0 , z 0 ) ; termo de decaimento (ou depleção) da substância. Para determinar o termo (ou matriz) de decaimento K = K ( x , y, z , t ) , considerase uma concentração inicial S = S ( x 0 , y0 , z 0 , t ) em um corpo de água estático e com termo de fonte F = F ( x , y, z , t ) = 0 . Nesse caso, (2.8) reduz-se a: ∂S ⎫ = K ( x , y, z , t )⎬ ∂t ⎭ ( 2.9 ) Como o decaimento, resultante de processos físicos, químicos e/ou biológicos, é proporcional à concentração da substância a cada tempo, tem-se que K ( x , y, z , t ) = − kS ( x , y, z , t ) , onde k é a constante de proporcionalidade e o sinal negativo ∂S ( x,y,t ) indica decaimento. Portanto, ∂t = − kS ( x,y,t ) , cuja solução o (2.9) pode ser reescrita como é S ( x , y, z , t ) = S ( x , y, z , 0 ) e −kt , indicando que a concentração decai com o tempo. 36 Especificamente, no caso de bactérias coliformes, considera-se que no tempo t = T90 a concentração decai para 10% do valor inicial, ou seja, o tempo necessário para que a concentração inicial decaia em 90% [ZHE95]. Nesse caso tem-se 0,1S ( x , y, z ,0 ) = S ( x , y, z ,0 ) e −kt , e portanto k = 2,3/T90 . Este trabalho considera somente o transporte escalar de uma substância, mas uma discussão detalhada sobre os procedimentos numérico-computacionais para a simulação de vários constituintes pode ser vista em [LEE70], [LEE71] e [ORL83]. A equação de transporte escalar 3D (ETM) é escrita na forma conservativa como [GRO98]: ∂ (S ) ∂t + ∂ ( uS ) ∂x + = ∂ (vS ) ∂y + ∂ ( wS ) ∂z = ∂ ⎛ ∂S ⎞ ∂ ⎛ ∂S ⎞ ∂ ⎛ ∂S ⎞ ⎜ εh ⎟+ ⎜ εh ⎟+ ⎜ εv ⎟ + FS + K ∂x ⎝ ∂x ⎠ ∂y ⎝ ∂y ⎠ ∂z ⎝ ∂z ⎠ em que: 1. S é a concentração; 2. 3. 4. εh = εh ( x,y, z,t ) é o coeficiente de difusão turbulenta horizontal; εv = εv ( x,y, z,t ) é o coeficiente de difusão turbulenta vertical; F é o termo de fonte que é determinado, neste trabalho, em termos da concentração de um volume de despejo (diluição) como: S n fonte =S n −1 fonte + ⎛ mpn ⎞ S fonte ⎜ ⎟ Vd (m ) Δz (m ) ⎝ 100ml ⎠ 3 n k Q (m 3 s ) Δt ( s ) n em que Q é a fonte; Δt é o passo de tempo; Vd é o volume de diluição; Δz k é a altura da k-ésima camada; S fonte é a concentração de bactérias coliformes no local de despejo (≅ 9.106 nmp/100 ml, onde nmp é o número médio provável); 5. K = 2.3 T90 , onde T90 é o tempo para remover 90% dos organismos, isto é, a constante de decaimento. Note-se que a presença de coliformes fecais indica que a água esteve em contato com dejetos, o que aumenta a probabilidade de estarem presentes bactérias patogênicas. Essa presença, embora não implique obrigatoriamente que uma pessoa desenvolva alguma doença se ingerir essa água, representa um risco maior para a sua saúde. A água só é considerada potável se a sua análise bacteriológica indicar ausência de coliformes fecais. A balneabilidade é permitida quando a concentração de bactérias coliformes estiver abaixo de 1000 nmp/100ml, onde nmp é o número médio provável, que é uma estimativa da densidade de coliformes fecais em uma amostra [CET2001]. 2.5.1 Condições de contorno e condições iniciais A modelagem da distribuição de concentração (transporte de substâncias) pode melhorar a compreensão do regime de transporte; ou reconstruir a evolução de uma pluma existente a partir da data de origem até o presente; ou avaliar as reações de uma pluma existente para os contaminantes presentes; ou simplesmente simular quais as sub-regiões são mais passíveis de contaminação para um dado regime de escoamento ([ZHE95] e [ZHE99]). Para efetivar essa simulação, deve-se considerar as condições iniciais (CI) do problema. No caso da ETM, essas CI são dadas por 37 S = St =0 ( x , y, z ) , indicando uma distribuição inicial conhecida. Um caso particular é tomar simplesmente S = St =0 ( x , y, z ) = 0 . A solução da ETM também requer a especificação de CC tipo de Dirichlet e/ou de Neumann. A CC de Dirichlet é definida quando a concentração é especificada nas fronteiras para um período específico de tempo agindo como uma fonte, fornecendo massa para o domínio, ou como sumidouro, retirando a massa do domínio. Nesse caso, as CC são dadas genericamente por: S ≡ S ( x , y , z , t ) ; ( x , y , z , t ) ∈ ∂Ω × [0,T ] onde ∂Ω denota a fronteira do domínio computacional e S ( x , y, z , t ) é uma concentração especificada nessa fronteira que pode variar no espaço e no tempo. Essa CC tipo Dirichlet é especificada em fronteiras inflow, ou seja, em fronteiras onde o fluxo está entrando no domínio computacional. A condição de contorno tipo Neumann ocorre quando o gradiente de concentração é normal à fronteira, significando que um fluxo advectivo e dispersivo deve ser aí especificado. Porém, nas fronteiras laterais abertas inflow e outflow, onde esta última é a fronteira na qual o fluxo está saindo do domínio, pode-se assumir que o fluxo advectivo domina o fluxo dispersivo. Nesse caso as CC podem, então, ser simplificadas [ZHE95]. A CC gradiente é expressa como: onde n ( x , y, z , t ) é o vetor unitário normal no ponto ( x , y, z , t ) ∈ ∂Ω . Especificamente para os modelos de transporte, consideram-se condições de contorno do tipo Dirichlet e de Neumann. Na primeira, é dada uma concentração na fronteira inflow do domínio computacional como discutido na seção 2.5.1. No caso da CC de Neumann especifica-se uma CC tipo gradiente nulo na fronteira interna outflow, indicando que a taxa de variação espacial é nula. Esse tipo de CC permite que a concentração saia do domínio sem acumular-se na fronteira, pois fisicamente a CC ∇S ∂Ω = 0 indica que a massa que entra é igual à massa que sai. Essa condição pode ser definida observando que, se N cc é o ponto da fronteira outflow e N ex é o ponto da primeira célula externa, uma CC tipo gradiente nulo é como (direção X ): u r ∂ S ( x , y, z ,t ) u r = ∇S ; ∂n ( x , y , z , t ) ( x , y , z , t ) ∈ ∂Ω × [0,T ] ∇S ∂Ω ≡ not ∂S SNex − SNcc = =0 ∂x Δx n +1 n +1 resultando em S ( N cc ) = S ( N ex ) . Portanto, com essa CC a célula N ex pode ser incorporada ao sistema de equações quando do emprego de esquemas numéricos implícitos ou semi-implícitos. Quando os esquemas numéricos são explícitos usa-se esquemas de aproximações para essas expressões em células adjacentes a essas fronteiras. No caso multidimensional, as outras componentes da CC gradiente (direções Y e Z) podem ser incorporadas através de decomposições unidimensionais na direção normal de cada uma das faces das células. Note-se que a solução do transporte de substâncias não é somente influenciada pelas suas próprias CC, mas também pelas CC do modelo hidrodinâmico. Uma questão importante é, então, analisar como a combinação das CC das ESW e da ETM determinam o controle da taxa de entrada e saída de massa nas células das fronteiras. Mas a abordagem para essa questão não é tratada neste trabalho, porém alguma discussão pode ser vista em [ZHE95]. 38 2.6 Modelo de transporte escalar: ETM 2D-IV A equação que modela o transporte de constituintes dispersos em corpos de água bem misturados é a ETM 2D, que, integrada na vertical (ETM 2D-IV), é escrita na forma conservativa (ou fluxo), como em [LEE71] e [ZHE95]: ∂ (SH ) ∂t + ∂ (SHU ) ∂x ⎫ ⎪ ∂y ⎪ ⎬ ( 2.10 ) ∂ ⎛ ∂S ⎞ ∂ ⎛ ∂S ⎞ ⎪ = ⎜ HDy ⎟ + KHS + FH ⎪ ⎜ HD x ⎟+ ∂x ⎝ ∂x ⎠ ∂y ⎝ ∂y ⎠ ⎭ + ∂ (SHV ) sendo, em (2.10), que: 1. S é a concentração integrada na vertical; 2. Dx = αL cos2 θ + αT sen 2θ e Dy =αLsen 2θ + αT cos2 θ são os componentes do tensor de dispersão nas direções X e Y ; αL e αT são os coeficientes de difusão longitudinal e transversal, semelhantes aos coeficientes de difusão turbulenta horizontal e vertical da ETM 3D; e θ é o ângulo formado entre o eixo X e o vetor velocidade; F é o termo de fonte que é calculado, neste trabalho, em termos da concentração como [VIN91]: 3. S n fonte =S n −1 fonte + Q (m 3 s ) Δt ( s ) 2 ⎛ mpn ⎞ S fonte ⎜ ⎟ Ad (m ) H (m ) ⎝ 100ml ⎠ em que Q é a fonte; Δt é o passo de tempo; Ad é a área de diluição; H é a profundidade média; S fonte é a concentração de bactérias coliformes; A especificação das CC (de Dirichlet e de Neumann), e das condições iniciais para a ETM 2D integrada na vertical é análogo às CC da ETM 3D. 2.7 Parametrização da turbulência Nesta seção discutem-se alguns modelos de parametrização de turbulência, ou seja, modelos de fechamento de turbulência para determinar os coeficientes de viscosidade cinemática turbulenta das ECQMx e ECQMy, e os coeficientes de difusibilidade turbulenta da equação do transporte escalar de substâncias. A turbulência caracteriza os escoamentos irregulares nos quais as grandezas físicas comportam flutuações aleatórias em relação ao tempo e ao espaço em torno de valores médios estatísticos. Em simulações de escoamentos naturais, o interesse não está nos valores das variáveis afetadas por flutuações turbulentas, e sim na influência das flutuações turbulentas do ponto de vista de um escoamento médio estatístico, no qual a turbulência é interpretada como uma perturbação. Sob o ponto de vista do escoamento médio, a turbulência é uma perturbação aleatória, rotacional, tridimensional, dissipativa, difusiva, não-linear e com diversas escalas de tempo e espaço. Esses aspectos da turbulência estão implícitos nas EDPs através das tensões aparentes com flutuações turbulentas ([SIL86] e [BUR2000]). Um aspecto importante da influência da turbulência sobre o escoamento médio é a dissipação de energia, que influi diretamente nas outras características do escoamento. Nesse processo de dissipação, parte da energia do escoamento médio é transferida pela turbulência das maiores para as menores escalas espaciais, onde há transformação em calor pela ação das tensões viscosas. É a chamada cascata de energia ([SIL86] e [VIL2000]). Somente as maiores escalas espaciais interagem com o escoamento médio, e a dissipação de energia ocorre nas menores escalas (da 39 viscosidade), a taxa de dissipação de energia é definida pelo movimento de grande escala, e não pela viscosidade. Essa característica da cascata de energia é importante, pois os principais efeitos da turbulência no escoamento médio (transporte de substâncias e de quantidade de movimento) podem ser avaliados a partir das grandes escalas espaciais. As tensões aparentes podem ser avaliadas, partindo-se de pressupostos que utilizem as características do escoamento médio. Essas tensões aparentes que surgem das EDPs integradas no tempo são conhecidas por tensões de Reynolds. Todos esses aspectos podem ser vistos, dentro de uma perspectiva e de um formalismo contemporâneos, em [BUR97], [BUR98], [BUR98a], [BUR2000], [BUR2000a] e [BUR2000b]. A partir do princípio da viscosidade turbulenta, Kolmogorov e Prandtl postularam que os coeficientes de viscosidade turbulenta, responsáveis pela troca de quantidade de movimento, e os de difusão turbulenta, responsáveis pela troca de calor e massa, são proporcionais a uma velocidade e a um comprimento de escala (Eddy-Viscosity Models). Outras abordagens como, por exemplo, Beyond Eddy-Viscosity Models e Wall Boundary Conditions, podem ser vistas em [APS2001]. Empregando o princípio da viscosidade turbulenta, pode-se modelar as tensões turbulentas para definir as escalas de espaço e tempo e o transporte de grandezas da turbulência. No modelo proposto por Reynolds (promediação de Reynolds) [VIL2000], a turbulência está baseada na promediação temporal das equações, que consiste em dividir o campo instantâneo de velocidade em uma componente média e outra turbulenta ([SIL86] e [VIN91]). A modelagem das tensões de Reynolds é feita com base no conceito de viscosidade turbulenta introduzido por Boussinesq, que considerou a analogia entre os fenômenos da viscosidade e os da turbulência. Esses fenômenos proporcionam trocas de partículas fluidas com quantidades de movimento diferentes e cujo efeito no escoamento toma a forma de tensões. A diferença entre os fenômenos reside no fato de que a viscosidade, por ocorrer no nível molecular, é uma propriedade do fluido, enquanto a turbulência, por envolver partículas macroscópicas, depende também do escoamento. Dessa interpretação, por analogia às relações de Newton e de Stokes para a viscosidade, resulta a definição de um coeficiente da viscosidade turbulenta, variável no tempo e no espaço. Assim, deve-se determinar quais os coeficientes de viscosidade e de difusão turbulenta, análogos aos coeficientes de viscosidade e de difusão do fluido. A sua obtenção é feita empregando os modelos de fechamento de turbulência das equações do escoamento e do transporte [BUR98a]. Portanto, em simulações mais acuradas, devem-se desenvolver modelos de parametrização para determinar, para as ESW, os coeficientes da viscosidade cinemática turbulenta horizontal ν h , e os de viscosidade cinemática turbulenta vertical ν v . No caso da ETM, deve-se obter os coeficientes de difusão turbulenta horizontal εh e os de difusão turbulenta vertical εv , que estão agregados aos modelos matemáticos do escoamento e do transporte como mostrado nas seções anteriores. 2.7.1 Classificação de modelos de turbulência Os modelos de parametrização de turbulência podem ser definidos a partir do princípio da viscosidade turbulenta, que permite obter os coeficientes de troca turbulenta em função das propriedades médias do fluido [VIL2000]. Uma classificação de modelos de turbulência é a de Rodi [ROD80], que tem por base o número de equações de transporte de grandezas turbulentas. Assim há modelos de zero equações (ou nenhuma equação), de uma equação, de duas equações, e de duas e meia equações: 40 1. os modelos de zero equações obtêm os coeficientes de viscosidade turbulenta sem o emprego de equações de transporte, mas com parametrizações ad hoc ou semiempíricas. Quando o coeficiente de viscosidade é considerado constante, a modelagem da turbulência deixa de existir, e a utilização do coeficiente de viscosidade justifica-se apenas em razão de manter a estabilidade numérica da solução. Quando o coeficiente é considerado variável, a abordagem mais comum para parametrizar a turbulência é adaptar o conceito de comprimento de mistura de Prandtl ao escoamento ([VIL2000] e [APS2001]). 2. os modelos de uma equação de transporte consideram, geralmente, a equação de transporte da energia cinética turbulenta. Nos casos dos modelos que empregam o conceito de viscosidade turbulenta, o coeficiente é determinado com base no valor da energia cinética κ e em uma escala espacial. No caso de modelos que não utilizam o conceito de viscosidade turbulenta, as tensões de Reynolds são avaliadas diretamente em função dos valores transportados da energia cinética turbulenta, como pode ser visto em [APS2001]. 3. os modelos de duas equações resolvem uma equação para a energia cinética e outra equação para a taxa de dissipação da turbulência. Essas equações consideram, portanto, a escala de velocidade da energia cinética turbulenta e a escala espacial, que pode incorporar a vorticidade, a freqüência e a dissipação correspondentes às flutuações turbulentas. Modelos que utilizam uma equação de transporte para a energia cinética turbulenta κ e outra para a dissipação da energia ε são do tipo κ-ε, e predizem bons resultados [BUR98a]. Implementações podem ser vistas em [VOL97], [MEI97] e [VIL2000]. 4. os modelos de duas e meia equações consideram, além das equações de transporte do modelo de duas equações, o desvio de certos parâmetros que nos modelos anteriores, são considerandos constantes. Um modelo de fechamento de turbulência dessa classe é o Quasi-Equilibrium Turbulent Energy (QETE), que é uma versão daquele de Mellor e Yamada ([MEL74] e [MEL82]), com a incorporação das funções de estabilidade desenvolvida por Galperin [GAL88]. Outros conjuntos de funções de estabilidade foram desenvolvidas por Rodi [ROD80]; Hossain [HOS80]; Kantha e Clayson [KAN94]; Burchard e Baumert [BUR95] e Canuto [CAN2000]. Modelos de turbulência de duas ou mais equações são os mais adequados para simular processos de turbulência e de mistura complexos. Suas funções de estabilidade têm um papel determinante na qualidade das predições desses modelos, no que concerne aos aspectos da validade física, eficiência computacional, robustez numérica e predictabilidade. Mas, em geral, empregam-se versões 1D ou 2D, pois modelos de turbulência 3D não são populares, ainda, pois os parâmetros desses modelos são difíceis de serem determinados, e porque ainda não se compreende bem como um fechamento completo da turbulência pode influenciar nos resultados do modelo de transporte/escoamento [VIL2000]. A turbulência está associada diretamente com a escala do problema e, portanto, deve-se diferenciar o cálculo dos coeficientes da direção horizontal dos da direção vertical, uma vez que os espaçamentos na horizontal são muito maiores que os espaçamentos na vertical. Além disso, em simulações hidrodinâmicas consideram-se os fenômenos de mesoescala, pois os de microescala são filtrados e incluídos na parametrização da turbulência [VLA99]. Sob essa situação, muitas vezes consideram-se constantes os coeficientes de viscosidade e de difusão do transporte horizontal, dado que a turbulência tem diferentes importâncias no padrão do escoamento e nos processos de mistura horizontais e verticais. 41 Neste trabalho consideram-se, por simplicidade, modelos de zero equações para obter os coeficientes de viscosidade e de difusão das EDPs. Porém, para uma melhor representação da turbulência, está sendo desenvolvido um modelo de duas e meia equações que considera o modelo de parametrização de Mellor-Yamada [MEL82] e as funções de estabilidade de Canuto [CAN2000]. 2.7.2 Modelo de turbulência de zero equações Na modelagem da turbulência deve-se levar em conta que as escalas dos fenômenos estudados são muito maiores na horizontal que na vertical refletindo, portanto, nas escolhas das respectivas malhas horizontal e vertical. Assim, aqueles fenômenos de tamanho inferior ao passo horizontal devem ser filtrados e incluídos nos coeficientes de viscosidade turbulenta horizontal como fenômenos de submalha. Nesse caso, como em [VLA99], a parametrização para a viscosidade cinemática turbulenta horizontal para as ESW 3D é determinada por: νh =α L 4 3 onde a constante α varia entre 0,002 cm2/3s-1 e 0,01 cm2/3s-1, e toma-se L ≡ Δx = Δy . No caso da ETM 3D, os coeficientes de difusibilidade turbulenta horizontal têm menos importância e podem ser considerados constantes. Nesse caso os valores são tais que, para 0 ≤ k ≤ 10 , tem-se: εh ≈ k Para obter os coeficientes da viscosidade cinemática turbulenta vertical para as ESW emprega-se a mesma abordagem de [SHE83] e de [VLA99], na qual o problema de fechamento da turbulência reduz-se ao conhecimento da viscosidade turbulenta vertical. Nesse modelo, emprega-se a hipótese de Prandtl que relaciona a viscosidade turbulenta vertical com o gradiente médio das velocidades através do comprimento de mistura vertical Lm , como: 2 2 ν v = L2 ⎡( ∂u ∂z ) + ( ∂v ∂z ) ⎤ m ⎣ ⎦ O comprimento de mistura representa uma média da escala dos vórtices que interagem com os fluxos e dependem da existência de uma camada limite no fundo e na superfície. Pode ser obtido como Lm = H ⎡ξ (h H ) Ψ(Ri )⎤ onde a estratificação é ⎣ ⎦ quantificada através do número de Richardson Ri , onde H é a profundidade total, e h é a distância até o fundo do corpo de água e onde Ψ(Ri ) = exp ( −α Ri ) , com α ≈ 0,8 . Algumas expressões para estimar a função ξ (h H ) , e uma comparação entre as parametrizações para o comprimento da mistura resultantes da escolha dessas funções, podem ser vistas no capítulo 3 de [VLA99]. Na seção 4.7 considera-se, para efeitos de implementação neste trabalho, uma expressão alternativa a Lm , como aquela empregada por [KIM94]. Uma discussão a respeito da física envolvida na parametrização semi-empírica da turbulência é como feita em [SHE83]. Os coeficientes de difusibilidade turbulenta vertical para a ETM podem ser estimados, considerando, conforme [SHE83] e [VLA99], uma expressão como: ε v = ν v β ( Ri ) onde β ( Ri ) = γ exp −γ 'Ri , onde γ ' = 1,2 e γ = 1,4 . Quando o corpo de água é fortemente estratificado tem-se Ri > 0,8 ; quando 0,08 < Ri < 0,8 , ele é parcialmente estratificado; e quando Ri < 0,08 , o corpo de água é bem misturado. ( ) 42 2.7.3 Condições de contorno O modelo de parametrização de turbulência deve levar em conta as condições de contorno do modelo hidrodinâmico e do modelo de transporte de substâncias, pois neles são fornecidos as CC do modelo de parametrização de turbulência, já que estas CC são análogas às empregadas nesses modelos. Note-se que as CC da ETM são obtidas considerando-se que não há fluxo na superfície livre e na interface água-sedimento, já que não há água e/ou sedimentos saindo ou entrando nessas fronteiras. As CC para as ECQMs são obtidas observando que, analogamente, não há fluxo nessas interfaces. As expressões específicas para essas CC são as discutidas nas seções 2.3.1 e 2.4.1, para o caso do escoamento, e na seção 2.5.1 para o transporte escalar. Desse modo, na seção 4.6 especificam-se as condições de contorno para o modelo de turbulência discreto empregando o modelo discutido na seção 2.7.2 e usando as CC estabelecidas para o modelo de escoamento. 2.8 Estudo de caso: Lago Guaíba A principal motivação desta tese, enquanto aplicação, é a de simular os complexos processos hidrodinâmicos e de transporte de substâncias que ocorrem em corpos de água, particularmente aqueles de lagos, regiões costeiras e estuários, dado que é essencial conhecer a hidrodinâmica local que controla o transporte de substâncias do corpo de água. Por exemplo, nos sistemas estuarinos os processos de mistura, circulação e estratificação são regidos por influências ditadas pela geometria, salinidade e padrões de circulação da região costeira adjacente, e basicamente por três forçantes: a descarga de água doce, as correntes de maré e a transferência de quantidade de movimento através do cisalhamento do vento na superfície livre ([CAM99] e [MAN2001]). Nesse último forçante há um acoplamento do atrito entre o vento e o corpo de água, onde a energia do vento é convertida para correntes através do atrito entre o ar em movimento e a superfície da água. A energia cinética da água na superfície é transferida verticalmente para baixo através do atrito dentro da coluna da água. Outros fatores importantes para determinar a hidrodinâmica são a inclinação da água (gradiente de pressão horizontal) e o efeito de Coriolis. O gradiente de pressão horizontal age, colocando em movimento o fluido em direção às regiões de baixa pressão, e surge a partir dos gradientes espaciais da pressão na superfície da água (o gradiente de pressão barotrópico) e a pressão no interior do corpo de água (gradiente de pressão baroclínico). O modo barotrópico não leva em conta os gradientes de salinidade e de temperatura. No caso dos forçantes eles condicionam a circulação gravitacional (modo barotrópico e modo baroclínico), a circulação residual e as correntes geradas pelo vento, sendo que geralmente um desses padrões de circulação predomina em um determinado sistema, mas os dois ou os três tipos podem ocorrer simultâneamente ou sazonalmente em um mesmo estuário [MAN2001]. Isso significa que nesses corpos de água, o modelo dinâmico deve considerar os movimentos rápidos, causados pela ondas de gravidade externa (barotrópica), e os movimentos lentos, causados pela ondas de gravidade internas (baroclínica) de correntes. No modo baroclínico de movimento, as correntes fluem num sentido na camada superficial e no sentido oposto na camada inferior. Tal estruturação ocorre principalmente durante intrusões de massas de água, sendo que a camada superficial é a de domínio da água costeira, e a profunda é o domínio da água do mar. No caso de ausência de variação de densidade o gradiente de pressão horizontal é causado pela inclinação da superfície. Esta componente do gradiente de pressão é chamada de gradiente de pressão barotrópico. A variação de densidade (efeitos termais) contribui para o gradiente de pressão. Esta componente do gradiente é chamada de gradiente de 43 pressão baroclínico. Os gradientes de pressão barotrópicos e baroclínicos formam o gradiente de pressão horizontal. Note-se, porém, que nos sistemas estuarinos o transporte de substâncias pode nem sempre ocorrer na mesma direção do fluxo principal de água, devido aos complexos processos advectivos e difusivos de mistura. A dispersão e advecção de massas de água e de suas propriedades decorre basicamente de processos que envolvem o movimento oscilatório das marés, gradientes de densidade, cisalhamento lateral entre massas de diferentes velocidades de corrente, atrito com o fundo, e difusão turbulenta [MAN2001]. Além disso, os processos de erosão e ressuspensão apresentam particular importância na ciclagem de sedimentos em estuários, pois promovem um aumento da carga de sedimento em suspensão (aumento do gradiente vertical), de forma a intensificar o transporte advectivo e atuando na manutenção da zona de máxima turbidez estuarina [DYE88]. Também durante um ciclo de maré (marés enchente e vazante) pode-se observar uma forte relação entre as velocidades das correntes e o transporte e as concentrações de sedimentos em suspensão [MAN2001]. E, os efeitos episódicos de alta energia como, por exemplo, tempestades ou períodos de extremada vazão, apresentam particular importância, pois podem movimentar, em um curto período de tempo, uma carga sedimentar superior à verificada durante longos períodos em condições normais [DYE88]. Para obter quantidades físicas como a elevação da superfície livre, velocidade do escoamento, salinidade, coeficientes de viscosidade cinemática turbulenta vertical, coeficientes de difusão turbulenta vertical, pressão hidrodinâmica, coeficiente de atrito no leito (bottom shear stress), coeficiente de atrito do vento (wind shear stress) é necessário calcular, com o modelo hidrodinâmico (ESW), os processos como: a aceleração local (inércia), aceleração advectiva, aceleração de Coriolis, gradiente de pressão barotrópica, gradiente de pressão baroclínica, pressão hidrostática e não hidrostática, difusão turbulenta nas direções horizontal, viscosidade turbulenta vertical influenciada pela estratificação da densidade, atrito no leito do corpo de água, atrito do vento. No caso da equação do transporte escalar de substâncias (ETM) é necessário calcular os processos: da taxa local da variação de concentração, taxa advectiva da variação da concentração, difusão turbulenta nas direções horizontal, viscosidade turbulenta vertical influenciada pela estratificação da densidade, viscosidade turbulenta horizontal é parametrizada usando coeficientes constantes. A aplicação específica para o modelo computacional multifísica aqui desenvolvido, o estudo de caso, é o Lago Guaíba. A opção por utilizar o Lago Guaíba como estudo de caso deve-se ao fato de que existem alguns dados da geometria e de parâmetros físicos para definir as condições iniciais e de contorno do problema de valor inicial e de contorno. Além disso, existem modelos seqüenciais como o de Casalas [CSL85], que estão calibrados e serviram de benchmark para orientar os primeiros modelos paralelos desenvolvidos e implementados. Note-se, porém, que como o modelo computacional somente foi verificado por experimentos numéricos específicos, não sendo, portanto, feito a calibração e validação do modelo, aqui não são apresentados resultados específicos da simulação de eventos do Lago Guaíba. O Lago Guaíba se situa entre o chamado delta do Jacuí e a Lagoa dos Patos, que é o mais extenso corpo de água do sistema lagunar. Banha toda a região metropolitana de Porto Alegre e tem uma área de aproximadamente 468 km2 e profundidade média de 4,0m. Recebe contribuição das águas do delta do Jacuí (formado pela confluência dos rios Jacuí, Caí, Sinos e Gravataí). Com uma extensão de aproximadamente 50 km, o Lago Guaíba deságua na Lagoa dos Patos e apresenta seções de até 15 km de largura ([SIL86] e [MEN98]). Situado entre os meridianos 50º e 55º Oeste e paralelos 28º e 35º Sul, ele é importante para o transporte fluvial, a irrigação e o abastecimento de água 44 das cidades da região, mas sofre constantes despejos de poluentes industriais e domésticos. O Lago Guaíba, a Lagoa dos Patos e a Lagoa Mirim são corpos de água com características bidimensionais que, interligados, formam o sistema costeiro lagunar da Bacia de Sudeste. As Lagoas dos Patos e Mirim possuem áreas aproximadas de 10.000 e 4.200 km2, e profundidades médias da ordem de 7,0m, respectivamente. O regime hidrodinâmico desse sistema lagunar, no qual o Guaíba está inserido, é complexo tanto na época de estiagem como na época de cheias. No período das cheias a Lagoa dos Patos recebe, em média, 3.000m3/s do Lago Guaíba e no período de secas a contribuição média é de 800m3/s. A fig. 2.2 ilustra uma imagem realística do Lago Guaíba. É importante destacar que, apesar de o modelo computacional ser aplicado ao Lago Guaíba, ele independente da aplicação. Assim, um modelo computacional de alta resolução para regiões altamente complexas, como a mostrada na fig. 2.2, permite a simulação de vários cenários como, por exemplo, os fenômenos de transporte de sedimentos como areia, sal, óleo, entre outros. Desse modo, os modelos hidrodinâmicos e de transporte de substâncias podem ser empregados para o planejamento de atividades portuárias, de dragagens de canais e de obras de engenharia, etc. Especificamente, pode-se empregar esses modelos para [CAM99]: 1. o estudo da batimetria do corpo de água a fim de verificar as possíveis variações que o regime hidrodinâmico sofrerá quando da modificação desta batimetria em função de atividades como, por exemplo, de aprofundamento de canais de navegação; 2. a simulação da intensidade da poluição provocada por derramamentos de produtos químicos quando de acidentes com navios, oleodutos, atividades portuárias, etc.; 3. a simulação de pluma de poluentes ao longo do tempo para identificar as principais regiões potencialmente atingidas; 4. a simulação dos efeitos de lançamentos de emissários para a definição de pontos de lançamentos, além da verificação do desempenho de emissários submarinos de esgotos, entre outros; 5. a simulação de problemas que possam surgir do transporte de sedimentos e áreas de erosão em canais de navegação e pontos de lançamentos de lodo e/ou de resíduos sólidos; 6. o estudo das alterações nas correntes fluviais e/ou marítimas decorrentes de obras portuárias ou costeiras, tais como molhes, cais, rampas, etc. Portanto, dado suas potencialidades econômicas, as margens dos estuários, lagos e regiões costeiras são densamente povoadas e sofrem influência direta ou indireta de diversas atividades antrópicas como, por exemplo, urbanas, recreativas, portuárias, industriais, pesqueiras, etc., desenvolvidas ao seu redor ou ao longo de sua bacia de drenagem. Um manejo racional demanda o entendimento dos vários processos ecológicos, físicos e químicos envolvidos com a hidrodinâmica e o transporte de substâncias nesses corpos de água. Essas questões são os principais elementos motivadores desta tese, enquanto aplicação. Note-se, porém, que enquanto pesquisa aplicada em Computação Científica Paralela, o objetivo deste trabalho é desenvolver esquemas numéricos e estratégias de solução paralelas apropriados, sob o ponto de vista numérico e computacional, à construção de modelos computacional paralelos multifísica. Nesses modelos diferentes fenômenos físicos, dependentes ou não entre si, são simulados no mesmo domínio de definição, e de modo que suas escalas espaço-temporais são, geralmente, distintas. Esse é a situação da hidrodinâmica 3D e do transporte escalar de substâncias 3D como tratado neste trabalho. 45 FIGURA 2.2 - Imagem do Lago Guaíba obtida via varreduras feitas por sonar (extraído de [EAS98]) 46 3 Sistemas de coordenadas, valores nodais e malha A malha na qual as equações são efetivamente resolvidas é chamada de domínio computacional ou malha numérica. Transformações (mapeamentos algébricos) podem transformar o domínio físico arbitrário em um domínio computacional regular. Esses mapeamentos são obtidos quando se empregam os métodos de transformações e de geração de malhas ([THM86], [KNU93] e [MAL95]). Alguns modelos hidrodinâmicos com malhas construídas em coordenadas generalizadas são os de [SHE83], [SHE89] e [CHU96]. Em uma abordagem paralela, a malha é particionada e distribuída entre os processadores disponíveis. Essa divisão do domínio é efetuada por algoritmos de particionamento que partem do princípio que o domínio computacional pode ser visto como um grafo. Aplicando-se algoritmos de particionamento de grafos pode-se reduzir as comunicações entre os subproblemas e balancear a carga entre os processadores. Além disso, quando se considera a plataforma disponível necessita-se, no caso de uma arquitetura heterogênea, de estratégias para mapear o grafo da aplicação sobre o grafo da arquitetura. Essas questões foram estudadas na dissertação de Elias César Araújo de Carvalho, que desenvolveu seu trabalho no GMCPAD do PPGC-UFRGS, “Algoritmos e Software para Particionamento de Domínios e Mapeamento em Clusters Heterogêneos” [CAR2002], [CAR2002a] e são, também, discutidas no capítulo 7. Nesse capítulo, mais especificamente na seção 3.5, se caracterizam os procedimentos que estão relacionados com a geração e o armazenamento do domínio (dos subdomínios particionados) e cujos sistemas de equações são gerados de modo distribuídos. 3.1 Malha horizontal: espaço-alternada Malhas numéricas são caracterizadas tendo em vista a posição relativa das variáveis dependentes em relação a essas malhas. São possíveis vários arranjos dessas variáveis, mas, para sistemas de coordenadas ortogonais, dois deles são os mais comuns: o arranjo co-localizado e o alternado (ou desencontrado ou espaço-alternado) ([MAL95], [MES98] e [BRL2000]). A escolha pelo uso de malha espaço-alternada deve-se ao fato de que as EDPs tratadas neste trabalho são as equações shallow water (ESW) e a equação do transporte de substâncias (ETM). Para essas EDPs, pode-se mostrar, como em [MES76], [WAS86] e [MES98], que a malha de Arakawa tipo C é apropriada para a construção de esquemas conservativos via abordagem fluxo numérico. Além disso, ao desacoplar as variáveis que, então, não necessitam ser definidas no mesmo ponto, reduz-se o tempo de processamento mantendo, o erro de truncamento como em malhas não alternadas. Uma desvantagem da malha espaço-alternada, em relação a malha com arranjo co-localizado, é a complexidade adicional na implementação computacional, sobretudo para problemas 3D e para suas condições de contorno. As variáveis dependentes, cujas posições relativas na malha de Arakawa C são como mostrado na fig. 3.1, têm os seguintes significados: 1. u e v são as velocidades horizontais da água nas direções X e Y ; η é o nível da água acima de um dado valor de referência. 2. Além disso, as batimetrias h = H u = H v , que são as profundidades da água abaixo de um certo nível de referência, são posicionadas, respectivamente, com as componentes u e v da velocidade horizontal. Já o coeficiente de Chezy C z é posicionado no centro da célula, com o nível de água. A concentração de substâncias S é posicionada no centro da célula. 47 u(i+1/2,j+1) •η(i,j+1) v(i-1,j+1/2) v(i,j+1/2) u(i+1/2,j+1) v(i+1,j+1/2) •η(i-1,j) v(i-1/2,j) v(i-1,j-1/2) •η(i,j) v(i,j-1/2) u(i+1/2,j) •η(i+1,j) v(i+1,j-1/2) u(i-1/2,j-1) •η(i,j-1) u(i+1/2,j-1) FIGURA 3.1 - Malha espaço-alternada Arakawa tipo C Apresenta-se a seguir uma ilustração referente à aplicação ao Lago Guaíba dos modelos computacionais desenvolvidos neste trabalho, objetivando destacar que a topografia do leito do Lago Guaíba é complexa, indo de profundidades de 18m até poucos centímetros (5 cm no nosso estudo de caso). Uma representação para essa complexa batimetria é aquela mostrada na fig. 3.2, que é gerada por uma malha de 880 pontos na direção X por 660 pontos na direção Y. Todos os pontos são eqüidistantes, pois tomou-se na malha horizontal nesse exemplo como Δx=Δy=50m (arquivo Guaiba_50, que é aquele arquivo onde se toma Δx=Δy=50m na discretização da geometria). N O L S FIGURA 3.2 - Batimetria do Lago Guaíba representada por 100 isolinhas A batimetria, mostrada na fig. 3.2, foi obtida a partir de uma malha de pontos resultante de processos de varreduras por sonar, combinados com procedimentos de interpolação para obter os pontos não coletados no processo de varredura. Essa imagem foi gerada utilizando o pacote IDRISE®, que é um sistema de informação 48 geográfica para processamento de imagens desenvolvido pela Graduate School of Geography da Clark University. Seu representante no Brasil é o Centro de Recursos Idrise, que está vinculado ao Centro de Ecologia do Instituto de Biociências da UFRGS [EAS98]. A fig. 3.2 foi gerada empregando a função contour do MATLAB®, a partir da malha de pontos gerada pelo IDRISE®. Note-se que, quando da aplicação do modelo computacional ao Lago Guaíba, é necessário, para efeitos de cálculo, definir a localização e a orientação da malha de cálculo na superfície terrestre. Fixou-se a latitude média de 30o sul e o ângulo de 242o (sentido horário) entre o eixo OY da malha e o norte geográfico [SIL86]. Mas o indicador de orientação (pontos cardeais) da fig. 3.2 é somente para chamar a atenção para a diferença de orientação dessa figura em relação as outras figuras análogas como, por exemplo, as fig. 2.2, 3.12, 7.2, 7.3 e 7.5. 3.2 Malha vertical A malha numérica da fig. 3.1 refere-se somente ao plano horizontal, mas em modelos 3D deve-se definir uma malha vertical. Nesse caso, a obtenção dessa malha vertical impõe que se escolha entre: 1. malhas fixas em coordenadas −z , como em [LEE89], [CAS92] e [KIM94]; 2. malhas sigma (coordenadas −σ ) que seguem o terreno, como em [SHE83], [SON94], [SHE95], [LIY96], [MEL98a] e [VIL2000]; 3. malhas r − adaptativas, que redefinem os nodos de acordo com critérios de adaptatividade, como em [FOR99]; 4. malhas isopycnal (coordenadas − ρ ), que são as geradas por camadas com densidade uniforme, como em [CAS97], [BLE98] e [CON98]; 5. malhas fixas em coordenadas −η (coordenadas eta), como em [BLA94] e [KAL99], que aproximam a topografia “em blocos”. A escolha por esse ou aquele sistema de coordenadas vertical decorre da necessidade de desenvolver esquemas numéricos que considerem o caráter multidimensional do corpo de água e que incorporem a topografia do leito desse corpo de água. Alguns dos problemas que aparecem na simulação do escoamento multinível devem-se à incorporação da topografia do terreno ao modelo, sendo que os problemas dependem da escolha da coordenada vertical introduzida nas equações dos modelos [MES84]. Três das coordenadas verticais mais populares são coordenada −z , a coordenada − ρ e a coordenada −σ . A fig. 3.3 representa três regimes de escoamento associados com uma dada coordenada vertical. A camada de superfície (misturada) é representada usando coordenadas −z . O interior do corpo de água é representado usando coordenadas − ρ ; e a camada do fundo é representada usando coordenadas −σ . A discussão neste trabalho a respeito desses regimes e de suas representações através dos sistemas de coordenadas ( x , y , z ) , ( x , y , σ ) e ( x , y , ρ ) segue aquela feita por [VLA99] e por [GRI2000]. No primeiro regime, há uma camada de misturas de superfície que geralmente é turbulenta e dominada pela transferência de quantidade de movimento, calor, água doce, etc. Esse regime geralmente é do tipo bem misturado na vertical através de processos convectivos turbulentos 3D, e os processos envolvidos requerem física não hidrostática que necessita de alto grau de resolução vertical e horizontal para boa representação. No segundo regime, ocorrem processos de transporte de substâncias (traces) no interior do corpo de água, que ocorrem predominantemente ao longo de direções de 49 densidade constante. Nesse regime as propriedades das massas de água tendem a ser preservadas ao longo das escalas espaciais e temporais. O fundo do corpo de água é representado no terceiro regime e age como um forte forçante para acelerar as correntes de água, o qual influencia diretamente o balanço dinâmico. Em um corpo de água não estratificado, o escoamento geralmente segue linhas com constantes Φ H , onde Φ é a força de Coriolis, e H , a profundidade. No caso de ser estratificado, a escala vertical efetiva é reduzida, e o controle sobre a dinâmica é reduzido. Também existem regiões nas quais a intensidade das correntes (overflows) e os processos da camada de contorno turbulenta no fundo (Bottom Boundary Layer - BBL) agem para determinar as características da massa de água. z ρ σ FIGURA 3.3 - Três regimes de escoamento associados com uma dada coordenada vertical (adaptado de [GRI2000]) Outra consideração que é relevante para a escolha das coordenadas é relacionada com a importância do balanço hidrostático e geostrófico para fluidos geofísicos. Visando a obter acurácia numérica e simplicidade analítica, é usual descrever esses balanços com um conveniente conjunto de coordenadas. Uma escolha para a coordenada vertical é a coordenada −z , que representa a distância vertical de uma superfície de referência em z = 0 até z = −h ( x , y ) , que é o leito do corpo de água. Algumas das vantagens dessa classe decorrem, [GRI2000]: 1. da simplicidade da discretização numérica que permite que esses modelos sejam usados logo após seu desenvolvimento inicial; 2. do fato de que, para fluidos de Boussinesq, o gradiente de pressão horizontal pode ser facilmente representado; 3. da simplicidade e da acurácia na representação da equação do estado para a água, que é não linear e importante na determinação das propriedades da massa da água; 4. do fato que a camada de mistura da superfície (surface mixed layer) é naturalmente parametrizada usando coordenadas −z ; 5. e que, em geral, coordenadas −z fornecem um modelo útil para representar processos diabáticos. Algumas das desvantagens de modelos −z , ou seja, de modelos em coordenadas −z , são: 1. o fato de que a advecção e a difusão de substâncias dissolvidas (tracer) ao longo de superfícies de densidade inclinada no interior de corpo de águas não são bem representadas; 2. a representação e a parametrização da camada de contorno turbulenta no fundo (BBL) é não natural; 3. a representação da topografia é difícil e não natural. 50 Outra escolha para a coordenada vertical são coordenadas − ρ isopycnal que consideram a densidade potencial referenciada com uma dada pressão. Em um corpo de água adiabático estratificado estável, a densidade potencial é conservada materialmente e definida como uma camada monotônica de fluido. Algumas das vantagens dessa classe de coordenadas são ([CAS97] e [GRI2000]): 1. o transporte de substâncias no interior do corpo de água tem uma forte tendência para ocorrer ao longo das direções definidas pela densidade potencial localmente referenciadas (ou seja, direções neutras), em vez de através. Assim, esses modelos são apropriados para representar a dinâmica desses regimes, pois as isopycnais são razoavelmente paralelas às direções de densidade constante (neutras), significando que essa coordenada é apropriada para escoamentos estáveis e estratificados; 2. a topografia do fundo é representada de modo a evitar a necessidade de distinguir o fundo do lado como feito por modelos −z ; 3. as pesquisas atuais sobre a física de overflows sugerem que modelos − ρ podem fornecer alguma vantagem sobre modelos −z na representação desses processos; 4. em fluidos adiabáticos, o gradiente de pressão horizontal pode ser facilmente representado. Além disso, para fluidos adiabáticos, o volume (fluido de Boussinesq) ou massa (para fluido não Boussinesq) entre isopycnais é conservado. Algumas desvantagens de modelos − ρ , ou seja, de modelos em coordenadas − ρ , são: 1. a má representação dos efeitos de equações não lineares; 2. o fato de que a coordenada − ρ gera um modelo inapropriado para a representação de camadas misturadas de superfície ou BBL, pois essas camadas de contorno são geralmente não estratificadas. Uma terceira escolha para a coordenada vertical é a coordenada −σ que segue o terreno (terrain-following), introduzida por Phillips em 1957 [MES98]. Essa coordenada é monotônica e define um mapeamento (transformação biunívoca) entre a profundidade e o sistema coordenadas −σ . Algumas das vantagens dessa escolha são [GRI2000]: 1. fornecem uma representação suave para a topografia do corpo de água, com isolinhas coordenadas concentradas em regiões onde processos BBL são mais importantes, fornecendo um modelo natural para parametrizar processos BBL; 2. os efeitos termodinâmicos associados com a equação do estado são bem representados; Algumas desvantagens de modelos −σ , ou seja, de modelos em coordenadas −σ , são: 1. as camadas de superfície misturadas (surface mixed layer) não são tão bem representadas como em coordenadas −z . Isso decorre do fato de que as distâncias verticais entre os pontos da malha são, geralmente, crescentes na direção de regiões continentais e, portanto, levando a camadas de superfícies que têm potencialmente menos resolução vertical que a ideal; 2. como em modelos −z , a representação da advecção e da difusão ao longo de superfícies de densidade inclinada no interior do corpo de água não é boa. Além disso, é difícil a “re-orientação” da física em escala submalha ao longo de direções de densidade constante (neutras), pois quando a topografia é muito íngreme, as superfícies em coordenadas −σ podem cruzar as direções de densidade constante (neutras) em grandes ângulos; 51 modelos −σ também não são bons para representar de modo acurado o gradiente de pressão horizontal, dado que as superfícies σ − constante não são, geralmente, horizontais. Assim, o gradiente de pressão horizontal, que é perpendicular à direção vertical local definida pela gravidade, tem uma projeção e cruza a superfície coordenada −σ . Isso provoca o aparecimento de forças de pressão puramente numéricas que produzem correntes não físicas. Note-se, então, que não há esquemas de discretização do gradiente de pressão e do cálculo do geopotencial pela equação hidrostática que estejam livres desse erro e que não resulte em um falso gradiente de pressão. Para superar parte desses problemas, Mesinger [MES84] definiu um novo sistema de coordenadas, as coordenadas −η , no qual as montanhas consistem em malhas tridimensionais tipo blocos (grid boxes). Veja em [MES84] ou [BLA94] a expressão matemática e a representação geométrica dessa coordenada. Nesse sistema, as coordenadas verticais são definidas de tal modo que as superfícies permanecem em elevações fixas nos lugares onde tocam e definem a superfície do solo. O sistema em coordenadas −η é construído a partir de um sistema de pressão de referência que considera a coordenada −σ e as coordenadas x e y. Assim, quando a pressão é função somente da altura geométrica z, e até um nível que inclui as montanhas mais altas, essa função é igual à pressão de referência, e as superfícies de coordenada −η são horizontais. 3. Então, para qualquer escolha razoável do esquema numérico, não haverá erro no gradiente de pressão. Essa é uma característica que somente pode ser obtida no sistema coordenada −σ para condições muito restritas, nas quais a inclinação das superfícies coordenadas definidas coordenadas −η será pequena, e erros do gradiente de pressão serão reduzidos [MES84]. Portanto, modelos em coordenada −η têm como vantagem o fato de que as superfícies coordenadas são aproximadamente horizontais, reduzindo os erros nos cálculos de variáveis obtidas a partir de derivadas horizontais, já que esses erros são significativos em regiões de montanhas íngremes. A topografia do modelo é representada em forma de degraus cujo topo coincide com a interface das camadas. A altura de cada degrau é obtida através do valor médio das alturas máximas da topografia dentro de cada quadrado de grade. Cada degrau possui um ponto de massa no centro e quatro pontos de velocidade localizados nos vértices [KAL99]. Com essa escolha, a malha vertical é a Arakawa tipo E. A representação da topografia do fundo em modelos ρ e σ é acurada e não impõe distinção entre o fundo e os lados do corpo de água, permitindo a completa representação do contorno. O uso de modelos em coordenadas −z impõe essa distinção uma vez que são usadas células retangulares com espessura fixa no fundo. Porém, algumas representações da topografia de modelos −z podem superar alguns dos obstáculos ao uso de coordenadas −z para representar topografias complexas. Essas consideram, além da tradicional representação em células cheias (full cell), duas abordagens mais apropriadas que são as células cortadas (shaved cell) e as células parciais (partial cell) [GRI2000]. Na abordagem célula cheia (full cell) as espessuras verticais de todas as células são independentes da latitude e da longitude e, portanto, as células são completas. Na abordagem célula parcial (partial cell), as espessuras verticais das células podem variar de acordo com a topografia. Nesse caso, as alturas podem não preenche completamente as células, mas continuam sendo retangulares. Na abordagem shaved 3.2.1 Malha vertical e representação da topografia 52 cell, as células do fundo são lineares por partes com a topografia, permitindo diferentes alturas para os diferentes lados das células. A abordagem full cell é a que produz mais erros. A partial cell simplifica a abordagem computacional. Além disso mostra-se que essa abordagem representa a topografia melhor que a abordagem full cell, mas não tão bem como a shaved cell. Mas duas importantes características são mantidas tanto pelas células cortadas e como pelas células parciais. A primeira característica refere-se ao refinamento da resolução horizontal. Quando se refina a resolução horizontal sem alterar a resolução vertical, não há melhora na representação da topografia via células cheias, mas a representação via células parciais ou cortadas é significativamente melhorada. A segunda característica refere-se ao refinamento da resolução vertical. Quando a resolução vertical é refinada, mas a resolução horizontal é fixa, os modelos que usam células parciais mostram menos variações quando comparados com aqueles com células cheias. Isso significa que a simulação com células parciais é mais robusta que aquela com células cheias. E a robustez do modelo com esses refinamentos na resolução vertical é importante, devido a sensibilidades em processos overflow. Assim, devido à “natureza −σ ” das células parciais ou cortadas, analogamente ao emprego da coordenada −σ , aparecem dois termos quando do cálculo dos gradientes de pressão horizontal. Porém, em contraste com modelos em coordenadas −σ , os problemas gerados por esses termos são menores em modelos −z . Uma análise desses termos, e de seus resultados, mostra que o erro do gradiente de pressão para células parciais de modelos em coordenadas −z pode ser desprezado. Assim, o desenvolvimento e a implementação de modelos em “células parciais” ou em “células cortadas” em coordenadas −z melhora a representação das complexas topografias. Além disso, se considerada a questão computacional, a abordagem em células parciais é particularmente interessante, dado que concilia a simplicidade computacional com uma boa representação da topografia. Portanto, nos modelos 3D desenvolvidos, a escolha recaiu na coordenada −z , onde o sistema de coordenadas definido é o ( x , y , z ) , com células parciais. Com essa escolha, a topografia é reduzida a uma série de paralelepípedos, e o fundo contínuo é representado no plano X-Z como nas fig. 3.4 (a) e (b) e cuja localização das variáveis dependentes pode ser vista na fig. 3.6. ( x,y,z ) célula parcial FIGURA 3.4 - (a) Domínio físico; (b) domínio computacional em coordenadas Cartesianas no plano X-Z 53 Assim, neste trabalho empregou-se nas discretizações que a malha 3D é a Arakawa C em coordenadas −z . O posicionamento das variáveis nessas células e, portanto, como representado na fig. 3.5. Em função dessa escolha, a malha 3D n consiste de células definidas por Δx , Δy , Δz k . Se as alturas das faces da célula não ( ) são completamente formadas de água, como no caso de algumas células adjacentes ao leito e/ou da superfície livre, tomam-se como espaçamento vertical as alturas da coluna de água nessas faces. Em uma célula 3D, é necessário especificar seis vetores velocidades, um para cada face, cada qual com três componentes de velocidade (direção X, direção Y, direção Z). Assim, foram especificadas as dezoito componentes, usando as condições de deslizamento completo, de deslizamento parcial e a condição que não há penetração. Para especificar essas CC, observa-se que, na malha horizontal, os níveis de água são definidos no centro da célula, mas as componentes (u,v,w) da velocidade estão definidas, respectivamente, na face direita, de trás, e superior da célula, conforme ilustrado pela fig. 3.5. Y Z η w u S v u v w S v u v u n Δzk η X w FIGURA 3.5 - Célula 3D no sistema de coordenadas n espaçamentos Δx , Δy , Δz k ( ) (adaptado de [LEE89]) η u w w u w w k = M-1 k=M ( x , y, z ) e considerando os Δzn 1 w u Δz2 u S M k = m-1 Z Δzm u S u w X FIGURA 3.6 - Localização das variáveis dependentes no plano X-Z k=m 54 Note-se que o espaçamento vertical na última camada (a primeira camada de n cima para baixo na coluna de água) é denotado por Δz k e depende da posição da camada k em relação à superfície livre que pode variar no nível de tempo t n . Nesse caso, no cálculo dos espaçamentos entre as diversas camadas que compõem o vetor T n n ΔZ = ( Δz M ,..., Δz m ) , deve-se considerar o nível de água. Para melhorar a estabilidade numérica, os espaçamentos Δz M e Δz m , das camadas superior e inferior, são menores que os espaçamentos das camadas interiores. Assim, denotando os n espaçamentos nas camadas superior e inferior por Δz M e Δz m , a altura total por H T , o número de camadas por N , e a razão entre as camadas por D , as alturas das n camadas são tais que Δz M = Δz m = Δz h D , e são calculadas como: Δz h Δ z h DH T + + Δz h ( N − 2 ) = H T , ou seja, Δzh = 2 + D ( N − 2) D D Neste trabalho tomou-se D = 3 , de modo que a primeira e a última camada tem 1 3 da altura das camadas interiores. Quando o modelo tem apenas duas camadas as alturas são iguais. Dependendo do número de camadas especificadas as espessuras dessas camadas variam de alguns metros até 0,05m, que é a profundidade mínima especificada neste trabalho. Essa profundidade mínima não é, a rigor, necessária mas é definida para evitar instabilidades numéricas que podem surgir quando o regime do escoamento é não permanente. Nesse caso, dado que a última camada varia no espaço e no tempo, pode-se ter situações em que células podem ter alturas negativa. Uma solução para esse problema é impor para as células cuja profundidade mínima seja menor que, por exemplo, 10-4 m, sejam consideradas células secas, e implementar algoritmos para essas áreas passíveis de secarem ou de serem alagadas, como discutido na seção de trabalhos futuros. 3.3 Valores nodais e variáveis dependentes Nx No caso 3D, as variáveis dependentes discretas são definidas considerando que: é o número de células da j-ésima coluna, percorrida na i-ésima linha e na k-ésima camada; N y é o número de células da i-ésima linha, percorrida na j-ésima coluna e na k-ésima camada; N z é o número de camadas verticais; n é o nível de tempo. Assim, as posições dos valores nodais nas células são como: ⎫ ,1≤ i ≤ N x ⎪ def ⎪ y j ≡ j Δy ,1≤ j ≤ N y ⎪ ⎬ def n zk ≡ k Δzk ,1≤ k ≤ N z ⎪ ⎪ def ⎪ n t ≡ n Δt ,n ∈ ⎭ xi ≡ i Δx def Os valores nodais do nível de água, da concentração das substâncias e das componentes das velocidades horizontal e vertical são definidos por: η(ni , j ,k ) ≡ η x i − , y j − , z k − , n Δt 1 2 1 2 1 2 def ( ) = η ( ( i − 1 2 ) Δx , ( j − 1 2 ) Δy , ( k − 1 2 ) Δ z , n Δ t ) 55 S (n, j ,k ) ≡ S x i − 12 , y j − 12 , z k − 12 , n Δt i def def ( ) ) = S ( ( i − 1 2 ) Δx , ( j − 1 2 ) Δ y , ( k − 1 2 ) Δz , n Δ t ) u(ni + 1 , j ,k ) ≡ u x i , y j − 12 , z k − 12 ,n Δt 2 ( = u ( i Δx , ( j − 1 2 ) Δ y , ( k − 1 2 ) Δ z , n Δ t ) v (ni + 1 , j ,k ) ≡ v x i − 12 , y j , z k − 12 , n Δt 2 def ( ) = v ( ( i − 1 2 ) Δx , j Δ y , ( k − 1 2 ) Δz , n Δt ) w(ni , j ,k + 1 ) ≡ w x i − 12 , y j − 12 , z k , n Δt 2 def ( ) = w ( ( i − 1 2 ) Δx , ( j − 1 2 ) Δy , k Δ z , n Δ t ) As condições iniciais em t 0 = 0 podem, por simplicidade, ser definidas considerando que o escoamento encontra-se em repouso. Mas essa não é uma condição necessária. As condições iniciais são definidas por: η(ni ,=j0k ) = η0 x i − , y j − , z k − ,0 ; 1 ≤ i ≤ C j ; 1 ≤ j ≤ Li ; 1 ≤ k ≤ M , 1 2 1 2 1 2 S (n,=j0k i , = u(ni + 0 , j ,k 1 2 = v (ni + 0 , j ,k 1 2 w(ni ,=j0k + 1 , ) , y , z ,0 ) ; 1 ≤ i ≤ C ; 1 ≤ j ≤ L ; 1 ≤ k ≤ M ) =S , z ,0 ) ; 0 ≤ i ≤ C ; 1 ≤ j ≤ L ; 1 ≤ k ≤ M ) = u ( x ,y , y , z ,0 ) ; 1 ≤ i ≤ C ; 0 ≤ j ≤ L ; 1 ≤ k ≤ M ) =v ( x , y , z ,0 ) ; 1 ≤ i ≤ C ; 1 ≤ j ≤ L ; 1 ≤ k ≤ M ) = w (x 0 i − 12 j − 12 k − 12 j i ( (x 0 0 i j − 12 j k − 12 j i i − 12 k − 12 j i 2 0 i − 12 j − 12 k j i onde C j é o número efetivo de células da j-ésima coluna percorrida na i-ésima linha, na k-ésima camada; Li é o número efetivo de células da i-ésima linha percorrida na jésima coluna, na k-ésima camada. Note-se que a malha 2D é um caso particular do caso 3D, pois os valores de U ,V , η e S no nível de tempo n , as condições de contorno e as condições iniciais especificadas no tempo inicial t 0 = 0 são definidos simplesmente suprimindo a coordenada k e não especificando a velocidade vertical w . 3.4 Condições de contorno discretas Neste trabalho, foram especificadas condições de contorno para as ESW e a ETM. A solução da ETM requer a especificação de CC de Dirichlet e de Neumann. Na CC de Dirichlet, especifica-se uma concentração em um período específico de tempo, o que significa o fornecimento ou a retirada de massa do domínio. Na CC de Neumann, o gradiente é normal à fronteira, impondo a necessidade de nela se especificar um fluxo. Como nas fronteiras laterais abertas assume-se que o fluxo advectivo domina o fluxo dispersivo (conforme discutido na seção 2.5.1), considera-se na fronteira inflow CC tipo constante (Dirichlet) e fronteira outflow CC tipo gradiente nulo (Neumann). Esta última CC permite que a concentração saia do domínio sem acumular-se na fronteira, como pode ser visto na fig. 3.18. No caso das ESW, as condições de contorno podem ser do tipo laterais abertas (inflow e outflow), que neste trabalho, são definidas em termos de níveis de água ou 56 vazão. Outras fronteiras são: laterais fechadas, superior e inferior. Nas fronteiras laterais fechadas considera-se que não há fluxo (no flux condition) e há deslizamento (full-slip condition). Na fronteira inferior considera-se que não há fluxo e há deslizamento parcial (partial-slip condition), dado pelos termos de atrito na interface água-sedimento. No caso da fronteira superior, também se considera o deslizamento parcial, e a CC é dada pelos termos de atrito na interface água-superfície livre. Assim, as CC são definidas empregando as notações: 1. as faces em relação à célula são denotadas por: U = superior; L = inferior; S = sul; N = norte; E = leste; W = oeste; 2. as velocidades em paredes sólidas são dos tipos não escoamento (NF), onde a velocidade normal é nula, ou deslizamento (D), ou deslizamento parcial (DP). Dessas definições e/ou notações, em respeito à célula 3D, como nas fig. 3.5 e 3.6, nessas fronteiras laterais fechadas, inferior (interface sedimento-água) e CC superior (superfície livre), deve-se definir, respectivamente: E ( u∂ΩD ,v∂ΩD ,w∂ΩD ) ≡( NF,D,D) , W ( u∂ΩE ,v∂ΩE ,w∂ΩE ) ≡( NF,D,D) S ( u∂ΩF ,v∂ΩF ,w∂ΩF ) ≡( D,NF,D) , N (u∂ΩT ,v∂ΩT ,w∂ΩT ) ≡( D,NF,D) L ( u∂ΩI ,v∂ΩI ,w∂ΩI ) ≡ ( DP,DP,NF ) e U ( u∂ΩS ,v∂ΩS ,w∂ΩS ) ≡ ( DP,DP,NF ) Assim, as velocidades discretas (u,v,w) que não estão localizadas nas fronteiras leste, oeste, norte, sul, superior e inferior podem ser calculadas considerando a localização das variáveis dependentes para as velocidades tangenciais nas fronteiras e a localização das variáveis dependentes para as velocidades normais nas fronteiras. Detalhes podem ser vistos em [RIZ2002a]. Outras CC como, por exemplo, reflectiva, absorvente, periódica, etc. podem ser vistas em [PIE84], [ZON97], [MAT99] e [RIZ99]. Note-se que nas células internas adjacentes às fronteiras do domínio, deve-se obter aproximações diferenciadas para os termos constituintes das equações, pois nessas células esses termos não são aproximados como o são nas outras células internas aos domínios. Pode-se suprimir apropriadamente alguns termos das equações e/ou empregar fórmulas de extrapolação, como em [AND95], [HUN95] e [HUN96], considerando-se o estêncil computacional. No capítulo 6, trata-se detalhadamente dessas questões. 3.5 Domínios computacionais O método de discretização adotado neste trabalho para obter as EDPs na forma discreta foi o das diferenças finitas, e os esquemas numéricos foram construídos sobre a malha espaço-alternado a equiespaçada mostrada na fig. 3.1. Essas escolhas determinam uma certa restrição ao tratamento mais realístico, que é dado quando do emprego de elementos finitos ou de volumes finitos sobre malhas não estruturadas, para regiões com geometria e batimetria complexa. Contudo, a técnica de discretização de domínios gerais via diferenças finitas, como discutida em [GER85] e [CUM2000], fornece uma boa representação para regiões arbitrárias e, por esse motivo, ela é empregada neste trabalho. 3.5.1 Configurações geométricas e enumeração Domínios retangulares discretos são como representados pela fig. 3.7. Nela se pode notar que os valores em negrito nas células sombreadas são os índices associados com os valores nodais internos, enquanto os valores não negritados são índices associados com os valores nodais na fronteira do domínio. 57 5.1 5.2 5.3 4.0 4.1 3.1 2.1 1.1 0.1 4.2 3.2 2.2 1.2 0.2 4.3 3.3 2.3 1.3 0.3 4.4 3.0 3.4 2.0 2.4 1,0 1.4 FIGURA 3.7 - Domínio retangular de dimensão 4 × 3 A matriz dos coeficientes dos sistemas de equações lineares para esse tipo de domínio retangular é estruturada e regular, tendo a forma de “blocos diagonal principal” e “blocos diagonal superior e inferior”. A representação matricial para o domínio da fig. 3.7 é como na fig. 3.8, onde “F”, “S”, “D”, “E” e “C” representam os coeficientes do sistema de equações (6.1) apresentado no capítulo 6 e, que são obtidos considerando um estêncil como o apresentado na fig. 3.9 b). ⎛ C1,1 D1,1 ⎜ ⎜ E1,2 C1,2 D12 ⎜ E1,3 C1,3 ⎜ ⎜ F2,1 ⎜ F2,2 ⎜ F2,3 ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ S1,1 S1,2 S1,3 C 2,1 D2,1 D2,2 C 3,1 F3,2 F3,3 F4,1 F4,2 F4,3 E 2,3 C 2,3 F3,1 D3,1 D3,2 C 4,1 E 3,3 C 3,3 D4,2 E 4,3 E 4,2 C 4,2 E 3,2 C 3,2 S 2,1 S 2,2 S 2,3 S 3,1 S 3,2 E 2,2 C 2,2 ⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟× ⎟ ⎟ S 3,3 ⎟ ⎟ ⎟ ⎟ D4,2 ⎟ ⎟ C 4,3 ⎠ ⎛ φ1,1 ⎞ ⎜ ⎟ ⎜ φ1,2 ⎟ ⎜ φ1,3 ⎟ ⎜ ⎟ ⎜ φ2,1 ⎟ ⎜ φ2,2 ⎟ ⎜ ⎟ ⎜ φ2,3 ⎟ ⎜φ ⎟ ⎜ 3,1 ⎟ ⎜ φ3,2 ⎟ ⎜φ ⎟ ⎜ 3,3 ⎟ ⎜ φ4,1 ⎟ ⎜ ⎟ ⎜ φ4,2 ⎟ ⎜φ ⎟ ⎝ 4,3 ⎠ n +1 n n+ n+ ⎛ B1,1 − E1,1φ1,01 − F1,1φ0,11 ⎞ ⎜ ⎟ n n +1 B1,2 − F1,2φ0,2 ⎜ ⎟ n n+ n+ ⎜ B1,3 − D1,3φ1,41 − F1,3φ0,31 ⎟ ⎜ ⎟ n+ n B 2,1 − E 2,1φ2,01 ⎜ ⎟ n ⎜ ⎟ B 2,2 ⎜ ⎟ n n +1 B 2,3 − D2,3φ2,4 ⎜ ⎟ =⎜ ⎟ n n+ B 3,1 − E 3,1φ3,01 ⎜ ⎟ n+ ⎜ ⎟ B 3,21 ⎜ ⎟ n n +1 B 3,3 − D3,3φ3,4 ⎜ ⎟ n n+ n+ ⎜ B 4,1 − E 4,1φ4,01 − S 4,1φ5,11 ⎟ ⎜ ⎟ n n+ B 4,2 − S 4,2φ5,21 ⎜ ⎟ ⎜ B n − D φ n +1 − S φ n +1 ⎟ 4,3 4,4 4,3 5,3 ⎠ ⎝ 4,3 FIGURA 3.8 - Representação matricial, via ordenação natural, para o domínio da fig. 3.7, discretizado com um estêncil de 5-pontos Note-se, porém, que essa representação é limitada, pois apenas considera domínios retangulares e, conseqüentemente, matrizes regulares. Uma representação mais apropriada é aquela que considera domínios gerais [CUM2000], não retangulares e cujas fronteiras são irregulares, e que tem ilhas e istmos no seu interior. Um domínio não retangular é, por exemplo, como aquele mostrado na fig. 3.9 a), onde esse subdomínio não retangular pode ser um “recorte” de um domínio maior, resultante da aplicação de um algoritmo de particionamento de grafos como discutido na seção 7.3.1. Nesse caso, a matriz dos coeficientes do sistema de equações é do tipo estruturada e irregular, e é como dada na fig. 3.10. Note-se que a estrutura e a regularidade da matriz, no caso de domínios gerais, advém da aplicação dos algoritmos de particionamento de malha (grafos). As células internas ao subdomínio têm sua numeração destacada em negrito, enquanto as células externas não o têm. Suponha, nesse exemplo, que todas as fronteiras sejam abertas e internas ao domínio global, exceto a face “F” da célula (3,1) que coincide com uma fronteira aberta verdadeira do domínio onde se tem uma situação outflow. Considerando, também, que nas fronteiras que obedeçam a condição 58 de serem interna e aberta sejam especificadas CC de Dirichlet, e na fronteira contorno e aberta (a face “F” da célula (3,1)) seja especificada a CC de Neumann, considerandose o gradiente nulo. 5.2 4.1 3.0 4.2 3.2 2,2 1,2 4.3 S 3.1 2.1 3.3 2.3 1,3 3.4 E 2.5 1.5 C D i 2.4 1.4 0.4 outflow F a) b) j FIGURA 3.9 - Domínio não retangular com CC tipo Dirichlet em todas as faces, exceto a face F da célula (3,1), onde se tem CC tipo Neumann Nesse caso, para montar o sistema de equações um procedimento varre todas as células testando se as fronteiras são dos tipos interna ou contorno e, se são do tipo aberto ou fechado. No caso do exemplo em discussão, identifica-se quais são as faces interna e aberto entre os tipos “F”, “S”, “D” e “E” como denotadas pelo estêncil mostrado na fig. 3.9. b). No caso específico da célula (4,2) ela tem como fronteiras as células (4,1), (4,3) e (5,2). Os valores das variáveis nessas células são conhecidos no passo de tempo anterior, e portanto, podem ser empregadas para estabelecer a CC de Dirichlet. Considerando a linha específica dessa célula, o vetor dos termos independentes fica como: n n n n n B 4,2 − E 4,2φ4,1 − D4,2φ4,3 − S 4,2φ5,2 sendo os demais casos análogos. Note-se que, neste trabalho, denotam-se os coeficientes “F”, “S”, “D”, “E” e “C” do sistema de equações com uma ordenação relativa à célula “C”. Assim, E(4,2) indica o coeficiente à esquerda de C(4,2); D(4,2) indica o coeficiente à direita de C(4,2) e S(4,2) indica o coeficiente acima de C(4,2). Os coeficientes gerados são como aqueles discutidos no capítulo 6. As células que sejam do tipo contorno aberto e cuja CC seja do tipo gradiente nulo são tratadas observando que para essa CC indica que a taxa de variação espacial da quantidade física envolvida é nula na face entre o limite do domínio computacional, como discutido na seção 2.5.1. Assim, para uma variável φ , tem-se ∂φ ∂y ( φ( i, j ) − φ(i −1, j ) Δy = 0 e, portanto, φ(i , j ) = φ(i −1, j ) . Especificamente para o ) exemplo acima tem-se φ(3,1) = φ( 2,1) , e nesse caso, na montagem da matriz dos coeficientes tem-se: C 3,1φ (n +)1 + F3,1φ (n +)1 = (C 3,1 + F3,1 ) φ (n +)1 3,1 3,1 3,1 significando que se deve adicionar ao coeficiente C da célula (3,1), o coeficiente “F” da célula (3,1) (note-se que o coeficiente “F” tem sinal negativo, como pode ser visto na seção 6.1 e, portanto, deve-se aqui considera-lo com o sinal “+”), sendo que nesse caso esse termo não entra no vetor dos termos independentes. A matriz dos coeficientes para esse exemplo é como dada na fig. 3.10. 59 S1,1 ⎛ C1,4 ⎜ C2,2 D2,1 ⎜ ⎜ E2,2 C2,3 D2,2 ⎜ E2,3 C2,4 ⎜ F2,3 ⎜ C3,1 + F3,1 ⎜ F3,2 E3,2 ⎜ ⎜ F3,3 ⎜ ⎜ ⎝ S2,1 S2,2 D3,1 C3,2 D3,2 E3,3 C3,3 F4,1 ⎞ ⎟ ⎟ ⎟ ⎟ ⎟× ⎟ ⎟ S3,2 ⎟ ⎟ ⎟ C4,2 ⎟ ⎠ ⎛ φ1,4 ⎞ ⎜ ⎟ ⎜ φ2,2 ⎟ ⎜ φ2,3 ⎟ ⎜ ⎟ ⎜ φ2,4 ⎟ ⎜ φ3,1 ⎟ ⎜ ⎟ ⎜ φ3,2 ⎟ ⎜φ ⎟ ⎜ 3,3 ⎟ ⎜φ ⎟ ⎝ 4,2 ⎠ n +1 n n n n ⎛ B1,4 − E1,4φ1,3 − D1,4φ1,5 − F1,4φ0,4 ⎞ ⎜ ⎟ n n n B2,2 − E2,2φ2,1 − F2,2φ1,2 ⎜ ⎟ n n ⎜ ⎟ B2,3 − F2,3φ1,3 ⎜ ⎟ n n n B2,4 − D2,4φ2,5 − S2,4φ3,4 ⎜ ⎟ =⎜ n n n ⎟ B3,1 − E3,1φ3,0 − S3,1φ4,1 ⎜ ⎟ n B3,2 ⎜ ⎟ ⎜ ⎟ n n n B3,3 − D3,3φ3,4 − S3,3φ4,3 ⎜ ⎟ ⎜ B n − E φ n − Dn φ n − S φ n ⎟ 4,2 4,2 4,1 4,2 4,3 4,2 5,2 ⎠ ⎝ FIGURA 3.10 - Representação matricial para o domínio da fig. 3.9 a), considerando-se os seus tipos de fronteiras e de CC 3.5.2 Armazenamento: estruturas de dados Note-se que os procedimentos de montagem e geração das matrizes e das CC não são apenas importantes para especificar as CC para o domínio global, mas também para estabelecer as CC entre as fronteiras artificialmente criadas para obtenção da solução paralela via decomposição de dados, de modo a identificar as células da fronteira e as células internas a cada subdomínio visando a assegurar a continuidade da solução e de suas derivadas entre os subdomínios. Domínios arbitrários são representados, neste trabalho, através do emprego de uma estrutura de dados que descreve o domínio computacional não retangular de modo a gerar matrizes estruturadas, porém irregulares, permitindo a representação para regiões não retangulares com ilhas e istmos no seu interior. Na descrição do domínio computacional, emprega-se como unidade básica uma estrutura chamada de “linha de cálculo”, que descreve um conjunto de células do domínio computacional pertencentes a uma determinada direção coordenada. No caso da direção X, essa estrutura descreve as células que pertencem à mesma linha e que são contíguas. Cada linha de cálculo contém o número da linha do grupo de células, coluna inicial, coluna final e as CC de ambas as extremidades do grupo de células. De modo análogo, para descrever a estrutura de vizinhança das células na direção Y é utilizada uma estrutura chamada “coluna de cálculo” que contém, para cada grupo de células contíguas pertencentes à mesma coluna, a linha inicial do grupo, linha final do grupo e as CC da extremidade superior e inferior do grupo de células. Estando definida essa estrutura, o domínio computacional completo é descrito através de uma lista de linhas e uma lista de colunas de cálculo. A partir dessa descrição do domínio computacional obtida de um arquivo com a descrição do domínio, é alocada uma malha tridimensional contendo todas as células, cada uma das quais contém as variáveis do modelo como as componentes da velocidade, o nível de água e a concentração de poluente. Dado o estêncil utilizado para as aproximações, a matriz de coeficientes gerada é esparsa, contendo, além do elemento da diagonal principal, até quatro outros elementos por linha. A matriz é armazenada no formato CSR (compressed sparse row), que é um dos formatos mais efetivos para o armazenamento de elementos não nulos de matrizes grandes e esparsas. Outros formatos de armazenamento de matrizes podem ser vistos em [BAR94], [JÚD96] e [SAA96]. O formato CSR, cujo exemplo pode ser visto na fig. 3.11, armazena apenas os elementos não nulos de uma matriz esparsa (e não simétrica) e sua estrutura é baseada em três vetores: um vetor (val) do tipo do dado da matriz e dois vetores (col_ind, row_ptr) de tipo inteiro, onde: 60 1. 2. 3. val: armazena os valores da matriz da esquerda para direita e de cima para baixo; col_ind: armazena a coluna da qual os valores contidos em “val” foram obtidos na matriz; row_ptr: armazena os ponteiros que indicam quantos valores não nulos cada linha possui. A primeira posição desse vetor recebe o valor “1”, a segunda posição recebe o valor da posição anterior somado com o número de elementos não nulos da primeira linha do vetor e assim sucessivamente. 0 0 0 −2 9 0 0 7 8 7 0 8 7 8 0 9 4 0 0 0 0 5 1 2 0⎞ ⎟ 3⎟ 0 ⎟ val ⎟ col_ind 0⎟ 3⎟ ⎟ −1⎟ a) ⎠ ⎛10 ⎜ ⎜3 ⎜0 ⎜ ⎜3 ⎜0 ⎜ ⎜0 ⎝ 10 1 -2 5 3 1 row-ptr 9 2 1 3 6 3 7 2 6 8 3 9 7 4 13 3...9 1...5 17 3 6 20 4 2 2 5 -1 6 b) FIGURA 3.11 - Formato CSR, a) exemplo para uma matriz esparsa A6×6; b) estrutura de dados empregada para armazenar os elementos não nulos da matriz exemplificada no item a) Neste formato não considera qualquer informação sobre a estrutura da matriz e armazena os elementos não nulos em posições contíguas na memória Porém, o formato CSR não é computacionalmente muito eficiente para matriz de dimensões modestas, pois necessita de endereçamento indireto para quaisquer operações. Se n é o número de elementos não nulos da matriz, esse formato é econômico, pois, em vez de armazenar N2 (onde N é a dimensão da matriz) elementos, necessita-se de n + N +1 posições. Como o procedimento de geração da matriz é feito após o particionamento do domínio, as partes do sistema de equações (e as submatrizes locais) são geradas em paralelo e já estão distribuídas. Desse modo, cada processo possui a sua parte do domínio ou da matriz global, e sua parte do vetor das incógnitas, necessários para calcular o produto matriz por vetor, e as demais operações em álgebra linear, durante a solução iterativa via algoritmo do gradiente conjugado. Note-se, porém, que como foi usado o estêncil de 5-pontos para construir os esquemas numéricos que geram os sistemas de equações SDP que são resolvidos via GC, é necessário um estêncil (halo) de uma célula nas fronteiras dos subdomínios. A geração e o armazenamento desses estênceis devem ser feitos considerando-se que as células dos estênceis são utilizadas em duas situações. Na primeira situação objetiva-se a assegurar a continuidade da solução nas fronteiras artificiais quando da obtenção da solução paralela via decomposição de dados. Nesse caso considera-se para essas células dos estênceis que as CC são outflow e do tipo gradiente nulo de modo que essas células são adicionadas ao termo “C” na matriz dos coeficientes, como discutido anteriormente. Na segunda situação os estênceis são necessários para obter os précondicionadores via decomposição de domínio. Nesse caso, o uso do MDD aditivo de Schwarz requer que, a cada iteração do GC, os valores dos estênceis entre as células adjacentes sejam trocadas a fim de estabelecer CC homogêneas. Porém, dado que os domínios são não retangulares, as células do estêncil estão distribuídas de modo não ordenado entre os processos deve-se estabelecer uma estratégia a fim facilitar o armazenamento das células que são adjacentes internas às fronteiras do subdomínio (“estêncil ou sobreposição interna”), e que são as células que necessitam receber a identificação e o conteúdo das outras células que, são adjacentes internas às fronteiras dos outros subdomínios (“estêncil ou sobreposição externa”). A fig. 3.12 que ilustra um exemplo para as células internas e para os estênceis interno e 61 externo do subdomínio em destaque, de modo que estão identificadas as enumerações das células e seus conteúdos. FIGURA 3.12 - Subdomínio gerado pelo particionamento gercado pela biblioteca METIS, onde se destacam as células internas e suas enumerações, e as células das fronteiras e suas enumerações Isso significa armazenar as células, ou seja, os elementos da matriz e do vetor das incógnitas, necessárias para calcular o produto matriz por vetor, e caracterizar as comunicações para a solução paralela, via decomposição de dados, do sistema de equações, e para obter o pré-condicionador, via decomposição de domínio. Nesse último caso, o pré-condicionador é obtido de modo distribuído, e essa abordagem gera o método Krylov-Schwarz de solução, discutido na seção 7.8. A solução adotada foi aquela discutida em [SAA2002] e [PIC2002a], onde se tem uma estrutura de armazenamento baseada na enumeração das células do domínio, que é global mas gerada localmente para cada subdomínio, como ilustrado na fig. 3.12. A estratégia baseia-se no fato de que na operação produto matriz por vetor, as células da matriz que são multiplicadas por células do vetor que não são estênceis interno, são aquelas que pertencem a algum estêncil externo. Desse modo, armazena-se separadamente e em forma de vetores, para cada subdomínio, as partes da matriz que pertencem aos estênceis. Assim, as partes da matriz correspondentes a esses estênceis estão associadas aos vetores recebidos na comunicação, e a um vetor contendo a enumeração da posição onde os resultados das operações matriciais devem ser colocados. A ordem em que estes vetores são recebidos é aquela definida pela numeração do estêncil externo, e a posição onde o resultado é colocado é aquela definida pela numeração do estêncil interno. Assim, a multiplicação matriz esparsa por vetor é dividida em duas partes. Ou seja, Ax = Axcel_int + Axcel_est , onde Axcel_int denota a parte desse produto matriz × vetor em que apenas se consideram as células internas ao domínio (células computacionais 62 locais), e onde Ax cel_est denota a parte desse produto matriz por vetor referente aos estênceis (ou sobreposições) externos que pertencem aos processos vizinhos (células computacionais que constituem as fronteiras adjacentes externas ao subdomínio). Essa estrutura facilita a incorporação dos pré-condicionadores baseados em decomposição de domínio, bem como a especificação das CCs tipo outflow na abordagem decomposição de dados. Note-se, portanto, que o produto matriz por vetor em paralelo consiste nas trocas dos “estênceis internos e externos” entre os subdomínios, na realização dos produtos matriz por vetor local (células internas), e a realização dos produtos matriz por vetor externo (células das células adjacentes externas aos subdomínios). Além disso, como as comunicações (troca dos estênceis) e os produtos matriz por vetor local são independentes, eles podem ser sobrepostos, fazendo-se essas comunicações e computações simultaneamente usando, por exemplo, troca de mensangens e threads. 3.5.3 Regiões não retangulares: método ADI A técnica Alternating Direction Implicit (ADI) reduz a solução de um problema multidimensional à solução de problemas unidimensionais. O caso 2D é formado a partir de duas “subsoluções”, uma para cada direção coordenada. O caso 3D é formado a partir de três “subsoluções”, uma para cada direção coordenada. Essas soluções são obtidas empregando o algoritmo de Thomas para resolver os sistemas de equações lineares através de uma varredura linha a linha e outra coluna a coluna (problema 2D). Essa abordagem foi extensamente desenvolvida e aplicada na solução de problemas nos trabalhos pioneiros de Leendertse ([LEE67], [LEE70] e [LEE71]), pois permite combinar a eficiência computacional do algoritmo de Thomas (de O(N)), com as boas propriedades de estabilidade do esquema numérico (semi-implícito), além de permitir uma boa representação de ilhas, istmos e outras conformações irregulares. Isto porque a malha pode ser alocada e resolvida de modo a englobar somente a região de interesse que é definida por conjuntos das linhas e das colunas, como pode ser observado na fig. 3.13. A malha computacional é vista como uma coleção de células, em cada uma das quais, define-se o contorno físico para cada um de seus lados, que pode ser fechado, aberto interno e aberto no contorno da região. O arranjo desses três tipos produz nove espécies de células e a especificação de oito tipos de condições de contorno, que são incorporadas aos sistemas de equações lineares, como feito em alguns dos modelos 2D, em nossos trabalhos, e por [CSL85], [SIL86] e [KAP98]. As duas meias soluções são obtidas através de varreduras, a cada meio passo de tempo, nas direções X e Y. Os sistemas de equações gerados para a varredura na direção X, que é feita no nível de tempo [n , n + 1 2 ] , são 3-diagonal. Tais sistemas de equações são, para uma linha genérica j, formados a partir do acoplamento das equações da continuidade e da conservação da quantidade do movimento para a direção X, que são definidas, respectivamente, nas localizações (i , j ) e (i + 12 , j ) . Nessa situação, os domínios formados por uma coleção de linhas e uma coleção de colunas permitem a representação de domínios não retangulares sem um tratamento especial. Para cada uma dessas linhas e colunas é formado um sistema de equações, sendo necessário, portanto, especificar condições de contorno para cada um desses sistemas. 63 FIGURA 3.13 - Aproximação grosseira (Δx=Δy=1000m) para o domínio (Lago Guaíba), ilustrar as células internas ao domínio (quadrículas), que são utilizadas para obter as linhas e as colunas de cálculo para o emprego do método ADI Neste trabalho, para a direção X, foram implementadas quatro tipos de CC, resultando em sistemas de equações lineares cujas ordens são, respectivamente, n × n , n × (n − 1) , (n − 1) × (n − 1) e (n − 1) × n . Especificamente, para o primeiro meio passo de tempo, e empregando a componente U da velocidade, essas CC são do tipo: 1. 2. 3. 4. tipo U − U , onde se conhecem os valores de U (i − 1 2, j ) e U ( M +21 , j ) ; 2 2 n +1 n +1 tipo U − η , onde se conhecem os valores de U (i − 1 2, j ) e η( M , j2) ; 2 tipo η − η , onde se conhecem os valores de η(i , j )2 e η( M , j2) ; tipo η − U , onde se conhecem os valores de η(i , j )2 e U ( M +21 , j ) . 2 n +1 n +1 n +1 n +1 n +1 n +1 Esses sistemas de equações lineares, que podem ser escritos matricialmente considerando suas posições relativas na malha de Arakawa e especificando as condições de contorno nos extremos esquerdo e direito de cada matriz para uma dada linha genérica j , fornecem matrizes 3-diagonal. Uma representação matricial para o primeiro caso é como dado na fig. 3.14. n + 12 n + 12 n D(i + 1 , j ) ⎡ 1 ⎤ ⎡ η(i , j ) ⎤ ⎡ B(i , j ) − E(i − 12, j )U (i − 12, j ) ⎤ 2 ⎥ ⎢ ⎥ ⎢ n + 12 ⎥ ⎢ n ⎥ ⎢E (i , j ) C (i + 12, j ) D (i +1, j ) ⎥ ⎢ U (i + 12, j ) ⎥ ⎢ B (i + 12, j ) ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ 1 E (i + 1 , j ) D(i +3 , j ) ⎢ M ⎥ ⎢ ⎥ M ⎢ ⎥ 2 2 ⎥ ⎢ ⎥×⎢ M ⎥ = ⎢ M O ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ n +1 ⎥ ⎢ ⎥ ⎢U (nM −21 , j ) ⎥ ⎢ E (M −1, j ) C (M − 12, j ) D (M , j ) B (M − 12, j ) 2 ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ 1 ⎥ ⎢ ηn + 12 ⎥ ⎢B n − D 1 U n + 121 ⎥ E(M − 1 , j ) ⎢ 2 ⎣ ⎦ ⎣ (M , j ) ⎦ ⎣ (M , j ) ( M + 2, j ) ( M + 2, j ) ⎦ ⎥ ⎢ ⎥ ⎢ FIGURA 3.14 - Matriz 3-diagonal para uma linha genérica com CC U − U Em [RIZ2002a], pode-se ver todos os detalhes e deduções do esquema semiimplícito para a solução das ESW 2D integradas verticalmente e, que resolvidos pelo método ADI, foram aplicadas ao Lago Guaíba. Além disso, pode-se ver as 64 representações para os outros tipos de matrizes formadas na direção X , como a matriz 3-diagonal para linha genérica CC U − η ; a matriz 3-diagonal para linha genérica CC η − η ; e a matriz 3-diagonal para linha genérica CC η − U . Analogamente, os sistemas de equações lineares para a varredura na direção Y no nível de tempo [n + 1 2 , n + 1] são, para uma coluna genérica i, formados a partir do acoplamento das equações da continuidade e da conservação da quantidade do movimento, que são definidos, respectivamente, para as localizações (i , j ) e (i , j + 12 ) . Para esses sistemas de equações lineares, pode-se especificar CC nos extremos esquerdo e direito de cada matriz para uma dada coluna genérica i. Foram implementadas quatro tipos de CC para a varredura na direção Y, que fornecem matrizes cujas ordens são, respectivamente, n × n , n × (n − 1) , (n − 1) × (n − 1) 1. 2. 3. 4. e (n − 1) × n . Especificamente, no segundo meio passo de tempo, e empregando a componente V da velocidade, as CC são: +1 tipo V − V , onde se conhecem os valores de V(n,+1 1 ) e V(n,M + 1 ) ; i j− i 2 2 tipo V − η , onde se conhecem os valores de V n +1 (i , j − 12 ) eη n +1 (i ,M ) ; + tipo η − η , onde se conhecem os valores de η(n ,+j1) e η(nM 1j ) ; i , +1 tipo η − V , onde se conhecem os valores de η(n ,+j1) e V(n,M + 1 ) . i i 2 e onde as matrizes são 3-diagonal. Uma representação matricial para o terceiro caso é como dado na fig. 3.15. n +1 ⎤ ⎡ n+ 2 n +1 ⎤ ⎡ V(i , j + 12) ⎤ ⎢ B (i , j + 12) − E (i , j )η(i , j ) ⎥ ⎥ ⎢ n +1 ⎥ ⎢ n +1 ⎥ B(i , j +21) ⎥ ⎢ η(i , j +1) ⎥ ⎢ ⎥ ⎥ ⎥ ⎢ ⎥ N M M ⎥ ⎢ ⎥×⎢ ⎥ =⎢ ⎥ ⎢ M ⎥ ⎢ O M ⎥ ⎥ ⎥ ⎢ ⎥ n + 12 1 E(i ,M −3 ) C(i ,M − 1 ) ⎥ ⎢ η(n,+1 −1) ⎥ ⎢ B(i ,M −1) iM 2 2 ⎢ ⎥ ⎥ ⎢ n +1 ⎥ ⎢ n + 1 ⎥ V(i ,M − 1 ) ⎥ 2 1 ) ⎥ n +1 E (i ,M −1) C (i ,M − 2 ⎦ ⎢ 2 ⎦ ⎣ ⎢B (i ,M − 12) − D (i ,M )η(i ,M ) ⎥ ⎣ ⎦ FIGURA 3.15 - Matriz 3-diagonal para uma coluna genérica com CC η − η 1 ⎡C (i , j + 12) ⎢ ⎢ E(i , j + 12) ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ D (i , j +1) 1 C (i , j + 3 ) 2 O N Assim, são oito os tipos de condições de contorno que podem ser especificadas. Quatro para o primeiro meio passo de tempo e quatro para o segundo meio passo de tempo. As representações para as matrizes 3-diagonal para coluna genérica com CC V − V ; matriz 3-diagonal para uma coluna genérica com CC V − η , e matriz 3diagonal para coluna genérica com CC η − V podem ser vistas, também, em [RIZ2002a]. No caso da aproximação considerada na fig. 3.13, uma abordagem via método ADI gera 49 sublinhas de cálculo com matrizes 3-diagonal do tipo exemplificado pela fig. 3.14, cujas ordens (dimensões) variam de 1 a 73. Também existem 51 subcolunas de cálculo com matrizes 3-diagonal do tipo exemplificado pela fig. 3.15, cujas ordens variam de 1 a 37. As tab. 3.1 e 3.2 mostram os detalhes a respeito de cada uma dessas subcolunas e sublinhas de cálculo que englobam todas as células computacionais. 65 TABELA 3.1 - Sublinhas de cálculo para o caso da configuração geométrica da fig. 3.13. Solução do problema 2D via método ADI na direção X ordem de linha geral coluna coluna final tipo do ordem da cálculo inicial contorno matriz 1 2 4 8 U-U 7 2 3 3 8 U-U 9 3 4 2 8 U-U 11 4 4 10 11 U-U 1 5 5 1 9 U-U 15 6 5 9 13 U-U 7 7 6 1 13 U-U 23 8 7 1 12 U-U 21 9 8 1 13 24 η-U 10 9 1 14 26 η-U 11 10 1 13 24 η-U 12 10 37 40 4 U-η 13 11 1 12 22 η-U 14 11 36 39 U-U 5 15 12 2 13 U-U 21 16 12 14 16 U-U 3 17 12 35 39 U-U 7 18 12 39 40 U-U 1 19 12 41 43 U-U 3 20 13 2 14 U-U 23 21 13 14 17 U-U 5 22 13 18 20 U-U 3 23 13 21 22 U-U 1 24 13 34 45 U-U 21 25 14 2 17 U-U 29 26 14 17 23 U-U 11 27 14 27 30 U-U 5 28 14 34 44 U-U 19 29 15 2 23 U-U 41 30 15 25 31 U-U 11 31 15 32 39 U-U 13 32 15 39 41 U-U 3 33 16 2 24 U-U 43 34 16 25 40 U-U 29 35 17 2 39 U-U 73 36 18 2 36 U-U 67 37 19 2 11 U-U 17 38 19 12 35 U-U 45 39 20 2 9 U-U 13 40 20 12 32 U-U 39 41 21 12 32 U-U 39 42 22 11 31 U-U 39 43 23 11 19 U-U 15 44 23 19 27 U-U 15 45 24 13 19 U-U 11 46 24 22 26 U-U 7 47 25 13 29 U-U 11 48 25 22 25 U-U 5 49 26 14 17 U-U 5 66 TABELA 3.2 - Subcolunas de cálculo para o caso da configuração geométrica da fig. 3.13. Solução do problema 2D via método ADI na direção Y ordem de coluna geral linha inicial linha final tipo do ordem da cálculo contorno matriz 1 2 4 11 V-V 13 2 3 3 20 V-V 33 3 4 2 20 V-V 35 4 5 1 20 V-V 37 5 6 1 20 V-V 37 6 7 1 20 V-V 37 7 8 1 20 V-V 37 8 9 4 20 V-V 31 9 10 4 19 V-V 29 10 11 3 19 V-V 31 11 12 4 18 V-V 27 12 12 21 23 V-V 3 13 13 4 6 V-V 3 14 13 7 10 V-V 5 15 13 11 23 V-V 23 16 14 8 9 V-V 1 17 14 12 25 V-V 25 18 15 11 26 V-V 29 19 16 11 26 V-V 29 20 17 12 26 V-V 27 21 18 13 25 V-V 23 22 19 12 25 V-V 5 23 10 12 23 V-V 21 24 21 13 23 V-V 19 25 22 12 23 V-V 21 26 23 13 25 V-V 23 27 24 15 25 V-V 19 28 25 16 25 V-V 17 29 26 14 24 V-V 19 30 27 14 23 V-V 17 31 28 13 22 V-V 17 32 29 13 22 V-V 17 33 30 13 22 V-V 17 34 31 14 22 V-V 15 35 32 15 21 V-V 11 36 33 14 19 V-V 9 37 34 14 19 V-V 9 38 35 13 19 V-V 13 39 36 11 18 V-V 13 40 37 10 17 V-V 13 41 38 9 17 V-V 15 42 39 9 15 V-V 11 43 39 15 17 V-V 3 44 40 11 16 V-V 9 45 41 12 14 V-V 3 46 41 14 15 V-V 1 47 42 11 14 V-V 5 48 43 11 14 V-V 5 49 44 12 14 V-V 3 50 45 12 13 V-V 1 51 40 9 10 V-V 1 67 Se o tipo da CC for, por exemplo, U-U, em vez de η-U, a ordem da matriz 3diagonal aumenta de uma unidade. E se o tipo da condição de contorno for U-U, em vez de U-η, a ordem da matriz 3-diagonal aumenta de uma unidade. As CC η-U e U-η foram especificadas para um caso prático, como aquele da simulação da hidrodinâmica 2D para o Lago Guaíba, cujos resultados gráficos podem ser vistos nas fig. 7.33 e 7.34. Note-se que na tab. 3.1 a expressão linha geral indica qual é a linha de cálculo para cada matriz gerada, sendo que as expressões coluna inicial e coluna final indicam onde a matriz inicia e termina no domínio computacional, formando todas as sublinhas de cálculo. O mesmo acontece com as expressões linha geral, linha inicial e linha final da tab. 3.2. A ordem de cálculo indica a ordem de solução seqüencial dos sistemas de equações cujas dimensões são dadas pela ordem da matriz. Mas pode-se obter uma solução paralela para a abordagem ADI em dois meios passos de tempo, de modo que ocorram varreduras simultâneas em cada subdomínio. O sincronismo e a troca de dados ficam apenas restritos às fronteiras de cada subproblema. O problema da solução paralela, quando se emprega o método ADI para se resolver os sistemas 3diagonal, é a intrínseca dependência de dados no segundo meio passo de tempo. Essas questões são abordadas nas seções 7.10 e 7.10.1. Uma discussão detalhada sobre o efetivo emprego do método ADI e do algoritmo de Thomas, bem como da geração dos sistemas de equações a partir do acoplamento da equação da continuidade e das equações da conservação da quantidade de movimento (abordagem de Leendertse), podem ser vistos nos trabalhos de Cassalas [CSL85], Silveira [SIL86] e em [RIZ2002a]. 3.6 Métodos adaptativos para malha numérica Muitos problemas podem ser resolvidos, eficiente e acuradamente, utilizando-se malhas fixas. Entretanto, existem aqueles nos quais o uso dessas malhas é ineficiente sob o ponto de vista computacional. Exemplos são os problemas ditos multifísica, que são aqueles nos quais os fenômenos simulados são divididos em diferentes fenômenos físicos que ocorrem no mesmo domínio de definição, e exigem diferentes escalas espaço-temporais para a obtenção de suas soluções. A classe de problemas multifísica abrange os problemas abordados neste trabalho, que é a modelagem computacional da hidrodinâmica e do transporte de substâncias em corpos de água. Devido às diferentes naturezas das dimensões da malha das ESW elas dependem: das dimensões horizontais envolvidas; da profundidade média dos corpos de água; do fato de a água ser do tipo misturada; e do nível de detalhes desejado. No caso do Lago Guaíba, ela varia de Δx=Δy=1000m até 50m, onde Δx e Δy são os espaçamentos nas direções X e Y. O espaçamento vertical Δz pode variar de poucos centímetros, no fundo e na superfície, até alguns metros no caso de águas mais profundas como em [UMG96], [ZHE99] e [ROS2000]. Na solução da ETM, deve-se considerar pelos menos três questões. A primeira é o fato de que a sub-região contaminada é, em geral, menor que o domínio de definição, não necessitando, portanto, de uma malha refinada globalmente. As dimensões dessa sub-região dependem de fatores como condição meteorológica, clima, período do dia, tipo de água (doce ou salgada). A segunda questão diz respeito à importância de obter detalhes da contaminação e indicar quais as sub-regiões mais contaminadas e que sofrem restrições de balneabilidade e captação da água. O terceiro fator é numérico. Em malhas refinadas, o número de Péclet é tal que as oscilações numéricas da solução são menos importantes, pois, como o número de Péclet depende do espaçamento da malha, a construção de malhas refinadas é um importante fator para que as oscilações sejam minimizadas ou suprimidas. Por essas razões, a malha da ETM tem, nas experiências 68 realizadas as dimensões Δx=Δy variam de 100m a 25m, e Δz varia dependendo do número de camadas. Para uma solução acurada e eficiente, esses problemas que exigem diferentes escalas espaciais, existem os chamados métodos adaptativos, que podem ser classificados em três grupos ([HAW91], [MOO92] e [FOR99]): 1. métodos −h : definidos quando se adicionam mais pontos à malha. Um exemplo dessa classe são os refinamentos locais; 2. métodos − p : definidos quando se aumenta a ordem das funções de interpolação; métodos −r : surgem da movimentação dos pontos da malha. Atualmente, uma variedade de estratégias tem sido desenvolvida na busca das soluções, usando os métodos −r . Nesses métodos, a malha é redistribuída dinamicamente à medida que a solução evolui no tempo, usando, para isso, uma função indicadora da atividade espacial em cada sub-região. Esse procedimento dá origem ao chamado princípio da equidistribuição, que pode ser visto em detalhes em [HAW91], [SMT92], [BAI92], [NEI94] e [HUA94a]. Essa abordagem é um tema atual, e muitas das estratégias usadas ainda são empíricas e tratadas de modo heurístico. No caso de diferenças finitas não existem critérios matemáticos rigorosos para a distribuição dos nodos e para a análise da convergência de malhas móveis. O teorema de Lax não é aplicável nesse caso. São intensas as pesquisas para a solução r − adaptativa de EDPs em domínios 3D, dada a importância de construir esquemas em coordenadas generalizadas ou em malhas não estruturadas ([HUA94], [HUA97], [LIS98], [HUA99] e [CAS2000]). Uma alternativa viável para compatibilizar a construção de modelos 3D computacionalmente eficientes com a necessidade de alto refinamento é usar o método −h , definindo malhas refinadas localmente, como em [MOO92] e [ZEE93]. Essa foi a abordagem adotada neste trabalho. 3. 3.6.1 Refinamento local para o transporte: método-h O refinamento local é uma estratégia que permite que a malha seja concentrada em sub-regiões nas quais ocorrem maiores atividades. Nessas sub-regiões, pode-se obter soluções acuradas, sem o custo computacional de uma malha globalmente refinada. Porém, essa escolha tem as desvantagens de: 1. necessitar de uma estrutura de dados sofisticada, particularmente quando a estratégia de solução envolve o paralelismo em arquitetura de memória distribuída, como no caso deste trabalho; 2. exigir procedimentos de interpolação para obter as condições de contorno para as soluções locais, o que pode degradar essas soluções se esses procedimentos não forem adequados; 3. degradar a acurácia da solução global, que pode ser sensível à combinação “interpolação + soluções locais”. Para malhas regulares, como no caso deste trabalho, o refinamento local é obtido através de interpolações, definindo um subdomínio encaixado no domínio maior. Notese que essa escolha é possível, ou seja, pode-se construir duas malhas, uma para o escoamento e outra para o transporte de substância. Isso porque as EDPs desses fenômenos podem ser resolvidas de forma desacoplada, já que a variação na concentração do constituinte não causa variação na densidade da água, ou seja, não modifica o escoamento. Quando o gradiente de concentração é significativo nas equações de quantidade de movimento, os modelos devem ser resolvidos de modo acoplado ([SCE91], [ZHE95] e [ZHE99]). Quanto às desvantagens mencionadas, elas podem ser superadas, definindo estruturas de dados convenientes e processos de interpolação e de solução adequados 69 para obter as soluções locais. No caso deste trabalho as estruturas de dados, tanto para a malha da hidrodinâmica, quanto para a malha do transporte de substâncias, são semelhantes. Para a malha da hidrodinâmica, há um vetor de apontadores (pointers) para linhas de células (lista_linhas). As linhas do domínio da hidrodinâmica começam na linha 0, e o número da linha é o número da posição do vetor lista_linhas. Para acessar a quadrícula de linha lin e coluna col, a referência é feita através de (*(lista_linhas[lin]))[col]. Nas versões em que se emprega o método ADI (matrizes 3diagonal), é gerada uma matriz para cada linha, e as linhas começam em colunas variáveis, sendo a coluna inicial de cada linha dada pelo vetor lis_col_inic. No transporte, utiliza-se uma estrutura semelhante à da hidrodinâmica. Emprega-se um vetor de pointers para linhas refinadas com coluna inicial dada por um vetor lis_col_inic_t. A malha de transporte e a malha da hidrodinâmica têm a mesma origem, ou seja, a linha 0 da malha de transporte e de hidrodinâmica são coincidentes, permitindo que, a partir de uma linha em uma das malhas, seja possível calcular a linha da outra malha. O procedimento de montagem da malha da hidrodinâmica se inicia com a leitura, pelo processo 0, do arquivo com a descrição do domínio. Esse arquivo contém, para cada linha de cálculo do domínio, a coluna inicial, a coluna final e as condições de fronteira à esquerda e à direita. Contém também, para cada coluna de cálculo, as linhas inicial e final e as condições de fronteira superior e inferior. A partir dos dados desse arquivo, é gerada uma lista encadeada na qual cada nodo contém informações sobre uma linha de cálculo. Uma vez lido o arquivo de descrição, o processo 0 efetua o particionamento do domínio entre os processos e envia para cada um deles a descrição de seu subdomínio. Cada processo, recebendo esses dados, cria também uma lista de linhas de cálculo e uma lista de colunas de cálculo, que descrevem seu subdomínio. A partir dessa lista, cada processo aloca as linhas de seu subdomínio conforme a estrutura descrita acima. A criação da malha refinada do transporte de substâncias utiliza também uma lista de linhas de cálculo semelhante à utilizada na criação da malha da hidrodinâmica. Para a criação da lista de linhas de cálculo do transporte, a lista de linhas de cálculo da hidrodinâmica é percorrida, e as linhas que cobrem, mesmo que parcialmente, a área que será refinada, geram linhas de cálculo de transporte. Uma vez gerada a lista de linhas de cálculo do transporte, a malha refinada é alocada de modo semelhante à malha da hidrodinâmica. Após a alocação da malha, a mesma é inicializada. A concentração é zerada em toda a malha, e as velocidades em cada célula são calculadas por interpolação, a partir das células correspondentes na malha da hidrodinâmica. Durante a simulação, a cada ciclo de hidrodinâmica, é montado um sistema de equações que, resolvido, resulta nos novos valores da velocidade e/ou nível de cada célula. O procedimento que monta o sistema chama o resolvedor apropriado e, após resolvido o sistema, os valores das variáveis na malha do domínio são atualizados. Antes de iniciar o cálculo do transporte de substâncias, os valores das velocidades e nível nas células da malha refinada são obtidos por interpolação a partir das células correspondentes no domínio da hidrodinâmica. Após os valores de velocidade e nível serem atualizados, é gerado o sistema de equações para a resolução da concentração. O sistema é resolvido, e os valores da concentração resultantes são atualizados nas células. Após essa atualização, é verificado se o nível de concentração próximo a alguma das fronteiras atingiu um valor pré-determinado (10 nmp/l). No caso positivo o domínio refinado é aumentado próximo a essa fronteira, sendo alocada mais uma linha ou coluna naquela fronteira. Quanto aos processos de interpolação e solução, as estratégias para definir o refinamento-h decorrem do fato de que a solução das ESWs fornece os valores das 70 velocidades e dos níveis que são, em cada ponto da malha e em cada nível de tempo, dados de entrada da ETM. Então a construção da malha refinada deve considerar que a pluma de substâncias varia espaço-temporalmente. Uma alternativa de solução pode ser a de contemplar os seguintes procedimentos: resolver as ESW definidas em todo o domínio, obtendo as condições de contorno para o modelo encaixado; resolver as ESW refinadas localmente e obter os valores das velocidades e dos níveis que são dados de entrada da ETM; resolver a ETM no modelo encaixado. Porém essa estratégia exige que se resolvam dois PVIC, um global e outro local; o global fornece as CC para o local. A abordagem adotada neste trabalho, é utilizar a seguinte estratégia: 1. definir um PVIC global no qual as ESWs são resolvidas, fornecendo as velocidades e os níveis em cada ponto dessa malha; 2. definir um esquema de interpolação espacial para as velocidades e os níveis na malha refinada a partir dos obtidos na malha global; 3. resolver a ETM localmente a partir desses valores das velocidades e dos níveis. A solução para essa abordagem é considerar que as malhas localmente refinadas são construídas através de interpolações, observando que tanto a malha global quanto a malha local são do tipo Arakawa C equiespaçada. Nessa situação, empregaram-se fórmulas tipo Newton-Gregory [GER85] para definir as expressões de interpolação objetivando obter as malhas refinadas. Os algoritmos resultantes para as velocidades horizontais, usando interpolação linear, podem ser vistos em [RIZ2002a]. Porém, em função da estratégia desenvolvida para obter matrizes SDP (simétricas definidas-positivas), os algoritmos calculam os níveis de água η . As velocidades são recuperadas a partir do conhecimento desses níveis. Em seguida, calculam-se os valores da concentração em cada ponto da malha local. Nesse caso, o algoritmo para a interpolação linear, definida linha a linha, para a obtenção dos valores dos níveis de água η na malha refinada, ocorre conforme mostrado na fig. 3.16. 1. para j=1 até R faça 2. para i=1 até R faça 3. η(ni , j ) = ⎡(i − 1) ( 2R − 1) ⎤ Δη + ηL ⎣ ⎦ 4. fim i 5. fim j FIGURA 3.16 - Algoritmo para interpolação linear dos níveis Nesse algoritmo Δη = ηR − ηL é a diferença de nível na malha original, sendo, respectivamente, ηR e ηL os níveis da água à direita e à esquerda na célula original, e R , o refinamento adotado. O esquema de interpolação empregado é o bi-linear e é consistente com a formulação de diferenças finitas para a solução do escoamento a partir das velocidades obtidas nas interfaces da malha [ZHE95]. As soluções locais também necessitam de interpolação temporal, como discutido no anexo 1, pois os esquemas numéricos das ESW e a ETM têm passos de tempo diferentes. Se esses passos são denotados, respectivamente, por Δt H e ΔtT , então Δt H = k ΔtT , onde k é o fator de proporcionalidade entre os dois passos de tempo. Se R é o refinamento adotado, as malhas equiespaçadas determinam que os passos de tempo são relacionados pela expressão definida por Δt H = ΔtT R . Esses passos de tempo dependem dos limites impostos pelas aproximações construídas para cada EDP, 71 como tratado detalhadamente no anexo 1. A fig. 3.17 ilustra o transporte de substâncias na malha refinada encaixada na malha mais grosseira. FIGURA 3.17 - Transporte de substâncias pela ETM 3D, onde se destaca a malha refinada localmente a partir da malha da hidrodinâmica (ESW 3D) Em geral, a ETM necessita de uma malha local altamente refinada para capturar os detelhes do transporte e controlar as oscilações numéricas, dado que uma malha refinada reduz as oscilações numéricas controlando o número de Péclet, que é a métrica que determina como o transporte é dominado pela advecção. Assim, deve-se considerar a questão da acurácia do refinamento local, mas essa questão não foi analisada em detalhes neste trabalho. Deve-se analisar a acurácia do refinamento local, pois a conservatividade da massa pode requerer algoritmos de interpolação mais sofisticados como, por exemplo, a spline cúbica. Esses aspectos são objetivos de trabalhos futuros. A fig. 3.18 mostra as substâncias estão saindo do domínio computacional na fronteira outflow, mostrando que a concentração sai do domínio sem acumular-se na fronteira, como discutido na seção 3.4. FIGURA 3.18 - Seqüência de imagens mostrando as substâncias saindo do domínio na fronteira outflow devido a CC gradiente nulo Na fig. 3.18 mostra-se uma seqüência de imagens ilustrando as substâncias saído do domínio computacional. Essa solução foi obtida com um esquema numérico UMIST usando um campo de velocidades com um número de Courant constante e igual a Cr = 0, 40 . A última imagem dessa ilustração foi obtida com uma simulação executando-se, aproximadamente, 21000 ciclos do algoritmo do gradiente conjugado. 72 4 Modelos na forma discreta Na definição da discretização horizontal e vertical, considerou-se que a malha definida é a Arakawa C na horizontal e a malha coordenada −z na vertical, conforme ilustrado pelas fig. 3.5 e 3.6. Com essa escolha, e conforme a definição dos valores nodais e das variáveis dependentes apresentadas na seção 3.3, as componentes u , v e w das velocidades são posicionadas nas localizações (i + 1 2 , j,k ) , (i, j + 1 2 ,k ) e (i, j,k + 12 ) . Os níveis localização (i , j , k ) . de água η e as concentrações S são posicionados na n n A malha 3D consiste de células definidas por Δx , Δy, Δzk , onde Δzk denota ( ) que o espaçamento vertical depende da posição da camada k − ésima em relação à superfície livre, e que pode variar no nível de tempo t n . Assim, se as alturas das faces da célula não são completamente formadas de água, como no caso das células adjacentes ao leito e/ou da superfície livre, tomam-se como espaçamento vertical as alturas da coluna de água nessas faces, conforme discutido na seção 3.2.1. Se os espaçamentos nas direções X , Y são Δx e Δy , as alturas das faces na k − ésima camada onde u = u(i + 1 , j ,k ) e v = v (i , j + 1 ,k ) estão posicionadas são Δz (ni + 1 , j ,k ) e 2 2 2 n Δz (i , j + 1 ,k ) . O índice n sobrescrito nos espaçamentos verticais indica que a altura da 2 camada da superfície depende do nível de água, que pode variar no tempo e no espaço, n n mostrando que Δz também varia no tempo, isto é, Δz k =M = Δz M + η(n, j ) . Suas alturas i médias são definidas como: Δz(ni + 1 , j ,k + 1 ) = 0, 5 Δz(ni + 1 , j ,k +1) + Δz(ni + 1 , j ,k ) e Δz (ni , j + 1 ,k + 1 ) = 0, 5 Δz(ni , j + 1 ,k +1) + Δz(ni , j + 1 ,k ) 2 2 2 2 2 2 2 2 Além disso, m = m(i + 1 2 , j ,k ( ) ( ) ) e m = m(i , j + 1 ,k ) denotam os k − índices da camada 2 2 , j ,k inferior (interface água-sedimento); M = M (i + 1 e M = M (i , j + 1 ,k ) denotam os 2 k − índices da camada superior (interface água-superfície livre), nas direções X e Y , respectivamente, onde m varia espacialmente; e M = M n indicando que também varia espacial e temporalmente. ) 4.1 ESW 3D na forma discreta As EDPs (2.1) e (2.2) são as equações da conservação da quantidade do movimento nas direções X e Y respectivamente, denotadas por EMCMx e EMCMy. As EDPs (2.3) e (2.4) são as equações da conservação da massa e da conservação da massa integrada verticalmente, denotadas por ECM e ECMIV, respectivamente. Essas EDPs, com as condições de contorno e condições iniciais apropriadas, formam um PVIC bem posto. Seguindo a abordagem desenvolvida por Casulli [CAS90], [CAS92], [CAS94], [CAS97] e [CAS2000], discretizam-se implicitamente os termos do gradiente de elevação da superfície livre e da difusão vertical nas ECQMs. Os termos advectivos, de difusão horizontal e da força de Coriolis são discretizados explicitamente, e a ECM e a ECMIV são discretizadas implicitamente. Com essas escolhas, e considerando o método −θ para melhorar o grau de implicidade da componente vertical da velocidade e dos gradientes de elevação da superfície, resulta que essas EDPs são escritas na forma discreta como: 73 ⎛ ∂u ⎞ ⎛ ∂u ⎞ ⎛ ∂u ⎞ ⎛ ∂u ⎞ ⎛ ∂η ⎞ + ⎜u + ⎜v + ⎜w =−⎜g + ⎟ ⎜ ⎟ ⎟ ⎟ ⎟ ⎝ ∂t ⎠(i + 12, j ,k ) ⎝ ∂x ⎠(i + 12, j ,k ) ⎝ ∂y ⎠(i + 12, j ,k ) ⎝ ∂z ⎠(i + 12, j ,k ) ⎝ ∂x ⎠(i + 12, j ) ⎛ ∂ 2u ∂ 2u ⎞ ⎡∂ + vh ⎜ 2 + 2 ⎟ +⎢ ∂y ⎠(i + 1 , j ,k ) ⎣ ∂z ⎝ ∂x 2 n +1 n n n n ⎛ ∂u ⎞ ⎤ + ( Φv )(i + 1 , j ,k ) ⎜ vv ⎟⎥ 2 ⎝ ∂z ⎠ ⎦ (i + 12, j ,k ) n +1 n +1 n n n n +θ ⎛ ∂v ⎞ ⎛ ∂η ⎞ ⎛ ∂v ⎞ ⎛ ∂v ⎞ ⎛ ∂v ⎞ + ⎜u + ⎜v + ⎜w = −⎜g + ⎟ ⎟ ⎜ ⎟ ⎟ ⎟ ⎝ ∂t ⎠(i , j + 12,k ) ⎝ ∂x ⎠(i , j + 12,k ) ⎝ ∂y ⎠(i , j + 12,k ) ⎝ ∂z ⎠(i , j + 12,k ) ⎝ ∂y ⎠(i , j + 12) ⎛ ∂ 2v ∂ 2v ⎞ ⎡∂ n ⎛ ∂v ⎞ ⎤ + vh ⎜ 2 + 2 ⎟ + ⎢ vv ⎜ − ( Φu )(i , j + 1 ,k ) ⎟⎥ 2 ∂y ⎠(i , j + 1 ,k ) ⎣ ∂z ⎝ ∂z ⎠ ⎦ (i , j + 12,k ) ⎝ ∂x 2 n n +1 n n +θ ⎛ ∂v ⎞ ⎛ ∂u ⎞ ⎛ ∂w ⎞ +⎜ +⎜ =0 ⎟ ⎜ ⎟ ⎟ ⎝ ∂x ⎠(i , j ,k ) ⎝ ∂y ⎠(i , j ,k ) ⎝ ∂z ⎠(i , j ,k ) n +θ ⎡ ∂ ⎛ ∂η ⎞ ⎜ ⎟ +⎢ ⎝ ∂t ⎠ ( i , j ) ⎢ ∂x ⎣ n +θ n +θ n +θ ⎛ ⎜ ⎜ ⎝ ∫ ⎡ ∂ ⎛ ⎞⎤ udz ⎟ ⎥ +⎢ ⎜ ⎟⎥ ⎜ −h ⎠ ⎦ (i , j ,k ) ⎢ ∂y ⎝ ⎣ η n +θ ∫ ⎞⎤ vdz ⎟ ⎥ =0 ⎟⎥ −h ⎠ ⎦ (i , j ,k ) η n +θ Portanto, uma discretização em diferenças finitas para a ECQMx é como: 1. + n +1 u(ni +1 , j ,k ) − u(ni + 1 , j ,k ) 1 ⎛ ∂u ⎞ 2 2 ≈ ; o termo de avanço no tempo é ⎜ ⎟ ∂t ⎠(i + 12, j ,k ) Δt ⎝ 2. ⎛ ∂u ⎞ ⎛ ∂u ⎞ ⎛ ∂u ⎞ é discretizado o termo advectivo ⎜ u + ⎜v + ⎜w ⎟ ⎟ ⎟ ⎝ ∂x ⎠(i + 12, j ,k ) ⎝ ∂y ⎠(i + 12, j ,k ) ⎝ ∂z ⎠(i + 12, j ,k ) explicitamente e agregado a um operador explícito FU (n + 1 , j ,k ) ; i 2 n n n 3. o gradiente de elevação da superfície é discretizado implicitamente como +1 +1 n +θ θ η(ni +1, j ) − η(ni ,+j1) + (1 − θ ) η(ni +1, j ) − η(ni ,+j1) ⎛ ∂η ⎞ ; ≈g ⎜g ⎟ Δx ⎝ ∂x ⎠(i + 12, j ,k ) ( ) ( ) 4. ⎛ ∂ 2u ∂ 2u ⎞ o termo de difusão horizontal v h ⎜ 2 + é discretizado explicitamente ⎟ ∂y 2 ⎠(i + 1 , j ,k ) ⎝ ∂x 2 e agregado ao operador explícito FU (n + 1 , j ,k ) ; i 2 o termo Coriolis ( Φ v )(i + 1 , j ,k ) ≈ Φv (i + 12, j ,k ) é discretizado explicitamente e agregado n 2 n 5. n ao operador FU 6. n (i + 12, j ,k ) ; no termo da difusão vertical considera-se que a CC na superfície livre (superior), é dada pelo atrito do vento na água, e a CC inferior é definida em termos do coeficiente de Chezy. Com isso, tem-se: 74 + + u(ni +1 , j ,M +1) − u(ni +1 , j ,M ) def v v (ni ,+j1+ 1 ,M +1) − v (ni ,+j1+ 1 ,M ) def v 1 1 2 2 2 2 = τ x , vv ( i , j + 12, M + 1 2 ) v v ( i + 12 , j , M + 1 2 ) = τy n n Δz (i + 1 , j ,M + 1 ) Δz (i , j + 1 ,M + 1 ) 2 2 2 2 + + u(ni +1 , j ,m ) − u(ni +1 , j ,m −1) def s v (ni ,+j1+ 1 ,m ) − v (ni ,+j1+ 1 ,m −1) def s 1 1 2 2 2 2 = τ x , vv (i , j + 12,m − 12) vv (i + 12, j ,m − 12) = τy Δz (ni , j + 1 ,m − 1 ) Δz (ni + 1 , j ,m − 1 ) 2 2 2 2 onde τ , τ v x s x eτ ,τ v y s y são, respectivamente, as condições de contorno superior e + inferior nas direções X e Y. Note-se que os valores de u(n +1 , j ,M +1) , v (n ,+j1+ 1 ,M +1) , i 12 i 2 + u(ni +1 , j ,m −1) e v (ni ,+j1+ 1 ,m −1) são fictícios e surgem para k = M e k = m . Esses termos 1 2 2 são substituídos pelas CC e não aparecem nas expressões finais em diferenças finitas. ⎡ ∂ ⎛ ∂u ⎞ ⎤ Assim, na discretização do termo de advecção vertical ⎢ ⎜ vv ⎟⎥ ⎣ ∂z ⎝ ∂z ⎠ ⎦ (i +12, j ,k ) • tomam-se as k − ésimas camadas horizontais como: k = M , que indica a camada superior, discretizada como: n +1 vv (i + 12, j ,M + 12 ) + + u(ni +1 , j ,M +1) − u(ni +1 , j ,M ) 1 1 2 2 Δz (ni + 1 , j ,M + 1 ) 2 2 + + u(ni +1 , j ,M ) − u(ni +1 , j ,M −1) CC superior 1 1 2 2 − v v ( i + 12 , j , M − 1 2 ) = n Δz ( i + 1 , j , M − 1 ) 2 2 (τ )( • v n x i + 1 , j ,M + 1 2 2) − vv ( i + 1 2 , j , M − 1 2 ) u n +1 (i + 12, j ,M ) −u 2 n +1 (i + 12, j ,M −1) 2 Δz (ni + 1 , j ,M − 1 ) m < k < M , que denota as camadas interiores, onde a advecção é como: + + + + u(ni +1 , j ,k +1) − u(ni +1 , j ,k ) u(ni +1 , j ,k ) − u(ni +1 , j ,k −1) 1 1 1 1 2 2 2 2 vv (i + 12, j ,k + 12) − vv (i + 12, j ,k − 12) n n Δz (i + 1 , j ,k + 1 ) Δz (i + 1 , j ,k − 1 ) 2 2 2 2 • k = m , que indica a camada inferior, onde a advecção discreta é como: vv (i + 12, j ,m + 12) vv (i + 12, j ,m + 12) + + u(ni +1 , j ,m +1) − u(ni +1 , j ,m ) 1 1 2 2 Δz (ni + 1 , j ,m + 1 ) 2 2 + + u(ni +1 , j ,m ) − u(ni +1 , j ,m −1) CC inferior 1 1 2 2 − vv (i + 12, j ,m − 12) = n Δz (i + 1 , j ,m − 1 ) 2 2 u n +1 (i + 12, j ,m +1) −u n +1 (i + 12, j ,m ) Δz n (i + 12, j ,m + 12 ) s − (τ x ) n (i + 12, j ,m ) + u(ni +1 , j ,m ) 1 2 Portanto, uma discretização para ECQMx, que fornece a componente u da velocidade horizontal, é escrita para a k − ésima camada, com m ≤ k ≤ M , como: + u(ni +1 , j ,k ) = FU (n + 1 , j ,k ) − g 1 i 2 2 Δt ⎡ ⎫ +1 θ η(ni +1, j ) − η(ni ,+j1) + (1 − θ ) η(ni +1, j ) − η(ni , j ) ⎤ + ⎪ ⎦ Δx ⎣ ⎪ + + + + u(ni +1 , j ,k +1) − u(ni +1 , j ,k ) u(ni +1 , j ,k ) − u(ni +1 , j ,k −1) ⎪ 4.1 1 1 1 1 2 2 2 2 ) ⎬( − vv (i + 12, j ,k − 12) vv (i + 12, j ,k + 12) ⎪ Δz (ni + 1 , j ,k + 1 ) Δz (ni + 1 , j ,k − 1 ) 2 2 2 2 ⎪ + Δz (ni + 1 , j ,k ) ⎪ 2 ⎭ ( ) ( ) Analogamente, considerando todas as notações e definições anteriores, a discretização em diferenças finitas para a ECQMy é como: 75 1. n +1 v (ni ,+j1+ 1 ,k ) − v (ni , j + 1 ,k ) ⎛ ∂v ⎞ 2 2 ≈ ; ⎜ ⎟ ∂t ⎠(i , j + 12,k ) Δt ⎝ 2. ⎛ ∂v ⎞ ⎛ ∂v ⎞ ⎛ ∂v ⎞ é agregado a FV(n, j + 1 ,k ) ; + ⎜v + ⎜w ⎟ ⎜u ⎟ ⎟ i 2 ⎝ ∂x ⎠(i , j + 12,k ) ⎝ ∂y ⎠(i , j + 12,k ) ⎝ ∂z ⎠(i , j + 12,k ) n +θ θ η(ni ,+j1+1) − η(ni ,+j1) + (1 − θ ) η(ni ,+j1+1) − η(ni ,+j1) ⎛ ∂η ⎞ ; ≈g ⎜g ⎟ Δy ⎝ ∂y ⎠(i , j + 12) n n n 3. ( ) ( ) 4. 5. 6. ⎛ ∂ 2v ∂ 2v ⎞ é agregado a um operador explícito FV(n, j + 1 ,k ) ; vh ⎜ 2 + 2 ⎟ i 2 ∂x ∂y ⎠(i , j + 1 ,k ) ⎝ 2 n ( Φu )(i , j ,k ) ≈ Φu (i , j + n n 1 2,k ) é agregado ao operador FV(n, j + 1 ,k ) ; i 2 a aproximação para a difusão vertical ⎢ ⎡ ∂ ⎛ ∂v ⎞ ⎤ considera: ⎜ vv ⎟⎥ ⎣ ∂z ⎝ ∂z ⎠ ⎦ (i , j + 12,k ) n +1 • k = M , a camada superior, que se discretiza como: v v ( i , j + 1 2, M + 12 ) v (ni ,+j1+ 1 ,M +1) − v (ni ,+j1+ 1 ,M ) 2 2 Δz (ni , j + 1 ,M + 1 ) 2 2 v (ni ,+j1+ 1 ,M ) − v (ni ,+j1+ 1 ,M −1) CC superior 2 2 − vv ( i , j + 1 2, M − 1 2 ) = n Δz ( i , j + 1 , M − 1 ) 2 2 (τ yv ) i , j + n ( 1 2 ,M + 12 ) − v v ( i , j + 1 2, M − 12 ) v n +1 ( i , j + 12 ,M ) −v 2 n +1 (i , j + 12,M −1) 2 Δz (ni , j + 1 ,M − 1 ) • m < k < M , as camadas interiores, onde a advecção vertical é como: v (ni ,+j1+ 1 ,k +1) − v (ni ,+j1+ 1 ,k ) v (ni ,+j1+ 1 ,k ) − v (ni ,+j1+ 1 ,k −1) 2 2 2 2 vv (i , j + 12,k + 12) − vv (i , j + 12,k − 12) n n Δz (i , j + 1 ,k + 1 ) Δz (i , j + 1 ,k − 1 ) 2 2 2 2 • k = m , a camada inferior, onde se toma a advecção vertical como: vv (i , j + 12,m + 12) vv (i , j + 12,m + 12) v (ni ,+j1+ 1 ,m +1) − v (ni ,+j1+ 1 ,m ) 2 2 Δz (ni , j + 1 ,m + 1 ) 2 2 v (ni ,+j1+ 1 ,m ) − v (ni ,+j1+ 1 ,m −1) CC inferior 2 2 − vv (i , j + 12,m − 12) = n Δz (i , j + 1 ,m − 1 ) 2 2 v n +1 (i , j + 12,m +1) −v n +1 (i , j + 12,m ) Δz n (i , j + 12,m + 12 ) s − (τ y ) n v (i , j + 12,m ) (i , j + 12,m ) da n +1 Portanto, a discretização para ECQMy, que fornece a componente v velocidade horizontal, é escrita para a k − ésima camada, com m ≤ k ≤ M , como: v (ni ,+j1+ 1 ,k ) = FV(n, j + 1 ,k ) − g i 2 ⎫ ⎪ 2 ⎪ v (ni ,+j1+ 1 ,k +1) − v (ni ,+j1+ 1 ,k ) v (ni ,+j1+ 1 ,k ) − v (ni ,+j1+ 1 ,k −1) ⎪ ( 4.2) ⎬ 2 2 2 2 vv (i , j + 12,k + 12) − vv (i , j + 12,k − 12) ⎪ Δz (ni , j + 1 ,k + 1 ) Δz (ni , j + 1 ,k − 1 ) 2 2 2 2 ⎪ + ⎪ Δz (ni , j + 1 ,k ) 2 ⎭ Δt ⎡ θ η(ni ,+j1+1) − η(ni ,+j1) + (1 − θ ) η(ni , j +1) − η(ni , j ) ⎤ + ⎦ Δy ⎣ ( ) ( ) 76 A discretização em diferenças finitas para a ECM integrada verticalmente é: 1. n +1 η(ni ,+j1) − η(ni , j ) ⎛ ∂η ⎞ ⎜ ⎟ ≈ Δt ⎝ ∂t ⎠(i , j ) n +θ 2. ∂ ⎛ ⎜ ∂x ⎜ ⎝ ∫ ⎞ udz ⎟ ≈ ⎝ ⎟ −h ⎠(i , j ,k ) + η θ⎜ ⎛ ∑ ⎛ ⎝ M k =m + u(ni +1 , j ,k ) Δz (ni + 1 , j ,k ) − 1 2 2 ∑ Δx ⎞ + u(ni −1 , j ,k ) Δz (ni − 1 , j ,k ) ⎟ 1 2 2 k =m ⎠+ M (1 − θ ) ⎜ θ⎜ ⎛ ∑ M k =m u(ni + 1 , j ,k ) Δz (ni + 1 , j ,k ) − 2 2 ∑ ⎞ u(ni − 1 , j ,k ) Δz (ni − 1 , j ,k ) ⎟ 2 2 k =m ⎠ M 3. ∂ ⎛ ⎜ ∂y ⎜ ⎝ ∫ ⎞ vdz ⎟ ≈ ⎝ ⎟ −h ⎠(i , j ,k ) η n +θ ∑ Δx M k =m v (ni ,+j1+ 1 ,k ) Δz (ni , j + 1 ,k ) − 2 2 ∑ − Δy ⎞ v (ni ,+j1− 1 ,k ) Δz (ni , j − 1 ,k ) ⎟ 2 2 k =m ⎠+ M ⎛ (1 − θ ) ⎜ ⎝ + ∑ M k =m v n (i , j + 12,k ) Δz n (i , j + 12,k ) ∑ ⎞ v (ni , j − 1 ,k ) Δz (ni , j − 1 ,k ) ⎟ 2 2 k =m ⎠ M Δy Assim, a EDP da continuidade integrada verticalmente, que é responsável pela integração entre as camadas de água, é aproximada como: η(ni ,+j1) = η(ni ,+j1) − − Δt ⎛ θ⎜ Δx ⎝ Δt ⎛ ⎜ Δy ⎝ ⎛ Δt − (1 − ⎜ Δx ⎝ Δt ⎛ − (1 − ⎜ Δy ⎝ ∑ θ ∑ θ) ∑ θ) ∑ M k =m M k =m + u(ni +1 , j ,k ) Δz (ni + 1 , j ,k ) − 1 2 2 v (ni ,+j1+ 1 ,k ) Δz (ni , j + 1 ,k ) − 2 2 M k =m M u(ni + 1 , j ,k ) Δz (ni + 1 , j ,k ) − 2 2 k =m v (ni , j + 1 ,k ) Δz (ni , j + 1 ,k ) − 2 2 ∑ ∑ ∑ ∑ ⎞⎫ + u(ni −1 , j ,k ) Δz (ni − 1 , j ,k ) ⎟ ⎪ 1 2 2 k =m ⎠⎪ M ⎞⎪ v (ni ,+j1− 1 ,k ) Δz (ni , j − 1 ,k ) ⎟ ⎪ 2 2 k =m ⎠⎪ ⎬ ( 4.3 ) M ⎞⎪ u(ni − 1 , j ,k ) Δz (ni − 1 , j ,k ) ⎟ 2 2 k =m ⎠⎪ ⎪ M ⎞⎪ v (ni , j − 1 ,k ) Δz (ni , j − 1 ,k ) ⎟ ⎪ 2 2 k =m ⎠⎭ M A discretização em diferenças finitas para a ECM também considera essas notações e definições, e é da seguinte forma: 1. + + n +θ θ u(ni +12, j ,k ) − u(ni −12, j ,k ) + (1 − θ ) u(ni + 12, j ,k ) − u(ni − 12, j ,k ) 1 1 ⎛ ∂u ⎞ ≈ ⎜ ⎟ Δx ⎝ ∂x ⎠(i , j ,k ) ( ) ( ) 2. n +θ θ v (ni ,+j1+ 12,k ) − v (ni ,+j1− 12,k ) + (1 − θ ) v (ni , j + 12,k ) − v (ni , j − 12,k ) ⎛ ∂u ⎞ ≈ ⎜ ⎟ Δy ⎝ ∂y ⎠(i , j ,k ) ( ) ( ) ) 3. n +θ θ w(ni ,+j1,k + 12) − w(ni ,+j1,k − 12) + (1 − θ ) w(ni , j ,k + 12) − w(ni , j ,k − 12) ⎛ ∂w ⎞ ≈ ⎜ ⎟ Δz (ni , j ,k ) ⎝ ∂z ⎠(i , j ,k ) ( ) ( e, portanto, a aproximação para a equação da continuidade, que fornece as velocidades verticais, é como: 77 w n +θ (i , j ,k + 1 2 ) =w n +θ (i , j ,k − 1 2 ) ( u( − ( + Δz (ni + 1 2 , j ,k ) − u(ni −θ2, j ,k ) Δz (ni − 1 2 , j ,k ) ⎫ 1 ⎪ ⎪ Δx ⎬ ( 4.4 ) v (ni ,+jθ+ 1 2 ,k ) Δz (ni , j + 1 2 ,k ) − v (ni ,+jθ− 1 2,k ) Δz (ni , j − 1 2,k ) ⎪ − ⎪ Δy ⎪ ⎭ n +θ i + 1 2 , j ,k ) ) ) onde m ≤ k ≤ M , sendo que a CC na interface água-sedimento é, impondo a condição que não há escoamento, tal que w(n ,+jθ,k − 1 ) ≡ 0 . A velocidade na interface águai 2 superfície livre é, neste trabalho, tal que w n +θ (i , j ,k + 12 ) ≡0 . Note-se que, nas expressões anteriores, alguns dos valores das variáveis dependentes são obtidos empregando o método −θ , sendo, portanto, dadas por ϕ n +θ = θϕ n +1 + (1 − θ ) ϕ n , com 0 < θ ≤ 1 . Também as alturas das faces são tais que, em geral, tem-se Δz (n + 1 , j ,k ) = Δz (n , j + 1 ,k ) = Δz (n , j ,k ) , exceto nas faces verticais que interceptam i i 2 i 2 a batimetria na camada inferior e/ou cruzam a superfície livre. Nesse caso, as alturas dessas células são dadas pela altura da água. + Como o cálculo dos valores das velocidades horizontais u (ni +1 , j ,k ) e v (ni ,+j1+ 1 ,k ) é 1 2 2 dependente dos valores dos níveis de água η(n ,+j1) nos algoritmos anteriormente obtidos, i deve-se resolver as expressões (4.1)-(4.3) de forma acoplada. Essa escolha acaba gerando sistemas de equações com N x N y ( 2N z +1) equações, nos quais N x , N y e N z são, respectivamente, o número efetivo de células nas três direções coordenadas, conforme definido na seção 3.3. Porém, dado o porte desse sistema de equações, que deve ser resolvido para cada passo de tempo, essa abordagem é inconveniente. Para contornar esse problema, emprega-se a estratégia desenvolvida por Casulli em [CAS90], e faz-se a decomposição do sistema de equações (4.1)-(4.3) em um conjunto de 2N x N y sistemas 3-diagonal, cada qual com N z equações, e um sistema tipo 5-diagonal de N x N y equações. Para efetivar esse procedimento, as EDPs (4.1) a (4.3) (as ECQMx, ECQMy e a ECMIV) são escritas na forma matricial como [CAS92] e [CAS94]: + U (n + 1 , j ) = A(n + 1 , j ) i 1 i 2 2 ( ) −1 Δt ⎡ ⎧ n ⎫ +1 θ η(ni +1, j ) − η(ni ,+j1) ⎤ ΔZ (n + 12, j ) ⎬ ( 4.5 ) ⎨ G ( i + 12 , j ) − g i ⎦ Δx ⎣ ⎩ ⎭ ( ) V(n, +1 1 ) = A(n, j + 1 ) i j+ i 2 2 ( ) −1 ⎧ n ⎫ Δt ⎡ θ η(ni ,+j1+1) − η(ni ,+j1) ⎤ ΔZ (ni , j + 12) ⎬ ( 4.6 ) ⎨G (i , j + 12) − g ⎦ Δy ⎣ ⎩ ⎭ ( ) e η(ni ,+j1) = − T T Δt ⎫ (1 − θ ) ⎡ ΔZ (ni + 12, j ) U (ni + 12, j ) − ΔZ (ni − 12, j ) U (ni − 12, j ) ⎤ ⎪ ⎢ ⎥ Δx ⎣ ⎦ ⎪ T T Δt ⎪ ⎡ ΔZ n ⎤ n n n − (1 − θ ) ⎢ (i , j + 12) V(i , j + 12) − ΔZ (i , j − 12) V(i , j − 12) ⎥ ⎪ Δy ⎣ ⎦ ⎪ ⎬ ( 4.7 ) T T Δt ⎡ ⎤ n n +1 n n +1 ⎪ θ ΔZ ( i + 1 2 , j ) U ( i + 1 2 , j ) − Δ Z ( i − 1 2 , j ) U ( i − 12 , j ) ⎥ − ⎪ Δx ⎢ ⎣ ⎦ ⎪ T T Δt ⎡ ⎤ n n +1 n n +1 n θ ΔZ (i , j + 12) V(i , j + 12) − ΔZ (i , j − 12) V(i , j − 12) ⎥ + η(i , j ) ⎪ − ⎪ Δy ⎢ ⎣ ⎦ ⎭ ( ) ( ) ( ( ) ) ( ( ) ) ( ( ) ) 78 n +1 n n sendo que, em (4.5)-(4.7), U (i + 1 , j ) , V(n,+1 1 ) , ΔZ (i + 1 , j ) e ΔZ (i , j + 1 ) são os vetores das i j+ 2 2 2 2 componentes u n +1 e v n +1 , e dos espaçamentos verticais nessas direções, respectivamente. Esses vetores têm a dimensão 1≤ k ≤ N z e são escritos como: + ⎡ u(ni +1 , j ,M ) ⎤ ⎡ v (ni ,+j1+ 1 ,M ) ⎤ 1 2 ⎢ n +1 ⎥ ⎢ n +1 2 ⎥ ⎢u(i + 12, j ,M −1) ⎥ ⎢v (i , j + 12,M −1) ⎥ ⎢ ⎥ ⎢ ⎥ + n +1 U (n +1 , j ) = ⎢ M M ⎥ , V (i , j + 12 ) = ⎢ ⎥, i 12 ⎢ u n +1 ⎥ ⎢v n +1 ⎥ ⎢ (i + 12, j ,m +1) ⎥ ⎢ (i , j + 12,m +1) ⎥ ⎢ u n +1 ⎥ ⎢ v n +1 ⎥ ⎢ (i , j + 12,m ) ⎥ ⎢ ⎥ ⎣ ⎦ ⎣ (i + 12, j ,m ) ⎦ ⎡ Δz (ni + 1 , j ,M ) ⎤ ⎡ Δz (ni , j + 1 ,M ) ⎤ 2 2 ⎢ ⎥ ⎢ ⎥ ⎢ Δz (i + 12, j ,M −1) ⎥ ⎢ Δz (i , j + 12,M −1) ⎥ ⎢ ⎥ ⎢ ⎥ n ΔZ (n + 1 , j ,k ) = ⎢ M M ⎥ e ΔZ (i , j + 12,k ) = ⎢ ⎥ i 2 ⎢ Δz ⎥ ⎢ Δz ⎥ ⎢ (i + 12, j ,m +1) ⎥ ⎢ (i , j + 12,m +1) ⎥ ⎢ Δz ⎥ ⎢ Δz ⎥ (i + 12, j ,m ) ⎦ (i , j + 12,m ) ⎥ ⎢ ⎥ ⎢ ⎣ ⎣ ⎦ Já os vetores G (n + 1 , j ) e G (n, j + 1 ) , que são expressões como em (4.8) e (4.9), i i 2 2 agregam os operadores explícitos que são escritos da seguinte forma: FU n (i + 12, j ,k ) =u n (i + 12, j ,k ) ⎛ ∂u ⎞ ⎛ ∂u ⎞ ⎛ ∂u ⎞ + ⎜u + ⎜v + ⎜w + ⎟ ⎟ ⎟ ⎝ ∂x ⎠(i + 12, j ,k ) ⎝ ∂y ⎠(i + 12, j ,k ) ⎝ ∂z ⎠(i + 12, j ,k ) n n n n n ⎛ ∂ 2u ∂ 2u ⎞ + vh ⎜ 2 + 2 ⎟ + Φv (i + 12, j ,k ) ∂y ⎠(i + 1 , j ,k ) ⎝ ∂x 2 FV n (i , j + 12,k ) =v n (i , j + 12,k ) ⎛ ∂v ⎞ ⎛ ∂v ⎞ ⎛ ∂v ⎞ + ⎜u + ⎜v + ⎜w + ⎟ ⎟ ⎟ ⎝ ∂x ⎠(i , j + 12,k ) ⎝ ∂y ⎠(i , j + 12,k ) ⎝ ∂z ⎠(i , j + 12,k ) n n n n n ⎛ ∂ 2v ∂ 2v ⎞ + vh ⎜ 2 + 2 ⎟ − Φu (i , j + 12,k ) ∂y ⎠(i , j + 1 ,k ) ⎝ ∂x 2 nos quais m ≤ k ≤ M são índices para a k − ésima camada, que varia de m = 1 até m = Nz . ⎡ n Δt ⎡ ⎤ n n n v ⎤ ⎢ Δz (i + 12, j ,M ) ⎢FU (i + 12, j ,M ) − g Δx (1 − θ ) η(i +1, j ) − η(i +1, j ) ⎥ + Δtτ x ⎥ ⎣ ⎦ ⎢ ⎥ ⎢ ⎥ Δt ⎡ ⎤ n (1 − θ ) η(ni +1, j ) − η(ni +1, j ) ⎥ ⎢ Δz (i + 12, j ,M −1) ⎢FU (i + 12, j ,M −1) − g ⎥ Δx ⎣ ⎦ ⎢ ⎥ ⎥ ( 4.8 ) G (n + 1 , j ) = ⎢ M i 2 ⎢ ⎥ Δt ⎡ ⎤ n n n ⎢ Δz ⎥ FU (i + 1 , j ,m +1) − g (1 − θ ) η(i +1, j ) − η(i +1, j ) ⎥ 2 ⎢ (i + 12, j ,m +1) ⎢ ⎥ Δx ⎣ ⎦ ⎢ ⎥ Δt ⎡ ⎤ ⎢ ⎥ n n n ⎢ ⎥ ⎢ Δz (i + 12, j ,m ) ⎣FU (i + 12, j ,m ) − g Δx (1 − θ ) η(i +1, j ) − η(i +1, j ) ⎦ ⎥ ⎢ ⎥ ⎣ ⎦ ( ) ( ) ( ) ( ) 79 e ⎡ n ⎤ ⎡ ⎤ Δt n v (1 − θ ) η(ni , j +1) − η(ni +1, j ) ⎥ + Δtτ y ⎥ ⎢ Δz (i , j + 12,M ) ⎢ FV (i , j + 12,M ) − g Δy ⎣ ⎦ ⎢ ⎥ ⎢ ⎥ ⎡ ⎤ Δt ⎢ Δ z i , j + 1 ,M −1 ⎢ FV n, j + 1 ,M −1 − g (1 − θ ) η(ni , j +1) − η(ni +1, j ) ⎥ ⎥ ) (i ) 2 2 Δy ⎢ ( ⎥ ⎣ ⎦ ⎢ ⎥ n G (i , j + 1 ) = ⎢ M ⎥ 2 ⎢ ⎥ ⎡ ⎤ Δt ⎢ Δz (i , j + 1 ,m +1) ⎢ FV (n, j + 1 ,m +1) − g ⎥ (1 − θ ) η(ni , j +1) − η(ni +1, j ) ⎥ i 2 2 Δy ⎢ ⎥ ⎣ ⎦ ⎢ ⎥ ⎡ ⎤ Δt n n n ⎢ Δz ⎥ FV −g (1 − θ ) η(i , j +1) − η(i +1, j ) ⎥ ⎢ (i , j + 12,m ) ⎢ (i , j + 12,m ) ⎥ Δy ⎢ ⎥ ⎣ ⎦ ⎣ ⎦ ( ) ( ) ( 4.9 ) ( ) ( ) e as matrizes A(n+ 1 , j ) e A(n, j + 1 ) em (4.5)-(4.7) são escritas como: i 2 i 2 n ⎡ΔzM + aM − 12 ⎤ 0 −aM − 12 L ⎢ ⎥ ΔzM −1 + aM − 12 + aM −32 −aM −32 L ⎢ −aM − 12 ⎥ A(n+ 1 , j ) = ⎢ ⎥ ( 4.10) i 2 O O O O ⎢ ⎥ s⎥ ⎢ 0 L −am + 12 Δzm + am + 12 + Δtτ x ⎦ ⎣ e n ⎡ Δz M + aM − 12 ⎢ ⎢ −aM − 12 A(n, j + 1 ) = ⎢ i 2 O ⎢ ⎢ 0 ⎣ −aM − 12 Δz M −1 + aM − 12 + aM − 3 2 O L L −aM − 3 2 −am + 12 O ⎤ ⎥ L ⎥ ⎥ ( 4.11) O ⎥ s Δzm + am + 12 + Δtτ y ⎥ ⎦ 0 1 2,k + 2 n onde ak = vv Δt Δzk em (4.10) e (4.11) em que, ou se tem vv = vv (i , j + 1 ) ou vv = vv (i + 12, j ,k + 12) que são os coeficientes de viscosidade cinemática turbulenta vertical, n e ou Δz k = Δz (ni , j + 1 1 2,k + 2 ) ou Δz k = Δz (i , j + 12,k + 12 ) , respectivamente. n n A substituição formal de (4.5) e (4.6) em (4.7) gera uma expressão em que os níveis são as únicas incógnitas a calcular. Essa expressão é escrito como: η(ni ,+j1 − g ⎜ ) ⎫ ⎪ ⎪ 2 ⎪ ⎛ Δt ⎞ 2 ⎡ T n +1 ⎪ −g⎜ θ ΔV η(i , j +1) − η(ni ,+j1 − ΔV T η(ni ,+j1 − η(ni ,+j1−1) ⎤ ⎬ ( 4.12) ⎟ ) ) ⎣ ⎦ ⎝ Δy ⎠ ⎪ ⎪ Δt Δt = η(n, j ) − (1 − θ ) ⎡ΔU (Ti + 12, j ) −ΔU (Ti − 12, j ) ⎤ − (1 − θ ) ⎡ΔV(T, j + 12) −ΔV(T, j − 12) ⎤ ⎪ i i i ⎣ ⎦ Δy ⎣ ⎦⎪ Δx ⎭ ⎛ Δt ⎞ 2 ⎡ T n +1 n +1 T n +1 n +1 ⎤ ⎟ θ ⎣ ΔU η(i +1, j ) − η(i , j ) − ΔU η(i , j ) − η(i −1, j ) ⎦ ⎝ Δx ⎠ 2 ( ) ( ) ( ) ( ) onde: ⎛ ΔU (Ti ± 1 , j ) = ⎜ ΔZ (n± 1 , j ) A(n± 1 , j ) i 2 i 2 2 ⎝ ( ) −1 ⎞ ⎛ ΔZ (n± 1 , j ) ⎟ e ΔV(T, j ± 1 ) = ⎜ ΔZ (n, j ± 1 ) A(n, j ± 1 ) i 2 i i i 2 2 2 ⎠ ⎝ T ( ) −1 ⎞ ΔZ (n, j ±y 1 ) ⎟ i 2 ⎠ T A expressão (4.12) manipulada adequadamente fornece a expressão matricial (6.1) em termos de coeficientes e onde os níveis de elevação da superfície são as únicas 80 variáveis a serem calculadas a cada passo de tempo, na solução do sistema de equações. No capítulo 6 descrevem-se detalhadamente os algoritmos numéricos para a solução efetiva do problema. 4.2 Condições de contorno discretas: ESW 3D As CC discretas para a interface sedimento-água são obtidas, para a direção X, s 2 considerando (seção 2.5.1) que em τ = g C z ( ) −1 u +v 2 2 tem-se: u = u(ni + 1 , j ,m ) − 2 g Δt n g Δt n η(i +1, j ) − η(ni , j ) e v = v (ni + 12, j ,m ) − η(i , j +1) − η(ni , j ) 2Δy 2Δx ( ) ( ) n n n n n tal que v (i + 12, j ,m ) = 0,25 v (i , j + 12,m ) + v (i , j − 12,m ) + v (i +1, j + 12,m ) + v (i +1, j + 12,m ) . E para a direção Y tem-se: ( ) v = v (ni , j + 1 ,m ) − 2 g Δt n g Δt n η(i , j +1) − η(ni , j ) e u = u(ni , j + 12,m ) − η(i , j +1) − η(ni , j ) 2Δy 2Δx ( ) ( ) n n n n n tal que u(i , j + 12,m ) = 0,25 u(i + 12, j ,m ) + u(i − 12, j ,m ) + u(i + 12, j +1,m ) + u(i − 12, j +1,m ) ( ) 4.3 ESW 2D-IV na forma discreta Neste trabalho, foram desenvolvidos e implementados modelos 2D integrados na vertical, tanto para o escoamento quanto para o transporte de substâncias, cujas formas analíticas foram discutidas nas seções 2.4 e 2.6. Também desenvolvidos e implementados modelos 3D, para o escoamento e o transporte de substâncias, cujas formas analíticas foram discutidas nas seções 2.3 e 2.5. Esses diferentes modelos desenvolvidos e implementados obedeceram à ordem cronológica da elaboração deste trabalho, onde inicialmente foram considerados modelos 2D e, posteriormente, modelos 3D. Porém, a forma discreta das ESW 3D com apenas uma camada, reduz-se à forma discreta das ESW 2D integradas verticalmente. Basta tomar, como em [CAS92]: n n Δz (ni + 1 , j ) = H (n + 1 , j ) = H u (i + 1 , j ) + η(ni, j ) , Δz (ni , j + 1 ) = H (n, j + 1 ) = H v (i , j + 1 ) + η(ni, j ) i 2 i 2 2 2 2 2 s A(n + 1 , j ) = H (n + 1 , j ) + Δt (τ x ) i i 2 2 2D def 2D def n (i + 12, j ) s H (n + 1 , j ) , A(n, j + 1 ) = H (n, j + 1 ) + Δt (τ y ) i i i 2 2 2 n ( i , j + 12 ) H (n, j + 1 ) i 2 v G (n + 1 , j ) = H (n + 1 , j ) FU (n + 1 , j ) + Δt (τ x ) i i i 2 2 2 n (i + 12, j ) v e G (n, j + 1 ) = H (n, j + 1 ) FV(n, j + 1 ) + Δt τ y i i i 2 2 2 ( i , j + 12 ) ( ) n Então, sob essas condições, as formas discretas das ECQMs 3D com uma só camada coincidem com as formas discretas das ECQMs 2D integradas na vertical. Nesse caso, as EDPs são aproximadas como: gΔt ⎡ n +1 + θ η U (n+1 , j ) = FU (n+ 1 , j ) − − ηn +1 ⎤ + i 12 i 2 Δx ⎣ (i +1, j ) (i , j ) ⎦ ( ) v Δt (τ x ) n (i + 12, j ) H n (i + 12, j ) − s Δtg (τ x ) 2 z n (i + 12, j ) + U (n+1 , j ) i 1 2 CH s Δtg (τy ) n n (i + 12, j ) e V n +1 (i , j + 12) = FV n (i , j + 12) gΔt ⎡ n +1 θ η − − ηn +1 ⎤ + ⎣ (i , j +1) (i , j ) ⎦ Δy ( ) v Δt (τy ) n ( i , j + 12 2 ) H(n, j + 1 ) i − V (i , j + 12) (i , j + 12) 2 n +1 2 Cz H(n, j + 1 ) i ou seja, usando a notação como em (4.5) e (4.6), tem-se: 81 s + U (n + 1 , j ) = 1 + Δt (τ x ) i 1 2 ( n ( i + 12 , j ) ) −1 Δt ⎡ ⎧ n +1 θ η(ni +1, j ) − η(ni ,+j1) ⎨FU (i + 12, j ) − g ⎣ Δx ⎩ ( ⎫ )⎤ ⎭ ⎦⎬ e 2 s V(n, +1 1 ) = 1 + Δt (τ y ) i j+ ( n ( i, j + 1 2 ) ) −1 ⎧ n Δt ⎡ θ η(ni ,+j1+1) − η(ni ,+j1) ⎨FV(i , j + 12) − g Δy ⎣ ⎩ ( ⎫ )⎤ ⎭ ⎦⎬ e, de modo análogo, a discretização para a ECM fornece a expressão: η(ni ,+j1) = − Δt ⎡ + + θ H 1 + η(ni ) U (ni +12, j ) − H u (i − 12, j ) + η(ni −1) U (ni −12, j ) ⎤ 1 1 ⎥ ⎣ ⎦ Δx ⎢ u (i + 2, j ) Δt ⎡ θ H − + η(nj ) V(n,+1 1 ) − H v (i , j − 1 ) + η(nj −1) V(n,+1 1 ) ⎤ 1 i j+ 2 i j− 2 ⎥ 2 ⎣ ⎦ Δy ⎢ v (i , j + 2 ) Δt − (1 − θ ) ⎡ H u (i + 12, j ) + η(ni ) U (ni + 12, j ) − H u (i − 12, j ) + η(ni −1) U (ni −+12, j ) ⎤ 1 ⎢ ⎥ ⎣ ⎦ Δx Δt − (1 − θ ) ⎡ H v (i , j + 12) + η(nj ) V(n,+j 1 12) − H v (i , j − 12) + η(nj −1) V(n,+j 1 12) ⎤ + η(ni , j ) i + i − ⎢ ⎥ ⎣ ⎦ Δy ( ( ) ) ( ( ) ) ( ( ) ) ( ( ) ) em que H u (i ± 1 , j ) e H v (i , j ± 1 ) são as batimetrias. A substituição formal das ECQMx e 2 2 ECQMy na ECM fornece a expressão: η n +1 (i , j ) ⎡⎛ n 2 ⎛ Δt ⎞ 2 ⎢⎜ H u (i + 12, j ) + η(i ) −⎜ ⎟ θ ⎢⎜ s n ⎝ Δx ⎠ ⎢⎜ 1 + Δt (τ x )(i + 12, j ) ⎣⎝ ⎞ ⎛H n ⎟ ⎜ u (i − 12, j ) + η(i −1) ⎟ Δ +ηi − ⎜ s n ⎟ ⎜ 1 + Δt (τ x )(i − 1 , j ) 2 ⎠ ⎝ ⎤ ⎞ ⎥ ⎟ ⎟ Δ −ηi ⎥ ⎟ ⎥ ⎠ ⎦ ⎡⎛ ⎤ ⎞ ⎛ ⎞ n n 2 ⎛ Δt ⎞ 2 ⎢ ⎜ H v ( i , j + 12 ) + η ( j ) ⎟ ⎥ ⎜ H v (i , j − 12 ) + η( j −1) ⎟ −⎜ ⎟ θ ⎢⎜ n n ⎟ Δ +η j − ⎜ ⎟ Δ +η j ⎥ s s ⎝ Δy ⎠ ⎜ 1 + Δt (τ y )(i , j − 1 ) ⎟ ⎢⎜ 1 + Δt (τ y )(i , j + 12) ⎟ ⎥ 2 ⎠ ⎠ ⎝ ⎣⎝ ⎦ Δt = − (1 − θ ) ⎡ H u (i + 12, j ) + η(ni ) U (ni + 12, j ) − H u (i − 12, j ) + η(ni −1) U (ni − 12, j ) ⎤ ⎢ ⎥ ⎣ ⎦ Δx Δt − (1 − θ ) ⎡ H v (i , j + 12) + η(nj ) V(n, j + 12) − H v (i , j − 12) + η(nj −1) V(n, j − 12) ⎤ i i ⎢ ⎥ ⎣ ⎦ Δy ( ( ) ) ( ( ) ) ⎡⎛ n Δt ⎢⎜ H u (i + 12, j ) + η(i ) θ − Δx ⎢⎜ 1 + Δt (τ s )n ⎢⎜ x i+1 ,j ( 2 ) ⎣⎝ ⎡⎛ n Δt ⎢ ⎜ H v (i , j + 1 2 ) + η( j ) − θ ⎜ Δy ⎢⎜ 1 + Δt (τ s )n ⎢ y i,j +1 ( 2) ⎣⎝ ⎛H ⎞ n ⎜ u (i − 12, j ) + η(i −1) ⎟ n ⎟ FU (i + 12, j ) − ⎜ s n ⎜ 1 + Δt (τ x )(i − 1 , j ) ⎟ 2 ⎝ ⎠ ⎤ ⎞ ⎥ ⎟ n ⎟ FU (i − 12, j ) ⎥ ⎟ ⎥ ⎠ ⎦ ⎤ ⎞ ⎛ ⎞ n ⎥ ⎟ ⎜ H v (i , j − 12 ) + η( j −1) ⎟ n n n n ⎟ FV(i , j + 12 ) − ⎜ ⎟ FV(i , j − 12 ) ⎥ + η(i , j ) s ⎟ ⎜ 1 + Δt (τ y )(i , j − 1 ) ⎟ ⎥ 2 ⎠ ⎠ ⎝ ⎦ que é completamente análoga a (4.12), tomando k = 1 , e às notações: +1 +1 Δ +ηi = η(n +1, j ) − η(n,+j1) , Δ −ηi = η(ni ,+j1) − η(ni −1, j ) , i i Δ +η j def ( = (η( def n +1 i , j +1) − η(ni ,+j1 ) ( ) ) e Δ η = (η( − j def ) n +1 i,j ) − η(ni ,+j1−1) def ) onde η(n ) = η(n, j ) ou η(n ) = η(n −1, j ) , e η(nj ) = η(n, j ) ou η(n ) = η(n, j −1) dependendo da i i i i i i i direção das componentes horizontais da velocidade. Essas duas condições são necessárias para estabelecer a propriedade CTC discutida no anexo 1. 82 Mas dada a importância de modelos 2D-IV e dado que eles têm uma estrutura de dados muito mais simples que os 3D, quando são implementados diretamente em duas dimensões. Além disso, as soluções paralelas apresentadas e discutidas na seção 7.10 (Thomas pipeline) são específicas para modelos 2D, quando das soluções obtidas empregando a abordagem ADI. E, portanto, não são passíveis de serem comparadas com as soluções de modelos 3D, mesmo que esse esteja com apenas uma camada, dado que não se implementou a abordagem ADI para o caso 3D. 4.4 ETM 3D na forma discreta A EDP (2.9) é a equação de transporte escalar (ETM) que, de acordo com notações e definições anteriormente introduzidas, pode ser escrita na forma discreta como [GRO98], [GRO99] e [ROS2000]: ∂ (S Δz ) ∂ (uS Δz ) ∂ (vS Δz ) ∂ (wS Δz ) ∂ ⎛ ∂ (S Δz ) ⎞ ⎫ + + + = ⎜ εv ⎟ +⎪ ∂x ∂y ∂z ∂z ⎜ ∂Z ⎟ ⎪ 1 ∂t 3 1444 24444 4 24 14243 ⎝ 4 4 3 144 2444⎠ ⎪ 3 variacao adveccao vertical temporal adveccao horizontal difusao vertical + ⎛ ∂ (S Δz ) ⎞ ∂ ⎛ ∂ (S Δz ) ⎞ KS Δz ⎜ εh ⎟+ ⎜ε ⎟ + 124 + F Δz 4 3 ⎜ ∂x ⎟ ∂y ⎜ h ∂y ⎟ decaimento { fonte ⎝ ⎠24444444 ⎠ ⎝ 1444444 4 3 ∂ ∂x difusao horizontal n onde εh = εh xi ,y j , zk ,t ( )eε v = εv ( xi ,y j , zk ,t n ) em (4.13) são os coeficientes de difusão ⎪ ⎬ ( 4.13 ) ⎪ ⎪ ⎪ ⎪ ⎭ turbulenta horizontal e de difusão turbulenta vertical, respectivamente. A ETM discreta é obtida considerando que a advecção horizontal é interpolada via fluxo numérico nas faces; a advecção vertical é interpolada via fluxos numéricos nas faces; a difusão vertical é calculada através do método Crank-Nicolson; a difusão horizontal é calculada via diferenças centrais; a fonte e o decaimento são obtidos em termos de concentração e de uma matriz de decaimento, respectivamente, como definido na seção 2.5. Especificamente, tomando ϕ n +θ = θϕ n +1 + (1 − θ ) ϕ n em que 0 < θ ≤ 1 , um esquema de discretização em diferenças finitas via fluxo numérico para a advecção fornece as seguintes expressões discretas para (4.13): 1. S(n,+j1k ) Δz (ni ,+j1,k ) − S(n, j ,k ) Δz (ni , j ,k ) ⎛ ∂ (S Δz ) ⎞ i , i ; ≈ ⎜ ⎟ ∂t Δt ⎝ ⎠(i , j ,k ) n +θ + + u(ni +θ , j ,k )S E Δz (ni + 1 , j ,k ) − u(ni −θ , j ,k )SW Δz (ni − 1 , j ,k ) 1 1 ⎛ ∂ ( uS Δz ) ⎞ 2 2 2 2 ; ≈ ⎜ ⎟ ∂x Δx ⎝ ⎠(i , j ,k ) n +θ v (ni ,+jθ+ 1 ,k )SN Δz (ni , j + 1 ,k ) − v (ni ,+jθ− 1 ,k )SS Δz (ni , j − 1 ,k ) ⎛ ∂ (vS Δz ) ⎞ 2 2 2 2 ; ≈ ⎜ ⎟ ∂y Δy ⎝ ⎠(i , j ,k ) n +1 2. 3. 4. n +θ w(ni ,+jθ,k + 1 )SU Δz (ni , j ,k + 1 ) − w(ni ,+jθ,k − 1 )S L Δz (ni , j ,k − 1 ) ⎛ ∂ ( wS Δz ) ⎞ 2 2 2 2 ; ≈ ⎜ ⎟ ∂z Δz (ni , j ,k ) ⎝ ⎠(i , j ,k ) 5. ⎡ ∂ ⎛ ∂ (S Δz ) ⎞⎤ ≈ ε (i , j ,k + 1 ) S(n,+j1k +1) − S(n,+j1k ) − ε (i , j ,k − 1 ) S(n,+j1k ) − S(n,+j1k −1) ⎢ ⎜ εv ⎟⎥ i , i , i , i , 2 2 ∂z ⎠⎥ i , j ,k ⎢ ∂z ⎝ ⎣ ⎦( ) n +1 ( ) ( ) ) + ε (i , j ,k + 1 ) S(n, j ,k +1) − S(n, j ,k ) − ε (i , j ,k − 1 ) S(n, j ,k ) − S(n, j ,k −1) i i i i 2 2 ( ) ( 83 onde ε (i , j ,k + 1 ) ≡ 2 not 2 Δz (ni , j ,k + 1 ) 2 n ( εv (i , j ,k + 1 2 ) ) 2 e ε (i , j ,k − 1 ) ≡ 2 not 2 Δz (ni , j ,k − 1 ) 2 ( εv (i , j ,k − 1 2 ) ) 2 ; 6. n ε h Δz x (i , j ,k ) n ⎡ ∂ ⎛ ∂ (S Δz ) ⎞ ⎤ ≈ S (i +1, j ,k ) − 2 S (n, j ,k ) + S (n, j −1,k ) ; ⎢ ⎜ εh ⎟⎥ i i 2 ∂x ⎠ ⎥ 2Δx ⎢ ∂x ⎝ ⎣ ⎦ (i , j ,k ) ( ) 7. 8. 9. ⎡ ∂ ⎢ ⎢ ∂y ⎣ n εh Δz y (i , j ,k ) n ⎛ ∂ (S Δz ) ⎞ ⎤ ≈ S (i , j +1,k ) − 2 S (n, j ,k ) + S (n, j −1,k ) ; ⎜ εh ⎟⎥ i i 2 ∂y ⎠ ⎥ 2Δy ⎝ ⎦ (i , j ,k ) n ( ) n F Δz ≈ Δt Δz (ni , j ,k ) F fonte ; KS Δz ≈ ΔtS (n, j ,k ) Δz (ni , j ,k ) K . i Note-se que todas as discretizações consideram a propriedade consistência da continuidade com o transporte (CTC), como discutido no anexo 1. Isso requer que os fluxos nas faces da equação da continuidade (EC) sejam aproximados de modo análogo aos fluxos nas faces da ETM, indicando que o esquema de solução da ETM deve ser tal que o nível de tempo e a posição das variáveis dependentes na malha sejam iguais aos da expressão EC discreta. As diferenças devem ser restritas aos tipos de aproximações considerados para a solução da ETM e da EC ([GRO98] e [BON2000]). Uma condição necessária para a propriedade CTC é que os espaçamentos verticais devem ser tais que: + 1 Δz n +1 ≡ Δz (nM 1 1 , j ,k ) + η⎛n +1 +1 ⎞ e Δz n +1 ≡ Δz (ni ,+M + 1 ,k ) + η⎛n +1 J +1 ⎞ I + 2 2 i+ ,j ⎟ ⎜ ⎜i , j + ⎟ + em que I = − sign u(nM 1 1 , j ,k ) e J = − sign v (n ,+1 + 1 ,k ) , que fornecem expressões + 2 iM 2 consistentes com os fluxos numéricos que são definidos para velocidades arbitrárias como detalhado no capítulo 6. Assim, a ETM 3D é aproximada considerando uma abordagem massa conservativa (advecção na forma fluxo) como: def def ( ) ⎝ 2 ⎠ ( ) ⎝ 2 ⎠ S (n,+j1k ) Δz (ni ,+j1k ) = S (n, j ,k ) Δz (ni , j ,k ) − , i , i − − Δt Δz (ni , j ,k + 1 )w(ni ,+jθ,k + 1 )SU − Δz (ni , j ,k + 1 )w(ni ,+jθ,k − 1 )S L n 2 2 2 2 Δz (i , j ,k ) ( ) Δt + + Δz (ni + 1 , j ,k )u(ni +θ , j ,k )SE − Δz (ni − 1 , j ,k )u(ni −θ , j ,k )SW 1 1 2 2 2 2 Δx Δt − Δz (ni , j + 1 ,k )v (ni ,+jθ+ 1 ,k )S N − Δz (ni , j − 1 ,k )v (ni ,+jθ− 1 ,k )SS 2 2 2 2 Δy Δt εv (i , j ,k + 1 ) n +1 Δt εv (i , j ,k − 1 ) n +1 2 2 + S (i , j ,k +1) − S (n,+j1k ) − S(i , j ,k ) − S(n,+j1k −1) i , i , 2 2 2Δz 2Δz Δt εv (i , j ,k + 1 ) n Δt εv (i , j ,k − 1 ) n 2 2 + S (i , j ,k +1) − S (n, j ,k ) − S(i , j ,k ) − S(n, j ,k −1) i i 2 2 2Δz 2Δz + ΔtS (n, j ,k ) Δz (ni , j ,k )K + Δt Δz (ni , j ,k )S n fonte i ( ( ) ) ( ( ) ) ( ( ) ) ⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎬ ( 4.14 ) ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎭ Na expressão (4.14) tem-se que, em geral, Δz (n , j ,k + 1 ) = Δz (n , j ,k − 1 ) = Δz (n , j ,k ) exceto, i i i 2 2 possivelmente, nas faces verticais que interceptam a batimetria na camada inferior e/ou cruzam a superfície livre na camada superior. Note-se, porém, que o 84 espaçamento vertical entre as k camadas deve levar em conta a variação na espessura devido ao movimento do nível de água, indicando que em k = M tem-se n n Δzk =M = Δz M + η(ni , j ) . Assim, os termos da advecção vertical e da difusão vertical em (4.14) são escritos como: ∂ ( wS Δz ) ∂z ≈ ( wS )k + 1 − ( wS )k − 1 2 2 cuja expressão discreta em (4.14) é como w(n ,+jθ,k + 1 )SU − w(n ,+jθ,k − 1 )S L , e então: i i 2 2 ( ) ∂ ⎛ ∂S ⎞ 3D ⎡⎛ ∂S ⎞ ⎛ ∂S ⎞ ⎤ ⎜ εv ⎟ = ⎢⎜ ε v ⎟ − ⎜ εv ⎟ ⎥= ∂z ⎝ ∂z ⎠ ⎣⎝ ∂z ⎠S ⎝ ∂z ⎠F ⎦ ⎛ S (n,+j1k +1) − S (n,+j1k ) S (n,+j1k ) − S (n,+j1k −1) ⎞ i , i , i , i , = ⎜ εv (i , j ,k + 1 ) + εv (i , j ,k − 1 ) ⎟ 2 2 2 2 ⎜ ⎟ 2Δz 2Δz ⎝ ⎠ n n n n ⎛ S (i , j ,k +1) − S (i , j ,k ) S (i , j ,k ) − S (i , j ,k −1) ⎞ − ⎜ εv (i , j ,k + 1 ) + εv (i , j ,k − 1 ) ⎟ 2 2 ⎟ ⎜ 2Δz 2 2Δz 2 ⎠ ⎝ = 2 Δz (ni , j ,k + 1 ) 2 2 Δz (ni , j ,k + 1 ) 2 ( εv (i , j ,k + 1 2 ) ) 2 (S( (S( n +1 i , j ,k +1) − S (n,+j1k ) − i , ) 2 Δz (ni , j ,k − 1 ) 2 2 Δz (ni , j ,k − 1 ) 2 ( εv (i , j ,k − 1 2 ) ) 2 (S( (S( n +1 i , j ,k ) − S (n,+j1k −1) i , ) + ( εv (i , j ,k + 1 2 ) ) 2 n i , j ,k +1) − S (n, j ,k ) − i ) ( εv (i , j ,k − 1 2 ) ) 2 n i , j ,k ) − S (n, j ,k −1) i ) Porém, por conveniência algorítmica, a forma discreta empregada é como em (4.14). Essa conveniência deve-se ao fato de que nessa situação, pode-se escrever os n algoritmos de solução em termos dos números de Courant locais C z = w Δt Δz k , que é uma importante métrica para a analise dos efeitos da discretização espacial. Isso porque expressa a relação entre a magnitude da velocidade de fluxo, o tamanho do intervalo de tempo Δt e o tamanho da discretização espacial. Note-se que muitas vezes o termo de difusão horizontal é desprezado, já que os coeficientes de difusão turbulenta podem ser considerados como sendo nulos, como em [GRO98], [GRO99] e [ROS2000]. Isso se justifica quando os mecanismos de transporte influenciados pelas marés são puramente advectivos, sendo que os efeitos do vento e da difusão são desprezíveis. Porém, optou-se por considerar o termo de difusão nos cálculos já que a ênfase é, neste trabalho, apenas nos aspectos numéricos e computacionais das EDPs do escoamento e do transporte. Com essas escolhas, a discretização da ETM 3D resulta em N x N y sistemas de equações 3-diagonal, uma para cada coluna de água, cada qual com M − m + 1 equações, pois o esquema numérico resultante é semi-implícito, e somente o transporte vertical é implícito. Essa é uma abordagem particularmente útil para obter a paralelização da solução. 4.5 Condições de contorno discretas: ETM 3D As condições de contorno superior e inferior para a ETM são obtidas considerando que não existe massa atravessando as superfícies sólidas ou a superfície livre. Ou seja, nesse caso, as CC de não escoamento na superfície livre e na interface água-sedimento, são tais que: 85 w(ni ,+jθ,M + 1 )SU (i , j ,M + 12) ≡ 0 e w(ni ,+jθ,m − 1 )S L (i , j ,m − 12) ≡ 0 2 2 Essas CC referem-se ao transporte vertical que é implícito e, portanto, essas condições são incorporadas aos sistemas de equações. Os demais termos, que são explícitos, particularmente aqueles da advecção horizontal que é aproximada com um estêncil computacional tipo 9-pontos, necessitam somente de tratamento especial em células que distam de duas células e em células que são adjacentes às fronteiras sólidas e/ou no caso das fronteiras abertas que delimitam o domínio computacional. Isso requer uma análise sistemática das diversas aproximações, questão tratada na seção 6.5.1. 4.6 ETM 2D-IV na forma discreta Note-se que a ETM 3D discreta não se reduz, quando em uma só camada, à ETM 2D-IV, como no caso das ESW. Isso se deve ao fato de que a ETM 2D é discretizada na forma fluxo semi-implicitamente, e a ETM 3D é discretizada na forma semi-implícita de modo que em uma só camada o esquema numérico 3D torna-se completamente explícito. Mas a ETM 2D-IV é semi-implícita e é escrita na forma discreta como: + S (n,+j1) H (n +1 , j ) = S (n, j ) H (n + 1 , j ) + S (n, j ) H (n, j ) ΚΔt + H (n, j )S n Δt + S (n, j ) H (n + 1 , j ) fonte i i i i i i i 12 i 2 i 2 Δt + + + + − U (n +1 , j )S E H (n +1 , j ) − U (n −1 , j )SW H (n −1 , j ) i 12 i 12 i 12 i 12 Δx Δt − V(n,+1 1 )S N H (n,+j1+ 1 ) − V(n,+1 1 )SS H (n,+j1− 1 ) i i j− 2 i 2 2 Δy i j + 2 ( ( ) ) + − + − + − + − n ΔtDx (+1 1 , j ) i+ 2 2Δx n ΔtDx (+1 1 , j ) i− 2 2 (S (S n n (i +1, j ) H (i + 3 2, j ) (i , j ) H (i + 12, j ) n n +1 n +1 n +1 n +1 + − S (n,+j1) H (n +1 , j ) i i 1 2 ) ) 2Δx n ΔtD x (i + 1 , j ) 2 2 +1 + − S (n −1, j ) H (n −1 , j ) i i 1 2 2Δx 2 n ΔtD x (i − 1 , j ) 2 (S (S (S (S (S (S (i +1, j ) H (i + 3 2, j ) (i , j ) H (i + 12, j ) n +1 n +1 n − S (n, j ) H (n + 1 , j ) i i 2 ) ) ) ) ) ) 2Δx n ΔtDy (+1 1 , j ) i+ 2 2 − S (n −1, j ) H (n − 1 , j ) i i 2 2Δy 2 n ΔtDy (+1j − 1 ) i, 2 (i , j +1) H (i , j + 3 2 ) ( i , j ) H ( i , j + 12 ) n n n +1 n +1 − S (n,+j1) H (n,+j1+ 1 ) i i 2 2Δy 2Δy 2Δy 2 − S (n,+j1−1) H (n,+j1− 1 ) i i 2 n ΔtDy (i + 1 , j ) 2 2 (i , j +1) H (i , j + 3 2 ) ( i , j ) H ( i , j + 12 ) n n − S (n, j ) H (n, j + 1 ) i i 2 n ΔtDy (i , j − 1 ) 2 2 − S (n, j −1) H (n, j − 1 ) i i 2 n 1 n sendo que Dy (,in, +± 1 ) e D x (,in±+11, j ) são os coeficientes de dispersão longitudinal e j 2 2 transversal discretos dados na seção 2.6. Porém, a componente advectiva da ETM é aproximada via esquema fluxo numérico tomando nesta abordagem os fluxos como 86 sendo advectados pelo esquema upwind de primeira ordem. A difusão horizontal é aproximada via Crank-Nicolson. 4.7 Modelo de turbulência na forma discreta O modelo de parametrização de turbulência descrito na seção 2.7.2 é apresentado nessa seção na forma discreta. A sua discretização considerou os parâmetros empregados em um corpo de água bem misturado. Usando as notações e parâmetros introduzidos na seção 2.7.2, toma-se que α = 0,007 . Desse modo, e denotando o comprimento de mistura horizontal por L = Δx = Δy , onde Δx e Δy são os espaçamentos horizontais da malha da hidrodinâmica, os coeficientes da viscosidade cinemática turbulenta horizontal são constantes, e são tais que ν h = 0,007 ( Δx ) 4 3 para as duas equações de conservação da quantidade de movimento do sistema de EDPs shallow water. Os coeficientes de difusibilidade turbulenta horizontal para a equação do transporte escalar de substâncias é considerado, pelos motivos discutidos na seção 2.7.2, constante e igual a ε h ≈ 0,2 . Essa escolha é aplicável às difusões nas direções X e Y . Os coeficientes da viscosidade cinemática turbulenta vertical das ESW são obtidos como em [KIM94]. Considera-se que na expressão do comprimento de mistura vertical Lm , que o atrito interno γ é tal que ⎡ξ (h H ) Ψ(Ri )⎤ ≈ γ , em que ⎣ ⎦ γ 2 ≈ 0,001 , e onde a altura é dada pela k − ésima camada, isto é, tomando n H ≈ Δzk . Portanto, tem-se: n ν v ≡ ν v ( x , y, z , t ) = 0,001( Δzk ) 2 ⎡( ∂u ∂z )2 + ( ∂v ∂z )2 ⎤ ⎣ ⎦ onde toma-se Δz (n , j ,k ) como sendo a média Δz (n , j ,k ) = 0,5 Δz (n + 1 , j ,k ) + Δz (n , j + 1 ,k ) . i i i 2 i 2 Já os coeficientes de difusibilidade turbulenta vertical da ETM são obtidos como: ( ) εv ≡ εv ( x , y, z , t ) = 1,4ν v exp ( −0,096 ) onde o número de Richardson é tomado como Ri = 0,08 , já que o corpo de água é considerado bem misturado, para efeitos de simulação neste trabalho. As CC para a ETM são obtidas considerando-se que devem ser do tipo não escoamento na superfície livre e na interface água-sedimento, como detalhado na seção 4.5. Já as condições de contorno para as ECQMx são obtidas considerando-se o transporte vertical que, conforme os casos analisados na seção 4.1, fornece, para k = M (fronteira superior), que: + + u(ni +1 , j ,M +1) − u(ni +1 , j ,M ) CC superior v n 1 1 2 2 = ε v ( i + 12, j ,M + 12 ) (τ x )(i + 12, j ,M + 12) n Δz ( i + 1 , j , M + 1 ) 2 2 e, para k = m (fronteira inferior), vale: + + u(ni +1 , j ,m ) − u(ni +1 , j ,m −1) CC inferior 1 1 n + 2 2 εv (i + 12, j ,m − 12) = (γ x )(i + 1 , j ,m ) u(ni +1 , j ,m ) 1 n 2 2 Δz (i + 1 , j ,m − 1 ) 2 2 Analogamente, tem-se na ECQMy, para k = M (fronteira superior), que: 87 v (ni ,+j1+ 1 ,M ) − v (ni ,+j1+ 1 ,M −1) CC superior v n 2 2 = ε v ( i , j + 12 ,M − 12 ) (τ y )(i , j + 12,M + 12) n Δz ( i , j + 1 , M − 1 ) 2 2 e, para k = m (fronteira inferior), que: v (ni ,+j1+ 1 ,m ) − v (ni ,+j1+ 1 ,m −1) CC inferior n 2 2 εv (i , j + 12,m − 12) = (γ y ) 1 v (ni ,+j1+ 1 ,m ) n 2 (i , j + 2,m ) Δz (i , j + 1 ,m − 1 ) 2 2 Portanto a forma discreta de ⎡( ∂u ∂z )2 + ( ∂v ∂z )2 ⎤ é ⎣ ⎦ + + u(ni +1 , j ,k +1) − u(ni +1 , j ,k ) ⎛ ∂v ⎞ v (ni ,+j1+ 1 ,M ) − v (ni ,+j1+ 1 ,M −1) 1 1 ⎛ ∂u ⎞ 2 2 2 2 e⎜ ≈ ≈ ⎜ ⎟ ⎟ ∂z ⎠(i , j ,k ) Δz (ni + 1 , j ,k + 1 ) ∂z ⎠(i , j ,k ) Δz (ni , j + 1 ,M − 1 ) ⎝ ⎝ 2 2 2 2 válida para m ≤ k ≤ M − 1 , onde Δz (n + 1 , j + 1 ,k ) = 0,5 Δz (n + 1 , j + 1 ,k +1) + Δz (ni + 1 , j + 1 ,k ) . i 2 i 2 2 2 2 2 Note-se que deve-se construir esquemas numéricos que tenham uma viscosidade e/ou difusão numérica tais que não obscureçam os coeficientes das viscosidades cinemática turbulenta e das difusibilidade turbulenta calculados pelo modelo de parametrização, pois esse fornece as viscosidades e as difusões físicas para o modelo computacional. Essas questões são discutidas no anexo 1. ( ) 88 5 Métodos numéricos Muitos dos métodos clássicos de soluções para problemas sob o escopo da CFD, são discutidos em detalhes por Patankar [PTK81], Fletcher [FLE88] e [FLE88a], Anderson [AND95] e Ferziger e Peric [FER97], entre outros. Pode-se destacar, também, os textos de Fortuna “Técnicas Computacionais para Dinâmica dos Fluidos” [FRT2000], e de De Bortoli “Introdução à Dinâmica de Fluidos Computacional” [BRL2000], dois textos nacionais sobre técnicas numéricas e computacionais para solução de escoamentos. Porém, o enfoque nesse capítulo é discutir abordagens para a construção de soluções de alta qualidade numérica para os termos advectivos das EDPs hiperbólicas, já que esses são os termos “mais críticos” dessas EDPs. Como discutido no anexo 1, não existem resultados teóricos gerais para a análise da convergência da solução numérica de EDPs não lineares, pois, nesse caso, o teorema de Lax não é aplicável. É necessário construir e mostrar que um método particular de solução é convergente. Na busca por soluções de alta qualidade numérica, desenvolveram-se muitas soluções. Por exemplo, Rood [ROO87] mostrou que, já na década de 80, existiam mais de 100 algoritmos advectivos. Outros trabalhos, como os de Baptista [BAP95] e Gross [GRO99,] mostraram outras coleções de algoritmos mais atuais. LeVeque [LEV96] e Sons [SON2000] discutem, também, vários algoritmos para soluções com alta qualidade numérica da advecção em escoamentos incompressíveis. Uma vez que existem muitos métodos disponíveis na literatura técnica, objetivase, neste trabalho, construir algoritmos para a solução numérica dos modelos computacionais, tendo como base aqueles com sólida fundamentação matemática, não considerando os desenvolvidos sob abordagens puramente heurísticas. Uma referência para balisar essa escolha, que deve ter como compromisso o equilíbrio entre a qualidade numérica e a eficiência computacional, é o trabalho de Byun, Young, Pleim, Odman e Alapaty [BYU99], que analisaram e compararam uma gama de métodos para a solução da advecção 1D. Tais métodos são os MPDATA (Multidimensional Positive-Definite Advective Transport Algorithm) de Smolarkiewicz [SMO82], [SMO83] e [SMO84], o ARF (Area preserving Flux-Form Advection Algorithm) de Bott [BOT89], [BOT89a]; o Piecewise Parabolic Methods (PPM) de Colella e Woodward [COL84]; o Yamartino (YAM); Flux Corrected Transport (FCT) de Boris e Book [BOR73], [BO075] e [BOR76]; o semiLagrangeano (SLT); o Accurate Space Derivative (ASD), e o Chapeau Function Method (HAT). Os resultados indicaram que as soluções obtidas por esses métodos, quanto à qualidade numérica, têm as seguintes características: 1. ARF: é acurado e massa conservativo, porém pode criar ripples (rampas ou oscilações) e overshoots (sobre-especificação), mas é definido-positivo; 2. ASD: é acurado, porém não é estritamente massa conservativo, não é monotônico mas, geralmente, fornece resultados positivos; 3. FCT: é acurado e massa conservativo, e não cria quaisquer ripples e overshoots, mas tem certa difusão numérica; 4. HAT: é acurado e massa conservativo, mas pode levar a ripples, que podem crescer e causar instabilidade; 5. MPDATA: é de acurácia relativamente baixa, é massa conservativo, mas pode levar a ripples em campos de alta concentração; 6. PPM: é acurado, massa conservativo, monotônico e tem pequena difusão numérica, mas o pico de clipping (pontos críticos) pode ser significativo; 7. SLT: tem menor acurácia e problemas de conservação de massa; a sua única característica positiva é que não tem ripples; 89 YAM: é muito acurado para comprimentos de ondas curtos e é massa conservativo, mas pode levar a overshoots. O tempo de execução de tais métodos foram normalizados com respeito ao esquema de SMO. Nessa situação, os tempos de execução de CPU desses métodos aplicados à solução da EDP da advecção linear 1D mostraram que a única solução menos custosa que a MPDATA foi a ARF. Os outros esquemas foram mais custosos, sendo que o mais custoso foi o ASD, que exigiu quatro vezes mais tempo de CPU que o MPDATA. Não obstante a eficiência computacional dos métodos MPDATA e ARF, um exame na literatura técnica, particularmente aquela de solução numérica para escoamentos de superfície livre, como em [GOM95], [LAN97], [BYU99] e [GRO99], mostrou que os métodos de Smolarkiewicz e de Bott estão se tornando populares devido a seus atributos, já que Smolarkiewicz e de Bott desenvolveram versões monotônicas e mais acuradas de seus métodos. A versão MARF (area monotone preserving flux-form advection algorithm) de Bott ([BOT92] e [BOT93]) emprega a abordagem FCT para limitar os fluxos; de modo a minimizar os erros que surgem quando do emprego do modo de divisão do tempo (timesplitting). Além disso, Chlond [CHL94] construiu uma versão localmente modificada do método de Bott, na qual são introduzidas funções monitores auto-ajustáveis para obter um esquema monotônico, conservativo e com pouca difusão numérica. Isso é obtido combinando o algoritmo de Bott com um esquema de interpolação exponencial. Já Smolarkiewicz desenvolveu uma versão não oscilatória do MPDATA, o chamado Multidimensional Positive Definite Advection Transport Algorithm: Nonoscillatory Option [SMO90]. No entanto neste trabalho a opção foi pelo emprego de métodos que se mostram robustos sob quaisquer situações. Um exemplo particularmente importante desse caso é o método da limitação dos fluxos (Flux-Limiter Methods) de Sweby [SWE84]. Tal método, como a exemplo do FCT e do PPM, pertence à classe TVD (Total Variation Diminishing), que é um dos conceitos fundamentais dos mais modernos e sofisticados métodos de solução numérica, que são discutidos nos textos de Colella [COL98], Trangenstein [TRA2000], Lomax, Pulliam e Zingg [LOM2000], Benden, Brouwer, Mirani e Schrijvers [HEM2000] e de Levy [LEV2001]. O suporte teórico oferecido pelo conceito TVD e as intrínsecas características numéricas e computacionais do método FLM, discutidas no anexo 1, tornam essa abordagem particularmente importante na solução de problemas hiperbólicos com altos gradientes de concentração, como neste trabalho. Por essas razões, foi essa a abordagem escolhida para a solução do transporte escalar de substâncias 3D. 8. 5.1 Método com limitação de fluxo: formulação de Sweby A construção de esquemas lineares em diferenças finitas com alta ordem pode não ser o melhor caminho, pois os esquemas numéricos resultantes podem reduzir a dispersão numérica, mas também podem fornecer soluções fisicamente incorretas quando da solução de escoamentos hiperbólicos complexos, dado que muitas vezes a condição de entropia não é satisfeita [LOM2000]. Uma alternativa, como discutido nas seções precedentes, é construir esquemas numéricos não lineares que empreguem o conceito de diminuição (ou limitação) das variações totais, de modo a produzir soluções únicas e com alta resolução. Tais esquemas são obtidos, neste trabalho, empregando o método de limitação de fluxo desenvolvido de Sweby. Um modo de se obter um esquema com limitação de fluxo que seja TVD é adicionar um termo de correção, visando a eliminar as oscilações que aparecem no entorno das descontinuidades [CUM2000]. Essa correção parte da noção de que um método de primeira ordem não gera oscilações porque o termo difusivo ou de viscosidade artificial presente é suficientemente grande para suavizar a solução 90 numérica. Isso não acontece com um método de segunda ordem que é apropriado para regiões de solução suave. Porém, tais métodos introduzem oscilações no entorno de descontinuidades ou no entorno de altos gradientes. Assim, a idéia é usar uma “média ponderada”, de um método conservativo de primeira ordem, com outro conservativo de segunda ordem, de modo que, próximo das descontinuidades, o peso maior é do método de primeira ordem e, portanto, para um fluxo de baixa ordem F1 . Em regiões de solução suave, o peso é maior para o método de segunda ordem e, portanto, para um fluxo de alta ordem F2 . O fluxo é calculado como F = F1 + Ψ(r )F2 , onde Ψ é a função limitadora do fluxo. No caso geral, isso significa que um método não linear F H pode ser visto como sendo um método linear F L , mais uma correção. Nessa situação, a função fluxo F interpolante e limitada é escrita como F = F L + Ψ F H − F L ([LEV96] e [HEI99]), onde Ψ é a função de ( ) restrição (ou função limitante) de fluxo. Um outro atributo dessa função é que ela deve reconhecer a localização das descontinuidades ou dos altos gradientes, para a limitação dos fluxos. Isso pode ser feito analisando a suavidade da solução através de funções monitores, que podem ser definidas através de gradientes da solução ∇Φ em pontos consecutivos da malha. Assim, a função Ψ ≡ Ψ (r ) é escrita em função do quociente r = Φi − Φi −1 Φi +1 − Φi , dependendo da direção do escoamento (veja a seção 5.1.2). O método FLM considera a definição de fluxo numérico e usa o método fluxo dividido (flux-splitting) para integrar a EDP na forma conservativa. Se os fluxos numéricos não estão definidos nas faces das células, eles devem ser obtidos através de interpolação, e a escolha da função interpoladora fornece o tipo e a ordem da aproximação. O exemplo clássico de função interpolante é a função −Κ de van Leer [LER85]. A forma geral, para uma variável Φ , é como: 1⎡ (1 + Κ ) Φni +1, j ,k ) − Φni , j ,k ) + (1 − Κ ) Φni , j ,k ) − Φni −1, j ,k ) ⎤ ⎫ ( 5.1) ( ( ( ( 2 ⎣ ⎦ ⎬ 4 ⎭ onde o parâmetro −1 ≤ Κ ≤ 1 em (5.1) é escolhido para definir um esquema em Φni + 1 ) = Φni , j ,k ) + ( ( particular. Por exemplo, o esquema Fromm [FRO68] de segunda ordem é obtido com Κ = 0 ; o QUICK de Leonard [LEO79] é obtido com Κ = 1 2 ; o CUS (Cubic Interpolation ( ) ( ) Scheme), um esquema de terceira ordem, é obtido com Κ =1 3 ; o upwind é obtido com Κ = −1 ; e o esquema em diferenças central com Κ =1 . Uma variedade de esquemas de interpolação de alta ordem pode ser construída usando como ponto de partida a função de interpolação de van Leer (5.1), como feito por [HUN95], [ZIJ95], [ZIJ97] e [HEI99], entre outros. Porém, essas interpolações podem destruir a positividade devido ao surgimento de oscilações. Assim, deve-se estabelecer alguns critérios para manter a positividade das soluções. O critério, no método de Sweby [SWE84], é empregar funções limitadoras de fluxos, para as quais, mostram-se condições necessárias e suficientes para a limitação da variação total da solução. Note-se, porém, que a função limitante pode ser arbitrária, e a escolha desta ou daquela função não tem, ainda, uma firme base matemática. Elas são obtidas de modo empírico, por inspeção ou através de experiências numéricas, apesar de muitas dessas funções serem obtidas dentro do escopo da teoria. 91 5.1.1 Funções interpolantes O método de limitação de fluxos empregado neste trabalho é o FLM (flux-limiter methods) formulado por Sweby [SWE84]. Nessa abordagem, considera-se que o valor do fluxo numérico Φ pode ser escrito como a soma de um termo difusivo upwind de primeira ordem com um termo antidifusivo. A parte antidifusiva de alta ordem é multiplicada por uma função limitadora de fluxo Ψ , que é função não linear, razão upwind de gradientes consecutivos. Ou seja, para escoamentos 1D na direção X , temse Ψ ≡ Ψ ri + 1 2 , onde: ( ) ri + 12 = Φi +1 − Φi + ε Φi − Φi −1 + ε sendo ε ≈ 10 −9 um parâmetro para evitar a divisão por zero em escoamentos uniformes. Com o emprego da formulação de Sweby, pode-se construir um esquema de solução tipo fluxo limitado, que emprega uma função Ψ limitadora de fluxo. Tal esquema, empregado em [ZIJ95], [HUN96] e [ZIJ97], é como: Φ ( i + 1 ) = Φ (i ) + 2 1 ⎫ Ψ ri + 12 ( Φi − Φi −1 ) ⎬ ( 5.2) 2 ⎭ ( ) Note-se que (5.2) não sofre nenhuma restrição para construir e incorporar esquemas tipo upwind parciais (upwind biased) para obter soluções acuradas dos esquemas numéricos, pois estes podem ser obtidos a partir da escolha de uma função limitante de fluxo. Para obter uma solução TVD para a EDP da advecção, deve-se mostrar que o limite Ψ (r ) deve satisfazer as condições definidas pelo teorema de Harten. Nesse caso, mostra-se que, para velocidades constantes e positivas, (5.2) fornece uma solução TVD se a função de limitação de fluxo da EDP da advecção pura satisfaz a desigualdade 0 ≤ Ψ (r ) ≤ 2r [ZIJ95]. Condições para outras funções de restrição podem ser vistas em [ZIJ97]. Além disso, esses resultados podem ser estendidos para englobar discretizações espaciais que consideram uma abordagem análoga ao método −θ , com 0 ≤ θ ≤ 1 . Em tais discretizações o esquema resultante é explícito de primeira ordem quando θ = 0 . Esquemas completamente implícitos são obtidos quando θ = 1 , e quando θ = 0,5 obtêm-se esquemas tipo Crank-Nicolson. No caso desse tipo de discretização, uma condição suficiente para (5.2) é dada por: 0 ≤ Ψ (r ) ≤ min ( 2r , M ) } (5.3) onde 1 ≤ M = − 2 + 2 Cr (1 − θ ) e, por acurácia, toma-se M = 1 . No caso de M = 2 , (5.3) fornece o critério desenvolvido originalmente por Sweby [SWE84]. Essas mesmas análises podem ser empregadas para obter funções limitadoras de fluxo específicas para a EDP da advecção-difusão. Se Cr = u Δt Δx denota o número de Courant do escoamento e se Pe = u Δx ε h denota o número de Péclet da malha, o esquema −Κ não produz soluções com oscilações para a advecção-difusão, se cumpre a condição [ZIJ97]: ( ) u Δx εh = Pe ≤ Pe (critico ) = 4 (1 + Κ ) ⎫ ⎪ ⎬ ( 5.4 ) ⎪ ⎭ 92 O valor crítico Pe (critico ) é obtido exigindo-se que os elementos fora da diagonal principal, por envolverem contribuições dos termos advectivos e difusivos, sejam não negativos. Essa é uma condição suficiente para a supressão das oscilações numéricas [ZIJ97], que aparecem quando altos gradientes de concentração estão presentes em sub-regiões nas quais a advecção é dominante. Note-se que o número de Péclet pode ser visto como uma métrica que estabelece o grau de como o transporte é dominado pela advecção [ZHE95], [CMO99]. Basta observar que, para problemas puramente advectivos, tem-se que ε h → 0 e, portanto, Pe → ∞ . Quando a difusão é significativa, o número de Péclet é pequeno. Mostra-se que, quando Pe ≤ 2 , as oscilações são eliminadas ([FLE88] e [FER97]). Quando Pe > Pe (critico ) , deve-se adicionar alguma difusão artificial para que o esquema seja livre de oscilações. Uma idéia é, portanto, obter funções limitadoras de fluxo para a equação da advecção-difusão, embora alguns trabalhos indiquem que essa abordagem não resulta em soluções com significativa melhora na acurácia [ZIJ95]. De qualquer modo, tais funções limitadoras podem ser construídas de modo análogo às condições dadas para a EDP da advecção pura, e que levem em conta a restrição (5.4). Nesse caso, para uma aproximação via diferenças centrais para a difusão, quando aplicada a condição (5.3), mostra-se que um esquema numérico para a EDP da advecção-difusão é TVD, se a função de limitação de fluxo Ψ cumpre a seguinte condição [ZIJ97]: ⎡ 2r 2r ⎛ 2 ≤ Ψ (r ) ≤ min ⎢M + ,⎜2 + Pe Pe ⎝ Pe ⎣ para ∀M ≥ 1 . Para Pe → ∞ , o critério (5.3) é recuperado. ⎞ ⎤ ⎟r ⎥ ⎠ ⎦ Com essas considerações, é possível desenvolver para a equação da advecçãodifusão uma classe de limites de fluxos, que são lineares por partes. O desenvolvimento é baseado no esquema −Κ e depende do número de Péclet. Essa classe é chamada por Zijlema [ZIJ97] de classe de Κ − limites de fluxos difusivos lineares por partes (DPL), e podem ser usados quando Pe ≥ 4 (1 + Κ ) . −1 5.1.2 Funções interpolantes para velocidades arbitrárias Dada a formulação de Sweby, nesta seção, são desenvolvidas expressões para interpolação dos valores nas faces das células, isto é, para a obtenção dos fluxos numéricos para a malha espaço-alternada Arakawa C ilustrada na fig. 3.1. Tais expressões são escritas, para velocidades positivas ou negativas, de modo a obter a solução da advecção horizontal da concentração S (i , j ) , e são como: 1 ⎫ ⎧ + , u (i + 1 , j ) > 0 ⎪ ⎪Φ (i , j ) + 2 Ψ r(i + 12, j ) Φ (i , j ) − Φ (i −1, j ) 2 ⎪ ⎪ Φ (i + 1 , j ) = ⎨ ⎬ 2 1 − ⎪Φ − Ψ r(i + 1 , j ) Φ (i + 2, j ) − Φ (i +1, j ) , u(i + 1 , j ) < 0 ⎪ 2 2 ⎪ (i +1, j ) 2 ⎪ ⎩ ⎭ ( ( )( )( ) ) (5.5 ) em que: r(++ 1 , j) = i 2 Φ ( i +1, j) − Φ ( i, j) + ε e r(−+ 1 , j) = ⎬ ( 5.6 ) i 2 Φ ( i, j) − Φ ( i −1, j) + ε Φ ( i + 2, j) − Φ ( i +1, j) + ε ⎪ ⎭ Φ ( i +1, j) − Φ ( i, j) + ε ⎫ ⎪ 93 Note-se que a definição das funções monitores em (5.6) decorre do fato de que essas funções devem reconhecer a localização das descontinuidades e/ou dos oscilações. Essa condição é cumprida considerando o quociente de gradientes consecutivos da solução em pontos consecutivos da malha. Ou seja, o gradiente de concentração da face upstream, dividido pelo gradiente de concentração da segunda face upstream [AWA2000] (veja fig. 6.8). Assim, se u(i + 1 ) > 0 , pode-se definir, para 2 uma variável dependente Φ qualquer que, em malhas equiespaçadas, tem-se: ∂Φ Φ (i ) − Φ (i −1) ∂Φ Φ (i +1) − Φ (i ) e ∇Φ (i +1) ≡ = = ∂x Δx ∂x Δx + e, portanto, define-se ∇Φ(i +1) ∇Φ(i ) = r 1 . Analogamente, se u(i + 1 ) < 0 , então: ∇Φ (i ) ≡ (i + 2 ) 2 ∇Φ (i +1) ≡ e, então, define-se ∇Φ(i ) ∂Φ Φ (i + 2) − Φ (i +1) ∂Φ Φ (i +1) − Φ (i ) e ∇Φ (i ) ≡ = = ∂x Δx ∂x Δx − ∇Φ(i +1) = r(i + 1 ) . 2 Note-se, antes de estender essas idéias ao caso multidimensional, que o estêncil (ou molécula) computacional que define a dependência de dados entre os valores nodais do esquema (5.5). Uma representação para o estêncil computacional da formulação FLM, caso 1D e direção X, é como dada na fig. 6.8. Seu emprego prático na obtenção de esquemas aproximativos pode ser visto em [AME77]. 5.1.3 Esquemas de limitação de fluxo: caso multidimensional Por razões de robustez e simplicidade algorítmica, que foram discutidas na anexo 1, os esquemas numéricos multidimensionais foram construídos através de decomposições unidimensionais na direção normal de cada uma das faces das células. Portanto, considerando as notações e definições anteriores, o esquema de interpolação 2D (advecção horizontal), na presença de um campo de velocidades arbitrário, é escrito como: 1. para a direção X e face S E , tem-se: 1 ⎧ + , u (i + 1 , j ) > 0 ⎪Φ (i , j ) + 2 Ψ r(i + 12, j ) Φ (i , j ) − Φ (i −1, j ) 2 ⎪ Φ (i + 1 , j ) = ⎨ 2 1 − ⎪Φ (i +1, j ) − Ψ r(i + 12, j ) Φ (i + 2, j ) − Φ (i +1, j ) , u(i + 12, j ) < 0 ⎪ 2 ⎩ ( ( )( )( ) ) em que: r(i++ 1 , j ) = 2 Φ (i +1, j ) − Φ (i , j ) + ε e r(i−+ 1 , j ) = 2 Φ (i , j ) − Φ (i −1, j ) + ε Φ (i + 2, j ) − Φ (i +1, j ) + ε Φ (i +1, j ) − Φ (i , j ) + ε 2. para a direção X e face SW , tem-se: 1 ⎧ + ⎪Φ (i −1, j ) + 2 Ψ r(i − 12, j ) Φ (i −1, j ) − Φ (i − 2, j ) , u(i − 12, j ) > 0 ⎪ Φ (i − 1 , j ) = ⎨ 2 ⎪Φ − 1 Ψ r − 1 , u (i − 1 , j ) < 0 (i − 2, j ) Φ (i +1, j ) − Φ (i , j ) 2 ⎪ (i , j ) 2 ⎩ ( )( ) ( )( ) em que: r(i+− 1 , j ) = 2 e r(i−− 1 , j ) = 2 Φ (i −1, j ) − Φ (i − 2, j ) + ε Φ (i +1 j ) − Φ (i , j ) + ε Φ (i , j ) − Φ (i −1, j ) + ε Φ (i , j ) − Φ (i −1, j ) + ε 94 3. para a direção Y e face S N , tem-se: 1 ⎧ + ,v (i , j + 1 ) > 0 ⎪Φ (i , j ) + 2 Ψ λ(i , j + 12) Φ (i , j ) − Φ (i , j −1) 2 ⎪ Φ (i , j + 1 ) = ⎨ 2 1 − ⎪Φ (i , j +1) − Ψ λ(i , j + 12 ) Φ (i , j + 2) − Φ (i , j +1) ,v (i , j + 12 ) < 0 ⎪ 2 ⎩ ( ( )( )( ) ) em que: λ(+, j + i 4. 1 2 )= Φ (i , j +1) − Φ (i , j ) + ε Φ (i , j ) − Φ (i , j −1) + ε e λ(−, j + 1 ) = i 2 Φ (i , j +1) − Φ (i , j ) + ε Φ (i , j + 2) − Φ (i , j +1) + ε para a direção Y e face SS , tem-se: 1 ⎧ + ⎪Φ (i , j −1) + 2 Ψ λ(i , j − 12) Φ (i , j −1) − Φ (i , j − 2) ,v (i , j − 12) > 0 ⎪ Φ (i , j − 1 ) = ⎨ 2 ⎪Φ − 1 Ψ λ − 1 Φ ,v (i , j − 1 ) < 0 (i , j +1) − Φ (i , j ) (i , j − 2 ) 2 ⎪ (i , j ) 2 ⎩ ( )( ) ( )( ) em que: λ(+, j − ) = i 1 2 Φ (i , j ) − Φ (i , j −1) + ε Φ (i , j −1) − Φ (i , j − 2) + ε e λ(−, j − 1 ) = i 2 Φ (i , j ) − Φ (i , j −1) + ε Φ (i , j +1) − Φ (i , j ) + ε , onde, como discutido na seção 5.1.2, as funções r(i+±− , j ) e λ(+,,−± 1 ) verificam se a 1 i j 2 2 monotonicidade do esquema numérico é violada. Por esse motivo, são chamadas de funções suavizantes ou monitores. Pode-se mostrar, denotando τ = r ou τ = λ , que ocorrem as seguintes condições [TRA2000]: 1. se τ > 0 , então a solução numérica tem um comportamento monotônico, no ponto, crescente ou decrescente; 2. se τ < 0 , então a solução numérica tem um extremo local no ponto, devido às oscilações numéricas; 3. se τ ≈ 1 , a solução numérica tem um comportamento suave no ponto; 4. se τ ≈ 0 ou τ → ∞ , então a solução numérica tem uma descontinuidade no ponto. Assim, se os gradientes têm o mesmo sinal ( τ > 0 ), a função limitadora de fluxo deve determinar uma média ponderada, como discutido na seção 5.1, gerando funções de interpolação de segunda ordem de acurácia para as faces das células. No caso de gradientes terem sinais diferentes ( τ < 0 ), ocorrem oscilações e, nesse caso, uma abordagem para tratar desse problema é tomar Ψ (τ ) = 0 de modo que o esquema é somente de primeira ordem no entorno de descontinuidades ou no entorno de altos gradientes. Isso significa especificar, quando τ > 0 , funções limitadoras que sejam não lineares e nos casos que isso não acontece, ou seja, quando τ ≤ 0 , pode-se especificar funções limitadoras que sejam lineares de primeira ordem de acurácia. Além disso, essas funções limitadoras devem ser, em quaisquer casos, tais que os valores muito maiores do que a unidade sejam “naturalmente” limitados. Note-s, porém, que Zijlema [ZIJ97] mostra que esquemas TVD não necessitam ser de primeira ordem de acurácia nos pontos extremos, mas reduzir localmente a solução para primeira ordem de acurácia em pontos extremos é a abordagem tradicionalmente encontrada na literatura técnica. Exemplos são os trabalhos “Numerical Convection Schemes in Phoenics” [SPA2001], que implementa diversas funções de interpolação, e o artigo original de Osher e Chakravarthy, “High Resolution 95 Schemes and the Entropy Condition” [OSH84]. Assim, essa foi a escolha implementada neste trabalho, pois foi a que se mostrou numericamente mais robusta e mais simples de implementar. 5.1.4 Funções limitadoras de fluxo Vários limites para os fluxos são propostos na literatura técnica, como pode ser visto em [WAT95] [HUN95], [ZIJ95], [ZIJ97], [SPA2001], [SNO98] e [HEI99]. Essa variedade de funções limitadoras de fluxos decorre do fato de que o emprego do esquema −Κ de van Leer não obedece à condição (5.3), pois é linear e causa oscilações em regiões onde existem altos gradientes. Funções limitadoras de fluxos não diferenciáveis podem ser desenvolvidas notando que a função de van Leer pode ser escrita como: Ψ Κ (r ) = 1 1 (1 + Κ ) r + (1 − Κ ) 2 2 e, assim, para assegurar que esse esquema seja TVD, impõe-se a condição (5.3), de modo que se obtém uma classe de funções de restrição de fluxos, que é dada por: Ψ Κ ,M (r ) = max ⎡0, min ( Ψ Κ ,M ≥1 , 2r ) ⎤ ⎣ ⎦ Essa classe de funções de restrição de fluxo, e outras mais, tem a vantagem de ter alta flexibilidade, no sentido de definir esquemas lineares e não lineares. Uma desvantagem é que a função Ψ não é diferenciável, o que pode afetar, em alguns casos, o comportamento da solução [ZIJ95]. O parâmetro M permite controlar a solução de altos gradientes. Um grande valor de M conduz a uma melhor acurácia no entorno desses gradientes. Porém, para manter a monotonicidade da solução, essa escolha exige que o passo de tempo seja muito pequeno, o que é indesejável visto que se deve manter a eficiência computacional. Com essas estratégias e idéias, pode-se introduzir uma abordagem unificada de modo a não modificar as funções interpolantes já desenvolvidas, sendo que o esquema numérico resultante depende apenas de qual função de restrição de fluxos é empregada para a solução de escoamentos e/ou de transporte escalar de substâncias multidimensionais dominados pela advecção, ou para solução daqueles eventos em que a difusão é importante. Neste trabalho são implementadas e analisadas uma ampla coleção de funções, composta de 32 funções de restrição de fluxo. Muitas dessas funções foram geradas particularizando esta ou aquela função limitadora através da especificação de parâmetros constantes. Por exemplo, tomando Φ = 2 na função Sweby, tem-se a função Roe Superbee; tomando Φ = 1 na função Chakravanthy-Osher, gera-se a função Minmod; tomando Κ = −1 e M = 1 na função PL-Kappa, tem-se a função Davis; tomando Κ = 1 3 e M = 2 na função PL-Kappa gera-se a função Koren, e assim por diante. Com algumas funções básicas, gera-se uma série de esquemas numéricos lineares e não lineares, como em [HUN95], [ZIJ95], [ZIJ97] e [HEI99], que fornecem soluções positivas ou TVD. Como discutido anteriormente, quando a monotonicidade é violada, as funções monitores são tais que τ < 0 . Nesse caso, as funções de restrição de fluxo retornam zero, ou seja, Ψ (τ ) ≡ 0 gerando, quando aplicadas às funções de interpolação de fluxo dadas na seção 5.1.3, o esquema upwind de primeira ordem de acurácia. Além disso, quando determinada função de restrição de fluxo não estiver definida em algum ponto do domínio, escolhe-se, para efeito de implementação e para simplificar o tratamento computacional das exceções, que tal função seja, também, tal que Ψ (τ ) ≡ 0 . Sob 96 essas considerações, e denotando, nessa seção, a expressão caso contrário simplesmente por CC, os limites analisados e implementados neste trabalho são: a) Limites diferenciáveis 1. LUS (Linear Upwind Scheme - linear de primeira ordem): Ψ (r ) ≡ 0 2. Kappa, com Κ=1/3 (linear de alta ordem): 1 ⎧1 ⎪ (1 + Κ ) r + (1 − Κ ) , se r > 0 e − 1 ≤ Κ ≤ 1 Ψ ( Κ,r ) = ⎨ 2 2 ⎪0, CC ⎩ 3. Kappa simétrico, com Κ=1/3 (linear de alta ordem): 1 ⎧1 ⎪ (1 − Κ ) r + (1 + Κ ) , se r > 0 e − 1 ≤ Κ ≤ 1 Ψ ( Κ,r ) = ⎨ 2 2 ⎪0, CC ⎩ s 4. QUICK (Quadratic Upwind Scheme) Kappa com K=0,5 (linear de alta ordem): 1 ⎧3 ⎪ r + , se r > 0 Ψ (r ) = ⎨ 4 4 ⎪0, CC ⎩ 5. CHARM (Cubic-Parabolic High Accuracy Resolution Method) (não linear): ⎧r ( 3r + 1) , se r > 0 ⎪ 2 Ψ (r ) = ⎨ (r + 1) ⎪ ⎩0, CC 6. HCUS (Harmonic Cubic Upwind Scheme) (não linear): ⎧ 3 (r + r ) , se r > 0 ⎪ Ψ (r ) = ⎨ 2 ( r + 2 ) ⎪ ⎩0, CC 7. HQUICK (Harmonic Quadratic Upwind Scheme) (não linear): ⎧ 2 (r + r ) , se r > 0 ⎪ Ψ (r ) = ⎨ (r + 3 ) ⎪ ⎩0, CC 8. USR-Kappa (Upstream Symmetric Limiter), com Κ=0 (linear): 1 ⎧ ⎪(r + r ) , se 0 < r ≤ 3 ⎪ 2 ⎪ ( 8 + 9Κ ) + ( 2 −12Κ ) r + 2 + 3Κ 1 Ψ ( Κ,r ) = ⎨ , se r > 2 3 3 (1 + r ) ⎪ ⎪0, CC ⎪ ⎪ ⎩ 9. R-Kappa, com Κ=1/3 (não linear): 97 ⎧ −r 2 + ( 3 + Κ ) r − Κ r+r ) , se 0 < r ≤1 e −1 ≤ Κ < 0 ⎪( 2 (1 + r ) ⎪ ⎪ 2+ Κ r −Κ ) ⎪( , se r ≥1 e −1 ≤ Κ < 0 ⎪ Ψ ( Κ,r ) = ⎨ 1+ r ⎪ ⎪(r + r ) (1 + Κ ) r + 1 − Κ , se 0 ≤ Κ ≤1 2 ⎪ (1 + r ) ⎪ ⎪0, CC ⎩ 10. van Leer harmônico (TVD) (não linear): ⎧ (r + r ) , se r > 0 ⎪ Ψ (r ) = ⎨ (1 + r ) ⎪ ⎩0, CC 11. van Albada (não linear): ⎧ (r 2 + r ) ⎪ , se r > 0 Ψ (r ) = ⎨ (r 2 + 1) ⎪ ⎩0, CC 12. Ospre (não linear): ⎧ 3 (r 2 + r ) ⎪ , se r > 0 Ψ (r ) = ⎨ 2 (r 2 + r + 1) ⎪ ⎩0, CC 13. Fromm (linear): 1 ⎧1 ⎪ r + , se r > 0 Ψ (r ) = ⎨ 2 2 ⎪0, CC ⎩ 14. 23A (não linear): ⎧ 4r 2 + 2r , se r > 0 ⎪ 2 Ψ (r ) = ⎨ 3 (r + 1) ⎪ ⎩0, CC 15. 23B (não linear): ⎧ 2r 2 + r , se r > 0 ⎪ Ψ (r ) = ⎨ 2r 2 − r + 2 ⎪0, CC ⎩ 16. ISNAS (Interpolation Scheme which is Nonoscillatory for Advected Scalars) (não linear): ⎧ (r + r ) ( 3r + 1) , se r > 0 ⎪ Ψ (r ) = ⎨ 2 (r + 1)2 ⎪ ⎩0, CC 98 b) Limites não diferenciáveis: 17. Sweby: ⎧max ⎡0,min ( Φr ,1) ,min (r , Φ ) ⎤ , se r > 0 e − 1 ≤ Φ ≤ 1 ⎪ ⎣ ⎦ Ψ (r , Φ ) = ⎨ ⎪0, CC ⎩ 18. Chakravanthy-Osher: ⎧ ⎪max ⎡0,min (r , Φ ) ⎤ , se r > 0 e − 1 ≤ Φ ≤ 1 ⎣ ⎦ Ψ (r , Φ ) = ⎨ ⎪0, CC ⎩ 19. MC (Monotonized Central): ⎧ ⎡ ⎛1 + r ⎞⎤ ,min ( 2,2r ) ⎟ ⎥ , se r > 0 ⎪max ⎢0,min ⎜ Ψ (r ) = ⎨ ⎝ 2 ⎠⎦ ⎣ ⎪0, CC ⎩ 20. USPL-Kappa(Upstream Symmetric Piecewise Linear), com Κ=0: ⎧ 2⎞ ⎡ ⎤ ⎛ ⎪max ⎢0,min ⎜ 2r , ⎟ ,min ( M , Ψ ( Κ,r ) ,2r ) ⎥ , se 3⎠ ⎝ ⎣ ⎦ ⎪ ⎪ r > 0 e −1 ≤ Κ ≤ 1 e M ≥ 1 Ψ ( Κ, r , M ) = ⎨ ⎪0, CC ⎪ ⎪ ⎩ 21. DPL-Kappa (Diffusive Piecewise Linear Kappa), com Κ=0,75 e M=3/2: ⎧ ⎡r + r ⎛ ⎛ 2r 2 ⎞ ⎞⎤ ,min ⎜ M + , Ψ ( Κ,r ) , ⎜ 2 + ⎟ r ⎟ ⎥ , se ⎪max ⎢ ⎜ Pe Pe ⎠ ⎟ ⎥ ⎪ ⎢ Pe ⎝ ⎝ ⎠⎦ ⎣ ⎪ Ψ ( Κ,r , M , Pe ) = ⎨ r > 0 e M ≥ 1 e Pe > 4 (1 + Κ ) e 0 < Κ < 1 ⎪0, CC ⎪ ⎪ ⎩ 22. MPL1-Kappa (Modified Piecewise Linear 1), com Κ=0 e α=0: ⎧ 2⎞ ⎡ ⎛ ⎪ max ⎢0,min ⎜ 2r , ⎟ ,min ( M , Ψ ( Κ,r ) , ( 2 + α ) 2r ) ⎤ , se ⎦ 3⎠ ⎝ ⎣ ⎪ ⎪ r > 0 e M ≥ 1 e −1 ≤ α ≤ 0 e −1 ≤ Κ ≤ 1 Ψ ( Κ , r , M ,α ) = ⎨ ⎪0, CC ⎪ ⎪ ⎩ 23. MPL2-Kappa (Modified Piecewise Linear 2), com Κ=-1 e α=0: ⎧max ⎡min ( M , Ψ ( Κ,r ) , ( 2 + α ) ,r ) ⎤ ⎤ + min ⎡0,max (α , −αr ) ⎤ , se ⎣ ⎦ ⎦⎦ ⎣ ⎪ ⎪ r > 0 e M ≥ 1 e α ∈ [ −1, −Κ ] ∩ [ −1,0] e − 1 ≤ Κ ≤ 1 Ψ ( Κ , r , M ,α ) = ⎨ ⎪0, CC ⎪ ⎩ 24. SMART (Sharp and Monotonic Algorithm for Realistic Transport) (QUICK limitado)(PL-Kappa(r,1/2,4)): 99 ⎧ ⎡ 3 1 ⎞⎤ ⎛ ⎪max ⎢0,min ⎜ 2r , r + ,4 ⎟ ⎥ , se r > 0 Ψ (r ) = ⎨ 4 2 ⎠⎦ ⎝ ⎣ ⎪0, CC ⎩ 25. UMIST (Upstream Monotonic Interpolation for Scalar Transport) (QUICK limitado, TVD ) (SPL-Kappa(r,1/2,2)): ⎧ ⎡ 1 3 3 1 ⎛ ⎞⎤ ⎪max ⎢0,min ⎜ 2r , + r , + r ,2 ⎟ ⎥ , se r > 0 Ψ (r ) = ⎨ 4 4 4 4 ⎝ ⎠⎦ ⎣ ⎪0, CC ⎩ 26. MUSCL (Monotonic Upstream Scheme for Conservation Laws) (Fromm limitado, TVD) (SPL-Kappa(r,0,2)): ⎧ ⎡ 1 1 ⎛ ⎞⎤ ⎪max ⎢0,min ⎜ 2r , + r ,2 ⎟ ⎥ , se r > 0 Ψ (r ) = ⎨ 2 2 ⎝ ⎠⎦ ⎣ ⎪0, CC ⎩ 27. Roe Superbee (TVD) (Sweby(r,2)): ⎧ ⎪max ⎡0,min ( 2r ,1) ,min (r ,2) ⎤ , se r > 0 ⎣ ⎦ Ψ (r ) = ⎨ ⎪0, CC ⎩ 28. Minmod (Minimum Modulus - Chakravanthy-Osher(r,1)): ⎧ ⎪max ⎡0,min (r ,1) ⎤ , se r > 0 ⎣ ⎦ Ψ (r ) = ⎨ ⎪0, CC ⎩ 29. Koren (CUS limitado, TVD)(PL-Kappa(r,1/3,2)): ⎧ ⎡ 2r 1 ⎞ ⎤ ⎛ + ,2 ⎟ , se r > 0 ⎪max ⎢0,min ⎜ 2r , Ψ (r ) = ⎨ 3 3 ⎠⎥ ⎝ ⎣ ⎦ ⎪0, CC ⎩ 30. Davis (PL-Kappa(r,-1,1)), com Κ=-1: ⎧ ⎡ ⎤ ⎪max ⎣0,min (1, Ψ ( −1, r ) ,2r ) ⎦ , se r > 0 Ψ ( Κ,r ) = ⎨ ⎪0, CC ⎩ 31. Hundsdorfer, com Κ=1: ⎧ ⎧ 1 1 ⎤⎫ ⎡ ⎪max ⎨min (1, r ) ,min ⎢min (1, r ) , + r ⎥ ⎬ , se r > 0 Ψ (r ) = ⎨ 3 6 ⎦⎭ ⎣ ⎩ ⎪0, CC ⎩ 32. Kappa-PSI com Φ=1,25 ⎧max(0.0,min(Φ r ,1.0)), se r > 0 Ψ ( Κ,r ) = ⎨ ⎩0, CC As funções de limitação de fluxo PL-Kappa (Piecewise Linear) e SPL-Kappa (Symmetric Piecewise Linear) foram empregadas para gerar, respectivamente, as funções UMIST e MUSCL e, SMART, Koren e Davis. Na literatura encontram-se várias funções que servem de benchmark para verificar a qualidade de esquemas numéricos, como podem ser vistos em [BAP95], [GRO99], [ZOU99], [BYU99] e [AWA00]. Neste trabalho, as soluções numéricas foram 100 verificadas analisando-se o caso 1D quando da aplicação da função de restrição de fluxo às funções de interpolação de fluxo para a solução da advecção horizontal (6.8). Nos experimentos numéricos empregou-se a conhecida função teste, a “onda quadrada” (square wave), dada como sendo o perfil inicial de concentração S 0 . Todos os tempos de CPU apresentados foram normalizados com respeito ao esquema upwind fluxo numérico. As diferentes soluções numéricas para esse problema são comparadas com a sua solução numérica discreta exata, que é expressa por S = S 0 Δx Δy Δt . A análise e comparação da solução numérica fornecida por um particular esquema de solução e a solução discreta exata são feitos, neste trabalho, empregando as métricas discutidas no anexo 2 e considerando que o avanço da solução exata é caracterizado pelo número de Courant Cr = u Δt Δx . Ele é que determina o quanto a solução pode se deslocar durante um mesmo passo de tempo. Ou seja, o número de Courant fornece o número de células (ou fração de célula) que uma solução é advectada em um passo de tempo. As tab. 5.1 a 5.3 mostram os resultados obtidos quando da aplicação da função de restrição de fluxo UMIST as essas funções de interpolação de fluxo, mas no anexo 4 encontram-se tabelados (tab. A4.1 a A4.45) os resultados, discutidos, para todas as funções de restrição, de 1. a 32. Os resultados das tab. 5.1 a 5.3 foram os obtidos com a onda quadrada de perfil 1 × 10 × 10 , representando a concentração inicial S 0 = 1, 0 de comprimento de 10 espaçamentos de malha em cada direção coordenada. O pulso onda quadrada é advectado na direção X (os resultados para a direção Y são idênticos) com os parâmetros Δx = Δy =1, 0m , Δt = 1, 0s , u = 0, 25m / s e v = 0, 0m / s . A distância de advecção é de 50Δx , que é obtida depois de 200 passos de tempo, pois o número de Courant é Cr = u Δt Δx = 0,25 . Nesse caso empregou-se uma malha de 100 × 100 pontos. Outros experimentos mais sofisticados podem ser vistos na bibliografia mencionada, mas neste trabalho empregou-se a onda quadrada, e os experimentos numéricos são efetuados para diferentes números de Courant. Seus resultados, onde RMQ significa raiz média quadrada, são como: TABELA 5.1 - Resultados para o teste com a onda quadrada e o esquema UMIST Cr=0,40 Cr=0,25 métrica × esquema massa total (exata) 100,000000 100,000000 massa total (numérica) 99,9999771 100,000007 razão do pico (RP) 0,9999982 1,0000065 conhecimento para a RP -0,0000001 -0,0000002 razão de massa 0,9999994 0,9999996 |1 - razão de massa| 0,0000005 0,0000003 razão de distribuição 0,8898882 0,9236349 máximo (numérico) 0,9999982 1,0000065 mínimo (numérico) -0,0000001 -0,0000002 erro absoluto médio 0,0022301 0,0049246 erro da RMQ 0,1048088 0,0912286 norma L1 0,1930242 0,9999925 norma L2 0,2370105 0,9610593 0,4584135 1,0000065 norma L∞ tempo total (normalizado) 1,0523 1,0591 Uma discussão completa sobre todas as funções de restrição implementadas é como aquela apresentada no anexo 4, onde se analisam os resultados da aplicação das 101 métricas a todos os esquemas numéricos. Porém, nessa seção somente se discute qualitativamente a função aqui apresentada (UMIST). Nesse caso, a tab. 5.1 mostra que o esquema UMIST é massa conservativo. Esse esquema preserva o pico, indicando que a concentração máxima não é aumentada ou diminuída. Já a métrica do conhecimento para a razão do pico, que mede as oscilações introduzidas por esquemas não monotônicos, indica que o esquema não introduz oscilações. A razão de distribuição, que analisa a manutenção do formato do perfil de concentração, mostra que o perfil é mantido com boa aproximação (cerca de 89%). Já as métricas relacionadas aos erros e às normas refletem os resultados anteriores, mostrando que esse esquema não linear fornece alta qualidade numérica. A tab. 5.2 apresenta os resultados obtidos com as mesmas condições empregadas para aqueles da tab. 5.1, somente que nesse caso se verifica a influência do uso de precisão simples (float) e de precisão dupla (double) nos resultados numéricos do esquema UMIST. TABELA 5.2 - Experimento numérico para a onda quadrada com Cr=0,25. Análise da precisão dos resultados do esquema UMIST com parâmetros 0,00025, 100x100, 200 ciclos, S0×10×10 S0=1 e double S0=1 e float métrica × concentração massa total (exata) 100,00000000000 100,00000000000 massa total (numérica) 99,99997711182 99,99996948242 razão do pico (RP) 0,999998211861 0,999996244907 conhecimento para a RP -0,000000198382 -0,000000198867 razão de massa 0,999999465942 0,999999313354 |1 - razão de massa| 0,000000534058 0,000000686646 razão de distribuição 0,889888297737 0,889886712409 máximo (numérico) 0,999998211861 0,999996244907 mínimo (numérico) -0,000000198382 -0,000000198867 erro absoluto médio 0,002231752050 0,002231760209 erro da RMQ 0,104808839929 0,104808781014 norma L1 0,193024234772 0,193024940491 norma L2 0,237010555258 0,237010346232 0,458413541317 0,458413422108 norma L∞ Os resultados apresentados na tab. 5.2 mostram que os arredondamentos de aritmética de ponto flutuante no esquema numérico são praticamente irrelevantes, sendo os resultados oferecidos com precisão simples praticamente como aqueles oferecidos com o uso de precisão dupla. No anexo 4 apresenta-se um quadro comparativo desse atributo numérico para todas as 32 funções implementadas. Note-se que os parâmetros 0,00025, 100x100, 200 ciclos, S0×10×10 referem-se, respectivamente, a imposição de restrição para as métricas que empregam o erro relativo (RMQ, L1 e L2) onde se considera, para efeito de avaliação, somente as células cuja concentração é maior que 0,00025 mpm/100ml; à malha de pontos empregada no teste; o ciclo (número de passos de tempo) onde os resultados foram verificados; e ao perfil da função de teste, como discutido anteriormente. A tab. 5.3 apresenta os resultados obtidos com o uso de precisão simples e das mesmas condições usadas na obtenção dos resultados mostrados na tab. 5.1, para diferentes perfis de concentração. Ou seja, alterou-se o “pulso” da concentração inicial, de modo a verificar se o esquema numérico retém sua (ótima) qualidade numérica, mesmo sob fortes gradientes de concentração. 102 TABELA 5.3 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para esquema UMIST com parâmetros 0,00025, 100x100, float, S0×10×10 S0=1 S0=104 S0=107 métrica × concentração massa total (exata) 100,000000 1000000,000000 1000000000,000 massa total (numérica) 99,9999771 1000000,000000 999999744,0000 razão do pico (RP) 0,9999982 0,9999966 0,9999947 conhecimento para a RP -0,0000001 -0,0000000 -0,0000000 razão de massa 0,9999994 0,9999995 0,9999995 |1 - razão de massa| 0,0000005 0,0000004 0,0000004 razão de distribuição 0,8898882 0,8898885 0,8898856 máximo (numérico) 0,9999982 9999,9667968 9999947,000000 mínimo (numérico) -0,0000001 -0,0000124 -0,0106831 erro absoluto médio 0,0022301 22,3184309 22318,5496589 erro da RMQ 0,1048088 0,1285871 0,1438643 Norma L1 0,1930242 0,1930321 0,1930331 Norma L2 0,2370105 0,2370108 0,2370101 0,4584135 0,4584104 0,4584104 Norma L∞ Os resultados apresentados na tab. 5.3 mostram que a solução numérica do esquema UMIST mantém toda a qualidade numérica, como as apresentados nas tab. 5.1 e 5.2, mesmo sob situações onde ocorrem elevados “picos” de concentração. As diferenças dos resultados fornecidos pelas métricas relativas aos erros e às normas apenas refletem as diferenças das quantidades envolvidas nos testes das tabelas anteriores e no teste dessa última tabela. No anexo 4 pode-se ver, também, uma análise análoga para outras funções de restrição de fluxo. 5.2 Método beta O método FLM foi empregado, pelos motivos discutidos nas seções 5.1 e no anexo 1, para a obtenção da solução da advecção horizontal da EDP do transporte escalar de substâncias 3D. Por outro lado, a solução da advecção horizontal é obtida com o emprego do método beta desenvolvido por Gross [GRO98]. Essa escolha é induzida por duas questões fundamentais na solução do transporte vertical. A primeira questão é a manutenção da estabilidade da solução, mesmo em regiões “muito rasas” em corpos de água. A segunda questão diz a respeito à difusão numérica, devido ao fato de que ela deve ser menor que a difusão física. Essas questões também foram abordadas no anexo 1, porém, nessa seção destaca-se que o espaçamento vertical da malha é, geralmente, construído de modo que seja muito menor que o espaçamento horizontal da malha. Além disso, as alturas (magnitude do espaçamento vertical) das células das camadas podem ser muito pequenas, aproximando-se de zero em células que sofrem os processos de alagamento e de secamento. Para manter a estabilidade da solução numérica nesses casos, uma discretização explícita para a advecção vertical exige um passo de tempo muito pequeno, menor que o necessário, quando se considera somente o aspecto da acurácia, o que reduz a eficiência computacional. Uma solução para esse problema é construir um esquema completamente implícito. Porém, nesse caso, a dependência de dados torna complicada a obtenção de uma solução paralela eficiente. A segunda questão considera o fato de que uma difusão numérica excessiva, produzida pela solução do transporte vertical, encobrirá a difusão física, calculada pelo modelo de turbulência, tornando inócua a modelagem turbulenta e o cálculo preciso da mistura vertical (ver anexo 1). 103 A alternativa é, portanto, desenvolver um esquema semi-implícito para o transporte vertical, de modo que a componente horizontal seja aproximada explicitamente como, por exemplo, pelo método FLM. A componente vertical deve ser aproximada implicitamente. Essa abordagem mantém a estabilidade da solução e maximiza sua eficiência computacional, características altamente desejáveis em modelos 3D. Um exame detalhado da literatura técnica disponível mostrou poucas alternativas para obter um esquema semi-implícito com essas características. Uma abordagem é tratar os termos explícitos do transporte escalar com um esquema semiLagrangeano como feito em [CAS92], que não tem os atributos de ser altamente acurado e massa conservativo. Um esquema de solução que obedece tais exigências é o esquema − β , que foi desenvolvido por Gross [GRO98]. Esse esquema é semi-implícito e obtido através da combinação do método −θ com o esquema QUICK de Leonard [LEO79], e é empregado para resolver semi-implicitamente a advecção vertical. A difusão vertical é resolvida empregando o método semi-implícito Crank-Nicolson. A combinação desses dois métodos gera um esquema numérico semi-implícito para o transporte vertical. A análise da difusão mostrou que o esquema − β tem difusão numérica de pelo menos uma ordem de magnitude menor que a difusão física (ver anexo 1). Além disso, apesar de o método permitir o surgimento de alguma oscilação numérica, ele é de segunda ordem de acurácia, para todos os números de Courant. Assim, o método − β de Gross tem os atributos necessários à solução de alta qualidade numérica. A difusão vertical é resolvida com o método Crank-Nicolson, dado que o objetivo é manter a estabilidade do esquema, mesmo quando o espaçamento vertical Δz é pequeno. Os termos de difusão são agregados às CC do modelo de transporte vertical, como mostrado na seção 4.7. Assim, os esquemas numéricos resultantes para o transporte vertical podem ser empregados em regiões com grande variação no número de Courant, dado que essa característica é marcante em lagos e estuários, pois, embora predominem escoamentos com baixos números de Courant, escoamentos com altas velocidades verticais podem ocorrer, sobretudo em regiões com fortes gradientes batimétricos ou bruscos movimentos baroclínicos [GRO98]. Na construção do método − β para a solução da advecção vertical considera-se, n n inicialmente, a advecção escrita na forma fluxo Sk +1 = Sk − C z (SU − S L ) , onde C z = w ( Δt Δz ) é o número de Courant, Δt é o passo de tempo, e S L e SU são os fluxos nas faces inferior e superior, respectivamente. Esse esquema é conservativo, por construção, se (S L )k = (SU )k −1 e, assim, basta especificar aproximações para SU , pois a aproximação para S L é obtida simplesmente empregando um deslocamento para a esquerda no índice k . Considerando inicialmente que as velocidades são positivas, o fluxo superior interpolado com método QUICK fornece a expressão: SU = 1 n (Sk + Skn+1 ) − 1 (Skn−1 − 2Skn + Skn+1 ) 2 8 porém, o esquema QUICK é explícito e não é estável para a advecção pura [GRO98]. Um modo de melhorar sua estabilidade e acurácia é empregar a abordagem trapezoidal [HIR92] na sua forma particular, o método −θ , onde 0 < θ <1 . Nessa situação, o fluxo SU é aproximado como: 104 SU = θ (S 2 n +1 k n +1 + Sk +1 ) + 1−θ n (Sk + Skn+1 ) − 1 (Skn−1 − 2Skn + Skn+1 ) ⎫ (5.7 ) ⎬ 2 8 ⎭ n n n onde em (5.7) o termo de correção do esquema QUICK é 0,125 Sk −1 − 2Sk + Sk +1 e é ( ) explícito para que a matriz seja do tipo 3-diagonal, já visando a obter um esquema numérico que seja semi-implícito, ficando a “implicidade” restrita à componente vertical, sendo a componente horizontal completamente explícita. Nessa situação a paralelização do modelo de transporte 3D considera somente uma decomposição 2D, onde a dependência de dados fica restrita apenas à coluna de água. Isso é particularmente atraente sob o ponto de vista da solução paralela, pois o particionamento do domínio pode ser apenas em duas dimensões. Essas questões são tratadas no capítulo 7. Quando se toma θ = 0,5 em (5.7), o esquema é estável e tem acurácia temporal de segunda ordem. Porém isso se verifica somente quando C z ≤ 1. Para manter a estabilidade para altos números de Courant, emprega-se o β − esquema, que depende do número de Courant. Com isso a interpolação do fluxo 0 < βk ≡ βk (C z ) < 1 é como definido por (A1.2), e é dado por: n n SU = βk (Cz ) ⎡θ Sk +1 + (1 − θ ) Sk ⎤ ⎣ ⎦ SU , onde ⎫ ⎪ 1 n θ n +1 n +1 1 −θ n ⎡ ⎤ ⎬ ( 5.8 ) n n n Sk + Sk +1 ) − (Sk −1 − 2Sk + Sk +1 ) ⎥ ⎪ + (1 − βk (Cz ) ) ⎢ (Sk + Sk +1 ) + ( 2 8 ⎣2 ⎦⎭ Sendo o esquema conservativo, isto é, vale que (S L )k = (SU )k −1 , a expressão para o fluxo S L é obtida diretamente de (5.8) como: n +1 n SL = βk (Cz ) ⎡θ Sk −1 + (1 − θ ) Sk −1 ⎤ ⎣ ⎦ ⎫ ⎪ ⎬ ( 5.9) 1 n ⎡ θ n +1 n +1 1 − θ n n n n ⎤ + (1 − βk (Cz ) ) ⎢ (Sk −1 + Sk ) + (Sk −1 + Sk ) − 8 (Sk −2 − 2Sk −1 + Sk )⎥ ⎪ 2 ⎣2 ⎦⎭ n n Desse modo, a expressão Sk +1 = Sk − C z (S u − S L ) é aproximada, usando (5.8) e (5.9) como: 1 ⎡ n n n n +1 n n +1 n +1 ⎤ Sk +1 + θ C z ⎢ βk +1 (Sk +1 − Sk −1 ) + (1 − βk +1 )(Sk −1 + Sk −1 ) ⎥ 2 ⎣ ⎦ ⎫ ⎪ ⎪ ⎡ n n 1 ⎪ ⎤⎪ n n n n n = Sk − (1 − θ ) C z ⎢ βk (Sk + Sk −1 ) + (1 − βk )(Sk +1 − Sk −1 ) ⎥ ⎬ 2 ⎦⎪ ⎣ ⎪ 1 n n n n n − (1 − βk )(Sk − 2 − 3Sk −1 + 3Sk − Sk +1 ) ⎪ 8 ⎪ ⎭ (5.10 ) A expressão (5.10) deve ser estabelecida para velocidades positivas e negativas, dado que o escoamento é não permanente e pode mudar de direção, mesmo localmente. Essa formulação pode ser obtida a partir da definição dos números de Courant locais e dos fluxos numéricos na direção vertical. As expressões obtidas são descritas e empregadas na seção 6.5, quando da obtenção dos esquemas numéricos para a ETM 3D. A tab. 5.4 mostra alguns resultados para o esquema beta. 105 TABELA 5.4 - Resultados para o teste para o esquema beta (adaptado de [GRO98]) passo Seno ao quadrado semi-elípse Perfil × esquema numérico Resultados com a métrica do erro absoluto Esquema beta 2,21 0,78 1,90 Upwind trapezoidal 5,34 6,74 7,98 Diferenças centrais trapezoidal 6,99 2,95 3,77 QUICKEST 1,41 0,26 1,16 Os resultados apresentados na tab. 5.4 foram obtidos considerando-se a advecção de três perfis de teste em uma malha uniforme, onde cada perfil foi transportado a uma distância de 45 pontos da malha (espaçamentos verticais, Δz) empregando os parâmetros w=1,0m/s, Δz=0,01m e Δt=0,005s, ou seja, o número de Courant C z = w ( Δt Δz ) = 0,50 . O perfil passo (step) unitário consiste, nesse caso, em estabelecer o valor da concentração como S=1,0 no lado esquerdo e S=0,0 no lado direito. O segundo perfil consiste em uma onda senoide ao quadrado (sine-squared) de comprimento de 20Δz. Esse perfil é expresso como S = sen (π z 20Δz ) , onde 2 0 ≤ z ≤ 20Δz . O terceiro perfil consiste em uma semi-elípse (semi-ellipse) de comprimento de 20Δz, centrada em zc, descrita por S = 1 − ( z − zc ) 2 (10Δz ) 2 , onde 0 ≤ z ≤ 20Δz . Os resultados mostram que os melhores esquemas numéricos são o método beta e o QUICKEST. O esquema upwind é altamente difusivo, enquanto o esquema em diferenças centrais é fortemente oscilatório. Note-se que o esquema QUICKEST, que é explícito, tem uma acurácia um pouco melhor que a do método beta mas isso somente se deve ao fato de que o número de Courant é C z = 0,50 o que garante a estabilidade desse método. A grande vantagem do esquema beta é que ele é, dentro das características discutidas no anexo 1, estável para todos números de Courant, apesar de permitir o surgimento de alguma oscilação, o que não acontece com esquemas explícitos que são, necessariamente, limitados por pelo número de Courant C z ≤ 1,0 . Resultados adicionais, e um ampla discussão sobre os atributos numéricos e computacionais do esquema, beta podem ser vistos em [GRO98]. 106 6 Esquemas numéricos Para obter soluções numéricas estáveis e acuradas, de modo que os sistemas de equações sejam lineares, deve-se construir funções interpolantes para os valores das variáveis dos termos constituintes das EDPs, além de decidir se as aproximações são explícitas ou implícitas, dado que cada qual tem suas vantagens e suas desvantagens. Em geral, um esquema numérico implícito é mais difusivo que o correspondente esquema explícito. Mas a abordagem implícita, por ter estabilidade incondicional, não restringe a magnitude do passo de tempo, que de qualquer modo não pode ser arbitrariamente grande para não degradar a acurácia da solução. Portanto, deve-se ter um compromisso entre a eficiência computacional e a acurácia da solução. Uma estratégia nesse sentido é construir um esquema semiimplícito. É essa a abordagem que norteia este trabalho. Para este trabalho, no caso das ESWs 2D e 3D, seguiu-se a abordagem de Casulli, na qual os gradientes da elevação da superfície nas ECQMs e o divergente da velocidade da EC são discretizados implicitamente. Por questões de estabilidade, os termos de atrito na interface água-sedimento nas ECQMs, são, também, discretizados implicitamente. Os coeficientes de atrito na interface água-superfície livre são discretizados explicitamente. Essa abordagem fornece esquemas numéricos semiimplícitos para a solução do escoamento. No caso da ETM 3D, a abordagem foi a de discretizar implicitamente o transporte vertical, e explicitamente os demais termos. O esquema numérico resultante é semiimplícito. No caso da ETM 2D, os esquemas numéricos também foram construídos através da abordagem semi-implícita. O paralelismo é obtido via decomposição de dados e/ou de domínio, mas essas questões são tratadas no capítulo 7. 6.1 Esquemas semi-implícito: ESW Considerando as escolhas mencionadas anteriormente, a solução para as ESW é obtida através da substituição formal das expressões (4.5) e (4.6), que são as equações da conservação da quantidade do movimento (ECQMx e ECQMy), na expressão (4.3), que é a equação da continuidade integrada na vertical (EC-IV). Com isso obtém-se um sistema de equações lineares e SDP tipo 5-diagonal, cujas incógnitas são somente os termos barotrópicos (gradientes dos níveis da água), e que é escrito como: +1 +1 E (i −1, j )η(ni ,+j1−1) + C (i , j )η(ni ,+j1 + D(i +1, j )η(ni ,+j1+1) + F(i , j −1)η(n −1, j ) + S (i , j +1)η(ni +1, j ) = B (n, j ) i i ) } (6.1) onde os coeficientes são: C (i , j ) n n T T ⎛ Δt ⎞ 2 ⎧ ⎡ ⎫ −1 −1 =1 + g ⎜ ⎟ θ ⎨ ⎣ ( Δ Z ) A ΔZ ⎤ ( i + 1 , j ) + ⎡ ( Δ Z ) A Δ Z ⎤ ( i − 1 , j ) ⎬ ⎦ 2 ⎣ ⎦ 2 ⎭ ⎝ Δx ⎠ ⎩ n n ⎛ Δt ⎞ 2 ⎧ ⎡ T T ⎫ θ ⎨ ( ΔZ ) A − 1 Δ Z ⎤ 1 + ⎡ ( Δ Z ) A − 1 Δ Z ⎤ 1 ⎬ +g⎜ ⎟ ⎦ (i , j + 2 ) ⎣ ⎦ (i , j − 2 ) ⎭ ⎩⎣ ⎝ Δy ⎠ 2 2 n T ⎛ Δt ⎞ 2 ⎡ −1 E(i +1, j ) = − g ⎜ ⎟ θ ⎣( ΔZ ) A ΔZ ⎤(i −1 , j ) ⎦ 2 ⎝ Δx ⎠ n T ⎛ Δt ⎞ 2 ⎡ −1 D(i , j ) = − g ⎜ ⎟ θ ⎣( ΔZ ) A ΔZ ⎤(i + 1 , j ) ⎦ 2 ⎝ Δx ⎠ 2 2 F(i +1, j ) n ⎛ Δt ⎞ 2 ⎡ T −1 =−g⎜ ⎟ θ ⎣( ΔZ ) A ΔZ ⎤(i , j − 1 ) ⎦ 2 ⎝ Δy ⎠ 2 107 n ⎛ Δt ⎞ 2 ⎡ T S( i , j ) = − g ⎜ θ ( ΔZ ) A −1ΔZ ⎤ 1 ⎟ ⎣ ⎦ (i , j + 2) ⎝ Δy ⎠ n n n Δt Δt T T T ⎧ B (n, j ) = − (1 − θ ) ⎨⎡( ΔZ ) U ⎤ (i + 1 , j ) + ⎡( ΔZ ) U ⎤ (i − 1 , j ) ⎫ − (1 − θ ) ⎧⎡( ΔZ ) V ⎤ (i , j + 1 ) ⎬ ⎨⎣ i ⎦ 2 ⎣ ⎦ 2 ⎭ Δy ⎦ Δx 2 ⎩⎣ ⎩ n n n T T T ⎫ Δt ⎧ ⎡ ⎫ + ⎡( ΔZ ) V ⎤ − θ ⎨ ( ΔZ ) A −1G ⎤ 1 + ⎡( ΔZ ) A −1G ⎤ 1 ⎬ ⎬ ⎣ ⎦ (i , j − 12) ⎭ Δx ⎩ ⎣ ⎦ ( i + 2, j ) ⎣ ⎦ ( i − 2, j ) ⎭ n n Δt ⎧ ⎡ T T ⎫ − θ ⎨ ( ΔZ ) A −1G ⎤ 1 + ⎡( ΔZ ) A −1G ⎤ 1 ⎬ + η(ni, j ) ⎣ ⎦ (i , j + 2 ) ⎣ ⎦ (i , j − 2 ) ⎭ Δy ⎩ 2 n +1 n n sendo os vetores U (i + 1 , j ) , V(n,+1 1 ) , ΔZ (i + 1 , j ) , ΔZ (i , j + 1 ) , G (n + 1 , j ) e G (n, j + 1 ) , e as matrizes i j+ 2 i i 2 2 2 2 2 A(n+ 1 , j ) e A(n, j + 1 ) como descritos na seção 4.1. i i 2 2 Os valores das velocidades horizontais, que são responsáveis pela troca das quantidades de movimentos entre as camadas, são calculados resolvendo os N x N y sistemas de equações 3-diagonal e SDP de dimensão N z via algoritmo de Cholesky, após a substituição em (4.5) e (4.5) dos valores dos níveis recém calculados, via algoritmo do GC, em (6.1). As velocidades verticais são obtidas a partir do conhecimento das velocidades horizontais nos níveis de tempo n +1 e n , empregando a expressão (4.4), que é a forma discreta da equação da continuidade, e que é resolvida explicitamente da primeira camada para a última camada (o implementação e os esquemas consideram que a ordem dos índices é crescente de baixo para cima na coluna de água, conforme ilustrado na fig. 6.9) , ou seja, como: w(ni ,+j1,k + 1 2 ) = − (θ −1 − 1 ) w(ni , j ,k + 1 2 ) + w(ni ,+j1,k − 1 2 ) + (θ −1 − 1 ) w(ni , j ,k − 1 2 ) (u Δx ( θ − (v Δy ( − θ −1 −1 n +θ i + 1 2, j ,k ) + Δz (ni + 1 2, j ,k ) − u(ni −θ2, j ,k ) Δz (ni − 1 2, j ,k ) 1 ) n +θ i , j + 1 2,k ) Δz (ni , j + 1 2,k ) − v (ni ,+jθ− 1 2,k ) Δz (ni , j − 1 2,k ) ) + + em que u(ni ± θ , j ,k ) = 0,5u(n ±1 , j ,k ) + 0,5u(ni ± 1 , j ,k ) e v (ni ,+jθ± 1 ,k ) = 0,5v (n ,+j1± 1 ,k ) + 0,5v (n , j ± 1 ,k ) , 1 i 12 i i 2 2 2 2 2 tomando se θ = 0, 5 . As velocidades verticais são responsáveis pela troca de massa. A ESW como sendo um caso particular das ESW 3D com apenas uma camada, e denotada como ESW 2D, de modo a diferenciá-la das ESW 2D integrada na vertical (ESW 2D-IV). O sistema de equações para as ESW 2D e para as ESW 2D-IV é análogo ao (6.1). Mas, nesses dois casos, seus coeficientes são: E (i +1, j ) n 2 ⎛ ⎛ Δt ⎞ 2 ⎜ h u (i − 12, j ) + η(i −1) =−g⎜ ⎟ θ ⎜ sn ⎝ Δx ⎠ 1 + Δtτ x (i − 12, j ) ⎝ n 2 ⎛ ⎛ Δt ⎞ 2 ⎜ h u (i + 12, j ) + η(i ) =−g⎜ ⎟ θ ⎜ sn ⎝ Δx ⎠ 1 + Δtτ x (i + 12, j ) ⎝ ⎞ ⎟ ⎟ ⎠ D(i +1, j ) ⎞ ⎟ ⎟ ⎠ F(i +1, j ) n 2 ⎛ ⎛ Δt ⎞ 2 ⎜ hv (i , j − 12) + η( j −1) =−g⎜ ⎟ θ ⎜ sn ⎝ Δy ⎠ ⎜ 1 + Δtτ y (i , j − 1 ) 2 ⎝ ⎞ ⎟ ⎟ ⎟ ⎠ 108 S (i , j +1) n 2 ⎛ ⎛ Δt ⎞ 2 ⎜ hv (i , j + 12) + η( j ) =−g⎜ ⎟ θ ⎜ sn ⎝ Δy ⎠ ⎜ 1 + Δtτ y (i , j + 1 ) 2 ⎝ ⎞ ⎟ ⎟ ⎟ ⎠ C (i , j ) n ⎧⎛ 2 ⎛ Δt ⎞ 2 ⎪⎜ h u (i + 12, j ) + η( j ) =1 + g ⎜ ⎟ θ ⎨⎜ sn ⎝ Δx ⎠ ⎪⎝ 1 + Δtτ x (i + 12, j ) ⎩ n ⎧⎛ 2 ⎛ Δt ⎞ 2 ⎪⎜ hv (i , j + 12) + η( j ) +g⎜ ⎟ θ ⎨⎜ sn ⎝ Δx ⎠ ⎪⎜ 1 + Δtτ y (i , j + 12) ⎩⎝ ⎞ ⎛ h 1 + ηn ( j −1) ⎟ + ⎜ u (i − 2, j ) n ⎟ ⎜ 1 + Δtτ s 1 x (i − 2, j ) ⎠ ⎝ ⎞ ⎛h + η(nj −1) ⎟ + ⎜ v ( i , j − 12 ) ⎟ ⎜ 1 + Δt τ s n ⎟ ⎜ y (i , j − 1 ) 2 ⎠ ⎝ ⎞⎫ ⎟⎪ ⎬ ⎟⎪ ⎠⎭ ⎞⎫ ⎟⎪ ⎟⎬ ⎟⎪ ⎠⎭ B (n, j ) = − i Δt (1 − θ ) ⎡ hu (i + 12, j ) + η(ni ) U (ni + 12, j ) − hu (i − 12, j ) + η(ni −1) U (ni − 12, j ) ⎤ ⎢ ⎥ ⎣ ⎦ Δx t − (1 − θ ) ⎡ hv (i , j + 12) + η(nj ) V(n, j + 12) − hv (i , j − 12) + η(nj −1) V(n, j − 12) ⎤ i i ⎢ ⎥ ⎣ ⎦ Δy ⎞ ⎛ h 1 + ηn (i −1) ⎟ FU n 1 − ⎜ u (i − 2, j ) n (i + 2, j ) ⎜ s ⎟ 1 + Δtτ x (i − 12, j ) ⎠ ⎝ ⎞ ⎛h + η(nj −1) v ( i , j − 12 ) n ⎟ FV −⎜ ⎟ (i , j + 12) ⎜ 1 + Δtτ s n ⎟ ⎜ y (i , j − 1 ) 2 ⎠ ⎝ def def ( ( ) ) ( ( ) ) n ⎡⎛ Δt ⎢⎜ h u (i + 12, j ) + η(i ) − θ s Δx ⎢⎜ 1 + Δtτ x n 1 (i + 2, j ) ⎢⎝ ⎣ ⎤ ⎞ ⎟ FU n 1 ⎥ (i − 2, j ) ⎥ ⎟ ⎥ ⎠ ⎦ ⎤ ⎞ ⎥ + ηn ⎟ FV n (i , j ) ⎟ ( i , j − 12 ) ⎥ ⎟ ⎥ ⎠ ⎦ Δt θ − Δy def ⎡⎛ h + η(nj ) ⎢⎜ v (i , j + 12 ) ⎢ ⎜ 1 + Δt τ s n y (i , j + 1 ) ⎢⎜ 2 ⎣⎝ def onde η(n ) = η(n, j ) ou η(n ) = η(n −1, j ) e, η(nj ) = η(n, j ) , ou η(n ) = η(n, j −1) , dependendo da i i i i i i i direção das velocidades horizontais. Note-se, porém, que neste trabalho, o esquema numérico semi-implícito para as ESW integradas na vertical (2D-IV) foi desenvolvido independentemente do 3D e de seu caso particular, as ESW 2D. Em qualquer caso, os sistemas de equações resultantes são lineares, tipo 5-diagonal, e SDP quando satisfeitas as condições: 0,5 η(ni ±1, j ) + η(ni , j ) + hu (i ± 12, j ) > 0 e 0,5 η(ni , j ±1) + η(n, j ) + hv (i , j ± 12) > 0 i onde h u (i ± 1 , j ) e hv (i , j ± 1 ) são as batimetrias nas direções X e Y . No caso das ESW 2D 2 2 tomou-se θ = 0,5 e no caso das ESW 2D-IV tomou-se θ = 1 (acurácia temporal de primeira ordem). As alturas nas ESW 2D-IV foram obtidas através das expressões: ( ) ( ) Hu(ni ± 1 , j ) = 0,5 η(n ±1, j ) + η(n, j ) + 2hu (i ± 1 , j ) e Hv (ni , j ± 1 ) = 0,5 η(ni , j ±1) + η(n, j ) + 2 hv (i , j ± 1 ) i i i 2 2 2 2 enquanto as alturas das ESW 2D são obtidas como: def def ( ) ( ) Hu(ni ± 1 , j ) ≡ h u (i ± 1 , j ) + η(ni ± ( I +1 2), j ) e Hv (ni , j ± 1 ) ≡ hv (i , j ± 1 ) + η(ni , j ± ( J +1 2)) 2 2 2 2 em que I e J são as funções sinal definidas na seção 4.4. Desse modo os algoritmos numéricos para as ESW 2D e 3D fornecem expressões consistentes com os esquemas de solução para a ETM 3D, satisfazendo, portanto a condição CTC. Os esquemas de solução para as ESW 2D-IV não contemplam tal atributo. Para verificar a qualidade das soluções numéricas produzidas pelos modelos de escoamento 2D e 3D, no tocante às velocidades e aos níveis, fizeram-se experimentos numéricos como apresentados e discutidos em [SIL86], [SCE91], [KIM94], [CAS94] e [KAP98]. Esses experimentos consistem na solução da ESW 1D e de um modelo 109 aproximado para as ESW 3D. Desse modo, a verificação entre os resultados teóricos e resultados numéricos são somente entre aqueles resultantes da solução de sistemas de equações simplificados, onde não existem os termos de atrito e de viscosidade. Mas esses modelos teóricos são importantes na fase de verificação, onde se busca investigar a qualidade numérica dos algoritmos desenvolvidos e implementados. As soluções analíticas para as ESW 1D (6.2), bem como para o experimento que trata do modelo 3D, são calculadas através do emprego do software MAPLE V®, que é um pacote de computação simbólica desenvolvido pela Waterloo Maple Inc. O primeiro experimento compara a solução numérica e a solução analítica das equações shallow water 1D. Essas equações são escritas como: ∂η ∂u ⎫ +H = 0⎪ ⎪ ∂t ∂x ⎬ ( 6.2) ∂u ∂η +g =0 ⎪ ⎪ ∂t ∂x ⎭ sendo que a solução analítica de (6.2), no caso dos níveis, é como: η ( x,t ) = a sen ⎜ ω t − u ( x,t ) = 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ⎛ ⎝ x⎞ + η 0 ( x, 0 ) λ⎟ ⎠ e a solução analítica, no caso da componente de velocidade na direção X, é como: a H x⎞ ⎛ gH sen ⎜ ω t − ⎟ λ⎠ ⎝ em que as quantidades físicas envolvidas são como: η = η ( x,t ) : nível de água; u = u ( x,t ) : componente (direção X) da velocidade; H ( x,t ) : profundidade; c = gH : celeridade da onda; a : amplitude; T : período; λ = cT : comprimento de onda; ω = 2π T : freqüência angular; k = 2π λ : número de onda; L : espaçamento na direção da onda (comprimento da malha de teste); η 0 ( x, 0 ) : nível de água de repouso, acima do plano de referência; t : tempo. Substituindo esses parâmetros físicos nos termos de soluções analíticas de (6.2) obtém-se a expressão para os níveis (elevação da superfície): η ( x,t ) = a sen ⎜ ⎛ 2π x ⎞ 0 t− ⎟ + η ( x, 0 ) ⎜T ⎟ gHT ⎠ ⎝ e, a expressão para a componente u da velocidade horizontal, que é dada por: ⎛ 2π x ⎞ gH sen ⎜ t− ⎟ ⎜T gHT ⎟ ⎝ ⎠ Note-se que especificando um nível em um ponto x tem-se uma “onda senoidal” u ( x,t ) = a H propagando-se sem deformação de uma extremidade a outra de um “canal” com 110 profundidade constante. Assim, o primeiro experimento consiste em verificar a qualidade numérica do modelo 2D integrado na vertical e, também, a qualidade numérica do modelo 3D com apenas uma camada. Para esses casos, foram empregados os seguintes parâmetros: 1. 2. 3. 4. 5. 6. 7. 8. u ( x, 0 ) = U ( x, 0 ) ≡ 0 m / s : velocidade inicial; H ( x,t ) = 4, 0m : profundidade uniforme; c = 9, 81 × 4, 0 6, 2642 m / s : celeridade da onda; a = 0,1m : amplitude; T = 720 s : período; L = 2800 m : comprimento do canal; η 0 ( x, 0 ) = 1, 0 m : nível inicial; t = 2160 s : tempo de simulação. Considerando-se uma malha de teste de 7×14 pontos (sete linhas na direção Y por 14 colunas na direção X), simula-se o escoamento na direção X e os níveis de água em um canal retangular com uma profundidade uniforme de 4,0 m. Nesse experimento o espaçamento é Δx = 500m e passo de tempo é Δt = 24s e, portanto, a simulação requer 90 passos de tempos. As fig. 6.1 e 6.2 mostram os resultados analíticos e numéricos obtidos com tais parâmetros. FIGURA 6.1 - Curva obtida com a solução analítica de (6.2) para os níveis de água depois de 90 passos de tempo (720s) e considerando-se o ponto onde se tem L=2800m Modelo 2D e modelo 3D com 1 camada 2.0E-01 Velocidade horizontal (componente u) m/s 1.5E-01 1.0E-01 5.0E-02 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 0.0E+00 -5.0E-02 1 -1.0E-01 -1.5E-01 -2.0E-01 Ponto de malha x=14 (2800m) em t=720s FIGURA 6.2 - Curva obtida com a solução numérica de (6.2) para os níveis de água depois de 90 passos de tempo (720s) e considerando-se o ponto onde se tem L=2800m 111 Na verificação da qualidade da componente horizontal da velocidade, empregouse a métrica do erro relativo e, uma análise comparativa entre os resultados analíticos e os numéricos, como ilustradas nas fig. 6.1 e 6.2, mostra que o erro máximo é menor que 0,5%, o que indica que o modelo é suficientemente acurado. Dado que os níveis de água são calculados somente a partir da camada superior, tanto no modelo 2D quanto no modelo 3D, e os algoritmos numéricos para o cálculo desses níveis são idênticos nos dois modelos, a análise comparativa dos resultados desses níveis é feita no experimento a seguir. Note-se que todos os resultados analisados nas tabelas dessa seção foram obtidos empregando a malha de ponto com 7 linhas e 14 colunas. Porém, os resultados mostrados referem-se somente à linha central (número 4), dado que os resultados para as outras linhas são completamente coincidentes com este. Todas as velocidades verticais (w) e horizontais (u) são nulas no tempo inicial (t=0). Além disso, todos os níveis (elevação da superfície da água) são idênticos, tanto para os modelos 2D quanto para o modelo 3D. O segundo experimento consiste na avaliação das soluções produzidas para o modelo hidrodinâmico 3D. Nesse caso pode-se mostrar, como em [KIM94], que as soluções analíticas são tais que, para os níveis, tem-se: η ( x,t ) = a cos (kx ) cos (ωt ) ⎛ 2π ⎞ ⎛ 2π x ⎟ cos ⎜ = a cos ⎜ ⎝ λ ⎠ ⎝T u ( x,t ) = a c sen (kx ) sen (ω t ) h a ⎛ 2π ⎞ ⎛ 2π gh sen ⎜ x ⎟ sen⎜ = h ⎝ λ ⎠ ⎝T ⎞ t⎟ ⎠ e a velocidade horizontal (componente na direção X) é obtida pela expressão: ⎞ t⎟ ⎠ e onde a velocidade vertical é calculada como: w ( x,t ) = a ω (h + η ) cos (kx ) sen (ωt ) h a 2π 2π 2π = (h + η ) cos ⎛ x ⎞ sen⎛ ⎜ ⎟ ⎜ h T ⎝ λ ⎠ ⎝T ⎞ t⎟ ⎠ Nesse experimento o campo de velocidades e os níveis são simulados em um canal retangular. Tal canal é, também, formado por malha com 7×14 pontos (sete linhas na direção Y por 14 colunas na direção X), e com profundidade total uniforme, quando em repouso, de 4,0 m. O espaçamento horizontal adotado é Δx = 200m . O espaçamento vertical adotado é Δz = 1, 0m e considerou-se um modelo 3D formado com quatro camadas. O passo de tempo é Δt = 5s , e os parâmetros adotados foram: 1. 2. 3. 4. u ( x, 0 ) ≡ 0 m / s : velocidade (horizontal) inicial; w ( x, 0 ) ≡ 0 m / s : velocidade (vertical) inicial; h ( x,t ) = 4, 0m : altura total; c = 9, 81 × 4, 0 6, 2642 m / s quando se considera a altura total h ( x,t ) = 4, 0m (ou apenas uma camada). Para a avaliação das componentes das velocidades horizontais e verticais no caso do modelo 3D com quatro camadas, toma-se h ( x,t ) = Δz = 1, 0m ; 112 5. 6. 7. 8. 9. a = 0, 4 m : amplitude; T = 720 s : período; L = 2800 m : comprimento do canal; η 0 ( x, 0 ) = 1, 0 m : nível inicial; t = 2160 s : tempo de simulação As fig. 6.3 e 6.4 mostram, respectivamente, os resultados analíticos e numéricos obtidos para os níveis de água (elevação da superfície a partir de um plano de referência). FIGURA 6.3 - Curva de níveis obtida com a solução analítica para a elevação do nível da água depois de 432 passos de tempo (2160s), e considerando-se o ponto de malha onde se tem L=2800m Modelos de escoamento 2D e 3D 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 -0.05 -0.1 1 -0.15 -0.2 -0.25 -0.3 -0.35 -0.4 Níveis de água m 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Pontos da malha (tempo=2160 s) FIGURA 6.4 - Curva de níveis obtida com a solução numérica para a elevação do nível da água depois de 432 passos de tempo (2160s), e considerando-se o ponto de malha onde se tem L=2800m Na verificação da qualidade dos níveis de água empregou-se a métrica do erro relativos e, uma análise comparativa entre os resultados analíticos e os numéricos, como nas fig. 6.3 e 6.4, mostrou que erro máximo é de aproximadamente 0,5%. Uma outra análise refere-se às velocidades verticais e horizontais. As velocidade verticais são avaliadas considerando-se a acurácia temporal de primeira e a de segunda ordem. Ou seja, empregando esquemas numéricos com o parâmetro teta θ = 1, 0 e θ = 0, 5 , respectivamente. As fig. 6.5 e 6.6 mostram os resultados obtidos (solução numérica) para as velocidades verticais do modelo 3D com quatro (4) camadas de altura uniforme e igual a 1,0m. Os resultados analíticos não são apresentados em forma de tabelas, e os resultados numéricos são apresentados de modo que as , , ,e indicam, respectivamente, os resultados seqüências para a primeira, segunda, terceira e quarta camadas do modelo 3D. 113 Uma análise comparativa entre os resultados analíticos e os numéricos, mostrados nas fig. 6.5 e 6.6, empregando o erro relativo, mostra que o erro máximo é menor que aproximadamente 0,5% com esquemas de segunda ordem de acurácia, e menor que aproximadamente 1,0% com os esquemas de primeira ordem de acurácia. Modelo 3D com 4 camadas e com teta=1.0 2.50E-04 Velocidades verticais m/s 2.00E-04 1.50E-04 1.00E-04 5.00E-05 0.00E+00 -5.00E-05 1 -1.00E-04 -1.50E-04 -2.00E-04 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Pontos da malha (tempo=2160 s) FIGURA 6.5 - Resultados obtidos com a solução numérica para as velocidades verticais depois de 432 passos de tempo (2160s), empregando o algoritmo de cálculo com acurácia de primeira ordem Modelo 3D com 4 camadas e teta=0.5 2.50E-04 Velocidades verticais m/s 2.00E-04 1.50E-04 1.00E-04 5.00E-05 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0.00E+00 -5.00E-05 1 -1.00E-04 -1.50E-04 -2.00E-04 Pontos de malha (tempo=2160 s) FIGURA 6.6 - Resultados obtidos com a solução numérica para as velocidades verticais depois de 432 passos de tempo (2160s), empregando o algoritmo de cálculo com acurácia de segunda ordem A fig. 6.7 mostra os resultados obtidos para a componente horizontal (direção X, componente u) da velocidade. Modelo 3D com 4 camadas 6.0E-02 Velocidade horizontal (componente u) m/s 4.0E-02 2.0E-02 0.0E+00 -2.0E-02 -4.0E-02 -6.0E-02 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Pontos de malha (tempo=2160 s) FIGURA 6.7 - Resultados obtidos com a solução numérica para as velocidades horizontais (modelo 3D com quatro camadas) depois de 432 passos de tempo (2160s) 114 Uma análise comparativa entre os resultados analíticos e os numéricos, mostrado na fig. 6.7, empregando o erro relativo, mostra que o erro máximo é de 0,1%, indicando que o esquema numérico é suficientemente acurado para simulações de longos períodos de tempo. Note-se, porém, que todos esses experimentos consideram situações ideais para a solução numérica. Na prática a influência da topografia, etc. torna esses resultados insustentáveis impulsionando as pesquisas de modelagem, técnicas numéricas e computacionais, etc. que visam obter soluções condizentes com a realidade física. 6.1.1 Solução explícita para termos das ESW Como discutido no anexo 1, onde se apresenta e discute, entre outras questões, a importância de se desenvolver esquemas semi-Lagrangeanos para a solução do escoamento, neste trabalho optou-se por construir soluções Eulerianas para os operadores explícitos FU (n + 1 , j ) e FV(n, j + 1 ) nas ESW discretas. i i 2 2 Nesse caso, os operadores explícitos agregam as discretizações explícitas para o termos da advecção, dos atritos superior e inferior, da força de Coriolis e da difusão horizontal. Na solução dos termos advectivos para as ESW, emprega-se esquemas numéricos upwind de primeira ordem e, assim, a advecção da ECQMx é aproximada considerando que: n n n n ∂U U (i +3 2 , j ) −U (i + 12 , j ) ∂U U (i + 12 , j ) −U (i − 12 , j ) n ≈ se U (i + 1 , j ) ≥ 0 e se U (n + 1 , j ) <0 ≈ i 2 2 ∂x Δx ∂x Δx n n n n n n ∂U U (i + 12 , j ) −U (i + 12 , j −1) ∂U U (i + 12 , j +1) −U (i + 12 , j ) ≈ ≈ se V (i +2 2 , j ) ≥ 0 e se V (i +2 2 , j ) < 0 ∂y Δy ∂y Δy em que a componente V da velocidade discreta não está definida na posição é aproximado como a média dos quatro pontos (i + 1 2 , j ) . Portanto V (i + 1 , j ) 2 n n circunvizinhos da malha numérica nos quais V n é conhecido, ou seja, como: V (i + 12, j ) = 0,25 V(n, j + 1 ) +V(n, j − 1 ) +V(n+1, j + 1 ) +V(n+1, j + 1 ) i i i i 2 2 2 2 ( ) Os termos de atrito inferior e superior são escritos na forma discreta, respectivamente, como: (τ )( s n x i +1 ,j 2 ) ≈ g ( ( U (n + 1 , j ) i 2 ) ( 2 + V ( i + 12 , j ) n 0,25 Ch (i +1, j ) + Ch (i , j ) ) ) 2 2 Hu(ni + 1 , j ) 2 v , τx ( )( n i + 12, j ) ≈ C D ρar Wx ρágua Hu(ni + 1 , j ) 2 enquanto os termos de Coriolis, e de difusão horizontal que é aproximado via diferenças centrais, são escritos na forma discreta, respectivamente, como: ΦV (i + 12, j ) ≈ Φ0,25 V(n, j + 1 ) + V(n, j − 1 ) + V(n+1, j + 1 ) + V(n+1, j − 1 ) i i i i 2 2 2 2 e n ( ) εh ∇ U 2 n ( i + 12 , j ) ⎡⎛ U n + 3 , j − 2U n + 1 , j + U n − 1 , j ⎞ ⎛ U n + 3 , j +1 − 2U n + 1 , j + U n − 1 , j −1 ⎞ ⎤ i (i 2 ) (i 2 ) (i 2 ) (i 2 ) (i 2 ) ⎟+⎜ ( 2 ) ⎟⎥ ≈ ε h ⎢⎜ 2 2 ⎟ ⎜ ⎟⎥ Δx Δy ⎢⎜ ⎠ ⎝ ⎠⎦ ⎣⎝ Analogamente, o operador explícito para a direção Y agrega as discretizações explícitas para os termos da advecção, dos atritos superior e inferior, da difusão 115 horizontal e do termo de Coriolis. As aproximações para os termos advectivos para a ECQMy que são definidas nos pontos (i , j + 12 ) são tais que: n n n n n n ∂V V(i , j + 12 ) −V(i −1, j + 12 ) ∂V V(i +1, j + 12 ) −V(i , j + 12 ) ≈ ≈ se U (i , j + 12 ) ≥ 0 e se U (i , j + 12 ) < 0 ∂x Δx ∂x Δx n n n n ∂V V(i , j + 12 ) −V(i , j − 12 ) ∂V V(i , j +3 2 ) −V(i , j + 12 ) n n ≈ ≈ se V(i , j + 1 ) ≥ 0 e se V(i , j + 1 ) < 0 2 2 ∂y Δy ∂y Δy onde a componente U da velocidade discreta não está definida na posição (i , j + 1 2 ) . Logo U (i , j + 1 ) é aproximado como a média dos quatro pontos circunvizinhos da malha 2 numérica nos quais U n é conhecido como: n U (i , j + 12) = 0,25 U (n − 1 , j ) + U (n − 1 , j +1) + U (n + 1 , j ) + U (n + 1 , j +1) i 2 i 2 i 2 i 2 n ( ) Analogamente à ECQMx, os termos de atrito inferior e superior são escritos na forma discreta, respectivamente, como: (τ )( s n y i +1 ,j 2 ) ≈ g 0,25 Ch (i , j +1) + Ch (i , j ) ( ( U ( i , j + 12 ) n ) ( 2 + V(n, j + 1 ) i 2 ) 2 ) 2 Hv (ni , j + 1 ) 2 v e τy ( )( n i , j + 12 ) ≈ C D ρar Wy ρágua Hv (ni , j + 1 2 ) enquanto os termos de Coriolis, e de difusão horizontal que é aproximado via diferenças centrais, são escritos na forma discreta, respectivamente, como: ΦU (i , j + 12) ≈ Φ0,25 U (n + 1 , j ) + U (n − 1 , j ) + U (n + 1 , j +1) + U (n − 1 , j +1) i 2 i 2 i 2 i 2 e n ( ) εh ∇ V 2 n ( i , j + 12 ) ⎡⎛ V n, j + 3 − 2V n, j + 1 + V n, j − 1 ⎞ ⎛ V n+1, j + 3 − 2V n, j + 1 + V n−1, j − 1 ⎞ ⎤ i (i (i (i (i (i 2) 2) 2) 2) 2) 2) ⎟+⎜ ( ⎟⎥ ≈ ε h ⎢⎜ 2 2 ⎟ ⎜ ⎟⎥ Δx Δy ⎢⎜ ⎠ ⎝ ⎠⎦ ⎣⎝ em que os detalhes das deduções para as ESW 3D e ESW 2D-IV podem ser encontrados em [RIZ2002a]. Os operadores explícitos empregados nos esquemas numéricos semi-implícitos para as ESW 2D e para as ESW 3D são como nas expressões abaixo. Especificamente no caso das ESW 2D, eles são escritos como: FU (n + 1 , j ) = U (n + 1 , j ) − i i 2 2 ⎫ ⎪ ⎪ n n n ⎪ ⎤ − Δt ⎡ V ni + 1 , j ) − V ni + 1 , j ) U n − U ( i + 1 , j ) + U (i + 1 , j ) U (i − 1 , j ) ( 2 (i + 12, j +1) ⎪ ⎢ 2 2 2 ⎥ 2Δy ⎣ ( 2 ⎦ ⎬ ( 6.3 ) n n n ⎪ ⎤ n n + 2 V (i + 12, j ) U (i + 1 , j ) − V (i + 12, j ) + V (i + 12, j ) U (i + 1 , j −1) ⎥ ⎪ 2 2 ⎦ ⎪ n v n ⎪ +Δt ε h ∇2U (n + 1 , j ) + Δt (τ x ) 1 +Δt ΦV (i + 12, j ) i 2 (i + 2 , j ) ⎪ ⎭ ( Δt ⎡ n U − U (n + 1 , j ) U (n + 3 , j ) + 2 U (n + 1 , j ) U (n + 1 , j ) i 2 i 2 i 2 i 2 ⎢ ( i + 12 , j ) 2Δx ⎣ ( ) ) ( ( ) ) e como: 116 FV(n, j + 1 ) =V(n, j + 1 ) − i i 2 2 ⎫ ⎪ ⎪ n n ⎤ − Δt ⎡ V n n n n − U (i , j + 12) + U (i , j + 12) V(i −1, j + 1 ) ⎥ − V(i , j + 1 ) V (i , j + 3 ) ⎪ 2 2 2 ⎪ ⎢ ( i , j + 12 ) ⎣ ⎦ 2Δy ⎬ ( 6.4 ) ⎪ n n n n n + 2 V(i , j + 1 ) V (i , j + 1 ) − V(i , j + 1 ) + V(i , j + 1 ) V(i , j − 1 ) ⎤ ⎪ 2 2 2 2 2 ⎥ ⎦ ⎪ n v n ⎪ +Δt ε h ∇ 2V(n, j + 1 ) + Δt (τ y ) 1 −Δt ΦU (i , j + 12) i 2 (i , j + 2 ) ⎪ ⎭ ( n n n Δt ⎡ n n 1 1 1 ⎢ U (i , j + 2) − U (i , j + 2) V(i +1, j + 12) + 2 U (i , j + 2) V(i , j + 12) 2Δx ⎣ ( ) ) ( ) ( ) de modo que são usados para calcular as velocidades horizontais, depois que os níveis de água são calculados, utilizando-se as expressões (4.5) e (4.6), ou suas análogas 2D (seção 4.3). No caso das ESW 3D, os termos advectivos das componentes horizontal e vertical são obtidos observando as seguintes notações: ± n ⎛ ⎞ ⎛ n ⎞ u(±i + 1 ) = ⎜ u n + 1 , j ,k ± u n + 1 , j ,k ⎟ , v (i + 12) = ⎜ v (i + 12, j ,k ) ± v (i + 12, j ,k ) ⎟ , 2 (i 2 ) (i 2 ) ⎠ ⎝ ⎠ ⎝ ± n n ± n n w (i + 12) = ⎛ w (i + 12, j ,k ) ± w (i + 12, j ,k ) ⎞ , u ( j + 12) = ⎛ u (i , j + 12,k ) ± u (i , j + 12,k ) ⎜ ⎜ ⎟ ⎝ ⎝ ⎠ ⎞, ⎟ ⎠ ⎠ ± n n ⎛ ⎞ v (±j + 1 ) = ⎜ v (n, j + 1 ,k ) ± v (n, j + 1 ,k ) ⎟ , w ( j + 12) = ⎛ w (i , j + 12,k ) ± w (i , j + 12,k ) ⎞ . ⎜ ⎟ i i 2 2 2 ⎝ ⎠ ⎝ e, então, tem-se: u ∂u ∂u ∂u 1 ⎡ − u un + 2 u(n+1 , j ,k ) u(n+1 , j ,k ) − u(++1 )u(n−1 , j ,k ) ⎤ +v +w = i 2 i 2 i 2 i 2 ⎢ (i + 12) (i +32, j ,k ) ⎥ ⎦ ∂x ∂y ∂z 2Δx ⎣ n + 1 ⎡ − v (i + 12) un+ 1 , j +1,k +2 v (i + 12, j ,k ) un+ 1 , j ,k −v (i + 12) un+ 1 , j −1,k ⎤ i 2 i 2 ( ) ( ) (i 2 )⎥ ⎣ 2Δy ⎢ ⎦ n + 1 ⎡ − + w 1 un +2 w(i +12, j ,k ) u(n+1 , j ,k ) −w(i +12,) u(n+1 , j ,k −1) ⎤ i 2 i 2 ⎥ ⎢ (i + 2,) (i + 12, j ,k +1) 2Δz ⎣ ⎦ + e u n + ∂u ∂u ∂u 1 ⎡ − +v +w = u ( j + 12)v n+1, j + 1 ,k + 2 u (i , j + 12,k ) v n, j + 1 ,k − u ( j + 12) v n−1, j + 1 ,k ⎤ i i ( ( 2 ) (i 2 ) 2 )⎥ ⎣ ⎦ ∂x ∂y ∂z 2Δx ⎢ 1 ⎡ − ⎤ v( j +1 )v(n, j +3 ,k ) +2 v(n, j +1 ,k ) v(n, j +1 ,k ) −v(+j + 1 )v(n, j −1 ,k ) ⎥ i i i i 2 2 2 2 2 2 ⎣ 2Δy ⎢ ⎦ + n 1 ⎡ − w 1 vn + +2 w(i , j + 12,k ) v(n, j + 1 ,k ) −w( j +12)v(n, j +1 ,k −1) ⎤ i i ⎥ ⎢ ( j + 2) (i , j + 12,k +1) 2 2 2Δz ⎣ ⎦ + em que as componentes das velocidades horizontais e vertical u ,v e w são aproximadas como uma média dos quatro pontos circunvizinhos da malha numérica, como feito para as componentes V e U . Detalhes em [RIZ2002a]. 6.1.2 Condições de contorno: supressão de termos Note-se que as expressões obtidas na seção 6.1.1 são válidas apenas para células internas ao domínio. Deve-se obter expressões de modo a contemplar os casos das células adjacentes às fronteiras sul (S) e norte (N) da malha numérica e que não são esquinas da malha; das células adjacentes às fronteiras oeste (W) e leste (E) da malha numérica e que, também, não são esquinas da malha. Essas particularizações são necessárias e devem-se ao fato de que o estêncil empregado nas discretizações das ESW é o de 5-pontos. Especificamente, para as ESW tem-se os seguintes casos: 117 1. 2. em células internas onde vale 2 ≤ i ≤ n −1 e 2 ≤ j ≤ m − 1 , as expressões empregadas para os cálculos são as completas, como as (6.3) e (6.4) e seus termos constituintes; em células adjacentes às fronteiras sul, norte, oeste e leste, mas que não são esquinas da malha, é necessário considerar as seguintes aproximações para determinadas expressões: na fronteira inferior (sul), isto é, para j =1 tem-se 0 ,5 η(n,0 ) + η(ni ,1) ≈ η(n,1) e FV(n, 1 ) ≈V(n, +1) ; na fronteira superior (norte), isto é, para i i i 2 i 12 ( ) j =m tem-se 0 ,5 η(n,m +1) + η(n,m ) ≈ η(n,m ) i i i (oeste), 2 ( ) + e FV(n,m + 1 ) ≈V(n,m1+ 1 ) ; na fronteira i i 2 2 esquerda isto é, para i =1 tem-se 0 ,5 η(n , j ) + η(n , j ) ≈ η(n , j ) 0 1 1 ( ) e FU (n1 , j ) ≈ U (n1+.1j ) ; na fronteira direita (leste), isto é, para i = n , tem-se 0 ,5 η 3. ( 2 n (n +1, j ) + η(n , j ) ≈ η(n , j ) e FU (n + 1 , j ) ≈ U (n ++11 , j ) ; n n n 2 n 2 ) em células que são esquinas da malha (1,1) , (n ,1) , (1, m ) e (n , m ) , as aproximações são semelhantes: na fronteira esquerda inferior, isto é, em i = 1 e n n j =1 , tem-se 0 ,5 η(n ,0 ) + η(n ,1) ≈ η(n ,1) , 0 ,5 η(n ,1) + η(n ,1) ≈ η(n ,1) , FV(1, 1 ) ≈V(1,+1) e 1 1 1 1 0 1 1 2 2 n n +1 FU ( 1 ,1) ≈ U ( 1 ,1) ; na fronteira esquerda superior, isto é, em i =1 e j = m , ( ) ( ) 0 ,5 η(n ,m +1) + η(n ,m ) ≈ η(n ,m ) , 1 1 1 0 ,5 η ( 2 2 ) 0 ,5 η(n ,m ) + η(n ,m ) ≈ η(n ,m ) , 0 1 1 0 ,5 η(n ,0 ) + η(n ,1) ≈ η(n ,1) , n n n ( ) n n +1 FV(1,m + 1 ) ≈V(1,m + 1 ) 2 2 e FU (n1 ,m ) ≈ U (n1+,1 ) ; na fronteira direita inferior, isto é, em i = n e j =1 , tem-se m ( 2 2 n (n +1,1) + η(n ,1) ≈ η(n ,1) , n n 2 ) ( ) FU (n + 1 ,1) ≈ U (n ++11 ,1) n n 2 2 e FV(n , 1 ) ≈V(n ,+11 ) ; e na fronteira direita superior, ou seja, em i = n e j = m , tem-se n n 0 ,5 η + η(n ,m ) ≈ η(n ,m ) , FU (n + 1 ,m ) ≈ U (n ++11 ,m ) , 0 ,5 η(n ,m +1) + η(n ,m ) ≈ η(n ,m ) , e n n n n n n 2 n 2 n n +1 FV(n ,m + 1 ) ≈V(n ,m + 1 ) . n (n +1,m ) 2 2 ( 2 ) ( ) Outras expressões são aproximadas através da supressão de termos, de modo que estejam definidas no domínio computacional. Uma abordagem mais sofisticada é desenvolvida neste trabalho para a ETM e usa a técnica de extrapolação, como pode ser visto na seção 6.5.1. 6.2 Esquema semi-implícito fluxo numérico: ETM 2D-IV Após determinadas manipulações algébricas, que podem ser vistas em [RIZ2002a], o esquema semi-implícito gera sistemas de equações lineares cujas matrizes são do tipo 5-diagonal não simétricas. Se a componente advectiva da ETM 2D é aproximada via esquema upwind fluxo numérico e a difusão horizontal é via CrankNicolson, os sistemas de equações resultantes são lineares, e suas únicas incógnitas são as concentrações S . Esse sistema de equações é escrito na forma matricial como: +1 +1 E (i −1, j )S (n −1, j ) + C (i , j )S (n,+j1 + D(i +1, j )S (n +1, j ) + F(i , j −1)S (n,+j1−1) + S (i , j +1)S (n,+j1+1) = B (n, j ) ( 6.5 ) i i ) i i i i } em que os coeficientes de (6.5) são como: ⎡ Δt + E (i −1, j ) = ⎢ − U n +1 + U (n −1 , j ) 1 i 12 2Δx (i − 2, j ) ⎣ ( )H (i − 12, j ) ⎥ − 2Δx 2 D x (i − 12, j ) H (i − 12, j ) ⎦ n +1 ⎤ Δt n +1 n +1 118 ⎡ Δt + + D(i +1, j ) = ⎢ U (n +1 , j ) − U (n +1 , j ) i 12 i 12 ⎣ 2Δx ⎡ Δt F(i , j −1) = ⎢ − V(n,+1 1 ) + V(n,+1 1 ) i j− 2 i j− 2 ⎣ 2Δy ⎡ Δt S (i , j +1) = ⎢ V(n,+1 1 ) − V(n,+1 1 ) i j+ 2 i j+ 2 ⎣ 2Δy ( ( )H )H )H (i + 12, j ) ⎥ − 2Δx 2 D x (i + 12, j ) H (i + 3 2, j ) ⎦ (i − 12, j ) ⎥ − 2Δy 2 Dy (i − 12, j ) H (i − 12, j ) ⎦ n +1 n +1 ⎤ Δt n +1 n +1 ⎤ Δt n +1 n +1 ( (i + 12, j ) ⎥ − 2Δy 2 Dy (i , j + 12 ) H (i , j + 3 2 ) ⎦ n +1 ⎤ Δt n +1 n +1 C (i , j ) = Δt ⎡ n +1 Δt ⎡ n +1 + + + + U + U (n + 1 , j ) H (n + 1 , j ) ⎤ − U − U (n − 1 , j ) H (n − 1 , j ) ⎤ i 12 i 12 i 12 i 12 ⎢ ( i + 12, j ) ⎥ 2Δx ⎢ (i − 12, j ) ⎥ ⎦ ⎦ ⎣ 2Δx ⎣ Δt ⎡ n +1 Δt ⎡ n +1 V(i , j + 1 ) + V(n, +1 1 ) H (n,+j1+ 1 ) ⎤ − V 1 − V(n,+1 1 ) H (n,+j1− 1 ) ⎤ + i j+ 2 i i j− 2 i 2 2 ⎥ 2 ⎥ ⎣ ⎦ 2Δy ⎢ (i , j − 2) ⎣ ⎦ 2Δy ⎢ ( ( ) ( ) ) ( ) + Δt Δt Δt n + n + n Dx (+1 1 , j )H (n + 1 , j ) + Dy (+1j + 1 )H (n,+j1+ 1 ) D x (+1 1 , j )H (n + 1 , j ) − i+ 2 i 12 i− 2 i 12 i, i 2 2 2 2 2 2Δx 2Δy 2Δx Δt n − Dy (+1j − 1 )H (n,+j1+ 1 ) + H (n,+j1 i ) i, i 2 2 2 2Δy B (n, j ) = i Δt Δt n n Dx (i + 1 , j ) S (n +1, j ) H (n + 3 , j ) − S (n, j ) H (n + 1 , j ) − D x (i − 1 , j ) S (n, j ) H (n + 1 , j ) − i i i i 2 i 2 i 2 2 2 2 2 2Δx 2Δx Δt Δt n n − S (n −1, j ) H (n − 1 , j ) + Dy (i , j + 1 ) S (n, j +1) H (n, j + 3 ) − S (n, j ) H (n, j + 1 ) − Dy ( i , j − 1 ) i i i i 2 i i 2 2 2 2 2 2 2Δy 2Δy ( ) ( ( ) (S (i , j ) H (i , j + 12 ) n n − S (n, j −1) H (n, j − 1 ) + S (n, j ) H (n, j ) (1 + ΚΔt ) + ΔtH (n, j )S n fonte i i i i i 2 ) onde, para I e J , são usadas as funções sinal definidas na seção 4.4 e: + + H (n + 1 , j ) = hu (i + 1 , j ) + η(n +1I +1 2), j ) , H (n,+j1 1 ) = hv (i , j + 1 ) + η(n,+j1+ ( J +1 2)) i 12 i + 2 i ( i 2 2 H (n,+j1) = 0,5 h u (i + 1 , j ) + hv (i , j + 1 ) + η(n,+j1) i i 2 2 onde Κ = 2,3 T90 , e os coeficientes longitudinais e transversais, como na seção 2.6, são DL = 0,23 U* H u e DT = 5,93U * H v , onde U * = g (C z ) −1 ( ) ( U 2 +V 2 . ) O sistema de equações (6.5) originou-se quando do emprego da abordagem tipo fluxo numérico para obter uma solução upwind para a advecção. Nesse caso, os valores nas faces de uma célula 2D podem ser obtidos, para a componente U = U ( x , y, t ) , considerando a seguinte definição: sign U e que: ( n +1 (i + 12, j ) ) = U( def + U (n +1 , j ) i 1 2 n +1 i + 12, j ) , isto é, sign U ( n +1 (i + 12, j ) ) + ⎧ 1, se U (n +1 , j ) > 0 i 12 ⎪ =⎨ n +1 ⎪−1, se U (i + 12, j ) < 0 ⎩ + + U (n +1 , j ) ± U (n +1 , j ) i 12 i 12 + 1 ± sign U (n +1 , j ) = 1 ± n +1 = i 12 + U (i + 1 , j ) U (n +1 , j ) i 12 2 ( ) + U (n +1 , j ) i 1 2 Assim, uma aproximação via fluxo numérico fornece, para a face direita da célula, a seguinte expressão: 119 SE = 1⎡ n +1 ⎢1 + sign u(i + 12, j ) 2⎣ n +1 ⎡ n +1 1 ⎢ u(i + 12, j ) + u(i + 12, j ) = + 2⎢ u(ni +1 , j ) 1 2 ⎢ ⎣ not ( )⎤⎥⎦ S (i , j ) n +1 ⎤ ⎥ S n +1 ⎥ (i , j ) ⎥ ⎦ 1⎡ n +1 ⎤ n +1 ⎢1 − sign u(i + 12, j ) ⎥ S (i +1, j ) ⎦ 2⎣ n +1 ⎡ n +1 ⎤ 1 ⎢ u(i + 12, j ) − u(i + 12, j ) ⎥ n +1 S + + ⎥ (i +1, j ) 2⎢ u(ni +1 , j ) 1 2 ⎢ ⎥ ⎣ ⎦ + ( ) e, portanto: + + S (n + 1 , j ) ≡ u(ni +1 , j )S E 1 i 12 2 1 1 + + + + +1 = u(ni +1 , j ) + u(ni +1 , j ) S (n,+j1 + u(ni +1 , j ) − u(ni +1 , j ) S (n +1, j ) 1 1 1 1 i ) i 2 2 2 2 2 2 ( ) ( ) De modo análogo, tem-se a seguinte expressão para a face esquerda: SW = 1⎡ n +1 ⎢1 + sign u(i − 12, j ) ⎣ 2 n +1 ⎡ n +1 1 ⎢ u(i − 12, j ) + u(i − 12, j ) = + 2⎢ u(ni −1 , j ) 1 2 ⎢ ⎣ not ( )⎤⎥⎦ S (i −1, j ) n +1 ⎤ ⎥ S n +1 ⎥ (i −1, j ) ⎥ ⎦ 1⎡ n +1 ⎤ n +1 ⎢1 − sign u(i − 12, j ) ⎥ S (i , j ) ⎣ ⎦ 2 n +1 ⎡ n +1 ⎤ 1 ⎢ u(i − 12, j ) − u(i − 12, j ) ⎥ n +1 S + + ⎥ (i , j ) 2⎢ u(ni −1 , j ) 1 2 ⎢ ⎥ ⎣ ⎦ + ( ) e portanto: + + S (n − 1 , j ) ≡ SW u(ni −1 , j ) 1 i 1 2 1 1 + + +1 + + = u(ni −1 , j ) + u(ni −1 , j ) S (n −1, j ) + u(ni −1 , j ) − u(ni −1 , j ) S (n,+j1 1 1 1 1 i i ) 2 2 2 2 2 2 Substituindo nas expressões anteriores a componente u pela componente v da velocidade e os índices i por j, obtém-se expressões como nas faces de cima e de baixo. Especificamente essas expressões são como: not ( 2 ) ( ) S (n,+j1+ 1 ) ≡ v (ni ,+j1+ 1 )S N i 2 2 1 1 = v (ni ,+j1+ 1 ) + v (ni ,+j1+ 1 ) S (n,+j1 + v (ni ,+j1+ 1 ) − v (ni ,+j1+ 1 ) S (n,+j1+1) i ) i 2 2 2 2 2 2 ( ( ) ( ) e S (n,+j1− 1 ) ≡ SW v (ni ,+j1− 1 ) i 2 2 not = 1 n +1 1 v (i , j − 1 ) + v (ni ,+j1− 1 ) S (n,+j1−1) + v (ni ,+j1− 1 ) − v (ni ,+j1− 1 ) S (n,+j1 i i ) 2 2 2 2 2 2 ) ( ) Os resultados numéricos obtidos pelo emprego dessa abordagem na solução da ETM 2D-IV são semelhantes àqueles apresentados nas tab. da seção 5.1.4. A diferença resume-se ao fato de que a discretização para a equação de transporte escalar 2D-IV considerou uma abordagem semi-implícita gerando um sistema de equações como descrito pela expressão (6.5). Nesse caso, o passo de tempo não é limitado pelo número de Courant. 6.3 Esquemas semi-implícitos: método ADI Alguns dos esquemas numéricos para soluções de EDPs 2D implementados neste trabalho empregaram o método ADI como estratégia para melhorar a eficiência computacional, dado que os sistemas de equações gerados com essa abordagem são 3diagonal. Após certa manipulação algébrica [RIZ2002a], e considerando a abordagem 120 de Casulli, o esquema numérico via método ADI decompõe o passo de tempo em dois. No primeiro meio passo de tempo, os termos na direção Y são considerados explícitos, e no segundo meio passo de tempo os termos na direção X são considerados explícitos. Com isso, geram-se dois conjuntos de sistemas de equações lineares com matrizes SDP, um para cada direção coordenada. Para o primeiro meio passo de tempo, o sistema de equações lineares é escrito como: E (i −1, j )η(i −1,2j ) + C (i , j )η(i , j )2 + D (i +1, j )η(i +1,2j ) = B (n, j ) i e os coeficientes em (6.6) para o nível de tempo [n , n + 1 2 n +1 n+1 n +1 } ( 6.6 ) ] são: C (i , j ) n 2 Hu (ni − 1 , j ) ⎞ g ⎛ Δt ⎞ ⎛ Hu (i + 12, j ) 2 ⎟ =1 + ⎜ + ⎟ ⎜ n n 2 ⎝ Δx ⎠ ⎜ 1 + γ x (i + 12, j ) Δt 1 + γ x (i − 12, j ) Δt ⎟ ⎝ ⎠ n 2 g ⎛ Δt ⎞ ⎛ Hu (i − 12, j ) ⎞ ⎟ =− ⎜ ⎟ ⎜ n 2 ⎝ Δx ⎠ ⎜ 1 + γ x (i − 12, j ) Δt ⎟ ⎝ ⎠ n 2 g ⎛ Δt ⎞ ⎛ Hu (i + 12, j ) ⎞ ⎟ =− ⎜ ⎟ ⎜ n 2 ⎝ Δx ⎠ ⎜ 1 + γ x (i + 12, j ) Δt ⎟ ⎝ ⎠ E (i −1, j ) D(i +1, j ) ⎛ Δt ⎞ n n n n B (n, j ) = η(ni , j ) − ⎜ ⎟ Hv (i , j + 12 )V(i , j + 12 ) − Hv (i , j − 12)V(i , j − 12) i ⎝ 2Δy ⎠ ( ) n ⎡ ⎛ Hu(ni − 1 , j ) ⎞ ⎛ Δt ⎞ ⎢⎛ Hu(i + 12, j ) ⎞ n − 12 −1 2 ⎜ ⎟ FU (i + 1 , j ) − ⎜ ⎟ FU (n − 1 2, j ) −⎜ ⎟ ⎜ i 2 n n 2 ⎜ 1 + γ x ( i − 1 , j ) Δt ⎟ ⎝ 2Δx ⎠ ⎢⎝ 1 + γ x (i + 12, j ) Δt ⎟ 2 ⎠ ⎝ ⎠ ⎣ ( ) ( ) ⎤ ⎥ ⎥ ⎦ Após os níveis de água η(i −1,2j ) , η(i , j )2 , η(i +1,2j ) serem calculados, as velocidades n +1 n +1 n +1 U (n ++ 122,j) são recuperadas através de uma expressão semelhante a (4.5). Mais i 1 especificamente, através da expressão: s U (i + 1 2, j ) = 1 + Δt (τ x ) n +1 2 ( n (i + 12, j ) ) −1 Δt n + 1 2 ⎡ n − 12 n + 12 ⎤ ⎢FU (i + 12, j ) − g Δx η(i +1, j ) − η(i , j ) ⎥ ⎣ ⎦ ( ) em que o operador explícito FU (i + 1 2, j ) é dado como: 2 Δt ⎡ n − 12 −1 −1 −1 −1 −1 FU (n + 1 , j ) = U (n + 1 2, j ) − U − U (n + 1 2 , j ) U (n + 3 2 , j ) + 2 U (n + 1 2, j ) U (n + 1 2, j ) i 2 i 2 i 2 i 2 i 2 i 2 ⎢ (i + 12 , j ) 2 Δx ⎣ n − 12 Δt ⎡⎛ n − 12 −1 −1 −1 ⎞ n − 12 − U (n + 1 2, j ) + U (n + 1 2, j ) U (n − 1 2, j ) ⎤ − ⎜ V (i + 12 , j ) − V (i + 12 , j ) ⎟U (i + 12 , j +1) i 2 i 2 i 2 ⎥ 2 Δy ⎢⎝ ⎦ ⎠ ⎣ n −1 ( ) ( ) n − 12 n − 12 n − 12 −1 + 2 V (i + 12 , j ) U (n + 1 2, j ) − ⎛ V (i + 12 , j ) + V (i + 12 , j ) ⎜ i 2 ⎝ − v +Δt ε h ∇2U (n + 1 2, j ) +Δt (τ x ) i 1 2 ⎤ ⎞ U n − 12 ⎟ (i + 12 , j −1) ⎥ ⎠ ⎦ , n + 1] , o sistema de equações n +1 n − 12 ( i +1 2, j ) +Δt ΦV (i + 12 , j ) 1 2 n − 12 Para o segundo meio passo de tempo [n + lineares é escrito como: E (i , j −1)η(ni ,+j1−1) + C (i , j )η(ni ,+j1 + D(i , j +1)η(ni ,+j1+1) = B (i , j ) 2 ) } ( 6.7 ) 121 em que os coeficientes em (6.7) são escritos como: E (i , j −1) n+ 2 2 g ⎛ Δt ⎞ ⎛ Hv (i , j − 12) ⎞ ⎟ =− ⎜ ⎟ ⎜ n 1 2 ⎝ Δy ⎠ ⎜ 1 + γ y (+, j2− 1 ) Δt ⎟ i 2 ⎝ ⎠ 1 D(i , j +1) n+ 2 2 g ⎛ Δt ⎞ ⎛ Hv (i , j + 12) ⎞ ⎟ =− ⎜ ⎟ ⎜ n 1 2 ⎝ Δy ⎠ ⎜ 1 + γ y (+, j2+ 1 ) Δt ⎟ i 2 ⎝ ⎠ 1 1 1 B ( i , j )2 n +1 n+ 2 n+ 2 Hv (i , j −21 ) ⎞ g ⎛ Δt ⎞ ⎛ Hv (i , j + 12 ) 2 ⎟ + C (i , j ) = 1 + ⎜ ⎟ ⎜ n + 12 n + 12 2 ⎝ Δ y ⎠ ⎜ 1 + γ y (i , j + 1 ) Δ t 1 + γ y (i , j − 1 ) Δ t ⎟ 2 2 ⎝ ⎠ ⎛ Δt ⎞ n +1 n + 12 n + 12 n + 12 n + 12 = η(i , j )2 − ⎜ ⎟ Hu(i + 12, j )U (i + 12, j ) − Hu(i − 12, j )U (i − 12, j ) ⎝ 2Δx ⎠ ( ) n+ 2 ⎛ Hv ni ,+j −21 ⎞ ⎛ Δt ⎞ ⎡⎛ Hv (i , j + 12) ⎞ ( 2) n ⎢⎜ ⎟ FV 1 − ⎜ ⎟ FV n 1 −⎜ ⎟⎢ n + 12 n + 12 (i , j + 2 ) (i , j − 2 ) ⎟ ⎜ 1 + γ y ( i − 1 , j ) Δt ⎟ ⎝ 2Δy ⎠ ⎣⎜ 1 + γ y (i + 12, j ) Δt ⎠ 2 ⎝ ⎝ ⎠ 1 ( ) 1 ( ) ⎤ ⎥ ⎥ ⎦ e, depois que os níveis de água η(n,+j1 1) , η(n,+j1 , η(n,+j1 1) são calculados, as velocidades i − i ) i + V (n,+1 1 ) são recuperadas através da expressão: i j+ 2 s V(n,+1 1 ) = 1 + Δt (τ y ) i j+ 2 ( n + 12 ( i, j +1 2 ) ) −1 ⎡ Δt n +1 n n +1 ⎤ ⎢FV(i , j + 12) − g Δy η(i , j +1) − η(i , j ) ⎥ ⎣ ⎦ ( ) em que o operador explícito FV(n, j + 1 ) é dado como: i 2 n n n Δt ⎡ n n 1 1 1 FV(n, j + 1 ) =V(n, j + 1 ) − i i ⎢ U (i , j + 2 ) − U (i , j + 2 ) V(i +1, j + 12 ) + 2 U (i , j + 2 ) V(i , j + 12 ) 2 2 2 Δx ⎣ n n Δt ⎡ n ⎤ − U (i , j + 12 ) + U (i , j + 12 ) V(n−1, j + 1 ) ⎥ − V 1 − V(n, j + 1 ) V(n, j + 3 ) i i i 2 2 2 ⎣ ⎦ 2 Δy ⎢ ( i , j + 2 ) ( ( ) ) ( ) + 2 V(n, j + 1 ) V(n, j + 1 ) − V(n, j + 1 ) + V(n, j + 1 ) V(n, j − 1 ) ⎤ i i i i i 2 2 2 2 2 ⎥ ⎦ v +Δt ε h ∇2V(n, j + 1 ) + Δt (τ y ) i 2 ( ) n (i , j + 1 2 ) −Δt ΦU (i , j + 12 ) n i +1 2, j n s As aproximações para as expressões τ x n+ n− s , ∇ 2V(i , j +2 FU (i + 1 2, j ) , V (i + 12, j ) , τ y 1 2 2 ( i , j + 12 ) 1 n ( ) n + 12 1 ( )( ) , (τ )( ) v , ∇2U (n + 1 , j ) , τ x i 2 ( )( n i + 12, j ) , Hu(n + 1 , j ) , i 2 n + 12 1 v n+ 2 y i,j +1 , 2) Hv (i , j +21 ) , FV(n, j + 1 ) e U (i , j + 1 ) são i 2 2 2 n +1 como as da seção 6.1.1, exceto o nível de tempo, que deve considerar os meios passos de tempo do esquema ADI. Os sistemas de equações lineares 3-diagonal para as linhas i e colunas j , tais 1 ≤ i ≤ N x e 1 ≤ j ≤ N y são como tratados na seção 3.5.3. Detalhes podem ser vistos em [RIZ2002a]. Outros esquemas semi-implícitos foram desenvolvidos e implementados para a solução das ESW 2D-IV e da ETM 2D-IV. Nesse esquemas empregou-se a abordagem de Leendertse, mas esses esquemas numéricos não são detalhados neste trabalho e podem ser vistos em [RIZ2002a]. Os sistemas de equações resultantes do emprego da abordagem de Leendertse (o uso do método ADI e solução via algoritmo de Thomas) são não simétricas, dado que são gerados pelo acoplamento das equações ECQMx, ECx, ECQMy e ECy. 122 6.4 Esquema numérico para advecção horizontal: método FLM A construção de solução para a advecção horizontal da ETM 3D emprega o método de restrição de fluxos. Os fluxos horizontais são obtidos com o método de fluxos de Sweby [SWE84], como em [BLO94], [HUN95], [ZIJ95], [SPE96], [HUN96] e [HEI99]. Além disso, as interpolações podem ser obtidas empregando o método −θ de modo que os esquemas resultantes tenham uma acurácia temporal de segunda ordem. A advecção na forma discreta e conservativa é escrita como: ϕ (ni ,+j1k ) = ϕ (ni , j ,k ) − , Δt Δt F(i + 1 , j ,k ) − F(i − 1 , j ,k ) − F 1 − F(i , j − 1 ,k ) 2 2 2 Δx Δy (i , j + 2,k ) ( ) ( ) e os fluxos numéricos nas faces das células são como em [SPE96]: F(n± 1 , j ,k ) = max u(ni ± 1 , j ,k ) ,0 F(n± 1 , j ,k ) i 2 i 2 2 F(n, j ± 1 ,k i 2 ( ) = max (v ( (F( n i ± 12, j ,k ) n i , j ± 12,k )( ) ,0 ) ( F( n i , j ± 12,k ) ) ) + + min u(ni ± 1 , j ,k ) ,0 F(n± 1 , j ,k ) i 2 2 n i , j ± 12,k n i , j ± 12,k + ( + min (v ( + )( ) ,0 ) ( F( ) − ) ) ) − − em que esses fluxos numéricos, como discutido no anexo 1, são obtidas empregando funções interpolantes construídas com o método FLM, e são como: ) , (F( + n i ± 12, j ,k ) ) , (F( − n i , j ± 12,k ) ) e (F( n i , j ± 12,k ) As soluções FLM são escritas a partir das definições dos números de Courant locais horizontais, isto é, aqueles das direções X e Y, que são como: + C (n ± θ , j ,k ) = i 1 2 Δt n +θ Δt n +θ u(i ± 1 , j ,k ) e C (n,+jθ± 1 ,k ) = v 1 i 2 2 Δx Δy (i , j ± 2,k ) + + sendo u(n ±θ , j ,k ) = θ u(n ±1 , j ,k ) + (1 − θ ) u(ni ± 1 , j ,k ) e v (n ,+jθ± 1 ,k ) = θ v (ni ,+j1± 1 ,k ) + (1 − θ ) v (ni , j ± 1 ,k ) . i 12 i 12 i 2 2 2 2 Usando a definição dos números de Courant locais e das velocidades como anteriormente introduzidos, os fluxos nas faces são obtidos com uma abordagem FLM trapezoidal, isto é, do emprego do método −θ , para obter um esquema numérico geral, em dois níveis de tempo, como: 1. + considerando a notação S (n + θ ) ≡ (S E ) i 12 not n +θ , tem-se: (SE ) n +θ n +1 ⎧ n +θ 1 ⎡ ⎤ + n +θ +1 C (i + 1 , j ,k ) > 0 ⇒ (S E ) = θ ⎢S (n,+j1k ) + Ψ r(++ 1 , j ,k ) S (n,+j1k ) − S (n −1, j ,k ) ⎥ i , i , i i 2 ⎪ 2 2 ⎣ ⎦ ⎪ n ⎪ 1 ⎡ ⎤ S (n, j ,k ) − S (n −1, j ,k ) ⎥ + (1 − θ ) ⎢S (n, j ,k ) + Ψ r(++ 1 , j ,k ) ⎪ i i i i 2 2 ⎣ ⎦ ⎪ =⎨ n +1 1 ⎡ +1 − n +θ + +1 ⎪C n +θ S (n +1 j ,k ) − S (n+1, j ,k ) < 0 ⇒ (S E ) = θ ⎢S (n +1, j ,k ) − Ψ r(−+ 1 , j ,k ) i i 2, i i + 12, j ,k ) i 2 ⎪ ( 2 ⎣ ⎪ n 1 ⎡ ⎪ S (n+2, j ,k ) − S (n+1, j ,k ) + (1 − θ ) ⎢S (n +1, j ,k ) − Ψ r(−+ 1 , j ,k ) i i i i 2 ⎪ 2 ⎣ ⎩ ( ( ) ( )( ) ) ( ) ( )( )⎤ ⎥ ⎦ )⎤ ⎥ ⎦ ( onde as funções monitoras são, para ε ≈ 10 −9 , definidas por: r e, portanto: + (i + 12, j ,k ) = S (n +1, j ,k ) − S (n, j ,k ) + ε i i S (n, j ,k ) − S (n −1, j ,k ) + ε i i er − (i + 12, j ,k ) = S (n +1, j ,k ) − S (n, j ,k ) + ε i i S (n +2, j ,k ) − S (n +1, j ,k ) + ε i i 123 (SE ) n +θ + + = max C (n + θ , j ,k ) ,0 (S E ) i 12 ( ) n +θ + − + min C (n + θ , j ,k ) ,0 (S E ) i 12 + n +θ E ( ) n +θ = 2. 1 n +θ + C (i + 1 , j ,k ) + C (n + θ , j ,k ) i 12 2 2 ( ) (S ) + 1 n +θ + C (i + 1 , j ,k ) − C (n + θ , j ,k ) i 12 2 2 ( ) (S − n +θ E ) analogamente, com a notação S (i − 1 ) 2 ( ) n +θ not ≡ (SW ) n +θ , tem-se: (SW ) n +θ n +1 ⎧ n +θ 1 ⎡ +1 + n +θ +1 + C (i − 1 , j ,k ) > 0 ⇒ (SW ) = θ ⎢S (n −1, j ,k ) + Ψ r(+− 1 , j ,k ) S (n −1, j ,k ) − S (n −1 j ,k ) i i i 2, i 2 ⎪ 2 2 ⎣ ⎪ n ⎪ 1 ⎡ S (n−1, j ,k ) − S (n−2, j ,k ) + (1 − θ ) ⎢S (n−1, j ,k ) + Ψ r(+− 1 , j ,k ) ⎪ i i i i 2 2 ⎣ ⎪ =⎨ n +1 1 ⎡ ⎤ − n +θ +1 ⎪C n +θ S (n +1, j ,k ) − S (n,+j1k ) ⎥ < 0 ⇒ (SW ) = θ ⎢S (n,+j1k ) − Ψ r(−− 1 , j ,k ) i , i , i i − 12, j ,k ) i 2 ⎪ ( 2 ⎣ ⎦ ⎪ n 1 ⎡ ⎤ ⎪ S (n +1, j ,k ) − S (n, j ,k ) ⎥ + (1 − θ ) ⎢S (n, j ,k ) − Ψ r(i−− 1 , j ,k ) i i i 2 ⎪ 2 ⎣ ⎦ ⎩ ( ( ) ( )( )⎤ ⎥ ⎦ )⎤ ⎥ ⎦ ( ) ( )( ) ( ) onde as funções monitoras são definidas por: r e, portanto: + (i − 12, j ,k ) = S (n, j ,k ) − S (n −1, j ,k ) + ε i i S (n −1, j ,k ) − S (n −2, j ,k ) + ε i i er − (i − 12, j ,k ) = S (n, j ,k ) − S (n −1, j ,k ) + ε i i S (n +1 j ,k ) − S (n, j ,k ) + ε i i (SW ) n +θ + + = max C(n − θ , j ,k ) ,0 (SW ) i 12 ( ) n +θ + − + min C(n − θ , j ,k ) ,0 (SW ) i 12 + n +θ W ( ) n +θ = 3. 1 n +θ + C(i − 1 , j ,k ) + C(n − θ , j ,k ) i 12 2 2 ( ) (S ) + 1 n +θ + C(i − 1 , j ,k ) − C(n − θ , j ,k ) i 12 2 2 , tem-se: ( ) (S − n +θ W ) considerando a notação S ( j + 1 ) 2 ( ) n +θ not ≡ (S N ) n +θ (SN ) n +θ n +1 ⎧ n −1+θ 1 ⎡ ⎤ + n +θ C (i , j + 1 ,k ) > 0 ⇒ (S N ) = θ ⎢S (n,+j1k ) + Ψ λ(+, j + 1 ,k ) S (n,+j1k ) − S (n,+j1−1,k ) ⎥ i , i , i ⎪ i 2 2 2 ⎣ ⎦ ⎪ n ⎪ 1 ⎡ ⎤ S (n, j ,k ) − S (n, j −1,k ) ⎥ + (1 − θ ) ⎢S (n, j ,k ) + Ψ λ(+, j + 1 ,k ) ⎪ i i i i 2 2 ⎪ ⎣ ⎦ =⎨ n +1 ⎪C n −1+θ < 0 ⇒ (S − )n +θ = θ ⎡S n +1 − 1 Ψ λ − S (n,+j1 2,k ) − S (n,+j1+1,k ) N i + i (i , j + 12,k ) (i , j + 12,k ) ⎢ (i , j +1,k ) 2 ⎪ ⎣ ⎪ n 1 ⎡ ⎪ S (n, j +2,k ) − S (n, j +1,k ) + (1 − θ ) ⎢S (n, j +1,k ) − Ψ λ(−, j + 1 ,k ) i i i i 2 ⎪ 2 ⎣ ⎩ ( ( ) ( )( ) ) ( ) ( )( )⎤ ⎥ ⎦ )⎤ ⎥ ⎦ ( onde as funções monitoras são definidas por: λ + (i , j + 12,k ) = S (n, j +1,k ) − S (n, j ,k ) + ε i i S (n, j ,k ) − S (n, j −1,k ) + ε i i eλ − (i , j + 12,k ) = S (n, j +1,k ) − S (n, j ,k ) + ε i i S (n, j +2,k ) − S (n, j +1,k ) + ε i i portanto, tem-se: (SN ) n +θ + = max C(n,+jθ+ 1 ,k ) ,0 (SN ) i 2 ( ) n +θ − + min C(n,+jθ+ 1 ,k ) ,0 (SN ) i 2 + n +θ N ( ) n +θ = 1 n +θ C(i , j + 1 ,k ) + C(n,+jθ+ 1 ,k ) i 2 2 2 ( ) (S ) + 1 n +θ C(i , j + 1 ,k ) − C(n,+jθ+ 1 ,k ) i 2 2 2 ( ) (S − n +θ N ) 124 4. e, considerando a notação S ( j − 1 ) 2 ( ) n +θ not ≡ (SS ) n +θ , tem-se: (SS ) n +θ n +1 ⎧ n +θ 1 ⎡ n +1 + n +θ + S (n,+j1 1,k ) − S(n,+j1 2,k ) i − i − ⎪C(i , j − 12,k ) > 0 ⇒ (SS ) = θ ⎢S (i , j −1,k ) + 2 Ψ λ(i , j − 12,k ) ⎣ ⎪ n ⎪ 1 ⎡ S (n, j −1,k ) − S (n, j −2,k ) + (1 − θ ) ⎢S(n, j −1,k ) + Ψ λ(+, j − 1 ,k ) ⎪ i i i i 2 2 ⎣ ⎪ =⎨ n +1 1 ⎡ ⎤ − n +θ ⎪C n +θ S (n,+j1 1,k ) − S (n,+j1k ) ⎥ = θ ⎢S(n,+j1k ) − Ψ λ(−, j − 1 ,k ) 1 ,k ) < 0 ⇒ (SW ) i , i , i + i (i , j − 2 2 ⎪ 2 ⎣ ⎦ ⎪ n 1 ⎡ ⎤ ⎪ S (n, j +1,k ) − S (n, j ,k ) ⎥ + (1 − θ ) ⎢S(n, j ,k ) − Ψ λ(−, j − 1 ,k ) i i i i 2 ⎪ 2 ⎣ ⎦ ⎩ ( ( ) ( )( )( )⎤ ⎥ ⎦ )⎤ ⎥ ⎦ ( ) ( ) ( ) onde as funções monitoras são definidas por: λ e portanto: + (i , j − 12,k ) = S (n, j ,k ) − S (n, j −1,k ) + ε i i S (n, j −1,k ) − S (n, j −2,k ) + ε i i eλ − (i , j − 12.k ) = S (n, j ,k ) − S (n, j −1,k ) + ε i i S (n, j +1,k ) − S (n, j ,k ) + ε i i (SS ) n +θ + = max C (n,+jθ− 1 ,k ) ,0 (SS ) i 2 ( ) n +θ − + min C (n,+jθ− 1 ,k ) ,0 (SS ) i 2 + n +θ S ( ) n +θ = 1 n +θ C 1 + C (n,+jθ− 1 ,k ) i 2 2 (i , j − 2,k ) ( ) (S ) + 1 n +θ C 1 − C (n,+jθ− 1 ,k ) i 2 2 (i , j − 2,k ) ( ) (S ) − n +θ S Note-se que essas aproximações são formuladas a partir de expressões com dependência temporal em dois níveis de tempo, n e n + 1 de modo que a acurácia temporal é de segunda ordem. Essa abordagem gera expressões para inteporlação dos fluxos com uma parte implícita e outra parte explícita. Os termos implícitos são aqueles em θ . Os termos explícitos são aqueles em 1 − θ . Porém, nessa abordagem gera-se sistemas de equações cujas matrizes dos coeficientes têm estrutura tipo 9diagonal. Porém, objetivando manter a estrutura da matriz como 3-diagonal, onde as dependências implícitas estão apenas restritas a componente vertical, toma-se nessas expressões FLM trapezoidal (FLM-T) θ = 0,0 , de modo que apenas os indices k , k − 1 e k + 1 entram na geração da matriz, que é 3-diagonal. Conseqüentemente, as aproximações, específicas para a advecção horizontal, são como: 1 ⎧ + n + n n + , se u(ni + θ , j ,k ) > 0 1 ⎪S E = S (i , j ,k ) + 2 Ψ r(i + 12, j ,k ) S (i , j ,k ) − S (i −1, j ,k ) 2 ⎪ SE ≡ ⎨ 1 n n n +θ − ⎪S − = S n E (i +1, j ,k ) − Ψ r(i + 12, j ,k ) S (i + 2, j ,k ) − S (i +1, j ,k ) , se u (i + 12, j ,k ) < 0 ⎪ 2 ⎩ ( ( )( )( )( ) ) 1 ⎧ + n + n n n +θ ⎪SW = S (i −1, j ,k ) + 2 Ψ r(i − 12, j ,k ) S (i −1, j ,k ) − S (i − 2, j ,k ) , se u(i − 12, j ,k ) > 0 ⎪ SW ≡ ⎨ 1 n n − + ⎪S − = S n , se u(ni − θ , j ,k ) < 0 1 W (i , j ,k ) − Ψ r(i − 12, j ,k ) S (i +1, j ,k ) − S (i , j ,k ) 2 ⎪ 2 ⎩ ( )( ) ( ) 1 ⎧ + n + n n , se v (ni ,+jθ+ 1 ,k ) > 0 ⎪S N = S (i , j ,k ) + 2 Ψ λ(i , j + 12,k ) S (i , j ,k ) − S (i , j −1,k ) 2 ⎪ SN ≡ ⎨ 1 n n n +θ − ⎪S − = S n N (i , j +1,k ) − Ψ λ(i , j + 12,k ) S (i , j + 2,k ) − S (i , j +1,k ) , se v (i , j + 12,k ) < 0 ⎪ 2 ⎩ ( ( )( )( ) ) 125 1 ⎧ + n + n n n +θ ⎪SS = S (i , j −1,k ) + 2 Ψ λ(i , j − 12,k ) S (i , j −1,k ) − S (i , j − 2,k ) , se v (i , j − 12,k ) > 0 ⎪ SS ≡ ⎨ 1 n n − ⎪S − = S n , se v (ni ,+jθ− 1 ,k ) < 0 S (i , j ,k ) − Ψ λ(i , j − 12,k ) S (i , j +1,k ) − S (i , j ,k ) 2 ⎪ 2 ⎩ ( )( ) ( )( ) Para escrever essas funções aproximantes, algoritmicamente concisa e conveniente de modo a englobar velocidades positivas ou velocidades negativas, definem-se expressões em termos dos números de Courant como: (C )( (C )( + n +θ ry i , j ± 1 ,k 2 ) + n +θ rx i ± 1 , j ,k ) 2 ( ≡ (C ≡ C (n,+jθ± 1 ,k ) + C (n,+jθ± 1 ,k ) i i 2 2 n +θ (i ± 12, j ,k ) + + C (n ± θ , j ,k ) i 1 2 ) , (C ) e (C − n +θ ry i , j ± 1 ,k ( 2 ) − n +θ rx i ± 1 , j ,k ( 2 ) ) ≡ C (n,+jθ± 1 ,k ) − C (n,+jθ± 1 ,k ) i i 2 2 (i ± 12, j ,k ) − C (i ± 12, j ,k ) n +θ n +θ ) ( ≡ (C ) ) e, assim, os fluxos numéricos nas faces para a componente horizontal da célula computacional 3D (veja a fig. A1.2) são dados por (6.8): 1 + n +θ − n +θ (Crx )(i + 12, j ,k ) SE+ + 1 (Crx )(i + 12, j ,k ) SE− ⎫ ⎪ 2 2 2 ⎪ 1 + n +θ 1 − n +θ n + − ⎪ S (i − 1 , j ,k ) ≡ SW = (Crx ) 1 S + (Crx ) 1 S 2 (i − 2, j ,k ) W (i − 2, j ,k ) W ⎪ 2 2 ⎬ ( 6.8 ) 1 + n +θ 1 − n +θ + − ⎪ n S (i , j + 1 ,k ) ≡ S N = (Cry ) 1 S N + (Cry ) 1 S N 2 (i , j + 2,k ) (i , j + 2,k ) ⎪ 2 2 ⎪ 1 − n +θ 1 + n +θ + − S (n, j − 1 ,k ) ≡ SS = (Cry ) 1 SS + (Cry ) 1 SS ⎪ i 2 (i , j − 2,k ) (i , j − 2,k ) ⎪ 2 2 ⎭ ou seja, nas faces E ,W , N ,S , L e U os fluxos numéricos são escritos na forma S (n + 1 , j ,k ) ≡ S E = i conservativa, respectivamente, como: S (n + 1 , j ,k ) ≡ u(ni + 1 , j ,k )S E , S (n − 1 , j ,k ) ≡ u(ni − 1 , j ,k )SW , S (n, j + 1 ,k ) ≡ v (ni , j + 1 ,k )S N , i 2 i 2 i 2 2 2 2 S (n, j − 1 ,k ) ≡ v (ni , j − 1 ,k )SS , S (n, j ,k − 1 ) ≡ w(ni , j ,k − 1 )S L e S (n, j ,k + 1 ) ≡ w(ni , j ,k + 1 )SU . i i i 2 2 2 2 2 2 São esssas as expressões que efetivamente são usadas para interpolar a concentração das substâncias nas faces de uma célula computacional 3D, e são posicionadas conforme ilustrado pela fig. A1.2. not not not not not not 6.5 Esquema numérico semi-implícito: método beta Os fluxos numéricos nas faces na direção vertical da célula computacional são calculados empregando o método − β descrito na seção 5.1. Analogamente, para obter uma versão algorítmica concisa e conveniente, que considera velocidades positivas e velocidades negativas, definem-se expressões em termos dos números de Courant locais, como: (C )( + n +θ rz i , j ,k ± 1 2) ≡ C (n,+jθ,k ± 1 ) + C (n,+jθ,k ± 1 ) i i 2 2 ( ) e (C − n +θ rz i , j ,k ± 1 ( 2) ) ≡ C (n,+jθ,k ± 1 ) − C (n,+jθ,k ± 1 ) i i 2 2 ( ) A expressão para o fluxo da face superior pode ser escrita, considerando o caso 3D e a possibilidade de velocidades positivas e negativas, respectivamente, como [RIZ2002a]: 1 n + SU = β(n, j ,k + 1 ) θ S(n,+j1k ) + (1 − θ ) S(n, j ,k ) − 1 − β(n, j ,k + 1 ) S(i , j ,k −1) − 2S(n, j ,k ) + S(n, j ,k +1) i , i i i i i 2 2 8 e ( ) ( ) ( ) 126 1 n − SU = β(n, j ,k +1 ) θS(n,+j1k +1) + (1 − θ ) S(n, j ,k +1) − 1 − β(n, j ,k +1 ) S(i , j ,k ) − 2S(n, j ,k +1) + S(n, j ,k +2) i , i i i i i 2 2 8 1 + n +θ − n +θ (Crz )(i , j ,k + 12) SU+ + 1 (Crz )(i , j ,k + 12) SU− 2 2 1−θ n ⎡θ ⎤ + C (n,+jθ,k + 1 ) 1 − β (n,+jθ,k + 1 ) ⎢ S (n,+j1k ) + S (n,+j1k +1) + S (i , j ,k ) + S (n, j ,k +1) ⎥ i , i , i i i 2 2 2 ⎣2 ⎦ ( ) ( ) ( ) tem-se, portanto, que o fluxo numérico para velocidades arbitrárias na face superior é interpolado como: S (n, j ,k + 1 ) ≡ SU = i 2 ( ) ( ) ( ) O caso para a expressão para o fluxo da face inferior é análogo e pode ser escrito para velocidades positivas e negativas, considerando as expressões: 1 n + SL = β(n, j ,k − 1 ) θ S(n,+j1k −1) + (1 − θ ) S(n, j ,k −1) − 1 − β(n, j ,k − 1 ) S(i , j ,k −2) − 2S(n, j ,k −1) + S(n, j ,k ) i , i i i i i 2 2 8 e ( ) ( ) ( ) 1 n − SL = β(n, j ,k −1 ) θS(n,+j1k ) + (1 − θ ) S(n, j ,k ) − 1 − β(n, j ,k −1 ) S(i , j ,k −1) − 2S(n, j ,k ) + S(n, j ,k +1) i , i i i i i 2 2 8 tem-se, portanto, que: ( ) ( ) ( ) ) S (n, j ,k − 1 ) ≡ S L = i 2 1 + n +θ − n +θ (Crz )(i , j ,k − 12) SL+ + 1 (Crz )(i , j ,k − 12) SL− 2 2 1−θ n ⎡θ ⎤ + C (n,+jθ,k − 1 ) 1 − β (n,+jθk − 1 ) ⎢ S (n,+j1k −1) + S (n,+j1k ) + S (i , j ,k −1) + S (n, j ,k ) ⎥ i , i , i i i , 2 2 2 ⎣2 ⎦ ( ) ( ( ) Ao contrário dos esquemas completamente explícitos construídos para a advecção horizontal (seção 5.1.3 ou seção 6.4), o esquema para a advecção vertical é, necessariamente, semi-implícito por construção. + Considerando as definições de w(ni ,+jθ,k ± 1 ) , u(n ± θ , j ,k ) e de v (ni ,+jθ± 1 ,k ) e dos números de i 12 2 2 Courant locais para as velocidades horizontais, dados na seção 6.4, e os números de Courant locais para a componente vertical, que para a face superior e inferior são, respectivamente, como: C n +θ (i , j ,k + 12) = Δtw(ni,+jθ,k + 1 ) 2 Δz (ni , j ,k + 1 ) 2 eC n +θ (i , j ,k − 12) = Δtw(ni,+jθ,k − 1 ) 2 Δz (ni , j ,k − 1 ) 2 1 e considerando a definição dos números de Péclet locais, tem-se que: + C (n ± θ , j ,k ) i 1 2 P n +θ e (i ± 12, j ,k ) = ( Δx ) ε h Δt 2 , C (n,+jθ± 1 ,k ) i 2 P n +θ e (i , j ± 12,k ) = ( Δy ) n +θ ε h Δt C(i , j ,k ± 2 ) 2 P n +θ e (i , j ,k ± 12 ) = εv ( x , y, z , t ) Δt ( Δz (ni , j ,k ± 1 ) 2 ) 2 pois ε h = cte e, portanto, Pe (i ± 1 , j ± 1 ,k ) ≡ Pe = cte 2 2 Assim, em decorrência dessas definições e das aproximações estabelecidas, nas quais o transporte vertical (advecção e difusão) é discretizado implicitamente, e o transporte horizontal, os termos de decaimento e de fonte são discretizados explicitamente, constrói-se um esquema numérico semi-implícito gerando sistemas de equações lineares 3-diagonal para a ETM 3D. Esses sistemas de equações são escritos, tomando as variáveis dependentes no método −θ em três níveis de tempo de modo que se tem ϕ n +θ = θϕ n +1 + (1 − θ ) ϕ n e ϕ n +θ = θϕ n + (1 − θ ) ϕ n −1 com 0 < θ ≤ 1 , como: n +θ E (k −1)S (n,+j1k −1) + C (k )S (n,+j1k ) + D(k +1)S (n,+j1k +1) = B (n ) i , i , i , k } (6.9) 127 em que os coeficientes em (6.9) são tais que: E (k −1) = θ 2 Δz n +1 (i , j ,k −1) C n +θ − n +θ n +θ n +θ ⎡ − β n +θ ⎤ − (i , j ,k − 12) C − 1 − β (i , j ,k − 1 ) C (i , j ,k − 1 ) 2 2 ⎥ ⎢ (i , j ,k − 12) ( rz )(i , j ,k − 12) ⎣ ⎦ 2Pe ni , j ,k − 1 ) ( ( ) 2 D(k +1) = θ 2 Δz n +1 (i , j ,k ) C n +θ − n +θ n +θ n +θ ⎡ β n +θ ⎤ − (i , j ,k + 12) + 1 − β (i , j ,k + 1 ) C (i , j ,k + 1 ) C 2 2 ⎥ ⎢ (i , j ,k + 12) ( rz )(i , j ,k + 12) ⎣ ⎦ 2Pe ni , j ,k + 1 ) ( 2 ( ) C (k ) = Δz (ni ,+j1,k ) + − θ + n +θ Δz (ni ,+j1,k ) ⎡ β (n,+jθk + 1 ) (Crz ) + 1 − β (n,+jθk + 1 ) C (n,+jθ,k + 1 ) ⎤ i , i , i 2 2 2 ⎥ ⎢ (i , j ,k + 12) ⎣ ⎦ 2 ( ) θ − n +θ Δz (ni ,+j1,k −1) ⎡ β (n,+jθk − 1 ) (Crz ) + 1 − β (n,+jθk − 1 ) C (n,+jθ,k − 1 ) ⎤ i , i , i 2 2 2 ⎥ ⎢ (i , j ,k − 12 ) ⎣ ⎦ 2 ( ) ⎡ C (n,+jθ,k − 1 ) C (n,+jθ,k + 1 ) ⎤ i i 2 2 ⎥ +⎢ + n n ⎢ 2Pe (i , j ,k − 12) 2Pe (i , j ,k + 12) ⎥ ⎣ ⎦ e o vetor dos termos independentes é como: B (n ) = S (n, j ,k ) Δz (ni , j ,k ) k i − + − + + (1 − θ ) Δz n 2 (1 − θ ) 2 (1 − θ ) 2 (1 − θ ) 2 16 (i , j ,k ) n +θ − n +θ ⎡ β n +θ ⎤ C+ Sn + β (n,+jθk + 1 ) (Crz ) Sn i , j ,k + 12 ) ( rz )(i , j ,k + 1 ) (i , j ,k ) i , 2 ⎢ ( (i , j ,k + 12) (i , j ,k +1) ⎥ 2 ⎣ ⎦ + n +θ − n +θ Δz (ni , j ,k −1) ⎡ β (n,+jθk − 1 ) (Crz ) S (n, j ,k −1) + β (n,+jθk − 1 ) (Crz ) Sn ⎤ i i , i , 1 ) 2 2 ⎥ ⎢ (i , j ,k − 2 (i , j ,k − 12 ) (i , j ,k ) ⎦ ⎣ Δz (ni , j ,k ) ⎡ 1 − β (n,+jθk + 1 ) C (n,+jθ,k + 1 ) S (n, j ,k +1) + S (n, j ,k ) ⎤ i i i , i ⎢ ⎥ 2 2 ⎣ ⎦ Δz (ni , j ,k −1) ⎡ 1 − β (n,+jθk − 1 ) C (n,+jθ,k − 1 ) S (n, j ,k ) + S (n, j ,k −1) ⎤ i i i , i ⎢ ⎥ 2 2 ⎣ ⎦ ( ) ( ) ( ) ( ) Δz (ni , j ,k ) (1 − β( n +θ i , j ,k + 12 ) ) ⎡⎢⎣(C + n +θ rz i , j ,k + 1 ( 2) n +θ ) (S( n i , j ,k −1) + S (n, j ,k +1) − 2S (n, j ,k ) i i ) ) − + (Crz ) (i , j ,k + 12) (S( n i , j ,k ) + S (n, j ,k +2) − 2S (n, j ,k +1) ⎤ i i ⎦ + S (n, j ,k ) − 2S (n, j ,k −1) i i ) − Δz (ni , j ,k −1) 16 (1 − β( n +θ i , j ,k − 12 ) ) ⎡⎢⎣(C + n +θ rz i , j ,k − 1 ( 2) ) (S( n i , j ,k −2) − + (Crz ) n +θ (i , j ,k − 12) (S( n i , j ,k −1) + S (n, j ,k +1) − 2S (n, j ,k ) ⎤ i i ⎦ ) 1 + n +θ − n +θ (Crx )(i + 12, j ,k ) SE+ Δz (ni + 12, j ,k ) + 1 (Crx )(i + 12, j ,k ) SE− Δz (ni + 12, j ,k ) 2 2 1 + n +θ 1 − n +θ + + (Crx ) 1 SW Δz (ni − 1 , j ,k ) + (Crx ) 1 S − Δz (ni − 1 , j ,k ) 2 2 (i − 2, j ,k ) (i − 2, j ,k ) W 2 2 1 + n +θ 1 − n +θ + − − (Cry ) 1 S N Δz (ni , j + 1 ,k ) + (Cry ) 1 S N Δz (ni , j + 1 ,k ) 2 2 (i , j + 2,k ) (i , j + 2,k ) 2 2 1 − n +θ 1 + n +θ + − + (Cry ) 1 SS Δz (ni , j − 1 ,k ) + (Cry ) 1 SS Δz (ni , j − 1 ,k ) 2 2 (i , j − 2,k ) (i , j − 2,k ) 2 2 − 128 ⎡ Cr ni +jθ,k + 1 Cr ni +jθ,k − 1 ) (, (, n n 2) 2 S (i , j ,k +1) − S (i , j ,k ) − S (n, j ,k ) − S (n, j ,k −1) +⎢ i i n n 2Pe (i , j ,k − 1 ) ⎢ 2Pe (i , j ,k + 12) 2 ⎣ ⎡ Cr ni +θ1 , j ,k ⎤x ⎢ (n+ 2 ) S (n +1, j ,k ) − 2 S (n, j ,k ) + S (n −1, j ,k ) ⎥ Δ z (ni , j ,k ) + i i i ⎢ 2Pe (i + 12, j ,k ) ⎥ ⎣ ⎦ ( ) ( ) ⎤ ⎥ ⎥ ⎦ ( ) ⎡ C r n +θ 1 (i , j + 2,k ) +⎢ − 2S (n, j ,k ) + S (n, j −1,k ) Sn i i ⎢ 2Pe ni , j + 1 ,k ) (i , j +1,k ) ( 2 ⎣ n +ΔtS (n, j ,k ) Δz (ni , j ,k )K + Δt Δz (ni , j ,k )F fonte i ( )⎥ Δ z ( ⎥ ⎦ ⎤y n i , j ,k ) em que os espaçamentos para a célula 3D são expressos na forma discreta como: Δ z (ni , j ,k ) = 0,5 Δz (ni + 1 , j ,k ) + Δz (ni − 1 , j ,k ) e Δ z (ni , j ,k ) = 0,5 Δz (ni , j + 1 ,k ) + Δz (ni , j − 1 ,k ) 2 2 2 2 e são atualizados como: x ( ) ⎠ y ( ) Δz (nM + 1 , j ,k ) = Δz (nM + 1 , j ,k ) + η⎛n I +1 ⎞ e Δz (ni ,M + 1 ,k ) = Δz (ni ,M + 1 ,k ) + η⎛n J +1 ⎞ 2 2 2 2 ,j ⎟ +j⎟ ⎜i + ⎜i , em que I = −sign U ( n ( M + 12, j ,k ) ) J = −sign (V ⎝ 2 n (i ,M + 12) ) . Nas funções interpolantes para ⎝ 2 ⎠ (6.9) toma-se θ = 0,5 e β variando, como discutido no anexo 1. 6.5.1 Condições de contorno: extrapolação Para implementar as condições de contorno para o transporte horizontal, considerou-se a dependência de dados do estêncil de 9-pontos do método FLM conforme as fig. 6.8(a) e 6.8(b), além do fato como que não há fluxo atravessando contornos sólidos. Além disso, especificaram-se condições de Dirichlet e de Neumann, sendo a primeira como CC inflow, e a segunda como CC outflow. • (0,j) • (1,j) • (2,j) • (3,j) (a) • (N-2,j) • (N-1,j) • (N,j) • (N+1,j) (b) FIGURA 6.8 - Representação para molécula computacional para o transporte horizontal, para as CC esquerda (a) e para a CC direita (b) As condições de contorno para o transporte vertical foram obtidas a partir do fato de que não há fluxo escalar na superfície livre e no leito (interface sedimento-água), e considerando a malha vertical (coluna vertical) dada na fig. 6.9. 129 w(k =M + 1 ) ≡ 0 2 k=M+½ • S(i,j,k=M) k=M k=M-½ • S(i,j,k=M-1) k=M-1 ...... • S(i,j,k=m+1) k=m+1 k=m+½ • S(i,j,k=m) k=m k=m-½ w(k =m − 1 ) ≡ 0 2 FIGURA 6.9 - Exemplo para uma coluna vertical representando as CC tipo não escoamento no topo e no fundo de uma coluna de água Note-se que as CC podem ser implementadas através de extrapolação, como feito por [HUN95], ou através da supressão dos termos, como feito por [BLO94], [GRO98] e [HEI99]. Para o transporte vertical, empregou-se a supressão dos termos, e para o transporte horizontal, empregou-se a extrapolação. Isso porque, no transporte horizontal, há uma grande variedade de funções limitadoras de fluxo (seção 5.1.4) e a abordagem extrapolação é mais geral já que não depende de uma particular função, mas apenas dos pontos que não pertencem ao domínio computacional. Assim sendo, tem-se os seguintes casos: 1. transporte vertical: advecção As condições de contorno para os fluxos verticais (SU ) ≡ SU ni , j ,k + ( 1 2 ) e (S L ) ≡ S L ni , j ,k − ( 1 2 ) são implementadas notando que esses fluxos estão definidos em m + 1 ≤ k ≤ M em S L , e em m ≤ k ≤ M − 1 em SU . Assim: 1.1. não há fluxo no topo e no fundo da coluna de água. Logo para k = M e para k =m, os fluxos (SU ) ≡ SU ni , j ,M + ( 2 1 2 ) e (S L ) ≡ S L ni , j ,m − ( 1 2 ) são, respectivamente, dados por: w(ni ,+jθ,M + 1 )SU (i , j ,M + 12) ≡ 0 , w(ni ,+jθ,m − 1 )S L (i , j ,m − 12) ≡ 0 2 1.2. considerando as funções interpolantes, os fluxos devem ser tratados dependendo das velocidades, das faces superior do topo e do fundo. 1.2.1. tem-se correção para o fluxo (SU ) ≡ (SU )(i , j ,m + n 1 (S )( + n U i , j ,m + 1 2) ≈ β (n,+jθm + 1 ) θ S (n,+j1m ) + (1 − θ ) S (n, j ,m ) , pois o termo de i , i i , 2 ( 2 ) , em k = m , quando w(n ,+jθ,m + 1 ) > 0 , i 2 ) 1 (1 − β ) S(ni , j ,m −1) − 2S(ni , j ,m ) + S(ni , j ,m +1) 8 ( ) inclui S (n, j ,m −1) ∉ CV i k =m , onde 130 CV é o conjunto das células válidas. Deve-se, portanto, retirar esse termo do vetor − B (n ) . (SU ) k n ( i , j ,m + 1 2 ) − = 0 , pois (Crz ) n +θ (i , j ,m + 12) ≡ C (n,+jθ,m + 1 ) − C (n,+jθ,m + 1 ) = 0 i i 2 2 ( ) e quando w(n ,+jθ,m + 1 ) < 0 , tem-se que: i 2 (S )( + n U i , j ,m + 1 2) + = 0 , pois (Crz ) n +θ (i , j ,m + 12) ≡ C (n,+jθ,m + 1 ) + C (n,+jθ,m + 1 ) = 0 i i 2 2 ( ) e onde o termo (S )( − n U i , j ,m + 1 2) = β (n, j ,m + 1 ) θ S (n,+j1m +1) + (1 − θ ) S (n, j ,m +1) i , i i 2 − 1 − β (n,+jθm + 1 ) i , 2 ( ) ) ( ) 1 (S 8 (i , j ,m ) n − 2S (n, j ,m +1) + S (n, j ,m +2) i i pois está completamente definido. Similarmente, o termo 1−θ n ⎡θ ⎤ C (n,+jθ,m + 1 ) 1 − β (n,+jθm + 1 ) ⎢ S (n,+j1m ) + S (n,+j1m +1) + S (i , j ,m ) + S (n, j ,m +1) ⎥ i , i , i i i , 2 2 2 ⎣2 ⎦ ( ) ( ) ( ) está definido para qualquer velocidade ( w(n ,+jθ,m + 1 ) < 0 e w(n ,+jθ,m + 1 ) > 0 ) i i 2 2 1.2.2. 1.2.2.1 para o fluxo (SU ) ≡ (SU )(i , j ,M − n 1 2 ) , em k = M − 1 , é tal que: para w(n ,+jθ,M − 1 ) < 0 tal que: i 2 (S )( pois o termo − n U i , j ,M − 1 2) ≈ β (n,+jθM − 1 ) θ S (n,+j1M ) + (1 − θ ) S (n, j ,M ) , i , i i , 2 ( ) 1 (1 − β ) S (ni , j ,M −1) − 2S(ni , j ,M ) + S(ni , j ,M +1) 8 n S (i , j ,M +1) ∉ CV k =M −1 . Deve-se, portanto, retirar esse termo do vetor B (n ) ; k de correção ( ) inclui (S )( 1.2.2.2 + n U i , j ,M − 1 2) + = 0 , pois (Crz ) n +θ (i , j ,M − 12) ≡ C (n,+jθ,M − 1 ) + C (n,+jθ,M − 1 ) = 0 i i 2 2 ( ( ) para w(n ,+jθ,M − 1 ) > 0 tal que: i 2 − n U i , j ,M − 1 2) + = 0 , pois (Crz ) n +θ (S )( (i , j ,M − 12) ≡ C (n,+jθ,M − 1 ) − C (n,+jθ,M − 1 ) = 0 i i 2 2 ) e onde o termo (S )( + n U i , j ,M − 1 2) = β (n,+jθM − 1 ) θ S (n,+j1M −1) + (1 − θ ) S (n, j ,M −1) i , i i , 2 − 1 − β (n,+jθM − 1 ) i , 2 ( ) ) ( ) 1 (S 8 (i , j ,M −2) n − 2S (n, j ,M −1) + S (n, j ,M ) i i pois está completamente definido. 1.2.2.3 o termo 1−θ n ⎡θ ⎤ C (n,+jθ,M − 1 ) 1 − β (n,+jθM − 1 ) ⎢ S (n,+j1M −1) + S (n,+j1M ) + S (i , j ,M −1) + S (n, j ,M ) ⎥ i , i , i i i , 2 2 2 ⎣2 ⎦ ( ) ( ) ( ) está definido para qualquer velocidade ( w(n ,+jθ,M − 1 ) < 0 e w(n ,+jθ,M − 1 ) > 0 ) i i 2 2 1.3. considerando as funções interpolantes, os fluxos são aproximados dependendo das velocidades, das faces inferiores do topo e do fundo. 1.3.1. para o fluxo ( S L ) ≡ (S L )(i , j ,m + 1 ) , em k = m + 1 é tal que: n 2 131 1.3.1.1 para w(n ,+jθ,m + 1 ) > 0 tal que: i 2 − n L i , j ,m + 1 2) + = 0 , pois (Crz ) n +θ (S )( pois o (i , j ,m + 12) ≡ C (n,+jθ,m + 1 ) − C (n,+jθ,m + 1 ) = 0 i i 2 2 ( ) (S )( termo + n L i , j ,m + 1 2) ≈ β (n,+jθm + 1 ) θ S (n,+j1m ) + (1 − θ ) S (n, j ,m ) , i , i i , 2 ( ) 1 (1 − β ) S(ni , j ,m −2) − 2S(ni , j ,m −1) + S(ni , j ,m ) 8 n S (i , j ,m −2) ∉ CV k =m +1 . Deve-se, portanto, retirar esse termo do vetor B (n ) ; k de correção para w(n ,+jθ,m + 1 ) < 0 tal que: i 2 + n L i , j ,m + 1 2) + = 0 , pois (Crz ) n +θ ( ) inclui 1.3.1.2 (S )( (i , j ,m + 12) ≡ C (n,+jθ,m + 1 ) + C (n,+jθ,m + 1 ) = 0 i i 2 2 ( ) e onde o termo (S )( − n L i , j ,m + 1 2) = β (n,+jθm + 1 ) θ S (n,+j1m +1) + (1 − θ ) S (n, j ,m +1) i , i i , 2 − 1 − β (n,+jθm + 1 ) i , 2 ( ) ) ( ) 1 (S 8 (i , j ,m ) n − 2S (n, j ,m +1) + S (n, j ,m +2) i i pois está completamente definido. 1.3.1.3 o termo 1−θ n ⎡θ ⎤ C (n,+jθ,m + 1 ) 1 − β (n,+jθm + 1 ) ⎢ S (n,+j1m ) + S (n,+j1m +1) + S (i , j ,m ) + S (n, j ,m +1) ⎥ i , i , i i i , 2 2 2 ⎣2 ⎦ ( ) ( ) ( ) está definido para qualquer velocidade ( w(n ,+jθ,m + 1 ) < 0 e w(n ,+jθ,m + 1 ) > 0 ) i i 2 2 1.3.2. 1.3.2.1 para o fluxo ( S L ) ≡ (S L )(i , j ,M − 1 ) , em k = M , é tal que: n 2 para w + n L i , j ,M − 1 2) n +θ (i , j ,M − 12 ) < 0 tal que: n +θ (S )( pois o + = 0 , pois (Crz ) (i , j ,M − 12 ) ≡ C (n,+jθ,M − 1 ) + C (n,+jθ,M − 1 ) = 0 i i 2 2 ( ) (S )( termo k =M _ n L i , j ,M − 1 2) ≈ β (n,+jθM − 1 ) θ S (n,+j1M ) + (1 − θ ) S (n, j ,M ) , i , i i , 2 ( ) de S (n, j ,M +1) ∉ CV i 1.3.2.2 1 (1 − β ) S(ni , j ,M −1) − 2S(ni , j ,M ) + S(ni , j ,M +1) 8 e deve-se, portanto, retirar esse termo do vetor B (n ) ; k correção n +θ ( ) inclui para w(n ,+jθ,M − 1 ) > 0 tal que: i 2 − n L i , j ,M − 1 2) − = 0 , pois (Crz ) (S )( (i , j ,M − 12) ≡ C (n,+jθ,M − 1 ) − C (n,+jθ,M − 1 ) = 0 i i 2 2 ( ) e onde o termo (S )( + n L i , j ,M − 1 2) = β (n,+jθM − 1 ) θ S (n,+j1M −1) + (1 − θ ) S (n, j ,M −1) i , i i , 2 − 1 − β (n,+jθM − 1 ) i , 2 ( ) ) ( ) 1 (S 8 (i , j ,M −2) n − 2S (n, j ,M −1) + S (n, j ,M ) i i pois está completamente definido. 1.3.2.3 o termo 132 1−θ n ⎡θ ⎤ C (n,+jθ,M − 1 ) 1 − β (n,+jθ,M − 1 ) ⎢ S (n,+j1M −1) + S (n,+j1M ) + S (i , j ,M −1) + S (n, j ,M ) ⎥ i , i , i i i 2 2 2 ⎣2 ⎦ ( ) ( ) ( ) está definido para qualquer velocidade ( w(n ,+jθ,M − 1 ) < 0 e w(n ,+jθ,M − 1 ) > 0 ) i i 2 2 Assim, em resumo, considerando essas aproximações para a advecção vertical, deve-se alterar o sistema de equações (6.9), tal que em B (n ) tem-se: k a. b. em k = M (SU ) ≡ SU ni , j ,M + ( 1 2 ) = 0 e em 1 2 k = m (S L ) ≡ S L (i , j ,m − 12) = 0 ; n n 2 para os fluxos (SU n +θ (i , j ,m + 12 ) ) ≡ (SU )(i , j ,m + n ) e ( S L ) ≡ (S L )(i , j ,m + 1 ) , tem-se no caso de w > 0 , que : − ≈ β (n,+jθm + 1 ) θ S (n,+j1m ) + (1 − θ ) S (n, j ,m ) e (SU ) =0 i , i i , 2 (i , j ,m + 12 ) n + = 0 e (S L ) n (S )( + n U i , j ,m + 1 2) − n L i , j ,m + 1 2) ( ) (S )( + (i , j ,m + 12 ) ≈ β (n,+jθm + 1 ) θ S (n,+j1m ) + (1 − θ ) S (n, j ,m ) i , i i , 2 ( ) e portanto: Δz (ni , j ,k ) 16 (1 − β( (1 − β( n +θ i , j ,k + 12 ) ) ⎡⎢⎣(C )( n +θ + n +θ rz i , j ,k + 1 2) (S( n i , j ,k −1) + S (n, j ,k +1) − 2S (n, j ,k ) i i ) − + (Crz ) (i , j ,k + 12 ) (S( n i , j ,k ) + S (n, j ,k +2) − 2S (n, j ,k +1) ⎤ ≈ 0 i i ⎦ + S (n, j ,k ) − 2S (n, j ,k −1) i i + S (n, j ,k +1) − 2S (n, j ,k i i ) − Δz (ni , j ,k −1) 16 n +θ i , j ,k − 12 ) ) ⎡⎢⎣(C )( − + (Crz ) + n +θ rz i , j ,k − 1 2) n +θ (i , j ,k − 12 (S( S )( ( n i , j ,k − 2) n i , j ,k −1) ) ⎤ ) )⎦ ≈ 0 significando que SU cumpre essas condições para k = m e w(n ,+jθ,m + 1 ) > 0 . i 2 n Analogamente, S L cumpre essas condições para k = m + 1 e w(n ,+jθ,m + 1 ) > 0 . i 2 c. para (SU ) ≡ (SU )(i , j ,m + =0 e 1 2 ) e ( S L ) ≡ (S L )(i , j ,m + 1 ) com w(n ,+jθ,m + 1 ) < 0 que: i 2 2 n (S ) (S + n U i , j ,m + 1 ( 2) (S )( (S )( − n U i , j ,m + 1 2) = β (n, j ,m + 1 ) θ S (n,+j1m +1) + (1 − θ ) S (n, j ,m +1) i , i i 2 − 1 − β (n,+jθm + 1 ) i , 2 ( ) ) ) ) ( + n L i , j ,m + 1 )( 2 ) =0 e − n L i , j ,m + 1 2) = β (n,+jθm + 1 ) θ S (n,+j1m +1) + (1 − θ ) S (n, j ,m +1) i , i i , 2 − 1 − β (n,+jθm + 1 ) i , 2 ( ) 1 (S 8 ) 1 (S 8 (i , j ,m ) n − 2S (n, j ,m +1) + S (n, j ,m + 2) i i ( (i , j ,m ) n − 2S (n, j ,m +1) + S (n, j ,m +2) i i e portanto: + Δz (ni , j ,k ) 16 (1 − β( n +θ i , j ,k + 12 ) ) ⎡⎢⎣(C )( n +θ + n +θ rz i , j ,k + 1 2) (S( n i , j ,k −1) + S (n, j ,k +1) − 2S (n, j ,k ) i i ) e − + (Crz ) (i , j ,k + 12) (S( n i , j ,k ) + S (n, j ,k + 2) − 2S (n, j ,k +1) ⎤ i i ⎦ + S (n, j ,k + 2) − 2S (n, j ,k +1) ⎤ i i ⎦ ) ≈ Δz (ni , j ,k ) 16 (1− β( n +θ i , j ,k + 12 ) ) (C )( − n +θ rz i , j ,k + 1 2) (S( n i , j ,k ) ) 133 − Δz (ni , j ,k −1) 16 (1 − β( n +θ i , j ,k − 12 ) ) ⎡⎢⎣(C )( n +θ + n +θ rz i , j ,k − 1 2) (S( n i , j ,k − 2) + S (n, j ,k ) − 2S (n, j ,k −1) i i ) ) − + (Crz ) (i , j ,k − 12) (S( n i , j ,k −1) + S (n, j ,k +1) − 2S (n, j ,k ) ⎤ i i ⎦ + S (n, j ,k +1) − 2S (n, j ,k ) i i ) ≈− Δz (ni , j ,k −1) 16 (1− β( n +θ i , j ,k − 12 ) ) (C )( − n +θ rz i , j ,k − 1 2) (S( n i , j ,k −1) significando que SU cumpre essas condições para k = m e w(n ,+jθ,m + 1 ) < 0 . i 2 Analogamente, S L cumpre essas condições para k = m + 1 e w(ni ,+jθ,m + 1 ) < 0 . 2 d. no caso dos fluxos (SU ) ≡ (SU )(i , j ,M − n 1 e 2) ( S L ) ≡ (S L )(i , j ,M − n 1 2 ) , tem-se quando w(ni ,+jθ,M − 1 ) < 0 , que : 2 (S )( − n U i , j ,M − 1 2) + n L i , j ,M − 1 2) + ≈ β (n,+jθM − 1 ) θ S (n,+j1M ) + (1 − θ ) S (n, j ,M ) e (SU ) =0 i , i i , 2 (i , j ,M − 12 ) n _ = 0 e (S L ) n ( ) (S )( + 16 (i , j ,M − 12 ) ≈ β (n,+jθM − 1 ) θ S (n,+j1M ) + (1 − θ ) S (n, j ,M ) , i , i i , 2 ( ) e portanto: Δz (ni , j ,M ) (1 − β( n +θ i , j ,M + 12 ) ) ⎡⎢⎣(C )( − + (Crz ) + n +θ rz i , j ,M + 1 2) n +θ (S( n i , j ,M −1) + S (n, j ,M +1) − 2S (n, j ,M ) i i (i , j ,k + 12 ) (S( n i , j ,M ) + S (n, j ,M +2) − 2S (n, j ,M +1 i i ) ⎤ ) )⎦ ≈ 0 − Δz (ni , j ,M −1) 16 (1 − β( n +θ i , j ,M − 12 ) ) ⎡⎢⎣(C )( + n +θ rz i , j ,M − 1 2) n +θ (S( n i , j ,M − 2) + S (n, j ,M ) − 2S (n, j ,M −1) i i ) − + (Crz ) (i , j ,M − 12) (S( n i , j ,M −1) + S (n, j ,M +1) − 2S (n, j ,M ) ⎤ ≈ 0 i i ⎦ ) significando que SU cumpre essas condições para k = M − 1 e w(n ,+jθ,M − 1 ) < 0 . i 2 Analogamente, S L cumpre essas condições para k = M e w(n ,+jθ,M − 1 ) < 0 . i 2 e. que: para (SU ) ≡ (SU )(i , j ,M − n 1 e ( S L ) ≡ (S L )(i , j ,M − 1 ) com w(n ,+jθ,M − 1 ) > 0 , tem-se i 2 2) 2 n (S )( − n U i , j ,M − 1 2 ) =0 e (S )( + n U i , j ,M − 1 2) = β (n,+jθM − 1 ) θ S (n,+j1M −1) + (1 − θ ) S (n, j ,M −1) i , i i , 2 2 ( ) ) − 1 − β (n,+jθM − 1 ) i , ( (S )( − n L i , j ,M − 1 2 ) =0 e (S )( + n L i , j ,M − 1 2) = β (n,+jθM − 1 ) θ S (n,+j1M −1) + (1 − θ ) S (n, j ,M −1) i , i i , 2 2 ( ) 1 (S 8 ( i , j ,M − 2 ) n − 2S (n, j ,M −1) + S (n, j ,M ) i i ) ) − 1 − β (n,+jθM − 1 ) i , ( ) 1 (S 8 ( i , j ,M − 2 ) n − 2S (n, j ,M −1) + S (n, j ,M ) i i e portanto: 134 + Δz (ni , j ,M ) 16 (1− β( n +θ i , j ,M + 12 ) ) ⎡⎢⎣(C )( n +θ + n +θ rz i , j ,M + 1 2) (S( n i , j ,M −1) + S (n, j ,M +1) − 2S (n, j ,M ) i i ) e − + (Crz ) ( i , j ,M + 12 ) (S( n i , j ,M ) + S (n, j ,M + 2) − 2S (n, j ,M +1) ⎤ i i ⎦ + S (n, j ,M +1) − 2S (n, j ,M ) ⎤ i i ⎦ + S (n, j ,M ) − 2S (n, j ,M −1) i i ) ≈ − Δz (ni , j ,M ) 16 16 (1− β( n +θ i , j , M + 12 ) ) (C )( n +θ + n +θ rz i , j ,M + 1 2) (S( n i , j ,M −1) ) Δz (ni , j ,M −1) (1− β( n +θ i , j ,M − 12 ) ) ⎡⎢⎣(C )( + n +θ rz i , j ,M − 1 2) (S( n i , j ,M − 2) ) ) − + (Crz ) ( i , j , M − 12 ) (S( n i , j ,M −1) + S (n, j ,M +1) − 2S (n, j ,M ) ⎤ i i ⎦ n i , j ,M − 2 ) ) ≈− Δz (ni , j ,M −1) 16 (1− β( n +θ i , j ,M − 12 ) ) (C )( + n +θ rz i , j ,M − 1 2) (S( + S (n, j ,M ) − 2S (n, j ,M −1) i i significando que SU cumpre essas condições para k = M − 1 e w(n ,+jθ,M − 1 ) > 0 . i 2 Analogamente, S L cumpre essas condições para k = M e w(n ,+jθ,M − 1 ) > 0 . i 2 2. transporte horizontal: difusão 2.1 para células internas 2 ≤ i ≤ N − 1 e 2 ≤ j ≤ M − 1 as expressões são inalteradas, ou seja: Cr (i + 12, j ,k ) 2Pe (i + 12, j ,k ) Cr (i , j + 12,k ) 2Pe (i , j + 12,k ) n n +θ n n +θ ( ( S (n +1, j ,k ) − 2 S (n, j ,k ) + S (n −1, j ,k ) Δ z (ni , j ,k ) i i i S (n, j +1,k ) − 2 S (n, j ,k ) + S (n, j −1,k ) Δ z (ni , j ,k ) i i i ) ) x y 2.2 para células adjacentes às fronteiras inferior e que não correspondem às esquinas da malha, ou seja, para j = 1 e 2 ≤ i ≤ N − 1 , tem-se: Cr (i + 12,1,k ) 2Pe (i + 12,1,k ) Cr (i ,1+ 12,k ) n +θ n n n +θ (S( n i +1,1,k ) − 2 S (n,1,k ) + S (n −1,1,k ) Δ z (ni ,1,k ) i i − 2 S (n,1,k ) + S (n,0,k ) Δ z (ni , j ,k ) i i ) x 2Pe (i ,1+ 12,k ) (S( n i ,2,k ) ) y onde S (n,0,k ) = 3 2 S (n,1,k ) − 12 S (n,2,k ) i i i 2.3 para células adjacentes às fronteiras superiores e que não correspondem às esquinas da malha, ou seja, para j = M e 2 ≤ i ≤ N − 1 tem-se: Cr (i + 12,M ,k ) 2Pe (i + 12,M ,k ) Cr (i ,M + 12,k ) 2Pe (i ,M + 12,k ) onde S (n,M +1,k ) = i 3 2 n n +θ n n +θ ( ( S (n +1,M ,k ) − 2 S (n,M ,k ) + S (n −1,M ,k ) Δ z (ni ,M ,k ) i i i S (n,M +1,k ) − 2 S (n,M ,k ) + S (n,M −1,k ) Δ z (ni ,M ,k ) i i i ) ) x y S (n,M ,k ) − 1 2 S (n,M −1,k ) i i 135 2.4 para células adjacentes as fronteiras esquerda e que não correspondem às esquinas da malha, onde i = 1 e 2 ≤ j ≤ M − 1 , tem-se: Cr (1+ 12,M ,k ) 2P onde S (n j ,k ) = 0, 3 2 n e (1+ 12,M ,k ) n +θ (S( n 0, j ,k ) − 2 S (n j ,k ) + S (n2, j ,k ) Δ z (n j ,k ) 1, 1, ) x S (n j ,k ) − 1 2 S (n2, j ,k ) 1, n +θ n Cr (1, j + 12,k ) 2Pe (1, j + 12,k ) ( S (n j +1,k ) − 2 S (n j ,k ) + S (n j −1,k ) Δ z (n j ,k ) 1, 1, 1, 1, ) y 2.5 para células adjacentes às fronteiras direitas e que não correspondem às esquinas da malha, onde i = N e 2 ≤ j ≤ M − 1 , tem-se: Cr (N + 12,M ,k ) 2Pe ( N + 12,M ,k ) onde S (n +1, j ,k ) = N 3 2 n +θ n n n +θ (S( (S( n N +1, j ,k ) − 2 S (nN , j ,k ) + S (nN −1, j ,k ) Δ z (nN , j ,k ) ) x S (nN , j ,k ) − 12 S (nN −1, j ,k ) n N , j +1,k ) Cr (N , j + 12,k ) 2Pe ( N , j + 12,k ) − 2 S (nN , j ,k ) + S (nN , j −1,k ) Δ z (nN , j ,k ) ) y Note-se que não é necessário, como feito para as ESW 3D, determinar as CC para células correspondentes às esquinas da malha onde (1,1, k ) , ( N ,1, k ) , (1, M , k ) e ( N , M , k ) , já que nas ESW os termos de difusão horizontal são compostos por termos em u e v para a ECQMx e para a ECQMy. No caso da ETM 3D, a difusão horizontal considera somente S para as duas direções coordenadas. transporte vertical: difusão Como as difusões não são calculadas, respectivamente, em k = m − 1 e k = M + 1 , já que não há difusão no topo e no fundo da coluna de água, as expressões válidas são as que estão agregadas ao vetor B (n ) , válidas para k 3. m ≤ k ≤ M , e são tais que: Cr (i , j ,k + 12) 2P 4. n e (i , j ,k + 12 ) n +θ (S n (i , j ,k +1) −S n (i , j ,k ) ) e − 2P Cr (i , j ,k − 12) n e (i , j ,k − 12 ) n +θ (S( n i , j ,k ) − S (n, j ,k −1) i ) transporte horizontal: advecção As condições de contorno para a advecção horizontal considerando-se as diversas funções limitantes, são as seguintes: 4.1 para células interiores 3 ≤ i ≤ N − 2 e 3 ≤ j ≤ M − 2 . Todas as expressões para as funções monitoras e os termos de concentração estão completamente definidos; 4.2 para células das fronteiras inferiores dadas por 3 ≤ i ≤ N − 2 , j = 1, 2 , os + − + − − − termos S E , S E , SW , SW , S N e SS permanecem inalterados; devendo-se + + aproximar os fluxos SS e S N , e as funções monitoras λ(−, j − 1 ,k ) , λ(+, j − 1 ,k ) e i i 2 2 λ + (i , j + 12,k ) ; 136 4.2.1 2 Para que + SN ND ; j =1 , tem-se ΔS = S (n, j +1,k ) − S (n, j −1,k ) . Então, se i i 2 ( ) + + v (ni ,1θ 1 ,k ) < 0 n tem-se S N + ND ; j =1 → 0 e se define ΔS = 0 e λ(+, j + 1 ,k ) i + v (ni ,1θ 1 ,k ) > 0 , tem-se S (n,0,k ) i + 2 j =1 = max ( 5 6 S (n,1,k ) − 1 6 S (n,2,k ) + S (n,3,k ) , 0 ; i i i 2 ) + SN ≈ 1 . Se 4.2.2 4.2.3 2 aproxima-se λ(−, j − 1 ,k ) i 2 − SS ≈ −1 , λ(+, j − 1 ,k ) i para + SS ND ; j =1,2 , tem-se ΔS = S (n, j −1,k ) − S (n, j −2,k ) . i i 2 ( + SS ≈ 1 e λ(+, j + 1 ,k ) + ≈ 1 ; i 2 SS ) Então, + SS se + + v (ni ,1θ 1 ,k ) < 0 , tem-se SS + ND ; j =1,2 → 0 e se define ΔS = 0 e λ(+, j + 1 ,k ) i ≈ 1 . Se + v (ni ,1θ 1 ,k ) > 0 , tem-se: + 2 S (n,0,k ) i S (n,−1,k ) i 4.3 para j =2 j =1 ( = max ( = max 5 6 S (n,1,k ) − 1 6 S (n,2,k ) + S (n,3,k ) , 0 i i i S (n,0,k ) − 1 6 S (n,1,k ) + S (n,2,k i i i 5 6 ) ) , 0) ; células das fronteiras superiores dadas por 3 ≤ i ≤ N − 2 , + − + − + + j = M , M − 1 , os termos S E , S E , SW , SW , S N e SS permanecem inalterados; − − deve-se aproximar os fluxos SS e S N , e as funções λ(+, j + 1 ,k ) , λ(−, j − 1 ,k ) e λ(+, j − 1 ,k ) . i i i 2 2 2 4.3.1 2 Para que − SS ND ; j =M −1 ND ; j = M −1 ,tem-se ΔS = S (n, j +1,k ) − S (n, j ,k ) . i i 2 ( ) E, se θ − v (ni ,+M − 1 ,k ) > 0 , tem-se SS → 0 e se define ΔS = 0 e λ(−, j − 1 ,k ) ≈ 1 . Se i θ v (ni ,+M − 1 ,k ) < 0 , então S (n,M ,k ) i 2 j = M −1 = max ( 5 6 S (n,M −1,k ) − 1 6 S (n,M − 2,k ) + S (n,M − 3,k ) ,0 i i i ) 4.3.2 para − SS essas funções tem-se λ(+, j + i 1 2,k ) + SN ≈ 1, λ(−, j + i 1 2,k ) S− ≈ 1 , N λ − (i , j − 12,k ) ≈ 1 e; ND ; j =M ,M −1 4.3.3 2 − para S N tem-se que ΔS = S (n, j + 2,k ) − S (n, j +1,k ) . Então se i i θ → 0 . Se v (ni ,+M − 1 ,k ) < 0 tem-se: 2 ( ) θ − v (ni ,+M − 1 ,k ) > 0 tem-se S N ND ; j = M ,M −1 S (n,M ,k ) i j =M −1 = max ( 5 6 S (n,M −1,k ) − 1 6 S (n,M −2,k ) + S (n,M −3,k ) , 0 i i i S (n,M ,k ) − 1 6 S (n,M −1,k ) + S (n,M −2,k ) , 0 i i i ) S (n,M +1,k ) i 4.4 j =M = max ( 5 6 ) para células das fronteiras esquerdas dadas por 3 ≤ j ≤ M − 2 , i = 1, 2 , − − + − + − os termos S E , SW , S N , S N , SS e SS permanecem inalterados; devendo-se + + aproximar os fluxos S E e SW , e as funções r(++ 1 , j ,k ) , r(+− 1 , j ,k ) e r(−− 1 , j ,k ) . i 2 i 2 i 2 4.4.1 2 Para que + SE ND ;i =1 , tem-se ΔS = S (n, j ,k ) − S (n −1, j ,k ) . i i 2 ( ) Então, se + u(n +jθ+ 1 ,k ) < 0 , tem-se S E 1, ND ;i =1 → 0 e se define ΔS = 0 e r(++ 1 , j ,k ) ≈ 1 . Se i u n +θ (1, j + 12,k ) > 0 , tem-se S n (i ,0,k ) i =1 = max ( 5 6 S n (i ,1,k ) − 16 S n (i ,2,k ) +S n (i ,3,k ) ,0 ; ) 137 4.4.2 4.4.3 2 para as funções tem-se r(++ 1 , j ,k ) ≈ 1 , r(+− 1 , j ,k ) ≈ 1 e r(−− 1 , j ,k ) ≈ 1 ; i 2 i 2 i 2 para + SW ND ;i =1,2 , tem-se ND ;i =1,2 que ΔS = S (n −1, j ,k ) − S (n −2, j ,k ) . i i ( ) E, se + u(n +jθ+ 1 ,k ) < 0 , tem-se SW 1, → 0 e se define ΔS = 0 e r(+− 1 , j ,k ) ≈ 1 . Se i 2 S (n j ,k ) − 1 6 S (n2, j ,k ) + S (n3, j ,k ) , 0 1, S (n0, j ,k ) − 1 6 S (n j ,k ) + S (n2, j ,k 1, u(n +jθ+ 1 ,k ) > 0 , tem-se: 1, 2 S (n0, j ,k ) S (n−1, j ,k ) 4.5 i =2 = max j =1 ( = max ( 5 6 5 6 ) ) , 0) para células das fronteiras direitas dadas por 3 ≤ j ≤ M − 2 , i = N , N − 1 , + + + − + − os termos S E , SW , S N , S N , SS e SS permanecem inalterados; deve-se − − aproximar os fluxos S E e SW , e as funções r(++ 1 , j ,k ) , r(−− 1 , j ,k ) e r(−− 1 , j ,k ) . i 2 i 2 i 2 4.5.1 − Para que SW ND ; j =N −1 + , tem-se ΔS = S (n +1, j ,k ) − S (n, j ,k ) . Se u(nM θ 1 , j ,k ) > 0 , i i − 2 ( ) − tem-se SW ND ; j = N −1 S (nN , j ,k ) 4.5.2 j = M −1 = max as 2 ( + → 0 e se define ΔS = 0 e r(−− 1 , j ,k ) ≈ 1 . Se u(nM θ 1 , j ,k ) < 0 , i 2 − 2 5 6 S (nN −1, j ,k ) − 1 6 S (nM − 2, j ,k ) + S (nM − 3, j ,k ) ,0 monitoras 2 ) para + SE funções − SE dessas funções tem-se que r(++ 1 , j ,k ) i 2 ≈ 1 , r(−− 1 , j ,k ) i ≈ 1 e r(−− 1 , j ,k ) i − SW ≈ 1; 4.5.3 2 − para S E ND ;I =N ,N −1 , tem-se que ΔS = S (n +2, j ,k ) − S (n +1, j ,k ) . Então, se i i θ → 0 . Se u(nN+− 1 , j ,k ) < 0 , tem-se: 2 ( ) θ − u(nN+− 1 , j ,k ) > 0 , tem-se S E ND ;I =N ,N −1 S (nN , j ,k ) j = N −1 = max ( 5 6 S (nN −1, j ,k ) − 1 6 S (nN −2, j ,k ) + S (nN −3, j ,k ) , 0 S (nN , j ,k ) − 1 6 S (nN −1, j ,k ) + S (nN −2, j ,k ) , 0 ) S (nN +1, j ,k ) j =N = max ( 5 6 ) Não é necessário determinar as CC para células correspondentes às esquinas da malha onde (1,1, k ) , ( 2,1, k ) , ( N ,1, k ) , ( N − 1,1, k ) , (1, M , k ) , (1, M − 1, k ) , ( N , M , k ) , ( N − 1, M − 1, k ) , (1, 2, k ) , ( 2, 2, k ) , ( N , 2, k ) , ( N − 1, 2, k ) , ( 2, M , k ) , ( 2, M − 1, k ) , ( N − 1, M , k ) , ( N , M − 1, k ) , pois, no caso da ETM 3D, a advecção horizontal considera somente S para as duas direções coordenadas. Nas fronteiras abertas pode-se implementar, se necessário, CC tipo gradiente nulo, como discutido nas seções 2.5.1, 3.4 e 3.5.1. Porém esse tipo de CC é somente especificado para esquemas implícitos que empregam a condição de gradiente nulo de modo a incorporar as CC no sistema de equações. Quando o transporte horizontal é explícito, como no caso 3D neste trabalho, não é necessário implementar essas CC. Detalhes em [RIZ2002a]. 138 7 Solução Paralela: ambiente computacional e métodos A programação paralela pode ser explícita ou implícita. Na implícita, o compilador gera o código de acordo com o grau de paralelismo determinado pelo programador, dentro das características do compilador. A explícita requer o total controle sobre as estratégias de implementação e sobre a própria implementação. Não obstante o avanço tecnológico do hardware e do software, os avanços nos algoritmos nas décadas de 80 e 90, sobretudo aqueles de particionamento de malha, de decomposição de domínio, de pré-condicionamento e dos métodos iterativos, foram os principais elementos motivadores para o emprego de arquiteturas tipo Massively Parallel Processors (MPP) e/ou clusters. Sob essa argumentação, discutem-se nesse capítulo os métodos de estratégias de paralelização empregadas neste trabalho. Este trabalho pode ser classificado como pertencente à classe de estudos ambientais (Environmental Studies) e só é factível através do emprego de modelagem computacional combinada com métodos experimentais, que são empregados para obter os dados utilizados na validação e na calibração do modelo computacional. Exemplos de aplicações que são próximas a esse trabalho, sob o ponto de vista de estratégias de solução paralela e de esquemas numéricos, são Modelagem de Reservatórios (Reservoir Modeling), Ciências Atmosféricas (Atmospheric Science) e (Modelagem Oceânica Global) Global Ocean Modeling, entre outras. Os domínios práticos de tais problemas são de grande porte e exigem, para uma solução com alta resolução e qualidade numérica, uma capacidade de processamento e de armazenamento tal que torna imprescindível o uso de ambientes computacionais de alto desempenho. Sob tais ambientes, as aplicações podem ser realizadas com um nível de detalhe que não seria viável em abordagens computacionais seqüenciais. Nesse sentido, os clusters de PCs têm se mostrado uma opção acessível e eficiente, dado o crescente desenvolvimento de redes de alta velocidade, e permitem obter desempenho equivalente ao de processadores vetoriais por um custo muito menor. Porém, nesse tipo de arquitetura, dado a falta de ferramentas para auxiliar a paralelização, a programação paralela é explícita, exigindo o completo controle sobre as estratégias de implementação e sobre a própria implementação. Além disso, o tipo de paralelismo a ser explorado em um cluster depende da arquitetura disponível. Em clusters multiprocessados, deve-se explorar o paralelismo intra-nodal e o inter-nodal. No inter-nodal, a memória é distribuída e os processos comunicam-se por troca de mensagens. No paralelismo intra-nodal, a memória é compartilhada e o paralelismo é explorado usando threads ou processos escalonados pelo sistema operacional (SO). Sob o ponto de vista da programação, o paradigma empregado neste trabalho é o SPMD (Single Program Multiple Data), pelo qual todos os processadores executam o mesmo código com sua porção local de dados. E, assim, questões cruciais em aplicações paralelas que são discutidas a seguir são os problemas da localidade dos dados, o balanceamento de carga e a comunicação, entre outras. 7.1 Plataforma computacional e ambiente de programação Um cluster de PCs é um agregado de PCs, chamados de nodos, interconectados por redes de alta velocidade. Esses nodos trabalham juntos como se fossem um único e integrado sistema de computação. Os nodos que compõem um cluster podem ter um ou mais processadores. Quando existe mais de um processador por nodo, a arquitetura é dita multiprocessada. Nesse caso, além do paralelismo inter-nodal (memória distribuída), pode-se explorar o paralelismo intra-nodal (memória compartilhada). Os clusters podem, ainda, ser homogêneos se todos os nodos têm mesma arquitetura e mesmo sistema operacional, ou heterogêneos se os nodos possuem processadores, memórias ou sistemas operacionais diferentes. 139 Os algoritmos implementados foram executados em um cluster tipo heterogêneo multiprocessado do Instituto de Informática da UFRGS. Esse cluster é constituído por quatro nodos Dual Pentium Pro 200 MHz com 128 MB de memória RAM e por quatro nodos Dual Pentium III 500 MHz com 512 MB de memória RAM, conectados pela rede Fast-Ethernet. Outro cluster utilizado foi o disponível no LNCC, que é um cluster homogêneo, formado por 32 nodos com processadores Pentium III 800 MHz monoprocessados com 256 MB de memória RAM. Seus nodos são conectados pela rede Fast-Ethernet. Um terceiro cluster empregado foi o disponível no CPAD PUCRS/HP, que é composto por nodos Pentium III 550MHz duais com 512 MB de memória RAM conectados pela rede Fast Ethernet. A disponibilização de arquiteturas heterogêneas multiprocessadas em Centros de Pesquisas é uma tendência, já que a necessidade de mais capacidade computacional pode ser suprida, adicionando-se nodos extras ao cluster. Devido ao rápido avanço tecnológico, cada atualização no cluster agrega máquinas com diferentes capacidades, resultando em clusters heterogêneos. Essas são questões relevantes para o problema de mapeamento, que é discutido nas próximas seções As arquiteturas de memória compartilhada e distribuída são, sob o ponto de vista da programação, bem caracterizadas. Sob a memória compartilhada, os dados e as operações são globais, isto é, têm o mesmo endereçamento. Sob a memória distribuída, a comunicação entre processos é obtida através de trocas de mensagens. A biblioteca utilizada a MPICH 1.2.1 do ANL [GRP2000], uma implementação do padrão MPI (Message Passing Interface), que contempla um conjunto de 125 primitivas [PAC97]. O MPICH segue o paradigma SPMD, onde cada processador executa uma instância do mesmo algoritmo. O SO usado é o LINUX 2.2.1, e o compilador, o gcc versão 2.9.1.6. Em clusters multiprocessados, deve-se explorar o paralelismo intra-nodal, um bom recurso para esse fim é o uso de múltiplas threads, pois compartilham código, dados e recursos. Uma thread pode ser vista como um fluxo de execução e, caso seja desejado, é possível aumentar explicitamente o número de threads existentes em um programa [PIC2001]. Existem alguns modelos de programação de threads, mas, nas plataformas originárias de UNIX, predomina o IEEE POSIX threads (Pthreads) que é o modelo padrão ISSO/IEC 99-45-1. O trabalho que vem sendo desenvolvido por Picinin (dissertação de mestrado no GMCPAD do PPGC-UFRGS) enfoca a exploração dos dois níveis de paralelismo, o inter e o intra-nodal, em clusters multiprocessados, bem como o desenvolvimento de algoritmos de ordenação de mensagens entre os processos visando evitar deadlock e/ou melhorar o desempenho computacional, quando da falta de buffer pela biblioteca de troca de mensagens Os resultados obtidos ([PIC2001] e [PIC2002]) indicam que o ganho de desempenho usando threads no segundo nível de paralelismo, em relação ao uso somente de processos é, em média, 11%, o que é significativo. Além disso, também se pode usar threads para sobrepor comunicação com processamento, como em [VOR93]. Nesse contexto, um resultado preliminar de André Luis Martinotto [MAR2002], que desenvolve sua dissertação de mestrado no GMCPAD do PPGC-UFRGS, enfocando decomposição de domínio e sobreposição de comunicação e computação, mostrou que o uso do MPI com threads na paralelização é efetivo, sobretudo quando o volume de comunicação global entre os processos é elevado. Nesse caso, o uso de múltiplas threads reduz o volume de comunicação entre processos, tornando essa abordagem vantajosa à medida que o número de processos cresce. Porém, não obstante o desempenho oferecido pelo uso de threads, como o SO escalona processos nos nodos multiprocessados sem o custo de implementação do segundo nível de paralelismo (threads), os resultados apresentados neste trabalho consideram essa última abordagem. Em futuras otimizações o modelo computacional aqui desenvolvido poderá contemplar o uso de threads não só para explorar o segundo 140 nível de paralelismo (intra-nodal), mas também para sobrepor comunicação e computação, como discutido no final da seção 3.5.2. 7.2 Decomposição de dados O processo de paralelizar um método de solução, distribuindo os dados e as instruções entre os processadores é chamado, neste trabalho, de decomposição de dados. Nessa abordagem o método de solução do problema (global) é distribuído e resolvido em paralelo. Essa é uma das abordagens que foi empregada neste trabalho para obter a solução paralela do algoritmo do gradiente conjugado e do algoritmo de Thomas. As comunicações coletivas empregadas nessas paralelizações são feitas através de operações que estão disponíveis no MPI. No MPI, a comunicação dos processos é baseada no envio e no recebimento de mensagens. A transferência dos dados entre esses processos requer operações entre eles de modo que uma operação de envio deve ter uma respectiva operação de recebimento e vice-versa. Entre as primitivas do MPI destaca-se [PAC97]: primitivas de gerência: responsáveis por determinar o número de processos, obter 1. a identificação de cada um deles, inicializar e finalizar processos; 2. primitivas de comunicação ponto a ponto: responsáveis pelo envio e recebimento de mensagens entre dois processos; 3. primitivas de comunicação em grupo: responsáveis pela comunicação entre vários processos em um grupo. Na criação dos processos, cada um recebe uma identificação que é única, e é através dessa identificação que os processos comunicam-se. A comunicação ponto a ponto é feita entre dois pontos, sendo um o receptor, e o outro, o emissor. As principais primitivas desse tipo são, no MPI, o MPI_Send e o MPI_Receive. A comunicação coletiva é feita entre vários processos, e pode ser feita com um processo se comunicando com todos, todos comunicando-se com um e/ou com todos. Um exemplo para uma comunicação coletiva é a operação broadcast um para todos (1:N) que é responsável pelo envio do mesmo conjunto de dados de um nodo para todos os outros nodos. O MPI_Broadcast é uma primitiva de comunicação coletiva do MPI, pela qual um processo envia o mesmo dado para todos os outros processos. A operação gather é utilizada para coletar as estruturas de dados distribuídas entre os nodos. É particularmente útil na multiplicação de uma matriz densa por um vetor, no sentido de obter o vetor completo em cada nodo para realizar a multiplicação paralela. Assim, um gather é uma comunicação que consiste de um único processo coletar uma estrutura de dados distribuída entre os outros processos. A operação gather é chamada, no MPI, de MPI_Gather. Outra operação é a scatter, que distribui os dados armazenados em um único nodo para os outros. É utilizada no particionamento inicial dos dados da matriz e do vetor entre os nodos Na comunicação scatter, a estrutura de dados armazenada em um único nodo é distribuída para os outros nodos e, no MPI, é chamada de MPI_Scatter. Outra operação freqüentemente utilizada é o reduce, pela qual todos os processadores enviam seus dados a um nodo. Essa operação é utilizada nas operações de produto escalar entre dois vetores. Então a operação reduce coleta esses dados parciais e centraliza em um dos nodos. O MPI implementa essa operação através da primitiva MPI_Allreduce. 7.3 Particionamento, mapeamento e balanceamento de carga Ambientes computacionais dotados de múltiplos processadores, como os clusters de PCs, podem resolver problemas de grande porte concorrentemente, quando da situação em que cada processador recebe um ou mais subdomínios, partes do domínio 141 global. Tais subdomínios devem ser gerados por algoritmos eficientes, que identifiquem as células internas e das fronteiras e que tenham as características de [SMI96]: 1. balancear a carga computacional entre os processadores, de modo que cada um tenha carga proporcional a sua capacidade de processamento; 2. diminuir o número de células nas fronteiras, de modo a minimizar o tempo de sincronização entre os processadores, dado que as aplicações paralelas são, geralmente, síncronas, e as comunicações são restritas às fronteiras; 3. assegurar a localidade dos dados, de modo a minimizar o número de dados que devem ser trocados a cada passo no tempo; 4. considerar discretizações arbitrárias e geometrias irregulares, permitindo um tratamento mais realístico para problemas definidos em domínios complexos. Os problemas de particionamento de domínio (ou dados) em subdomínios (ou porções de dados), considerando-se a arquitetura dispoível e exigindo o balanceamento de carga e a minimização da comunicação dos processos, durante tempo de execução, são questões que remetem a quatro das mais importantes áreas de estudos da Computação Científica Paralela (CCP). A CCP é definida como sendo o projeto e a análise de algoritmos para a solução de problemas em Ciência e Engenharia, adotando técnicas de paralelismo, de modo que esses algoritmos possam ser executados em máquinas paralelas, objetivando soluções computacionalmente eficientes e numericamente acuradas [HEA2001]. Essas quatro áreas estão sob o escopo dos métodos de particionamento de malha; dos algoritmos de mapeamento, dos métodos e algoritmos de balanceamento de carga, e dos métodos de decomposição de domínio. Pode-se dizer, de modo aproximado, que métodos de particionamento de malha são aqueles que decompõem os dados entre os processos buscando maximizar a relação computação/comunicação. Algoritmos de mapeamento visam mapear o grafo da aplicação sobre o grafo da arquitetura. Métodos de balanceamento dinâmico de carga buscam manter, em tempo de execução, aquela relação computação/comunicação calculada no particionamento estático. Métodos de decomposição de domínio são um conjunto de técnicas matemáticas e computacionais pelas quais as soluções locais geram a solução do problema global. Um dos enfoques deste trabalho é métodos de decomposição de domínio, enquanto métodos de solução e enquanto pré-condicionadores. Os problemas de particionamento de malha e balanceamento dinâmico de carga são tratados por Ricardo Vargas Dorneles [DOR2002]. Carvalho [CAR2002] estudou o mapeamento em arquiteturas heterogêneas, além do problema de particionamento de malha. 7.3.1 Heurísticas para o particionamento O particionamento de malha numérica pode ser visto como um problema de particionamento de grafos, quando se considera o grafo G ≡ (V , A, pa , pv ) composto pelo conjunto V = {0,..., n −1} com n nodos; pelo conjunto A ⊆ V ×V de arestas; pelos pesos pa dos nodos; e pelos pesos pv dos vértices. Então, pode-se associar a cada nodo processos ou dados, e às arestas as comunicações ou dependência de dados, aos pesos pa a carga computacional, e aos pesos pv a carga de comunicação. O problema de particionar o grafo em tantas partes quantos forem os processos, visando a minimizar o número de arestas entre eles, é conhecido como k − particionamento. A idéia básica do particionamento, no caso simples de a malha numérica ser gerada na discretização por diferenças finitas, é percorrer todas as células efetivas de cálculo do domínio, identificando-as e associando a cada uma delas a sua carga computacional (vértices) e a sua dependência de dados (arestas). A partir daí, pode-se gerar uma lista que contém a quantidade de vértices e de arestas, mais 142 uma enumeração das relações entre cada vértice. Deve-se obter um k − particionamento para essa lista, mas esse é um problema NP-difícil ([GAR79] e [TOS97]) e, portanto, abordagens heurísticas são as únicas viáveis. A literatura a esse respeito é vasta, e algumas referências pertinentes são [WAL95], [BAK96], [PEL96], [DIE97], [KAR98], [SCH98], [SCH99], [DEM99], [WAL2000] e [KUM2002]. Em Schloegel [SCH2000a] e Kumar [KUM2002] tem-se uma síntese de vários métodos e algoritmos comparando suas principais características como, a qualidade, tempo de execução e o grau de paralelismo. As heurísticas para o particionamento podem ser classificadas em globais e locais. As globais são conhecidas como heurísticas de construção, já que utilizam a descrição do grafo como entrada e geram seu particionamento. As locais são conhecidas como heurísticas de melhoramento, pois utilizam o grafo e o particionamento como entrada e tentam melhorar o particionamento através do rearranjo dos vértices (células computacionais). Alguns métodos da classe das heurísticas globais empregados para o particionamento de malhas cartesianas são aqueles que particionam a malha em qualquer uma das direções coordenadas. Eles são discutidos em [DOR2001], [VOL97], [VOL97a] e [ROE97], e exemplos são: 1. SSTRIP (straigh stripwise partitioning): cada submalha recebe um determinado número de linhas ou colunas inteiras; 2. STRIP (stripwise partitioning): análogo ao STRIP, exceto que, ou a linha ou a coluna da fronteira pode ser particionada em dois processadores adjacentes; 3. RCB (recursive coordinate bisection): utiliza as informações das coordenadas da malha para fazer a bissecção, que é aplicada recursivamente para cortar o grafo em mais de duas partes; 4. ORB (orthogonal recursive bisection): a bissecção no passo atual é feita em uma direção ortogonal à bissecção do passo anterior. A bissecção pode ser feita particionando a linha ou coluna da fronteira entre dois processadores, garantindo submalhas de mesmo tamanho; 5. SORB (straigh orthogonal recursive bisection): é análogo ao método ORB, porém cada processador recebe apenas linhas ou colunas inteiras, o que pode gerar subdomínios de diferentes tamanhos. Outros exemplos de métodos globais sofisticados, que servem para qualquer tipo de malha, são os espectrais como o RSB (recursive spectral bisection) [LUC2000]; os gulosos (greedy) ([HEN93] e [SZW99]); o HSFC (Hilbert space-filling curve) ([PIL96] e [ALU97]), entre outros, que podem ser vistos em [DOR2001], bem como as estratégias tipo multinível (multilevel algorithm) ([DEM96] e [KUM2002]). Heurísticas globais geralmente necessitam de refinamentos nos seus cortes. Esses refinamentos são obtidos através de heurísticas locais. Algumas das principais heurísticas dessa classe são ([KER70] e [DOR2001]): 1. K-L (Kernighan-Lin): usa a estratégia de trocar pares de nodos, como no método guloso, considerando um aumento no tempo do corte, evitando mínimos locais; 2. F-M (Fiduccia-Mattheyses): é o resultado da modificação do algoritmo K-L, gerando uma versão mais complexa, porém mais eficiente daquele algoritmo. A escolha desta ou daquela heurística deve levar em conta as características da aplicação, considerando o custo do particionamento × qualidade da partição, o grau de paralelismo de tais heurísticas, entre outras questões. Os algoritmos acima mencionados estão implementados em bibliotecas ou pacotes de particionamento de grafos. Quatro dos pacotes mais conhecidos são: METIS [KAR98], JOSTLE [WAL2000], CHACO [HEN95] e SCOTCH [PEL96]. A fig. 7.1 mostra um exemplo para o particionamento para o domínio do Lago Guaíba usando o algoritmo RCB. O particionamento foi gerado considerando-se como 143 espaçamento horizontal Δx=Δy=50m. As espessuras das camadas verticais variam conforme o número de camadas. Com essas escolhas tem-se, para o caso da fig. 7.1, 185.124 vértices (células efetivas de cálculo) e 366.032 arestas quando com somente 1 camada, e 390.781 vértices e 776.525 arestas quando com 8 camadas. FIGURA 7.1 - Particionamento, em 23 processos, para o Lago Guaíba usando o algoritmo RCB A fig. 7.2 mostra um particionamento para o Lago Guaíba em 16 processos usando a biblioteca METIS. Esse exemplo ilustra um campo de velocidades superficial para o modelo com 8 camadas, e onde a configuração geométrica utilizada foi aquela obtida com o arquivo Guaiba_50. inflow outflow FIGURA 7.2 - Particionamento, em 16 processos, para o Lago Guaíba usando a biblioteca METIS, onde se destaca o campo de velocidades Note-se que em soluções paralelas cada subdomínio deve trocar dados com os subdomínios vizinhos para atualizar as condições de contorno e/ou a sobreposição. Um aspecto importante para que essas trocas sejam realizadas com o menor custo é o 144 ordenamento das mensagens. Os problemas decorrentes de um ordenamento ineficiente das mensagens vão desde a queda de desempenho, que pode ocorrer se diversos processos tentam enviar mensagens para o mesmo processo simultaneamente, até a ocorrência de deadlocks. Neste trabalho o particionamento do domínio é centralizado no processo 0, que cria a estrutura em memória descrevendo a configuração geométrica, e sobre essa estrutura é executado o particionamento, gerando-se para cada subdomínio, estruturas que o descrevem, bem como à estrutura dos subdomínios vizinhos. De posse dessas estruturas, cada processo aloca memória para todo o seu subdomínio e inicializa as variáveis de cada célula do domínio. A ordenação de mensagens considera que a escolha do ordenamento das mensagens é efetuada de modo centralizado pelo mesmo processo que efetua o particionamento, e a seqüência de trocas de cada processo é enviada no início da simulação juntamente com as informações de cada partição, para o processo responsável. Essa implementação utiliza a numeração dos processos para definir a ordem de troca de mensagem. 7.3.2 Métodos e algoritmos de mapeamento Uma distribuição não equilibrada da carga computacional pode acarretar ociosidade em alguns processadores, pelo tempo de espera inserido por sincronismos. Isso ocorre devido ao fato de que simulações de eventos reais tem dependência física nas fronteiras artificialmente criadas pelo algoritmo de particionamento. Em geral, os processos não podem resolver suas partes em paralelo sem troca de informações nessas fronteiras. Portanto, a distribuição de computação deve levar em conta que os processadores podem ter diferentes capacidades e/ou receber tarefas mais pesadas. Se os processadores possuírem diferentes capacidades de processamento e/ou comunicação como, por exemplo, velocidade do processador, memória RAM, redes de interconexão, etc., deve-se considerar essas diferenças de modo que as cargas sejam proporcionais à capacidade de processamento e/ou comunicação de cada nodo da plataforma heterogênea na qual se resolve a simulação computacional [CAR2002]. Esse problema pode ser formalizado de modo análogo ao problema de particionamento de grafos, notando-se que a arquitetura também pode ser vista como um grafo. Seja o grafo H ≡ ( N , R , pn , pr ) , em que N = {0,..., p − 1} é o conjunto dos processadores (ou processos); R ⊆ H × H é o conjunto das arestas; aos pesos pn é associada a capacidade de processamento e/ou memória de cada nodo; e aos pesos pr , a largura de banda e latência da rede ([WAL2000] e [DOR2001]). Assim, a composição particionamento de malha e balanceamento de carga pode ser vista como um problema de mapeamento de grafos. Deve-se encontrar um mapeamento Π :G → H , do grafo da aplicação para o grafo da arquitetura, de modo a maximizar a relação computação/comunicação considerando-se a arquitetura disponível. Nesse caso, o problema do mapeamento é dependente da rede de interconexão. Se os nodos são interligados através de um switch na rede de conexão (onde todos os nodos se comunicam simultaneamente), como o caso do cluster do IIUFRGS, então, sob o ponto de vista de grafos, essa rede pode ser vista como um grafo fortemente conectado. O problema do mapeamento reduz-se, portanto, a maximizar a relação computação/comunicação através de um particionamento estático que leve em conta a capacidade de processamento de cada nodo. A literatura técnica disponível sobre o problema de mapeamento é restrita, e um dos poucos algoritmos encontrados é o da Bissecção Recursiva Dual (BRD), desenvolvido por Pellegrini [PEL96] para ser utilizado na biblioteca SCOTCH, que se distingue por não ser apenas uma biblioteca de particionamento de grafos; mas 145 também de mapeamento. O algoritmo BRD utiliza um grafo valorado, para representar a plataforma computacional, onde se definem pesos para os vértices, que representam a capacidade de processamento dos nodos, e se definem pesos para as arestas, que representam a comunicação entre os nodos. O algoritmo minimiza a comunicação mantendo o balanceamento de carga, com certo erro. Outra abordagem é aquela onde se faz o mapeamento após um agrupamento (clusterização) dos nodos do grafo da aplicação, gerando um cluster multinível, e um agrupamento dos vértices do grafo dos processadores, gerando um cluster multinível. A seguir emprega-se um algoritmo para mapear um grafo sobre o outro. Outro algoritmo é aquele baseado no paradigma da divisão-e-conquista, e utiliza uma variação do algoritmo Kernighan-Lin. Nessa abordagem, as tarefas são alocadas, considerando-se redes de interconexão tipo hipercubo, através de repetidas bissecções sobre o grafo representativo das tarefas. Nesse caso, considera-se que as cargas sejam balanceadas com certa tolerância, que é especificada. Discussões adicionais sobre essas abordagens podem ser vistas em [CAR2002]. Neste trabalho considerou-se, no entanto, que a rede de interconexão é fortemente conectada e os nodos são homogêneos. 7.3.3 Heurísticas e métodos de balanceamento de carga Algoritmos de particionamento de grafos dividem a computação estática. Para problemas nos quais a carga é conhecida no tempo inicial e permanece ao longo do tempo, o balanceamento de carga é estático. Se a carga computacional alocada a cada processador é alterada em tempo de execução, esse processo é chamado de balanceamento dinâmico [QUI94]. Na definição dos algoritmos de balanceamento dinâmico, deve-se considerar ([WAT95] e [DOR2001]): a avaliação da carga: necessária para detectar o grau do desbalanceamento e 1. identificar os processos nos quais devem ocorrer as transferências de tarefas; a avaliação do custo/benefício: deve ser considerada no cálculo do novo 2. particionamento e da nova migração de dados, pois é necessário levar em conta que esses processos têm um custo que pode ser significativo. A detecção da carga é obtida usando métricas que indiquem quais processadores estão desbalanceados. Para redistribuir a carga deve-se parar o processamento, recalcular a malha, reparticioná-la e mapeá-la novamente. Assim, deve-se verificar se a relação custo/benefício é compensatória. Se for compensatória, uma estratégia é usar algoritmos de difusão que, geralmente, garantem um novo balanceamento de carga com pouca movimentação de dados ([DIE97a] e [SCH2000]). Com essa estratégia, avalia-se a carga de cada um dos processadores e compara-se sua carga com a dos processadores vizinhos. Se a diferença estiver acima de um limite, transfere-se parte da carga de um processador a outro, tal como ocorre na difusão do calor [GHO96]. Detalhes e outras estratégias podem ser vistos em [DOR2001] e [DOR2002]. Um exemplo concreto da necessidade do balanceamento dinâmico de carga é a aplicação feita neste trabalho. O modelo de transporte de substâncias é resolvido com a malha refinada encaixada na malha da hidrodinâmica. Entretanto, como a pluma de substâncias pode tomar outras direções no decorrer do tempo, ocorrem freqüentes desbalanceamentos da carga que, geralmente, são significativos. Nesse caso, o problema multifísica pode ser abordado como: 1. particionar a malha global, considerando que os nodos da malha refinada sejam pesos para os nodos das sub-regiões nas quais ocorre o transporte. Nesse caso, os subproblemas da hidrodinâmica e os do transporte de substâncias são alocados no mesmo processador. A comunicação é mínima, mas o balanceamento de carga pode não ser o mais adequado; 146 2. particionar a malha global e a refinada independentemente, e mapeá-las aos processadores. Nesse caso, o balanceamento da carga pode ser feito empregandose algoritmos de difusão, como definidos por [DOR2002]. O problema dessa abordagem é que pode ser necessário movimentar todos os dados locais da malha da hidrodinâmica para o processador que tenha a respectiva malha do transporte, pois os valores da hidrodinâmica são dados de entrada para a solução do transporte. Essas e outras estratégias são objetos de pesquisa de Dorneles [DOR2002], e estão sendo feitos análises e experiências numéricas para verificar qual abordagem é a mais conveniente, sob o ponto de vista numérico-computacional, considerando-se as questões do balanceamento dinâmico de carga para a solução combinada para o escoamento e para o transporte de substâncias. Essa questão é imprescindível, pois a hidrodinâmica e o transporte escalar de substâncias formam um modelo multifísica, onde os resultados produzidos pelo modelo hidrodinâmico (velocidades e níveis de água) são dados de entrada para o modelo de transporte, que calcula a concentração das substâncias (bactérias coliformes) Porém, o escoamento e o transporte têm diferentes escalas espaço-temporais de resolução, como destacado no anexo 1, tornando necessário a construção de uma malha mais refinada, para o transporte, que encaixada na malha mais grosseira, do escoamento. Essa malha é construída através de refinamento local empregando-se interpolações (h-método), e foi discutida na seção 3.6.1. Note-se que os resultados apresentados neste trabalho referem-se somente à execução separada da hidrodinâmica e do transporte. Não se considerou aqui a questão da solução multifísica com balanceamento de carga, onde se executa a hidrodinâmica e o transporte escalar simultâneamente. Essa questão é tratada com a aplicação de algoritmos e estratégias de balanceamento dinâmico de carga, e pode ser visto na tese de Dorneles [DOR2002] 7.4 Métodos de decomposição de domínio Uma classe de métodos matemáticos e computacionais que são empregados para resolver problemas pertencentes à CCP é aquela dos métodos de decomposição de domínio (MDD). Não obstante a vasta literatura, a expressão decomposição de domínio tem diferentes interpretações para diferentes especialistas. Não existe unanimidade na literatura técnica sobre a terminologia. Uma classificação proposta é a de Christara [CHR90], na qual a decomposição de domínio é a classe à qual pertencem os MDD sem sobreposição. O particionamento de domínio é a classe na qual o domínio é decomposto em subdomínios com sobreposição. O particionamento de dados é a classe dos métodos que usam o paralelismo no método de solução. Outra classificação, adotada neste trabalho é aquela de Smith, Bjorstad e Gropp [SMI96], que consiste em: decomposição de dados: nessa abordagem, gera-se um único sistema de 1. equações que é distribuído entre os processadores de modo que possa ser resolvido independentemente e em paralelo. Algumas vezes essa abordagem é, também, chamada de particionamento de dados; decomposição de domínio: nessa abordagem, empregam-se métodos e técnicas 2. para acoplar as soluções dos subproblemas gerados a partir da decomposição do domínio original. Desse modo, a solução do sistema de equações global é obtida pela combinação das soluções desses subproblemas. Então, o particionamento (ou divisão) do domínio em subdomínios pertence ao escopo dos métodos de particionamento de malha, questão tratada na seção 7.3, enquanto a decomposição de domínio é um conjunto de técnicas e métodos para acoplar os diferentes subdomínios. 147 Esse é o mesmo ponto de vista de Chan e Mathew [CHA94], que consideram que métodos de decomposição de domínio são técnicas, para resolver EDPs, baseadas na decomposição do domínio espacial do problema em vários subdomínios. Essas técnicas devem assegurar que as subsoluções convirjam, dentro de uma dada acuárica, para s solução verdadeira do problema. É essa a caracterização dada neste trabalho aos MDD, particularmente aqueles de Schwarz que são MDD iterativos. Um panorama completo sobre as diferentes abordagens em MDD pode ser visto em trabalhos como os de Chan e Mathew [CHA94], Smith, Bjorstad e Gropp [SMI96] e de Quarteroni e Valli [QUA99]. Uma síntese de alguns dos principais conceitos e aplicações de MDD é como feita em [MOU2001]. Nos trabalhos de Jinchao Xu [XUJ92], de Dryja e Widlund [DRY89], e de Tallec [TAL94], discutem-se o tratamento matematicamente rigoroso e abstrato dos MDD, sob o ponto de vista de métodos iterativos por decomposição de espaços e correção de subespaços (iterative methods by space decomposition and subspace correction). Porém, neste trabalho, a ênfase dada aos MDD é somente aos seus aspectos computacionais e numéricos. Assim, na computação científica paralela, os MDD são particularmente atraentes, pois acoplam as diferentes partes de modo que, em geral, as comunicações ficam restritas à fronteira. Algumas das maiores motivações para o uso dos MDD são o fato de que seu emprego possibilita ([SMI92] e [GRP94]): 1. o uso de dados locais, necessitando de pouca comunicação global, a qual geralmente fica restrita à sincronização da solução; 2. uma completa flexibilidade no tratamento das soluções de EDPs definidas em regiões com geometria complexa e/ou que exibem comportamentos diferentes em diferentes partes do subdomínio; 3. a construção de pré-condicionadores que são empregados para acelerar métodos iterativos de solução do subespaço de Krylov. Métodos de decomposição de domínio sem sobreposição não são abordados neste trabalho e podem ser vistos em [SMI96] e [BOL98], entre outros. MDD com sobreposição são empregados devido a sua simplicidade e ao fato de que podem ser usados como método de solução e como pré-condicionador. No primeiro caso, os MDD são utilizados como um método iterativo de solução que resolve o problema de valor de contorno global a partir da combinação das soluções dos subproblemas de valor de contorno. É essa a abordagem do MDD de Schwarz discutido a seguir. No segundo caso, gera-se um pré-condicionador, que é distribuído por construção, de modo que pode ser empregado no passo de précondicionamento de um método iterativo. Há toda uma teoria consolidada a respeito de métodos de decomposição de domínio aplicado à solução paralela de EDPs elípticas. Os resultados fornecem condições necessárias e suficientes nas quais os algoritmos são escaláveis. Ou seja, a solução não depende do número de subdomínios utilizados, nem do grau de sobreposição ou das características da malha original [SMI96], mas somente do estêncil computacional. Problemas hiperbólicos ou incompletamente parabólicos não têm a mesma base matemática, apesar dos bons resultados numéricos quando do emprego de estratégias semelhantes às das EDPs elípticas na obtenção de suas soluções. É sob esse ponto de vista que os métodos de decomposição de domínio são empregados neste trabalho para obter a solução paralela do modelo computacional aqui desenvolvido. 7.4.1 Métodos de Schwarz O método alternante de Schwarz (MAS) foi desenvolvido em 1870 por H. A. Schwarz. É caracterizado pela decomposição do domínio limitado Ω ⊂ n ≤3 em 148 do domínio sendo ∂Ωi a fronteira de Ωi . As fronteiras artificialmente criadas pelas sobreposições são denotadas por Γi = ∂Ωi ∩ Ω , e a fronteira real é denotada por subdomínios sobrepostos Ω i , tal que Ω ⊆ UN 1 Ωi , onde Ωi = Ωi ∪ ∂Ωi denota o fecho i= ∂Ωi \ Γi , que são os pontos de ∂Ωi que não estão em Γi . Para esclarecer essas notações, no caso de dois subdomínios, a região aberta é denotada por Ω = Ω1 ∪ Ω2 , onde Ω1 e Ω2 são abertos, e não incluem as fronteiras. Uma representação desse caso é como mostrado pela fig. 7.3. ∂Ω 1 Ω1 ∂Ω 2 ∂Ω 1 Ω1 ∂Ω 2 Γ1 Γ2 a) Ω2 Γ1 Γ2 b) Ω2 FIGURA 7.3 - Subdomínios Ω1 e Ω2 gerados pelo MAS. a) representa esses dois subdomínios não possuindo malhas emparelhadas; e b) representa esses dois subdomínios possuindo malhas emparelhadas. Desse modo, o método alternante de Schwarz resolve iterativamente o problema elíptico definido em Ω = Ω1 ∪ Ω2 ⎧L ϕ = f ; ϕ ∈ Ω ⎨ ⎩ ϕ = g ; ϕ ∈ ∂Ω em Ωi = Ωi ∪ ∂Ωi depois de k iterações, encontrando a solução aproximada ϕi resolvendo os dois subproblemas. Empregando as notações anteriores, e denotando ( ( ( ( ϕ 2k ) Γ e ϕ1k ) Γ2 como sendo as restrições de ϕ 2k ) e de ϕ1k ) às fronteiras Γ1 e Γ2 , 1 (k ) respectivamente, um algoritmo para o MAS é como na fig. 7.4. inicialização: escolher uma solução inicial ϕ 2 em Ω2 iteração: Para k=1,2,...,n com ϕ 2 (k ) (1) conhecido, resolver ϕ1 (k +1) em Ω1 ( ( ⎧Lϕ 2k +1) = f ; ϕ 2 ∈ Ω2 ⎧Lϕ1k +1) = f ; ϕ1 ∈ Ω1 ⎪ (k +1) ⎪ ( ⎪ ⎪ ( ϕ1 = g1; ϕ1 ∈ ∂Ω1 \ Γ1 e depois u2k +1) em Ω2 ⎨ ϕ 2k +1) = g 2 ; ϕ 2 ∈ ∂Ω2 \ Γ2 ⎨ ⎪ (k +1) ⎪ (k +1) (k ) (k +1) ⎪ ϕ 2 = ϕ1 Γ2 ;ϕ 2 ∈ Γ2 ⎪ ϕ1 = ϕ 2 Γ1 ;ϕ1 ∈ Γ1 ⎩ ⎩ término: até que a solução convirja com um determinado critério de parada como, por exemplo, ϕ 2 (k ) Γ1 ( − ϕ2 k) Γ1 ( ≤ ε e ϕ1 k) Γ2 ( − ϕ1 k) Γ2 ≤ε FIGURA 7.4 - Algoritmo alternante de Schwarz Assim, o MAS resolve o problema global, estabelecendo determinadas condições de contorno nas fronteiras artificiais e usando as condições de contorno do problema 149 original nas fronteiras que coincidem com as fronteiras do domínio original. Note-se que podem surgir dificuldades adicionais para obter as sobreposições nas interfaces entre os subproblemas, como o caso em que não há emparelhamento nas submalhas (nonmatching grids), como exemplificado pela fig. 7.3. b), caso em que se necessita de procedimentos de interpolação. Outras situações são como aquelas que consideram a solução de diferentes EDPs nos subdomínios ou que as condições de contorno estabelecidas entre os subdomínios não são as de Dirichlet ([SMI92] e [GOO99]). Nesses casos, deve-se estabelecer quais as condições de transmissão nessas interfaces [TAL94]. Algumas dessas CC podem ser obtidas a partir da CC de Robin, que é definida por: αϕ1 (k +1) ( ∂ϕ1 +β ∂n k +1) ≡ αϕ 2 (k ) ( ∂ϕ 2 ) +β ∂n k e, assim, quando α ≠ 0 e β ≡ 0 , tem-se a CC de Dirichlet αϕ1 ( α ≡ 0 e β ≠ 0 , tem-se a CC de Neumann β ϕ1k +1) (k +1) ( ) n ( = β ϕ2 ( )) k ( = αϕ 2 ) , e quando k n . Essas dificuldades não se apresentam neste trabalho, pois as malhas são emparelhadas e as EDPs são as mesmas em cada subdomínio. Nessa situação, nas fronteiras artificiais as condições de contorno são do tipo Dirichlet e não trazem dificuldades adicionais para o emprego de MDD de Schwarz. Visando a estabelecer uma notação similar e concisa para o MAS, e para os demais MDD com sobreposição que podem ser dele derivados, o método alternante pode ser escrito empregando uma formulação matricial como em [BOU2000], [LIE2001] e [ALO2002]. Especificamente, denota-se, respectivamente, ϕ Ωi a solução aproximada em Ωi ; ϕ ∂Ωi \Γi a solução nas fronteiras reais; ϕ Γi a solução nas fronteiras artificiais, depois de k iterações, e Ai a forma discreta do operador diferencial L restrita a Ωi , onde AΩi , AΩ\Γi e denotam, respectivamente, os pontos interiores, os pontos das fronteiras verdadeiras, e os pontos da fronteira artificial. Então, o problema contínuo Lϕ = f , denotado na forma discreta (matricial) por Aϕ = b , é escrito, para malhas emparelhadas, como: (k ) (k ) (k ) (A ( AΩi ϕ Ωi k +1) Ωi A∂Ωi \Γi AΓi ) (k ⎛ ϕ Ω +1) ⎜ (ki+1) (k +1) ≡ Aiϕi ≡ ⎜ ϕ ∂Ωi \Γi ⎜ (k +1) ⎜ ϕΓ ⎝ i k ⎞ ⎟ ⎟ = bi ⎟ ⎟ ⎠ k e, assim, o MAS é expresso, para i subdomínios, na forma de: ( ) ( ( = bi − A∂Ωi \Γi ϕ ∂Ωi \Γi − AΓi ϕ Γi ) = bi − A∂Ωi \Γi g i − AΓi ϕ Γ j ) 14 244 123 4 3 1 24 123 4 3 k +1 CC real CC artificial CC Dirichlet j ≠i ou seja: i i i ( ( ( ( − ϕ Ωk +1) = ϕ Ωk ) + AΩ1 bi − AΩ ϕ Ωk ) − A∂Ω \Γ gi − AΓ ϕ Ωk ) i i i i i j ( ) ) ) assim, quando i=1,2, tem-se: 1 1 1 ( ( ( ( − ϕ Ωk +1) = ϕ Ωk ) + AΩ1 b1 − AΩ ϕ Ωk ) − A∂Ω \Γ g1 − AΓ ϕ Ωk ) 1 1 1 1 1 2 ( e 2 2 2 ( ( ( − ϕ Ωk +1) = ϕ Ωk ) + AΩ1 b2 − AΩ ϕ Ωk ) − A∂Ω 2 2 ( 2 \Γ 2 ( g 2 − AΓ2 ϕ Ω1 k +1) 150 Note-se que, quando as malhas não são emparelhadas, como aquelas mostradas na fig. 7.3 b), é necessário interpolar os valores nodais no interior de Ωi para os nodos na curva Γ j através do operador discreto I Ωi →Γ j , e nesse caso, AΓ j ϕ Ωi é substituído por AΓ j I Ωi →Γ j ϕ Ωi . Usando essas notações pode-se rescrever o MAS (e os outros MDD) de modo matricial, observando-se ainda as seguintes definições (k ) (k ) ϕ Ω ≡ R1ϕi 1 (k ) (k ) ⇔ (I ( ( ⎛ ϕ Ωk\)Ω ⎞ ⎛ ϕ Ωk ) ⎞ 2 (k (k ) (k ) (k ) 1 0 ) ⎜ (k ) ⎟ = ϕ Ω1 , ϕ Ω2 ≡ R2ϕi ⇔ ( 0 I ) ⎜ k ⎟ = ϕ Ω2) ( ) ⎟ ⎜ ϕ Ω\Ω ⎟ ⎜ ϕΩ ⎝ 1 ⎠ 2 ⎝ ⎠ AΩi ≡ Ri ARiT ⇔ ( I ⎛ 0 ) ⎜ AΩi ⎝ ( ⎛ I ⎞⎞ AΓi ⎜ ⎟ ⎟ ⇔ ( I ⎝0⎠⎠ ) ⎛A 0 ) ⎜ Ωi ⎝ 0 ⎞ ⎟ = AΩi ⎠ M −1 ≡ RiT ( Ri ARiT ) Ri ⇔ RiT ( Ri−T A −1Ri−1 ) Ri = A −1 −1 M i ≡ Ri ARiT notando que, em implementações práticas, RiT e Ri não são formados explicitamente e fazem apenas papel de operadores (matrizes) de restrição Ri e de extensão RiT , de forma a expressar os algoritmos de modo formal, similar e conciso como em [SMI92], [CHA94] e [SMI96]. Assim, Ri denota a matriz, que, aplicada ao vetor solução, retorna os valores associados com determinados nodos (restrição), e RiT mapeia os valores à matriz global A (extensão). Matematicamente, sob o ponto de vista de subespaços de correção, M i restringe o resíduo a um determinado subdomínio, no qual o problema é resolvido localmente através de uma correção, e estende a solução para todo o subdominio. Portanto, os valores de uma submatriz Ai , associada a uma sub-região Ωi , são obtidos pela operação Especificamente, pode-se escrever que: ( ⎧ AΩ ϕ Ωk +1) = bi ; ϕi(k +1) ∈Ωi ⎪ i i ⎪ (k +1) (k +1) ⎨ϕ ∂Ωi \Γi = gi ; ∂Ωi \Γi ∈∂Ωi \ Γi ⎪ (k +1) (k ) (k +1) ⎪ϕ Γi = ϕ Ω j ≠i ; ϕ Γi ∈Γi ⎩ Ai = Ri ARiT com 1 ≤ i ≤ N subproblemas. ⇔ Aiϕi( k +1) = bi ≡ ( AΩi A∂Ωi \Γi ( ⎛ ϕ Ωk +1) ⎞ ⎜ (ki+1) ⎟ AΓi ) ⎜ ϕ ∂Ωi \Γi ⎟ = bi ⎜ (k +1) ⎟ ⎜ ϕΓ ⎟ ⎝ i ⎠ e, então, considerando que nas fronteiras reais as CC são conhecidas, pode-se eliminálas agregando-as ao vetor dos termos independentes, ou seja, fazendo: ( ( ⎧ AΩ ϕ Ωk +1) = bi − A∂Ω \Γ g i − AΓ ϕ Γk +1) i i i i i ≠i 14 244 1 24 4 3 4 j3 ⎪ (k +1) (k +1) (k +1) %i CC artificiais b AΩi ϕ Ωi + A∂Ωi \Γi ϕ ∂Ωi \Γi + AΓi ϕ Γ j ≠i = bi ⇒ ⎨ 14 244 1 24 4 3 4 3 ⎪ % i − A ϕ (k +1) CC Dirichlet (k (k =b ϕ Γ ) =ϕ Ω ) Γi Γ j ≠i ⎩ j ≠i j ≠i Com essa expressão escreve-se o método alternante de Schwarz, no caso de dois subdomínios e considerando que nas fronteiras artificiais gi é conhecido, como: ( ( ⎧ AΩ ϕ Ωk +1) = b1 − A∂Ω \Γ g1 − AΓ ϕ Ωk ) 1 1 1 2 14 244 4 1 13 ⎪ (k +1) (k +1) (k +1) %1 AΩ1ϕ Ω1 + A∂Ω1 \Γ1ϕ ∂Ω1 \Γ1 + AΓ1ϕ Γ1 = b1 ⇒ ⎨ b 14 244 1 24 4 3 4 3 (k ⎪ % (k +1 (k CC Dirichlet ≡ g1 = b1 − AΓ1ϕ Ω2) ϕ Γ ) =ϕ Ω ) 1 ⎩ 2 Γ1 151 ( ( ⎧ AΩ ϕ Ωk +1) = b2 − A∂Ω \Γ g 2 − AΓ ϕ Ωk +1) 2 2 2 1 14 244 4 2 23 ⎪ (k +1) (k +1) (k +1) %2 AΩ2 ϕ Ω2 + A∂Ω2 \Γ2 ϕ ∂Ω2 \Γ2 + AΓ2 ϕ Γ2 = b2 ⇒ ⎨ b 14 244 1 24 4 3 4 3 ⎪ (k +1 % (k +1 (k +1 CC Dirichlet ≡ g 2 = b 2 − AΓ2 ϕ Ω1 ) ϕ Γ ) =ϕ Ω ) 2 ⎩ 12 que pode ser visto como sendo o método de Gauss-Seidel em blocos aplicado ao sistema de equações, pois cada subdomínio usa como condição de contorno as soluções anteriormente obtidas. Esse sistema, cuja dimensão é maior que N, pois os valores de ϕ em Ω1 ∩ Ω2 ≠ ∅ são duplicados em ϕ Ω1 e ϕ Ω2 , é escrito como: ⎛ AΩ1 ⎜ ⎝ AΓ2 % AΓ1 ⎞ ⎛ ϕ Ω1 ⎞ ⎛ b1 ⎞ =⎜ ⎟ ⎟⎜ ⎟ % AΩ2 ⎠ ⎝ ϕ Ω2 ⎠ ⎜ b 2 ⎟ ⎝ ⎠ Usando essas terminologias, pode-se obter uma variante do método alternante de Schwarz escrevendo-o em dois meios-passos. Isso é obtido através da introdução de um passo intermediário k+½, e essa abordagem fornece a expressão: ϕ( k + 12 ) ϕ (k +1) ⎛ A −1 0 ⎞ k (k ) = ϕ ( ) + ⎜ Ω1 ⎟ b − Aϕ ⎝ 0 0⎠ ⎛0 0 ⎞ k +1 (k + 1 2 ) = ϕ ( 2) + ⎜ −1 ⎟ b − Aϕ ⎝ 0 AΩ2 ⎠ ( ) ( ) ⎫ ⎪ ⎪ ⎬ ⎪ ⎪ ⎭ que pode ser escrita, substituindo a solução ϕ (k + 12 ) do primeiro meio-passo na solução ϕ( k +1 2 ) e no resíduo b − Aϕ ( k +1 2 ) do segundo meio-passo, como: ϕ (k +1) = ϕ (k ) + ⎜ − − ⎛0 0 ⎞ ⎡ ⎛ AΩ1 0 ⎞ ⎛ AΩ1 0 ⎞ k (k ) ⎤ 1 b − Aϕ ( ) + ⎜ ⎟ ⎢b − A ⎜ 1 ⎟ ⎟ b − Aϕ ⎥ −1 ⎥ ⎝ 0 0⎠ ⎝ 0 0⎠ ⎝ 0 AΩ2 ⎠ ⎢ ⎣ ⎦ ( ) ( ) que é escrito, usando as definições anteriores, como − − ϕ (k +1) = ϕ (k ) + M 1−1 b − Aϕ (k ) + M 2 1 b − Aϕ (k ) − M 2 1AM 1−1 b − Aϕ (k ) ( ) ( ) ( ) isto é: − − ϕ (k +1) = ϕ (k ) + ( M 1−1 + M 2 1 − M 2 1AM 1−1 ) b − Aϕ (k ) ( )} ( 7.1) (k ) A expressão (7.1) é uma das variantes do método alternante de Schwarz e é chamada de MDD multiplicativo de Schwarz (MMS), no qual pré-condicionador dado − − − − pelo método de Schwarz é M −1 = M 1 1 + M 2 1 − M 2 1AM 1 1 . Definindo o erro de ϕ por e (k ) = ϕ −ϕ e (k ) , onde ϕ k e é a solução exata, tem-se: k) e( k +1) − − − = e ( ) − ( M 1−1 + M 2 1 − M 2 1AM 1 1 ) Ae ( k k − − − − = ⎡ I − ( M 1−1 + M 2 1 − M 2 1AM 1−1 ) A ⎤ e ( ) = ( I − M 2 1A )( I − M 1 1A ) e ( ) ⎣ ⎦ e, portanto, a matriz de iteração é um produto de duas matrizes, de onde vem a designação do método multiplicativo de Schwarz. Note-se que o MMS é inerentemente seqüencial e, sendo assim, o paralelismo pode ser obtido no MMS introduzindo métodos multicor. Além disso, a matriz précondicionadora não é simétrica e, portanto, não pode ser empregada como um précondicionador para o algoritmo do gradiente conjugado, mesmo se A é SDP. Porém, tal matriz pré-condicionadora pode tornar-se SDP quando se adiciona mais um passo intermediário, como pode ser visto em [ALO2002]. 152 Uma outra versão do método alternante de Schwarz, que considera atualizações simultâneas nas fronteiras é o chamado método aditivo de Schwarz (MAAS). Esse método considera que o passo intermediário k+½ seja substituído pelo passo anterior k na formação do resíduo no segundo meio-passo. Desse modo, o MAAS é escrito como: ϕ( k + 12 ) = ϕ ( ) + M 1−1 b − Aϕ ( k k + 12 ) ( k) ϕ (k +1) = ϕ ( ou seja, substituindo a solução ϕ segundo meio-passo, tem-se: − + M 2 1 b − Aϕ ( ( ) k) ) ⎫ ⎪ ⎬ ⎪ ⎭ (k + 12 ) (k + 12 ) do primeiro meio-passo na solução ϕ do − ϕ (k +1) = ϕ (k ) + ( M 1−1 + M 2 1 ) b − Aϕ (k ) ( ) que é a forma do MAAS escrito para dois subdomínios, na qual o pré-condicionador − − dado pelo método de Schwarz é M −1 = M 1 1 + M 2 1 , que é simétrico e pode ser empregado diretamente no algoritmo do GC. Note-se que esse método pode ser visto como o método iterativo de Jacobi com sobreposição em blocos, pois todos os subdomínios usam a solução da última iteração como condição de contorno. A matriz pré-condicionadora pode ser generalizada para N subdomínios, que podem ser resolvidos de forma independente e, portanto, gerando a expressão − M −1 = M 1−1 + ... + M N1 . Com isso, o método aditivo de Schwarz para N subdomínios pode ser escrito, para M i−1 = RiT Ai−1Ri , como em (7.2): ϕ (k +1) =ϕ (k ) +M −1 MAAS ≡ϕ (k ) + ∑ N i =1 M i−1 b − Aϕ ( ( k) ⎬ ) ⎫ (7.2) ⎭ Assim, os algoritmos seqüenciais do MDD multiplicativo de Schwarz (MMS) e do método aditivo de Schwarz (MAAS) resolvem o problema global (iterativamente), decompondo-o em subdomínios. O algoritmo para o MMS não é aqui apresentado, mas o algoritmo do MAAS é como apresentado na fig. 7.5. Inicialização: k ← 1 , ϕ Enquanto b − Aϕ 1. (k ) (1) ← 0, ε ≥ ε faça − ϕ (k +1) ← ϕ (k ) + ( M 1−1 + M 2 1 ) b − Aϕ (k ) ( ) k ← k +1 2. FIGURA 7.5 - Algoritmo do MDD aditivo de Schwarz Neste trabalho implementou-se o MAAS no qual todos os subdomínios usam a solução da última iteração como CC, de modo que cada um dos subdomínios pode ser resolvido independentemente, ficando as comunicações restritas às fronteiras ([CHA94], [SMI96] e [PAG97]). Outra solução paralela desenvolvida e implementada é aquela na qual o MAAS é visto como um pré-condicionador. 7.4.2 Método aditivo de Schwarz: solução paralela A primeira conseqüência da formulação do método aditivo de Schwarz (MAAS) é que a expressão (7.2) tem um paralelismo ótimo, no sentido de que a troca de dados e o sincronismo são restritos às fronteiras dos subdomínios adjacentes. Assim, o MAAS resolve o problema global em paralelo obtendo sua solução de modo iterativo e de modo independente nos k subdomínios. A troca de dados ocorre entre as fronteiras a 153 cada ciclo do método de solução entre esses subdomínios, até que se cumpra o critério de convergência global, de modo que a combinação das soluções locais gere a solução global, dentro de uma acurácia. Para o método aditivo de Schwarz com sobreposição pode-se mostrar, sob a hipótese de que Ωi ∩ Ω j ∩ Ωk ≠ ∅ , ∀ i ≠ j ≠ k , que o algoritmo converge. Além disso, e de suas a presença de regiões sobrepostas assegura a continuidade da solução ϕi derivadas entre os subdomínios [DEB98]. O algoritmo do MAAS aplicado à solução paralela é como mostrado na fig. 7.6, onde não se destaca os passos de comunicação, necessários em uma implementação paralela. (k +1) Inicialização: escolha uma solução inicial ϕ i Iteração: para k ≥ 1, com ϕ i 1. 2. 3. (k) (1) em cada subdomínio Ωi ; ( k +1) conhecido, calcular ϕ i tal que: Aϕ i( k +1) = b em Ωi ; ϕi(k +1) = gi em ∂Ωi \ Γi ; ϕi(k +1) = ϕ (jk ) em Γ j = ∂Ω ∩Ω j , para 1 ≤ j ≤ N , tal que Ωi ∩ Ω j ≠ ∅ Término: até que sup ϕ (j ( k +1) − ϕ (j k) 2 ϕ (jk ) 2 ) ≤ ε , onde ε é a acurácia desejada. FIGURA 7.6 - Algoritmo aditivo de Schwarz (em paralelo) Para exemplificar esses conceitos, notações e algoritmos, toma-se como exemplo um domínio discreto particionado em quatro subdomínios. Nesse caso, pode-se tomar uma sobreposição de uma ou de duas células adjacentes as fronteiras, dado o estêncil de 5-pontos utilizado na discretização, como em [CHF94] e [GOO96]. Esses subproblemas podem ser escritos, usando as notações anteriormente introduzidas, como: ( ( ⎧ Aϕ 2k +1) = f ; ϕ 2 ∈ Ω2 ⎧ Aϕ1k +1) = f ; ϕ1 ∈ Ω1 ⎪ (k +1) ⎪ (k +1) ⎪ ϕ1 = g1; ϕ1 ∈ ∂Ω1 \ Γ1 ⎪ ϕ 2 = g 2 ; ϕ 2 ∈ ∂Ω2 \ Γ2 ⎪ ⎪ , ⎨ (k +1) , ⎨ (k +1) (k ) ( ϕ1 = ϕ 2 Γ2 ;ϕ 2 ∈ Γ2 ϕ 2 = ϕ1k ) Γ1 ;ϕ1 ∈ Γ1 ⎪ ⎪ ⎪ (k +1) ⎪ (k +1) (k ) (k ) ⎪ ϕ1 = ϕ 4 Γ4 ;ϕ 4 ∈ Γ 4 ⎪ ϕ 2 = ϕ 3 Γ3 ; ϕ 3 ∈ Γ 3 ⎩ ⎩ ( ( ⎧ Aϕ 3k +1) = f ; ϕ 3 ∈ Ω3 ⎧ Aϕ 4k +1) = f ; ϕ 4 ∈ Ω4 ⎪ (k +1) ⎪ (k +1) ⎪ ϕ 4 = g 4 ; ϕ 4 ∈ ∂Ω 4 \ Γ 4 ⎪ ϕ 3 = g 3 ; ϕ 3 ∈ ∂Ω3 \ Γ3 ⎪ ⎪ e ⎨ (k +1) ⎨ (k +1) (k ) (k ) ⎪ ϕ 3 = ϕ 2 Γ2 ; ϕ 2 ∈ Γ 2 ⎪ ϕ 4 = ϕ1 Γ1 ;ϕ1 ∈ Γ1 ⎪ (k +1) ⎪ (k +1) (k ) (k ) ⎪ ϕ 3 = ϕ 4 Γ4 ; ϕ 4 ∈ Γ 4 ⎪ ϕ 4 = ϕ 3 Γ3 ; ϕ 3 ∈ Γ 3 ⎩ ⎩ onde cada submatriz Ai é a matriz da região Ω i , e é gerada quando se impõem CCs de Dirichlet homogêneas nas fronteiras artificiais (sobreposições) Γi , ou condições de contorno corretas quando a fronteira do subdomínio coincidir com uma fronteira do domínio (fronteira real) ([SLV97] e [PAG97]). Assim, os sub-problemas são problemas de valor de contorno bem postos, no sentido matemático, pois as CCs assim estabelecidas os definem como tal. A fig. 7.7 mostra uma representação para um domínio particionado em quatro subdomínios, com 8×8 pontos com ordenação natural, na qual se vêem as fronteiras artificiais geradas pelas sobreposições. 154 6 74 674 4 1 Γ28 42 Γ18 Ω1 ( ϕ1kΓ) ⎨ 4 ϕ (k ) ϕ (k ) 674 674 4 1 Γ28 42 Γ18 8,3 5,3 6,3 5,3 4,3 3,3 8,4 5,4 6,4 5,4 4,4 3,4 8,5 5,5 6,5 5,5 4,5 3,5 8,6 5,6 6,6 5,6 4,6 3,6 8,7 5,7 6.7 5,7 4,7 3,7 8,8 5,8 6.8 5,8 4,8 3,8 ϕ (k ) ϕ (k ) 8,1 7,1 6,1 5,1 4,1 3,1 8,2 5,2 6,2 5,2 4,2 3,2 8,3 5,3 6,3 5,3 4,3 3,3 8,4 5,4 6,4 5,4 4,4 3,4 8,5 5,5 6,5 5,5 4,5 3,5 8,6 5,6 6,6 5,6 4,6 3,6 Ω2 ⎧ ( ϕ4kΓ) 1 ⎩ ⎧ ⎨ ⎩ ⎧ ⎫ (k ) ⎬ ϕ2 Γ3 ⎭ ⎫ (k ) ⎬ ϕ 3 Γ2 ⎭ ⎫ (k ) ⎬ ϕ2 Γ3 ⎭ ⎫ (k ) ⎬ ϕ3 Γ2 ⎭ ( ϕ1kΓ) ⎨ 4 6,1 5,1 4,1 3,1 2,1 6,2 5,2 4,2 3,2 2,2 1,2 6,3 5,3 4,3 3,3 2,3 1,3 6,4 5,4 4,4 3,4 2,4 1,4 6,5 5,5 4,5 3,5 2,5 1,5 6,6 5,6 4,6 3,6 2,6 1,6 6,3 5,3 4,3 3,3 2,3 1,3 6,4 5,4 4,4 3,4 2,4 1,4 6,5 5,3 4,5 3,5 2,5 1,5 6,7 5,7 4,6 3,6 2,6 1,6 6,7 5,7 4,7 3,7 2,7 1,7 6,8 5,8 4,8 3,8 2,8 1,8 ( ϕ4k ) Γ 1 ⎩ ⎧ ⎨ ⎩ Ω4 1,1 1 24 1 24 4 3 4 3 (k ) ϕ4 Γ 3 (k ) ϕ3 Γ 1 24 1 24 4 3 4 3 (k ) ϕ4 Γ 3 Ω3 4 (k ) ϕ3 Γ 4 FIGURA 7.7 - Domínio particionado em quatro subdomínios, com CC tipo Dirichlet homogêneas. A quantidades de células na sobreposição depende do estêncil computacional utilizado na construção do esquema numérico As fig. 7.8 e 7.9 mostram, respectivamente, o speedup e a eficiência para o domínio computacional particionado em 23 processos usando a biblioteca METIS, e resolvido empregando o algoritmo do método aditivo de Schwarz mostrado na fig. 7.6. Os resultados indicam que a solução paralela implementada é escalável, pelo menos até 23 nodos, sendo que as anomalias registradas nos processadores 11 e 13 referemse a má convergência do método aditivo de Schwarz especificamente para esses processos, e/ou ao particionamento não apropriadamente efetivo oferecido pela biblioteca METIS. Esses resultados foram obtidos usando o arquivo Guaiba_100, que é aquele arquivo onde se toma os espaçamentos horizontais como Δx=Δy=100m, e com apenas uma camada. MAAS (Guaiba_100 e acurácia=0,1) 20 18 16 14 12 10 8 6 4 2 0 18.2 16.0 17.117.4 15.1 13.7 14.4 13.8 12.8 11.5 9.1 6.9 speedup 10.8 5.7 6.2 7.3 8.28.4 3.9 4.9 2.0 2.9 1.0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 número de processos FIGURA 7.8 - Speedup × número de processos empregando o algoritmo do MAAS 155 1.00 0.99 0.91 1.05 1.00 0.96 0.99 0.96 0.91 0.90 0.88 0.90 0.84 MAAS (Guaiba_100 e acurácia=0,1) 0.86 0.84 0.81 0.79 0.85 0.81 0.82 0.80 0.75 0.79 0.70 eficiência 0.75 0.60 0.45 0.30 0.15 0.00 0.62 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 número de processos FIGURA 7.9 - Eficiência × número de processos empregando o algoritmo do MAAS Note-se, finalmente, que no subdomínio ilustrado na fig. 3.12, destacaram-se as enumerações e identificações das células internas; das células que são adjacentes internas às fronteiras do subdomínio (e que formam o chamado “estêncil interno”); e das células que são adjacentes internas às fronteiras dos outros subdomínios (e que formam o chamado “estêncil externo”). Essa identificação e caracterização das células é indispensável para o emprego do método aditivo de Schwarz sob duas abordagens. Na primeira abordagem emprega-se o algoritmo mostrado na fig. 7.6 para obter a solução paralela via decomposição de domínio. Nesse caso as células que fazem o papel dos estênceis interno e externo compõem as sobreposições que, por sua vez, necessitam de estênceis para que valores válidos estejam definidos. A fig. 7.7 ilustra essa primeira abordagem, resultado da aplicação do algoritmo detalhado na fig. 7.6. Na segunda abordagem, usa-se o método de decomposição de domínio como précondicionador, que já é gerado de modo distribuído. Essa segunda opção gera o método Krylov-Schwarz de solução, que é um método de Schwarz acelerado por um método de Krylov, como discutido nas seções 7.6.2 e 7.8. 7.5 Métodos de solução para sistemas de equações lineares Os sistemas de equações são resolvidos empregando-se métodos diretos ou métodos iterativos. Os métodos diretos resolvem-nos em um número finito e conhecido de passos, e os erros que ocorrem devem-se à aritmética de ponto flutuante. Os métodos iterativos resolvem os sistemas de equações através de aproximações sucessivas da solução, e os erros são devidos às iterações e aos arredondamentos da aritmética de ponto flutuante. Ao contrário dos métodos diretos, que resolvem o sistema de equações com um número pré-definido de passos, os métodos iterativos calculam a solução até que um critério de parada seja alcançado. Esse critério pode ser o número máximo de iterações ou a tolerância máxima de erro. A escolha por esse ou aquele tipo de método é induzida pelo porte do problema a ser resolvido. Muitos dos sistemas de equações resolvidos atualmente são da ordem de milhares ou milhões de incógnitas nodais e a solução via métodos diretos eqüivale a calcular a inversa das matrizes dos coeficientes, em forma exata, tornando essa abordagem impraticável, por problemas de armazenamento e pela dependência de operações e/ou de dados que dificulta a sua paralelização. A eliminação Gaussiana, exemplo canônico dos métodos diretos, resolve os sistemas matriciais através de seqüências de operações elementares entre linhas e/ou colunas. Esse procedimento leva ao processo de fill-in, que é o surgimento de elementos 156 não nulos em posições onde não existiam originalmente, destruindo a esparsidade da matriz, o que dificulta o desenvolvimento e implementação dos algoritmos de armazenamento e de solução. Note-se que muitas aplicações realísticas, particularmente aquelas pertencentes ao escopo da CFD, resultam, quando discretizadas, em sistemas de equações altamente esparsos. A densidade dos elementos não nulos das matrizes decrescente com o porte do problema. Por exemplo, matrizes de problemas 2D de ordem 40×40 têm 256×104 elementos na matriz, mas apenas 8×103 (0,312%) são não nulos. Essa esparsidade deve ser aproveitada na otimização do armazenamento [STR94]. A abordagem mais apropriada é, portanto, aquela que emprega métodos iterativos que sejam robustos e computacionalmente eficientes. E a classe mais efetiva é a dos subespaços de Krylov, sendo que a eficiência decorre do fato de que os métodos pertencentes a essa classe têm boas propriedades de convergência, sobreturdo quando as matrizes são bem condicionadas [ARA97a]. Além disso, são construídos sobre operações básicas em álgebra linear e, portanto, são altamente paralelizáveis. Dois dos métodos mais populares dessa classe são o gradiente conjugado (GC) e o resíduo mínimo generalizado (GMRES). 7.5.1 Métodos iterativos do subespaço de Krylov Dada a potencialidade dos métodos iterativos quanto a otimização, armazenamento, eficiência computacional e grau de paralelismo, eles são os mais populares para a solução de sistemas de equações esparsos e de grande porte. A classe dos métodos do subespaço de Krylov é também chamada de métodos não estacionários, devido ao fato de que passos da iteração atual dependem da iteração anterior. Van der Vorst [VOR94a] traça um panorama do desenvolvimento, sob uma perspectiva histórica, dessa classe, e referências são [BAR94], [KEL95], [GOL96], [AXE96], [SAA96] e [VAR99], entre outras. Porém, a despeito de muitos nomes e acrônimos que proliferam em subespaços de Krylov, os algoritmos dessa classe são formulados sobre poucas idéias fundamentais [ARA97]. Na solução de Aϕ = b , tais métodos encontram uma solução aproximada ϕ m para um subespaço m − dimensional, tal que: ϕ0 + K m em que ϕ 0 é a aproximação inicial, impondo a condição Petrov-Galerkin: b − Aϕ m ⊥ Lm em que Lm é um subespaço de dimensão m , e K = K A, r 0 definido, para r 0 ( ) é o subespaço de Krylov = b − Aϕ , por: 0 K m ( A,r 0 ) = span (r 0 , Ar 0 , A 2r 0 ,..., A m −1r 0 ) Os métodos que decorrem dessas idéias podem ser agrupados em três classes, dependendo de como o subespaço Lm é escolhido ([SAA96] e [CHO97]): 1. Lm = K m : é a classe do método de projeção ortogonal ou de Galerkin. Quando A é SDP, essa escolha de Lm minimiza a A − norma do erro. Exemplos são o GC, no caso simétrico e o FOM (e equivalentes como o ORTHORES e o método de Projeção de Axelsson) no caso não simétrico; 2. Lm = AK m : é a classe do método dos resíduos mínimos. Essa escolha de Lm minimiza a norma residual b − Aϕ m . Exemplos são o GMRES e seus 2 equivalentes (por exemplo, o GCR); 157 3. Lm = K m ( AT ,r0* ) onde r0* é um vetor não paralelo a r0 . Esta escolha de Lm é projetada para A não simétrica e fornece relações de recorrência para bases do subespaço de Krylov. Métodos dessa classe podem necessitar de menos armazenagem que os algoritmos do GMRES ou do FOM, mas são mais propensos a parar (breakdown). Exemplos são o BCG, CGS. A escolha por este ou aquele método iterativo é decorrente da natureza das matrizes. Neste trabalho, as matrizes dos sistemas de equações lineares para as ESW são simétricas definidas e positivas (SDP). As matrizes dos sistemas de equações para a ETM são não simétricas. A escolha recaiu no emprego dos algoritmos do gradiente conjugado e do resíduo mínimo generalizado, uma vez que a literatura técnica, e nossas próprias experiências numéricas, mostram que esses algoritmos são eficiêntes, robustos e possuem alto grau de paralelismo. Outra classe que está se popularizando é aquela dos métodos Newton-KrylovSchwarz (NKS), que decorrem da combinação de métodos não-lineares tipo NewtonKrylov e de métodos lineares tipo Krylov-Schwarz. O primeiro faz uma aproximação, via método iterativo do subespaço de Krylov, para uma das etapas do algoritmo de Newton. O segundo fornece um pré-condicionador tipo Schwarz para acelerar o método iterativo ([KEY95], [KEY97], [CRU97], [GRP98] e [DUF99]). Essa classe não foi empregada dado que os sistemas de equações são lineares. 7.6 Pré-condicionamento Para acelerar a convergência de um método iterativo, pode-se pré-condicionar a matriz, já que a taxa de convergência de um método iterativo depende da distribuição dos autovalores da matriz dos coeficientes do sistema de equações lineares. A taxa pode ser melhorada, transformando o sistema original Aϕ = b em um outro na forma MAϕ = Mb , onde M é a matriz pré-condicionadora. O sistema de equações resultante é equivalente ao original, no sentido de que tem mesma solução, com melhor taxa de convergência por controlar os autovalores pequenos ou grandes [CHO97], resultando em melhor número de condição. Para matrizes SDP, isso significa que os seus autovalores devem estar agrupados próximos à unidade. O caso de matrizes não simétricas é mais complicado, e não há resultados gerais sobre a convergência a partir da análise dos autovalores. O método de pré-condicionamento que explora somente as informações da matriz dos coeficientes para acelerar a convergência da solução do sistema de equações é dito pré-condicionador algébrico. Aquele método que considera as características físicas ou geométricas é dito pré-condicionador físico ou geométrico. Neste trabalho, utilizou-se somente a primeira categoria, visto que são de propósito geral e podem ser aplicados a uma grande classe de problemas. São robustos, mas não ótimos como os obtidos por técnicas específicas, os quais, porém, só podem ser aplicados aos problemas que os originaram [BEN99]. Uma classificação para os pré-condicionadores é aquela que considera o lado do pré-condicionamento, de modo que se tem os tipos: à esquerda M −1Aϕ = M −1b ; à direita AMM −1ϕ = b ; e à esquerda e à direita M −1AN −1N ϕ = M −1b , onde M e N representam transformações simples ou complexas da matriz original A . O tipo do pré-condicionador a ser usado depende da escolha do método iterativo. Em métodos de minimização dos resíduos, como o GMRES, o pré-condicionamento à direita pode ser mais efetivo pois, em aritmética exata, os resíduos para sistemas de equações précondicionados à direita são idênticos aos resíduos verdadeiros. Mendelsohn mostrou que o lado do pré-condicionamento é importante para problemas não simétricos mal condicionados [BEN99]. 158 O pré-condicionamento pode, também, ser considerado ser implícito ou explícito. No implícito obtém-se uma matriz M de modo a aproximar a matriz A sem a necessidade de calcular M −1 diretamente. Na abordagem explícita calcula-se a matriz M −1 de modo que se possa aproximar A −1 diretamente. Em qualquer caso o pré-condicionador deve ser obtido rapidamente e de modo que M −1A ≈ I , com mínimo de custo computacional. Ou seja, deve ser uma boa aproximação de A , ser fácil de construir e de aplicar. A primeira propriedade assegura boa taxa de convergência, enquanto a segunda assegura que cada iteração não seja custosa. Essas duas exigências são mutuamente contrastantes, sendo necessário um equilíbrio entre elas. Como a eficiência do pré-condicionador é, geralmente, inversamente proporcional ao tempo se sua construção [CAT98], deve-se conciliar o ganho da convergência com o tempo de pré-condicionamento, já que o objetivo é diminuir o tempo total de execução do algoritmo. A seguir, são apresentadas algumas classes de pré-condicionadores. Outras importantes, como as geradas por soluções iterativas e o reordenamento dos sistemas, podem ser vistas em [BEN97] e [BEN99]. particionamento da matriz A = M − N : pertencem a essa classe, onde M é não 1. singular, os pré-condicionadores Jacobi, Gauss-Seidel, SOR, entre outros, e as suas versões blocos; fatorações incompletas de A : essa classe é a mais importante classe de pré2. condicionadores algébricos, dada sua flexibilidade e importância. Exemplos são o ILU para matrizes não simétricas e o IC para matrizes simétricas. Uma discussão das várias versões, considerando os diferentes níveis de preenchimento e redução de tolerância, pode ser vista em [BEN99]. Os pré-condicionadores dessa classe são explícitos; aproximações para a inversa: nessa classe, os pré-condicionamentos são 3. construídos explicitamente através da definição de matrizes M −1 que aproximam diretamente A −1 . Essa abordagem difere da obtida pelo pré-condicionamento polinomial, pois a matriz pré-condicionadora não é implicitamente expressa como um polinômio em A , porém é construída e armazenada explicitamente [BEN99]. Os pré-condicionadores dessa classe são implícitos; aproximações polinomiais: é um pré-condicionador que aproxima diretamente a 4. inversa de uma matriz. É particularmente importante em matrizes SDP, pois não altera sua estrutura definida-positiva [CUN92]. Os pré-condicionadores dessa classe são implícitos; Os pré-condicionadores utilizados neste trabalho para acelerar as soluções dos sistemas de equações lineares são o polinomial e o de Schwarz, pois os MDD de Schwarz podem ser vistos, também, como pré-condicionadores, pois a composição das soluções (aproximadas) locais gera um pré-condicionador global e distribuído. Nesse caso, utilizaram-se as fatorações incompletas de Cholesky (IC) e a diagonal Cholesky (DIC) para obter a aproximação para as inversas locais. As discussões a respeito dessas abordagens é como segue. 7.6.1 Pré-condicionador polinomial Um modo de obter uma aproximação para a inversa A −1 no algoritmo do GC é empregar um polinômio que não destrua a simetria e a positividade da matriz dos coeficientes quando a ela aplicado. Um modo de se obter esse tipo de précondicionador é baseado na série truncada de Neumann, que é como segue. 159 Sejam I a matriz identidade e ρ ( J ) = max λ ; λ ∈ Γ uma matriz J n ×n , onde Γ ou seja, ( I − J ) −1 { ( J )} raio espectral de ρ ( J ) < 1 , a inversa de I − J pode ser expressa como uma série de potências em J , = é o conjunto dos autovalores reais de J n ×n . Então, se e a matriz de iteração J = −D −1 ( L + U ) , pode-se mostrar que ρ ( J ) < 1 [VAR99]. Portanto, se A é escrita como A = D ( I − J ) , onde ∑ m k =0 J k . Reciprocamente, para a decomposição A = L + D + U (I − J ) −1 = ∑ m k =0 J k , a inversa A −1 é obtida através da expressão: A −1 = ( D ( I − J ) ) = −1 {∑ m k =0 J k D −1 = } = ( I − J ) D −1 −1 ∑ ( −1) ( D ( L + U ) ) D m k −1 k k =0 −1 Assim, a estratégia do pré-condicionamento polinomial consiste em truncar a − série depois de k termos e obter uma aproximação M k 1 para A −1 . Por exemplo, para k = 0 e k = 1 tem-se, respectivamente: − M 0 1 = D −1 e M 1−1 = D −1 − D −1 ( L + U ) D −1 onde essas expressões geram matrizes de pré-condicionamento cujo número máximo de elementos por linha é ou um ou cinco, respectivamente. Neste trabalho empregouse o pré-condicionador para k = 0 (pré-condicionador diagonal ou de Jacobi) e k = 1 , pois nesses casos não ocorrem preenchimento de A . Uma desvantagem desse pré-condicionador, como percebido nas experiências numéricas, e como apontado por Benzi [BEN99], é que ele não reduz o número de iterações no mesmo nível daqueles métodos de fatoração incompleta. Mesmo quando há a redução do número de iterações, não existe redução no tempo total do ciclo, pois o número adicional de operações no pré-condicionamento tem um tempo igual ou maior. As experiências numéricas realizadas para este trabalho mostram que o tempo total de execução permanece aproximadamente igual. A solução do GC não précondicionado convergiu com 11 ou 8 iterações, dependendo do erro tomado, enquanto a do GC com pré-condicionador polinomial convergiu, nesses casos, com 6 ou 4 iterações. Essa redução não melhorou o desempenho, pois o tempo gasto com o précondicionamento foi semelhante ao tempo ganho com a aceleração da convergência. Na tab. 7.1 e nas fig. 7.13 a 7.18, estão sintetizados alguns desses resultados. 7.6.2 Pré-condicionador MDD aditivo de Schwarz O MDD aditivo de Schwarz decompõe a solução do domínio em soluções de N subproblemas sobrepostos. Nessa abordagem os subdomínios usam a solução da última iteração como condição de contorno, de modo que cada um deles é resolvido independentemente, e as comunicações ficam restritas às fronteiras. Assim, pode-se usar essa abordagem gerando um pré-condicionador já distribuído, onde o grau de paralelismo só depende do número de processadores disponíveis. Nesse caso, os passos d := M −1r e s := M −1r do algoritmo do GC da fig. 7.12 pode ser obtido de modo distribuído para os N processos gerados pelo algoritmo de particionamento de malha. Esse pré-condicionador é obtido através das soluções dos subproblemas di := M i−1ri , com 0 ≤ i ≤ N .Especificamente, empregando as notações da seção 7.4.1, se Ri denota a matriz, que aplicada ao vetor solução, retorna os valores associados com determinados nodos, e RiT mapeia os valores à matriz global A , então os valores de 160 uma submatriz Ai , associada com uma sub-região Ωi , são obtidos pela operação Ai =Ri ARiT . Usando essas notações, a matriz pré-condicionadora, gerada via MAAS de Schwarz, é como a dada em (7.2), ou seja, M -1= uma solução chamada de Krylov-Schwarz (KS), que é um método de Krylov acelerado por um método de Schwarz. Veja a seção 7.8. Para aproximar o problema localmente de modo computacionalmente eficiente, ou seja obter M i−1 tal que M i−1Ai ≈ I i , foram empregadas duas fatorações incompletas, a Cholesky incompleta IC(0), e a fatoração de Cholesky diagonal incompleta DIC(0). A notação “(0)” nessas fatorações incompletas indica que o nível de preenchimento da matriz é nulo, mantendo a esparsidade da matriz original. Ver detalhes e discussões adicionais em [SAA99] ou em [BEN99]. Esses pré-condicionadores para matrizes SDP são construídos em dois passos. No primeiro passo determina-se um fator incompleto, e no segundo passo, resolvemse, a cada iteração do método do subespaço de Krylov, dois sistemas triangulares. No caso específico da fatoração IC, procura-se determinar uma decomposição aproximada à decomposição A = LDLT da matriz A SDP, de modo que em cada iteração k, apenas os elementos aij de A , que correspondem a um conjunto X sejam modificados. Esse conjunto satisfaz as seguintes condições [JÚD96]: (k ) ∑ i R iT Ai-1R i . Essa abordagem gera , X( k) ⊆ {k ,..., n } × {k ,...,n } e (i , j ) ∈ X ( k) (i , i ) ∈ X (k ) , ∀i ≥ k ⎫ ⎪ (k ) ⎬ ⇒ ( j ,i ) ∈ X ⎪ ⎭ −1 lembrando que o objetivo é determinar M IC (0) tal que seja uma boa aproximação para A −1 . Ou seja, deve-se determinar apenas o fator incompleto L IC (0) de M IC (0) = L IC (0)DLT (0) , pois a decomposição completa A = LDLT já resolve o problema, IC mas esse é um método direto de custo da O(N3). Um algoritmo é como ilustrado na fig. 7.10 ([JÚD96] e [PIC2002]). para k=1,2,...,n-1 para i=k+1,...,n se (i,k)∈X(k) faça aux =aik aik=aik/akk para j=k+1,...,i se (i,j)∈X(k) e (j,k)∈X(k) faça aij=aij-aux.ajk FIGURA 7.10 - Algoritmo para o cálculo do fator incompleto de Cholesky, IC(0) Se os elementos akk, com k=1,...,n, são todos positivos, o processo termina com os fatores aproximados L IC (0) e D da matriz SDP, no qual se tem: ⎧a , se i ∈ X ( ) ⎪ dkk = akk e lik = ⎨ ik (k ) ⎪0, se i ∉ X ⎩ k 161 e, assim, se L IC (0) é uma aproximação incompleta para L , o pré-condicionador para o sistema SDP resolvido pelo algoritmo do gradiente conjugado, que é montado nos −1 −1 passos d := M IC (0)r e s := M IC (0)r , é tal como: − p = M IC1(0)r ⇔ p = ( L IC (0)DLT (0) ) r ⇔ ( L IC (0)DLT (0) ) p = r IC IC −1 ⇔ ( L IC (0)D ) LT (0) p = r ⇔ L IC (0) Dz = r ⇔ L IC (0)y = r IC { 123 y z Resolvendo o sistema triangular de equações L IC (0)y = r , obtém-se y. Sendo Dz = y tem-se z = D −1y e, resolvendo-se, o sistema triangular de equações (L IC (0) ) T p = z , tem-se a solução p, onde p ou é d ou é s. Sendo o sistema SDP vale que L IC (0) = LT (0) e os dois sistemas triangulares são resolvidos, respectivamente, com IC varreduras, backward e forward. O segundo caso, o DIC(0), é uma versão simplificada do ILC(0), onde se toma -1 A = L + D + LT e o pré-condicionador como M= ( DDIC(0) + L ) DDIC(0) ( DDIC(0) + LT ) , sendo DDIC ( 0 ) o fator diagonal incompleto que deve ser calculado. Um algoritmo é como apresentado na fig. 7.11 ([BAR94] e [PIC2002]): para i=1,2,... dii=aii para j=1,2,.... dii=1/dii para j=i+1,i+2,... se (i,j) ∈ X(k) e (j,i)∈ X(k) faça djj=djj-ajidiiaij FIGURA 7.11 - Algoritmo para o cálculo do fator incompleto diagonal, DIC(0) Dispondo da aproximação DDIC ( 0 ) , o pré-condicionador para o algoritmo do GC é −1 −1 montado nos passos d := M DIC (0)r e s := M DIC (0)r , como acima. E, nesse caso também −1 não há necessidade de calcular M DIC (0) diretamente, pois pode-se fazer: ⎡ ⎤ −1 −1 d = M DIC (0 )r ⇔ ⎢( D DIC (0 ) + L ) D DIC (0) ( D IC (0 ) + LT ) d ⎥ = r ⎢ 14 244 ⎥ 4 3 z ⎣ ⎦ ⎡ ⎤ −1 ⇔ ⎢( D DIC (0 ) + L ) D DIC (0 )z ⎥ = r ⇔ ( D DIC (0 ) + L ) y = r 1 24 ⎥ 4 3 ⎢ y ⎣ ⎦ Resolvendo o sistema triangular −1 DDIC (0)z = y tem-se z , e resolvendo-o sistema triangular ( D IC (0) + LT ) d = z tem-se a (D DIC (0) + L )y = r obtém-se y . Sendo solução d . Sendo a matriz SDP vale que L = LT e os dois sistemas triangulares são resolvidos com varreduras, backward e forward. 162 7.7 Algoritmo do gradiente conjugado Para sistemas de equações cujas matrizes são SDP, o método do subespaço de Krylov mais eficiente é o gradiente conjugado (GC) [SHW94]. O algoritmo do GC é, por construção, altamente eficiente na obtenção da solução de sistemas de equações com matrizes esparsas e SDP. O princípio de obtenção da solução pelo GC é o da minimização do funcional f . O GC parte do fato de que o gradiente de f aponta na direção mais crescente da função (ou funcional) quadrática. A estratégia do método do GC constitui-se, em resumo, em dar passos em cada iteração, na direção oposta à do gradiente, exigindo-se que a direção já pesquisada não seja repetida, até encontrar o mínimo estrito e global. A função atinge seu mínimo quando ∇f (x ) = Aϕ − b = 0 , significando que ao encontrar a solução do GC, encontra-se a solução do sistema de equações lineares. A garantia de que esse mínimo é estrito e global e ocorre na solução ϕ = A −1b , decorre de A ser SDP em relação ao produto interno u ,v = u T Av em n [SLA97]. Em implementações do GC deve-se considerar a inicialização, os critérios de parada e as propriedades de convergência. Quando não se tem uma boa estimativa para ϕ 0 , toma-se ϕ 0 = 0 como valor inicial. Pode-se também utilizar o vetor ϕ calculado na iteração anterior como aproximação para a próxima iteração, sem reinicializar novamente o GC a partir da estimativa ϕ 0 . O critério de parada empregado neste trabalho utiliza a norma do resíduo r k , tal que r k ≤ ε r0 , onde 10−6 e r 0 é o resíduo inicial. Outro critério de parada é o número máximo de iterações k max . Mas neste trabalho ele não é usado, já que a acurácia desejada é obtida com poucas iterações, no máximo 11 iterações. No tocante à convergência do GC, ela pode ser definida pela norma da energia ε = e T Ae . A cota superior para os erros é obtida em termos da A − norma e é dada, para k iterações, como: e A x − xk A ≤ 2 x − xk A = ( Κ (A ) − 1 Κ (A ) + 1 ) k onde Κ ( A) = λmax λmin , com λmax e λmin sendo, respectivamente, o maior e o menor autovalor [GOL96]. Porém, esse limite é pessimista, e a acurácia de ϕ k { } m k=0 é melhor que a desigualdade acima, cuja conseqüência é que o GC converge rapidamente na A − norma se Κ ( A) 1 ([POL92] e [GOL96]). Se A tem autovalores agrupados, a convergência é mais rápida e nisso reside a importância de pré-condicionar o sistema de equações. Deve-se melhorar o número de condição de A para acelerar a convergência do método iterativo. 7.7.1 GC paralelo: particionamento de dados Decomposição de dados é a forma de distribuir os dados entre os processadores de uma arquitetura de memória distribuída de modo que possam ser resolvidos independentemente. Essa abordagem foi utilizada para paralelizar o algoritmo do GC descrito em [SHW94]. A paralelização do GC foi baseada na paralelização das operações vetoriais que compõem o algoritmo do GC. Para esse fim, algumas estruturas de dados devem ser distribuídas entre os processadores e são, algumas vezes, replicadas. 163 A estratégia de particionamento de dados é centrada na distribuição da matriz e dos vetores que compõem o sistema matricial Aϕ = b , onde ϕ é a solução do sistema de equações, entre os processadores do cluster. As comunicações coletivas empregadas na paralelização do algoritmo do GC são as operações broadcast, scatter, gather e reduce, que são disponíveis no MPI. O primeiro passo na paralelização de um algoritmo é definir quais estruturas devem ser distribuídas entre os processos. No caso da paralelização do GC mostrado na fig. 7.12, cada processador recebe uma parte do sistema Aϕ = b . O vetor das incógnitas x é inicializado com elementos nulos e, portanto, o vetor resíduo r é inicializado com o conteúdo do vetor b (passo 3), como também o vetor d (passo 4). Durante todo o tempo, cada processador armazena uma parte do vetor b. No passo 5, calcula-se δnovo através de produtos internos do vetor r . Observe-se que, no cálculo de produtos internos como r T r , cada processador gera sua porção de dados, e esses resultados parciais são somados e distribuídos aos processos. A primitiva MPI_Allreduce realiza as operações sobre os resultados parciais e distribui o resultado final entre os processos. A operação mais crítica é o produto matriz Ad. Como o vetor q é gerado e distribuído entre os processos, para executar a operação q←Ad, (passo 8) no caso de uma matriz densa, é necessário que cada processador tenha a sua parte do vetor d. Contudo, como a matriz é esparsa cada processador necessita somente de uma parte do vetor d, pois muitas entradas de A são nulas. No caso das matrizes tipo 5-diagonal, cada processador necessita de, no máximo 5 elementos do vetor d para calcular cada elemento em q, e isso reduz significativamente a quantidade de comunicação necessária para replicar o vetor d entre os processos, já que apenas uma parte do vetor é trocada. Esse procedimento também é feito no produto Aϕ (passo 12). Como a matriz dos coeficientes é, nesse caso, tipo 5-diagonal, a estrutura de armazenamento da matriz foi otimizada, e ela é armazenada no formato CSR, como discutida na seção 3.5.2. Depois do passo 8, cada processador executa o produto dTq e, na sua parte do vetor, é executada a redução de tal modo a permitir o cálculo da soma dos produtos parciais. O resultado é enviado a todos os processos. Da mesma forma, os passos 10 e 12 executam suas partes em cada processador. Existem cinco pontos de comunicação entre os processos: o primeiro distribui o resultado do produto Aϕ (passo 3); o segundo distribui os valores de rTr para os processos (passo 5); no terceiro, trocam-se partes do vetor d (passo 8); o quarto consiste na redução para distribuir o resultado do produto dTq (passo 9); e o quinto distribui os valores de rTr para cada processador (passo 15). N : dim.; p : nr. processadores; ϕ0=0, ε=10-6: tolerância.; kmax: nr. máx 1. para i = 1 até N/p faça envie N/p linhas de A e b para processo i 2. k ⇐ 1 3. r ⇐ b − Aϕ faça Aϕ em paralelo faça b − Aϕ em paralelo 4. d ⇐ M-1r faça M-1r em paralelo 5. δnovo ⇐ rTd faça rTd em paralelo faça AllReduce de δnovo 164 6. δ0 ⇐ δnovo 7. enquanto k< kmax e δnovo >ε2δ0 faça 8. q ⇐ Ad faça atualize d em paralelo faça Ad em paralelo 9. α ⇐ δnovo / dTq faça dTq em paralelo faça AllReduce de dTq faça δnovo / dTq em paralelo 10. ϕ ⇐ ϕ + αd faça αd em paralelo faça ϕ + αd em paralelo 11. r ⇐ r − αq faça αq em paralelo faça r − αq em paralelo 12. s ⇐ M-1r faça M-1r em paralelo 13. δvelho ⇐ δnovo 14. δnovo ⇐ rTs faça rTs em paralelo faça AllReduce de δnovo 15. β ⇐ δnovo / δvelho faça AllReduce em δnovo 16. d ⇐ s + βd faça βd em paralelo faça s + βd em paralelo 17. k ⇐ k + 1 18. fim enquanto 19. faça gather em ϕ FIGURA 7.12 - Algoritmo do gradiente conjugado pré-condicionado paralelizado 7.8 Método Krylov-Schwarz A primeira conseqüência da formulação do método aditivo de Schwarz (MAAS) é que a matriz de pré-condicionamento da expressão (7.2) pode ser empregada para obter o chamado método Krylov-Schwarz de solução para sistemas de equações lineares, que é um método de Schwarz, na versão aditiva, acelerado por um método iterativo do subespaço de Krylov. Essa abordagem decorre da necessidade de acelerar a solução iterativa. Especificamente, os MDD multiplicativo e aditivo são métodos iterativos e, enquanto métodos iterativos, eles convergem lentamente (linearmente), pois podem ser vistos como um caso particular da iteração de Richardson para o sistema de equações Aϕ = b , e cuja taxa de convergência é linear. Para mostrar esse fato, basta observar que: Aϕ = b ⇔ (ϕ − ϕ ) = − Aϕ + b ⇔ ϕ = ( I − A ) ϕ + b , e a iteração de Richardson é definida como: ϕ (k +1) = ( I − A ) ϕ (k ) + b 165 sendo a iteração de Richardson pré-condicionada escrita como [KEL95]: ϕ (k +1) = ( I − BA ) ϕ (k ) + Bb ⇔ ϕ (k +1) = ϕ (k ) − B Aϕ (k ) − b ( ) ou seja, para N subdomínios, tem-se, denotando B ≡ M −1 em (7.2), que a iteração de Richardson pode ser escrita como [TAL94]: ϕ (k +1) = ϕ (k ) − ⎜ ⎝ ⎛ ∑ ⎞ k RiT Ai−1Ri ⎟ b − Aϕ ( ) i =1 ⎠ N ( ) Apesar de o MMS (que é análogo ao método Gauss-Seidel em blocos) convergir aproximadamente duas vezes mais rápido que o MAAS (que é análogo ao método de Jacobi em blocos), ele não é particularmente atraente do ponto de vista do paralelismo. Mas como a matriz de iteração do MAAS é distribuída, por construção, ela pode ser usada para obter o passo de pré-condicionamento de um método iterativo de Krylov. Uma idéia é, portanto, empregar o método aditivo de Schwarz como um précondicionador de um método iterativo do subespaço de Krylov. Nessa abordagem a taxa de convergência do método de Krylov pode ser, então, significativamente melhorada, de modo que alcance resultados melhores daqueles obtidos pela convergência linear dos métodos de decomposição de domínio. Essa abordagem é empregada para resolver sistemas de equações lineares, e o método de solução assim gerado é chamado de método Krylov-Schwarz. Esse método é caracterizado pelo uso de um método iterativo de solução distribuído, no qual um único sistema de equações é formado e resolvido em paralelo (data parallel). Esse método iterativo é pré-condicionado usando o método aditivo de Schwarz, e o précondicionador global é formado através da combinação das soluções locais. Especificamente, o pré-condicionamento do algoritmo do GC requer a construção de duas etapas adicionais, os passos d := M −1r e s := M −1r . Nessa abordagem, deve-se obter a matriz M tal que M −1A I e, portanto, se M aprox = Laprox DLT aprox é uma aproximação para M , tem-se que o pré-condicionador distribuído e aproximado é escrito como: M onde M −1 i ,aprox −1 MAAS = ∑ b i =1 1 M i−aprox , =R A T i −1 i ,aprox Ri , sendo Ai ,aprox = Ri Aaprox RiT a aproximação local para Ai = Ri ARiT . Assim, o método de Krylov-Schwarz consiste em resolver as submatrizes (de modo aproximado) localmente; calcular o pré-condicionador global a partir dessas submatrizes; e resolver o algoritmo do gradiente conjugado global até que a convergência seja alcançada. Discussões adicionais podem ser vistas em [BJO95], [PAG97] e [SLV97]. Como foi usado o estêncil de 5-pontos nas construções dos algoritmos numéricos que usam o algoritmo do GC para a obtenção da solução paralela, é necessário um halo de pelo menos uma célula nas fronteiras dos sub-domínios. Assim, após a obtenção das soluções locais, ou seja, após o cálculo dos subproblemas di , si : = M i-1ri , deve-se corrigir os valores das células adjacentes as fronteiras artificiais para estabelecer condições de contorno do tipo Dirichlet homogêneas entre os subdomínios. Neste trabalho a opção foi trocar, a cada iteração do GC, os valores do estêncil entre as células adjacentes e pegar a média de seus valores de modo a estabelecer essas CC homogêneas de Dirichlet nos passos pré-condicionados do algoritmo do GC. Porém uma outra abordagem é como aquela implementada em [BJO95], que consiste em usar a mesma estrutura de dados da solução via decomposição de dados, como 166 discutida na seção 3.5.2, onde se separa as células internas e as células externas de modo a identificar os “estêncil ou sobreposição interna e externa” permitindo não só a especificação das CCs outflow para a decomposição de dados, mas também usar a mesma estrutura para a especificação das sobreposições (CCs homogêneas) para a decomposição de domínio (pré-condicionamento), sem a necessidade de tomar a média dos valores das células das fronteiras interna e externa. As fig. 7.13 a 7.18, e a tab. 7.1, mostram alguns dos resultados obtidos com o uso dos pré-condicionadores polinomial, e as fatorações incompletas de Cholesky e Cholesky diagonal, como apresentados nas fig. 7.10 e 7.11. A tab. 7.1 mostra o número de iterações necessárias para a convergência do algoritmo do gradiente conjugado, onde o erro utilizado como critério de convergência do GC foi 10-8. Nessa tabela GC, GC-Polinomial, GC-KS-DIC e GC-KS-IC significam, respectivamente, os algoritmos do GC sem pré-condicionamento, do GC pré-condicionado com a aproximação polinomial, com o DIC(0), e com o IC(0). Esses dois últimos algoritmos formam o método Krylov-Schwarz com soluções locais fornecidas pelos algoritmos DIC(0) e IC(0). Esses resultados foram obtidos usando o arquivo Guaiba_100, que é aquele arquivo onde se toma os espaçamentos horizontais como Δx=Δy=100m. Note-se que neste trabalho somente se analisou numericamente a convergência dos métodos iterativos do subespaço de Krylov e dos métodos de decomposição de domínio de Schwarz. Uma análise sistemática sobre a qualidade da convergência e estimativas de erros em métodos do subespaço de Krylov, teórica e numérica, pode ser vista na tese de Ézio Araújo [ARA97a]. TABELA 7.1 - Número de iterações do GC com e sem pré-condicionamento Versões do GC GCGCGCAlgoritmo Polinomial KS-DIC KS-IC Número de Iterações 8 4 3 3 Note-se que na tab. 7.1 mostra-se o número de iterações para formar um ciclo, que é definido como sendo o número total de iterações necessárias para obter a precisão desejada, ou cumprir um critério de parada, que no caso do algoritmo do GC, é a norma do resíduo r k ≤ ε r0 , onde ε = 10 −8 e r 0 é o resíduo inicial. GC 0.26 0.24 0.22 0.20 0.18 0.16 0.14 0.12 0.10 0.08 0.06 0.04 0.02 0.00 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 KS-DIC(0) KS-IC(0) GC-Pol Tempo de execução (s) Núm ero de Processos (Guaiba_200) FIGURA 7.13 - Tempos de execução, em segundos, para o GC com e sem précondicionamento (GC, GC-Polinomial, GC-KS-DIC e GC-KS-IC). Resultados para Guaiba_200 (Δx=Δy=200m) 167 GC 1.05 0.98 0.91 0.84 0.77 0.70 0.63 0.56 0.49 0.42 0.35 0.28 0.21 0.14 0.07 0.00 2 3 4 5 KS-DIC(0) KS-IC(0) GC-Pol Tempo de execução (s) 6 7 8 9 10 11 12 13 14 15 16 Núm ero de processos (Guaiba_100) FIGURA 7.14 - Tempos de execução, em segundos, para o GC com e sem précondicionamento (GC, GC-Polinomial, GC-KS-DIC e GC-KS-IC). Resultados para Guaiba_100 (Δx=Δy=100m) GC 8 7 6 KS-DIC(0) KS-IC(0) GC-Pol Speedup 5 4 3 2 1 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Núm ero de Processos (Guaiba_200) FIGURA 7.15 - Speedup × número de processos, comparando o desempenho dos algoritmos dos GC, GC-Polinomial, GC-KS-DIC e GC-KS-IC. Resultados para Guaiba_200 (Δx=Δy=200m) GC 12 11 10 9 8 7 6 5 4 3 2 1 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 KS-D IC (0) KS-IC(0) GC-Pol Speedup N úm ero de Processos (G uaiba_100) FIGURA 7.16 - Speedup × número de processos, comparando o desempenho dos algoritmos dos GC, GC-Polinomial, GC-KS-DIC e GC-KS-IC. Resultados para Guaiba_100 (Δx=Δy=100m) 168 GC 1.00 0.90 0.80 0.70 0.60 0.50 0.40 0.30 0.20 0.10 0.00 2 3 4 5 KS - D IC (0 ) KS - IC (0 ) G C -Pol Eficiência 0.34 0.41 0.39 0.33 6 7 8 9 10 11 12 13 14 15 16 Nú m e r o d e P r o c e s s o s (G u a ib a _2 0 0 ) FIGURA 7.17 - Eficiência × número de processos, comparando o desempenho dos algoritmos dos GC, GC-Polinomial, GC-KS-DIC e GC-KS-IC. Resultados para Guaiba_200 (Δx=Δy=200m) GC KS-DIC(0) KS-IC(0) GC-Pol 0.62 0.68 0.70 0.62 1.00 0.90 0.80 0.70 0.60 0.50 0.40 0.30 0.20 0.10 0.00 2 3 Eficiência 4 5 6 7 8 9 10 11 12 13 14 15 16 Núm ero de Processos (Guiba_100) FIGURA 7.18 - Eficiência × número de processos, comparando o desempenho dos algoritmos dos GC, GC-Polinomial, GC-KS-DIC e GC-KS-IC. Resultados para Guaiba_100 (Δx=Δy=100m) Note-se que o GC com pré-condicionador polinomial reduziu o número de iterações de 8 para 4, mas apresentou tempos de execução similares aos obtidos com o GC sem pré-condicionamento. Esse resultado deve-se ao fato de que a aceleração da convergência do GC com o uso do pré-condicionador polinomial não é suficiente para compensar o tempo gasto com a construção do pré-condicionador polinomial. Os précondicionadores tipo fatoração incompleta (do método Krylov-Schwarz) reduziram o número de iterações de 8 para 3 e apresentaram um menor tempo de execução em relação ao GC sem pré-condicionador, à medida que o número de subdomínios cresceu e conseqüentemente as matrizes de coeficientes dos mesmos ficaram menores. Os resultados foram obtidos com o arquivo de entrada da geometria Guaiba_100 e Guaiba 200, que são aqueles arquivos onde se toma Δx=Δy=100m e Δx=Δy=200m para representar a geometria discreta (componente horizontal). O modelo tem, nesses testes, apenas uma camada. As fig. 7.19 e 7.20 mostram alguns resultados referentes aos tempos de execução, comparando o desempenho do algoritmo MAAS, dado na fig. 7.6, com o método Krylov-Schwarz, aproximado localmente pelo algoritmo DIC(0), e com o algoritmo do gradiente conjugado, para a solução paralela do sistema (6.1). 169 GC 0.55 0.50 0.45 0.40 0.35 0.30 0.25 0.20 0.15 0.10 0.05 0.00 2 3 4 5 6 KS-DIC(0) M AAS Tempo de execução(s) 7 8 9 10 11 12 13 14 15 16 Núm ero de processos (Guaiba_200) FIGURA 7.19 - Tempos de execução, em segundos, comparando o desempenho do MAAS × método Krylov-Schwarz-DIC(0) e o algoritmo do GC. Resultados para Guaiba_200 (Δx=Δy=200m) GC 2.20 2.00 1.80 1.60 1.40 1.20 1.00 0.80 0.60 0.40 0.20 0.00 2 3 4 5 6 7 8 9 10 11 12 13 14 KS-DIC(0) MAAS Tempo de execução (s) 0.32 0.16 0.20 15 16 Número de processos (Guaiba_100) FIGURA 7.20 - Tempos de execução, em segundos, comparando o desempenho do MAAS × método Krylov-Schwarz-DIC(0) e o algoritmo do GC. Resultados para Guaiba_100 (Δx=Δy=100m) Os resultados mostrados nas fig. 7.19 e 7.20 indicam que o tempo de execução, em segundos, do método aditivo de Schwarz (MAAS) é, para esse teste e para nossa implementação, no mínimo duas vezes maior que aquele tempo obtido com o método Krylov-Schwarz, em que a aproximação local é obtida com o algoritmo do DIC (GC-KSDIC). O mesmo resultado ocorre com o algoritmo do GC. Esses resultados foram obtidos com o emprego de precisão dupla (double), e do uso da configuração geométrica dada pelo arquivo Guaiba_100 (Δx=Δy=100m). O erro utilizado como critério de convergência do GC e do Krylov-Schwarz-DIC(0) -6. Para a acurácia do MAAS em paralelo tomou-se como critério de convergência foi 10 que sup ϕi( ( k +1) − ϕi( k) 2 ϕi(k ) 2 ) ≤ ε = 0,1 . Nesse caso, o número de iterações do MAAS varia, dependendo se o problema é mais ou menos permanente (veja esse conceito na seção 2.1), de 2 a 3, até atingir esse critério de convergência. Resultados obtidos executando os algoritmos no cluster disponível no CPAD PUCRS/HP, que é composto por nodos Pentium III 550MHz duais conectados pela rede Fast Ethernet. 170 Outra questão indispensável na avaliação de soluções paralelas é verificar sua qualidade numérica, isto é sua acurácia, em relação a solução seqüencial, ou em relação àquela solução obtida com um só processo. Considerando-se que a solução numérica “monoprocessada” é, numericamente, a correta, um modo de avaliar a solução paralela é empregar a métrica do erro relativo. Nesse caso, se ϕim e ϕip são, respectivamente, as soluções monoprocessada e paralela, essa medida de qualidade é obtida pela expressão E R = ϕ ip − ϕ im ϕ im . As fig. 7.21 a 7.24 mostram, respectivamente, a acurácia numérica obtida comparando-se a solução com um só processador com aquela solução obtida com dois processadores (processos), executando-se o algoritmo de Krylov-Schwarz (gradiente conjugado + DIC local) para obter a solução dos sistemas de equações lineares e SDP tipo 5-diagonal (6.1), cujas incógnitas a serem calculadas são os níveis da água. Esses resultados foram obtidos executando-se 500 ciclos e um erro máximo da O(10-8) no algoritmo do GC. As fig. 7.21 e 7.22 referem-se aos resultados obtidos com precisão simples (float), enquanto as fig. 7.23 e 7.24 referem-se aos resultados obtidos com precisão dupla (double). Nesses experimentos numéricos considerou-se como domínio computacional uma malha de 30 × 30 pontos, que é particionada na direção Y em dois subdomínios, onde cada um deles possui 30 × 15 células efetivas de cálculo (30 “linhas” por 15 “colunas”). As indicações “lado esquerdo (LE) ” e “lado direito (LD)” referem-se, portanto, aos subdomínios “esquerdo” e “direito” gerados por esse particionamento, cuja sobreposição é de uma célula. Acurácia (qualidade numérica) em 500 ciclos: solução monoprocessada x solução paralela (float ) 4.00E-06 3.50E-06 3.00E-06 2.50E-06 2.00E-06 1.50E-06 1.00E-06 5.00E-07 0.00E+00 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 Erro relativo (%) Número de células (lado esquerdo) FIGURA 7.21 - Acurácia obtida comparando-se a solução em um só processo com a solução obtida com dois processos (LE e float) Acurácia (qualidade numérica) em 500 ciclos: solução monoprocessada x solução paralela (float ) 4.00E-06 3.50E-06 3.00E-06 2.50E-06 2.00E-06 1.50E-06 1.00E-06 5.00E-07 0.00E+00 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 Erro relativo (%) Número de células (lado direito) FIGURA 7.22 - Acurácia obtida comparando-se a solução em um só processo com a solução obtida com dois processos (LD e float) 171 Acurácia (qualidade numérica) em 500 ciclos: solução monoprocessada x solução paralela (double ) 5.00E-11 Erro relativo (%) 4.00E-11 3.00E-11 2.00E-11 1.00E-11 0.00E+00 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 Número de células (lado esquerdo) FIGURA 7.23 - Acurácia obtida comparando-se a solução em um só processo com a solução obtida com dois processos (LE e double) Acurácia (qualidade numérica) em 500 ciclos: solução monoprocessada x solução paralela (double ) 6.00E-11 5.50E-11 5.00E-11 4.50E-11 4.00E-11 3.50E-11 3.00E-11 2.50E-11 2.00E-11 1.50E-11 1.00E-11 5.00E-12 0.00E+00 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 Erro Relativo (%) Número de células (lado direito) FIGURA 7.24 - Acurácia obtida comparando-se a solução em um só processo com aquela solução obtida com dois processos (LD e double) Note-se que nas execuções paralelas o produto matriz por vetor não é executado na mesma ordem como aquela que é feita quando se executa em um só processador. Como destacado nas seções 3.5.1 e 3.5.2, as enumerações das células são feitas localmente e de modo que o produto matriz × vetor é feito em duas etapas. Na primeira etapa faz-se esse produto para as células internas, e na segunda etapa faz-se esse produto para as células dos estênceis. Desse modo, o arredondamento em ponto flutuante na solução paralela é diferente do arredondamento em ponto flutuante na solução monoprocessada. De qualquer modo, as fig. 7.21 a 7.24 mostram que a acurácia entre a solução monoprocessada e a solução paralela (caso de dois subdomínios, mas válida em geral) só depende da aritmética de ponto flutuante. 7.9 Algoritmo do resíduo mínimo generalizado O Generalized Minimal Residual Method (GMRES) é um método iterativo para a solução de matrizes não simétricas. Ele constrói a solução, gerando uma seqüência (base do subespaço) de vetores ortogonais, usando, por exemplo, o processo de Arnoldi. Mas esse processo, quando usa a ortogonalização de Gram-Schmidt, define vetores ortogonais somente em aritmética real. Na aritmética de ponto flutuante os vetores não são ortogonais [NOB86]. Para resolver esse problema substitui-se o algoritmo de GramSchmidt clássico por outros algoritmos que são matematicamente equivalentes, mas computacionalmente superiores, como o algoritmo de Gram-Schmidt modificado. Os vetores dessa base são armazenados na matriz de Hessenberg, que é resolvida por um procedimento de retro-substituição após a eliminação da diagonal principal 172 através de métodos como a rotação de Givens, e um novo resíduo é calculado com a aproximação encontrada. Se a convergência não for atingida dentro de um ciclo (formado pelo número de vetores na base de Krylov), a solução mais recente é usada para iniciar a próxima iteração. Esse algoritmo é mostrado na fig. 7.25. O GMRES é um método robusto e obtém a solução aproximada com norma residual mínima. Sua desvantagem é que os produtos matriz-vetor aumentam linearmente com as iterações, e todos os vetores da base do subespaço de Krylov têm que ser armazenados, o que é um problema quando a dimensão m do subespaço cresce. A solução mais empregada é reinicializar o algoritmo, fixando-se a dimensão m do subespaço. Essa estratégia gera o conhecido GMRES(m) que tem a desvantagem de não ter a robustez do GMRES, uma vez que a convergência não está mais garantida. Existem situações nas quais o algoritmo pode estagnar ou ter uma convergência muito lenta [VOR94]. Mas, se a matriz é real e positiva, o GMRES(m) converge [SAA96]. Como o algoritmo pode convergir mais ou menos rapidamente para um dado valor de m, a questão é saber como escolher esse valor adequadamente, porém esse é ainda um problema em aberto. Silva [SLV97] sugere 5 ≤ m ≤ 30 para problemas de CFD. Outra estratégia é corrigir o armazenamento e a computação excessiva truncando a ortogonalização. Essa abordagem, conhecida como ortogonalização incompleta (incomplete orthogonalization method), pode ser vista em [SAA99]. 1. εtol = tol. ; k = base de Κ ; pmax = max. iter. 2. ε ⇐εtol b ; ϕ=0 ciclo GMRES 3. Para p =1,..., pmax faça 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. r = h (î ) v1 = b − Aϕ ; e = v1 ; v1 =v1 v1 iterações do GMRES Para i =1,...,m faça /Arnoldi/ v i +1 = Av i para j =1,...,i faça βi + 1,j = vi + 1, v j e v i +1 ⇐v i +1 −βi +1, j v j fim do j = {βi +1,1 ,..., β p +1,1 , v i +1 } T ;vi +1 = vi +1 vi +1 (i) s j ⎤ ⎧h j ⎫ ⎪ ⎪ ⎨ ⎬ c j ⎥ ⎪h ( i ) ⎪ ⎦ ⎩ j +1 ⎭ para j =1,...,i −1 faça /Givens/ ⎧h (ji ) ⎫ ⎡ c j ⎪ ⎪ ⎨ (i) ⎬⇐ ⎢ ⎪h j +1 ⎪ ⎣ −s j ⎩ ⎭ fim do j ( ) ( ) hi (i ) 2 + h i +1 (i) (i ) 2 ; ci = h i (i) (i) (i) r si = h i +1 r h i ⇐r h i +1 ⇐0 e i +1 = − si e i ; e i = c i e i /fim Givens/ se e i +1 ≤ εtol /convergência 173 20 fim do i /fim Arnoldi fim das iterações do GMRES 21. resolver ⎡h 1 ⎢ ⎢ 0 ⎢ ⎢ M ⎢ ⎢ 0 ⎣ (1) L h1 O O h L ( i −1) M ( i −1) i −1 0 (i) h 1 ⎤ ⎧y1 ⎫ ⎥ ⎪ ⎪ M ⎥ ⎪M ⎪ ⎬= (i) ⎥ ⎨ h i −1 ⎥ ⎪yi −1 ⎪ ⎪ ( i ) ⎥ ⎪y hi ⎥ ⎩ i ⎭ ⎦ ⎧e1 ⎫ ⎪ ⎪ ⎪M ⎪ ⎨ ⎬ ⎪e i −1 ⎪ ⎪e ⎪ ⎩ i ⎭ 22. 23. cálculo da solução ϕ ⇐ ϕ + ∑ i y jv j j =1 /convergência/ se e i +1 ≤ ε fim do p fim do ciclo GMRES 24. x é a solução aproximada FIGURA 7.25 - Algoritmo GMRES(m) O algoritmo do GMRES(m) foi empregado neste trabalho para obter a solução do sistema de equações lineares (6.5) para a equação do transporte escalar 2D, cujas matrizes são não simétricas Nos nossos experimentos numéricos, o valor de m que melhor conciliou a exigência de memória e a rapidez de convergência foi m = 5 . O erro utilizado como critério de convergência do GMRES(m) foi de ε=10-7. Como as matrizes são bem condicionadas não foi necessário pré-condicionar o sistema, pois a convergência do GMRES(m) é obtida com apenas 3 iterações. A versão apresentada na fig 7.25 é a seqüencial. Neste trabalho o GMRES(m) não foi paralelizado, sendo que a solução paralela para a ETM 2D-IV (veja o esquema numérico e o sitema de equações resultante na seção 6.2) foi obtida somente com o uso do algoritmo de decomposição de domínio aditiva de Schwarz, como mostrado na fig 7.7, com um erro relativo de ε=10-3. Um estudo comparativo do desempenho do algoritmo do GMRES paralelo, do método Krylov-Schwarz e do método aditivo de Schwarz, com e sem o uso de threads, na solução paralela de sistemas não simétricos, é aquele que está sendo conduzido por Delcino Picinin Jr. e André Luis Martinotto. 7.10 Método Direto: solução local e pipeline Quando as matrizes são 3-diagonal, pode-se resolvê-las empregando o algoritmo de Thomas. O método de Thomas transforma a matriz, eliminando a diagonal inferior e normalizando a diagonal principal. Na segunda varredura (backward), obtém a solução do sistema de equações através de retro-substituição. Devido às essas características o algoritmo não preenche a matriz, e é de O(N)). O algoritmo é como na fig. 7.26. 1. 2. 3. 4. 5. 6. d ('1, j ) = d(1, j ) c (1, j ) ; i = 1 d '( i , j ) = d ( i , j ) (c ( i, j ) − e (i , j )d '(i −1, j ) ) ; i = 2,..., n b('1, j ) = b(1, j ) c (1, j ) ; i = 1 b '(i , j ) = b(i , j ) − e (i , j )b '(i −1, j ) (c ( i, j ) − e (i , j )d '(i −1, j ) ; i = 2,...,n ) ϕ (n . j ) = b '(n , j ) ; i = n ϕ (i , j ) = b '(i , j ) − d '(i , j )ϕ (i +1, j ) ; i = n − 1,...,1 FIGURA 7.26 - Passos forward (1 a 4) e backward do algoritmo de Thomas (5 a 6) 174 O algoritmo de Thomas é empregado neste trabalho para resolver sistemas de equações lineares resultantes das discretizações dos problemas 2D e para os sistemas de equações 3-diagonal da ETM 3D. Para as ESW 3D, devido à formulação algorítmica (inversão de matrizes 3diagonal) das componentes das velocidades horizontal, as expressões (4.5) e (4.6), o algoritmo utilizado é o de Cholesky. O método de Cholesky é eficiente e acumula menos erros de arredondamento que outros métodos de inversão de matrizes, devido à menor influência das operações de divisão [SZE99]. Se A é SDP, então A = LDLT , em que L é a matriz triangular inferior, tal que l j , j = 1 e D é a diagonal. Os elementos d j = 1 e l j são calculados como na fig. 7.27. Se ( A ) = ( LT ) −1 −1 (D ) ( L ) −1 −1 , basta obter os elementos l j de ( L ) −1 e calcular LT ( ) (D ) (L ) −1 −1 −1 . O algoritmo para a inversão de matrizes 3-diagonal SDP é mostrado na fig. 7.28. 1. 2. 3. 4. d1 := a1,1 para j = 2,..., n l j −1 := a j , j −1 (d j −1 ) −1 d j := a j , j − l j-1.a j , j −1 FIGURA 7.27 - Algoritmo para inversão da matriz triangular inferior 1. 2. 3. 4. para j = 2,..., n l j , j := 1 para i = j ,..., n − 1 l i +1, j := ∏ i −1 j ( −l ) j FIGURA 7.28 - Algoritmo para inversão da matriz 3-diagonal SDP Assim, o algoritmo de Cholesky é usado na obtenção da solução paralela da ESW 3D, pois a dependência implícita de dados é, nesse caso, apenas na coluna de água e, portanto, o uso de um particionamento 2D elimina quaisquer obstáculos na solução paralela do transporte escalar de substâncias 3D. Mas no caso do uso do algoritmo de Thomas na solução das ESW 2D, existe dependência implícita e global de dados, o que acarreta uma ociosidade quando implementado em arquiteturas de memória distribuída. Um modo para melhorar a eficiência do algoritmo de Thomas é usar a versão pipeline de Povitsky ([POV98] e [POV98a]). 7.10.1 Algoritmo de Thomas Pipeline Note-se que a solução de problemas 2D pode ser obtida, considerando-se, o primeiro meio passo de tempo e a porção de dados alocada a cada processador, com o algoritmo de Thomas original. Mas o segundo meio passo de tempo exige a versão pipeline, pois cada processador tem apenas uma parte das colunas. A aplicação direta do algoritmo de Thomas nesse passo causaria uma grande ociosidade nos processadores, pois cada um deles depende dos resultados de seus vizinhos. Assim, o primeiro meio passo de tempo tem alto grau de paralelismo, já que cada processador pode resolver sua parte independentemente dos outros processadores, 175 pois a dependência de dados é restrita às fronteiras artificialmente criadas. Nessas fronteiras, exige-se uma sobreposição de duas linhas na montagem e a solução dos sistemas de equações. Esse passo é ilustrado na fig. 7.29. P2 P1 P0 FIGURA 7.29 - Passo X: decomposição de domínio formando um sistema de equações lineares para cada linha Note-se que a fig. 7.29 mostra uma aproximação grosseira para o Lago Guaíba, onde é ilustrado um particionamento em três faixas na direção Y . Além disso, pode-se notar, no destaque (“zoom”) das fronteiras entre os subdomínios P0 e P1, uma representação para os valores nodais nessas linhas adjacentes. Tais valores foram empregados para construir as sobreposições, que são de duas linhas (pois apresentou resultados melhores daqueles quando do uso de apenas uma linha de sobreposição), quando da utilização do estêncil de 5-pontos para aproximar as EDPs. A fig. 7.30 mostra subdomínios irregulares nos quais, para cada coluna, um sistema de equações Si deve ser resolvido. Porém, como cada sistema de equações é distribuído entre os três processadores (P0, P1 e P2), a aplicação direta do algoritmo de Thomas é ineficiente, como se pode ver no escalonamento para a execução do algoritmo de Thomas nesse passo, como mostrado na fig. 7.27. P2 P1 P2 P1 P0 P0 S0 S1 S2 S3 FIGURA 7.30 - Passo Y: Particionamento de dados para um subdomínio regular com 4 colunas; em cada coluna é resolvida sua porção de dados, onde Si representa um dos quatro sistemas de equações 176 Essa ineficiência decorre da intrínseca dependência de dados do algoritmo de Thomas, que resolve o problema através de operações elementares entre as linhas e colunas e necessita, para a próxima operação elementar, das anteriores, acarretando uma dependência global no algoritmo. Na fig. 7.31, Fi e Bi representam, respectivamente, a execução dos estágios forward e backward para um dado sistema de equações Si. Inicialmente, considerando apenas duas colunas, o sistema S1 é completamente resolvido e, somente depois dessa solução, inicia-se a solução do sistema S2. Como se pode observar na fig. 7.31, são necessários 12 períodos para que se resolva o primeiro dos dois sistemas, e cada processador fica 8 períodos em ociosidade. Assim, para todo o domínio, são necessários 24 períodos para que se resolvam os três sistemas durante o segundo meio passo de tempo. P2 P1 P0 F1 T1 T2 T3 T4 T5 F1 F1 B1 B1 B1 T6 F2 T7 T8 T9 F2 F2 B2 B2 B2 T10 T11 T12 FIGURA 7.31 - Escalonamento para o algoritmo de Thomas No segundo meio passo de tempo, a solução de uma matriz em um dado processador Pj dependerá do resultado do processador Pj-1, durante o estágio forward, e do processador Pj+1, durante o estágio backward. Essas dependências requerem mais comunicações que as do primeiro meio passo de tempo e causam mais ociosidade nos processadores. Para reduzir essa ociosidade, aplica-se a versão do Thomas pipeline. Quando um processador Pj acaba um estágio forward Fi para um sistema de equações Si, envia seus valores de fronteira para o próximo processador no pipeline (Pj+1) e começa a executar o estágio forward para o sistema de equações Si+1. Quando o último processador no pipeline acaba o estágio backward Bi para um sistema Si, ele envia seus valores na fronteira para os processadores anteriores no pipeline e inicia o estágio forward para o próximo sistema Si+1. O escalonamento desse algoritmo pode ser visto na fig. 7.32, na qual o domínio dado na fig. 7.30 é resolvido com somente 12 períodos. Essa estratégia permite reduzir a ociosidade dos processadores. P2 P1 P0 F1 T1 F1 F2 T2 F1 F2 F3 T3 F2 F3 F4 T4 T5 T6 T7 T8 F3 F4 F4 B1 B2 B1 B3 B2 B1 T9 B4 B3 B2 B4 B3 B4 T10 T11 T12 FIGURA 7.32 - Escalonamento para o algoritmo de Thomas pipeline Observe-se que as fig. 7.31 e 7.32 representam o escalonamento para regiões regulares. Em subdomínios irregulares, bolhas são introduzidas no pipeline, reduzindo a sua eficiência. Uma estratégia para melhorar o desempenho desse algoritmo é enviar dados de mais de uma coluna para cada mensagem, o que também reduz o efeito da latência da comunicação. Neste trabalho, o número de colunas foi obtido por inspeção. Povitsky [POV98] considera esse problema, fazendo referências a trabalhos 177 desenvolvidos que permitem o cálculo de um número ótimo, obtido como função da relação computação/comunicação. Dentre outras estratégias paralelas alternativas para a solução de sistemas tridiagonais obtidos com o método ADI (Alternating Direction Implicit) estão as empregadas por [LEC92], [VOL97] e [ZHU98], que utilizam MDD com sobreposição dos subdomínios, gerando sistemas tridiagonais que são distribuídos entre os processadores. O algoritmo de Thomas, ou o algoritmo da redução cíclica [LAK95], é aplicado a cada processador com um esquema de iterações tipo ciclos pares e ímpares. Outras abordagens podem ser vistas em [GUP95], e [KAP98]. Um particionamento que foi implementado para o modelo hidrodinâmico 2D, é aquele por divisão em faixas na direção Y , conforme mostrado na fig. 7.33. Esta heurística tem a vantagem da simplicidade de implementação do particionamento, e resulta em fronteiras retas, o que faz com que cada linha do domínio resida inteiramente em um processador, o que é vantajoso ao usar o método ADI. Além disso, o número reduzido de subdomínios vizinhos faz com que o número de mensagens trocadas seja pequeno, o que pode ser vantajoso no caso de mensagens pequenas, onde o tempo de latência é significativo em relação ao tempo total da mensagem. Esta heurística, entretanto, pode resultar em um particionamento bastante pobre, podendo haver uma diferença grande no número de células, de um subdomínio para o outro, além de gerar subdomínios vizinhos com uma fronteira larga, o que resulta em aumento na comunicação necessária. Outro problema da heurística descrita ocorre quando é utilizada uma discretização que resulta em um único sistema pentadiagonal para todo o subdomínio. Esta discretização exige que o subdomínio seja retangular, o que faz com que um grande número de quadrículas externas sejam incluídas no subdomínio para manter a geometria retangular, acarretando cálculos desnecessários. Para minimizar o problema pode-se implementar um particionamento que, dentro de cada subdomínio retangular, detecta regiões desconexas do mesmo, dividindo o mesmo em subdomínios menores. Ver essa abordagem em [DOR2001a]. p3 p2 p1 p0 Y X FIGURA 7.33 - Exemplo de particionamento em quatro faixas na direção Y para uma configuração aproximada do Lago Guaíba, como aquela mostrada na fig. 3.13 A fig. 7.34 mostra o campo de velocidades para o particionamento mostrado na fig. 7.33, onde se tem aproximadamente 300.000 células efetivas de cálculo. 178 outflow inflow FIGURA 7.34 - Campo de velocidades, onde |U|=0,3 m/s na fronteira outflow e |U|=0,9 m/s na fronteira inflow. Os parâmetros usados no modelo hidrodinâmico (ESW 2D-IV) foram η0 = 0, 20 m, Ω = 7, 27.10-5 m2/s, C D = 3, 0.10-6 , Wx ,y = 6, 0 m/s2, Cz = 65, 0 e ε h = 10, 0 m2/s Considerando a rede Fast-Ethernet, a fig. 7.35 ilustra que o aumento do speedup se dá com o aumento do refinamento global da malha. Especificamente, a fig. 7.35 mostra que o ganho de desempenho só é obtido a partir do refinamento de 2×2. Isso ocorre porque a sobrecarga de comunicação na execução em paralelo é maior que o tempo ganho com a distribuição da carga de trabalho entre os processadores quando não há refinamento. Para malhas mais refinadas, obtêm-se speedups próximos ou superiores a dois. Speedup x Refinamento (Rede Fast Ethernet - 2, 3 e 4 processos) 2.40 2.10 1.80 Speedup 1.50 1.20 0.90 0.60 0.30 0.00 1x 1 2x 2 3x 3 8x 8 4x 4 16 x1 6 Refinamento global FIGURA 7.35 - Speedup obtido empregando 2, 3 e 4 processadores para um dado refinamento global A fig. 7.36 ilustra a relação da eficiência de processamento com o número de processadores e o refinamento. Essa figura mostra que a eficiência é incrementada com o aumento do refinamento, pois a carga de trabalho cresce quadraticamente, enquanto a comunicação tem um aumento linear. Além disso, para cada refinamento, a eficiência diminui com mais processadores como conseqüência da relação comunicação/computação. Isto é, a carga de comunicação por processador mantém-se a mesma, mas a computação é distribuída entre os processadores. 20 x2 0 . 179 Eficiência x Refinamento (Rede Fast Ethernet - 2, 3 e 4 processos) 0.80 0.70 Eficiência 0.60 0.50 0.40 0.30 0.20 0.10 0.00 . 1x 1 3x 3 2x 2 4x 4 8x 8 16 x1 6 Refinamento global FIGURA 7.36 - Eficiência obtida com 2, 3 e 4 processadores para um dado refinamento. Uma análise comparativa dos valores do campo das velocidades e dos níveis de água, obtidos com a solução das ESW 2D-IV e da ETM 2D-IV mostrou que os resultados produzidos com o emprego de apenas um processador, comparados com os gerados por quatro processadores, são tais que, quando do emprego da decomposição híbrida e dos algoritmos Thomas e Thomas pipeline, as soluções são completamente coincidentes. Isto é, o resultado obtido com um processador é igual ao resultado obtido com dois ou mais processadores. Note-se que os modelos hidrodinâmicos 2D-IV resolvidos com o método ADI apenas foram implementados usando o particionamento em faixas, não podendo, portanto, seus resultados serem comparados com aquelas soluções paralelas obtidas com outros algoritmos de particionamento (SRCB, RCB, etc.) que foram utilizados na solução paralela dos sistemas de equações tipo 5-diagonal. Uma comparação possível, em termos de speedup, eficiência e tempo de execução, é aquela entre o MDD de Schwarz (seção 7.4.2) e entre o método Krylov-Schwarz, como visto nas fig. 7.19 e 7.20. 20 x2 0 180 8 Conclusões, contribuições e trabalhos futuros Neste trabalho construiu-se um modelo computacional paralelo multifísica para simular a hidrodinâmica e o transporte escalar de substâncias em corpos de água bidimensionais e tridimensionais. E, sendo esse o capitulo das conclusões, contribuições e trabalhos futuros, assim ele foi organizado. A título de conclusões, nesta primeira parte do texto é feita uma síntese sobre os principais assuntos discutidos nos capítulos 2 a 7 e nos anexos de 1 a 4. 8.1 Conclusões No capítulo 2 foram apresentados os principais conceitos necessários para definir a terminologia que foi empregada ao longo de todo texto. As principais aproximações físicas usadas para obter, a partir das equações completas, os modelos matemáticos de escoamento de superfície livre foram, também, detalhadamente discutidas. Os modelos matemáticos analisados nesse capítulo foram: os de escoamento 3D e 2D integrado na vertical, e os modelos de transporte 3D e 2D integrado na vertical. Também apresentaram-se e discutiram-se aspectos qualitativos de modelos de parametrização de turbulência e, mais especificamente, um simples modelo de turbulência para calcular os coeficientes de viscosidade e de difusão dos modelos de escoamento e de transporte. As condições de contorno para todos esses modelos foram especificadas. O capítulo 3 contemplou as discussões relativas ao sistema de coordenadas, aos valores nodais, à malha numérica e definiram-se as variáveis dependentes na forma discreta. Nesse capítulo foram discutidas qualitativamente algumas das principais questões associadas à determinação da malha horizontal e vertical, necessárias em um modelo tridimensional, considerando-se a representação da topografia. As condições de contorno discretas foram apresentadas e discutidas considerando-se seus diferentes tipos. Também foram abordadas as representações para os domínios computacionais, de modo a obter a discretização do domínio, relacionando-a com o armazenamento dos diferentes tipos de células, internas e de fronteira, visando às distintas estratégias de solução paralela. Como os modelos 2D são resolvidos eficientemente, pelo menos de modo seqüêncial, usando a solução combinada “método ADI e algoritmo de Thomas”, caracterizou-se essa abordagem destacando-se suas “linhas e colunas de cálculo”. Além disso, nesse capítulo também apresentaram-se e discutiram-se métodos adaptativos para a malha, e mais especificamente aquele método onde se utiliza procedimentos de interpolação espaço-temporal para obter o refinamento local para a equação do transporte. No capítulo 4 discutiram-se os modelos, introduzidos no capítulo 2, na forma discreta. Empregando o método das diferenças finitas, são discretizados todas as equações diferenciais parciais que representam os modelos hidrodinâmico 2D e 3D, os modelos de transporte escalar de substâncias 2D e 3D, e o modelo de parametrização de turbulência. Suas condições de contorno são, também, discretizadas via diferenças finitas. Os algoritmos numéricos são, nesse capítulo, colocados sob a forma fluxo, como o caso dos modelos de transporte bi e tridimensional, ou apresentados na abordagem devida a Casulli, caso dos modelos de escoamento bi e tridimensional. Os parâmetros do modelo de parametrização são especificados a partir da literatura técnica. O capítulo 5 abordou os métodos e técnicas de aproximação para os fluxos numéricos, sobretudo aqueles da equação do transporte escalar. A partir de uma ampla revisão bibliográfica da literatura técnica, optou-se por construir funções aproximantes para os fluxos numéricos da advecção horizontal do transporte 3D, considerando-se o método de limitação de fluxo de Sweby. Para assegurar a limitação 181 desses fluxos analisou-se e implementou-se uma ampla coleção de funções limitadoras de fluxo. Os resultados mostram que funções de restrição de fluxo não lineares fornecem resultados de alta qualidade numérica. Alguns desses resultados são apresentados nesse capítulo, mas no anexo 4 discorre-se sobre os todos resultados, que estão tabelados e discutidos. Na solução da advecção vertical do modelo de transporte 3D foi empregado o método beta de Gross, sendo a difusão vertical aproximada via método CrankNicolson. Todos os algoritmos foram desenvolvidos para velocidades positivas ou negativas e considerando-se a sua dependência do número de Courant. No capítulo 6, abordou-se a aplicação dos métodos e técnicas de aproximação introduzidos no capítulo 5 para construir as aproximações para os modelos discretos apresentados e discutidos no capítulo 4. O resultado é a construção dos algoritmos numéricos de modo a obter as soluções das EDPs do escoamento nos casos 2D e 3D, e as soluções das EDPs do transporte escalar nos casos 2D e 3D. São apresentados e discutidos os resultados da aplicação de experimentos numéricos para verificação da qualidade numérica da solução dos modelos de escoamento 2D e 3D. Os resultados comparativos entre as soluções analíticas (caso 1D) e as soluções numéricas mostraram que o modelo oferece soluções positivas, acuradas e eficientes. As expressões discretas dos modelos de escoamento e de transporte são aproximadas nas fronteiras fechadas ou abertas usando, respectivamente, a técnica da supressão do termos e a técnica de extrapolação. Os resultados mostram que as condições de contorno discretas assim construídas fornecem soluções sem introdução de “ruídos” ou instabilidades ao domínio computacional. Os esquemas numéricos apresentados consideram soluções em “um só passo” e em dois “meios-passos”, onde nesta última apresentam-se os algoritmos numéricos com solução ADI para a hidrodinâmica. O capítulo 7 contemplou as questões relativas ao paralelismo – métodos e estratégias – e ao ambiente computacional. Nele foram discutidos os paradigmas de programação, a plataforma computacional e os ambientes de programação. Nesse capítulo desenvolveram-se e apresentaram-se as abordagens que foram utilizadas na obtenção da solução paralela. Os sistemas de equações tipo 5-diagonal foram resolvidos em paralelo empregando a decomposição de dados e a decomposição de domínio. A acurácia, o speedup e a eficiência dos resultados das soluções paralelas obtidas sob essas duas abordagens foram analisadas e discutidas. O resultado mostrou que a qualidade numérica do método de particionamento de dados, ou o método Krylov-Schwarz só depende da precisão usada para resolver as operações em aritmética de ponto flutuante. A acurácia da solução paralela obtida com o método de decomposição de domínio depende da acurácia desejada, que é estabelecida como critério de convergência global. Além disso, são caracterizados e discutidas algumas heurísticas de particionamento de malha, estratégias de mapeamento e métodos de balanceamento de carga. Fez-se a discussão e análise de desempenho e de qualidade dos resultados obtidos quando da aplicação do algoritmo Thomas pipeline na solução paralela de problemas 2D que são resolvidos com a aplicação do método ADI. Os resultados mostram que sua qualidade numérica é completamente coincidente (método direto). O desempenho computacional paralelo é, aparentemente, menor que aqueles desempenhos obtidos com o uso de “soluções em um só passo”, que são resolvidos por métodos iterativos do subespaço de Krylov, como nos sistemas tipo 5-diagonal. Nesse capítulo apresentaram-se, também, os métodos iterativos e diretos de solução, relacionando-os com as estratégias e abordagens para obter a solução paralela. Métodos iterativos necessitam, geralmente, de pré-condicionamento para acelerar a solução global ou local e, desse modo, foram também discutidos alguns tipos de pré-condicionadores. O resultados indicam que pré-condicionadores de Schwarz 182 aproximados localmente por fatorações incompletas oferecem ótimos resultados, no sentido que diminuem o número de iterações mas, no nosso caso em particular, isso não foi o suficiente para diminuir significativamente o tempo total de execução, dado que as matrizes originais já são bem condicionadas. O anexo 1 discorre sobre todas as propriedades e características numéricas e computacionais, visando as escolhas apropriadas das abordagens, métodos de discretização e de solução numérica dos modelos apresentados. Discutem-se em detalhes todos os atributos essenciais que o projetista dos algoritmos numéricos deve considerar quando da especificação e do projeto de modelos de escoamento de superfície livre e de transporte. Esses atributos são: a monotonicidade da solução numérica, a consistência e estabilidade do esquema de aproximação, a consistência entre a equação da continuidade e a equação do transporte, a construção de esquemas numéricos cuja difusão numérica seja menor que a difusão física, a positividade da solução numérica, a característica transportativa da solução, a conservação de massa na solução, a construção de esquemas numéricos semi-implícitos, e esquemas de integração espaço-temporal. Não existem esquemas de solução que contemplem todos esses atributos. Quando umas ou outras dessas características são privilegiadas no algoritmo de solução, perdem-se algumas das qualidades em outras características. Porém, um objetivo central é obter um bom compromisso entre a eficiência computacional e a qualidade numérica. Com essa visão é que se desenvolveu o modelo aqui apresentado. Nos anexos 2 e 3 são apresentadas, respectivamente, as principais métricas para a avaliação da qualidade numérica e do desempenho computacional desses tipos de modelos computacionais paralelos. 8.2 Contribuições A contribuição deste trabalho foi a construção de um modelo computacional paralelo para o problema multifísica, onde são resolvidos de modo combinado a hidrodinâmica e o transporte de substâncias, bidimensional e tridimensional, para corpos de água com complexa e intrincada configuração geométrica. Esse modelo foi especificamente projetado para ser resolvido em paralelo em arquiteturas tipo clusters de PCs, e independe da aplicação, apesar do estudo de caso apresentado ser especificamente o Lago Guaíba. O modelo apresentado decorreu das escolhas feita a partir de um abrangente levantamento bibliográfico realizado, que contemplou mais de 2.300 artigos e 220 outras referências entre livros, revistas e relatórios técnicos. Todas as referências, citadas ou não na bibliografia desta tese, estão disponíveis ou em material impresso ou gravadas em CDs. Alguns desses materiais foram coletados nas visitas feitas ao INPE de Cachoeira Paulista e de São José, à COPPE-UFRJ, ao IMPA, ao IAG-USP, ao LNCC, ao IPH-UFRGS, entre outros. Também foram feitos contatos com pesquisadores no Brasil, a exemplo dos professores Alejandro Cassalas (IPH-UFRGS), Dan Marchesin (IMPA), Alvaro bortoli e Rudnei Cunha (IM-UFRGS), Renato Simões Silva (LNCC), entre outros. No exterior, os contatos foram feitos com Leendertse, Casulli e Gross, não por acaso autores de algumas das principais referências usadas neste trabalho. Além disso, o Relatório de Pesquisa [RIZ2002a], não publicado, contém uma série de estudos que foram desenvolvidos a partir da revisão bibliográfica e que foram importantes para determinar as abordagens e temas apresentados nesta tese. Ele contém, por exemplo, discussões e alguns detalhes sobre o sistema de coordenadas curvilíneas, esquemas numéricos baseados no método de Leendertse, esquemas numéricos baseados no método Bott-Chlond, esquema numérico semi-Lagrangeano, trilinear, tricúbico e anti-oscilatório, baseado no trabalho da NCAR, Wang e, Harten e 183 Zwas, métodos de integração Euler e Runge-Kutta, e um modelo de turbulência MellorYamada com funções de estabilidade de Galperin, entre outros. Este RP contém também uma tabela com as principais características técnicas de 36 modelos já desenvolvidos. Uma análise mostrou que nenhum deles reúne as características do modelo apresentado nesta tese. A grande parte desses modelos é discretizado em diferenças finitas, usa o método ADI e o algoritmo de Thomas para a solução dos sistemas de equações, seqüencial ou emprega decomposição de dados para obter o paralelismo, usa coordenadas cartesianas ou curvilíneas, e muitos são modelos específicos para o escoamento, exceto nos modelos de Sheng [SHE93], Gomes e Blumberg [GOM95], Vollebregt [VOL97] e Vilar [VLA99]. Especificamente, a contribuição individual mais importante é o esquema numérico para a solução de alta qualidade numérica para a equação do transporte escalar de substâncias tridimensional, no qual a dependência implícita é restrita à coluna de água. Outras contribuições para a área de modelagem computacional paralela foram: 1. A sistematização, a partir de ampla revisão bibliográfica, das principais propriedades numéricas e computacionais que modelos de escoamento de superfície livre e de transporte escalar devem contemplar quando da sua especificação. Não há, na literatura técnica disponível, algo do gênero, o que dificulta a construção efetiva desses modelos pelos não especialistas; 2. O estudo e análise numérico-computacional de um amplo conjunto de funções limitadoras de fluxo, de modo a estabelecer quais funções são mais apropriadas para a solução numérica da advecção horizontal da equação do transporte escalar, quando do emprego o método de Sweby. 3. O desenvolvimento e implementação de esquemas numéricos semi-implícitos estáveis e computacionalmente eficientes. São seis os esquemas numéricos desenvolvidos: 3.1 Um esquema numérico para a hidrodinâmica 2D empregando o método ADI, de modo que o algoritmo resultante é semi-implícito, estável e computacionalmente eficiente. Os sistemas de equações lineares são lineares, 3-diagonal e simétricos definidos-positivos; 3.2 Um esquema numérico para a hidrodinâmica 2D e 3D empregando o método desenvolvido por Casulli, de modo que o algoritmo resultante é semi-implícito, estável e computacionalmente eficiente. Os sistemas de equações são lineares, tipo 5-diagonal e simétricos definidos-positivos; 3.3 Um esquema numérico para o transporte de substâncias 2D, de modo que o algoritmo resultante é computacionalmente eficiente, estável e semiimplícito Os sistemas de equações são lineares, tipo 5-diagonal e não simétricos; 3.4. Um esquema numérico para o transporte de substâncias 3D, de modo que o algoritmo resultante é computacionalmente eficiente, estável e semiimplícito. Os sistemas de equações são lineares, 3-diagonal e simétricos definidos-positivos. Esses quatro esquemas numéricos foram apresentados e discutidos neste trabalho, porém outros dois mais foram desenvolvidos e implementados e não foram aqui apresentados e encontram-se descritos no RP [RIZ2002a], e são: 3.5 Esquema numérico para a hidrodinâmica 2D empregando o método de Leendertse, de modo que o algoritmo resultante é semi-implícito, estável e computacionalmente eficiente. Os sistemas de equações lineares são lineares, 3-diagonal e não simétricos; 3.6 Esquema numérico para o transporte de substâncias 2D empregando o método de Leendertse, de modo que o algoritmo resultante é semi-implícito, 184 estável e computacionalmente eficiente. Os sistemas de equações lineares são lineares, 3-diagonal e não simétricos. 4. O desenvolvimento e implementação, em conjunto com Ricardo Vargas Dorneles, de algoritmos de interpolação espaço-temporal para obtenção de uma malha refinada localmente, de modo a melhorar a eficiência computacional do modelo; 5. O desenvolvimento e implementação, em conjunto com Ricardo Vargas Dorneles, de estratégias de paralelização. Produziram-se duas abordagens para a solução paralela. Na primeira, a decomposição ou particionamento de dados, as operações e os dados foram distribuídos entre os processos e são resolvidos em paralelo. Na segunda, a decomposição de domínio, é aquela estratégia onde a solução do problema global foi obtida combinando as soluções de subproblemas locais. Neste trabalho empregou-se o método de decomposição de domínio aditivo de Schwarz, como método de solução, e como pré-condicionador. Sob essa última abordagem obteve-se o método Krylov-Schwarz de solução. Essas opções de solução paralela oferecem uma flexibilidade adicional ao modelo. 6. O desenvolvimento e implementação, em conjunto com Ricardo Vargas Dorneles, de um algoritmo de solução paralela híbrida, onde se empregam as decomposição de domínio e de dados para resolver sistemas de equações gerados pelo método ADI (modelos 2D). O algoritmo baseia-se na versão pipeline do algoritmo de Thomas e foi desenvolvido por Povitsky. Não há na literatura disponível qualquer implementação paralela dessa abordagem; Desses estudos resultaram 20 trabalhos, em autoria ou co-autoria, os quais foram publicados (3 estão em processo de submissão) em eventos internacionais, nacionais, regionais e, dentre esses trabalhos estão artigos, trabalhos individuais, o exame de qualificação e o relatório de pesquisa. As referências dos trabalhos são apresentados na bibliografia e foram: [RIZ98], [RIZ99], [RIZ99a], [RIZ99b], [RIZ2000], [DOR2000], [DOR2000a], [ZEF2000], [DOR2001], [PIC2001], [RIZ2001], [RIZ2001a], [GLT2002], [PIC2002], [PIC2002a], [DOR2002], [PIC2002], [CAR2002], [RIZ2002] e [RIZ2002a]. Outros artigos estão sendo preparados para submissão no período 2002/2003 para: WSDP, CILAMCE, Parallel Computing (Elsevier Science), Applied Numerical Mathematics (Elsevier Science), e Computational and Applied Mathematics (Birkhäuser). Essas pesquisas que visam a obtenção de soluções paralelas para modelos multifísica desenvolveram-se no GMCPAD-UFRGS sob a coordenação e orientação do prof. Dr. Tiarajú Asmuz Diverio. O grupo de pesquisa, que contribuiu de modo importante para a realização desta tese, como pode ser visto nos artigos em co-autoria e autoria, é composto pelos seguintes acadêmicos: 1. Ricardo Vargas Dorneles, doutorando junto ao PPGC da UFRGS. Em sua tese desenvolve e implementa algoritmos de particionamento de domínio e de balanceamento dinâmico de carga em arquiteturas heterogêneas, com aplicação em modelos hidrodinâmicos e de transporte de substâncias; 2. Ana Paula Canal, mestre pelo PPGC da UFRGS ([CNL2000]). Seu trabalho visou a desenvolver e implementar alguns métodos de soluções diretos e iterativos (algoritmo de Thomas e gradiente conjugado) para a solução paralela de sistemas de equações lineares, empregando a decomposição de dados (troca de mensagens e threads) em um cluster de PCs multiprocessado e heterogêneo; 3. Elias César Araújo de Carvalho, recém-mestre pelo PPGC da UFRGS (julho/2002) - convênio FACCAR-UFRGS em Rolândia – PR -, que trabalhou na sua dissertação com algoritmos de mapeamento e de modelagem do cluster, objetivando considerar a plataforma computacional como um grafo para a aplicação de algoritmos de mapeamento; 185 4. Delcino Picinin Junior, mestrando junto ao PPGC da UFRGS, que está trabalhando na paralelização do algoritmo do gradiente conjugado, explorando o paralelismo na memória distribuída, empregando a biblioteca de troca de mensagens MPI e o paralelismo de memória compartilhada (nodos multiprocessados) através do uso de threads. 5. André Luis Martinotto, mestrando junto ao PPGC da UFRGS, que trabalha com pré-condicionamento e métodos de decomposição de domínio. Esse grupo fez contribuições ao presente trabalho. Porém, Ricardo Vargas Dorneles, colaborou continuamente e de modo mais importante na especificação e no desenvolvimento das estratégias de paralelismo, das estruturas de dados, e nas implementações pertinentes ao modelo. 8.3 Trabalhos futuros No decorrer deste trabalho foram desenvolvidas atividades que visaram a construção do modelo paralelo multifísica. Porém, alguns pontos importantes não puderam ser contemplados nesta tese, o que é inevitável quando se determina os objetivos a serem atingidos dentro de um determinado tempo, e se inicia uma linha de pesquisa. A realização dessas questões serão objetos de pesquisas, algumas já em andamento e outras sendo consideradas para serem realizadas em um futuro próximo, visando ao aprimoramento do modelo construído. Especificamente, as principais atividades a serem desenvolvidas podem ser pontuadas como: 1. O desenvolvimento e implementação de esquemas de simulação para áreas alagáveis ([FAL91], [CHE93] e [BAL98]); 2. O desenvolvimento e implementação de esquema de integração temporal em subciclos para a advecção horizontal da ETM ([GRO98] e [GRO99a]); 3. O desenvolvimento e a implementação de um esquema numérico semiLagrangeano trilinear e trícubico e anti-oscilatório de Wang para a solução da advecção horizontal das ESW ([WAN97] e [NAC2000]); 4. O desenvolvimento e implementação de algoritmos para malhas não estruturadas ([VLA99], [VAL2000] e [CAS2000]); 5. A discretização das EDPs empregando volumes finitos ([ADC95] e [VLA99]); 6. O desenvolvimento e implementação de esquemas de solução para a advecção da ETM 3D usando o método de Bott-Chlond ([HAR72], [BOT93] e [CHL94]); 7. O desenvolvimento e implementação de métodos de decomposição de domínio sem sobreposição ([SMI96] e [BOL98]); 8. O desenvolvimento e implementação de um modelo de parametrização de turbulência do tipo Mellor-Yamada-Canuto ([MEL82] e [CAN2000]); 9. A inclusão do modo baroclínico na EDPs das ESW e, conseqüentemente a alteração dos algoritmos numéricos ([KIM94] e [GRO99]); 10. A otimização no código computacional com sobreposição de computação e de comunicação com o uso de threads [VOR93]; 11. O desenvolvimento e implementação de sistemas de coordenadas horizontal e sigma ou isopycnal ou eta na vertical ([LIY96], [CAS97] e [BLA94]); 12. O desenvolvimento e a implementação de métodos de refinamento local, empregando-se os métodos-r ([LIS98] e [HUA99]); Note-se, porém, que a principal lacuna deste trabalho quanto ao desempenho computacional do modelo, é a falta de mecanismos de balanceamento dinâmico de carga para o problema multifísica. Mas essa importante questão foi objeto da tese de doutorado de Ricardo Vargas Dorneles “Particionamento de Domínio e Balanceamento Dinâmico de Carga”, onde estão propostas e implementadas várias estratégias e algoritmos para a solução do problema de balanceamento dinâmico de carga. 186 Anexo 1 Propriedades numéricas e computacionais Em modelos computacionais, tão importante quanto seu desempenho é a qualidade do resultado das suas soluções, que depende diretamente dos atributos numérico-computacionais que seus algoritmos têm de assegurar para que sejam efetivos na simulação de fenômenos reais. Alguns atributos são mais realizáveis que outros. Por exemplo, a consistência de um esquema numérico é mais fácil de se obter; a estabilidade é mais difícil de se alcançar (e de provar); a conservação da massa é um fator crítico em algoritmos de transporte; a dissipação e a dispersão numérica são questões associadas entre si. Nesse anexo se discutem as principais abordagens e atributos numéricos e computacionais que modelos de escoamento de superfície livre e de transporte escalar de substâncias devem considerar como suporte teórico para o desenvolvimento dos algoritmos numéricos que são efetivamente implementados. Todos os algoritmos numéricos desenvolvidos neste trabalho baseiam-se, implícita ou explicitamente nesses atributos. Note-se que esse anexo é abrangente e engloba abordagens que não foram efetivamente contempladas neste trabalho como, por exemplo, esquemas semiLagrangeanos, a integração temporal em subciclos, ou esquemas para simular regiões alagáveis, entre outros. Mas algumas dessas questões são objetivos de trabalhos que se seguirão à tese e, portanto, merecedoras de uma ampla discussão e análise. A discussão e análise desses atributos parte do fato de que o modelo computacional desenvolvido é baseado em EDPs, que exigem diferentes tipos de métodos numéricos para sua aproximação, ou seja, para a construção do esquema numérico. Essa necessidade decorre do fato que cada EDP tem características próprias e essas diferentes características físicas têm implicações fundamentais na escolha da abordagem quando da obtenção de suas soluções numéricas. Essas diferentes abordagens e métodos numéricos para os diferentes tipos de EDPs são discutidas em profundidade nos trabalhos de Colella e Puckett [COL98], Hemker [HEM99] e [HEM2000], e Gerritsma e Koren [GRT2000], entre outros. Para compreender o motivo das diferenças entre as propriedades e as características das equações diferenciais parciais note-se, inicialmente, sua classificação. Elas podem ser classificadas analisando o “discriminante” da parte principal da EDP linear de segunda ordem com duas variáveis independentes e coeficientes reais. Então, as EDPs são classificadas em elípticas, parabólicas e hiperbólicas [IOV89]. Porém, se os coeficientes variam o tipo pode variar e, além disso, podem ser de tipos diferentes ou, ainda, serem não linear, ou de alta ordem ou dimensão. Desse modo aquela classificação não se aplica, mas é um indicativo para a escolha dos métodos de aproximação e de solução. Considerando-se essa classificação, pode-se interpretá-la fisicamente a partir da natureza das curvas características das EDPs, que são as curvas nas quais a solução se propaga. Para o caso hiperbólico são duas as características, sendo reais e distintas, significando que há uma direção preferencial de propagação da informação. No caso parabólico as curvas características são reais e iguais, o que significa que há uma propagação na direção preferencial. No caso elíptico não existem curvas características em . As curvas características são complexas, de modo que não há direção especial na propagação da informação, que vai-se propagar igualmente bem em todas as direções. Detalhes em [AND95], [FER97], [RIZ99], [BRL2000] e [FRT2000] Assim, sob o ponto de vista numérico, as EDPs hiperbólicas são conservativas, e suas soluções se propagam em frontes ou choques sem dissipar. As EDPs parabólicas são dissipativas, e suas soluções tendem a tomar uma direção preferencial. Por se propagarem em todas as direções, as soluções de EDPs elípticas, não são 187 problemáticas. Esses resultados são fundamentais e devem ser levados em conta, sobretudo no desenvolvimento das soluções numéricas para a equação do transporte de substâncias, que é uma EDP hiperbólica não linear. Sua solução numérica deve ser acurada o suficiente para prevenir o surgimento de oscilações numéricas no entorno dos fortes gradientes de concentração, da O(108) ou mais, que são freqüentes na solução de simulações de despejos de dejetos humanos, como neste trabalho. Dada a natureza das equações, suas soluções numéricas requerem que sejam satisfeitas simultaneamente vários atributos visando a obtenção de soluções fisicamente corretas. Porém, devido às questões apontadas, na construção de soluções numérico-computacionais para problemas definidos no escopo da Dinâmica de Fluidos Computacional (CFD), surgem problemas como dissipação numérica, oscilação numérica e perda de positividade na solução. Soluções não físicas devem-se à dissipação numérica (viscosidade artificial) e à oscilação numérica (dispersão) que surgem da falta de estabilidade e de acurácia na solução. Esses fenômenos estão associados; quando um é minimizado, o outro torna-se mais pronunciado ([ROO87], [WAN97], [LOM2000] e [TRA2000]). A fig. A1.1 mostra uma representação desses fenômenos na solução da advecção 1D. a b FIGURA A1.1 - (a) Oscilações numéricas quando do emprego de diferenças centrais; (b) difusão numérica com o esquema upwind ([MAL95]) O surgimento dessas oscilações numéricas pode ser decorrente, também, da sub e/ou da sobre-especificação dos valores nodais pelas funções interpolantes e da perda de simetria dessas funções, podendo gerar soluções cujo perfil é deslocado em relação ao perfil verdadeiro das velocidades [WAN97]. Note-se que a difusão numérica (algumas vezes denominada de viscosidade artificial) nem sempre é indesejável, pois a adição explícita de viscosidade artificial é, algumas vezes, necessária para estabilizar a solução numérica de problemas hiperbólicos complexos ([FRT2000] e [HEM2000]). Essa estratégia é, a rigor, efetivada neste trabalho quando da especificação ad hoc dos coeficientes de viscosidade turbulenta no termo de difusão horizontal para as ESW 2D-IV. Nessa abordagem a viscosidade é numérica e age mais como papel de elemento estabilizador da solução numérica que o de fornecer a viscosidade física como a calculada pelo modelo de fechamento de turbulência. Isso mostra que os modelos computacionais 2D, aqui discutidos e implementados, devem ter uma atenção futura nesses aspectos. Assim, dada a importância dos atributos numéricos e computacionais visando o desenvolvimento de algoritmos, técnicas e estratégias de solução para modelos de escoamento de superfície livre e de transporte de substâncias, discute-se a seguir detalhadamente os principais atributos e/ou propriedades numéricas e computacionais visando modelos computacionais paralelos com alta eficiência computacional e alta qualidade numérica. As propriedades, que foram empregadas, explicita ou implicitamente na construção dos algoritmos numéricos, sobretudo naqueles dos modelos 188 tridimensionais (3D), são: monotonicidade; consistência e estabilidade; difusão numérica menor que a difusão física; acurácia espacial e temporal de alta ordem; limitação na variação da solução; consistência entre a continuidade e o transporte; positividade da solução; transporte da solução; conservação da massa e a eficiência computacional. Monotonicidade Um esquema Sin +1 = ϕ Sin−k ,Sin−k +1,...,Sin+k ( ) é dito monotônico se ϕ é uma função monotônica crescente de cada um dos seus argumentos, ou seja, ∂ϕ ∂S j ≥ 0 , ∀ i − k ≤ j ≤ k + i . Isso significa que um esquema é monotônico se, dado um estado inicial monotônico, a solução permanece monotônica ([TRA2000] e [LOM2000]). Assim, um esquema numérico explícito aplicado à solução da equação da lei de conservação escalar em (A1.5), pode ser escrito, tomando σ = S , como: σ in +1 = σ in − λ f (σ )i + − f (σ )i − 1 2 ( 1 2 ) not ≡ ϕ (σ in−k ,σ in−k +1,...,σ in+k ) que é dito monotônico se ϕ é uma função monotônica crescente de cada um dos seus argumentos. Esquemas numéricos usuais são aqueles lineares. O problema de esquemas lineares de primeira ordem é a falta de acurácia, sobretudo quando o escoamento tem altos números de Reynolds ([DEN99] e [BON2000]). Em contrapartida, esquemas lineares de alta ordem violam a condição de monotonicidade, gerando oscilações numéricas, e seu emprego requer que se previna a geração dessas oscilações, agindo diretamente no mecanismo gerador, ou na construção de um amortecimento (damping) através de dissipação numérica, como feito em algumas técnicas de solução para problemas definidos no escopo da aerodinâmica [RAN99]. Note-se, portanto, que a construção de um esquema monotônico não é uma questão trivial. Godunov mostrou que um esquema de solução que preserva a monotonicidade ou é de primeira ordem, ou é não-linear. Isto é, pelo teorema de Godunov, esquemas lineares que preservam a motonicidade são somente de primeira ordem de acurácia [TRA2000]. Portanto, em esquemas de alta ordem de acurácia devese abandonar a exigência de monotonicidade na solução satisfazendo a condição, menos restritiva, de o esquema ser TVD (Total Variation Diminishing). Essa questão é discutida em detalhes a seguir, quando do desenvolvimento de soluções para as leis de conservação escalar (scalar conservation law). Consistência e estabilidade A discretização tende a ser exata quando o espaçamento da malha tende a zero. A diferença entre as equações na forma discreta e na forma analítica (ou explícita) é chamada de erro de truncamento. No caso do emprego do método das diferenças finitas a estimativa dessa diferença pode ser feita usando a série de Taylor. Para um método de discretização ser consistente, esse erro de truncamento deve tender a zero quando o espaçamento da malha e o passo de tempo tender a zero. O erro é, geralmente, proporcional ao espaçamento da malha e ao passo de tempo. Se o termo mais significativo é proporcional a Δx i =1,2,3 ( ) n e/ou a ( Δt ) , o método de aproximação n é de n-ésima ordem. Uma solução numérica é dita estável se não aumentam os erros que aparecem durante a solução numérica. Alguns dos principais problemas associados à falta de 189 estabilidade são os erros de propagação em amplitude, os erros de propagação na fase, as instabilidades não lineares (nas quais há transferência de energia entre os modos), o aparecimento de choques e os erros de transporte [TRA2000]. As abordagens mais utilizadas para fazer a análise de estabilidade são aquelas que empregam os métodos de Von Neumann ou o matricial [HIR92]. Um método numérico é dito convergente se a solução do sistema de equações que foi discretizado tem solução exata quando o espaçamento da malha tende a zero. Esse resultado decorre do teorema de equivalência de Lax que afirma que “se um dado problema de valor inicial linear é corretamente posto e a aproximação via método de discretização satisfaz a condição de consistência, a estabilidade é condição necessária e suficiente para convergência” [FER97]. Um problema é bem posto, no sentido Hadamard, se é um problema em que as equações, as CI e as CC satisfazem às condições: existe a solução; a solução é única; e solução depende continuamente dos dados iniciais e de contorno. Porém, esse resultado (teorema de Lax) é válido somente para problemas lineares. Quando as equações são não lineares, não existem resultados gerais para o problema em questão. Nessa situação faz-se uma análise de estabilidade linear dos problemas, linearizando as EDPs através da fixação ou do desprezo dos termos não lineares ([FLE88] e [FER97]). Assim, para as EDPs não lineares, como neste trabalho, o teorema de Lax não pode ser aplicado rigorosamente. O teorema fornece condições necessárias, mas não suficientes, para que o esquema numérico seja convergente [VLA99]. Uma vez provada a consistência do esquema, deve-se assegurar sua estabilidade e, um modo de provar a estabilidade é mostrar diretamente que isso ocorre no esquema de aproximação espaço-temporal utilizado. Essa é uma das razões por que não existe um “esquema genérico de solução” e sim uma variedade de esquemas de aproximação. Note-se, porém, que existem importantes resultados associados às soluções de leis de conservação, e esses resultados são discutidos nesse anexo. No caso particular deste trabalho, na construção dos esquemas numéricos semiimplícitos para a hidrodinâmica, optou-se por seguir os trabalhos de Casulli [CAS90], [CAS92] e [CAS94] que, como em outros trabalhos [LEV92], [SON94] e [GRO98], desenvolveu critérios para a construção de soluções numéricas de modo matematicamente rigoroso. Em seus trabalhos, Casulli mostrou através da análise de estabilidade das equações características das ESW 2D integradas verticalmente (2D-IV) que a celeridade (a velocidade de propagação da onda) é c = gH . Isso significa que as ondas de gravidade propagam-se ao longo do eixos das coordenadas, em ambas as direções, e com velocidade de fase igual à celeridade [CAS90]. Considerando esse fato, e também que os termos g e H = h + η são, respectivamente, os coeficientes dos gradientes de elevação (níveis) das ECQMx e ECQMy e das derivadas das velocidades na equação da continuidade. Então, quando esses termos são discretizados de modo implícito, a estabilidade da solução numérica não depende da celeridade. Nesse caso e, desde que os termos explícitos sejam convenientemente aproximados, o algoritmo de solução para as ESW pode ser incondicionalmente estável. Desse modo a estabilidade dos modelos hidrodinâmicos é independente da velocidade de onda de superfície livre e assim, os esquemas semi-implícitos são estáveis, mesmo quando os termos não lineares são aproximados através da abordagem explícita. Casulli mostrou o seguinte resultado: “o esquema semi-implícito em diferenças finitas é estável, no sentido de von Neumann, se o passo de tempo Δt satisfaz: 190 ⎡u v w ⎛ 1 1 ⎞⎤ Δt ≤ ⎢ + + + 2v h ⎜ + ⎟⎥ 2 Δy 2 ⎠ ⎦ ⎝ Δx ⎣ Δx Δy Δ z −1 ( A1.1) onde v h é o coeficiente de viscosidade cinemática turbulenta horizontal” [CAS92]. A condição (A1.1) é válida se os termos não lineares das ECQM das ESW são aproximados via esquema upwind de primeira ordem, como no caso deste trabalho. Usando o método de von Neumann, um cálculo direto com os fatores de amplificação permite estabelecer outras condições de estabilidade. Por exemplo, as condições para um esquema em diferenças centrais e um esquema semi-Lagrangeano são, respectivamente, dadas por [CAS90] e [ASE90]: −1 ⎡ ⎡ ⎛ 1 vh ⎤ 1 ⎞⎤ Δx 2 Δy 2 ⎥ e Δt ≤ ⎢ 2 v h ⎜ + Δt ≤ min ⎢ , 2 ⎟⎥ 2 2 2 2 Δy 2 ⎠ ⎦ ⎢ 2 v h ⎡ Δx + Δ y ⎤ u + v ⎥ ⎝ Δx ⎣ ⎣ ⎦ ⎣ ⎦ Dadas suas características e aplicações, que são discutidas a seguir, no caso específico da equação de transporte escalar de substância (ETM 3D), estuda-se a sua estabilidade separando-se os termos horizontais e os termos verticais. Consideram-se inicialmente as componentes verticais da EDP e, em particular, a advecção vertical. A advecção vertical é resolvida empregando o esquema − β desenvolvido por Gross [GRO98]. Uma análise de estabilidade de von Neumann mostra que as condições β = 0,0 , θ = 0,5 e C z ≤ 1 em (A1.2) são suficientes para a estabilidade do esquema numérico para a advecção vertical. Porém, é possível determinar β de modo que se garanta a estabilidade numérica, também, quando C z ≥ 1 , obtendo estabilidade incondicional, ∀C z . Especificamente pode-se mostrar o seguinte resultado: “uma condição necessária e suficiente para a estabilidade no sentido de von Neumann é que se cumpra a condição: ⎧ ⎪0 , se C z ≤1 ⎪ ⎪ ( C − 1)2 ⎪ z , se 1 ≤ C z ≤ 3 β (C z ) ≡ ⎨ 4 Cz ⎪ ⎪C −2 ⎪ z , se C z ≥ 3 ⎪ Cz ⎩ n Courant C z = w Δt Δz k ” [GRO98]. ( A1.2) onde β (C z ) varia no tempo e no espaço, e o método − β depende do número de Esse resultado é válido quando o transporte escalar não causa variação na densidade da água. Se não for esse o caso é necessário impor condições adicionais de estabilidade, como discutido em [GRO98]. Porém, isso não ocorre neste trabalho dado que a simulação computacional é somente para dejetos humanos que não modificam a densidade da água. Para a solução da difusão vertical empregou-se o método Crank-Nicolson que é semi-implícito e incondicionalmente estável [FLE88a]. O resultado é a construção de um esquema numérico semi-implícito para o transporte vertical (advecção e difusão). Portanto, as condições de estabilidade para a ETM 3D fornecem, em princípio, estabilidade incondicional para os esquemas de solução. Mas essa estabilidade é apenas para o transporte vertical. 191 Assim, o uso combinado dos métodos beta e Crank-Nicolson gera um esquema numérico semi-implícito e estável para o transporte vertical. Portanto, uma solução explícita para o transporte horizontal pode fornecer um esquema numérico global que é implícito somente na coluna de água. Essa estratégia gera sistemas de equações que são 3-diagonal, ou seja, sistemas cujas matrizes são 3-diagonal de dimensão N z , onde N z é o número de camadas. Com essa abordagem as dependências de dados (implícitas) ficam restritas à coluna de água. As componentes horizontais são explicitamente calculadas e, portanto, estão disponíveis no atual passo de tempo. Essa é uma abordagem importante, sob o ponto de vista da solução paralela, pois pode-se empregar um particionamento 2D no plano XY, facilitando a obtenção da solução paralela. Outro elemento motivador para uma abordagem explícita para o transporte horizontal é que em escoamentos estratificados a condição de estabilidade imposta pelo acoplamento dos modelos hidrodinâmico e de transporte de substâncias restringe a estabilidade dos termos advectivos horizontais. Não existe, portanto, vantagem computacional, nesses casos, em tratar esses termos implicitamente. Por esses motivos, optou-se por tratar os termos horizontais de modo explícito. Uma desvantagem da abordagem é a restrição no passo de tempo. A alternativa para esse problema é empregar a técnica de divisão do tempo (time-sppliting) para o avanço temporal dos transportes vertical e horizontal. Através da definição de esquemas de subciclos. Esta abordagem é discutida posteriormente nesse anexo. Difusão numérica menor que a difusão física O objetivo básico de modelos de transporte é possibilitar o estudo da mistura vertical. Para isso, os modelos de turbulência calculam a difusão física do fenômeno. Portanto, a solução numérica da equação do transporte deve ser de tal qualidade que sua difusão numérica seja menor que a difusão física calculada pelo modelo de fechamento de turbulência. Então, um atributo importante (e difícil de se obter) em modelos de transporte é que a difusão numérica seja pelo menos uma ordem menor que a difusão física. A questão central é, então, construir um esquema de alta qualidade para a solução numérica do transporte vertical. Uma expressão para calcular o coeficiente de dispersão (difusão) numérica εn do esquema numérico é determinada pela soma dos erros de discretização espacial e temporal e é dada por [ZHE95]: εn = ν Δh ⎢⎜ − α ⎟ + Cr ⎜ ω − ⎟ ⎥ 2 ⎠⎦ ⎠ ⎝ ⎣⎝ 2 ⎡⎛ 1 ⎞ ⎛ 1 ⎞⎤ ( A1.3) onde α é um fator espacial para o erro da discretização do termo advectivo, ω é um fator para o erro da discretização temporal. Além disso, ν , Δh e Cr = ν Δt Δh são, respectivamente, o módulo da velocidade, o espaçamento e o módulo do número de Courant para cada uma das direções coordenadas. Com a expressão (A1.3), pode-se mostrar a relação entre o coeficiente de dispersão numérica εn e o coeficiente de dispersão física ε f . Essa relação é determinada como função dos números de Péclet e de Courant, e é dada como: ν Δh ⎡⎛ 1 1 ⎞⎤ εn ⎞ ⎛ = ⎢⎜ 2 − α ⎟ + Cr ⎜ ω − 2 ⎟ ⎥ εf ε h ,v ⎣⎝ ⎠ ⎝ ⎠⎦ 1 ⎞⎤ ⎡⎛ 1 ⎞ ⎛ = Pe ⎢⎜ − α ⎟ + Cr ⎜ ω − ⎟ ⎥ 2 ⎠⎦ ⎠ ⎝ ⎣⎝ 2 192 onde ε h ,v é o coeficiente de difusão horizontal εh ou o coeficiente de difusão vertical εv , e Pe = ν Δh ε h ,v é o número de Péclet para uma dada direção coordenada. Essa expressão mostra que a relação ε n ε f é determinada pelo número de Péclet que controla a dispersão (difusão), e pelo número de Courant que controla a estabilidade de um esquema explícito. Assim, deve-se ter um compromisso entre a acurácia temporal e a acurácia espacial, procurando manter a estabilidade e a minimizar a difusão de um dado esquema numérico. Essas questões estão intimamente relacionadas com os esquemas numéricos desenvolvidos. Especificamente no caso do transporte vertical, uma revisão detalhada na literatura técnica relacionada com o transporte vertical de modelos multidimensionais levou à construção e implementação, para este trabalho, de um modelo de transporte vertical baseado naquele desenvolvido por Gross [GRO98] para a advecção vertical, o esquema − β . Combinado com o método Crank-Nicolson para a difusão vertical, o esquema − β fornece acurácia e estabilidade suficientes para minimizar a criação de difusão numérica e o aparecimento de oscilações numéricas. O esquema − β combina o método trapezoidal com o esquema Quadratic Upstream Interpolation for Convective Kinematics (QUICK) de Leonard [LEO79], gerando um esquema com pesos que tem mínima difusão numérica ([GRO98] e [GRO99]). Gross mostrou que a expressão para o coeficiente de difusão numérica para o esquema − β é dada, considerando (A1.3), por: 1⎞ β⎤ ⎡⎛ C z ⎢⎜ θ − ⎟ C z + ⎥ ( A1.4 ) 2⎠ 2⎦ Δt ⎣⎝ onde se tomou em (A1.3) o fator espacial como α = 0 , e o fator temporal como ω = θ , considerando-se, ainda, β 2 na expressão da discretização temporal. Note-se, portanto, que a expressão (A1.4) é formada pela soma do erro de discretização temporal espacial ( Δz ) εn = 2 (( Δz ) 2 Δt C z 0,5 β . Quando β = 1,0 e θ = 1,0 tem-se os coeficientes ) (( Δz ) 2 Δt (C z ) (θ − 0,5 ) , mais o erro de discretização 2 ) máximos de difusão numérica para o erro espacial e temporal, respectivamente. Quando β = 0,0 e θ = 0, 5 tem-se que o coeficiente de fusão numérica do esquema β é nulo, isto é, ε n = 0,0 . Porém, um bom algoritmo de solução deve ser estável para todos os números de Courant. Objetivando essa característica observa-se que enquanto o erro temporal cresce com (C z ) 2 , o erro espacial cresce com C z , o algoritmo de solução deve sacrificar a acurácia espacial em vez da acurácia temporal para altos números de Courant. Portatnto, toma-se, no esquema- β , θ = 0, 5 e β variando de modo a oferecer uma solução estável, mesmo para altos números de Courant. Apesar da grande variedade de números de Courant, comuns em modelos de transporte empregados em estuários e lagos, grande parte do movimento vertical ocorre em baixas velocidades (menor que 0,2 a 0,5 cm s-1) ([GRO99] e [GRO99a]). Assim, o transporte vertical em modelos multidimensionais é, em grande parte, aquele em que se tem C z ≤ 1 . Portanto, da relação (A1.2), tem-se que o fator β é tal que β = 0,0 , que não introduz difusão numérica, justificando a escolha de que a acurácia espacial pode ser sacrificada para altos números de Courant. 193 Um objetivo é, então, avaliar a difusão numérica produzida pelo esquema- β , de modo a mostrar que a sua difusão tem pelo menos uma ordem de magnitude menos que a magnitude da difusão física calculada pelo modelo de parametrização de turbulência. Porém, o modelo de parametrização de turbulência desenvolvido e implementado neste trabalho (seção 2.7.2 e 4.7) é do tipo zero equações, que é aquele baseado em relações semi-empíricas e, por muitas vezes, aproximadas. Além disso, neste trabalho não se implementou o modo baroclínico nas ECQMs, que é relevante na análise dos resultados das difusões e viscosidade do modelo. Desse modo não se justifica fazer uma análise e discussão sistemática da difusão numérica produzida pelo esquema β (ou pelo esquema FLM) comparando-as com as viscosidades cinemáticas turbulentas e as difusões turbulentas, horizontal e vertical, produzidas por tal modelo de parametrização de turbulência. Por esse motivo não se fará neste trabalho este estudo, ficando este trabalho para quando do efetivo desenvolvimento de um modelo de parametrização tipo duas e meia equações, conforme discutido na seção 2.7.1. Mas para efeitos de análise e de verificação da difusão numérica, quando da aplicação do esquema β , pode-se empregar uma expressão analítica para o coeficiente de difusão física para corpos de água bem misturados. Esta estimativa é dada por ε f = 0,0025 h U , onde ε f = εv é o coeficiente de difusibilidade vertical, h é a profundidade local, e U é a velocidade média [GRO98]. Considerando os parâmetros h = 4,0m e U = 0,5m /s tem-se que ε f = 50cm 2 /s . Como parte significativa do movimento vertical é sob números de Courant menores que a unidade, aproximadamente 75%, um valor médio β é dado por β = 0,0095cm 2 /s . Esse exemplo, representativo da média do movimento vertical em modelos tridimensionais com as características discutidas, mostra que a difusão numérica do método β é menor que difusão física. E, portanto, o esquema numérico produzido sob tal abordagem é particularmente interessante no cálculo do transporte vertical, no tocante a minimização da difusão numérica. Outros dois aspectos fundamentais do método β devem ser considerados. O primeiro refere-se à análise das oscilações numéricas e o segundo refere-se à eficiência computacional sob a abordagem paralela. Esses casos são tratados, respectivamente, nesse anexo e no capítulo 7. Acurácia espacial e temporal de alta ordem No contexto do cálculo numérico e computacional, a precisão é definida como o número de dígitos da mantissa e a exatidão como a qualidade desses dígitos [CLA94]. Sob o ponto de vista da modelagem computacional, a precisão (ou acurácia) é a qualidade da aproximação que um dado esquema de discretização tem em relação à solução exata [FLE88]. Assim, a acurácia é uma medida para verificar as aproximações para a solução analítica. A exatidão expressa a qualidade dessas medidas em relação aos valores verdadeiros. Excetuando-se uma eventual influência da aritmética de ponto-flutuante na qualidade da solução numérica, o maior problema na construção de esquemas numéricos, particularmente responsável pelo surgimentos de difusão e oscilação numérica, é a falta de acurácia espacial e temporal nas aproximações das EDPs. Para melhorar a acurácia temporal das soluções das equações que, se de primeira ordem, introduz um amortecimento artificial (damping) na solução, empregase o método −θ , que é um caso particular do método trapezoidal, como em [PAT87], 194 [ABB89], [HIR92], [CAS94] e [LOM2000], de modo que se pode obter uma acurácia temporal de segunda ordem. Desse modo, o amortecimento artificial na solução pode ser reduzido ao mínimo quando as expressões discretas são aproximadas como uma média no tempo, como no esquema Crank-Nicolson. Quando se toma θ =1,0 no método −θ , o esquema resultante é de primeira ordem de acurácia no tempo. Quando se toma θ = 0,5 , o esquema numérico tem acurácia temporal de segunda ordem. Especificamente no caso da hidrodinâmica toma-se θ = 0,5 , e os gradientes de pressão barotrópica (níveis) são aproximados como uma média nos níveis de tempo n e n + 1 . Patnaik [PAT87] mostrou que os algoritmos para escoamentos de superfície livre assim construídos são estáveis para 0,5 ≤ θ ≤ 1 , e que a maior acurácia e eficiência é obtida para θ = 0,5 . Quando θ < 0,5 , o método é instável. Objetivando-se os esquemas de alta qualidade numérica (high resolution schemes), ou seja, de esquemas de alta ordem de acurácia, faz-se uma discussão relativa aos principais conceitos e resultados associados ao método TVD (Total Variation Diminishing) de Harten [HAR83], e em particular, ao método FLM (Flux Limiter Method) de Sweby [SWE84]. Com essa abordagem obtêm-se soluções numéricas limitadas, acuradas e estáveis, que são características numéricas e computacionais intrínsecas do método FLM, tornamdo-o particularmente importante na solução de complexos problemas hiperbólicos. Essa discussão é associada a alguns dos importantes conceitos da Matemática como, por exemplo, leis de conservação escalar, soluções fracas, entropia e variação limitada, entre outras, que servem como digressão para abordar os conceitos de TVD e de limitação de fluxo, sem que eles sejam introduzidos de modo ad hoc, já que esses conceitos estão associados com a produção de soluções fisicamente corretas para a equação do transporte escalar. Leis de conservação escalar A conservação das propriedades de um sistema é um princípio fundamental da Física, que assegura que a massa, a quantidade de movimento e a energia podem ser transportadas no sistema, porém não podem aparecer ou desaparecer na ausência de fontes ou sumidouros. Essa afirmação pode ser expressa matematicamente através da EDP escrita, com uma condição inicial e o domínio de definição, formando um problema de valor inicial (PVI), como: σ t ( x , t ) + f ⎡σ ( x , t ) ⎤ x = 0 ; x ∈ , t > 0 ⎫ ⎪ ⎣ ⎦ ⎬ ( A1.5 ) σ ( x ,0 ) = σ 0 ( x ) ;x ∈ ⎪ ⎭ A função f (σ ) é chamada de função fluxo numérico. Supondo que ela se anula quando x → ∞ (função com suporte compacto), a integração da EDP do PVI (A1.5) no ∞ intervalo −∞ < x < ∞ resulta em d dt recebe o nome lei de conservação escalar, pois a integral da função σ é conservada no tempo. Integrar a lei de conservação escalar no intervalo a < x < b resulta em: −∞ ∫ σ ( x ,t ) dx = 0 . Por esse motivo, essa EDP d ∫ σ ( x ,t ) dx = f (σ (b,t ) ) − f (σ (a,t ) ) dt a E portanto, a variação da integral de σ sobre o intervalo finito é determinada pelos contornos inflow e outflow em x = a e x = b . Ou seja, somente através das b 195 fronteiras do domínio de definição ocorre a variação de massa, por exemplo. Essas considerações são particularmente importantes quando associadas à necessidade de construir soluções hiperbólicas não lineares para escoamentos dominados pela advecção, como no caso deste trabalho. Soluções fortes e soluções fracas Para obter soluções que obedeçam à lei de conservação escalar (scalar conservation law), considera-se inicialmente a definição usual de solução. Uma solução forte (ou clássica) do problema de valor inicial (A1.5) é uma função σ que satisfaz simultaneamente a condição de regularidade, isto é, deve ser contínua em × [0, ∞ ) e diferenciável em × + , onde + = ( 0, ∞ ) , e as equações em (A1.5) ([MLO91] e [SNO98]). Assim, uma solução clássica de uma EDP é uma função, necessariamente diferenciável, que substituída na EDP resulta em uma identidade válida em cada ponto do domínio de definição. Porém existem soluções de EDPs que são somente contínuas ou mesmo descontínuas e a substituição de uma função com essas características na equação diferencial não tem sentido. A partir dessa constatação pode-se introduzir o conceito de solução fraca que, no sentido das distribuições, considera que a função candidata a solução não seja necessariamente diferenciável. Nesse caso a solução fraca pode ser obtida, multiplicando a equação diferencial por uma função teste suave ∞ φ = φ ( x , t ) ∈ C0 ( × + ) , de suporte compacto, resultando, via integração por partes, na expressão: ∫∫ 0 ∞ ∂φ ⎡ ∂φ ⎤ ⎢ ∂t σ + ∂x f (σ ) ⎥ dxdt = − ⎦ −∞ ⎣ ∞ ∫ ∞ φ ( x ,0 ) σ ( x ,0 ) dx ⎬ ( A1.6 ) ⎪ ⎭ ⎫ ⎪ −∞ Assim, uma solução fraca de (A1.5) é uma função σ que satisfaz a condição de regularidade σ ∈ C 0 ( × [0, ∞ ) ) , a equação (A1.6), e a CI de (A1.5). É possível mostrar que solução forte implica solução fraca, ou seja, se σ é solução do problema (A1.5) no sentido da definição de solução forte, então também o é no sentido da definição de solução fraca. Além disso, a noção de solução fraca não introduz soluções diferenciáveis espúrias visto que uma função diferenciável, que não for solução forte, não pode ser solução fraca. Mais especificamente tem-se que solução fraca acrescida de regularidade implica solução forte. Ou seja, se σ for solução fraca e for diferenciável em × + , então σ é uma solução clássica. Todos esses resultados podem ser vistos em [MLO91] e [SNO98]. Conceitos e resultados adicionais sobre EDPs e distribuições podem ser encontrados em [IOR88], [MLO91] e [SAT98]. Condição de entropia e unicidade da solução A questão toda, agora, é lidar com a conseqüência da admissão de soluções descontínuas. Soluções fracas (numéricas) não são únicas e, portanto, deve-se buscar obter a solução fisicamente correta (única). Um modo pelo qual se determina a unicidade da solução é exigir que se satisfaça a condição de entropia ([OSH84], [OLS97] e [TRA2000]). Tal condição requer que a solução física para a lei de conservação escalar seja o limite da solução da equação diferencial modificada com uma adição de difusão. Ou seja, para σ = limε → 0 σ ε (se ε → 0 chama-se vanishing viscosity), tem-se: ∂σ ε ∂f (σ ε ) ∂ ⎛ ∂σ ε ⎞ + =ε ⎜ β (σ ) ⎟ ∂t ∂x ∂x ⎝ ∂x ⎠ 196 onde β (σ ) > 0 . Sob essa condição mostra-se que as descontinuidades formadas no limite da vanishing viscosity satisfazem a condição E (condição de Rankine-Hugoniot), que assegura que a solução é unicamente determinada pelos dados iniciais. Detalhes sobre as leis de conservação hiperbólicas, e suas conexões com os chamados problemas de Riemann, podem ser vistos em [SNO98], [TRA2000] e [LEV2001]. O emprego de métodos numéricos para a solução de leis de conservação escalar (e de seus conceitos como solução fraca, condição de entropia, etc.) é fundamental no moderno tratamento numérico de problemas em escoamentos compressíveis como aqueles sob o escopo da Dinâmica de Gases (Gas Dynamics). Contudo, esses mesmos métodos podem ser empregados com sucesso para construir soluções numéricas de problemas em escoamentos incompressíveis com altos gradientes, como a equação do transporte escalar de substâncias (ETM), que é uma EDP hiperbólica não linear. Sua solução pode sofrer de fortes oscilações no entorno dos altos gradientes se o esquema de solução não for apropriadamente projetado. Consistência e variação limitada Pode-se obter um esquema numérico explícito na forma conservativa para a EDP em (A1.5), através de sua integração sobre ⎡ x i − 12 , x i + 12 ⎤ × ⎡t n , t n +1 ⎤ . Dividindo essa ⎣ ⎦ ⎣ ⎦ integral por Δx i = x i + 12 − x i − 12 (malhas equiespaçadas), obtém-se o seguinte esquema numérico explícito: + + Sin +1 = Sin − λ Fi n 12 2 − Fi n 12 2 + − 1 1 ( ) f ⎡S xi + 12 , t ⎤ dt ⎣ ⎦ onde σ = S na EDP de (A1.5), λ = Δt n + 12 Δ x i e Δt n + 12 i + 12 n + 12 = t n +1 − t n , onde: 1 S = Δx n i ∫ xi + 1 2 S (ix ,n Δt ) dx e F xi − 1 1 = Δt 2 ∫ t n +1 t n ( ) sendo que S S (ix ,n Δt ) , e Fi + 12 é visto como o fluxo médio que atravessa a face da célula no ponto x i + 12 no intervalo de tempo Δt ([GRS99], [ZOU99], [BYU99] e [AWA00]). A questão central é mostrar que esse esquema numérico converge para a solução correta. Não existem resultados gerais que garantam a convergência de esquemas não lineares. Porém, se o esquema satisfizer determinadas condições, existem importantes resultados nesse sentido, sobretudo para o caso 1D. Inicialmente, note-se que o clássico teorema de equivalência de Lax afirma que, para um esquema linear consistente, a estabilidade é condição necessária e suficiente para a estabilidade. Mas esse teorema não pode ser aplicado a esquemas não lineares e não garante convergência para soluções que satisfaçam a condição de entropia (solução única). Por outro lado, o teorema de Lax-Wendroff [TRA2000] garante que, se uma solução de um esquema conservativo converge e é limitada, então o esquema converge para a solução fraca de uma lei de conservação escalar. Porém o teorema não garante que a solução satisfaz a condição E de entropia. Ou seja, é possível que um esquema numérico convirja para uma solução da lei de conservação escalar, mas não atenda a condição vanishing viscosity, mostrando que a solução não é única. Exemplos dessa situação podem vistos em [SNO98]. Um resultado que garante a unicidade da solução é o teorema de Harten-HymanLax ([SNO98] e [TRA2000]), que assegura que um esquema explícito monotônico n i é visto como uma aproximação espacial média na célula para 197 conservativo e consistente satisfaz a condição de entropia e, portanto, tem solução única. Porém, nesse caso, a solução é somente de primeira ordem de acurácia. Uma questão importante é saber, então, se a estabilidade não linear implicaria a convergência de esquemas não lineares consistentes, como no teorema de Lax. Isso é verdade, sob certas condições, pois pode-se mostrar (veja o lema 3.3.2 de [TRA2000]) que a estabilidade não linear implica, sob condições adicionais, a convergência e unicidade de soluções não lineares. Não se discutem, neste trabalho, esse nem outros mais resultados, que podem ser obtidos na bibliografia já mencionada, sobretudo em [OSH84], [SWE84] e [TRA2000]. Conceitos e definições sobre soluções fracas e suas conexões com EDPs e Mecânica dos Fluidos, sobretudo com leis de conservação de sistemas hiperbólicos (hyperbolic conservation laws) podem ser vistos em [MLO91], [LEV96], [HEM99] e [LEV2001]. O interesse é, doravante, obter esquemas numéricos de alta ordem de acurácia para escoamento incompressíveis. Nesse sentido, a conexão dos métodos numéricos construídos neste trabalho, com resultados anteriormente discutidos, é que o mesmo suporte teórico dado para soluções compressíveis pode ser utilizado para construir soluções numéricas de escoamentos incompressíveis sem considerações puramente heurísticas. Um resultado fundamental nessa direção é dado pelo fato de que uma aproximação numérica converge limitadamente para a solução, sob certas condições, quando o esquema numérico é consistente e a variação total da solução é limitada no domínio de integração ([SWE84] e [TRA2000]). Esse resultado mostra que uma estimativa envolvendo a convergência em esquemas conservativos é a limitação na variação da solução. A limitação pode ser obtida considerando-se o conceito TVD, que foi introduzido por Harten [HAR83]. Ele assegura que, na ausência de forças externas, não ocorre aumento na variação total da solução, não gerando, portanto, oscilações no entorno do choque ou dos altos gradientes. Nesse caso, deve-se abandonar a exigência de monotonicidade da solução, pois, pelo teorema de Godunov, esquemas lineares que preservam a motonicidade são somente de primeira ordem de acurácia. Portanto, esquemas que preservam a monotonicidade devem ser de alta ordem de acurácia. Um modo de obter tais soluções é satisfazer a condição, menos restritiva, de o esquema ser TVD (Total Variation Diminishing). Soluções escalares TVD: acurácia de alta ordem O conceito TVD é particularmente importante para obter esquemas advectivos que combinem acurácia e monotonicidade. Esquemas explícitos, conservativos e monotônicos são TVD, porém têm acurácia somente de primeira ordem. Um resultado importante é que esquemas conservativos TVD e não lineares preservam a monotonicidade (teorema de Harten). Uma função, para um problema 1D na forma conservativa que mede a variação total (TV) da solução {Φ} no tempo é definida por: TV ( Φn ) = ∑Φ i n i +1 − Φn i e um método de diferenças é dito ser de variação total amortecida (Total-VariationDiminishing – TVD) se produz uma solução que satisfaz a condição: ∑ ∞ i =−∞ Φn++1 − Φn +1 ≡ TV ( Φn +1 ) ≤ TV ( Φn ) ≡ i 1 i def def ∑ ∞ i =−∞ Φn+1 − Φn i i Em um esquema TVD, não são criados novos máximos e novos mínimos no avanço temporal da solução. Essa é uma importante conseqüência, pois pode-se 198 mostrar que todos os esquemas conservativos monotônicos são TVD e todos os esquemas TVD preservam a monotonicidade e são convergentes [TRA2000]. Esquemas lineares monotônicos são de primeira ordem de acurácia. Mas essa restrição não se aplica a esquemas TVD não lineares. Soluções para a equação de lei conservação escalar satisfazem a propriedade de que a variação total de qualquer solução contínua fisicamente admissível TV ( Φ ) = ∫ ∂Φ dϕ , ∂x solução de um problema contínuo Φ = Φ ( x , t ) satisfaça d dt ⎡TV ( Φ ) ⎤ ≤ 0 , como na ⎣ ⎦ definição da lei de conservação escalar. Esquemas explícitos lineares 1D são monotônicos se e somente se são TVD. Já esquemas explícitos não lineares 1D e TVD preservam a monotonicidade, mas esse resultado não é aplicável a problemas multidimensionais. Goodeman e LeVeque [ZIJ97] mostraram que todo esquema conservativo TVD para problemas 2D deve ter primeira ordem de acurácia. Porém experimentos numéricos mostram que soluções multidimensionais livres de oscilações podem ser obtidas empregando esquemas TVD 1D de segunda ordem de acurácia. Então, por robustez, empregam-se decomposições unidimensionais para obter soluções 2D ou 3D, a despeito do fato de que o esquema resultante não é, a rigor, TVD. Em [ZIJ95] pode-se ver um contra-exemplo mostrando que esquemas explícitos monotônicos 2D não são necessariamente TVD. Esses esquemas numéricos explícitos TVD podem ser obtidos através do emprego do método da limitação dos fluxos (FLM), no qual o fluxo em cada face é calculado como sendo a soma de um termo upwind difusivo de primeira ordem, mais um termo “antidifusivo” de alta ordem [HUN96]. Para manter a monotonicidade, empregam-se funções limitadoras de fluxo. Neste trabalho, empregou-se a formulação FLM desenvolvida por Sweby [SWE84] e uma ampla coleção de funções limitadoras de fluxo. Nesse caso, esquemas numéricos TVD de segunda ordem de acurácia devem ser não lineares, mesmo quando aplicados à solução da EDP da advecção linear. Além disso, se o esquema numérico é completamente implícito, ele tem estabilidade incondicional e, portanto, não necessita de limite superior [ZIJ97]. Porém, mesmo a condição TVD pode ser, também, restritiva, dado que pode sofrer de “achatamento” (clipping) nos pontos críticos. Uma solução para esse problema é relaxar o conceito de variação total. Por esse motivo, desenvolveram-se esquemas tipo essencialmente não oscilatórios (Essentially Non Oscillatory – ENO), mas essa abordagem não é tratada neste trabalho. não cresce no tempo (teorema de Lax [TRA2000]). Assim, é “natural” requerer que a Consistência entre a continuidade e o transporte Um outro atributo que deve ser observado na construção da solução para escoamentos de superfície livre é a questão da consistência entre a aproximação da equação da continuidade (EC) e a equação do transporte de substâncias (ETM). Essa propriedade foi definida por Lin [LIN96] para garantir que o campo inicial, escalar, uniforme e na ausência de fontes ou sumidouros permaneça uniforme ao longo da simulação. Sem essa consistência o campo inicial torna-se não uniforme e, segundo Lin, “esta aparente restrição muitas vezes não é mantida em modelos de transporte e isso causa fluxos espúrios no campo dos constituintes” ([GRO99] e [BON2000]). A consistência da equação do transporte com a da continuidade (CTC) é definida como: “dado um campo de escoamento e uma condição inicial de concentração, a discretização da equação advectiva deve-se degenerar na discretização da equação da continuidade” ([BON2000]). Ou seja, a equação da advecção discreta é CTC satisfeita se, dado um escoamento inicial constante, sua discretização degenera-se na 199 discretização da equação da continuidade. Para ilustrar essa propriedade, considera-se o caso 2D como em (A1.7). η(ni ,+j1) = η(ni , j ) − Δt ⎡ n ⎫ + H U n +θ − H (n − 1 , j )U (n − θ , j ) ⎤ ⎪ i 2 i 12 ⎣ ( i + 12 , j ) ( i + 1 2 , j ) ⎦⎪ Δx ⎬ ( A1.7 ) Δt ⎡ n n +θ n n +θ ⎤⎪ H 1 V 1 − H (i , j − 1 )V(i , j − 1 ) − 2 2 ⎦ Δy ⎣ (i , j + 2) (i , j + 2) ⎪ ⎭ Assim, (A1.7) deve ser consistente com a EC discreta como em (A1.8), significando que a quantidade de água que entra/sai em cada face (fluxo numérico para a continuidade) é a mesma que entra/sai em cada face da célula para o transporte (fluxo numérico), carregando a concentração escalar. S (n,+j1H (n,+j1 = S (n, j )H (n, j ) − i ) i ) i i Δt ⎡ n + n + n ⎫ H (i + 1 , j )U (n + θ , j )S E − H (n − 1 , j )U (n − θ , j )SW ⎤ ⎪ i 12 i 2 i 12 2 ⎦⎪ Δx ⎣ ⎬ ( A1.8 ) Δt ⎡ n n +θ n n n +θ n⎤⎪ H 1 V 1 S N − H (i , j − 1 )V(i , j − 1 )SS − 2 2 ⎦⎪ Δy ⎣ (i , j + 2) (i , j + 2) ⎭ Δt ⎡ n + H 1 U n +θ − H (n − 1 , j )U (n − θ , j ) ⎤ 1 i 2 i 12 ⎦ Δx ⎣ (i + 2, j ) (i + 2, j ) Δt ⎡ n − H 1 V n +θ 1 − H (n, j − 1 )V(n, +θ 1 ) ⎤ i i j− 2 ⎦ 2 Δy ⎣ (i , j + 2) (i , j + 2) que, para um campo escalar uniforme com concentração S (n, j ) = 1 , é escrito como: i S (n,+j1H (n,+j1 = H (n, j ) − i ) i ) i n n n n Se os fluxos S E , SW , S N e SS são, também, iguais a 1, a substituição de (A1.7) em (A1.8) resulta que S (n,+j1 = 1 , que é chamada CTC. Essa condição é suficiente para i ) garantir que o campo inicial, escalar e uniforme (na ausência de fontes ou sumidouros), permaneça uniforme ao longo da simulação. Isso significa que se deve aproximar as EDPs discretas de modo que o nível de tempo, a localização das componentes das velocidades e do nível de água e o espaçamento vertical da ETM coincidam com as da EC. Além disso, os fluxos numéricos para as concentrações nas faces da célula devem ser interpolados na malha de modo que coincidam com o esquema advectivo da ESW. Essas condições devem ser atendidas pelos esquemas numéricos, já que os resultados de [GRO99] e [ROS2000] mostram que a acurácia da solução de escoamentos de superfície livre é preservada somente se a condição CTC é satisfeita. Vários experimentos numéricos foram feitos por Bonaventura [BON2000] para determinar quais os efeitos da violação da condição CTC. Os dados iniciais para a velocidade e para a altura total foram escolhidos de modo que o campo de velocidades dado pela solução analítica da equação da conservação da quantidade de movimento (shallow water) não linear 1D. A profundidade total do fluido é calculado através da equação da continuidade (A1.7) e a concentração escalar calculada empregando a expressão (A1.8) e usando os valores da velocidade e da profundidade calculados previamente pelas equações da conservação da quantidade de movimento e da continuidade, respectivamente. Esses experimentos foram conduzidos de modo a produzir soluções tais que a condição CTC estivesse satisfeita e de modo que ela fosse violada. A concentração inicial é tal que S 0 =1 e todas as células cuja profundidade é menor que 10-4m são consideradas células secas. Os esquemas numéricos são construídos usando o método Lax-Wendroff de reconstrução do fluxo nas faces das células. Esse método é de segunda ordem de acurácia e é do tipo FLM, da classe TVD, discutido detalhadamente 200 nesse anexo e no cap. 5. Os resultados obtidos são como mostrados nas tab. A1.1 e A1.2. TABELA A1.1 - Resultados para o caso 1D com dados iniciais constantes, empregando o esquema FLM Lax-Wendroff (fonte [BON2000]) L2 L1 máximo mínimo Abordagem × métrica -8 -8 CTC 1,04.10 5,84.10 1,00 1,00 -3 -2 não CTC 6,25.10 4,97.10 1,07 3,16.10-2 TABELA A1.2 - Resultados para o caso 1D com dados iniciais não constantes, empregando o esquema FLM Lax-Wendroff (fonte [BON2000]) depois de 10 depois de 20 depois de 30 depois de 40 abordagem × valores passos de passos de passos de passos de máximos tempo tempo tempo tempo CTC 0,99 0,99 0,99 0,99 não CTC 1,07 1,06 1,06 1,05 Os resultados apresentados nas tab. A1.1 e A1.2 mostram que o esquema CTC não cria novos máximos, ao contrário do esquema que não conserva a propriedade CTC. Além disso, as métricas L1 e L2 (veja o anexo 2) mostram que os erros do esquema não CTC são maiores que aqueles obtidos com o esquema CTC, apesar do emprego de métodos TVD. Discussões adicionais podem ser vistos em [BON2000] mas esse resultado mostra que no desenvolvimento de modelos computacionais que oferecem a solução combinada para o escoamento e o transporte de substâncias deve-se considerar essa propriedade. Positividade da solução Quantidades negativas não têm sentido físico e são resultados da falta de acurácia, da não conservatividade e da perda da monotonicidade na solução numérica [LOO92]. Soluções positivas podem ser obtidas suprimindo os resultados negativos, mas essa alternativa é inadequada, pois esse procedimento adiciona massa à solução e não elimina os problemas associados com a geração dessas quantidades, como as sub/sobre-especificações (under/overshoot) dos valores nodais. Por exemplo, um esquema 2D é positivo se, dada uma variável ϕ = ϕ ( x , y, t ) , sua solução é positiva, isto é, se [TRA2000]: ∀ X = ( x, y ) ∈ Ω ⊂ 2 ; ϕ ( X ,0) ≥ 0 ⇒ ϕ ( X ,t ) ≥ 0 ∀ X × t ∈ Ω × ( 0,T ) Soluções positivas são obtidas através da construção de uma discretização espacial e temporal que mantenha a positividade da solução. Assim, os esquemas de solução a serem desenvolvidos são aqueles que devem ter, também, a propriedade de serem definidos-positivos. Geralmente, essa é uma característica possível de se obter com os esquemas não-lineares de alta resolução, de modo a não considerar viscosidade artificial. Porém, mesmo esses esquemas de alta resolução necessitam de características adicionais (que é a limitação do fluxo) para manter a positividade. Transporte da solução Outra característica importante que um esquema numérico deve possuir é a chamada propriedade de transporte. Essa propriedade é caracterizada como definido por Roache [CHE84]. “Um esquema tem a propriedade de transporte se as perturbações 201 em problemas com advecção dominante se propagam na direção do escoamento”. Esquemas tipo upwind têm essa característica; já esquemas em diferenças finitas centrais (DFC) não a têm. Numericamente esse resultado é como mostrado na fig A1.1 a), onde oscilações surgem quando do emprego de DFC na solução da advecção 1D. O problema para esses esquemas é que enquanto a DFC tem transporte bidirecional não realístico para problemas hiperbólicos 1D, a abordagem upwind tem transporte unidirecional, que é verdadeiro sob o ponto de vista físico. Fisicamente, a característica “transportativa” da solução de problemas hiperbólicos têm direção preferencial de propagação ([MAL95] e [BRL2000]), onde as perturbações do escoamento propagam-se ou a upstream ou a downstream. Um esquema numérico que obedece a propriedade transportativa considera que, no cálculo da advecção na malha numérica empreguem-se valores nodais que estão no sentido do transporte. Ou seja, que estão somente no domínio de influência da EDP discreta [MES76]. Essa é a essência de métodos tipo upwind (upstream e downstream), o que justifica a sua popularidade na solução numérica de problemas hiperbólicos. Assim, grande parte dos algoritmos para a advecção partem do fato de que a solução de uma EDP hiperbólica propaga-se ao longo das suas curvas características. Métodos de aproximação tipo upstream pertencem à classe que considera esse aspecto, e o esquema mais popular dessa classe é o upwind, que é definido para a advecção linear 1D, onde Φ é uma variável qualquer, como: ∂Φ u ⎧Φi − Φi −1, se u > 0 =− ⎨ ∂t Δx ⎩Φi +1 − Φi , se u < 0 onde, para u > 0 , a solução no ponto i só depende do campo de escoamento upstream, ou seja, somente do ponto i-1 que está dentro do domínio de dependência do ponto i. As propriedades do ponto i+1 não influenciam o ponto i. Quando u < 0 , ocorre que a solução só depende do escoamento downstream. Portanto, o estêncil computacional deve ser alinhado com a direção do escoamento através do sinal de u . Muitos dos esquemas de alta resolução empregam essa abordagem na definição de suas estratégias. Por exemplo, os esquemas FLM podem ser obtidos a partir das idéias do esquema upwind considerando-se uma abordagem via “reconstrução linear” como discutida em [HUN95] e [HUN96]. Nesses esquemas numéricos (FLM) os fluxos nas faces de cada elemento fluido são calculados como sendo a combinação de um termo upwind difusivo de primeira ordem, com um termo “antidifusivo” de alta ordem. Nesse anexo discute-se a seguir sobre essa abordagem, e na seção 5.1.3 pode-se ver os algoritmos resultantes na obtenção de esquemas FLM de alta qualidade numérica. Note-se, porém, que técnicas de solução numérica como a equação de Poisson para pressão (método de acoplamento pressão-velocidades), que consistem na substituição das derivadas parciais das expressões das ECQMs na expressão da EC geram uma EDP do tipo Poisson. Nesse caso, pode-se usar na sua solução numérica uma abordagem via diferenças finitas centrais sem que surjam oscilações, como pode ser visto, por exemplo, em [KLR2000] e em [BRL2002]. Isso se deve ao fato de que a equação de Poisson é um protótipo de EDP do tipo elíptico [IOV89], que não oferece problemas quando do emprego de esquemas numéricos via DFC. Ver discussões e detalhes sobre o método da equação de Poisson para pressão na seção 7.3 de [FER97] ou na seção 5.11 de [FRT2000]. Massa conservativa O princípio da conservação da massa enuncia que a massa não pode ser criada nem destruída. Se a vazão para dentro de uma região Ω exceder aquela que sai, a massa acumular-se-á dentro dela. A conservação da massa exige que a soma da taxa 202 de variação de massa dentro da região com a vazão líquida em massa saindo pela fronteira ∂Ω seja nula ([HIR92] e [AND95]) Esse princípio é formulado matematicamente através da equação da continuidade que, quando escrita empregando um volume fixo no espaço, é chamada conservativa, enquanto a obtida com o volume movendo-se no fluido é chamada de não conservativa. A segunda forma emprega a derivada Lagrangeana, que é apropriada para “equacionar” o movimento de um corpo fluido. A primeira forma é obtida com a formulação Euleriana. E, por isso, EDPs na forma conservativa e não conservativa são aquelas, respectivamente, escritas com a formulação Euleriana e com a formulação Lagrangeana. Esquemas semi-Lagrangeanos são, portanto, não conservativos, no sentido de que os fluxos nas faces não são calculados, como o caso daqueles esquemas construídos com a abordagem Euleriana, sendo que suas quantidades são calculadas ao longo das trajetórias das partículas. Uma discussão sobre esses aspectos pode ser vista em [AND95]. Porém, cada abordagem pode ser obtida a partir de outra, ou seja, pode-se mostrar que as diferentes formas da equação da continuidade são matematicamente equivalentes. Uma definição numérica para a questão da conservatividade da massa é tal que “uma solução é massa conservativa se o valor total das quantidades envolvidas no interior do domínio computacional não é alterado devido aos erros numéricos” [VLA99]. O método de discretização é, pois, fundamental para gerar esquemas conservativos. Um método apropriado é o dos “volumes finitos” ou o volume de controle finito. No caso de diferenças finitas para obter as EDPs discretas, duas abordagens são populares. Uma emprega a expansão em série de Taylor, e a outra considera a abordagem de volume de controle [AND95]. Na primeira, as equações são escritas na forma apropriada para representar um dado modelo, e emprega-se a série de Taylor de modo puramente formal para desenvolver as aproximações em diferenças finitas. Na segunda abordagem, emprega-se o conceito de volume de controle finito (VC) de modo a conservar uma quantidade física específica como a massa, ou o movimento ou a energia no VC. Essa abordagem tem a vantagem de ser aplicável mais facilmente a problemas multidimensionais, considerando as condições de contorno e conservando as propriedades físicas do problema. Uma desvantagem é que a estimativa da acurácia depende da análise das funções interpolantes nas faces do VC, enquanto o emprego de séries de Taylor fornece diretamente essa informação sob a forma da ordem de truncamento das séries. Neste trabalho, empregou-se o método de discretização de diferenças finitas e, para manter a conservatividade fez-se uma aproximação para os fluxos, em uma célula 3D, para as concentrações nas faces leste (E), oeste (W), norte (N), sul (S), superior (U) e inferior (L), como ilustradas na fig. A1.2. Note-se que o fluxo numérico é definido, para a solução da equação de transporte escalar de substâncias 3D, como sendo f ⎡S (h , t ) ⎤ = ν S (h , t ) , onde h = x ou y ou ⎣ ⎦ z e ν = u,v ou w , dependendo da direção coordenada. Assim, em um esquema conservativo 3D, os valores nas faces das células na malha Arakawa C (veja a fig. 3.1) devem ser interpolados, observando o posicionamento das variáveis como mostrado na fig. A1.2. Nas faces E ,W , N ,S , L e U os fluxos numéricos são escritos na forma conservativa como: 203 (uSW )(i + 1 , j ,k 2 ) = ( uSE )(i −1 , j ,k ) , (vSS )(i , j + 1 ,k ) = (vSN )(i , j −1 ,k ) e ( wSL )(i , j ,k +1 ) = ( wSU )(i , j ,k −1 ) 2 2 2 2 2 × U N W S L E Δz + SW u(ni − θ , j ,k ) 1 SU w(ni ,+jθ,k + 1 ) 2 S Nv (ni ,+jθ+ 1 ,k ) 2 × •S (i , j ,k ) × 2 + S E u(ni +θ , j ,k ) 1 2 × SSv (ni ,+jθ− 1 ,k ) 2 × S L w(ni ,+jθ,k − 1 ) 2 × Δy Δx FIGURA A1.2 - Posicionamento dos fluxos numéricos nas faces da célula 3D Porém, não obstante ser o método das diferenças finitas simples de formular, de estender para problemas multidimensionais, de ter a flexibilidade geométrica (com as técnicas de geração numérica de malhas) antes somente fornecida pelo método dos elementos finitos, e de ser ainda popular na área de estudos ambientais ([CAS94], [CHU96], [LIY96], [CAS97], [GRO98] e [GRO99]), o método dos volumes finitos (MFV) está cada vez mais presente nessa área como pode ser visto nos trabalhos de [ADC95], [VLA99], [VAL2000] e [CAS2000]. Nesse método, considera-se que as EDPs, na forma integral, devem ser resolvidas e discretizadas diretamente no espaço físico. O domínio solução é subdividido em um número finito de volumes elementares contíguos, nos quais a integração é executada, e as equações de conservação são aplicadas a cada elemento. Procedimentos de interpolação são empregados para representar os valores das variáveis nas faces da célula, em termos do valores nodais. Tal abordagem é conservativa por construção. Uma ampla discussão sobre aproximações de integrais de superfície e de volume, bem como de processos de discretização conservativa em volumes finitos, com aplicação à Dinâmica dos Fluidos Computacional, pode ser vista em [HIR92], [MAL95], [FER97] e [EYM97]. Note-se que o método dos volumes finitos (MVF) pode ser visto como sendo o método das diferenças finitas (MDF) aplicado às leis de conservação escritas na forma conservativa, com a vantagem de utilizar coordenadas arbitrárias [VAL2000]. Assim o MVF é vantajoso relativo ao MDF, pois combina a simplicidade do MDF com a flexibilidade do MEF, pois permite a aplicação às malhas não estruturadas. Esquema semi-implícito A discretização das EDPs deve levar em consideração o domínio de definição espacial e temporal. A discretização espacial consiste em construir uma malha através da qual o espaço contínuo é substituído por um número finito de pontos, nos quais os 204 valores numéricos das variáveis são determinados. A discretização temporal dos sistemas de equações determina duas famílias de métodos: os explícitos e os implícitos. No método completamente explícito, a matriz dos coeficientes calculada a cada passo de tempo é diagonal. Sua solução é obtida eficientemente e sem dependência de dados, pois todos os valores vizinhos são conhecidos no mesmo passo de tempo. Contudo, essa vantagem é aparente, pelo fato de que as condições de estabilidade Courant-Friedrichs-Levy (CFL) impõem restrições à magnitude do passo de tempo. Essas condições CFL visam a assegurar que o domínio de dependência da solução analítica de EDPs esteja contido no domínio de dependência da solução numérica [BRT96]. Em uma abordagem completamente implícita, não há restrições no passo de tempo, pois o sistema de equações é incondicionalmente estável (estabilidade linear). Mas os sistemas de equações são não lineares e acoplados, sendo necessário resolvêlos simultaneamente, o que pode ser um problema, dada a exigência de memória e de capacidade de processamento. E, mesmo nesse caso, por acurácia, o passo de tempo não pode ser arbitrário, o que limita a utilização prática da estabilidade incondicional disponível [CAS90]. Uma alternativa aos esquemas explícitos ou implícitos, visando a melhorar o desempenho computacional, é empregar a técnica de divisão do modo (mode-splitting) separando as equações verticalmente integradas (modo externo) das equações que contêm a estrutura vertical (modo interno). Essa estratégia de desacoplar as direções horizontais e verticais considera a contribuição das diferentes escalas envolvidas em cada direção ([BLU78], [SHE95], [FOR96] e [MEL98]). Isso porque as equações que governam a dinâmica da circulação contêm movimentos rápidos, causados por ondas de gravidade externas (movimentos barotrópicos), e movimentos lentos, causados por ondas de gravidade interna (movimentos baroclínicos). Com essa abordagem, o esquema de solução tem dois intervalos de tempo distintos, um para o modo externo e outro para o modo interno. O modo externo (barotrópico) é bidimensional e usa um intervalo de tempo menor, baseado nas condições de estabilidade CFL. O modo interno (baroclínico) é tridimensional e usa um intervalo de tempo mais longo [CAM99]. Esse método é eficiente, pois permite empregar um esquema de integração temporal que use os distintos passos de tempo para calcular os dois modos. A desvantagem dessa abordagem é a inconsistência da solução numérica desses dois modos [CAS92]. Embora o modo externo permita um eficiente cálculo das ondas de propagação de gravidade na superfície livre, mesmo com um pequeno passo de tempo, e a solução do modo interno, que é computacionalmente custosa, possa ser obtida com um grande passo de tempo, deve-se assegurar a consistência das soluções desses dois modos e, conseqüentemente, a consistência das quantidades físicas derivadas dos modos externo e interno. Essa consistência significa assegurar que as velocidades integradas verticalmente no modo externo devem ser tais como na integração vertical do perfil de velocidades da solução do modo interno, e as representações do atrito no leito do corpo de água, nos modos interno e externo, devem ser também consistentes [CAS92]. Se qualquer inconsistência existir, não se pode assegurar matematicamente a convergência da solução numérica, já que as aproximações em diferenças finitas para os respectivos modos não são consistentes. Outro problema da abordagem de divisão do modo é que, geralmente, alguns dos esquemas de integração têm acurácia somente de primeira ordem [LEE89]. Uma alternativa elegante, adotada neste trabalho, é a construção de esquemas semi-implícitos, procurando equilibrar as exigências da estabilidade com a obtenção de grandes passos de tempo. Essa abordagem é atualmente popular ([LEE89], [CAS90], [LEV92], [CAS94], [SON94] e [GRO98]), e muitas das pesquisas atuais buscam 205 fundamentar de modo matematicamente rigoroso os critérios para a construção de tais esquemas. Esquemas semi-implícitos surgem quando se aproximam alguns dos termos constituintes das EDPs de modo explícito e outros de modo implícito. Com essa abordagem, pode-se construir sistemas de equações que são lineares, acurados, estáveis e computacionalmente eficientes. Além disso, o grau de “explicidade” e de “implicidade” de tais esquemas pode, ainda, ser controlado, empregando-se o método trapezoidal ([PAT87], [ABB89] e [HIR92]). Foi essa a abordagem empregada neste trabalho, como discutido nesse anexo, e os esquemas numéricos resultantes dessa abordagem são discutidos no capítulo 4. Uma outra vantagem da abordagem semi-implícita é, que ao desacoplar os termos, permite que os termos mais críticos sejam convenientemente discretizados. Especificamente, em escoamentos hidrodinâmicos e de transporte de substâncias, nos quais a advecção domina os demais termos, o termos advectivos podem ser aproximados por diferentes esquemas de alta qualidade numérica sem que ocorram maiores alterações no código computacional. Essa abordagem foi a empregada para obter as soluções da ETM e das ESW, como pode ser visto nos capítulos 4 e 5. Esquemas Euleriano e semi-Lagrangeano Usando a hipótese do contínuo, pela qual se consideram os efeitos médios ou macroscópicos de muita moléculas, pode-se utilizar o conceito de velocidade de um fluido para definir que o campo de escoamento é um agregado das velocidades locais [FOX98]. Isso permite definir duas classes de formulações para as EDPs: a Euleriana e a Lagrangeana. A Euleriana é a usual, na qual as quantidades do escoamento são funções da posição (x,y,z) e do tempo t. A formulação Lagrangeana é baseada na trajetória da partícula que se move em um campo de escoamento, de modo que os esquemas numéricos sob essa abordagem são desenvolvidos sobre malhas móveis. Tal partícula está sujeita às taxas de variações espacial e temporal. A espacial, de uma localização para outra, representada pela derivada advectiva, e a temporal, para um ponto fixo do escoamento, dada pela derivada temporal. Essas variações são representadas pela derivada Lagrangeana (ou material ou substantiva) [BTC90]. A combinação das duas classes produz uma formulação mista, EulerianaLagrangeana, também conhecida como semi-Lagrangeana. Essa classe concilia a simplicidade da formulação Euleriana com a flexibilidade e a acurácia da Lagrangeana. É uma abordagem importante e popular, pois resulta em esquemas estáveis e com grandes passos no tempo ([CAS90], [STA91] e [COT98]). Porém, um esquema semi-Lagrangeano oferece dificuldades adicionais no paralelismo, como discutido a seguir e, desse modo, optou-se para neste trabalho pela abordagem Euleriana, pela qual as malhas são fixas no tempo. Porém, mesmo não implementando a abordagem semi-Lagrangeana, dada a sua relevância e visando a trabalhos futuros, faz-se a seguir uma discussão sobre suas principais características numéricas e computacionais. Como a parte implícita é incondicionalmente estável, a restrição no passo de tempo é devido somente aos termos explícitos das equações, cujo passo de tempo depende do número de Courant. Para a hidrodinâmica, a difusão horizontal, de advecção (horizontal e vertical) e de Coriolis são aproximados explicitamente. Para o transporte de substâncias a advecção e a difusão horizontais são aproximados explicitamente. Como um esquema semi-Lagrangeano (ESL) é explícito poder-se-iam aproximar todos esses termos empregando essa abordagem. Porém, como a equação do transporte é uma EDP hiperbólica com termo de fonte emitindo altos gradientes de concentração a cada passo de tempo, uma escolha mais 206 apropriada na solução do transporte horizontal é o emprego do método de limitação de fluxo. Nesse caso pode-se usar métodos de integração em subciclos para não restringir o passo de tempo global do esquema de solução. Porém, as ESW não sofrem as restrições da equação do transporte e, portanto, pode-se usar os ESL de modo a conciliar a eficiência computacional com a qualidade numérica na obtenção se sua solução, como feito por [CHE84], [CAS90], [OLI95] e [COT98]. Desse modo e, objetivando uma discussão sistemática sobre os principais atributos numéricos e computacionais para modelos computacionais paralelos, podese considerar que abordagens via ESL devem ser parte integrante das características desses modelos, particularmente daqueles para o escoamento. Uma aproximação via derivada Lagrangeana considera que o escoamento é calculado ao longo da linha de corrente, definida pelo campo de escoamento, cujos pontos em geral não pertencem à malha, já que os números de Courant Cr ≡ Cr ( x , y, z , t ) , definidos por: Crx = Δt ADV _ H u Δx , Cry = Δt ADV _ H v Δy e Crz = Δt ADV _ V w Δz não são números inteiros, sendo que Δt ADV _ H e Δt ADV _ V , Δx , Δy e Δz , u , v e w são: os passos de tempo para as advecções horizontal e vertical, os espaçamentos nas direções X , Y e Z , e os módulos das componentes das velocidades nessas direções, respectivamente. Portanto, deve-se usar processos de interpolação para definir essa aproximação. Além disso, sendo as EDPs não-lineares, as componentes da velocidade não são constantes. Nesse caso a determinação dos números de Courant requer a solução das EDOs u = dx dt , v = dy dt e w = dz dt através do emprego de métodos de integração como, por exemplo, de Euler ou de Runge-Kutta ([CAS90], [ASE90], [CHE93] e [BON98]). Assim, as duas etapas básicas do ESL são integrar a trajetória e definir interpolações upstream ([SMO92] e [BAT85]). A acurácia, a estabilidade e a difusão numérica do esquema numérico dependem dos métodos de interpolação e de integração empregados. Para definir qual método de interpolação pode ser empregado, deve-se considerar a dependência de dados na solução paralela. Os métodos de interpolação podem ser classificados como locais e globais. Nos locais, usa-se somente um número fixo de pontos vizinhos da malha. Nos globais, usase um número de pontos que depende da ordem do sistema. Para essas categorias, foram feitos estudos teóricos e numéricos, e uma análise comparativa entre as interpolações de Hermite cúbica, spline cúbica, Lagrange de quarta ordem, e a Fourier, mostrou que ([LOO92], [MAL96] e [THO96]): 1. Hermite é local, e pode ser difusiva, levando à perda de massa; 2. Spline é global, e conserva a massa melhor que a de Hermite, porém requer CC adicionais e é computacionalmente mais custosa que a de Hermite e a de Lagrange, pois necessita resolver sistemas 3-diagonal; 3. Fourier é global, e fornece melhor acurácia, mas é mais custosa que as interpolações locais, além de requerer CC periódicas; 4. Lagrange é local, e necessita de mais pontos que a Hermite, mas fornece melhor acurácia. Desses métodos é o de melhor relação custo/benefício. Os métodos de interpolação global são desvantajosos em soluções paralelas devido à dependência de dados. Métodos de interpolação local têm a vantagem de que as dependências ficam restritas às fronteiras dos processadores e dependem do tipo da interpolação e da ordem do esquema construído. Pela localidade dos dados e pela sua acurácia, o método de interpolação mais popular para construir o ESL é o Lagrange na 207 sua forma generalizada, obtido através da decomposição dos números de Courant em suas partes inteiras e fracionárias. Assim, na paralelização dos procedimentos de interpolação e do processo de integração, deve-se identificar o estêncil computacional já, que ESLs consistem no cálculo das trajetórias das partículas e nas interpolações nos pontos de malha que circundam o ponto de partida, ocorrendo um problema de disponibilização de dados quando o ponto de origem e o de chegada estão em processadores diferentes. Essa dependência é caracterizada observando que o número de Courant Cr = max Crx ,Cry ,Crz determina o quanto uma partícula pode se deslocar durante ( ) um mesmo passo de tempo e, portanto, determina a quantidade de dados a serem trocados, definindo o tamanho da malha de pontos ([THO96] e [DIN98]). Ou seja, o número de Courant fornece o número de células (ou fração de uma célula) que uma dada partícula é advectada em um passo de tempo. Esquemas Eulerianos explícitos em diferenças finitas requerem que Cr ≤ 1 , significando que uma partícula de fluido não pode se mover mais que a magnitude do comprimento de uma célula dentro do mesmo passo de tempo. E, a quantidade de dados a ser trocada deve-se somente ao estêncil computacional, pois no esquema Euleriano, os valores do campo advectado são definidos pelo estêncil computacional que contém os pontos de malha circunvizinhos. O estêncil define a dependência de dados, ou seja, as necessidades de comunicação dos valores desses pontos depois de cada passo do tempo. Assim, basta construir uma região de sobreposição em cada processador. A solução paralela para o ESL é análoga, devendo-se construir um halo (região sobreposta) que tenha todas as informações requeridas pelo processador no qual é alocada a computação. Mas a escolha de como construir esse halo é o que diferencia a paralelização do ESL do Euleriano, pois no primeiro caso deve-se verificar o quanto as partículas movem-se no campo de escoamento. Isso ocorre pelo fato de que ESL não são restritos pelas condições CFL, significando que o número de Courant do esquema é tal que Cr > 1 . Portanto, o comprimento da trajetória da partícula pode ser maior que o espaçamento da malha. Assim, a dependência de dados do ESL requer um halo de dimensão ⎡Cr ⎤ + 1 , como ⎢ ⎥ discutido em [THO96], [PAG97] e [THO97], dado que depende da velocidade máxima do escoamento cuja informação, porém, pode não estar disponível no atual passo de tempo. Uma solução é usar uma estimativa local para a velocidade máxima para manter regiões sobrepostas de modo dinâmico, que podem variar de tamanho ([THO94], [WOL94], [PAG97] e [RAD98]). Se a integração da trajetória upstream necessitar de um grande halo de sobreposição, dada a estratégia de empregar a velocidade máxima como critério de especificação da dimensão da malha, isso pode limitar o desempenho computacional. Alternativamente a essa abordagem, pode-se determinar as trajetórias das partículas somente até a fronteira do subproblema. Os valores do campo upstream na intersecção de uma trajetória com a fronteira interprocessador são, então, calculados com um algoritmo de interpolação espaço-temporal ([MAL96], [THO97] e [PAG97]). Discussões sobre algumas estruturas de dados utilizadas em ESL podem ser vistas em [WOL94]. Note-se que, apesar da abordagem semi-Lagrangeana não sofrer limitação no passo de tempo, ela introduz certa difusão numérica. Essa viscosidade artificial pode ser calculada explicitamente para mostrar o grau de acurácia do esquema numérico ([CAS90] e [ASE90]). Uma análise da estabilidade do ESL, quando escrito na forma generalizada na qual se consideram pontos que não pertencem à malha, é encontrada em [BAT82] e [BAT85]. 208 Esquemas de integração temporal A presença de termos temporais nas EDPs requer que se empregue um esquema de integração no tempo para obter a solução evolutiva. Esses esquemas de integração temporais podem ser implícitos, explícitos ou semi-implícitos (implícitos-explícitos). O esquema de integração define o tipo de avanço no tempo. Componente horizontal: integração em subciclos Como destacado anteriormente os termos explícitos da ESW podem ser aproximados por esquemas semi-Lagrangeanos com grande eficiência computacional e mantendo uma boa qualidade numérica. Não se implementando neste trabalho essa abordagem, os termos explícitos foram aproximados usando a abordagem upwind para as advecções vertical e horizontal, e DFC para a difusão horizontal. Mas considerandose sua relevância, e que os ESLs serão desenvolvidos em trabalhos que se seguirão à tese, discute-se nessa seção um esquema de integração temporal para a equação de transporte de substâncias. Com isso poder-se-ia ter um passo de tempo global não limitado pelo número de Courant para o problema multifísica (escoamento e transporte). Mas isso somente se o transporte de substâncias puder ser resolvido em passos cuja magnitude não sejam, também, restritos pelo número de Courant. Note-se que a solução da ETM tem estabilidade incondicional somente para o transporte vertical, que não necessita ser calculado com o mesmo passo de tempo do transporte horizontal, que é restrito pelas condições CFL. Então, deve-se desenvolver estratégias que permitam que o transporte horizontal seja resolvido juntamente com o transporte vertical. Uma alternativa é o uso de integração em subciclos, na qual os termos verticais são resolvidos somente uma vez a cada passo de tempo, enquanto o transporte horizontal é resolvido em subpassos de tempo. O resultado é uma melhor eficiência computacional. O esquema em subciclos, como discutido nessa seção, também não foi implementado. Esse esquema foi desenvolvido por Gross ([GRO98] e [GRO99]), no qual a advecção horizontal é calculada empregando N s subpassos e cujo subciclo no passo de tempo é Δts = Δt N s . Nesse esquema assegura-se que a condição de consistência da equação do transporte (ETM), com a equação da continuidade (da ESW) não seja violada. Nesse caso, no esquema de integração temporal em subciclos, o cálculo das substâncias considera inicialmente que: Δts n +θ +θ u(i + 12 , j ,k ) Δz (ni + 12 , j ,k ) − u(ni − 12 , j ,k ) Δz (ni − 12 , j ,k ) Δx e o escalar é advectado na direção X para o passo subciclo n s + 1 como: Δz (i , j ,k ) n + (n s N s ) = Δz (i , j(,ks) n+ n Ns ) − ( ) ) S (i , j ,k ) n + (n s N s ) Δz (i , j ,k ) n + (n s N s ) = S (i , j(,ks) n+ n Ns ) Δz (i , j(,ks) n+ n Ns ) Δts n +θ n + n Ns n+ n N ) +θ u(i + 1 , j ,k ) Δz (ni + 1 , j ,k )S E (i(+ 1s , j ,k)) − u(ni − 1 , j ,k ) Δz (ni − 1 , j ,k )SW (i(− s , js,k ) 1 2 2 2 2 2 2 Δx e, em seqüência, o escalar é obtido através da advecção na direção Y como: − S (i , j(,ks) n + n +1 N s ) ( Δz (i , j(,ks) n + n +1 N s ) = S (i , j ,k ) n + (n s N s ) Δz (i , j ,k ) n + (n s N s ) − n + (n s N s ) n + (n s N s ) Δts n +θ v (i , j + 12 ,k ) Δz (ni , j + 12 ,k )S N (i , j + 12 ,k ) − v (ni ,+θ− 12 ,k ) Δz (ni , j − 12 ,k )S S (i , j − 12 ,k ) j Δy ( ) No início do subciclo, o nível de tempo da ETM é coincidente com o do esquema numérico da EC, que é o nível de tempo n . Porém, como o fluxo vertical necessita ser calculado antes do próximo passo de tempo de modo a atualizar o espaçamento 209 n vertical no tempo n+1, ou seja, toma-se o espaçamento vertical como Δz k +1 , onde a altura obtida no final do esquema de subciclo deve ser definida, portanto, por questão de consistência, como sendo Δz como: n + (N s N s ) . Assim, o transporte vertical é determinado S (n ,+j1,k ) Δz (ni ,+j1,k ) = S (i , j(,k s i ) n+ N Ns ) Δz (i , j(,k s) n+ N Ns ) − Δts w(ni ,+θ,k + 1 )SU − w(ni ,+θ,k − 1 )S L + DV j j 2 2 ( ) onde DV é a difusão vertical. Integração temporal: interpolação Para determinar o esquema de avanço temporal do problema multifísica, onde a solução da hidrodinâmica fornece os dados de entrada para a solução do transporte de substâncias, os passos de tempo para as ESW e para a ETM, devem estar relacionados entre si. Essa questão não pode ser desconsiderada, dado que os passos de tempo não são, necessariamente, um múltiplo de outro. Nessa situação a alternativa é empregar procedimentos de interpolação temporal. Se as componentes da velocidade nos tempos t H 1 e t H 2 representam os finais de sucessivos passos de tempo na solução da ESW, pode-se obter as componentes de velocidades (ou níveis de água) em tempos intermediários de modo a se obter os valores de entrada para a ETM. Para isso, emprega-se uma fórmula de interpolação análoga a mostrada na fig. 3.16 que é usada para obter o refinamento espacial. Especificamente, as velocidades no tempo t tal que t H 1 ≤ t ≤ t H 2 podem ser estimadas como em [ZHE95] e [ZHE99]: v (t ) = v (t H 1 ) (1 − αt ) + v (t H 2 ) αt u (t ) = u (t H 1 ) (1 − αt ) + u (t H 2 ) αt onde αt = t − t H 1 t H 2 − t H 1 é o fator de interpolação linear no tempo. A partir dessas considerações, e especificamente no caso deste trabalho, implementou-se o procedimento de interpolação espaço-temporal para a solução do problema multifísica (veja a seção 3.6.1), de modo que se definiu o fator temporal do refinamento como ΔtT = ⎡tT − (t H − Δt H ) ⎤ Δt H , ⎣ ⎦ onde Δt H e ΔtT são, respectivamente, os passos de tempo usados na solução da hidrodinâmica e do transporte escalar, e tT o nível de tempo da solução do transporte. Assim, enquanto tT satisfazer a condição Δt ETM < Δt ESW , as velocidades horizontais, por exemplo para a direção X, podem ser calculadas temporalmente usando as expressões: + U L = ΔU n +θ − U (n − 1 , j ) ΔtT onde ΔU n +θ = U (n − 1 , j ) + U (n − 1 , j ) i 2 i 12 i 2 UR ( = ( ΔU n +θ − U (n + 1 , j i 2 ) ) ) Δt T + onde ΔU n +θ = U (n + 1 , j ) + U (n + 1 , j ) i 12 i 2 e, em que, ΔU =U R − U L , onde ΔU é a diferença nas velocidades horizontais (componente U) na malha original, sendo, respectivamente, U R e U L as velocidades à direita e à esquerda na célula como na malha de Arakawa (fig. 3.1), e R , é o refinamento adotado. O caso para a componente V (e demais variáveis dependentes) é análogo. Na seção 3.6.1 faz-se uma discussão adicional a respeito desses procedimentos de interpolação, particularmente aquele de interpolação espacial, cujo algoritmo é como mostrado na fig. 3.16. Assim, o esquema de avanço no tempo do transporte só pode ocorrer após ser completado o passo de tempo da hidrodinâmica. Para cumprir essa exigência, requer- 210 se que o nível de tempo da hidrodinâmica seja maior que aquele do transporte escalar, de modo que se assegura que as componentes de velocidades (solução das ESW) estarão disponíveis para a solução da ETM, quando da execução do seu esquema de integração espaço-temporal. Além disso, visando a minimizar o aparecimento de oscilações e dispersão numérica, pode-se exigir que em modelos explícitos, o passo de tempo da solução do transporte seja menor que o passo da solução do escoamento. Nesse caso, um passo de tempo da hidrodinâmica pode corresponder a vários passos do transporte de substâncias. Nesse caso, a estratégia de subpassos no tempo também pode ser empregada, de modo a definir o passo de tempo global como sendo a soma dos subpassos de tempo. Em qualquer situação deve-se considerar as restrições dos passos de tempo das equações envolvidas na simulação. Especificamente, no caso de uma solução explícita para o transporte, o passo de tempo é determinado pelo número de Courant, escrevendo-o como Δt ≤ Cr Δx u . Assim, pode-se mostrar [ZHE95] que, em geral, os passos de tempos para a advecção e para a difusão de modelos de transporte multidimensional explícitos são dados, respectivamente, por: ( ) ⎛ Δx Δy Δz ⎞ εy ⎛ εx ε ⎞ + + z ⎟ Δt ≤ Cr min ⎜ , , ⎟ e Δt ≤ 0, 5 ⎜ ⎜ u v w⎟ ⎝ Δx Δy Δz ⎠ ⎝ ⎠ −1 Quando a solução global é obtida através da combinação da solução de esquemas numéricos específicos para cada termo constituinte das EDPs (ou EIs), como o caso deste trabalho, o passo de tempo global é restrito pelo menor dos passos de um particular esquema de solução para um termo constituinte da equação. Por esse motivo deve-se analisar a combinação dessas soluções e empregar abordagens, como interpolação e subciclos, para melhorar o passo de tempo global do esquema. Uma discussão mais detalhada para o passo de tempo no transporte de substâncias que envolvem reações químicas e seus termos de fonte e de decaimento pode ser vista em [ZHE95]. Observe-se que a mesma idéia usada no esquema de interpolação temporal para o problema multifísica pode ser empregada para obter soluções para os problemas que tenham distintas atividades nos fenômenos simulados. Considere-se, por exemplo, uma simulação computacional de eventos que tenham períodos com mais atividades espaciais como, por exemplo, aqueles que envolvem a maré meteorológica, ciclos de ventos, etc., e que tenham em determinados períodos menos atividades, ou seja, sejam praticamente permanentes. Nesses casos, se as soluções dos fenômenos envolvidos permitir, pode-se aumentar o passo de tempo em alguns períodos, e diminuir o passo de tempo em outros períodos. Com isso pode-se melhorar a eficiência computacional e a estabilidade da solução. Integração temporal: método ADI A técnica de particionamento do tempo (time-sppliting) mais popular é a Alternating Direction Implicit (ADI), desenvolvida originalmente por Peaceman e Rachford [FLE88a]. Nessa abordagem, o operador implícito multidimensional é reduzido a operadores unidimensionais, que obtêm, a cada subpasso de tempo, a sua solução, que, combinada com as obtidas nos outros subpassos, gera a solução global. Por exemplo, a aplicação do método ADI decompõe um sistema de equação linear tipo 5-diagonal de dimensão n × n , em n sistemas de equações lineares 3-diagonal de n equações com n incógnitas no primeiro nível e no segundo nível de tempo. Essa abordagem é, ainda, popular, uma vez que os sistemas de equações lineares 3-diagonal resultantes podem ser, então, resolvidos pelo algoritmo de Thomas, que é 211 um método direto com complexidade computacional da O(N) (seqüencial). O algoritmo de Thomas resolve as matrizes em duas varreduras. Na primeira (forward), transforma a matriz, eliminando a diagonal inferior e normalizando a diagonal principal. Na segunda varredura (backward), obtém a solução do sistema de equações através de retro-substituição. Note-se que o algoritmo de Thomas é empregado neste trabalho não somente para resolver os esquemas numéricos 2D, mas também para resolver os milhares de sistemas de equações lineares 3-diagonal da ETM 3D, como discutido no capítulo 7. O método ADI é, portanto, um método semi-implícito por construção, que resolve implicitamente em uma das direções, enquanto a outra direção é explícita. Assim, o método permite o uso de um passo de tempo superior àquele de uma abordagem puramente explícita. Contudo, não obstante a eficiência do algoritmo de Thomas, o emprego da estratégia ADI pode ser uma fonte de inacurácia, conhecida na literatura técnica como efeito ADI, que surge na solução de problemas com geometria e/ou batimetria complexas que alteram o perfil de velocidades. Então, quando esses casos ocorrem, as duas “meias soluções” construídas pelo método ADI não geram a mesma solução do esquema completo ([STE86] e [CHE93]). Mas essa questão não foi explorada neste trabalho, onde se empregou o método ADI para se obter soluções para os modelos 2D. 212 Anexo 2 Métricas para avaliar a qualidade numérica Soluções numéricas são obrigatoriamente aproximadas relativamente às soluções exatas. Essas soluções têm, além dos erros que podem, eventualmente, ser introduzidos na etapa de programação, três tipos de erros que surgem de forma sistemática ([FER97] e [CLA94]): 1. erros de modelagem: que são os erros que surgem da diferença entre o escoamento real e a solução exata do modelo matemático, que quase sempre é aproximado; 2. erros de discretização: que são aqueles de aproximação ou de truncamento, e que surgem da diferença entre a solução exata das equações na forma analítica, e a solução exata do sistema de equações algébricas obtida quando da discretização das equações analíticas; 3. erros de arredondamento: que são os erros introduzidos nos cálculos que são constantemente arredondados quando do uso de aritmética de ponto flutuante. Erros de modelagem dependem das suposições que são feitas quando se obtêm as equações, ou na definição do domínio do problema, ou através da simplificação das condições iniciais e/ou de contorno. Esses erros não são conhecidos a priori, sendo que somente podem ser avaliados quando comparados com dados experimentalmente precisos ou com dados obtidos a partir de modelos mais precisos. Erros de discretização são os erros produzidos quando se substitui qualquer processo contínuo ou infinito por um discreto ou finito. As aproximações geram erros que decrescem quando a malha é refinada. Porém, para uma dada malha, existem métodos de discretização de mesma ordem que podem produzir erros que diferem muito na ordem de magnitude [FER97]. A acurácia de um método ou esquema de aproximação é dada pela ordem do truncamento da aproximação espaço-temporal. Os erros de arredondamento produzidos pelo computador são aqueles em que o arredondamento é feito devido à aritmética de ponto-flutuante. Cláudio [CLA94] faz uma esclarecedora discussão sobre questões imprescindíveis do cálculo numérico computacional, como sistema de ponto-flutuante, tipos de arredondamentos, erros e dígitos significativos exatos e precisão (número de dígitos da mantissa) e exatidão (qualidade desses dígitos) de máquinas digitais. Neste trabalho, são empregadas EDPs que são casos particulares da equação de Navier-Stokes e que se mostram modelos acurados na representação do escoamento real. Erros de discretização são estudados quando da construção das aproximações para as EDPs na forma discreta, onde se busca construir esquemas numéricos que tenham acurácia temporal e espacial de, pelo menos, segunda ordem dado que essa escolha fornece, em geral, um bom equilíbrio entre a acurácia e a eficiência computacional de modelos de escoamento e de transporte escalar. Pode-se analisar e avaliar a qualidade da aproximação do modelo discreto e os erros de arredondamento gerados pela solução desse modelo discreto, através do emprego de métricas apropriadas. Essas métricas verificam a conservatividade de determinadas propriedades físicas e/ou numéricas do esquema numérico e, em geral, consideram a diferença entre o valor arredondado e o valor exato. Assim, se ϕi* e ϕie são, respectivamente, a solução numérica e a solução discreta exata, define-se o erro absoluto E A como E A = ϕi* − ϕie e o erro relativo E R como E R = ϕi* − ϕie ϕi* , se ϕi* ≠ 0 , ou como E R = ϕi* − ϕie ϕie , se ϕie ≠ 0 . Erros relativos são mais apropriados já que é mais significativo saber se o erro relativo é pequeno ou grande comparando-o com, por exemplo, 1,0 pois nesse caso E R = 1,0 significa que o erro absoluto é da mesma magnitude que o número que está sendo aproximado 213 [CLA94]. Por exemplo, se o erro relativo de ϕi* é da O 10 −5 , diz-se que ϕi* tem precisão ou acurácia de cinco dígitos decimais. Erros entre escalares são mensurados através do emprego de expressões para erros relativos e/ou absolutos como acima definidos. No caso de vetores e matrizes é necessário estender esse conceito para medir o tamanho ou a norma de um vetor ou matriz ([GOL96] e [AXE96]). As normas mais populares para mensurar os erros são L1 , ( ) L2 e a L ∞ . A análise dos resultados do modelo podem ser feitas, portanto, através do emprego de métricas específicas que visam a avaliar a qualidade de algoritmos numéricos, sobretudo aqueles que são particularmente desenvolvidos para avaliar esquemas advectivos. Se ϕi* e ϕie são, respectivamente, a solução numérica e a solução exata em malhas equiespaçadas, algumas das métricas mais empregadas são: 1. razão do pico (peak ratio): medida da preservação do pico (melhor quando 1.0). 1≤ i ≤ N x max (ϕ i* ) max (ϕ ie ) 1≤ i ≤ N x 2. conhecimento para a razão do pico (background to peak ratio): medida dos ripples (oscilações) introduzidos por esquemas não monotônicos. 1≤ i ≤ N x min (ϕi* ) max (ϕie ) 1≤ i ≤ N x 3. razão de massa (mass ratio): medida da característica da conservação da massa. ∑ 4. Nx i =1 ϕ* i =1 i * 2 i Nx ∑ Nx i =1 ϕ ie e 2 i razão de distribuição (distribution ratio): medida da retenção da forma (shape) (melhor quando 1.0). ∑ (ϕ ) ∑ (ϕ ) Nx i =1 5. erro absoluto médio (averange absolute error): medida da diferença absoluta (melhor quando 0,0). 1 N 6. ∑ Nx Nx i =1 ϕi* − ϕie erro da raiz média quadrada (root-mean square error): medida da distribuição do erro (melhor quando 0,0). 1 N 7. norma L1 (do erro relativo): ∑ (ϕ i =1 N * i − ϕie ϕie ) 2 L1 = ∑i =x1 ϕi* − ϕie 8. norma L2 (Euclidiana): 2 N L2 = ⎡ ∑i =x1 (ϕi* − ϕie ) ⎤ ⎢ ⎥ ⎣ ⎦ 1 2 ∑ Nx i =1 ϕie 1 2 ⎡ N x (ϕ e )2 ⎤ ⎢ ∑i =1 i ⎥ ⎣ ⎦ max ϕ ie 9. norma L ∞ (do máximo): L ∞ = max ϕ i* − ϕ ie 1≤ i ≤ N x 1≤ i ≤ N x As seis primeiras métricas estão discutidas em “Numerical Transport Algorithms for the Community Multiscale Air Quality (CMAQ): Chemical Transport Model in 214 Generalized Coordinates” [BYU99]. As três últimas em “A Semi-Implicit Method for Vertical Transport in Multidimensional Models” de [GRO98]. Para empregar essas métricas, considera-se como benchmark um modelo matemático 1D ou 2D cuja solução analítica é conhecida. O emprego de tais métricas, comparando a solução numérica com a solução analítica desses simples modelos, permite a verificação de qual o comportamento da solução de modelos mais complexos que pode ser visto como expressões multidimensionais desses modelos. Exemplos de modelos que têm solução analítica podem ser vistos em [FLE88a], [BOT89], [KIM94] e [BAP95]. Porém, para modelos simples como o da equação da advecção pura, a solução explícita exata Sin +1 ( ) e pode ser obtida considerando-se como solução aquela obtida através da expressão Sin +1 e e ( FR )i −1 ≡ ( FL )i , e λ = ν ( ) e = (Sin ) − λ ( FR − FL ) , onde (Sin ) é uma determinada e e e concentração inicial, os fluxos nas faces são massa conservativos de modo que Δh Δt é o número de Courant. Assumindo que a solução numérica exata é completamente massa conservativa, é possível, então, comparar essa solução com aquela fornecida pela solução do modelo numérico implementado. Essa abordagem é a empregada em [GRO99] e é a que se considera neste trabalho. No desenvolvimento de modelos operacionais, não se pode deixar de exigir sua verificação, calibração e validação. A verificação é um processo qualitativo de testar a capacidade do modelo para simular casos simples e de reagir a alterações de parâmetros. A calibração tem por objetivo a escolha dos parâmetros que melhor reproduzem um conjunto de dados. A validação objetiva verificar a capacidade de previsão do modelo, simulando as condições de funcionamento com base em parâmetros calibrados com conjuntos de dados independentes dos usados na calibração. Somente após atendidos os requisitos de verificação, calibração e validação, os modelos podem ser efetivamente usados como ferramenta de pesquisa e de simulação [CHE93]. Os modelos aqui desenvolvidos são aplicados à simulação dos eventos do Lago Guaíba. Para a realização dessa simulação, os dados da geometria do modelo são obtidos em [EAS98]. Porém alguns dos dados não estão disponíveis (vento, regime hídrico, etc;) e, portanto, esses dados são fictícios. Sendo assim, os modelos não estão calibrados e validados e ainda não podem ser usados como modelos operacionais. Nesse caso a ênfase foi, neste trabalho, dada à verificação das soluções nos seus aspectos numéricos e computacionais. 215 Anexo 3 Métricas para avaliar o desempenho da solução paralela A decisão pela escolha desta ou daquela estratégia para construção de esquemas numéricos e na paralelização de aplicações é, muitas vezes, baseada na experiência pessoal e na literatura técnica. Portanto são necessárias métricas para avaliar a qualidade numérica e o desempenho do modelo resultante. No caso do desempenho de aplicações paralelizadas, algumas métricas experimentais empregadas são ([BAK96], [TOL97] e [DIN98]): tempo total de execução: que é empregado na comparação do desempenho de 1. dois algoritmos agindo sobre o mesmo conjunto de dados. Três tempos são importantes na execução de um algoritmo como deste trabalho: o tempo para calcular todo o pré-condicionamento e executar as instruções até começar a primeira iteração; o tempo de ciclos, no qual cada ciclo é definido como o número total de iterações necessárias para obter a precisão desejada; e o tempo de comunicação, que é o tempo gasto entre as comunicações coletivas do algoritmo para cada ciclo. Note-se que em execuções em paralelo o tempo a ser considerado é aquele entre o ínicio do primeiro processo e o término do último processo; speedup (aceleração): o speedup relativo realizado por um algoritmo é definido 2. como S p (N ) = T1(N ) T p (N ) , onde N é o tamanho da entrada; p, o número de processadores; T1(N ) e T p (N ) são, respectivamente, o tempo de execução do algoritmo paralelo com 1 e com p processadores. Então, S p (N ) mede o fator de speedup obtido pelo algoritmo quando p processadores são utilizados. A comunicação, a insuficiência da concorrência e o overhead ocorrido na sincronização das atividades dos processadores são os principais fatores da diminuição do speedup em um algoritmo; 3. eficiência: é definida, para um algoritmo paralelo, por E p (N ) = T1(N ) p.T p (N ) , isto é, E p (N ) = S p (N ) p . Assim, a E p (N ) fornece uma indicação da efetiva utilização de p processadores relativas a um dado algoritmo. Se E p (N ) → 1 , o algoritmo é executado com máxima eficiência. Tais métricas devem considerar a média de determinado número de experimentos, descartados os piores e os melhores resultados, de modo a evitar que resultados anormais influenciem as medidas tomadas. Note-se, porém, que a avaliação do desempenho de um algoritmo paralelo pode indicar a eficiência de tal algoritmo, mas não pode mostrar precisamente quais os principais fatores (insuficiência da concorrência, overhead na sincronização dos processadores, comunicação excessiva) que limitam essa eficiência. Em aplicações como a deste trabalho, é importante que o código seja otimizado, pois as simulações envolvem a solução de milhares de sistemas de equações. Note-se que, sob o ponto de vista prático-computacional, outras variáveis como, por exemplo, o tempo de latência, as estruturas de dados, o tempo de comunicação entre nodos, o tempo gasto na comunicação global, entre outras, são determinantes na escalabilidade da solução paralela. 216 Anexo 4 Funções de restrição de fluxo As tab. A4.1 a A4.45 mostram os resultados obtidos quando da aplicação das funções de restrição de fluxo 1. a 32. às funções de interpolação de fluxo para a advecção horizontal (6.8), empregando uma conhecida função teste, a “onda quadrada” (square wave), como discutido na seção 5.2.1. Todos os tempos de CPU apresentados foram normalizados com respeito ao esquema upwind fluxo numérico. O esquema mais caro foi o Kappa-DPL que custou cerca de 9% a mais que o upwind, seguido pelo esquema USR- Kappa, que custou cerca de 8,4% a mais de tempo de CPU que o upwind. Note-se, porém, que a abordagem fluxo numérico que foi a empregada para obter a solução da ETM3D, necessita de uma estrutura de dados e o cálculo prévio de várias expressões como, por exemplo, os números de Courant locais, os números de Péclet locais, as funções monitoras, etc., tornando o esquema upwind computacionalmente custoso, apesar de não necessitar dessas expressões. Esta é uma desvantagem da abordagem unificada, discutida na seção 5.1.4, pois um esquema upwind de primeira ordem, como aquele das seções 6.2 e 6.3 é de 3 a 5 vezes menos custoso que um esquema via limitação de fluxo como, por exemplo, o Roe-Superbee. Os resultados mostrados nas tab. A4.1 a A4.8 foram os obtidos considerando a onda quadrada de perfil 1 × 10 × 10 , onde a concentração inicial é S 0 = 1, 0 número de Courant é Cr = 0,25 . TABELA A4.1 - Resultados para o teste com onda quadrada para Cr=0,25 Upwind ChakravanSweby Minmod métrica × esquema thy-Osher massa total (exata) 100,000000 100,000000 100,000000 100,000000 massa total (numérica) 99,9492492 99,9999313 99,9999237 99,9998550 razão do pico (RP) 0,5878480 0,9891190 0,9999655 0,9493801 conhecimento para a RP 0,0000000 -0,0000001 -0,0000002 -0,0000001 razão de massa 0,9995630 0,9999990 0,9999991 0,9999975 |1 - razão de massa| 0,0004369 0,0000009 0,0000008 0,0000024 razão de distribuição 0,4113282 0,8493388 0,9191976 0,7751510 máximo (numérico) 0,5878480 0,9891190 0,9999655 0,9493801 mínimo (numérico) 0,0000000 -0,0000001 -0,0000002 -0,0000001 erro absoluto médio 0,0105681 0,0030464 0,0019725 0,0036551 erro da RMQ 0,2606461 0,1478916 0,1054213 0,1672280 norma L1 0,9140417 0,2639966 0,1709055 0,3169290 norma L2 0,5782939 0,2834283 0,2403581 0,2741262 0,6653625 0,5091049 0,4528807 0,5024021 norma L∞ tempo total (normalizado) 1,0000 1,0474 1,0574 1,0417 TABELA A4.2 - Resultados para o teste com onda quadrada para Cr=0,25 Kappa-PSI R-Kappa Albada HQUICK métrica × esquema massa total (exata) 100,000000 100,000000 100,000000 100,000000 massa total (numérica) 99,9999389 99,9998855 99,9998626 99,9998779 razão do pico (RP) 0,9703954 0,9989491 0,9798042 0,6765065 conhecimento para a RP -0,0000001 -0,0000001 -0,0000001 -0,0000000 razão de massa 0,9999990 0,9999997 0,9999996 0,9999355 |1 - razão de massa| 0,0000009 0,0000002 0,0000003 0,0000644 razão de distribuição 0,8052187 0,8890697 0,8375179 0,4772941 máximo (numérico) 0,9703954 0,9989491 0,9798042 0,6765065 mínimo (numérico) -0,0000001 -0,0000001 -0,0000001 -0,0000000 erro absoluto médio 0,0031174 0,0023812 0,0028122 0,0090981 217 erro da RMQ norma L1 norma L2 norma L∞ tempo total (normalizado) 0,1539266 0,2702327 0,2489435 0,4917238 1,0581 0,1242540 0,2065113 0,2517338 0,4806831 1,0734 0,1461791 0,2440166 0,2442347 0,4694606 1,0502 0,1210170 0,2102026 0,2591479 0,4984738 1,0481 TABELA A4.3 - Resultados para o teste com onda quadrada para Cr=0,25 23A 23B Hundsdorfer métrica × esquema massa total (exata) massa total (numérica) razão do pico (RP) conhecimento para a RP razão de massa |1 - razão de massa| razão de distribuição máximo (numérico) mínimo (numérico) erro absoluto médio erro da RMQ norma L1 norma L2 norma L∞ tempo total (normalizado) 100,000000 99,9998550 0,9493801 -0,0000001 0,9999975 0,0000024 0,7751510 0,9493801 -0,0000001 0,0036551 0,1672280 0,3161290 0,2741263 0,5024021 1,0692 100,000000 99,9999847 0,9762439 -0,0000001 0,9999987 0,0000012 0,8324185 0,9762439 -0,0000001 0,0031013 0,1529972 0,2689443 0,2697800 0,4744279 1,0426 100,000000 99,9999008 0,9576030 -0,0000001 0,9999990 0,0000009 0,8017629 0,9576030 -0,0000001 0,0035008 0,1621616 0,3034467 0,2810633 0,4862536 1,0625 Kappa -MPL2 100,000000 99,9998550 0,9493801 -0,0000001 0,9999975 0,0000024 0,7751510 0,9493801 -0,0000001 0,0036551 0,1672280 0,3169290 0,2741263 0,5024021 1,0492 TABELA A4.4 - Resultados para o teste com onda quadrada para Cr=0,25 RoeOspre CHARM ISNAS métrica × esquema Superbee massa total (exata) 100,000000 100,000000 100,000000 100,000000 massa total (numérica) 99,9998550 99,9999008 99,9998855 99,9998855 razão do pico (RP) 0,9493801 0,9961363 0,9972438 0,9972438 conhecimento para a RP -0,0000001 -0,0000001 -0,0000001 -0,0000001 razão de massa 0,9999975 0,9999993 0,9999988 0,9999988 |1 - razão de massa| 0,0000024 0,0000006 0,0000011 0,0000011 razão de distribuição 0,7751510 0,8738129 0,8766015 0,8766015 máximo (numérico) 0,9493801 0,9961363 0,9972438 0,9972438 mínimo (numérico) -0,0000001 -0,0000001 -0,0000001 -0,0000001 erro absoluto médio 0,0036551 0,0023776 0,0026289 0,0026289 erro da RMQ 0,1672280 0,1302017 0,1138142 0,1356017 norma L1 0,3169290 0,2059893 0,2273756 0,2278175 norma L2 0,2741263 0,2346026 0,2658071 0,2658083 0,5024021 0,4556998 0,4998423 0,4998427 norma L∞ tempo total (normalizado) 1,0752 1,0611 1,0469 1,0436 TABELA A4.5 - Resultados para o teste com onda quadrada para Cr=0,25 MUSCL SMART Koren Davis métrica × esquema massa total (exata) 100,000000 100,000000 100,000000 100,000000 massa total (numérica) 99,9999542 99,9999084 100,000007 100,000015 razão do pico (RP) 1,0000021 1,0000015 1,00000190 0,9944755 conhecimento para a RP -0,0000002 -0,0000002 -0,0000002 -0,0000001 razão de massa 0,9999992 0,9999997 1,0000000 1,0000004 |1 - razão de massa| 0,0000007 0,0000002 0,0000000 0,0000004 razão de distribuição 0,9136298 0,9223230 0,9132687 0,8274675 máximo (numérico) 1,0000021 1,0000015 1,0000019 0,9944755 mínimo (numérico) -0,0000002 -0,0000002 -0,0000002 -0,0000001 218 erro absoluto médio erro da RMQ norma L1 norma L2 norma L∞ tempo total (normalizado) 0,0020107 0,0985155 0,1741387 0,2382822 0,4596851 1,0502 0,0020330 0,0971163 0,1759156 0,2494198 0,4964368 1,0780 0,0020438 0,0999777 0,1767740 0,2405929 0,4677534 1,0460 0,0028192 0,1280482 0,2438331 0,2446223 0,5160988 1,0763 TABELA A4.6 - Resultados para o teste com onda quadrada para Cr=0,25 UMIST van Leer HCUS Kappa-USR métrica × esquema massa total (exata) 100,000000 100,000000 100,000000 100,000000 massa total (numérica) 99,9999771 99, 9999237 99,9998703 99,9999847 razão do pico (RP) 0,9999982 0,9998152 0,9996956 1,0000025 conhecimento para a RP -0,0000001 -0,0000002 -0,0000001 -0,0000002 razão de massa 0,9999994 1,0000000 0,9999990 0,9999995 |1 - razão de massa| 0,0000005 0,0000000 0,0000009 0,0000004 razão de distribuição 0,8898882 0,8912259 0,8951180 0,9096163 máximo (numérico) 0,9999982 0,9998152 0,9996956 1,0000025 mínimo (numérico) -0,0000001 -0,0000002 -0,0000001 -0,0000002 erro absoluto médio 0,0022301 0,0022000 0,0023073 0,0020346 erro da RMQ 0,1048088 0,0966844 0,1190534 0,0978036 norma L1 0,1930242 0,1902788 0,1998395 0,1761504 norma L2 0,2370105 0,2341371 0,2498478 0,2367933 0,4584135 0,4473416 0,4809865 0,4541757 norma L∞ tempo total (normalizado) 1,0523 1,0710 1,0427 1,0836 TABELA A4.7 - Resultados para o teste com onda quadrada para Cr=0,25 KappaMC KappaKappamétrica × esquema MPL1 USPL DPL massa total (exata) 100,000000 100,000000 100,000000 100,000000 massa total (numérica) 100,000007 99,9999542 99,9999160 100,000091 razão do pico (RP) 0,9152643 1,0000021 1,0000026 1,5426653 conhecimento para a RP -0,0000000 -0,0000002 -0,0000002 -0,3802250 razão de massa 0,9999996 0,9999992 0,9999991 1,0000008 |1 - razão de massa| 0,0000003 0,0000007 0,0000008 0,0000008 razão de distribuição 0,6775767 0,9136298 0,9358098 1,2563618 máximo (numérico) 0,9152643 1,0000021 1,0000026 1,5426653 mínimo (numérico) -0,0000000 -0,0000002 -0,0000002 -0,3802250 erro absoluto médio 0,0052775 0,0020107 0,0019545 0,0046004 erro da RMQ 0,1658350 0,0985155 0,0940280 2,1725196 norma L1 0,4568598 0,1741387 0,1691091 0,3978886 norma L2 0,3593263 0,2382822 0,2567310 0,4076789 0,6133803 0,4596851 0,5023499 0,7822408 norma L∞ tempo total (normalizado) 1,0545 1,0609 1,0665 1,0901 TABELA A4.8 - Resultados para o teste com onda quadrada para Cr=0,25 KappaKappaKappaKappamétrica × esquema Fromm Linear Simétrico QUICK massa total (exata) 100,000000 100,000000 100,000000 100,000000 massa total (numérica) 99,9974594 99,9999542 99,9903640 100,000007 razão do pico (RP) 1,7598128 1,5806337 1,7960346 1,2964500 conhecimento para a RP -0,7200535 -0,4993159 -0,7538137 -0,2477011 razão de massa 0,9999772 1,0000000 0,9998646 0,9999991 |1 - razão de massa| 0,0000227 0,0000000 0,0001353 0,0000008 razão de distribuição 1,6076314 1,4927718 1,4873795 1,1825431 máximo (numérico) 1,7598128 1,5806337 1,7960346 1,2964500 219 mínimo (numérico) erro absoluto médio erro da RMQ norma L1 norma L2 norma L∞ tempo total (normalizado) -0,7200535 0,0047214 0,1308078 0,4086001 0,4302226 0,7598128 1,0427 -0,4993159 0,0044436 0,1237403 0,3847036 0,3764522 0,5806337 1,0542 -0,7538134 0,0061855 0,2708967 0,5380776 0,5117478 0,7960346 1,0568 -0,2477011 0,0030853 0,1205898 0,2669841 0,2790092 0,4957540 1,0464 A abordagem fluxo numérico conserva bem a massa total para quase todos os esquemas de solução desenvolvidos e implementados. Nesse aspecto o pior esquema foi o upwind que perdeu aproximadamente 0,051% de massa para um tempo total de 50s, o que é significativo. Todos os esquemas não lineares, exceto o K-DPL e o HQUICK, preservam bem o pico, indicando que a concentração máxima não é aumentada ou diminuída. Nesse aspecto destacam-se os esquemas de Sweby, o MUSCL, o SMART, o Koren, o UMIST, o MC, o K-USR e o USPL. Já o esquema upwind, que é linear de primeira ordem, e todos os esquemas lineares de segunda ordem da tab. A4.8, não preservaram o pico. Enquanto os esquemas upwind e HQUICK suavizaram o perfil em 41,1%, 22,1% e 32,34%, respectivamente, os esquemas K- Fromm, K-Linear, K-Linear simétrico e KQUICK adicionaram ao pico 75,98%, 58,06%, 79,60% e 29,65% respectivamente. O esquema K-DPL adicionou ao pico 54,27%, mas esse esquema só é passível de ser empregado com certa difusão. O conhecimento para a razão do pico mede as oscilações introduzidas por esquemas não monotônicos. Os resultados da aplicação dessa métrica aos esquemas mostrados nas tab. A4.1 a A4.8, exceto a função K-DPL, indicam que esses esquemas não introduzem oscilações. Note-se, porém, que devido à aritmética de ponto flutuante e/ou as condições de contorno estabelecidas na malha de teste, as funções limitadoras de fluxo não evitam completamente o aparecimentos de valores negativos. Já os resultados dos esquemas lineares de alta ordem tabelados em A4.8 mostram que eles introduzem fortes oscilações. Isso ocorre devido a perda de simetria do esquema numérico e/ou a inexistência da propriedade transportativa, como visto no anexo 1. A razão de distribuição indica o comportamento do formato original do perfil de concentração. Os resultados dos esquemas analisados nas tab. A4.1 a A4.7 mostram que o formado do perfil é retido. As exceções são o esquema upwind, e os esquemas Minmod, Hundsdorfer, K-MPL2, Roe-Superbee, MPL1 e o K-DPL que também mantém o formato do pulso onda quadrada, mas já não tão bem quanto os demais. O esquema HQUICK é o pior dentre os não lineares, distorcendo muito o perfil da concentração de substâncias. Todos os esquemas lineares da tab. A4.8 não preservam o pulso. As métricas dos erros absoluto médio e da raiz média quadrada, e as três normas refletem as análises anteriores mostrando que as soluções obtidas com o emprego de esquemas não lineares têm um comportamento muito melhor que aqueles obtidos por esquemas lineares. Para dar continuidade na discussão e análise da influência do campo de velocidades na qualidade dos esquemas explícitos para a advecção horizontal, fez-se outros experimentos numéricos, como em [ZIJ95] e [ZIJ97], considerando o número de Courant Cr = 0,40 . Note-se, porém, que todos os 32 esquemas são estáveis, mas cada qual tem uma determinada condição de estabilidade, dada pelo número de Courant. Assim, alguns dos esquemas não lineares testados, como o SMART e o K-USPL, somente oferecem bons resultados para Cr = 0,33 . As tab. A4.9 a A4.14, e A4.15, mostram os resultados dos experimentos para os números de Courant Cr = 0,40 e Cr = 0,33 , que foram obtidos para a onda quadrada com o perfil anterior, porém com o campo de velocidades constante 220 ( u;v ) = ( 0, 40m /s; 0, 0m /s ) e ( u;v ) = ( 0, 33m /s; 0, 0m /s ) , respectivamente. Nesses casos, a distância de advecção é 80Δx e 66Δx , respectivamente, e são obtidas depois de 200 passos de tempo. Nesses experimentos empregou-se uma malha de 150 × 150 pontos. TABELA A4.9 - Resultados para o teste com onda quadrada para Cr=0,40 Upwind ChakravanSweby Minmod métrica × esquema thy-Osher massa total (exata) 100,000000 100,000000 100,000000 100,000000 massa total (numérica) 99,9996944 99,999885 99,999916 99,999877 razão do pico (RP) 0,5323314 0,9986966 1,0000025 0,9818968 conhecimento para a RP 0,0000000 -0,0000002 -0,0000003 -0,0000001 razão de massa 0,9999978 0,9999987 0,9999990 0,9999980 |1 – razão de massa| 0,0000021 0,0000012 0,0000009 0,0000019 razão de distribuição 0,3681417 0,8983882 0,9369926 0,8479105 máximo (numérico) 0,5323314 0,9986966 1,0000025 0,9818968 mínimo (numérico) 0,0000000 -0,0000002 -0,0000003 -0,0000001 erro absoluto médio 0,0096695 0,0049216 0,0049245 0,0049216 erro da RMQ 18,0546593 0,0962203 0,0912286 0,1068887 norma L1 1,9634893 0,9993949 0,9999728 0,9993994 norma L2 1,1556292 0,9478329 0,9679837 0,9208202 0,9985898 1,0000001 1,0000025 1,0000001 norma L∞ tempo total (normalizado) 1,0000 1,0593 1,0672 1,0602 TABELA A4.10 - Resultados para o teste com onda quadrada para Cr=0,40 Kappa-PSI R-Kappa Albada Hundsdorfer métrica × esquema massa total (exata) 100,000000 100,000000 100,000000 100,000000 massa total (numérica) 99,999893 99,9999237 99,999839 99,999877 razão do pico (RP) 0,9923493 0,9999930 0,9945154 0,9818968 conhecimento para a RP -0,0000002 -0,0000002 -0,0000002 -0,0000001 razão de massa 0,9999982 0,9999989 0,9999984 0,9999980 |1 - razão de massa| 0,0000017 0,0000010 0,0000015 0,0000019 razão de distribuição 0,8749243 0,9174069 0,8867371 0,8479105 máximo (numérico) 0,9923493 0,9999930 0,9945154 0,9818968 mínimo (numérico) -0,0000002 -0,0000002 -0,0000002 -0,0000001 erro absoluto médio 0,0049217 0,0049238 0,0049244 0,0049216 erro da RMQ 0,1014520 0,0928339 0,1125004 0,1068887 norma L1 0,9994016 0,9998377 0,9999647 0,9993994 norma L2 0,9353734 0,9578136 0,9416672 0,9208202 1,0000002 1,0000002 1,0000002 1,0000001 norma L∞ tempo total (normalizado) 1,0772 1,0761 1,0679 1,0677 TABELA A4.11 - Resultados para o teste com onda quadrada para Cr=0,40 23A 23B Kappa Roemétrica × esquema -MPL2 Superbee massa total (exata) 100,000000 100,000000 100,000000 100,000000 massa total (numérica) 99,999809 99,999809 99,999877 99,999877 razão do pico (RP) 0,9928336 0,9798792 0,9818968 0,9818968 conhecimento para a RP -0,0000002 -0,0000001 -0,0000001 -0,0000001 razão de massa 0,9999980 0,9999987 0,9999980 0,9999980 |1 - razão de massa| 0,0000019 0,0000012 0,0000019 0,0000019 razão de distribuição 0,8792042 0,8517879 0,8479105 0,8479105 máximo (numérico) 0,9928336 0,9798792 0,9818968 0,9818968 mínimo (numérico) -0,0000002 -0,0000001 -0,0000001 -0,0000001 221 erro absoluto médio erro da RMQ norma L1 norma L2 norma L∞ tempo total (normalizado) 0,0049244 0,1144533 0,9999576 0,9376589 1,0000001 1,0596 0,0049243 0,1207351 0,9999480 0,9229235 1,0000000 1,0795 0,0049242 0,1184705 0,9999197 0,9208205 1,0000001 1,0844 0,0049242 0,1184705 0,9999197 0,9208205 1,0000001 1,0745 TABELA A4.12 - Resultados para o teste com onda quadrada para Cr=0,40 Ospre CHARM ISNAS MUSCL métrica × esquema massa total (exata) 100,000000 100,000000 100,000000 100,000000 massa total (numérica) 99,999824 99,999931 99,9999384 99,9999464 razão do pico (RP) 0,9998095 0,9999422 0,9999424 1,0000067 conhecimento para a RP -0,0000002 -0,0000002 -0,0000002 -0,0000003 razão de massa 0,9999985 0,9999989 0,9999989 0,9999995 |1 - razão de massa| 0,0000014 0,0000010 0,0000010 0,0000004 razão de distribuição 0,9123188 0,9096885 0,9096882 0,9353405 máximo (numérico) 0,9998095 0,9999422 0,9999424 1,0000067 mínimo (numérico) -0,0000002 -0,0000002 -0,0000002 -0,0000003 erro absoluto médio 0,0049236 0,0049236 0,0049245 0,0049235 erro da RMQ 0,0951911 0,0957071 0,1024183 0,0845029 norma L1 0,9997862 0,9998001 0,9999742 0,9997790 norma L2 0,9551536 0,9537758 0,9537757 0,9671299 1,0000002 1,0000002 1,0000002 1,0000067 norma L∞ tempo total (normalizado) 1,0668 1,0687 1,0698 1,0744 TABELA A4.13 - Resultados para o teste com onda quadrada para Cr=0,40 Koren Davis UMIST van Leer métrica × esquema massa total (exata) 100,000000 100,000000 100,000000 100,000000 massa total (numérica) 99,999954 99,999969 100,000007 100,000015 razão do pico (RP) 1,0000064 0,9996923 1,0000065 1,0000040 conhecimento para a RP -0,0000003 -0,0000002 -0,0000002 -0,0000002 razão de massa 0,9999996 0,9999995 0,9999996 0,9999997 |1 - razão de massa| 0,0000003 0,0000004 0,0000003 0,0000002 razão de distribuição 0,9320565 0,8946171 0,9236349 0,9226205 máximo (numérico) 1,0000064 0,9996923 1,0000065 1,0000040 mínimo (numérico) -0,0000003 -0,0000002 -0,0000002 -0,0000002 erro absoluto médio 0,0049246 0,0049232 0,0049246 0,0049245 erro da RMQ 0,0906872 0,0959640 0,0912286 0,0941508 norma L1 0,9999911 0,9997251 0,9999925 0,9999858 norma L2 0,9654307 0,9458418 0,9610593 0,9605313 1,0000064 1,0000002 1,0000065 1,0000040 norma L∞ tempo total (normalizado) 1,0748 1,0539 1,0591 1,0851 TABELA A4.14 - Resultados para o teste com onda quadrada para Cr=0,40 HCUS Kappa-USR KappaMC métrica × esquema MPL1 massa total (exata) 100,000000 100,000000 100,000000 100,000000 massa total (numérica) 99,999969 99,999931 99,9999384 99,999946 razão do pico (RP) 1,0000015 1,0000066 0,9674986 1,0000067 conhecimento para a RP -0,0000003 -0,0000003 -0,0000001 -0,0000003 razão de massa 0,9999990 0,9999993 0,9999989 0,9999995 |1 - razão de massa| 0,0000009 0,0000006 0,0000010 0,0000004 razão de distribuição 0,9210738 0,9345550 0,7520306 0,9353405 máximo (numérico) 1,0000015 1,0000066 0,9674986 1,0000067 mínimo (numérico) -0,0000003 -0,0000003 -0,0000001 -0,0000003 222 erro absoluto médio erro da RMQ norma L1 norma L2 norma L∞ tempo total (normalizado) 0,0049241 0,0925683 0,9998963 0,9597258 1,0000015 1,0538 0,0049245 0,0882097 0,9999876 0,9667238 1,0000066 1,0687 0,0049228 0,1122813 0,9996357 0,8671968 1,0000001 1,0738 0,0049235 0,0845029 0,9997790 0,9671299 1,0000067 1.0633 TABELA A4.15 - Resultados para o teste com onda quadrada para Cr=0,33 SMART Kappamétrica × esquema USPL massa total (exata) 100,000000 100,000000 massa total (numérica) 99,9999614 99,9999618 razão do pico (RP) 1,0000066 -0,0000003 conhecimento para a RP -0,0000003 1,0000073 razão de massa 0,9999996 0,9999996 |1 - razão de massa| 0,0000003 0,0000003 razão de distribuição 0,9292561 0,9388055 máximo (numérico) 1,0000066 1,0000073 mínimo (numérico) -0,0000003 -0,0000003 erro absoluto médio 0,0016447 0,0016452 erro da RMQ 0,1667131 0,2311642 norma L1 0,3339843 0,3340850 norma L2 0,4619587 0,4721809 0,8781858 0,9124545 norma L∞ tempo total (normalizado) 1,0616 1,0719 Analogamente aos resultados mostrados nas tab. A4.1 a A4.8, a abordagem fluxo numérico conserva bem a massa total para os esquemas de solução desenvolvidos e implementados. O esquema menos conservativo foi o upwind, que perdeu aproximadamente 0,00030% de massa em 80s. Note-se que os esquemas lineares de alta ordem (tab. A4.8), e os não lineares K-DPL e HQUICK, não foram tabelados, pois os seus resultados se mostraram muito piores que aqueles resultados obtidos com Cr = 0,25 . Por exemplo, quando Cr = 0,33 tem-se, para os limites Fromm, K-Linear e K-Linear simétrico, que a métrica para medir as oscilações introduzidas por esquemas não monotônicos (conhecimento para a razão do pico), fornece os valores –45,2470626, -10,5736217 e –15,9294815, respectivamente, indicando fortes oscilações nesses métodos quando Cr = 0,33 . Todos os demais esquemas não lineares das tab. A4.9 a A4.15 preservam bem o pico, mantendo concentração máxima. Destacam-se os esquemas de Sweby, o RKappa, o MUSCL, o Koren, UMIST, van Leer, o HCUS, o K-USR e MC para Cr = 0,40 . Os esquemas SMART e K-USPL também preservam bem o pico para Cr = 0,33 . Já o esquema upwind não preserva o pico, suavizando-o em aproximadamente em 46,77%. O conhecimento para a razão do pico, que mede as oscilações introduzidas por esquemas não monotônicos, indica que esses esquemas não introduzem oscilações, sendo que todos erros são iguais ou menores que da O(10-6). Porém, que devido à aritmética de ponto flutuante e/ou as condições de contorno estabelecidas na malha de teste, não se evita completamente o aparecimentos de valores negativos. A razão de distribuição, que indica o comportamento do formato original do perfil de concentração, mostra que os esquemas analisados nas tab. A4.9 a A4.15 retêm o perfil. As exceções são os esquemas upwind e K-MPL1. O resultado para o esquema upwind (tab. A4.9) mostra que esse esquema distorce muito o perfil (forte suavização), 223 mostrando a influência do campo de velocidades na manutenção, ou não, desse perfil de concentração quando de sua advecção ao longo do domínio computacional. Já as métricas relacionadas aos erros e às normas refletem os resultados anteriores mostrando que as soluções obtidas por esquemas não lineares têm um comportamento muito melhor que aqueles comportamentos obtidos pelo esquema linear upwind. Isso pode ser visto sobretudo no grande erro mostrado pela métrica da raiz média quadrada. Nesse caso, o erro é aproximadamente 18 vezes maior que qualquer outro esquema. Todos os resultados apresentados nas tabelas são com apenas sete casas decimais após a vírgula, e foram obtidos com precisão simples (float), padrão IEEE754. Experimentos numéricos com todas as funções implementadas neste trabalho mostram que os resultados com precisão dupla (double) são praticamente os mesmos que os obtidos com precisão simples. Alguns dos experimentos feitos são como mostrado nas tab. A4.16 a A4.21. TABELA A4.16 - Experimento numérico para a onda quadrada com Cr=0,25. Análise da precisão dos resultados do esquema upwind com parâmetros 0,00025, 100x100, 200 ciclos, S0×10×10 S0=1, double S0=1, float métrica × concentração massa total (exata) 100,00000000000 100,00000000000 massa total (numérica) 99,94924926758 99,94933319092 razão do pico (RP) 0,587848067284 0,587848722935 conhecimento para a RP 0,000000000000 0,000000000000 razão de massa 0,999563064575 0,999564132690 |1 - razão de massa| 0,000436935425 0,000435867310 razão de distribuição 0,411328204266 0,411328878031 máximo (numérico) 0,587848067284 0,587848722935 mínimo (numérico) 0,000000000000 0,000000000000 erro absoluto médio 0,010578584666 0,010578582019 erro da RMQ 0,260646184736 0,260646062900 norma L1 0,914941787720 0,914941558838 norma L2 0,578293997051 0,578294031318 0,665362596512 0,665362477303 norma L∞ TABELA A4.17 - Experimento numérico para a onda quadrada com Cr=0,25. Análise da precisão dos resultados do esquema upwind com parâmetros 0,00025, 100x100, 200 ciclos, S0×10×10 S0=104, double S0=104, float métrica × concentração massa total (exata) 1000000,00000000 1000000,00000000 massa total ( numérica) 999492,9375000000 999493,50000000 razão do pico (RP) 0,587848046875 0,587848535156 conhecimento para a RP 0,000000000000 0,000000000000 razão de massa 0,999562875000 0,999563500000 |1 - razão de massa| 0,000437125000 0,000436500000 razão de distribuição 0,411329102497 0,411329421666 máximo (numérico) 5878,480468750 5878,48535156250 mínimo (numérico) 0,000000000000 0,000000000000 erro absoluto médio 105,795785639958 105,795727829807 erro da RMQ 0,318900529880 0,318900485622 norma L1 0,915027750000 0,915027250000 norma L2 0,578294530482 0,578294369507 0,665362646484 0,665362646484 norma L∞ 224 TABELA A4.18 - Experimento numérico para a onda quadrada com Cr=0,25. Análise ‘1da precisão dos resultados do esquema Roe-Superbee com parâmetros 0,00025, 100x100, 200 ciclos, S0×10×10 S0=1, double S0=1, float métrica × concentração massa total (exata) 100,0000000000 100,00000000000 massa total (numérica) 99,99985504150 99,99990081787 razão do pico (RP) 0,949380159378 0,949380457401 conhecimento para a RP -0,000000105838 -0,000000105838 razão de massa 0,999997558594 0,999998168945 |1 - razão de massa| 0,000002441406 0,000001831055 razão de distribuição 0,775151081828 0,775151398894 máximo (numérico) 0,949380159378 0,949380457401 mínimo (numérico) -0,000000105838 -0,000000105838 erro absoluto médio 0,003664343546 0,003664341341 erro da RMQ 0,167228062855 0,167228052305 norma L1 0,316929073334 0,316928882599 norma L2 0,274126304784 0,274126151167 0,502402186394 0,502402245998 norma L∞ TABELA A4.19 - Experimento numérico para a onda quadrada com Cr=0,25. Análise da precisão dos resultados do esquema Roe-Superbee com parâmetros 0,00025, 100x100, 200 ciclos, S0×10×10 S0=104, double S0=104, float métrica × concentração massa total (exata) 1000000,000000000 1000000,000000000 massa total (numérica) 999998,937500000 999999,6875000000 razão do pico (RP) 0,949379296875 0,949379882812 conhecimento para a RP -0,000000000006 -0,000000000006 razão de massa 0,999999250000 0,999999687500 |1 - razão de massa| 0,000000750000 0,000000312500 razão de distribuição 0,775151836771 0,775153060253 máximo (numérico) 9493,7929687500 9493,79882812500 mínimo (numérico) -0,000000062994 -0,000000062994 erro absoluto médio 36,652456208810 36,652412851197 erro da RMQ 0,243986800634 0,243986786173 norma L1 0,317007093750 0,317006718750 norma L2 0,274126608581 0,274126414529 0,502402050781 0,502402148437 norma L∞ TABELA A4.20 - Experimento numérico para a onda quadrada com Cr=0,25. Análise da precisão dos resultados do esquema UMIST com parâmetros 0,00025, 100x100, 200 ciclos, S0×10×10 S0=1, double S0=1, float métrica × concentração massa total (exata) 100,00000000000 100,00000000000 massa total (numérica) 99,99997711182 99,99996948242 razão do pico (RP) 0,999998211861 0,999996244907 conhecimento para a RP -0,000000198382 -0,000000198867 razão de massa 0,999999465942 0,999999313354 |1 - razão de massa| 0,000000534058 0,000000686646 razão de distribuição 0,889888297737 0,889886712409 máximo (numérico) 0,999998211861 0,999996244907 mínimo (numérico) -0,000000198382 -0,000000198867 erro absoluto médio 0,002231752050 0,002231760209 erro da RMQ 0,104808839929 0,104808781014 norma L1 0,193024234772 0,193024940491 225 norma L2 norma L∞ 0,237010555258 0,458413541317 0,237010346232 0,458413422108 TABELA A4.21 - Experimento numérico para a onda quadrada com Cr=0,25. Análise da precisão dos resultados do esquema UMIST com parâmetros 0,00025, 100x100, 200 ciclos, S0×10×10 S0=104, double S0=104, float métrica × concentração massa total (exata) 999999,56250000 1000000,000000000 massa total (numérica) 1000000,000000000 999999,7500000000 razão do pico (RP) 0,999996679687 0,999994824219 conhecimento para a RP -0,000000001243 -0,000000001322 razão de massa 0,999999562500 0,999999250000 |1 - razão de massa| 0,000000437500 0,000000750000 razão de distribuição 0,889888538666 0,889887634353 máximo (numérico) 9999,966796875000 9999,94824218750 mínimo (numérico) -0,000012426864 -0,000013222519 erro absoluto médio 22,318430960227 22,318537547693 erro da RMQ 0,128587119025 0,128587029844 norma L1 0,193032109375 0,193033031250 norma L2 0,237010856531 0,237010463759 0,458410449219 0,458410595703 norma L∞ Dado que algumas das métricas consideram o erro relativo (anexo 2), considerouse para efeito de cálculo apenas aquelas células cuja concentração fosse maior ou igual a 2, 5.10 −4 . Com essa abordagem, os resultados mais afetados são aqueles das métricas para o erro absoluto médio e para o erro da raiz média quadrada, já que são as medidas de desempenho diretamente afetadas pelo número de células da malha de teste. Experimentos numéricos com todas as funções implementadas neste trabalho mostram que os resultados para 0,00025 e para 0,0000000025 são praticamente os mesmos, exceto as métricas relativas ao erros. Alguns dos experimentos feitos são como mostrado nas tab. A4.22 a A4.27. TABELA A4.22 - Experimento numérico para a onda quadrada com Cr=0,25. Análise dos resultados quando da imposição da restrição para erro relativo no esquema upwind com parâmetros 100x100, 200 ciclos, S0×10×10, float. S0=1 e 0,0000000025 S0=1 e 0,00025 métrica × concentração massa total (exata) 100,00000000000 100,00000000000 massa total (numérica) 99,94924926758 99,94924926758 razão do pico (RP) 0,587848067284 0,587848067284 conhecimento para a RP 0,000000000000 0,000000000000 razão de massa 0,999563064575 0,999563064575 |1 - razão de massa| 0,000436935425 0,000436935425 razão de distribuição 0,411328204266 0,411328204266 máximo (numérico) 0,587848067284 0,587848067284 mínimo (numérico) 0,000000000000 0,000000000000 erro absoluto médio 0,010578584666 0,010579576160 erro da RMQ 0,260646184736 0,318900540944 norma L1 0,914941787720 0,915027542114 norma L2 0,578293997051 0,578293997051 0,665362596512 0,665362596512 norma L∞ 226 TABELA A4.23 - Experimento numérico para a onda quadrada com Cr=0,25. Análise dos resultados quando da imposição da restrição para erro relativo no esquema upwind com parâmetros 100x100, 200 ciclos, S0×10×10, float. S0=104, 0,0000000025 S0=104, 0,00025 métrica × concentração massa total (exata) 1000000,000000000 1000000,0000000000 massa total (numérica) 999492,937500000 999492,93750000000 razão do pico (RP) 0,587848046875 0,587848046875 conhecimento para a RP 0,000000000000 0,000000000000 razão de massa 0,999562875000 0,999562875000 |1 - razão de massa| 0,000437125000 0,000437125000 razão de distribuição 0,411329102497 0,411329102497 máximo (numérico) 5878,48046875000 5878,4804687500 mínimo (numérico) 0,000000000000 0,000000000000 erro absoluto médio 105,795785639958 105,795785639958 erro da RMQ 0,318900529880 0,362507874056 norma L1 0,915027750000 0,915027750000 norma L2 0,578294530482 0,578294530482 0,665362646484 0,665362646484 norma L∞ TABELA A4.24 - Experimento numérico para a onda quadrada com Cr=0,25. Análise dos resultados quando da imposição da restrição para erro relativo no esquema Roe-Superbee com parâmetros 100x100, 200 ciclos, S0×10×10, float. S0=1, 0,0000000025 S0=1, 0,00025 métrica × concentração massa total (exata) 100,00000000000 100,00000000000 massa total (numérica) 99,99985504150 99,99985504150 razão do pico (RP) 0,949380159378 0,949380159378 conhecimento para a RP -0,000000105838 -0,000000105838 razão de massa 0,999997558594 0,999997558594 |1 - razão de massa| 0,000002441406 0,000002441406 razão de distribuição 0,775151081828 0,775151081828 máximo (numérico) 0,949380159378 0,949380159378 mínimo (numérico) -0,000000105838 -0,000000105838 erro absoluto médio 0,003664343546 0,003665245948 erro da RMQ 0,167228062855 0,250994358445 norma L1 0,316929073334 0,317007122040 norma L2 0,274126304784 0,274126304784 0,502402186394 0,502402186394 norma L∞ TABELA A4.25 - Experimento numérico para a onda quadrada com Cr=0,25. Análise dos resultados quando da imposição da restrição para erro relativo no esquema Roe-Superbee com parâmetros 100x100, 200 ciclos, S0×10×10, float. S0=104, 0,0000000025 S0=104, 0,00025 métrica × concentração massa total (exata) 1000000,000000000 1000000,000000000 massa total (numérica) 999998,9375000000 999998,93750000000 razão do pico (RP) 0,949379296875 0,949379296875 conhecimento para a RP -0,000000000006 -0,000000000006 razão de massa 0,999999250000 0,999999250000 |1 - razão de massa| 0,000000750000 0,000000750000 razão de distribuição 0,775151836771 0,775151836771 máximo (numérico) 9493,792968750000 9493,7929687500 mínimo (numérico) -0,000000062994 -0,000000062994 227 erro absoluto médio erro da RMQ norma L1 norma L2 norma L∞ 36,652456208810 0,243986800634 0,317007093750 0,274126608581 0,502402050781 36,652459821945 0,290694921281 0,317007125000 0,274126608581 0,502402050781 TABELA A4.26 - Experimento numérico para a onda quadrada com Cr=0,25. Análise dos resultados quando da imposição da restrição para erro relativo no esquema UMIST com parâmetros 100x100, 200 ciclos, S0×10×10, float. S0=1, 0,0000000025 S0=1, 0,00025 métrica × concentração massa total (exata) 100,00000000000 100,00000000000 massa total (numérica) 99,99997711182 99,99997711182 razão do pico (RP) 0,999998211861 0,999998211861 conhecimento para a RP -0,000000198382 -0,000000198382 razão de massa 0,999999465942 0,999999465942 |1 - razão de massa| 0,000000534058 0,000000534058 razão de distribuição 0,889888297737 0,889888297737 máximo (numérico) 0,999998211861 0,999998211861 mínimo (numérico) -0,000000198382 -0,000000198382 erro absoluto médio 0,002231752050 0,002231841364 erro da RMQ 0,104808839929 0,176031817927 norma L1 0,193024234772 0,193031959534 norma L2 0,237010555258 0,237010555258 0,458413541317 0,458413541317 norma L∞ TABELA A4.27 - Experimento numérico para a onda quadrada com Cr=0,25. Análise dos resultados quando da imposição da restrição para erro relativo no esquema UMIST com parâmetros 100x100, 200 ciclos, S0×10×10, float. S0=104, 0,0000000025 S0=104, 0,00025 métrica × concentração massa total (exata) 1000000,000000000 1000000,0000000000 massa total (numérica) 1000000,000000000 1000000,0000000000 razão do pico (RP) 0,999996679687 0,999996679687 conhecimento para a RP -0,000000001243 -0,000000001243 razão de massa 0,999999562500 0,999999562500 |1 - razão de massa| 0,000000437500 0,000000437500 razão de distribuição 0,889888538666 0,889888538666 máximo (numérico) 9999,966796875000 9999,966796875000 mínimo (numérico) -0,000012426864 -0,000012426864 erro absoluto médio 22,318430960227 22,318430960227 erro da RMQ 0,128587119025 0,186244532583 norma L1 0,193032109375 0,193032109375 norma L2 0,237010856531 0,237010856531 0,458410449219 0,458410449219 norma L∞ Além disso, foram testados outros perfis para a onda quadrada, como os 10 × 10 × 10 , 100 × 10 × 10 , 1000 × 10 × 10 , 1 × 5 × 5 , 10 × 5 × 5 , 100 × 5 × 5 , 1000 × 5 × 5 , 1 × 20 × 20 , 10 × 20 × 20 , 100 × 20 × 20 e 1000 × 20 × 20 , etc. Os resultados foram análogos aos apresentados anteriormente, sendo que o erro absoluto médio aquela métrica que melhor caracteriza as diferenças entre os perfis que apresentam grandes variações na concentração inicial S0. Foram feitos experimentos numéricos com todas as 32 funções limitadoras de fluxos implementadas neste trabalho. Alguns dos experimentos feitos são como mostrado nas tab. A4.28 a A4.45. 228 TABELA A4.28 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema Roe-Superbee com parâmetros 0,00025, 100x100, float, S0×10×10 S0=10 S0=102 S0=1 métrica × concentração massa total (exata) 100,000000 1000,000000 10000,000000 massa total (numérica) 99,999855 999,9981079 9999,9824218 razão do pico (RP) 0,9493801 0,9493795 0,9493795 conhecimento para a RP -0,0000000 -0,0000000 -0,0000000 razão de massa 0,9999975 0,9999990 0,9999979 |1 - razão de massa| 0,0000024 0,0000009 0,0000020 razão de distribuição 0,7751510 0,7751514 0,7751511 máximo (numérico) 0,9493801 9,4937953 94,9379501 mínimo (numérico) -0,0000000 -0,0000000 -0,0000000 erro absoluto médio 0,0036643 0,0366518 0,3665239 erro da RMQ 0,1672280 0,1920103 0,2109476 norma L1 0,3169290 0,3170016 0,3170065 norma L2 0,2741263 0,2741263 0,2741264 0,5024021 0,5024021 0,5024020 norma L∞ TABELA A4.29 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema Roe-Superbee com parâmetros 0,00025, 100x100, float, S0×10×10 S0=104 S0=105 S0=103 métrica × concentração massa total (exata) 100000,000000 1000000,000000 10000000,00000 massa total (numérica) 99999,8359375 999998,9375000 9999985,000000 razão do pico (RP) 0,9493794 0,9493792 0,9493793 conhecimento para a RP -0,0000000 -0,0000000 -0,0000000 razão de massa 0,9999988 0,9999992 0,9999985 |1 - razão de massa| 0,0000011 0,0000007 0,0000015 razão de distribuição 0,7751514 0,7751518 0,7751504 máximo (numérico) 949,3794555 9493,7929687 94937,9375000 mínimo (numérico) -0,0000000 -0,0000000 -0,0000000 erro absoluto médio 3,6652446 36,6524562 366,5246849 erro da RMQ 0,2283196 0,2439868 0,2571379 norma L1 0,3170070 0,3170070 0,3170072 norma L2 0,2741264 0,2741266 0,2741264 0,5024020 0,5024020 0,5024021 norma L∞ TABELA A4.30 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para esquema Roe-Superbee com parâmetros 0,00025, 100x100, float, S0×10×10 S0=107 S0=106 métrica × concentração massa total (exata) 100000000,00000 1000000000,0000 massa total (numérica) 99999808,000000 999999040,00000 razão do pico (RP) 0,9493793 0,9493790 conhecimento para a RP -0,0000000 -0,0000000 razão de massa 0,9999991 0,9999996 |1 - razão de massa| 0,0000008 0,0000003 razão de distribuição 0,7751514 0,7751503 máximo (numérico) 949379,3750000 9493790,000000 mínimo (numérico) -0,0000000 -0,0000000 erro absoluto médio 3665,2445369 36652,4832928 erro da RMQ 0,2698627 0,2799565 229 norma L1 norma L2 norma L∞ 0,3170070 0,2741264 0,5024022 0,3170073 0,2741264 0,5024021 TABELA A4.31 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema Upwind com parâmetros 0,00025, 100x100, float, S0×10×10 S0=10 S0=102 S0=1 métrica × concentração massa total (exata) 100,000000 1000,000000 10000,000000 massa total (numérica) 99,9492492 999,4917602 9994,9052734 razão do pico (RP) 0,5878480 0,5878479 0,5878480 conhecimento para a RP 0,0000000 0,0000000 0,0000000 razão de massa 0,9995630 0,9995642 0,9995639 |1 - razão de massa| 0,0004369 0,0004357 0,0004360 razão de distribuição 0,4113282 0,4113285 0,4113281 máximo (numérico) 0,5878480 5,8784799 58,784805 mínimo (numérico) 0,0000000 0,0000000 0,0000000 erro absoluto médio 0,0105681 0,1057949 1,0579581 erro da RMQ 0,2606461 0,2761541 0,2924221 norma L1 0,9140417 0,9150202 0,9150280 norma L2 0,5782939 0,5782942 0,5782939 0,6653625 0,6653626 0,6653625 norma L∞ TABELA A4.32 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema upwind com parâmetros 0,00025, 100x100, float, S0×10×10 S0=104 S0=105 S0=103 métrica × concentração massa total (exata) 100000,000000 1000000,000000 10000000,00000 massa total (numérica) 99949,2578125 999492,9375000 9994917,000000 razão do pico (RP) 0,5878479 0,5878480 0,5878480 conhecimento para a RP 0,0000000 0,0000000 0,0000000 razão de massa 0,9995631 0,9995628 0,9995641 |1 - razão de massa| 0,0004368 0,0004371 0,0004359 razão de distribuição 0,4113281 0,4113291 0,4113278 máximo (numérico) 587,8479614 5878,4804687 58784,8085937 mínimo (numérico) 0,00000000 0,0000000 0,0000000 erro absoluto médio 10,5795738 105,7957856 1057,9581454 erro da RMQ 0,9150273 0,3189005 0,3299485 norma L1 0,9150273 0,9150277 0,9150280 norma L2 0,5782940 0,5782945 0,5782938 0,6653625 0,6653626 0,6653625 norma L∞ TABELA A4.33 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema Upwind com parâmetros 0,00025, 100x100, float, S0×10×10 S0=107 S0=106 métrica × concentração massa total (exata) 100000000,00000 1000000000,0000 massa total (numérica) 99949352,000000 999492544,00000 razão do pico (RP) 0,5878479 0,5878480 conhecimento para a RP 0,0000000 0,0000000 razão de massa 0,9995635 0,9995641 |1 - razão de massa| 0,0004364 0,0004358 razão de distribuição 0,4113281 0,4113284 máximo (numérico) 587847,9375000 5878480,5000000 230 mínimo (numérico) erro absoluto médio erro da RMQ norma L1 norma L2 norma L∞ 0,0000000 10579,5759047 0,3416550 0,9150275 0,5782941 0,6653625 0,0000000 105795,8404439 0,3519895 0,9150282 0,5782940 0,6653626 TABELA A4.34 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para esquema UMIST com parâmetros 0,00025, 100x100, float, S0×10×10 S0=10 S0=102 S0=1 métrica × concentração massa total (exata) 100,000000 1000,000000 10000,0000000 massa total (numérica) 99,9999771 999,9998779 9999,9980468 razão do pico (RP) 0,9999982 0,9999964 0,9999967 conhecimento para a RP -0,0000001 -0,0000000 -0,0000000 razão de massa 0,9999994 0,9999995 1,0000001 |1 - razão de massa| 0,0000005 0,0000004 0,0000001 razão de distribuição 0,8898882 0,8898880 0,8898885 máximo (numérico) 0,9999982 9,9999647 99,9996795 mínimo (numérico) -0,0000001 -0,0000002 -0,0000002 erro absoluto médio 0,0022301 0,0223183 0,2231844 erro da RMQ 0,1048088 0,1112309 0,1173020 norma L1 0,1930242 0,1930314 0,1930321 norma L2 0,2370105 0,2370107 0,2370106 0,4584135 0,4584103 0,4584110 norma L∞ TABELA A4.35 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema UMIST com parâmetros 0,00025, 100x100, float, S0×10×10 S0=104 S0=105 S0=103 métrica × concentração massa total (exata) 100000,0000000 1000000,000000 1000000,000000 massa total (numérica) 100000,0546875 1000000,000000 9999996,000000 razão do pico (RP) 0,9999968 0,9999966 0,9999964 conhecimento para a RP -0,0000000 -0,0000000 -0,000000 razão de massa 1,0000003 0,9999995 0,9999999 |1 - razão de massa| 0,0000003 0,0000004 0,0000001 razão de distribuição 0,8898883 0,8898885 0,8898874 máximo (numérico) 999,9968261 9999,9667968 99999,6484375 mínimo (numérico) -0,0000005 -0,0000124 -0,0001264 erro absoluto médio 2,2318446 22,3184309 223,1845589 erro da RMQ 0,1230739 0,1285871 0,1338734 norma L1 0,1930322 0,1930321 0,1930323 norma L2 0,2370106 0,2370108 0,2370105 0,4584106 0,4584104 0,4584106 norma L∞ TABELA A4.36 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para esquema UMIST com parâmetros 0,00025, 100x100, float, S0×10×10 S0=107 S0=106 métrica × concentração massa total (exata) 100000000,00000 1000000000,0000 massa total (numérica) 99999944,000000 999999744,00000 razão do pico (RP) 0,9999957 0,9999947 conhecimento para a RP -0,0000000 -0,0000000 razão de massa 0,9999996 0,9999995 231 |1 - razão de massa| razão de distribuição máximo (numérico) mínimo (numérico) erro absoluto médio erro da RMQ norma L1 norma L2 norma L∞ 0,0000004 0,8898874 999995,750000 -0,0013027 2231,8503873 0,1389587 0,1930327 0,2370105 0,4584105 0,0000004 0,8898856 9999947,000000 -0,0106831 22318,5496589 0,1438643 0,1930331 0,2370101 0,4584104 TABELA A4.37 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema UMIST com parâmetros 0,00025, 100x100, float, S0×20×20 S0=104 S0=107 S0=1 métrica × concentração massa total (exata) 400,0000000 4000000,000000 4000000000,000 massa total (numérica) 399,9998779 3999998,50000 399998156,0000 razão do pico (RP) 0,9999998 0,9999982 0,9999982 conhecimento para a RP -0,0000000 -0,0000000 -0,0000000 razão massa 0,9999984 0,9999987 1,0000010 |1 - razão de massa| 0,0000015 0,0000012 0,0000010 razão de distribuição 0,9447599 0,9447613 0,9447596 máximo (numérico) 0,9999998 9999,9824218 9999982,00000 mínimo (numérico) -0,000000 -0,0000154 -0,0123558 erro absoluto médio 0,0045507 45,5092062 45509,3092843 erro da RMQ 0,1436588 0,1755345 0,1960697 norma L1 0,0983977 0,0984022 0,0984029 norma L2 0,1674878 0,1674877 0,1674878 0,4584137 0,4584132 0,4584132 norma L∞ TABELA A4.38 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema upwind com parâmetros 0,00025, 100x100, float, S0×20×20 S0=104 S0=107 S0=1 métrica × concentração massa total (exata) 400,0000000 4000000,00000 4000000000,000 massa total (numérica) 393,2933959 3932937,750000 3932932864,000 razão do pico (RP) 0,8999948 0,8999948 0,8999950 conhecimento para a RP 0,0000000 0,0000000 0,0000000 razão de massa 0,9846802 0,9846783 0,9846831 |1 - razão de massa| 0,0153197 0,0153216 0,0153168 razão de distribuição 0,6539777 0,6539786 0,6539790 máximo (numérico) 0,8999948 8999,9482421 8999950,000000 mínimo (numérico) 0,0000000 0,0000000 0,0000000 erro absoluto médio 0,0220083 220,0953578 220095,4302231 erro da RMQ 0,2994133 0,3665969 0,4025252 norma L1 0,4758745 0,4759011 0,4759035 norma L2 0,3750895 0,3750898 0,3750897 0,6189880 0,6189880 0,6189881 norma L∞ TABELA A4.39 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema Roe-Superbee com parâmetros 0,00025, 100x100, float, S0×20×20 S0=104 S0=107 S0=1 métrica × concentração massa total (exata) 400,0000000 4000000,000000 4000000000,000 massa total (numérica) 399,9911193 3999906,00000 3999913984,000 232 razão do pico (RP) conhecimento para a RP razão de massa |1 - razão de massa| razão de distribuição máximo (numérico) mínimo (numérico) erro absoluto médio erro da RMQ norma L1 norma L2 norma L∞ 0,9996355 -0,0000000 0,9999824 0,0000175 0,8914871 0,9996355 -0,0000000 0,0072197 0,2243776 0,1561099 0,1904938 0,5105758 0,9996349 -0,0000000 0,9999820 0,0000180 0,8914870 9996,3496093 -0,0000000 72,2101688 0,2931831 0,1561364 0,1904938 0,5105754 0,9996348 -0,0000000 0,9999857 0,0000142 0,8914891 9996348,00000 -0,0000000 72210,0626662 0,3269305 0,1561369 0,1904937 0,5105756 TABELA A4.40 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema Roe-Superbee com parâmetros 0,00025, 100x100, float, S0×5×5 S0=104 S0=107 S0=1 métrica × concentração massa total (exata) 25,0000000 25000,000000 250000000,0000 massa total (numérica) 25,0000019 24999,9960937 249999904,0000 razão do pico (RP) 0,6435598 0,6435595 0,6435594 conhecimento para a RP -0,0000001 -0,0000000 -0,0000000 razão de massa 0,9999993 0,9999994 0,9999991 |1 - razão de massa| 0,0000006 0,0000005 0,0000008 razão de distribuição 0,4984892 0,4984892 0,4984891 máximo (numérico) 0,6435598 643,5595092 6435594,00000 mínimo (numérico) -0,0000001 -0,0000001 -0,0000000 erro absoluto médio 0,0022234 2,2238217 22238,20557289 erro da RMQ 0,1328199 0,1804332 0,2330080 norma L1 0,7692102 0,7693533 0,7693529 norma L2 0,5201496 0,5201501 0,5201500 0,5891063 0,5891063 0,5891064 norma L∞ TABELA A4.41 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema upwind com parâmetros 0,00025, 100x100, float, S0×5×5 S0=104 S0=107 S0=1 métrica × concentração massa total (exata) 25,0000000 25000,000000 250000000,0000 massa total (numérica) 24,9985027 24998,5058593 249985168,0000 razão do pico (RP) 0,3190271 0,3190272 0,3190272 conhecimento para a RP 0,0000000 0,0000000 0,0000000 razão de massa 0,9999497 0,9999504 0,9999508 |1 - razão de massa| 0,0000502 0,0000495 0,0000491 razão de distribuição 0,2180794 0,2180794 0,2180795 máximo (numérico) 0,3190271 319,02725 3190272,250000 mínimo (numérico) 0,0000000 0,0000000 0,0000000 erro absoluto médio 0,0038509 3,8519278 38519,2979535 erro da RMQ 0,2303963 0,2750062 0,3189962 norma L1 1,3322869 1,3326129 1,3326136 norma L2 0,7742757 0,7742755 0,7742754 0,7880090 0,7880090 0,7880090 norma L∞ 233 TABELA A4.42 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema UMIST com parâmetros 0,00025, 100x100, float, S0×5×5 S0=104 S0=107 S0=1 métrica × concentração massa total (exata) 25,0000000 25000,0000000 250000000,0000 massa total (numérica) 24,999982 25000,0000000 249999984,0000 razão do pico (RP) 0,9067085 0,9067085 0,9067087 conhecimento para a RP -0,0000001 -0,0000000 -0,0000000 razão de massa 0,9999990 1,0000001 1,0000002 |1 - razão de massa| 0,0000009 0,0000001 0,0000002 razão de distribuição 0,7319003 0,7319011 0,7319011 máximo (numérico) 0,9067085 906,7085571 9067087,00000 mínimo (numérico) -0,0000001 -0,0000006 -0,0100141 erro absoluto médio 0,0012152 1,2153394 12153,3929934 erro da RMQ 0,0780331 0,0922886 0,1084184 norma L1 0,4204382 0,4204588 0,4204587 norma L2 0,3474281 0,3474284 0,3474286 0,4638689 0,4638695 0,4638696 norma L∞ TABELA A4.43 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema Roe-Superbee com parâmetros 0,00025, 100x100, float, S0×1×1 S0=104 S0=107 S0=1 métrica × concentração massa total (exata) 1,0000000 10000,000000 10000000,00000 massa total (numérica) 1,0000000 9999,9951171 9999997,00000 razão do pico (RP) 0,0944487 0,0944485 0,0944485 conhecimento para a RP -0,0000001 -0,0000000 -0,0000000 razão de massa 1,0000002 0,9999997 0,9999992 |1 - razão de massa| 0,0000002 0,0000002 0,0000008 razão de distribuição 0,0966196 0,0966198 0,0966197 máximo (numérico) 0,0944487 944,48565 944485,5625000 mínimo (numérico) -0,0000001 -0,0000001 -0,0000000 erro absoluto médio 0,0001874 1,8780152 1878,0145681 erro da RMQ 0,1059718 0,1528731 0,1872106 norma L1 1,6209386 1,6242954 1,6242948 norma L2 0,8926875 0,8926882 0,8926883 0,6565963 0,6565964 0,6565965 norma L∞ TABELA A4.44 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema upwind com parâmetros 0,00025, 100x100, float, S0×1×1 S0=104 S0=107 S0=1 métrica × concentração massa total (exata) 1,0000000 10000,000000 10000000,00000 massa total (numérica) 0,9999878 9999,8769531 9999882,00000 razão do pico (RP) 0,0456115 0,0456115 0,0456115 conhecimento para a RP 0,0000000 0,0000000 0,0000000 razão de massa 0,9999903 0,9999902 0,9999896 |1 - razão de massa| 0,0000096 0,0000097 0,0000104 razão de distribuição 0,0408588 0,0408588 0,0408588 máximo (numérico) 0,0456115 456,1152954 456115,3750000 mínimo (numérico) 0,0000000 0,00000000 0,0000000 erro absoluto médio 0,0002096 2,1026613 2102,6613481 erro da RMQ 0,2080893 0,2604087 0,2914181 norma L1 1,8131337 1,8185917 1,8185918 234 norma L2 norma L∞ 0,9466566 0,7049124 0,9466570 0,7049125 0,9466570 0,7049125 TABELA A4.45 - Resultados para o teste com onda quadrada para Cr=0,25 analisando a influência do perfil para o esquema UMIST com parâmetros 0,00025, 100x100, float, S0×1×1 S0=104 S0=107 S0=1 Métrica × concentração massa total (exata) 1,0000000 10000,000000 10000000,00000 massa total (numérica) 0,9999994 9999,9980468 10000000,00000 razão do pico (RP) 0,1367194 0,1367190 0,1367190 conhecimento para a RP -0,0000004 -0,0000000 -0,0000000 razão de massa 0,9999992 1,0000000 1,0000000 |1 - razão de massa| 0,0000007 0,0000000 0,0000000 razão de distribuição 0,1460935 0,1460936 0,1460936 máximo (numérico) 0,1367194 1367,1901855 1367190,00000 mínimo (numérico) -0,0000001 -0,0000007 -0,0011959 erro absoluto médio 0,0001684 1,6848263 1684,8263383 erro da RMQ 0,0733714 0,0843663 0,0922232 norma L1 1,4567965 1,4572063 1,4572063 norma L2 0,8446833 0,8446844 0,8446843 0,6153217 0,6153221 0,6153222 norma L∞ Os resultados apresentados nas tab. A4.28 a A4.45 mostram que a solução numérica desses esquemas mantém a qualidade numérica, como as apresentados nas tabelas anteriores, mesmo sob situações onde ocorrem elevados gradientes de concentração. As diferenças dos resultados fornecidos pelas métricas relativas aos erros e as normas apenas refletem as diferenças das quantidades envolvidas nos testes das tabelas anteriores e nessas tabelas. Alguns dos resultados apresentados nas tabelas A4.1 a A4.45 são qualitativamente como aqueles obtidos nos trabalhos de [ZIJ95] e [ZIJ97]. A partir dos resultados aqui obtidos pode-se afirmar que, em geral, os limites lineares K-QUICK, KFromm, K-Linear e K-Linear Simétrico, todos lineares de segunda ordem, sofrem de fortes oscilações para os números de Courant testados. Um conjunto de resultados com essas funções é como mostrado na tab. A4.8. As oscilações ocorrem pois esse esquemas não são monotônicos e/ou limitados e não possuem a propriedade de transporte (veja anexo 1) como, por exemplo, o esquema upwind, que é linear e de primeira ordem. Portanto, não são recomendados para o cálculo da solução da equação de transporte escalar. Além disso, a função K-DPL, com Κ=0,75, também sofre de fortes oscilações, mas isso deve-se ao fato de que não atende a condição (5.4), discutida na seção 5.1.1. Note-se, portanto, que as funções de restrição de fluxo aplicada às funções de interpolação (método de Sweby) para obtenção da solução da advecção horizontal são particularmente atraentes sob o ponto de vista numérico, pois atributos, discutidos nos anexos, como a conservatividade, positividade, o transporte da solução, etc., são características dessa classe de soluções. A principal desvantagem dessa abordagem é a limitação do passo de tempo, que acaba deteriorando a eficiência computacional. Uma solução para essa questão é empregar uma integração temporal em subciclos, discutida no anexo 1, na qual os termos horizontais são resolvidos em frações do passo de tempo global. 235 Bibliografia ABBOTT, M. B.; BASCO, D. R. Computational Fluid Dynamics: an Introduction for Engineers. London: Longmann Scientific & Technical, 1989. 425 p. [ADC95] ADCROFT, A. Representing Topography - the Finite Volume Approach. 1995. p. 104-132 Ph.D. Dissertation (Computer Science) – University of California, Los Angeles. Disponível em: . Acesso em: 22 nov. 2001. [AGO94] AGOSHKOV, V. I.; QUARTERONI, A.; SALERI, F. Recent Developments in the Numerical Simulation of Shallow Water Equations I: Boundary Conditions. Applied Numerical Mathematics, [S.l.], v.15, p. 175-200, 1994. [ALO2002] ALONSO, J.; FATICA, M. Parallel Methods in Numerical Analysis: Domain Decomposition Methods I. 2002. 28 p. (Resume) – Aerospace Computing Laboratoy, UMIST, Stanford University, Stanford. Disponível em: Acesso em: 01 abr. 2002. [ALU97] ALURU, S.; SEVILGEN, F. E. Parallel Domain Decomposition and Load Balancing Using Space-Filling Curves. In: INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING, HiPC, 4., 1997. Proceedings... [S.l.]: IEEE Computer Society, 1997. Disponível em: . Acesso em: 25 nov. 1999. [AME77] AMES, W. F. Numerical Methods for Partial Differential Equations. 2 nd ed. New York: Academic Press, 1977. 365 p. [AND95] ANDERSON, J. D. Computational Fluid Dynamics. New York: McGrawHill, 1995. 547 p. [APS2001] APSLEY, D. Computational Hydraulics. Manchester: Manchester Centre for Civil and Construction Engineering, 2001. 93 p. Disponível em: . Acesso em: 20 out. 2001. [ARA97] ARAÚJO, E. R. Métodos Iterativos em Álgebra Linear Computacional. Rio de Janeiro: LNCC, 1997. 104 p. Trabalho apresentado na Escola de Verão em Computação Científica. 2., 1997. [ARA97a] ARAÚJO, E. R. Métodos Iterativos para a Solução de Grandes Sistemas de Equações en Engenharia Estrutural. 1997. 179 p. Tese (Doutorado). COPPE/UFRJ-Departamento de Engenharia Civil, Rio de Janeiro. [ASE90] ASENJO, E. O. B. Métodos Numéricos em Diferenças Centrais, Upwind e Euler-Lagrange para as Equações de Navier-Stokes. 1990. 76 p. Dissertação (Mestrado em Matemática) – Departamento de Matemática, UFRGS, Porto Alegre. [AWA2000] AWAD, M. ; TURNER, I. Flux-limiting and Non-linear Solution Techniques for Simulation of Transport in Porous Media. Anziam Journal, Brisbane, v. 42, p. 157-182, Nov. 2000. [AXE96] AXELSSON, A. Iterative Solution Methods. Cambridge: University Press, 1996. 654 p. [BAI92] BAINES, M. J. MASTERFUL Monotonic Adaptive Solutions of Transient Equations using Recovery, Fitting, Upwinding and Limiters. Reading: Department of Mathematics, University of Reading, 1993. 16 p. (Numerical Analysis Report 5/92). [ABB89] 236 [BAK96] [BAL98] [BAP95] [BAR94] [BAT82] [BAT85] [BTC90] [BEN97] [BEN99] [BJO95] [BLA94] [BLE98] [BLO94] [BLU78] [BOL98] BAKER, L.; SMITH, B. J. Parallel Programming. New York: McGraw-Hill, 1996. 381 p. BALZANO, A. Evaluation of Methods for Numerical Simulation of Wetting and Drying in Shallow Water Flow Models. Coastal Engineering, [S.l.], v.34, p. 83-107,1998. BAPTISTA, A. M.; ADAMS, E. E.; GRESHO, P. Benchmarks for the Transport Equations: The Convection-Diffusion Forum and Beyond. 1995. Disponível em: . Acesso em: 05 mar. 1999. BARRETT, R.; BERRY, M.; CHAN, T. F.; DEMMEL, J.; DONATO, J. M.; DONGARRA, J.; EIJKHOUT, V. POZO, R.; ROMINE, C.; VORST, H. V. Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods, 1994. Disponível em: . Acesso em: 02 abr. 1999. BATES, J. R.; McDONALD, A. Multiply-Upstream, Semi-Lagrangian Advective Schemes: Analysis and Applications to a Multi-Level Primitive Equation Model. Monthly Weather Review, [S.l.], v. 110, p. 1831-1842, Dec. 1982. BATES, J. R. Semi-Lagrangian Advective Schemes and Their Use in Meteorological Modeling. Lectures in Applied Mathematics, [S.l.], v. 22, p. 1-29, 1985. BATCHELOR, G. K. An Introduction to Fluid Dynamics. Cambridge: Cambridge University Press, 1990. 615 p. BENZI, M. Preconditioning Methods for Sparse Linear Systems. Short Course on Iterative Linear Solvers and Preconditioners. Zürich: ETH, 1997. Disponível em: . Acesso em : 20 out. 1999. BENZI, M.; TUMA, M. A Comparative Study of Sparse Approximate Inverse Preconditioners. Applied Numerical Mathematics, [S.l.], v. 30, p. 305-340, 1999. Disponível em: . Acesso em: 14 out. 1999. BJORSTAD, P.; MOE, R.; OLUFSEN, R.; VAINIKKO, E. Domain Decomposition Techniques in Parallelization of the 3-Dimensional FRONTSIM Code. Bergen, Norway: Institutt for Informatikk, University of Bergen, 1995. 14 p. (EC-ESPRIT III / EUROPORT2 project). BLACK, T. L. The New NMC Mesoscale Eta Model: Description and Forecast Examples. Weather and Forecasting, [S.l.], v. 9, p. 265-277, June 1994. BLECK, R. Ocean Modeling in Isopycnic Coordinates. Los Alamos: Advanced Computing Laboratory (ACL), 1998. p. 423-448. (Report). Disponível em: . Acesso em: 03 maio 1999. BLOM, J. G.; HUNDSDORFER, W.; VEEERWER, J. G. Vectorization Aspects of a Spherical Advection Scheme on a Reduced Grid. Amsterdam: Centrum voor Wiskunde en Informatica, 1994. 11 p. (Report NM-R9418). Disponível em:. Acesso em: 17 set. 1999. BLUMBERG, A. F.; MELLOR, G. L. A Coastal Ocean Numeric Model. In: MATH. MODELING OF ESTUARINE PHYSICS. INT. SYMP, 1978, Hamburg. Proceedings... Berlin: Springer, 1978. p. 102-132. BOLLHÖFER, M. Algebraic Domain Decomposition. 1998. 191 p. Ph.D. Dissertation (Mathematik). Technischen Universität Chemnitz, Fakultät 237 [BON98] [BON2000] [BOO75] [BOR73] [BOR76] [BOT89] [BOT89a] [BOT92] [BOT93] [BOU2000] [BRL2000] [BRL2002] [BRT96] [BUR95] [BUR97] [BUR98] für Mathematik. Disponível em: . Acesso em: 19 ago. 1999. BONAVENTURA, L. A Second Order Scheme for Semi-Lagrangian Advection with Accurate Approximation of Trajectories. 1998. Disponível em: . Acesso em: 13 set. 1999. BONAVENTURA, L.; GROSS, E. S. Constancy Preserving, Conservative Methods for Free-Surface Models. 2000. Disponível em : < http://www. ing.unitn.it/~bonavent/archi.html>. Acesso em : 15 jan. 2001. BOOK, D. L.; BORIS, J. P.; HAIN, K. Flux-Corrected Transport II. Generalizations of the Method. Journal of Computational Physics, [S.l.], v. 18, p. 248-283, 1975. BORIS, J. P.; BOOK, D. L. Flux-Corrected Transport I. SHASTA, A Fluid Transport Algorithm That Works. Journal of Computational Physics, [S.l.], v. 11, p. 38-69, 1973. BORIS, J. P.; BOOK, D. L. Flux-Corrected Transport III. Minimal-error FCT Algorithm. Journal of Computational Physics, [S.l.], v. 20, p. 397431, 1976. BOTT, A. A Positive Definite Advection Scheme Obtained by Nonlinear Renormalization of the Advective Fluxes. Monthly Weather Review, [S.l.], v. 117, p. 1006-1015, 1989. BOTT, A. Reply. Monthly Weather Review, [S.l.], v. 117, p. 2633-2636, Nov. 1989. BOTT, A. Monotone Flux Limitation in the Area-preserving Flux-Form Advection Algorithm. Monthly Weather Review, [S.l.], v. 120, p. 25922602, Nov. 1992. BOTT, A. The Monotone Area-Preserving Flux-Form Advection Algorithm: Reducing the Time-Splitting Error in Two-Dimensional Flow Fields. Monthly Weather Review, [S.l.], v. 121, p. 2627-2641, Sept. 1993. BOUNAÏM, A. Domain Decomposition Methods. 2000. 49 p. (course) – University of Oslo, Oslo. Disponível em: . Acesso em: 20 nov. 2001. BORTOLI, A. L. De. Introdução à Dinâmica de Fluidos Computacional. Porto Alegre: Ed. da UFRGS, 2000. 134 p. BORTOLI, A. L. De; CUNHA, R. A Transient Simulation of the Carotid Artery Flow. In: VECTOR AND PARALLEL PROCESSING, VECPAR, 2002. Proceedings... Cidade do Porto: [s.n.], 2002. p. 17-27. BARTELLO, P.; THOMAS, S. J. The Cost-Effectiveness of Semi-Lagrangian Advection. Monthly Weather Review, [S.l.], v. 124, p. 2883-2897, Dec. 1996. BURCHARD, H.; BAUMERT, H. On the Performance of a Mixed-layer Model Based on the k-varepsilon Turbulence Closure. Journal Geophys. Res, [S.l.], v.100, p. 8523-8540, 1995. Disponível em: . Acesso em: 20 nov. 2001. BURCHARD, H.; PETERSEN, O. Models of Turbulence in the Marine Environment a Comparative Study of Two-equation Turbulence Models. 1997. Disponível em:< http://www.gotm.net/>. Acesso em: 12 abr. 1999. BURCHARD, H.; PETERSEN, O.; RUPPETH., T. P. Comparing the Performance of the Mellor-Yamada and the κ-ε Two-equation Turbulence Models. Disponível em: . Acesso em: 04 maio 1999. 238 BURCHARD, H.; BOLDING, K.; VILLARREAL, M. GOTM, a General Ocean Turbulence Model. Theory, Implementation and Test Cases. 1998. Disponível em:< http://www.gotm.net/>. Acesso em: 10 ago. 1999. [BUR2000] BURCHARD, H.; DELEERSNIJDER, E. Investigating the Stability of Algebraic Non-equilibrium Second-moment Turbulence Closure Models. Submitted to Ocean Modelling Online, revised version, Sept. 2000. Disponível em:< http://www.gotm.net/>. Acesso em 01 dez. 2000. [BUR2000a] BURCHARD, H. Note on the q2l by Mellor and Yamada [1982]. Accepted for publication in Journal of Physical Oceanography, Aug., 2000. Disponível em:. Acesso em: 20 dez. 2000. [BUR2000b] BURCHARD, H.; BOLDING, K. Comparative Analysis of Four SecondMoment Turbulence Closure Models for the Oceanic Mixed Layer. Accepted for publications in Physical Oceanography, July 2000. Disponível em : . Acesso em: 25 out. 2000. [BYU99] BYUN, D. W.; YOUNG, J.; PLEIM J. Numerical Transport Algorithms for the Community Multiscale Air Quality (CMAQ) Chemical Transport Model in Generalized Coordinates. [S.l.]: National Oceanic and Atmospheric Administration, 1999. 55 p. (EPA/600/R-99/030). [CAM99] CAMPOS, E. J. D. O Modelo Oceânico da Universidade de Princeton (POM). 1999. 16 p. Mini-Curso no Workshop sobre Ambientes Costeiros e Mudanças Globais – Instituto Oceanográfico, Universidade de São Paulo. [CAN2000] CANUTO, V. M.; HOWARD, A.; CHENG, Y.; DUBOVIKOV, M. S. Ocean Turbulence I: One-point Closure Model. Momentum and Heat Vertical Diffusivities With and Without Rotation. Journal of Physical Oceanography, submitted 2000. [CAR2002] CARVALHO, E. C. A.; DORNELES, R. V.; RIZZI, R. L.; DIVERIO, T. A. Modelagem de um Cluster Heterogêneo para ser Utilizado em Particionamento e Mapeamento de Domínios de Aplicações Paralelizáveis, Baseado em Programas Específicos de Benchmarks. WPERFORMANCE, 2002. Anais... Florianópolis: SBC, 2002, 12 p. [CAR2002a] CARVALHO, E. C. Algoritmos e Software para Particionamento de Domínios e Mapeamento em Clusters Heterogêneos. 2002. Dissertação (Mestrado em Ciência da Computação) – Instituto de Informática, UFRGS, Porto Alegre. [CAS90] CASULLI, V. Semi-Implicit Finite Difference Methods for the TwoDimensional Shallow Water Equations. Journal of Computational Physics, [S.l.], v. 86, p. 56-74, 1990. [CAS92] CASULLI, V.; CHENG, R. T. Semi-Implicit Finite Difference Methods for Three-Dimensional Shallow Water Flow. International Journal for Numerical Methods in Fluids, [S.l.], v. 15, p. 629-648, 1992. [CAS94] CASULLI, V.; CATTANI, E. Stability, Accuracy and Efficiency of a SemiImplicit Method for Three-Dimensional Shallow Water Flow. Computers Math. Applic., [S.l.], v. 27, n. 4, p. 99-112, 1994. [CAS97] CASULLI, V. Numerical Simulation of Three-Dimensional Free Surface Flow in Isopycnal Co-ordinates. International Journal for Numerical Methods in Fluids, [S.l.], v. 25, p. 645-658, 1997. [CAS2000] CASULLI, V.; WALTERS, R. An Unstructured Grid, Three-dimensional Model Based on the Shallow Water Equations. International Journal for Numerical Methods in Fluids, [S.l.], v. 32, p. 331-348, 2000. [CAT98] CATABRIGA, L. Estudo de Pré-Condicionadores para o Método GMRES Usando Estruturas de Dados por Arestas. 1998. 57 p. (Seminário de Qualificação ao doutorado) - COPPE, UFRJ, Rio de Janeiro. Disponível em: . Acesso em: 17 nov. 1999. [BUR98a] 239 [CET2001] CETESB. Disponível em : . Acesso em: 08 fev. 2002. [CHA94] CHAN, T. F.; MATHEW, T. P. Domain Decomposition Algorithms. Acta Numerica, Los Angeles, p. 61-143, Aug. 1994. [CHE84] CHENG, R. T.; CASULLI, V.; MILFORM, S. N. Eulerian-Lagrangian Solution of the Convection-Dispersion Equation in Natural Coordinates. Water Resources Research, [S.l.], v. 20, n. 7, p. 944-952, July 1984. [CHE93] CHENG, R. T.; CASULLI, V.; GARTNER, J. W. Tidal, Residual, Intertidal Mudflat (TRIM) Model and its Applications to San Francisco Bay, California. Estuarine, Coastal and Shelf Science, [S.l.], v. 36, p. 235280. 1993. [CHF94] CHEFTER, J. G.; CHU, C. K.; KEYES, D. E. Domain Decomposition for the Shallow Water Equations. In: INTERNATIONAL CONFERENCE ON DOMAIN DECOMPOSITION METHODS IN SCIENTIFIC AND ENGINEERING COMPUTING, 9.,1994. Proceedings... [S.l.]: Ed. Domain Decomposition Methods Org., 1994. Disponível em: . Acesso em: 19 nov. 1999. [CHL94] CHLOND, A. Locally Modified Version of Bott’s Advection Scheme. Monthly Weather Review, [S.l.], v. 122, p. 111-115, 1994. [CHO97] CHOW, E. T. Robust Preconditioning for Sparse Linear Systems. 1997. 163 p. Ph.D. Dissertation (Computer Science) - Graduate School of the University of Minnesota, Minneapolis. Disponível em: . Acesso em: 23 out. 1999. [CHR90] CHRISTARA, C. C. Parallel Computation of Partial Differential Equations on Distributed Memory Machines. Toronto : Departament of Computer Sciences, 1990. Disponível em: . Acesso em: 16 nov. 1999. [CHU96] CHAU, K. W.; JIN., H.S.; SIN, Y.S. A Finite Difference Model of TwoDimensional Tidal Flow in Tolo Harbor, Hong Kong. Applied Math. Modelling, Hung Hom, v. 20, p. 321-328, July 1996. [CLA94] CLAUDIO, D. M.; MARINS, J. M. Cálculo Numérico Computacional: Teoria e Prática. São Paulo: Atlas, 1994. 464 p. [CMO99] CAMPOS, J. L. E. Análise Numérica do Transporte de Contaminantes em Meios Porosos com Reações Químicas. 1999. 95 p. Tese (Doutorado em Engenharia Civil) - Departamento de Engenharia Civil, PUC-RJ, Rio de Janeiro. [CNL2000] CANAL, A. P. Paralelização de Métodos de Resolução de Sistemas Lineares Esparsos com o DECK em um Cluster de PCs. 2000. 117 p. Dissertação (Mestrado em Ciência da Computação) – Instituto de Informática, UFRGS, Porto Alegre. [COL84] COLELLA; P., WOODWARD, P. R. The Piecewise Parabolic Method (PPM) for Gas-Dynamical Simulations. Journal Comp. Phys., [S.l.], n. 54, p. 174, 1984. [COL98] COLELLA, P.; PUCKETT E. G. Modern Numerical Methods for Fluid Flow. [S.l.:s.n.], 1998. 149 p. Disponível em: . Acesso em: 25 jul. 1999. [COL98] COLELLA, P.; PUCKETT E. G. Modern Numerical Methods for Fluid Flow. [S.l.:s.n.], 1998. 149 p. Disponível em: . Acesso em: 01 jul. 1999. [CON98] CONCUS, P.; GOLUB, G. H.; SUN, Y. An Object Oriented Parallel Algorithm for 3D Isopycnal Flow Simulations. 1998. Disponível em: < http://www-sccm.stanford.edu/~ysun/Research/papers/Isopycnal.html > Acesso em: 03 nov. 1999. 240 CÔTÉ, J. et al. The Operational CMC-MRB Global Environmental Multiscale (GEM) Model. Part I: Design Considerations and Formulation. Monthly Weather Review, [S.l.], v.126, p.1373-1395, June 1998. [CRU97] CRUZ, G. A. M. Algoritmos Paralelos Iterativos do Tipo Quasi-Newton para a Minimização de Funções Multivariadas. 1997. p. 94. Dissertação (Mestrado em Matemática) - Instituto de Matemática, UFRGS, Porto Alegre. [CSL85] CASSALAS, A. B. Modelo Matemático de Correntologia do Estuário do Rio Guaíba. Porto Alegre: Instituto de Pesquisas Hidráulicas, UFRGS. 1985. 68 p. (Relatório Técnico, n.12). [CUM2000] CUMINATO, J. A.; MENEGUETTE Jr., M. Discretização de Equações Diferenciais Parciais – Técnica de Diferenças Finitas. 2000. 232 p. Disponível em: . Acesso em: 11 dez. 2000. [CUN92] CUNHA, R. D. A Study on Iterative Methods for the Solution of Systems of Linear Equations on Transputer Networks. 1992. 215 p. Ph.D. Dissertation- Computing Laboratory, University of Kent, Canterbury. [DEB98] DEBREU, L.; BLAYO, E. On the Schwarz Alternating Method for Oceanic Models on Parallel Computers. Journal of Computational Physics, [S.l.], v. 141, p. 93-111, 1998. [DEM96] DEMMEL, J. CS267 - Applications of Parallel Computers. 1996. Disponível em : . Acesso em :29 dez. 2000. [DEM99] DEMMEL, J. CS267 – Applications of Parallel Computers. Lecture 23: Load Balancing and Scheduling. 1999. Disponível em : . Acesso em: 10 jan. 2000. [DEN99] DENARO, F. M.; MARRA, F. S.; CONTINILLO, G. High Order Numerical Schemes with Positivity-Preserving Properties for the Solution of the Transport Equations in Reactive Flows. 1999. Disponível em: . Acesso em: 27 fev. 2000. [DIE97] DIEKMANN, R.; MONIEN, B.; PREIS, R. Load Balancing Strategies for Distributed Memory Machines. Wold Scientific, [S.l.], p. 1-12, 1997. [DIE97a] DIEKMANN, R.; MUTHUKRISHNAN, S.; NAYAKKANKUPPAM, M. V. Engineering Diffusive Load Balancing Algorithms Using Experiments. In: INTERNATIONAL SOLVING IRREGULARLY STRUCTURED PROBLEMS IN PARALLEL, IRREGULAR, 1997. Proceedings... Berlin: Springer Verlag, 1997. p. 111-122. (Lectures Notes in Computer Science, v. 1253). [DIN98] DING, X. Numerical Solution of the Shallow-Water Equations on Distributed Memory Systems. 1998. 73 p. Master of Science (Computer Science). University of Toronto, Toronto. Disponível em: . Acesso em: 19 nov. 1999. [DOR2000] DORNELES, R. V.; RIZZI, R. L.; ZEFERINO, C. A.; DIVERIO, T. A.; NAVAUX, P. O. A.; BAMPI, S.; SUZIN, A. A. A PC Cluster Implementation of a Mass Transport Two Dimensional Model. In: SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING, SBAC-PAD, 12., 2000. Proceedings... São Pedro: SBC, 2000. p. 191-198. [DOR2000a] DORNELES, R. V.; RIZZI, R. L.; ZEFERINO, C. A.; DIVERIO, T. A.; BAMPI, S.; SUZIN, A. A.; NAVAUX, P. O. A. Parallel Solution for Shallow Water Equations Using Data Decomposition. In: WORKSHOP DE SISTEMAS DISTRIBUIDOS Y PARALELISMO, WSDP, 4., 2000. Proceedings... Santiago: Ed. da Universidade de Santiago, 2000. [COT98] 241 [DOR2001] DORNELES, R. V.; RIZZI, R. L.; DIVERIO, T. A.; NAVAUX, P. O. A. hRefined Krylov-Schwarz Solution for Hydrodynamics and Mass Transport in a PC Cluster. In: SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING, SBAC-PAD, 13., 2001. Proceedings... Pirenópolis: SBC, 2001. p. 17-24. [DOR2001a] DORNELES, R. V. Particionamento de Domínio e Balanceamento Dinâmico de Carga em Arquiteturas Heterogêneas: Aplicação a Modelos Hidrodinâmicos e de Transporte de Massa 2D e 3D. 2001. 73 p. Proposta de Tese - Instituto de Informática, UFRGS, Porto Alegre. [DOR2002] DORNELES, R. V. Particionamento de Domínio e Balanceamento Dinâmico de Carga. 2002. Tese (Doutorado em Ciência da Computação) Instituto de Informática, UFRGS, Porto Alegre. [DRY89] DRYJA, M.; WIDLUND, O. B. Towards a Unified Theory of Domain Decomposition Algorithms for Elliptic Problems. In: INTERNATIONAL SYMPOSIUM ON DOMAIN DECOMPOSITION METHODS FOR PARTIAL DIFFERENTIAL EQUATIONS, 3., 1989. Proceedings... Houston: SIAM Publications, 1990. p. 3-21. [DUF99] DUFF, I. S.; VORST, H. A. Van der. Developments and Trends in the Parallel Solution of Linear Systems. Parallel Computing, [S.l.], v. 25, p. 1931-1970, Feb. 1999. [DYE88] DYER, K.R. Fine sediment particle transport in estuaries. In: DROKERS, J.; LEUSSEN, W.V. (Ed.). Physical Processes in Estuaries. New York. Springer-Verlag, 1988. p. 295-310. [EAS98] EASTEMANN, J. R. IDRISE – Manual do Usuário, versão digital. Porto Alegre: Centro de Recursos IDRISI Brasil, 1998. Disponível em: < http:// www.ecologia.ufrgs.br/idrise/>. Acesso em : 04 nov. 1999. [EYM97] EYMARD, R.; GALLOUËT, T.; HERBIN, R. Finite Volume Methods. Marseille: [s.n.], 1997. 234 p. Disponível em: . Acesso em: 22 nov. 1999. [FAL91] FALCONER, R. A.; CHEN, Y. An Improved Representation of Flooding and Drying and Wind Stress Effects in a Two-dimensional Tidal Numerical Model. In: INST. CIV. ENGRS, 1991. Proceedings... [S.l]: Maritime Board, 1991. part 2. p. 659-678. [FER97] FERZIGER, J. H.; PERIC, M. Computational Methods for Fluid Dynamics. Berlin: Springer, 1997. 364 p. [FLE88] FLETCHER, C. A. J. Computational Techniques for Fluid Dynamics. New York: Springer-Verlag, 1988. v. 1. [FLE88a] FLETCHER, C. A. J. Computational Techniques for Fluid Dynamics. New York: Springer-Verlag, 1988. v. 2. [FOR96] FORTUNATO, A. B. Three-Dimensional Modeling of Coastal Flows Using Unstructured Grids. 1996. 234 p. Ph.D. Dissertation (Environmental Science and Engineering) - Oregon Graduate Institute of Science & Technology, Portland. [FOR99] FORTUNATO, A. B.; OLIVEIRA, A. An Adaptive Grid Technique for the Vertical Structure of Shallow Water Models. Applied Mathematics Modelling, [S.l.], v. 23, p. 639-650, 1999. [FOX98] FOX, R. W.; McDONALD, A. T. Introdução à Mecânica dos Fluidos. Rio de Janeiro: LTC, 1998. 662 p. [FRT2000] FORTUNA, A. de O. Técnicas Computacionais para Dinâmica dos Fluidos: Conceitos Básicos e Aplicações. São Paulo :EDUSP, 2000. 426 p. [GAL88] GALPERIN, B.; KANTHA, L. H.; HASSID, S.; ROSATI, A. A QuasiEquilibrium Turbulent Energy Model for Geophysical Flows. Journal Atmos. Sci, [S.l.], v. 45, p. 55-62, 1988. 242 GAREY, M. R.; JOHNSON, D. S. Computer and Intractability: a Guide to the Theory of NP-completeness. San Francisco: Freeman, 1979. 338 p. [GER85] GERALD, C. F.; WHEATLEY, P. O. Applied Numerical Analysis. 3rd ed. New York: Addison-Wesley, 1985. 576 p. [GHO96] GHOSH, B.; MUTHUKRISHNAN, U. W.; SCHULTZ, M. H. First and Second Order Diffusive Methods for Rapid, Coarse, Distributed Load Balancing. In: ANNUAL ACM SYMPOSIUM ON PARALLEL ALGORITHMS AND ARCHITECTURES, 8., 1996. Proceedings... Padua: ACM, 1996. p. 72-81. [GLT2002] GALANTE, G.; BALBINIT, J. I.; RIZZI, R. L.; DORNELES, R. V.; DIVERIO, T. A. Processamento de Alto Desempenho Aplicado a Modelos Computacionais de Dinâmica de Fluidos Ambiental. In: ESCOLA REGIONAL DE ALTO DESEMPENHO, ERAD, 2., 2000. Anais... São Leopoldo: SBC, 2002. p. 271-274. [GOL96] GOLUB, G. H.; VAN LOAN, C. F. Matrix Computations. Baltimore: John Hopkins University Press, 1996. 694 p. [GOM95] GOMEZ-REYES, E.; BLUMBERG, A. F. Pollutant Transport in Coastal Water Bodies. In: INTERNATIONAL CONF. ON COMP. MODELLING OF SEARS AND COAST. REGIONS, 2., 1995. Proceedings... Boston: Computational Mechanics Publications, 1995. p. 87-94. [GOO96] GOOSSENS, S.; TAN, K.; ROOSE, D. An Efficient FGMRES Solver for the Shallow Water Equations Based on Domain Decomposition. In: INTERNATIONAL CONFERENCE ON DOMAIN DECOMPOSITION METHODS IN SCIENTIFIC AND ENGINEERING COMPUTING, 9., 1996. Proceedings... Disponível em: < http://www.ddm.org.1999>. Acesso em : 29 nov. 1999. [GOO99] GOOSSENS, S.; CAI, X. C. Lower Dimensional Interpolation in Overlapping Composite Mesh Difference Methods. In: INTERNATIONAL CONFERENCE ON DOMAIN DECOMPOSITION METHODS IN SCIENTIFIC AND ENGINEERING COMPUTING, 10., 1999. Proceedings... Disponível em: . Acesso em : 12 mar. 2000. [GRI2000] GRIFFIES, S. M. et al. Developments in Ocean Climate Modelling. Ocean Modelling, [S.l.], v. 2, p. 123-192, 2000. [GRO98] GROSS, E. S.; CASULLI, V.; BONAVENTURA, L.; KOSEFF, J. A SemiImplicit Method for Vertical Transport in Multidimensional Models. International Journal for Numerical Methods in Fluids, [S.l.], v. 28, p. 157-186, 1998. [GRO99] GROSS, E.; KOSEFF, J. R.; MONISMITH, S. G. Evaluation of Advective Schemes for Estuarine Salinity Simulation. Journal of Hydraulic Engineering, [S.l.], v. 125, p. 32-46, Jan. 1999. [GRO99a] GROSS, E. S.; KOSEFF, J. R.; MONISMITH, S. Three-Dimensional Salinity Simulations of South San Francisco Bay. Journal of Hydraulic Engineering, [S.l.], v. 125, n. 11, p. 1199-1209, Nov. 1999. [GRP94] GROPP, W. Parallel Computing and Domain Decomposition. Mathematics and Computer Science Division, Argonne National Laboratory, 1994. Disponível em: . Acesso em: 25 nov. 1999. [GRP98] GROPP, W. D.; KEYES, D. E.; MCINNES, L. C.; TIDRINI, M. D. Globalized Newton-Krylov-Schwarz Algorithms and Software for Parallel Implicit CFD. Langley, Hampton: NASA Langley Res. Center, 1998. 37 p. (ICASE Report 98-24, NASA/CR-1998-208435). Disponível em: . Acesso em: 07 nov. 1999. [GAR79] 243 [GRP2000] GROPP, W.; LUSK, E. Installation Guide to Mpich, a Portable Implementation of MPI Version 1.2.1. 2000. Disponível em: . Acesso em: 24 jan. 2001. [GRS99] GERISH, A.; GRIFFITHS, D. F.; WEINER, R.; CHAPLAIN, M. A. J. Splitting Methods for Mixed Hyperbolic-Parabolic Systems. Dundee: University of Dundee, 1999. 26 p. (Numerical Analysis Report NA/186). [GRT2000] GERRITSMA, M. I.; KOREN, B. Introduction to Computational Fluid Dynamics. [S.l.:s.n.], 2000. 80 p. Disponível em: . Acesso em: 30 jan. 2001. [GUP95] GUPTA, A.; KUMAR, V. Parallel Algorithms for Forward and Back Substitution in Direct Solution of Sparse Linear Systems. 1995. Disponível em: . Acesso em : 20 dez. 1999. [HAR72] HARTEN, A.; ZWAS, G. Self-adjusting Hybrid Schemes for Schock Computations. Journal of Computational Physics, [S.l.], v.9, p. 568583, 1972. [HAR83] HARTEN, A. High Resolution Schemes for Hyperbolic Conservation Laws. Journal of Computational Physics, [S.l.], v.49, p. 357-393, 1983. [HAW91] HAWKEN, D. F.; GOTTLIEB, J. J.; HANSEN, J. S. Review of Some Adaptive Node-Movement Techniques in Finite-Elements and FiniteDifference Solutions of Partial Differential Equations. Journal of Computational Physics, [S.l.], v. 95, p. 254-302, 1991. [HEA2001] HEATH, M. T. Scientific Computing an Introductory Survey. 2001. 48 p. Chapter 1. (polígrafo) - Computational Science and Engineering (CSE), University of Illinois. Disponível em: . Acesso em: 27 abr. 2002. [HEI99] HEITLAGER, I.; ENGELEN, R.; WOLTERS, L. The Construction of FluxLimiting Advection Algorithms through Program Generation. 1999. Disponível em : . Acesso em : 14 jan. 2000. [HEM99] HEMKER, P.W. Eight Lectures on Discretisation Principles and Hyperbolic Conservation Laws. [S.l.:s.n.], 1999. 128 p. Disponível em: < http://www.>. Acesso em: 25 nov. 2000. [HEM2000] HEMKER, P.W. Numerical Hydrodynamics or Computational Fluid Dynamics. [S.l.:s.n.], 2000. 55 p. Disponível em: . Acesso em: 25 nov. 2000. [HEN93] HENDRICKSON, B.; LELAND, R. Multidimensional Spectral Load Balancing. 1993. Disponível em: . Acesso em: 28 nov. 1999. [HEN95] HENDRICKSON, B.; LELAND, R. The Chaco User’s Guide. Version 2.0. 1995. Disponível em : . Acesso em : 20 nov. 1999. [HIR92] HIRSCH, C. Numerical Computation of Internal and External Flows: Fundamentals of Numerical discretization. Chichester: John Wiley & Sons, 1992. v. 1. [HOS80] HOSSAIN M. S. Hossain. Mathematische Modellierung von Turbulenten Auftriebsströmungen. 1980. 145 p. PhD thesis Universität Karlsruhe, Karlsruhe. [HUA94] HUANG, W.; REN, Y.; RUSSEL, R. D. Moving Mesh Methods Based on Moving Mesh Partial Differential Equations. Journal of Computational Physics, [S.l.], v. 113, p. 279-290, 1994. [HUA94a] HUANG, W.; REN, Y.; RUSSEL, R. D. Moving Mesh Partial Differential Equations (MMPDES) Based on the Equidistribution Principle. SIAM Journal of Numerical Analysis, [S.l.], v. 31, n. 3, p. 709-730, June 1994. 244 [HUA97] [HUA99] [HUN95] [HUN96] [IOR88] [IOV89] [JOS97] [JÚD96] [KAL99] [KAP98] [KAR98] [KEL95] [KER70] [KEY95] [KEY97] HUANG, W.; RUSSEL, R. D. A High Dimensional Moving Mesh Strategy. 1997. Disponível em : . Acesso em : 04 nov. 1999. HUANG, W. Practical Aspects of Formulations and Solutions of Moving Mesh Partial Differential Equations. 1999. Disponível em: < http:// titania.math.ukans.edu/~reports/1999.html>. Acesso em: 22 jan. 2000. HUNDSORFER, W.; KOREN, B.; LOON, M. V; VERWER, J. G. A Positive Finite-Difference Advection Scheme. Journal of Computational Physics, [S.l.], v.117, p.35-46, 1995. HUNDSDORFER, W. Numerical Solution of Advection-diffusionReaction Equations. 1996. 89 p. (Lecture Notes for Ph.D. Course) Thomas Stieltjes Institute, Amsterdam. (Report NM-N9603). Disponível em: . Acesso em 20 out. 1999. IÓRIO JÚNIOR, R.; IÓRIO, V. M. Equações Diferenciais Parciais: Uma Introdução. Rio de Janeiro: IMPA, 1988. 366 p. IÓRIO, V. M. EDP: Um Curso de Graduação. Rio de Janeiro: IMPA, 1989. 285 p. JOSHI, M. V.; GUPTA, A.; KARYPIS, G.; KUMAR, V. A High Performance Two Dimensional Scalable Parallel Algorithm for Solving Triangular Systems. 1997. Disponível em: . Acesso em : 13 dez. 1999. JÚDICE, J. J.; PATRICIU, J. M. Sistemas de Equações Lineares. Coimbra : Departamento de Matemática da Universidade de Coimbra, 1996. 151 p. KALLOS, K. Model Dynamics. Atmospheric Modeling & Weather Forecasting Group. Disponível em: . Acesso em: 24 nov. 1999. KAPLAN, E. A Shallow Water Model Distributed Using Domain Decomposition. 1998. 74 p. (Master’s Thesis of Numerical Analysis and Computing Science). Royal Institute of Technology, [S.l.]. Disponível em: . Acesso em: 25 nov. 1999. KARYPIS, G.; KUMAR, V. METIS: A Software Package for Partitioning Unstructured Graphs, Partitioning Meshes, and Computing Fill-Reducing Orderings of Sparse Matrices. 1998. Disponível em : . Acesso em: 14 jun. 1999. KELLEY, C. T. Iterative Methods for Linear and Nonlinear Equations. Philadelphia : SIAM, 1995. 165 p. KERNIGHAN, B.; LIN, S. An Effective Heuristic Procedure for Partitioning Graphs. The Bell System Technical Journal, [S.l.], p. 291-308, Feb. 1970. KEYES, D. E. Aerodynamic Applications of Newton-Krylov-Schwarz Solvers. In: INTERNATIONAL CONFERENCE ON NUMERICAL METHODS IN FLUID DYNAMICS, 14., 1995. Proceedings... New York: Springer, 1995. p. 1-20. Disponível em: . Acesso em: 19 jul. 1999. KEYES, D. E.; VENKATAKRISHNAN, V. Newton-Krylov-Schwarz Methods: Interfacing Sparse Linear Solvers with Nonlinear applications. Norfolk : Department of Computer Science, Old Dominion University, Norfolk and ICASE, 1997. Disponível em: . Acesso em : 11 dez. 1999. 245 [KIM94] KIM, C.; LEE, J. A Three-dimensional PC-based Hydrodynamic Model Using an ADI Scheme. Coastal Engineering, [S.l.], v. 23, p. 271-287, 1994. [KLR2000] KELLER, S. C. Desenvolvimento de uma técnica Numérica pra Análise de Escoamentos em Cavidades para Rayleigh entre 102 e 105. 2000. 108 p. Dissertação (Mestrado em Matemática Aplicada) – Institulo de Matemática, UFRGS, Porto Alegre. [KNU93] KNUPP, P.; STEINBERG, S. Fundamentals of Grid Generation. Boca Raton : CRC Press, 1993. 286 p. [KUM2002] KUMAR, V. Graph Partitioning & Applications in High Performance Computing. 2002. 52 p. (Resumo) – Army High Performance Computing Research Center & Depto. Of Computer Science & Engineering, University of Minnesota, Minnesota. [LAK95] LAKSHMIVARAHAN, S.; DHALL, K, S. Analysis and Design of Parallel Algorithms. New York: McGraw-Hill, 1995. 657 p. [LAN97] LANGROIS, G.; SERPETTE, A. MIAMI Isopycnic Coordinate Ocean Model: Analytical and Numerical Study of the Theoretical the Thermodynamic Foundations of the Code. 1997. Disponível em: . Acesso em: 04 nov. 1999. [LEC92] LECA, P.; MANE, L. A 3D ADI Algorithm on Distributed Memory Multiprocessors. In: SIMOM, Host D. (Ed). Parallel Computational Fluid Dynamics. Cambridge : The MIT Press, 1992. p. 150-164. [LEE67] LEENDERTSE, J. J. Aspects of a Computational Model For LongPeriod Water-wave Propagation. Santa Monica: The Rand Corp., 1967. 165p. (Technical Report RM-5294-RC). [LEE70] LEENDERTSE, J. J. A Water-Quality Simulation Model for Well-Mixed Estuaries and Coastal Seas. Santa Monica: The Rand Corp., 1970. v. 1. (Principles of Computation. Technical Report RM-6230-RC). [LEE71] LEENDERTSE, J. J.; GRITTON, E. C. A Water-Quality Simulation Model for Well-Mixed Estuaries and Coastal Seas. Santa Monica: The Rand Corp. 1971. v. 2. (Computation Procedures. Technical Report R-708-NYC). [LEE89] LEENDERTSE, J. J. A New Approach to Three-dimensional FreeSurface Flow Modeling. Santa Monica: The Rand Corp., 1989. 51 p. (Technical Report R-3712-NETH/RC). [LEO79] LEONARD, B. P. A Stable and Accurate Convective Modeling Procedure Based on Quadratic Upstream Interpolation. Comput. Methods. Appl. Mech. Eng., [S.l.], v. 19, p. 59-98, 1979. [LER85] LEER, B. van. Large-Scale Computation in Fluid Mechanics. Providence: American Math. Soc. 1985. 327 p. [LEV2001] LEVY, D. Computational Methods for Fronts, Waves and Interfaces: Conservation Laws. 2001. 8 p. (course) - Department of Mathematics, Stanford University, Stanford. [LEV92] LEVEQUE, R. J. Numerical Methods for Conservation Laws. Zürich: Birhhäuser Verlag, 1992. [LEV96] LEVEQUE, R. J. High-Resolution Conservative Algorithms for Advection in Incompressible Flow. SIAM Journal Numerical Analysis, [S.l.], v. 33, n. 2, p. 627-665, Apr. 1996. [LIE2001] LIE, K. Introduction to Domain Decomposition Methods. 2001. 43 p. (course in Winter School on Parallel Computing) – SINTEF Applied Mathematics, Department of Numerical Simulation, Department of Informatics, University of Oslo, Oslo. 246 [LIN96] [LIS98] [LIY96] [LOM2000] [LOO92] [LUC2000] [MAC76] [MAL95] [MAL96] [MAN2001] [MAR2002] [MAT99] [MEI97] [MEL74] [MEL82] [MEL98] LIN, S.; ROOD, R. B. Multidimensional Flux-Form Semi-Lagrangian Transport Schemes. Monthly Weather Review, [S.l.], v. 119, p. 20462070, 1996. LI, S.; PETZOLD, L.; REN, Y. Stability of Moving Mesh Systems of partial Differential Equations. SIAM Journal Sci. Comput, [S.l.], v. 20, n. 2, p. 719-738, 1998. LI, Y. S.; ZHANG, M. Y. A Semi-implicit Three-dimensional Hidrodymanic Modelo Incomporating the Influence of Flow-dependent Eddy Viscosity, Bottom Topography and Wave-current Interaction. Applied Ocean Research, [S.l.], v. 18, p. 173-185, 1996. LOMAX, H.; PULLIAM, T. H.; ZINGG, D. W. Fundamentals of Computational Fluid Dynamics. 2000. Disponível em: . Acesso em : 09 jan. 2001. LOON, M. Tests on Semi-Lagrangian Transport and Interpolation. 1992. Amsterdam: Centrum voor Wiskunde en Informatica, 1992. (Report NM-R9217). Disponível em: . Acesso em: 17 maio 1999. LUCAS, B. Applications of Parallel Computers. Lecture 14 (CS267): Graph Partitioning II. 2000. Disponível em: . Acesso em : 17 fev. 2001. MACEDO, H. Dicionário de Física. Rio de Janeiro: Nova Fronteira, 1976. 367 p. MALISKA, C. R. Transferência de Calor e Mecânica dos Fluidos Computacional. Rio de Janeiro: LTC, 1995. 424 p. MALEVSKY, A. V.; THOMAS, S. J. Parallel Algorithms for SemiLagrangian Advection. J. Numer. Methods Fluids. Disponível em: . Acesso em: 19 nov. 1999. MANTOVANELLI, A. Caracterização dos Fluxos Hídricos e de Material Particulado em Suspensão nas Baías de Antonina e Paranaguá (PR, Brasil). Projeto de Pesquisa de Mestrado. Disponível em: . Acesso em: 20 de fev. 2001. MARTINOTTO, A. L.; FRIZZO, E. J.; DORNELES R. V.; DIVERIO, T. A. Paralelização do Método do GMRES com MPI e Threads. SCIENTIA, São Leopoldo, v.1, ago. 2002. MATOS, D. M. M. Estudo Comparativo de Funções de Interpolação na Simulação de Escoamentos Supersônicos para Mach 2.0, 2.8 e 3.75. 1999. 89 p. Dissertação (Mestrado em Matemática Aplicada) – Institulo de Matemática, UFRGS, Porto Alegre. MEIER, H. E. M. Embedding a κ-ε Turbulence Model Into a Threedimensional Model of the Western Baltic Sea. 1997. Disponível em: . Acesso em: 24 jul. 1999. MELLOR, G. L.; YAMADA, T. A Hierarchy of Turbulence Closure Models for Planetary Boundary Layers. Journal of the Atmospheric Sciences, [S.l.], v. 32, p. 1791-1806, 1974. MELLOR, G. L.; YAMADA, T. Development of a Turbulence Closure Model for Geophysical Fluid Problems. Rev. Geophys, [S.l.], v. 20, p. 851-875, 1982. MELLOR, G. L. Users Guide for A Three-Dimensional, Primitive Equation, Numerical Ocean Model. Princeton: Program in Atmospheric 247 and Oceanic Sciences Princeton University, 1998. Disponível em: . Acesso em: 03 out. 1999. [MEL98a] MELLOR, G. L.; OEY, L. Y.; EZER, T. Sigma Coordinate Pressure Gradient Errors and the Seamount Problem. Journal of Atmospheric and Oceanic Technology, [S.l.], v. 15, p. 1122-1131, Oct. 1998. [MEN98] MENEGAT, R.; PORTO, M. L.; CARRARO, C. C.; FERNANDES, L. A. D. (Coord.). Atlas Ambiental de Porto Alegre. Porto Alegre : Ed. da UFRGS, 1998. 228 p. [MES76] MESINGER, F.; ARAKAWA, A. Numerical Methods Used in Atmospheric Models. Global Atmospheric Research Program (GARP), [S.l.], v. 1, n. 17, p. 1-64, Sept. 1976. [MES84] MESINGER, F. A Blocking Technique for Representation of Mountains in Atmospheric Models. Rev. Meteor. Aeronaut., [S.l.], v. 44, p. 195-202, 1984. [MES98] MESINGER, F. Numerical Methods: The Arakawa Approach, Horizontal Grid. Global and Limited-Area Modeling. Camp Springs: Academic Press, 1998. 53 p. [MLO91] MELO, S.T.; NETO, F.M. Mecânica dos Fluidos e Equações Diferenciais. In: COLÓQUIO BRASILEIRO DE MATEMÁTICA, IMPA-SBM, 18., 1991. Anais... Rio de Janeiro: IMPA, 1991. [MOO92] MOORE, P.; FLAHERTY, J. E. Adaptive Local Overlapping Grid Methods for Parabolic Systems in Two Dimensions. Journal of Computational Physics, [S.l.], v. 98, p. 54-63, 1992. [MOU2001] MOURA, C. A. Parallel Numerical Methods for Differential Equations : a Survey. In: CORREA, E. et al. (Ed.). Models for Parallel and Distributed Computation: Theory, Algorithmic Techniques and Applications. [S.l.]: Kluwer, 2001. p. 38. [NAC2000] NACHBIN, A.; ALBUQUERQUE, D. L.; MARCHESIN, D. Global SemiLagrangian Advection. In: CONGRESSO BRASILEIRO DE METEOROLOGIA, SBMET, 11., 2000. Anais... [S.l.:s.n.], 2000. p. 35303537. Disponível em:. Acesso em: 01 jan. 2001. [NEI94] NEIL, B. An Investigation of the Dynamics of Several Equidistribution Schemes. 1994. 61 p. Thesis (Master in Mathematics) - Department of Mathematics, University of Reading, Reading. [NOB86] NOBLE, B.; DANIEL, J. W. Álgebra Linear Aplicada. Rio de Janeiro: Prentice-Hall do Brasil, 1986. 378 p. [OLI95] OLIVEIRA, A.; BAPTISTA, A. M. A Comparison of Integration and Interpolation Eulerian-Lagrangian Methods. International Journal for Numerical Methods in Fluids, [S.l.], v. 21, p. 183-204, 1995. [ORL83] ORLOB, G. T. (Ed.). Mathematical Modeling of Water Quality: Streams, Lakes, and Reservoirs. Chichester: John Wiley & Sons, 1983. 518 p. [OSH84] OSHER, S.; CHAKRAVARTHY, S. High Resolution Schemes and the Entropy Condition. SIAM Journal Numerical Analysis, [S.l.], v. 21, n. 5, p. 955-984, Oct. 1984. [PAC97] PACHECO, P. S. Parallel Programming with MPI. San Francisco: Morgan Kaufmann, 1997. 419 p. [PAG97] PAGLIERI, L.; AMBROSI, D.; FORMAGGIA, L.; QUARTERONI, A.; SCHEININE, A. L. Parallel Computation for Shallow Water Flow: A Domain Decomposition Approach. Parallel Computing, [S.l.], v. 23, p. 1261-1277, 1997. 248 [PAT87] PATNAIK, G.; GUIRGUIS, R. H.; BORIS, J. P.; ORAN, E. S. A Barely Implicit Correction for Flux-Corrected Transport. Journal of Computational Physics, [S.l.], v. 71, n.1, p. 1-20, July 1987. [PTK81] PATANKAR, S. V. Numerical Heat Transfer and Fluid Flow. New York: Hemisphere Publishing Co., 1981. 420 p. [PEL96] PELLEGRINI, F. SCOTCH 3.1 User’s Guide. 1996. Disponível em: . Acesso em: 23 jan. 2001. [PIC2001] PICININ JUNIOR, D.; DORNELES, R. V.; RIZZI, R. L.; DIVERIO, T. A. Paralelização de Métodos Iterativos do Subespaço de Krylov em Clusters Multiprocessados. In: CONGRESSO NACIONAL DE MATEMÁTICA APLICADA E COMPUTACIONAL, CNMAC, 24., 2001. Anais... Belo Horizonte: SBMAC, 2001. p. 325. [PIC2002] PICININ JÚNIOR, D.; RIZZI, R. L.; DORNELES, R. V.; DIVERIO, T. A. Parallelizing Conjugate Gradiente Method for Clusters Using MPI and Threads. In: INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED PROCESSING TECHNIQUES AND APPLICATIONS, PDPTA, 2002. Proceedings... Las Vegas: [s.n.], 2002. [PIC2002a] PICININ JÚNIOR., D.; MARTINOTTO, A. L.; RIZZI, R. L.; DORNELES, R. V.; DIVERIO, T. A.; NAVAUX, P. O. A. Ordenamento de Mensagens e PréCondicionamento na Solução Paralela do Gradiente Conjugado em Clusters de PCs Multiprocessados. In: WORKSHOP EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO, WSCAD, 3., 2002. Anais... Vitória : SBC, 2002. 8 p. [PIE84] PIELKE, R. A. Mesoscale Meteorological Modeling. New York: Academic Press, 1984. 612 p. [PIL96] PILKINGTON, J. R. Dynamic Partitioning of Non-Uniform Structured Workloads with Spacefilling Curves. IEEE Transactions on Parallel and Distributed Systems, [S.l.], v. 7, n. 3, p. 288-300, Mar. 1996. [POL92] POLLARD, A. D. Preconditioned Conjugate Gradient: Methods for Serial and Parallel Computers. 1992. 93 p. Thesis (Master in Mathematic) Department of Mathematics, University of Reading, Reading. [POV98] POVITSKY, A. Parallelization of the Pipelined Thomas Algorithm. Hampton: Institute for Computer Application in Science and Engineering, 1998. 21 p. (ICASE Report n. 98-48). [POV98a] POVITSKY, A. Parallelization of the Pipelined Thomas Algorithm for Sets of Linear Banded Systems. Hampton: Institute for Computer Application in Science and Engineering, 1998. 41 p. (ICASE Report n. 9845). [QUA99] QUARTERONI, A.; VALLI, A. Domain Decomposition Methods for Partial Differential Equations. Oxford, 1999. 376 p. [QUI94] QUINN, M.J. Parallel Computing – Theory and Practice. New York: McGraw-Hill, 1994. 446 p. [RAD98] RADI, B.; ESTRADE, J. Adaptive Parallelization Techniques in Global Weather Models. Parallel Computing, [S.l.], v. 24, p. 1167-1175, 1998. [RAN99] RANGO, S.; ZINGG, D. Aerodynamic Computations Using a HigherOrder Algorithm. Reno: American Institute of Aeronautics and Astronautics, 1999. 13 p. (AIAA 99-0167). [RIZ98] RIZZI, R. L. Simulação Numérica de Modelos Meteorológicos Parte 1: Cálculo de Várias Variáveis, Equações Diferenciais e Mecânica dos Fluidos. 1998, 109 p. Trabalho Individual I (Doutorado em Ciência da Computação) - Instituto de Informática, UFRGS, Porto Alegre. [RIZ99] RIZZI, R. L.; DORNELES, R. V.; DIVERIO, T. A. Solução da Equação doTransporte Bidimensional usando a Técnica ADI. In: CONGRESSO 249 NACIONAL DE MATEMÁTICA APLICADA E COMPUTACIONAL, CNMAC, 22., 1999. Anais... Santos: SBMAC, 1999. p. 86. [RIZ99a] RIZZI, R. L. Simulação Numérica de Modelos Meteorológicos Parte 2: Modelos Matemáticos, Discretização e Computação Paralela. 1999, 117 p. Trabalho Individual II (Doutorado em Ciência da Computação) - Instituto de Informática, UFRGS, Porto Alegre. [RIZ99b] RIZZI, R. L. Técnicas Matemáticas e Computacionais para Modelos Meteorológicos. 1999. 149 p. Exame de Qualificação (Doutorado em Ciência da Computação) - Instituto de Informática, UFRGS, Porto Alegre. [RIZ2000] RIZZI, R. L.; ZEFERINO, C. A.; DORNELES, R. V.; NAVAUX, P. O. A.; BAMPI, S.; SUZIN, A. A.; DIVERIO, T. A. Fluvial Flowing of Guaiba River Estuary: A Parallel Solution for the Shallow Water Equations Model. In: VECTOR AND PARALLEL PROCESSING, VECPAR, 2000. Proceedings… Cidade do Porto: Faculdade de Engenharia da Universidade do Porto, 2000. v.3, p. 895-896. [RIZ2001] RIZZI, R. L. Modelo Computacional Paralelo para a Hidrodinâmica e para o Transporte de Massa Bidimensional e Tridimensional. 2001. 152 p. Proposta de Tese (Doutorado em Ciência da Computação) Instituto de Informática, UFRGS, Porto Alegre. [RIZ2001a] RIZZI, R. L.; DORNELES, R. V.; CANAL, A. P.; GOULART, P. C.; DIVERIO, T. A. Aplicações de Alto Desempenho: Modelos Computacionais 2D e 3D para a Hidrodinâmica e o Transporte de Massa. In: ESCOLA REGIONAL DE ALTO DESEMPENHO, ERAD, 1., 2001. Anais... Gramado: SBC, 2001. p. 226-228. [RIZ2002] RIZZI, R. L.; DORNELES, R. V.; DIVERIO, T. A.; NAVAUX, P. O. A. Parallel Solution in PC Clusters by the Schwarz Domain Decomposition for ThreeDimensional Hydrodynamics Models. In: VECTOR AND PARALLEL PROCESSING, VECPAR, 2002. Proceedings... Cidade do Porto: [s.n.], 2002, p. 655-667. [RIZ2002a] RIZZI, R. L.; DORNELES, R. V.; DIVERIO, T. A. Esquemas Numéricos para a Hidrodinâmica e o Transporte de Massa 2D e 3D e Modelos de Parametrização de Turbulência. 2001. 160 p. (Relatório Técnico não publicado) – Instituto de Informática, UFRGS, Porto Alegre. [ROD80] RODI, W. Turbulence Models and Their Applications in Hydraulics. A State of the Art Review. In: EXPERIMENTAL AND MATHEMATICAL FLUID DYNAMICS, IAHR, 1980. Proceedings... [S.l.]: IAHR, 1980. [ROE97] ROEST, M. R. T. Partitioning for Parallel Finite Difference Computations in Coastal Water Simulation. 1997. 167 p. Ph.D. Dissertation (Hydraulic and Environmental Engineering)- Delft University of Technology, Delft. Disponível em: . Acesso em: 07 jun. 1999. [ROO87] ROOD, R. B. Numerical Advection Algorithms and Their Role in Atmospheric Transport and Chemistry Models. Reviews of Geophysics, [S.l.], v. 25, n. 1, p. 71-100, Feb. 1987. [ROS2000] ROSATTI, G.; BONAVENTURA, L.; VILLA, D. A. Three-Dimensional Numerical Modelling of Pollutant Transport in the Lagoon of Venice. In: CONVEGNO DI IDRAULICA E CONSTRUZIONI IDRAULICHE, IDRA, 27., 2000. Proceedings... Trento: Ed. da Universitá degli Studi di Trento, 2000. Disponível em: . Acesso em : 08 jan. 2001. [SAA96] SAAD, Y. Iterative Methods for Sparse Linear Systems. Boston: PWS Publishing Company, 1996. 447 p. 250 [SAA99] SAAD, Y. High-Performance Iterative Solution Methods. 1999. Lecture Notes for CscSci 8314 and Scicom 8002. Disponível em: . Acesso em: 01 dez. 2000. [SAA2002] SAAD, Y. Iterative Methods for Large Sparse Matrix Problems: Parallel Implementations. 84 p. (course in Winter Workshop on Iterative Methods for Large Sparse Matrix Problems) 2002. Brisbane. Disponível em: . Acesso em: 04 Jan. 2002. [SAT98] SATTINGER, D. H. Partial Differential Equations of Applied Mathematics. Department of Mathematics Utah State University and Yale University. Disponível em: . Acesso em: 27 nov. 2000. [SCE91] SCHETTINI, E. B. C. Modelo Matemático Bidimensional de Transporte de Massa em Elementos Finitos com Ênfase em Estuários. 1991. 89 p. Dissertação (Mestrado em Recursos Hídricos e Saneamento) - Instituto de Pesquisas Hidráulicas, UFRGS, Porto Alegre. [SCH98] SCHLOEGEL, K.; KARYPIS, G.; KUMAR, V. A Performance Study of Diffusive vs Remapped Load-Balancing Schemes. 1998. Disponível em: . Acesso em : 18 nov. 2000. [SCH99] SCHLOEGEL, K.; KARYPIS, G.; KUMAR, V. Dynamic Repartitioning of Adaptively Refined Meshes. 1999. Disponível em: . Acesso em: 01 fev. 2000. [SCH2000] SCHLOEGEL, K.; KARYPIS, G.; KUMAR, V. Multilevel Repartitioning of Adaptive Meshes. 2000. Disponível em: . Acesso em : 18 nov. 2000. [SCH2000a] SCHLOEGEL, K.; KARYPIS, G.; KUMAR, V. Graph Partitioning for High Performance Scientific Simulation. 2000. Disponível em: < http://www -users.cs.umn.edu/~karypis/publications/partitioning.html>. Acesso em: 08 mar. 2001. [SHE83] SHENG, Y. P. Mathematical Modeling of Three-Dimensional Coastal Currents and Sediment Dispersion: Model Development and Application. Princeton : Aeronautical Research Associates of Princeton, Inc., 1983. 288p. (Technical Report CERC-83-2). [SHE89] SHENG, Y. P.; LEE, H. K.; WANG, K. H. On Numerical Strategies of Estuarine and Coastal Modeling. Estuarine and Coastal Modeling, [S.l.], p. 291-301, 1989. [SHE95] SHENG, Y. P.; PEENE, S.; YASSUDA, E.; DAVIE, J.; SCHOFIELD, S. A Field and Modeling Study on Circulation and Transport in Sarasota Bay. Florida: Coastal & Oceanographic Engineering Departament, 1995. 265 p. [SHW94] SHEWCHUCK, J. R. An Introduction to the Conjugate Gradient Method Without the Agonizing Pain. School of Computer Science. Carnegie Mellon University, 1994. Disponível em: . Acesso em: out. 1999. [SIL86] SILVEIRA, A. L. L. Modelo Hidrodinâmico Bidimensional com Aplicação ao Rio Guaíba. 1986. 237. Dissertação (Mestrado em Recursos Hídricos e Saneamento) – Instituto de Pesquisas Hidráulicas, UFRGS, Porto Alegre. [SLA97] SLAVIEIRO, V. M. P. O Método do Gradiente Conjugado com Produto Interno Geral. 1997. 68 p. Dissertação (Mestrado em Matemática) Instituto de Matemática, UFRGS, Porto Alegre. 251 SILVA, R. S.; ALMEIDA, R. C.; GALEÃO, A. C. N.; COUTINHO, A. Iterative Local Solvers for distributed Krylov-Schwarz Methods Applied to Convection-Diffusion Problems. 1997. Disponível em: < http://www.lncc. br/~rssr/renato.html>. Acesso em : 03 abr. 1999. [SMT92] SMITH, C. J. Adaptive finite difference Solutions for Convection and Convection-Diffusion Problems. 1992. 50p. Thesis (Mestrado em Matemática) - Department of Mathematics, University of Reading, Reading. [SMI92] SMITH, B. F. Domain Decomposition methods for Partial Differential Equations. Mathematics and Computer Science Division, Argonne National Laboratory, 1992. Disponível em: . Acesso em: 03 nov. 1999. [SMI96] SMITH, B.; BJORSTAD, P.; GROPP, W. Domain Decomposition: Parallel Multilevel Methods for Elliptic Partial Differential Equations. Cambridge: Cambridge University, 1996. 224 p. [SMO82] SMOLARKIEWICZ, P. K. The Multi-Dimensional Crowley Advection Scheme. Monthly Weather Review, [S.l.], v. 110, p. 1968-1983, Dec. 1982. [SMO83] SMOLARKIEWICZ, P. K. A Simple Positive Definite Advection Scheme with Small Implicit Diffusion. Monthly Weather Review, [S.l.], v. 111, p. 479486, Mar. 1983. [SMO84] SMOLARKIEWINCZ, P. K. A Fully Multidimensional Positive Definite Advection Transport Algorithm with Small Implicit Diffusion. Journal of Computational Physics, [S.l.], v. 54, p. 325-362, 1984. [SMO90] SMOLARKIEWICZ, P. K.; GRABOWSKI, W. The Multidimensional Positive Definite Advection Transport Algorithm: Nonoscillatory Option. Journal of Computational Physics, [S.l.], v. 86, p. 355-375, 1990. [SMO92] SMOLARKIEWICZ, P. K.; PUDYKIEWICZ, J. A. A Class of SemiLagrangian Approximations for Fluids. Journal of the Atmospheric Sciences, [S.l.], v. 49, n. 22, p. 2082-2095, Nov. 1992. [SNO98] SCALAR Conservation Law. 1998. 121 p. Disponível em: . Acesso em: 20 nov. 1999. [SON2000] SONG, B.; LIU, G. R.; LAM, K. Y.; AMANO, R. S. On a Higher-order Bounded Discretization Scheme. International Journal for Numerical Methods in Fluids, [S.l.], v. 32, p. 881-897, 2000. [SON94] SONG, Y.; HAIDVOGEL, D. A Semi-implicit Ocean Circulation Model Using a Generalized Topography-Following Coordinate System. Journal of Computational Physics, [S.l.], v. 115, p. 228-244, 1994. [SPA72] SPALDING, D. B. A Novel Finite-difference Formulation for Differential Expressions Involving Both First and Second Derivatives. International Journal Numerical Methods Eng., [S.l.], v. 4, p. 551-567, 1972. [SPA2001] SPALDING, B. Numerical Convection Schemes in Phoenics. 2001. Disponível em: http://www.cham.co.uk/phoenics/d_polis/d_lecs/ numerics/ scheme.htm>. Acesso em: 25 abr. 2002. [SPE96] SPEE, E. J.; ZEEUW, P. M.; VERWER, J. G.; BLOM, J. G.; HUNDSDORFER, W. H. Vectorization and Parallelization of a Numerical Scheme for 3D Global Atmospheric Transport-chemistry Problems. Amsterdam: Centrum voor Wiskunde en Informatica, 1996. 24 p. (Report NM-R9620). Disponível em: Acesso em: 25 nov. 1999. [STA91] STANIFORTH, A.; CÔTÉ, J. Semi-Lagrangian Integration Schemes for Atmospheric Models – A Review. American Meteorological Society, [S.l.], v. 119, p. 2206-2223, Sept. 1991. [SLV97] 252 [STE86] STELLING, G. S.; WIERSMA, A. K.; WILLEMSE, J. M. Practical Aspects of Accurate Tidal Computations. Journal of Hydraulic Engineering, [S.l.], v. 112, n. 9, p. 802-816, Sept. 1986. [STR94] STERN, J. M. Esparsidade, Estrutura, Estabilidade e Escalonamento em Álgebra Linear Computacional. Recife: UFPE, 123 p. Trabalho apresentado na Escola de Computação, 9., 1994 [SWE84] SWEBY, P.K. High Resolution Schemes Using Flux Limiters for Hyperbolic Conservation Laws. SIAM Journal Numerical Analysis, [S.l.], v.21, n. 5, p. 995-1011, Oct. 1994. [SZE99] SZEREMETA, J. F.; PETERS, S. Análise Numérica I: Laboratório de Computação Algébrica e Simbólica. Florianópolis: Departamento de Informática e Estatística da Universidade Federal de Santa Catarina. 1999. Disponível em : . Acesso em: 09 mar. 2000. [SZW99] SZEWCZYK, R.; FERENCZ, A.; WEINSTEIN, J.; WILKENING, J. Graph Bisection. University of Berkeley, 1999. 10 p. (CS270, Final Report). Disponível em: . Acesso em: 30 dez. 2000. [TAL94] TALLEC, P. L. Domain Decomposition Methods in Computational Mechanics. Computational Mechanics Advances, Le Chesnay Cedex, v. 1, p. 121-220, Oct. 1994. [THM86] THOMPSON, J. F.; MARSI, Z. U. A.; MASTIN, C. W. Numerical Grid Generation. 1986. Disponível em : . Acesso em: 20 set. 1999. [THO94] THOMAS, S.; CÔTE, J.; STANIFORTH, A.; LIE, I.; SKALIN, R. A Massively Parallel Semi-Lagrangian Advection. In: ECMWF WORKSHOP ON THE USE OF PARALLEL PROCESSORS IN METEOROLOGY, 1994. Disponível em : . Acesso em 03 ago. 1999. [THO96] THOMAS, S.; CÔTE, J. Massively Parallel Semi-Lagrangian Advection. 1996. Journal Simulation Theory and Practice, [S.l.], v. 3, p. 223-238, 1996. Disponível em: . Acesso em: 01 dez. 1999. [THO97] THOMAS, S. J.; MALEVSKY, A. V.; DESGAGNÉ, M.; BENOIT, R.; PELLERIN, P.; VALIN, M. Massively Parallel Implementation of the Mesoscale Compressible Community Model. Parallel Computing, [S.l.], v. 23, p. 2143-2160, 1997. [TOL97] TOLEDO, E.; SIMÕES, R. Introdução à Computação Paralela. Rio de Janeiro: LNCC/CNPq, 1997. 226 p. Trabalho apresentado na Escola de Verão em Computação Científica, 2., 1997. [TOS97] TOSCANI, L. V.; LEAL, L. dos S.; ROSA, D. S. Complexidade Computacional. Pelotas: UFPEL, 1997. 36 p. Mini-Curso na Escola de Métodos Formais para Qualidade de Software, 1997. [TRA2000] TRANGENSTEIN, J. A. Numerical Solution of Partial differential Equations. Durham: Departament of Mathematics, Duke University, 2000. Disponível em: . Acesso em : 12 jan. 2001. [TUC98] TUCCI, C. E. M. Modelos Hidrológicos. Porto Alegre: Ed. da UFRGS, 1998. 669 p. [UMG96] UMGIESSER, G. Modeling Residual Currents in the Venice. 1996. Disponível em: . Acesso em : 06 dez. 2000. 253 [VAL2000] VALIANI, A.; CALEFFI, V.; ZANNI, A. Finite Volume Scheme for 2D Shallow-water Equations Appolication to a Flood Event in the Toce River. 2000. Disponível em: . Acesso em: 21 dez. 2000. [VAR99] VARGA, R. S. Matrix Iterative Analysis. 2 nd ed. Berlin: Springer Verlag, 1999. 359p. [VIL2000] VILLARREAL, M.R. Parameterization of Turbulence in the Ocean and Application of a 3D baroclinic Model to the Rio de Pontevedra. Ph.D. Dissertation (Fisica) – Departamento de Física de la Materia Condensada, Grupo de Física no Lineal, Universidade de Santiago de Compostela, Santiago de Compostela. Disponível em: . Acesso em: 03 jan. 2001. [VIN91] VINZON, S. B. Modelação de Transporte de Substâncias Passivas em Corpos de Água Rasos. 1991. 104 p. Dissertação (Mestrado em Engenharia Costeira e Oceanográfica) - COPPE, Programa de Engenharia Oceânica, UFRJ, Rio de Janeiro. [VLA99] VILAR, P.M. Estudio de la Hidrodinámica de la Ría de Vigo Mediante un Modelo de Volúmenes Finitos. Ph.D. Dissertation (Fisica) – Departamento de Física de la Materia Condensada, Grupo de Física no Lineal, Universidade de Santiago de Compostela, Santiago de Compostela. Disponível em: . Acesso em: 20 set. 2000. [VOL97] VOLLEBREGT, E. A. H. Parallel Software Development Techniques for Shallow Water Models. 1997. 133p. Ph.D. Dissertation (Hydraulic and Environmental Engineering) - Delft University of Technology, Delft. [VOL97a] VOLLEBREGT, E. A. H.; ROEST, M. R. T.; CATE, H. H.; LIN, H. X. Performance Analysis of Parallel TRIWAQ I: Cluster of Workstations and ParsytecXplores. [S.l.]: Delft University of Technology, 1997. 18 p. (Technical Report 97-09). [VOR93] VORST, Henk A. Van der. Parallel Numerical Linear Algebra. Utrecht: Mathematical Institute, University of Utrecht, 1993. Disponível em: . Acesso em: 05 abr. 1999. [VOR94] VORST, H. A. Van der. Parallel Iterative Solution Methods for Linear Systems Arising from Discretized PDEs. Utrecht: Mathematical Institute, University of Utrecht, 1994. Disponível em: . Acesso em: 04 out. 1999. [VOR94a] VORST, H. A. Van der. Lectures Notes on Iterative Methods. Utrecht: Mathematical Institute, University of Utrecht. 1994, Disponível em: < http: //www.math.uu.nl/people/vorst/>. Acesso em: 20 jul. 1999. [VRE94] VREUGDENHIL, C.B. Introduction. In: VREUGDENHIL, C. B.; KOREN, B. (Ed.). Numerical Methods for Advection – Diffusion Problems. [S.l.]: Vieweg, 1994. 371 p. [WAL2000] WALSHAW, C. The Jostle User Manual: Version 2.2. 2000. Disponível em: . Acesso em: 07 mar. 2001. [WAL95] WALSHAW, C.; CROSS, M.; EVERETT, M. G. Dynamic Mesh Partitioning: a Unified Optimization and Load-Balancing Algorithm. Disponível em: . Acesso em: 28 nov. 1999. [WAN97] WANG, H. Q.; LACROIX, M. Interpolation Techniques Applied to the Eulerian-Lagrangian Solution of the Convection-Dispersion Equation in Natural Coordinates. Computers & Geosciences, [S.l.], v. 23, n. 6, p. 677-688, 1997. 254 [WAS86] [WAT95] [WEI92] [WOL94] [WUJ95] [XUJ92] [ZEE93] [ZEF2000] [ZHE95] [ZHE99] [ZHU98] [ZIJ95] [ZIJ97] [ZOU99] WASHINGTON, W. M.; PARKINSON C. L. An Introduction to ThreeDimensional Climate Modeling. Mill Valley: Ed. University Science Books, 1986. 422 p. WATTS, J. A Practical Approach to Dynamic Load Balancing. 1995. 47 p. Thesis (Mestrado em Ciências da Computação) - California Institute of Technology, Scalable Concurrent Programming Laboratory, California. WEIYAN, T. Shallow Water Hydrodynamics: Mathematical Theory and Numerical Solution for a Two-dimensional System of Shallow Water Equations. Amsterdam : Water & Power Press, 1992. 434 p. WOLTERS, L.; CATS, G.; GUSTAFSSON, N.; WILHELMSSON, T. Dataparallel Semi-Lagrangian Numerical Weather Forecasting. 1994. Disponível em: . Acesso em: 02 fev. 2001. WU, J.; TSANIS, I. K. A Vertical/Horizontal Integration Wind-induced Circulation Model (VWI3D): A Method for Including Surface and Bottom Logarithmic Profiles. Advances in Water Resources, [S.l.], v.18, n.2, p. 77-87, 1995. XU, J. Iterative Methods By Space Decomposition and Subspace Correction. SIAM Review, [S.l.], v.34, n. 4, p. 581-613, 1992. ZEEUW, D.; POWELL, K. G. An Adaptively Refined Cartesian Mesh Solver for the Euler Equations. Journal of Computational Physics, [S.l.], v. 104 , p. 56-68, 1993. ZEFERINO, C.; RIZZI, R. L.; DORNELES, R. V.; BAMPI, S.; SUZIN, A. Parallel Simulation of the Hydrodynamic of Guaiba River. In: MICROELECTRONIC SEMINAR, SIM, 15., 2000. Proceedings... Torres: SBC, 2000. p.21-24. ZHENG, C.; BENNETT, G. D. Applied Contaminant Transport Modeling. New York: Van Nostrand Reinhold, 1995. 440 p. ZHENG, C.; WANG, P. P. MT3DMS: A Modular Three-Dimensional Multispecies Transport Model for Simulation of Advection, Dispersion, and Chemical Reactions of Contaminants in Groundwater Systems. Vicksburg: U.S. Army Corps of Engineers, 1999. 170 p. (Documentation and User’s Guide. Report SERDP-99-1). ZHU, J.; JOHNSON, B.; BANGALORE, P.; HUDDLESTON, D.; SKJELLUM. A. On the Parallelization of CH3D. 1998. Disponível em: . Acesso em: 29 dez. 1999. ZIJLEMA, M.; WESSELING, P. Higher Order Flux-limiting Methods for Steady-state, Multidimensional, Convection-dominated Flow. Delft: Delft University of Thechnology, Faculty of Techcnical Mathematics and Informatics, 1995. 28 p. (Report 95-131). ZIJLEMA, M. Flux-limiting Schemes for the Convection-diffusion Equation. Delft: Delft University of Thechnology, Faculty of Techcnical Mathematics and Informatics, 1997. 24 p. (Report 97-02). ZOPPOU, C.; ROBERTS, S. Simulation Techniques for the Advection Equation. Disponível em: . Acesso em: 21 nov. 2000.