• Nenhum resultado encontrado

Algoritmos Adaptativos para o Método dos Elementos Finitos UtilizandoaBiblioteca

N/A
N/A
Protected

Academic year: 2021

Share "Algoritmos Adaptativos para o Método dos Elementos Finitos UtilizandoaBiblioteca"

Copied!
111
0
0

Texto

(1)Algoritmos Adaptativos para o M´etodo dos Elementos Finitos Utilizando a Biblioteca    . Jos´e Jerˆonimo Camata. Dissertac¸a˜ o de Mestrado Programa de P´os-Graduac¸a˜ o em Inform´atica Universidade Federal do Espirito Santo Vit´oria, Outubro de 2006.

(2)

(3) Aos meus pais, Gecelina e Jos´e, e ao meu irm˜ao Felipe.

(4) Agradecimentos Expresso aqui meus sinceros agradecimentos aos respons´aveis pela realizac¸a˜ o deste trabalho. A minha orientadora, Prof.a Andrea M. P. Valli que transmitiu seus conhecimentos e experiˆencias, dedicac¸a˜ o e compreens˜ao, e que, com certeza, contribuiu enormemente na minha formac¸a˜ o acadˆemica e profissional. A Prof.a Lucia Catabriga pelo apoio dado ao longo deste trabalho, al´em de estar dispon´ıvel para a revis˜ao do mesmo, meus sinceros agradecimentos. Agradec¸o a minha fam´ılia por ter me apoiado e me incentivado durante todo per´ıodo desta tarefa. Agradec¸o aos amigos que fiz ao longo desses u´ ltimos dois anos dentro do departamento de inform´atica. Pela trocas de conhecimentos, experiˆencias e afeto. Agradec¸o ao departamento de inform´atica, que por meio do laborat´orio de computac¸a˜ o de alto desempenho (LCAD), viabilizou a infraestrutura adequada para a completa realizac¸a˜ o desse trabalho. Ao Prof. Graham F. Carey pela disponibilidade em ceder os recursos do labor´atorio de dinˆamicas de fluidos computacionais (CFDLab). A CAPES, uma vez que esse trabalho faz parte do projeto de colaborac¸a˜ o da Capes com a Universidade do Texas em Austin, CAPES/UT N . 11/04. Enfim, eu gostaria de agradecer a todos que direta ou indiretamente contribuiram para realizac¸a˜ o desse trabalho..

(5)  

(6)    

(7)    

(8)          ! $ % $%  . +./. & %'(' ) &%+,-+ 0 &   &(   &  1     2  

(9)  3 45'(' ) && 678//96 : %,-16; 6 <   ;0 (366= 6    ;>

(10)   6   &  7       ! $ %   ?

(11) @

(12) 6 +63(   &  1  686A &(

(13)  &4 0B  &(

(14) 6C60 & 

(15) &  6.6     $  &66= %0 (3666  %>

(16) 66        ! $ 6  ?

(17) @

(18) 6=6?! 6 ;//..

(19) Sum´ario. Lista de Figuras. p. vii. Lista de Tabelas. p. x. Resumo. p. xi. Abstract. p. xii. 1 Introduc¸a˜ o. p. 1. 1.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 6. 1.2. Organizac¸a˜ o do texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 7. 1.3. Recursos computacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 8. 2 Formulac¸a˜ o e Aproximac¸a˜ o. p. 9. 2.1. Formulac¸a˜ o SUPG para a equac¸a˜ o de transporte . . . . . . . . . . . . . . . .. p. 9. 2.2. Formulac¸a˜ o de Galerkin para as equac¸o˜ es de Navier-Stokes . . . . . . . . . .. p. 14. 2.3.    : biblioteca para simulac¸o˜ es paralelas com refinamento adaptativo da malha de elementos finitos . . . . . . . . . . . . . . . . . . . . . . . . . .. 3 M´etodos Iterativos Lineares. p. 18 p. 24. 3.1. Biblioteca PETSc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 24. 3.2. M´etodos de soluc¸a˜ o de sistemas baseados nos sub-espac¸os de Krylov . . . . .. p. 26. 3.2.1. M´etodo dos res´ıduos m´ınimos generalizados (GMRES) . . . . . . . .. p. 26. 3.2.2. M´etodo do gradientes bi-conjugados estabilizados (Bi-CGSTAB) . .. p. 31. M´etodo das direc¸o˜ es conjugadas a` esquerda (LCD) . . . . . . . . . . . . . .. p. 33. 3.3.

(20) 3.3.1. Implementac¸a˜ o no     . . . . . . . . . . . . . . . . . . . . . .. 4 Adaptatividade na Biblioteca    . p. 36 p. 38. 4.1. Refinamento adaptativo da malha . . . . . . . . . . . . . . . . . . . . . . . .. p. 38. 4.2. Selec¸a˜ o adaptativa do passo no tempo . . . . . . . . . . . . . . . . . . . . .. p. 45. 4.3. Adaptatividade no espac¸o e no tempo . . . . . . . . . . . . . . . . . . . . .. p. 51. 5 Experimentos Num´ericos usando a Biblioteca     5.1. 5.2. p. 54. Eficiˆencia computacional dos m´etodos iterativos . . . . . . . . . . . . . . . .. p. 54. 5.1.1. Problema de convecc¸a˜ o-difus˜ao . . . . . . . . . . . . . . . . . . . .. p. 54. 5.1.2. Problema de convecc¸a˜ o dominante . . . . . . . . . . . . . . . . . . .. p. 59. 5.1.3. Principais conclus˜oes . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 65. Adaptatividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 66. 5.2.1. Problema da cavidade . . . . . . . . . . . . . . . . . . . . . . . . .. p. 67. 5.2.2. Problema do escoamento com alargamento do canal . . . . . . . . .. p. 74. 5.2.3. Principais conclus˜oes . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 85. 6 Conclus˜ao e Trabalhos Futuros. p. 87. Referˆencias Bibliogr´aficas. p. 90. Apˆendices. p. 97. Apˆendice A - SubMatrizes e Subvetores da Matriz Jacobiana . . . . . . . . . . . .. p. 97.

(21) Lista de Figuras 2.1. Hierarquia da classe    . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 22. 3.1. Organizac¸a˜ o hier´arquica entre as bibliotecas PETSc e     . . . . . . . .. p. 25. 4.1. Exemplo de refinamento adaptativo da malha para um problema de convecc¸a˜ odifus˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 41. 4.2. Fluxo sobre as faces dos elementos . . . . . . . . . . . . . . . . . . . . . . .. p. 42. 4.3. Fluxograma do refinamento adaptativo da malha AMR . . . . . . . . . . . .. p. 43. 4.4. N´ıveis de Refinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 44. 4.5. Controlador PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 46. 4.6. Selec¸a˜ o adaptativa do passo do tempo visto como um problema de controle retroalimentado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 48. 4.7. Algoritmo PID para a escolha do tamanho do passo no tempo . . . . . . . . .. p. 50. 4.8. Algoritmo do refinamento adaptativo no tempo e no espac¸o . . . . . . . . . .. p. 53. 5.1. Soluc¸a˜ o do problema de convecc¸a˜ o-difus˜ao . . . . . . . . . . . . . . . . . .. p. 55. 5.2. Problema de convecc¸a˜ o-difus˜ao - Evoluc¸a˜ o do res´ıduo (Iterac¸o˜ es para elementos TRI3 (esquerda) e TRI6 (direita), malha 64. 5.3. 5.4. 64 c´elulas . . .. Problema de convecc¸a˜ o-difus˜ao - Evoluc¸a˜ o do res´ıduo (Iterac¸o˜ es para elementos TRI3 (esquerda) e TRI6 (direita), malha 128. p. 60. log   r   ). 128 c´elulas . .. Problema de convecc¸a˜ o-difus˜ao - Evoluc¸a˜ o do res´ıduo (Iterac¸o˜ es para elementos TRI3 (esquerda) e TRI6 (direita), malha 256. log   r   ). p. 60. log   r   ). 256 c´elulas . .. p. 60. 5.5. Problema convecc¸a˜ o dominante - Condic¸o˜ es de Contorno . . . . . . . . . . .. p. 61. 5.6. Problema convecc¸a˜ o-dominante - Evoluc¸a˜ o do res´ıduo (Iterac¸o˜ es para elementos TRI3 (esquerda) e TRI6 (direita) - Malha 64. 5.7. 64 c´elulas . .. Problema convecc¸a˜ o-dominante - Evoluc¸a˜ o do res´ıduo (Iterac¸o˜ es para elementos TRI3 (esquerda) e TRI6 (direita) - Malha 128. log   r   ) p. 64. log   r   ) 128 c´elulas .. p. 64.

(22) 5.8. Problema convecc¸a˜ o-dominante - Evoluc¸a˜ o do res´ıduo (Iterac¸o˜ es para elementos TRI3 (esquerda) e TRI6 (direita) - Malha 256. log   r   ) 256 c´elulas .. p. 64. Problema da cavidade - Condic¸o˜ es de fronteira . . . . . . . . . . . . . . . .. p. 67. 5.10 Distribuic¸a˜ o da velocidade u no topo da cavidade . . . . . . . . . . . . . . .. p. 68. 5.9. 5.11 Problema da cavidade - Reynolds 200 - Perfil das velocidades u (esquerda) e v (direita) no centro geom´etrico da cavidade - malha Fixa (40. 40) e AMR(20. 20,1,0.3,0.01,1) - com e sem PID . . . . . . . . . . . . . . . . . . . . . .. p. 70. 5.12 Problema da cavidade - Reynolds 1000 - Perfil das velocidades u (esquerda) e v (direita) no centro geom´etrico da cavidade - malha Fixa (80 AMR(20. 80) e. 20,2,0.3,0.01,2) - com e sem PID . . . . . . . . . . . . . . . . .. p. 70. 5.13 Problema da cavidade - Escolha do tamanho do passo ao longo do tempo para as malhas fixa e AMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 72. 5.14 Problema da cavidade - Reynolds 200 - Configurac¸a˜ o final da malha . . . . .. p. 73. 5.15 Problema da cavidade - Reynolds 1000 - Configurac¸a˜ o final da malha . . . .. p. 73. 5.16 Problema da cavidade - Reynolds 200 - Linhas de corrente - Malha fixa e AMR p. 74 5.17 Problema da cavidade - Reynolds 1000 - Linhas de corrente - Malha fixa e AMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 75. 5.18 Problema da cavidade - Reynolds 200 - Verificac¸a˜ o do regime permanente tempo vs. energia cin´etica . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 76. 5.19 Problema da cavidade - Reynolds 1000 - Verificac¸a˜ o do regime permanente tempo vs. energia cin´etica . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.20 Problema do escoamento com alargamento do canal - Condic¸o˜ es de fronteira. p. 77 p. 78. 5.21 Problema do escoamento com alargamento do canal - Escolha do tamanho do passo ao longo do tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 80. 5.22 Problema do escoamento com alargamento do canal - N´umero de n´os . . . .. p. 81. 5.23 Problema do escoamento com alargamento do canal - Configurac¸a˜ o final da malha - AMR(64. 8,1,0.3,0.01,1) . . . . . . . . . . . . . . . . . . . . . . .. p. 81. 5.24 Problema do escoamento com alargamento do canal - Perfil da velocidade Malha fixa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 82.

(23) 5.25 Problema do escoamento com alargamento do canal - Perfil da velocidade AMR(64. 8,1,0.3,0.01,1) . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 83. 5.26 Problema do escoamento com alargamento do canal - Linhas de corrente Malha fixa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 84. 5.27 Problema do escoamento com alargamento do canal- Linhas de corrente AMR(64. 8,1,0.3,0.01,1) . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 84. 5.28 Problema do escoamento com alargamento do canal - Energia Cin´etica . . . .. p. 85.

(24) Lista de Tabelas 5.1. Problema de convecc¸a˜ o-difus˜ao - Desempenho dos m´etodos GMRES, LCD and Bi-CGSTAB - Malha 64. 5.2. 128 c´elulas . . . . . . . . . . . . . . . . . .. 256 c´elulas . . . . . . . . . . . . . . . . . .. Problema de convecc¸a˜ o-difus˜ao - Custo das operac¸o˜ es - Malha 256. p. 62. 128 c´elulas . . . . . . . . . . . . . . . . . . .. p. 63. Problema convecc¸a˜ o-dominante - Desempenho dos m´etodos GMRES, LCD e Bi-CGSTAB - Malha 256. 5.8. 64 c´elulas . . . . . . . . . . . .. Problema convecc¸a˜ o-dominante - Desempenho dos m´etodos GMRES, LCD e Bi-CGSTAB - Malha 128. 5.7. p. 59. Problema convecc¸a˜ o-dominante - Desempenho computacional dos m´etodos GMRES, LCD e Bi-CGSTAB - Malha 64. 5.6. p. 58. 256. c´elulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5. p. 57. Problema de convecc¸a˜ o-difus˜ao - Desempenho dos m´etodos GMRES, LCD and Bi-CGSTAB - Malha 256. 5.4. p. 56. Problema de convecc¸a˜ o-difus˜ao - Desempenho dos m´etodos GMRES, LCD and Bi-CGSTAB - Malha 128. 5.3. 64 c´elulas . . . . . . . . . . . . . . . . . . .. 256 c´elulas . . . . . . . . . . . . . . . . . . .. Problema convecc¸a˜ o-dominante - Custo computacional - Malha 128. p. 65. 128. c´elulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 66. Problema da cavidade - Desempenho do PID para a malha fixa . . . . . . . .. p. 71. 5.10 Problema da cavidade - Desempenho do PID para a malha adaptativa . . . . .. p. 71. 5.9. 5.11 Problema do escoamento com alargamento do canal - Desempenho do PID Malha Fixa -. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. p. 79.

(25) Resumo T´ecnicas adaptativas de refinamento da malha de elementos finitos s˜ao importantes ferramentas na reduc¸a˜ o do tempo de processamento da soluc¸a˜ o, paralela ou sequencial, de problemas em engenharia que utilizam o m´etodo de elementos finitos. Al´em do mais, soluc¸o˜ es aproximadas que utilizam malhas adaptativas s˜ao capazes de representar com uma maior precis˜ao os fenˆomenos f´ısicos envolvidos. No entanto, a construc¸a˜ o de uma plataforma em elementos finitos com essas caracter´ısticas demanda um enorme esforc¸o e tempo de programac¸a˜ o. Sendo assim, foi adotada a biblioteca ibMesh em C++ para o estudo e implementac¸a˜ o de t´ecnicas que podem melhorar a eficiˆencia computacional de c´odigos em elementos finitos. Neste trabalho foi implementada uma estrat´egia de selec¸a˜ o do passo do tempo, baseada na teoria de controle, e a sua aplicabilidade testada quando utilizada em conjunto com a adaptividade espacial presente na ibMesh. Al´em do mais, m´etodo das direc¸o˜ es conjugados a` esquerda (LCD) foi incluido na biblioteca     via uma interface com a biblioteca PETSc, a fim de tamb´em fazer parte da biblioteca    . Resultados comparativos com os m´etodos GMRES e BiCGSTAB mostraram a viabilidade da utilizac¸a˜ o desse m´etodo. Experimentos num´ericos confirmaram a eficiˆencia da estrat´egia do passo no tempo, para a obtenc¸a˜ o de soluc¸o˜ es em regime permanente, quando s˜ao utilizadas malhas fixas e malhas adaptativas no espac¸o. Al´em disso, os custos computacionais para os processos de selec¸a˜ o do passo s˜ao desprez´ıveis, uma vez que involvem apenas o armazenamento de alguns vetores e o c´alculo de normas..

(26) Abstract Adaptive mesh refinement (AMR) is an important technique in the reduction of the computational cost in numerical solution which uses finite element method. Moreover, approximate solutions that use adaptive mesh represents the physical phenomena with better precision. The implementation of an application with these characteristic to require a formidable software development effort. Thus, we adopted the library     library as a tool to support in our studies. In this work, we implemented a timestep selection technique based on feedback control theory and your applicability was tested when used with spatial adaptivity in    . In addition, we introduced the left conjugated directions method (LCD) for the solution of nonsymmetric systems of linear equations in the     library. Comparative results with GMRES and Bi-CGSTAB methods showed the viability the LCD method. Numerical experiments confirmed the efficiency of the timestep selection strategy when used with fixed and adaptive mesh..

(27) 1. Introduc¸a˜ o. Diferenc¸as finitas, volumes finitos e elementos finitos s˜ao as principais t´ecnicas num´ericas utilizadas para resolver equac¸o˜ es diferenciais parciais que modelam problemas reais das mais variadas a´ reas do conhecimento humano. A vantagem do m´etodo dos elementos finitos relativamente a outros m´etodos existentes reside na sua versatilidade e generalidade, al´em da sua flexibilidade em resolver problemas envolvendo dom´ınios com geometrias complexas e condic¸o˜ es de contorno diversas. Desta forma, o m´etodo de elementos finitos e´ adotado neste trabalho e a sua utilizac¸a˜ o na biblioteca     [5] e´ analisada, em conjunto com diversos m´etodos de resoluc¸a˜ o de sistemas lineares e t´ecnicas adaptativas da malha. Os modelos matem´aticos para os problemas tratados nesse trabalho, e utilizados para testar as t´ecnicas num´ericas e computacionais estudadas, s˜ao baseados nas equac¸o˜ es bidimensionais do transporte convectivo-difusivo e nas equac¸o˜ es bidimensionais de Navier-Stokes. Dentre as principais formulac¸o˜ es em elementos finitos para escoamentos incompress´ıveis est˜ao as formulac¸o˜ es mistas [24, 69] e penalizadas [94, 69, 22, 23, 24], as formulac¸o˜ es estabilizadas, como, por exemplo, a formulac¸a˜ o SUPG (Steamline-Upwind/Petrov-Galerkin) [54, 19, 33, 85], a formulac¸a˜ o Galerkin/Least-Squares (GSL) [55, 25, 40], a formulac¸a˜ o PressureStabilizing/Petrov-Galerkin (PSPG) [84, 31] e as formulac¸o˜ es baseadas em passos fracionados [16, 32]. Tamb´em podemos encontrar formulac¸o˜ es baseadas nas func¸o˜ es de corrente e vorticidade [24, 14]. Neste trabalho e´ utilizado uma formulac¸a˜ o estabilizada SUPG (StreamlineUpwind/Petrov-Galerkin) [19] para o problema de transporte com o objetivo de contornar poss´ıveis instabilidades num´ericas gerada pela formulac¸a˜ o padr˜ao de Galerkin. Para a equac¸a˜ o de NavierStokes, escritas em vari´aveis primitivas, e´ utilizada a formulac¸a˜ o tradicional de Galerkin, com o m´etodo de Newton e uma discretizac¸a˜ o no tempo pelo tradicional m´etodo θ [24]. O m´etodo dos elementos finitos necessita da gerac¸a˜ o da malha correspondente a discretizac¸a˜ o do dom´ınio do problema, no qual a soluc¸a˜ o aproximada e´ estimada. O espac¸amento entre os pontos da malha est´a relacionado com a precis˜ao com que a soluc¸a˜ o num´erica e´ obtida e com o tamanho do sistema que e´ preciso resolver. Quanto maior o n´umero de pontos ou n´os da malha, maior e´ o sistema linear resultante. Quanto maior for o sistema linear, mais elevado.

(28) 2. e´ o tempo de computac¸a˜ o ou processamento. Mais ainda, em geral os problemas de interesse em engenharia s˜ao transientes, n˜ao lineares, definidos em 2 ou 3 dimens˜oes e envolvem malhas com centenas de milhares de pontos. Isso significa que sistemas lineares de grande porte esparsos precisam ser resolvidos v´arias vezes dentro de um passo no tempo, o que acarreta em um volume enorme de operac¸o˜ es para a obtenc¸a˜ o da soluc¸a˜ o aproximada final. Neste trabalho e´ discutido formas de implementac¸o˜ es num´ericas capazes de reduzir o tempo de processamento da soluc¸a˜ o em uma plataforma em C++ para a resoluc¸a˜ o, paralela ou sequencial, de problemas em engenharia, utilizando o m´etodo de elementos finitos e t´ecnicas adaptativas da malha. Um dos fatores importante para a melhoria do tempo de processamento e´ a escolha do m´etodo de soluc¸a˜ o de sistemas lineares a ser empregado. Esses m´etodos podem ser diretos, como eliminac¸a˜ o de Gauss e decomposic¸a˜ o LU, ou iterativos, tais como, Jacobi e Gauss-Seidel. Os m´etodos diretos possuem um inconveniente quando resolvemos sistemas de grande porte pois acarretam em erros de arredondamento e em um tempo de processamento muito alto. Por estas raz˜oes, este tipo de m´etodo n˜ao e´ muito utilizado na soluc¸a˜ o de sistemas oriundos da discretizac¸a˜ o por elementos finitos. Assim, os m´etodos iterativos constituem numa opc¸a˜ o mais interessante, principalmente, os m´etodos n˜ao-estacion´arios baseados nos subespac¸os de Krylov [77, 89, 93]. Esses m´etodos, quando comparados com outros m´etodos iterativos, possuem uma taxa de convergˆencia bem mais alta, principalmente quando algum precondicionamento e´ aplicado ao sistema. O m´etodo dos res´ıduos m´ınimos generalizados, tamb´em conhecido como GMRES [77], e´ o m´etodo usualmente utilizado na resoluc¸a˜ o de sistemas lineares n˜ao-sim´etricos. Para contornar certos problemas com requerimentos de mem´oria, a sua variac¸a˜ o mais bem sucedida e sugerida por Saad e Schultz [77] utiliza a t´ecnica de rein´ıcio (”restart”) do processo a cada ciclo de m iterac¸o˜ es. Outro m´etodo, tamb´em muito empregado, e´ o m´etodo dos gradientes bi-conjugados estabilizados (Bi-CGSTAB) [89]. Esse m´etodo foi desenvolvido para resolver a freq¨uente irregularidade de convergˆencia do m´etodos dos gradientes conjugados quadrados (CGS). Al´em desses dois j´a citados, h´a v´arios outros m´etodos baseados nos subespac¸os de Krylov, tais como, o m´etodo do res´ıduo quasi-m´ınimo (QMR), m´etodo do res´ıduo quasi-minino livre de transposic¸a˜ o (TFQMR) e gradientes conjugados (GC). Em 1994, Yuan et al. [93] introduziram um novo algoritmo para resolver sistemas lineares n˜ao-singulares e n˜ao-sim´etricos, o m´etodo das direc¸o˜ es conjudadas a` esquerda (LCD) baseado no conceito de vetores conjugados a` esquerda e a` direita. Algumas vantagens te´oricas foram verificadas para este m´etodo, tais como, a propriedade de terminac¸a˜ o finita e a reduc¸a˜ o de falhas (breakdown) para matrizes gerais. Al´em disso, existe uma conex˜ao entre LCD e a.

(29) 3. decomposic¸a˜ o LU, o que facilita a sua compreens˜ao. Catabriga et al [28, 29] aperfeic¸oaram esse m´etodo introduzindo a t´ecnica do restart e executaram testes comparativos com o GMRES. Foi observado que, em algumas casos, o LCD apresentou um desempenho melhor que o GMRES. No entanto, estudos comparativos com outros m´etodos continua sendo uma a´ rea de interesse para uma melhor compreens˜ao das capacidades computacionais deste m´etodo. Um outro importante fator que afeta consideravelmente o desempenho computacional e´ o tamanho da malha oriunda da discretizac¸a˜ o por elementos finitos. Em diversos problemas e´ poss´ıvel utilizar uma malha uniforme, ou seja, uma malha que utiliza um mesmo espac¸amento entre os diversos n´os existentes. Entretanto, existem classes de problemas onde um fenˆomeno f´ısico de interesse acontece em uma determinada regi˜ao do dom´ınio que pode, al´em disso, mudar com o decorrer do tempo. Em geral, para que um fenˆomeno f´ısico possa ser estimado com precis˜ao e´ definida uma malha suficientemente refinada nas regi˜oes onde a soluc¸a˜ o e´ mais dif´ıcil de ser estimada ou onde a soluc¸a˜ o muda mais rapidamente com o tempo. A utilizac¸a˜ o de uma malha uniforme nestes casos acarreta em um n´umero elevado de pontos nodais, ou seja, em um alto custo computacional. Para reduzir o tamanho do sistema linear resultante ou o n´umero de pontos nodais envolvidos no problema, e´ poss´ıvel utilizar uma malha n˜ao uniforme que considere um refinamento maior nas regi˜oes que necessitam de alta precis˜ao, deixando outras parte do dom´ınio com um n´umero reduzido de pontos. Sendo assim, e´ poss´ıvel obter a precis˜ao necess´aria para a soluc¸a˜ o aproximada sem aumentar muito o tamanho do sistema resultante, como no caso da malha uniforme. No entanto, para a utilizac¸a˜ o de uma malha n˜ao uniforme e´ preciso definir estrat´egias autom´aticas de gerac¸a˜ o que levem em considerac¸a˜ o a precis˜ao desejada ou o fenˆomeno f´ısico que se deseja capturar [65, 26, 86, 92]. Umas das ferramentas utilizadas para a implementac¸o˜ es de algoritmos adaptativos e´ a biblioteca     [5]. Seu desenvolvimento iniciou em marc¸o de 2002 pelas Universidade do Texas em Austin e a Universidade de Hamburg na Alemanha, com o objetivo de dar suporte ao refinamento adaptativo de malhas. Implementada em C++, essa biblioteca e´ um framework para simulac¸a˜ o num´erica de equac¸o˜ es diferenciais parciais usando o m´etodo de elementos finitos. Permite o desenvolvimento de c´odigos tanto para m´aquinas seriais quanto paralelas de modo f´acil e r´apido. Ou seja, a biblioteca     foi criada para facilitar simulac¸o˜ es em elemento finitos de problemas multif´ısicos, multi-escala, e utilizando processos adaptativos e em paralelo, de modo confi´avel e que possa ser reutiliz´avel. Um dos principais objetivos da biblioteca     e´ fornecer uma plataforma de pesquisa para algoritmos adaptativos e paralelos. Grande parte do esforc¸o adotado no desenvolvimento.

(30) 4. de um software, que suporta simulac¸o˜ es baseadas em malhas n˜ao estruturadas e em paralelo, pode ser evitado quando e´ utilizado, sempre que poss´ıvel, tecnologias independentes da f´ısica e outras bibliotecas existentes. Desta forma, usu´arios podem concentrar-se na aplicac¸a˜ o f´ısica de interesse sem precisar se preocupar com a complexidade adicional envolvida pela adaptatividade e pelo processo paralelo. Na biblioteca    , o conceito de separar algumas caracter´ısticas f´ısicas da infraestrutura de paralelismo do processo de refinamento da malha foi influenciado pelo projeto NASA HPC, sobre qual foi desenvolvido um c´odigo multif´ısico paralelo para uma grande faixa de aplicac¸o˜ es [90]. Alguns projetos de bibliotecas de alto desempenho que influenciaram o desenvolvimento do     s˜ao [10, 20, 15, 41, 66]. Como deal.II. 1. [10, 11],     foi projetada, desde. o in´ıcio, para o uso das caracter´ısticas avanc¸adas da linguagem de programac¸a˜ o C++. Dentre elas, a possibilidade de implementac¸o˜ es de sobreposic¸a˜ o de operadores, heranc¸as e polimorfismos, facilitando a estruturac¸a˜ o dos objetos e a extensibilidade da biblioteca. Na biblioteca     n˜ao existe nenhum recurso que utilize linguagens procedurais, tais como, C e FORTRAN. Isso e´ diferente do que acontece em outras bibliotecas como, por exemplo, Cactus 2 [2] ou ParFUM 3 [68].     foi desenhada de forma a deixar dispon´ıvel as classes e os templates aos usu´arios, o que pode, segundo os desenvolvedores [5], facilitar a extensibilidade. Essas caracter´ısticas no desenvolvimento da biblioteca foram consideradas mais importantes do que a inter-operabilidade entre v´arias linguagens. A metodologia de simulac¸a˜ o na biblioteca     emprega a discretizac¸a˜ o padr˜ao baseada em c´elulas, discutida em muitos textos introdut´orios de elementos finitos [43]. Diferentes formulac¸o˜ es de elementos finitos podem ser aplicadas, incluindo os m´etodos de Galerkin, Petrov-Galerkin e Galerkin descont´ınuo. Para o processo de refinamento, a biblioteca     utiliza a t´ecnica de subdivis˜ao de elementos. Em problemas evolutivos, em particular, o processo de desrefinamento e´ desej´avel e a` s vezes essencial para obter soluc¸o˜ es eficientes..     implementa um processo simultˆaneo de refinamento e desrefinamento para. aplicac¸o˜ es dependentes no tempo. O foco na biblioteca     est´a na subdivis˜ao local do elemento (h-refinamento) com desrefinamento local por h restituic¸o˜ es de subelementos. Al´em disso,     tamb´em permite refinamento h com elementos de graus elevados. A vers˜ao do     que est´a em desenvolvimento suporta refinamento p e hp para alguns tipos de elementos. Um fator importante ao processo de refinamento e desrefinamento s˜ao os indicadores de 1 http://www.dealii.org/ 2 www.cactuscode.org 3 http://charm.cs.uiuc.edu/research/ParFUM/.

(31) 5. erro a posteriori respons´aveis em guiar o processo adaptativo. O indicador do erro utilizado pelo     est´a focado nos indicadores locais que s˜ao essencialmentes independentes da f´ısica. Isto torna a biblioteca mais flex´ıvel permitindo seu uso em diversas aplicac¸o˜ es. De uma maneira geral, um estimador para o erro deveria ser capaz de colher apenas informac¸o˜ es sobre o elemento finito e uma func¸a˜ o definida na malha e retornar n´ıveis de aproximac¸o˜ es para o erro em cada elemento. Sendo assim, a implementac¸a˜ o escolhida para o indicador do erro na biblioteca baseia-se na discontinuidade do fluxo que atravessa a face entre dois elementos [65]. Apesar de n˜ao ser um indicador rigoroso para uma grande classe de problemas, na pr´atica eles provaram ser largamente aplic´aveis. Existe na literatura um extenso n´umero de trabalhos dedicados a obtenc¸a˜ o de estimativas a posteriori e indicadores de erros mais confi´aveis e precisos que s˜ao estreitamente ligados aos operadores e equac¸o˜ es que governam a aplicac¸a˜ o do problema. Atualmente, indicadores de refinamento baseados nas contribuic¸o˜ es residuais no elemento local s˜ao a forma mais comum de indicadores encontrado na literatura [12, 36, 35, 61, 37]. Apesar de serem indicadores de erros bastante precisos, requerem o trabalho adicional de resolver um problema dual relacionado que e´ dif´ıcil de incluir em uma biblioteca flex´ıvel, sem comprometer a independˆencia f´ısica. Como o indicador do erro utilizado pela     est´a focado nos indicadores locais, eles s˜ao essencialmentes independentes da f´ısica. A biblioteca     disponibiliza para o usu´ario uma grande variedades de m´etodos de soluc¸a˜ o de equac¸o˜ es lineares atr´aves da utilizac¸a˜ o da biblioteca de alto desempenho PETSc. A biblioteca PETSc e´ formada por um conjunto de rotinas que permitem a implementac¸a˜ o de c´odigos seriais e paralelos para a soluc¸a˜ o de sistemas alg´ebricos. Dentre essas rotinas, encontram-se os m´etodos de soluc¸a˜ o de sistema lineares baseados nos subespac¸os de Krylov. Os m´etodos GMRES, CG, e Bi-CGSTAB s˜ao alguns exemplos dessas rotinas dispon´ıveis nesta biblioteca. Desta forma, uma variedade de sistemas lineares impl´ıcitos em paralelo podem ser utilizados na biblioteca     via uma interface com a biblioteca PETSc. O paralelismo na biblioteca     e´ realizado usando t´ecnicas de decomposic¸a˜ o de dom´ınio [26] atrav´es do particionamento da malha, na qual cada processo cont´em uma c´opia da malha global, mas em geral somente um subconjunto particular e´ computado. Para processos de refinamento e desrefinamento, onde a soluc¸a˜ o em regime permanente e´ de interesse, e´ comum considerar incialmente uma malha grossa que vai sendo progressivamente refinada at´e obter uma malha pr´oxima da o´ tima. E´ o´ bvio que uma partic¸a˜ o inicialmente balanceada pode rapidamente torna-se muito desbalanceada causando ineficiˆencias computacionais. Conseq¨uentemente, a malha tipicamente requer frequentes reparticionamentos durante o processo.

(32) 6. de refinamento. O desenvolvimento de esquemas o´ timos de reparticionamento, que consigam tirar vantagens de uma partic¸a˜ o a priori, em processos de refinamentos paralelos ainda e´ um campo aberto para pesquisa [59]. Na ibMesh a decomposic¸a˜ o de dom´ınio e´ realizada atrav´es de uma interface com duas bibliotecas externas: a METIS e a ParMETIS. Mais detalhes acerca das quest˜oes de paralelismo podem ser vistos em [5]. Finalmente, um outro importante fator que afeta consideravelmente o desempenho computacional de problemas transientes e´ a escolha adaptativa do passo no tempo. Existem classes de problemas de interesse que s˜ao dependentes do tempo, e que demandam um grande per´ıodo de processamento. Uma forma de melhorar seu desempenho e´ empregar estrat´egias de selec¸a˜ o adaptativa do passo no tempo. Esse processo de selec¸a˜ o geralmente utiliza parˆametros caracter´ısticos da soluc¸a˜ o, como, por exemplo, uma estimativa do erro de truncamento local, para identificar em qual momento o passo no tempo deve ser aumentado ou diminuido. Como exemplo, algoritmos padr˜oes de selec¸a˜ o do passo de tempo que usam estimativas para o erro de truncamento local s˜ao mostrado nos esquemas sugeridos em [62, 73, 17, 38, 21]. Gresho et al. [74] usam um esquema preditor-corretor com estimativas para o erro de truncamento local na selec¸a˜ o do passo. Gustafsson et al. [50] mostraram que o problema de selec¸a˜ o autom´atica do passo no tempo pode ser visto como um problema de controle retroalimentado, o que motivou o desenvolvimento de um algoritmo usando o conceito de controle proporcional-integral-derivativo (PID) [52]. Mais tarde, Coutinho e Alves [34] usaram essas id´eias no trabalho de simulac¸a˜ o num´erica pelo m´etodo dos elementos finitos em meios porosos. Valli et al. [88, 3] desenvolveram dois algoritmos adaptativos na selec¸a˜ o do passo no tempo, um baseado em controlar uma estimativa para o erro de truncamento local e outro baseado em controlar as mudanc¸as na energia cin´etica e a taxa de convergˆencia das iterac¸o˜ es sucessivas. Recentemente, S¨ordelind [82] desenvolveu uma completa estrutura de controle para selec¸a˜ o adaptativa do passo, usando teoria de filtros digitais. Neste trabalho, ser´a considerado estrat´egias de controle do passo no tempo baseadas na teoria de controle conforme desenvolvido em [88, 3]. A id´eia e´ implementar uma dessas estrat´egias de controle do passo no tempo na biblioteca     e analisar a sua eficiˆencia em conjunto com os processos de refinamento de malha AMR.. 1.1 Objetivos Primeiro, realizar uma an´alise comparativa dos principais m´etodos de soluc¸a˜ o de sistemas lineares e implementar, na biblioteca     via PETSc, um m´etodo recente e n˜ao usual.

(33) 7. como o LCD. Segundo, analisar as principais t´ecnicas adaptativas para o m´etodo dos elementos finitos, aplicado a problemas de Mecˆanica dos Fluidos Computacional. Analisar, em particular, a estrat´egia adaptativa no espac¸o utilizada na biblioteca    . Introduzir na biblioteca     uma estrat´egia de selec¸a˜ o do passo do tempo baseada na teoria de controle e avaliar a sua aplicabilidade e seus efeitos quando conjugada com a adaptividade espacial.. 1.2 Organizac¸a˜ o do texto A organizac¸a˜ o do texto segue a descric¸a˜ o dada a seguir. No Cap´ıtulo 2 s˜ao descritas duas formulac¸o˜ es de elementos finitos. Primeiro, e´ apresenta a formulac¸a˜ o estabilizada de elementos finitos, conhecida como SUPG, para a equac¸a˜ o de transporte convectivo-difusivo. Segundo, e´ descrito a equac¸a˜ o governante da equac¸a˜ o transiente de Navier-Stokes bem com sua formulac¸a˜ o num´erica por elementos finitos. Al´em disso, e´ apresentado nesse cap´ıtulo as principais caracteristicas da biblioteca    . O Cap´ıtulo 3 apresenta as principais caracter´ısticas da biblioteca PETSc e sua utilizac¸aˆ o dentro da biblioteca    , al´em de descrever alguns dos m´etodos num´ericos de soluc¸a˜ o de sistemas lineares presentes na biblioteca. Al´em disso, e´ descrito o m´etodo das direc¸o˜ es conjugadas a` esquerda (LCD), n˜ao presente ao conjunto de rotinas do PETSc, e detalhes da sua inclus˜ao na biblioteca. O Cap´ıtulo 4 trata do estudo e implementac¸a˜ o de t´ecnicas adaptativas para o m´etodo dos elementos finitos. Na primeira sec¸a˜ o e´ discutido o esquema adaptativo implementado na biblioteca    , seguido pela estudo de uma t´ecnica de selec¸a˜ o adaptativa do passo no tempo usando conceitos de controle autom´atico. Finalmente, na u´ ltima sec¸a˜ o e´ discutida a implementac¸a˜ o conjunta das adaptatividades espaciais e temporais na biblioteca    . O Cap´ıtulo 5 est´a dividido em duas partes. Na primeira e´ realizado um estudo de desempenho e esforc¸o computacional dos m´etodos GMRES, Bi-CGSTAB e LCD para a soluc¸a˜ o de sistemas de equac¸o˜ es n˜ao sim´etricos obtidos na discretizac¸a˜ o por elementos finitos de problemas de convecc¸a˜ o-difus˜ao. Na segunda parte e´ analisado o desempenho computacional do algoritmo de selec¸a˜ o do passo no tempo, na obtenc¸a˜ o de soluc¸o˜ es em regime permanente, quando aplicados em discretizac¸o˜ es por malhas fixas uniformes e, principalmente, seu desempenho quando aplicado ao processo de refinamento uniforme de malhas. Finalmente, no Cap´ıtulo 6 s˜ao apresentadas as conclus˜oes, considerac¸o˜ es finais e propostas de trabalhos futuros..

(34) 8. 1.3 Recursos computacionais Todos os c´odigos implementados foram compilados usando os compiladores gnu gcc e g++ (vers˜ao 3.4) em ambiente linux. Os testes realizados para a an´alise de desempenho dos m´etodos iterativos foram realizados em uma m´aquina Intel Pentium 4 de 2.26GHZ, 512k de cache L2 e 512 MB de mem´oria RAM. No avaliac¸a˜ o da implementac¸a˜ o do algoritmo de selec¸a˜ o do passo no tempo foi utilizada uma m´aquina Intel Pentium 4 de 3GHz, 1M de cache L2 e 1GB de mem´oria RAM. Os recursos computacionais utilizados neste trabalho est˜ao dispon´ıveis no Laborat´orio de Computac¸a˜ o de Alto Desempenho - LCAD4 , da universidade federal do Espirito Santo, e no Laborat´orio de Dinˆamicas de Flu´ıdos Computacionais - CFDlab5 da universiade do Texas em Austin, EUA.. 4 http://www.lcad.inf.ufes.br 5 http://www.cfdlab.ae.utexas.edu/.

(35) 2. Formulac¸a˜ o e Aproximac¸a˜ o. Nesse cap´ıtulo s˜ao apresentadas as formulac¸o˜ es de elementos finitos implementadas na biblioteca     para as equac¸o˜ es advecc¸a˜ o-difus˜ao e Navier-Stokes. Al´em disso, na u´ ltima sec¸a˜ o e´ apresentada uma descric¸a˜ o das principais caracter´ısticas da biblioteca.    . Ser˜ao apre-. sentadas duas formulac¸o˜ es de elementos finitos. A primeira delas e´ a formulac¸a˜ o para a equac¸a˜ o do transporte convectivo-difusivo. Nesse caso, devido a poss´ıveis instabilidades num´ericas geradas pelo termo convectivo, ser´a usada a formulac¸a˜ o estabilizada de elementos finitos conhecida como formulac¸a˜ o streamline-upwind/Petrov-Galerkin (SUPG). A segunda formulac¸a˜ o que ser´a apresentada e´ a tradicional formulac¸a˜ o de Galerkin para as equac¸o˜ es de Navier-Stokes. Neste caso, foi utilizado o m´etodo de Newton-Raphson para a resoluc¸a˜ o dos sistemas n˜ao lineares e o m´etodo θ de integrac¸a˜ o no tempo.. 2.1 Formulac¸a˜ o SUPG para a equac¸a˜ o de transporte A equac¸a˜ o de convecc¸a˜ o-difus˜ao bidimensional em regime permanente pode ser definida pela equac¸a˜ o. β  ∇u  ∇ κ ∇u . f. em Ω. (2.1). onde Ω e´ uma regi˜ao de IR2 , u e´ a vari´avel a ser transportada (temperatura, concentrac¸a˜ o, etc),. β   βx  βy T e´ o campo de velocidade do fluido, f e´ o termo fonte e κ e´ a difusividade volum´etrica dada por. κ. kx 0 0. ky. . (2.2). Na equac¸a˜ o, β  ∇u e´ o termo convectivo, no qual afeta a distribuic¸a˜ o da quantidade transportada. na direc¸a˜ o do escoamento, e ∇  κ ∇u e´ o termo difusivo, no qual afeta a distribuic¸a˜ o da quan-. tidade transportada em todas as direc¸o˜ es. Nos experimentos o campo de velocidade do fluido e´ considerado com divergˆencia nula, ou seja, ∇  β  0. E´ necess´ario ainda definir as condic¸o˜ es.

(36) 10. de fronteira para o problema. Neste trabalho ser˜ao consideradas as seguintes condic¸o˜ es u  g em Γg . (2.3). κ ∇u  n  0 em Γh . (2.4). onde g e´ uma func¸a˜ o conhecida de x   x y T , Γ  Γg  Γh e´ o contorno do dom´ınio e n .  nx ny  T o vetor normal externo de Γ.. O m´etodo de Galerkin e´ a formulac¸a˜ o geralmente utilizada na discretizac¸a˜ o espacial dos problemas predominantemente difusivos. Entretanto, na presenc¸a de escoamentos predominantemente convectivos, esta formulac¸a˜ o n˜ao gera bons resultados, apresentando oscilac¸o˜ es esp´urias, que n˜ao pertencem ao problema f´ısico, mas que s˜ao devidas a` s instabilidades da formulac¸a˜ o utilizada. Como forma de diminuir essas oscilac¸o˜ es, Brooks e Hughes [19] apresentaram uma formulac¸a˜ o estabilizada de elementos finitos denominada Streamline/Upwind Petrov-Galerkin, SUPG. A id´eia b´asica do m´etodo e´ introduzir difus˜ao (ou viscosidade) somente na direc¸a˜ o do escoamento. O m´etodo de Galerkin, extendido com a formulac¸a˜ o PetrovGalerkin, e´ modificado adicionando uma pertubac¸a˜ o na direc¸a˜ o das linhas de corrente. A equac¸a˜ o (2.1) se encontra na sua forma forte. Para definir a formulac¸a˜ o fraca ou variacional do problema define-se dois conjuntos de func¸o˜ es. O primeiro conjunto, denominado de , corresponde ao conjunto das func¸o˜ es de teste u, que satisfazem as condic¸o˜ es de contorno e s˜ao quadrado integr´aveis. A segundo conjunto s˜ao as func¸o˜ es peso w, denominado , que s˜ao similares a func¸o˜ es de teste, por´em, satisfazem condic¸o˜ es nulas no contorno. De modo geral, essas func¸o˜ es s˜ao aproximadas por func¸o˜ es de dimens˜ao finita definidas por:   φ h  φ h  H h  φ h  g em Γg . (2.5).  h   wh  wh  H h  wh  0 em Γg . (2.6). h. e. onde H h e´ o conjunto de func¸o˜ es quadrado integr´aveis admiss´ıveis para o problema (2.1) no espac¸o de dimens˜ao finita. No m´etodo de Galerkin usual, as func¸o˜ es peso s˜ao consideradas cont´ınuas ao longo das fronteiras entre os elementos. A formulac¸a˜ o SUPG, entretanto, requer func¸o˜ es pesos descont´ınuas da forma w˜  w  p . (2.7). onde, w e´ uma func¸a˜ o peso cont´ınua e p e´ a contribuic¸a˜ o descont´ınua SUPG. Ambos, w e p s˜ao assumidos su´aveis no interior dos elementos..

(37) 11 nel . Considerando uma discretizac¸a˜ o por elemento finitos do dom´ınio Ω em nel elementos, Ωe , e  1 2.  nel , tal que, Ω . e 1. Ωe e Ωi  Ω j  0, / a formulac¸a˜ o estabilizada SUPG para o. problema (2.1) e´ dada por . h. w˜ β  ∇u  ∇ κ ∇u  dΩe  h. ∑. Ωe. e. h. h. Substituindo (2.7) em (2.8) e tomando p  τ duyar, Liou e Behr [83], tem-se, . . Ωe. . . . e. Ωe. w˜ h f dΩe. (2.8). β ∇w, por exemplo, segundo estudos de Tez β. Galerkin. Ωe. e. ∑. wh β h  ∇uh  ∇  κ ∇uh   dΩe   . . ∑. . τ. h. ∇wh β h  ∇uh  ∇ κ ∇uh   dΩe β  . β. h. . Petrov Galerkin. wh  τ. Ωe. h. ∇wh  f dΩe β  . β. (2.9). h. Fonte. Integrando por partes o termo de Galerkin, obt´em-se . . Ωe. . w β  ∇u dΩe   h h. τ. ∑ β h e. . . Ωe. . h. . Ωe. ∇wh κ ∇uh dΩe  . Galerkin. β  ∇w β  ∇u dΩe   h. Ωe. h h. . h. Ωe. β h  ∇wh ∇ κ ∇uh  dΩe  . Petrov Galerkin. wh  τ. h. β h . β.  ∇wh  f dΩe  . (2.10). Fonte. O parˆametro de estabilizac¸a˜ o SUPG τ presente na equac¸a˜ o (2.10) possui v´arias definic¸o˜ es. Neste trabalho e´ utilizada a definic¸a˜ o dada em [83]:. τ. α h˜  2. (2.11).

(38) 12. com. h˜ . 2A Pe α  min  1  3 ˜ β h  Pe  k˜ βT βT κ k˜  β β. (2.12) (2.13) (2.14) (2.15). onde A e´ a´ rea do elemento, h˜ e´ o tamanho caracter´ıstico do elemento, β e´ o vetor velocidade e Pe e´ o n´umero de Peclet do elemento local. Considerando uma base φ j , j  1 2.  N, para o espac¸o das aproximac¸o˜ es. h,. φ h pode. ser representada da seguinte forma: uh x . N. ∑ u jφ j. (2.16). x. j 1. onde N e´ o n´umero de n´os na malha de elementos finitos e u j , j  1 2.  N, s˜ao os valores da. soluc¸a˜ o aproximada nos n´os da malha. Substituindo a equac¸a˜ o (2.16) em (2.10) e considerando wh  φi para i  1 2.  N, obtem-se um sistema de equac¸o˜ es lineares da forma: Ku  F. sendo, K uma matriz de ordem N. (2.17). N conhecida como matriz de rigidez, u e´ o vetor da soluc¸a˜ o. aproximada e F e´ o termo fonte. A principal caracter´ıstica do m´etodo de elementos finitos e´ que tanto K quanto F podem ser calculados por uma soma inteligente das contribuic¸o˜ es de cada elemento num processo chamado de assembling. Esse processo e´ indicado abaixo: nel K  F . A Ke. (2.18). A Fe. (2.19). e 1 nel. e 1. onde A indica o assembling das contribuic¸o˜ es de cada elemento. No n´ıvel do elemento, Ke e Fe s˜ao formados pelas contribuic¸o˜ es do m´etodo de Galerkin e Petrov-Galerkin. Al´em disso, na matriz de rigidez Ke essas contribuic¸a˜ o s˜ao divididas pelos termos convectivo e difusivo. Dessa forma, a obtenc¸a˜ o de Ke e Fe pode ser representada pelos.

(39) 13. seguintes somat´orios: e e e Ke  KeD G  KC G  KD PG  KC PG. (2.20). Fe  FeG  FePG. (2.21). e. onde os sub-´ındices D e C indicam os termos difusivos e convectivos, respectivamente. J´a os sub-´ındices G e PG correspondem, respectivamente, as contribuic¸o˜ es de Galerkin e PetrovGalerkin. Cada termo do somat´orio est´a apresentado em detalhe abaixo: . Termo difusivo de Galerkin KeD G KeD G i j . e KC G. e KC G. i j . Ωe. KeD PG. τ i j  β. τ β. FeG. FeG. i . Termo fonte de Petrov-Galerkin FePG. e PC PG. ∇φiT β ∇  κ ∇φ j  dΩe. (2.24). ∇φiT β T β ∇φ j dΩe. (2.25).  Ωe. . Termo fonte de Galerkin. (2.23). Ωe. Termo convecc¸a˜ o de Petrov-Galerkin e KeD PG KC PG i j . φi β T  ∇φ j dΩe. . Termo difusivo de Petrov-Galerkin KeD PG. (2.22). Ωe. . Termo convectivo de Galerkin. ∇φiT κ ∇φ j dΩ. τ i  β. Ωe. φi f dΩe.  Ωe. β T  ∇φi f dΩe. (2.26). (2.27). Uma vez gerado o sistema de equac¸o˜ es (2.17), este deve ser resolvido por um m´etodo eficiente de resoluc¸a˜ o de sistema linear de grande porte. Tais m´etodos ser˜ao discutidos no Cap´ıtulo 3. A seguir ser´a apresentada a formulac¸a˜ o de elementos finitos para as equac¸o˜ es de Navier-Stokes..

(40) 14. 2.2 Formulac¸a˜ o de Galerkin para as equac¸o˜ es de Navier-Stokes Considerando um fluido viscoso e incompress´ıvel ocupando uma regi˜ao Ω

(41) IR2 , com contorno. ∂ Ω, as equac¸o˜ es de Navier-Stokes transientes podem ser expressas por du 1  u  ∇u  ν ∇2 u  ∇p  f dt ρ ∇ u  0. em Ω. (2.28). em Ω. (2.29). onde u  u v e´ campo de velocidades, p e´ a press˜ao, f e´ o termo fonte, ρ e´ a densidade do fluido e ν e´ a viscosidade. A equac¸a˜ o (2.28) representa a equac¸a˜ o de momento e a equac¸a˜ o (2.29) representa a equac¸a˜ o de conservac¸a˜ o da massa, que e´ muito freq¨uentemente chamada de equac¸a˜ o da continuidade. Estas equac¸o˜ es est˜ao sujeitas a condic¸a˜ o de contorno de Dirichlet imposta, dado por u  g em ∂ Ω. (2.30). e a condic¸a˜ o inicial u x 0  u0 x . Realizando as seguintes substituic¸o˜ es u . u U v x y p  t  t   v   x   y   p  2 U U L L ρU L. onde U e L s˜ao, respectivamente, a velocidade e o tamanho de referˆencia, chega-se na formulac¸a˜ o adimensional das equac¸o˜ es de Navier-Stokes, conforme apresentada abaixo, 1 2 du  u  ∇u  ∇ u  ∇p  f dt Re ∇ u  0 sendo Re . LU ν. em Ω. (2.31). em Ω. (2.32). o n´umero de Reynolds.. A formulac¸a˜ o fraca ou variacional do problema pode ser descrita como [24]: encontrar . u   satisfazendo as condic¸o˜ es essenciais de contorno e p   tal que Ω. . 1 du  w  u  ∇ u  w  ∇u : ∇w  ∇p  w dΩ dt Re   f  w dΩ . Ω. (2.33). Ω. ∇  u q dΩ  0. (2.34). w   admiss´ıvel, com w  0 em ∂ Ω, e q   admiss´ıvel, onde  e  s˜ao as classes de func¸o˜ es testes para a velocidade e press˜ao, respectivamente. Seja  h e  h aproximac¸o˜ es para os espac¸os de func¸o˜ es  e  , respectivamente. A.

(42) 15. formulac¸a˜ o de Galerkin para as equac¸o˜ es (2.33) e (2.34) pode ser escrita como: encontrar uh  h. . satisfazendo as condic¸o˜ es de fronteira e ph   h , tal que Ω. . duh h 1  w  uh  ∇ uh  wh  ∇uh : ∇wh  ∇p  wh  dΩ dt Re   f  wh dΩ . Ω. (2.35). Ω. ∇  uh qh dΩ  0. (2.36). wh   h admiss´ıvel, com wh  0 em ∂ Ω, e qh   h . Introduzindo uma discretizac¸a˜ o por elementos finitos e escolhendo func¸o˜ es bases apropriadas que satisfaz a condic¸a˜ o de estabilidade de Ladyzhenskaya, Babuska e Brezzi (LBB) [67, 6, 18], as func¸o˜ es uh e ph podem ser aproximadas por: N. ∑ u jφ j. uh x . x. (2.37). x. (2.38). j 1 M. ∑ pl ψl. ph x . l 1. Considerando a func¸a˜ o de peso wh  φr  0 , r  1.  N, e substituindo as express˜oes (2.37). e (2.38) nas equac¸o˜ es (2.35) e (2.36), obtem-se um sistema de equac¸o˜ es diferenciais ordin´arias n˜ao-linear da forma . 1 dU   U  U  P   dt Re T U  0. onde U   uT vT  , com uT   u1 u2 uN  , vT   M 0 A    0 M 0. . com M   mi j . mi j . Bx   bx  il . Ωh. . φi φ j dΩ i j  1. ai j  bx  il . By   by il  Fx   Fx  i . (2.40).  v1 v2 vN  e PT  p1 p2 pM  T e    Fx 0 Bx e   Fy By A. . A   ai j . (2.39). Ωh. Ωh. ∇φi ∇φ j dΩ. . φi  x ψl dΩ l  1. by  il  Fx  i . N. . Ωh. Ωh. (2.41). (2.42) (2.43). M. (2.44). φi  y ψl dΩ. (2.45). fx φi dΩ. (2.46).

(43) . Fy   Fy i  e  uh  .  Ωh. Fy i . 16. Ωh. fy φi dΩ. uh  ∇ uh  wh dΩ. (2.47). (2.48). e´ o termo n˜ao linear da equac¸a˜ o (2.39). Integrando implicitamente no tempo usando o m´etodo tradicional θ , a cada passo no tempo . 1 n n  θ  U  U  P Re.  1 n 1 n 1 n 1 U  P  1 θ  U   Re. tn e´ preciso resolver  n. U  Un 1  ∆t. n.  θ  n  1  θ   n 1  0. (2.49).  T Un  0. (2.50). Uma vez que  U e´ uma func¸a˜ o n˜ao linear de U, e´ preciso resolver a cada passo no tempo, tn, um sistema n˜ao linear da forma g rn   0. (2.51). com rT   UT PT  . Linearizando (2.51) pelo m´etodo de Newton, obtem-se um sistema linear da forma J rnk  rnk 1    g rnk 1 . a ser resolvido a cada passo k  1 2 por. J 

(44). 1 M  ∆t θ Re A. 0 Bx  T. (2.52). do proceso iterativo, sendo J, a matriz jacobiana dada  ∂ i 1 M  ∆t θ Re A  ∆t θ By   ∂rj By  T 0 0.  ∆t θ Bx. (2.53). e g rnk 1    M  ∆t θ Unk 1  ∆t θ BPnk 1  ∆t θ D Unk 1   I. (2.54). com 1 n 1 A Uk 1 Re n 1 1  1  θ  ∆tB Pk 1  1  θ  ∆t D Un k 1 . I   M  1  θ  ∆t.  θ ∆tF n  1  θ  ∆tF n 1. (2.55). (2.56).

(45) 17 . Sabendo que o termo n˜ao linear  U pode ser escrito como . i U . Ωh. N i U  o c´alculo da sua derivada. ∂ i ∂rj. Ωh. . ∂ uh ∂u φi  vh h φi  dΩ e ∂x ∂y ∂ vh ∂v uh φi  vh h φi  dΩ ∂x ∂y uh. (2.57) (2.58). e´ dado a seguir. ∂ i ∂uj ∂ i ∂vj ∂ i ∂ pl ∂ N i ∂uj ∂ N i ∂vj ∂ N i ∂ pl.  . . Ωh. Ωh. uh  ∇φ j φi . φi φ j. . ∂ uh φi φ j  dΩ ∂x. ∂ uh  dΩ ∂y.  0  . . Ωh. Ωh. (2.59) (2.60) (2.61). φi φ j. ∂ vh  dΩ ∂x. uh  ∇φ j φi . (2.62). ∂ vh φi φ j  dΩ ∂y.  0. (2.63) (2.64). Desta forma, o jacobiano final pode ser representado pela seguinte matriz. ∂ i 1 i θ θ B  ∆t  ∆t A  ∂∂  M  ∆t θ Re x u1j ∂ u2j. .  ∂ N i ∂ N i 1 J ∆t θ ∂ u1 M  ∆t θ Re A  ∂ u2   ∆t θ By 

(46)  j j T T Bx  By  0. (2.65). Na implementac¸a˜ o padr˜ao utilizada pela biblioteca    , a cada passo no tempo e´ preciso resolver uma sequˆencia de sistemas lineares, at´e uma precis˜ao fornecida, da seguinte forma K rnk  F. (2.66). onde K  J rnk 1  e F  J rnk 1  rnk 1  g rnk 1  . Avaliando o lado direito do sistema, obt´em-se F  J Uk 1      ∆t θ  Unk 1  ∆t θ  Pnk 1  ∆t θ  Unk 1   I. (2.67). Simplificando, chega-se em F  ∆t θ f˜  I. (2.68).

(47) 18 . onde f˜   f˜x  f˜y  0 T com f˜x  i  f˜y  i . h. uh  ∇uh φi dΩ. (2.69). Ω. uh  ∇vh φi dΩ. (2.70). Ωh. A sobreposic¸a˜ o das contribuic¸oes nodais de cada elemento conduz na formac¸a˜ o da matriz K global assim como os vetor F, sendo ent˜ao nel K  F . A Ke. (2.71). A Fe. (2.72). e 1 nel. e 1. A matriz Ke e o vetor Fe , por sua vez, s˜ao formados por submatrizes e subvetores, relacionados com o sistema jacobiando inicial e com as seguinte estrutura:. Kuu Kuv Kup . Ke 

(48) Kvu Kvv Kvp  e Fe  K pu K pv K pp. . Fv 

(49)  Fp Fu. (2.73). O c´alculo de cada uma dessas submatrizes e subvetores e´ apresentado no Apˆendice A. Os sistemas s˜ao resolvidos utilizando os m´etodos de resoluc¸a˜ o linear apresentados no Cap´ıtulo 3. Nos testes n´umericos apresentados na Sec¸a˜ o 5.2 e´ utilizado o m´etodo de Euler impl´ıcito (θ  1) para a integrac¸a˜ o no tempo. A raz˜ao dessa decis˜ao e´ que o m´etodo de segunda ordem CrankNicolson e´ notoriamente oscilat´orio para problemas com dados iniciais descont´ınuos, tais como, o problema da cavidade e alargamento de canal. Na pr´oxima sec¸a˜ o ser˜ao apresentadas as caracter´ısticas principais da biblioteca ibMesh utilizada para a implementac¸a˜ o das formulac¸o˜ es de elementos finitos apresentadas aqui.. 2.3.    : biblioteca para simulac¸o˜ es paralelas com refinamento adaptativo da malha de elementos finitos. Um dos principais objetivos da biblioteca     e´ oferecer uma plataforma de pesquisa para algoritmos adaptativos e paralelos, fornecendo um ambiente para simulac¸o˜ es em elementos finitos de problemas com multif´ısicas e multiescala de modo confi´avel e reutiliz´avel [5]. A sua criac¸a˜ o foi poss´ıvel por dois fatores principais. O primeiro e´ a existˆencia de uma infraestrutura paralela robusta tanto de software quanto de hardware, que inclui cluster de PC’s rodando.

(50) 19. linux e implementac¸o˜ es de alto desempenho usando o padr˜ao MPI. O segundo e´ a evoluc¸a˜ o da metodologia de malhas adaptativas, de algoritmos de decomposic¸a˜ o de dom´ınio e t´ecnicas de reparticionamento eficientes. A biblioteca foi originalmente projetada para fornecer uma estrutura de dados poderosa que apoiasse o refinamento adaptativo de malhas n˜ao estruturadas surgidas nas simulac¸o˜ es de elementos finitos. Esforc¸os subseq¨uentes foram realizados no desenvolvimento da biblioteca com intuito de promever melhorias no desempenho, suporte a um n´umeros maior de elementos finitos e na implementac¸a˜ o de algoritmos para problemas transientes e n˜ao-lineares. Dentro desses esforc¸os, sem d´uvida nenhuma, o mais importante foi a implementac¸a˜ o de t´ecnicas paralelas no processo de refinamento adaptativo. Os recursos dispon´ıveis na biblioteca     permite ao usu´ario final da biblioteca focar, na maior parte do tempo, na modelagem do problema ao inv´es da codificac¸a˜ o da aplicac¸a˜ o. O objetivo de combinar adaptatividade e paralelismo e´ claramente agrupar os benef´ıcios de ambas t´ecnicas em resolver os problemas de forma mais eficiente. No paralelismo, pela reduc¸a˜ o do custo computacional quando comparado ao tempo de processamento em plataformas seriais. No refinemento, por permitir obter soluc¸a˜ o em malhas mais grossas por´em mais bem projetadas com grau de exatid˜ao compar´avel a uma malha padr˜ao n˜ao-adaptativa. E´ claro que, quando utilizados refinamento adaptativo e paralelismo, camadas adicionais de complexidade s˜ao adicionadas na an´alise do problema, na metodologia, nos algoritmos e nas estruturas de dados utilizados. Al´em disso, h´a um custo adicional associado com a implementac¸a˜ o de ambos e esses fatores devem ser levados em conta. Entretanto, fica claro que cada uma dessas estrat´egias oferecem uma capacidade computacional a mais aos usu´arios finais. Experiˆencias com outras bibliotecas paralelas de alto desempenho usando a linguagem de programac¸a˜ o C++, influenciaram no projeto da biblioteca.    . O suporte a orientac¸a˜ o. a objetos em C++ permite que os desenvolvedores escrevam seus c´odigos usando interfaces com classes abstratas as quais definem, por exemplo, em tempo de compilac¸a˜ o ou em tempo de execuc¸a˜ o, o tipo de elemento finito a ser usado e/ou a regra de quadratura a ser usada no processo de integrac¸a˜ o num´erica. Para reduzir o custo das chamadas das func¸o˜ es virtuais das classes abstratas, os desenvolvedores do     decidiram usar poucas chamadas de func¸o˜ es que desempenham grandes operac¸o˜ es, ao inv´es, de chamar muitas func¸o˜ es que executam poucas operac¸o˜ es. Embora a escrita de c´odigos eficientes em C++ possa ser dif´ıcil, a linguagem suporta diferentes estilos de programac¸a˜ o, facilitando a escrita de c´odigos de diferentes complexidades e na manutenc¸a˜ o dos mesmos, uma vantagem quando comparados com as linguagens de n´ıveis.

(51) 20. mais baixo, tal como, C e Fortran. As linguagens C e Fortran s˜ao r´apidas e mais populares para a an´alise num´erica, mas n˜ao possui a metodologia adequada de orientac¸a˜ o objetos requeridas pelos desenvolvedores da biblioteca    . Al´em disso, o C++ provˆe um mecanismo natural de encapsulamento para as interface com as bibliotecas de terceiros atrav´es de uma interface comum, e a orientac¸a˜ o objeto permite um ajuste adequado nas camadas de complexidades introduzidas pela combinac¸a˜ o entre o paralelismo e a adaptatividade. A facilidade de ligac¸a˜ o dos c´odigos C, Fortran e Assembler dentro de aplicac¸o˜ es C++ tamb´em permitem a biblioteca     fazer o uso de bibliotecas existentes escritas na linguagens de n´ıveis mais baixo. A existˆencia de compiladores de alta qualidades com suporte a diferentes hardwares mant´em a biblioteca     port´avel em diferentes plataformas. A maior parte do desenvolvimento da biblioteca     foi realizado em m´aquinas rodando Linux usando a colec¸a˜ o de compiladores GNU, mas outras platafomas tamb´em s˜ao suportadas. A biblioteca faz um uso extensivo das bibliotecas padr˜oes do C++, essenciais para a utilizac¸a˜ o em m´ultiplos compiladores, evitando a construc¸a˜ o de c´odigos espec´ıficos para determinados compiladores. O suporte aos compiladores nativos no     e´ voltado principalmente para a gerac¸a˜ o de c´odigos otimizados. Em arquiteturas, tal como o IBM Power 5 e Intel Itanium II, h´a um grande n´umero de instruc¸o˜ es complexas espec´ıficas para elas. Os compiladores desenvolvidos para essas plataformas tratam essas instruc¸o˜ es de modo mais otimizado. Para essas raz˜oes, a biblioteca tem sempre sido testada com uma variedade de compiladores, antes dos lanc¸amentos oficiais das novas plataformas. Um efeito dessa t´ecnica e´ que a biblioteca foi posteriormente transportada para arquiteturas adicionais tal como OSX e Windows com pouca dificuldade. Outra caracter´ıstica presente no     e´ o investimento, sempre que poss´ıvel, em bibliotecas existentes que possam agregar funcionalidades a` mesma, evitando que tarefas necess´arias na simulac¸a˜ o que j´a foram implementadas, sejam codificadas novamente. Dentre essas bibliotecas h´a aquelas respons´aveis pela gerac¸a˜ o de malhas, tais como, Triangle [79], respons´avel pela triangularizac¸a˜ o de Delaunay e o TetGen [80], um gerador de malhas 3D com tetraedros. A biblioteca usa as bibliotecas METIS [63] e ParMETIS [64] para a decomposic¸a˜ o de dom´ınio. Esquemas de particionamento adicionais podem ser inseridos na biblioteca com bastante facilidade atrav´es de subclasses em C++. A biblioteca providencia uma classe base abstrata

(52) 

(53)   que define a interface de particionamento e classes derivadas podem servir como empactadores de bibliotecas externas de particionamento. O paradigma de classes abstratas/derivadas tamb´em e´ usado para criar uma interface com pacotes de algebra linear. Neste caso, a biblioteca ibMesh disponibiliza as classes abstratas    

(54)  ,     

(55) ,     e     . Classes derivadas s˜ao ent˜ao implementadas de acordo com o pacote linear utilizado. Dentre esse pacotes, tem o LasPack[81] para m´aquinas seriais e a.

(56) 21. biblioteca PETSc [7] para plataformas seriais e paralelas. Considerando o paradigma de orientac¸a˜ o a objetos, as principais estruturas de dados usados na biblioteca     s˜ao implementados atrav´es de classes. As principais delas s˜ao apresentadas a seguir e o foco da discuss˜ao baseia-se nas funcionalidades b´asicas e nas raz˜oes sustentadas em diretrizes do projeto. Malha A classe    e´ a principal estrutura da biblioteca    . Ela provˆe uma representac¸a˜ o discreta de um dom´ınio no espac¸o d-dimensional, onde d e´ 1,2 ou 3. Essa discretizac¸a˜ o e´ composta por dois tipos de dados armazenados na malha: os elementos e os n´os. Esses dados, por sua vez, s˜ao encapsulados em objetos abstratos que permitem a implementac¸a˜ o de malhas n˜ao estruturadas e com elementos de diferentes formas sem grande impacto na implementac¸a˜ o. N´os Cada objeto da classe   armazena a localizac¸a˜ o x y z no espac¸o, bem como, informac¸o˜ es adicionais, tais como, o n´umero de identificac¸a˜ o u´ nica global (ID) e os ´ındices do grau de liberdade. V´arias operac¸o˜ es triviais sobre a malha, tal como, escalonamento, translac¸a˜ o e rotac¸a˜ o s˜ao executadas diretamente sobre os n´os. Durante o processo de refinamento, novos n´os podem ser adicionados a malha. Quando dois elementos adjacentes s˜ao refinados, n´os comuns passam a existir na interface entre esses elementos. Para resolver essa situac¸a˜ o e´ utilizada uma discretizac¸a˜ o v´alida que n˜ao gere nenhum n´o duplicado. Um novo n´o e´ criado como uma combinac¸a˜ o linear dos n´os existentes e uma chave hash e´ criada baseada nas informac¸o˜ es dos n´os pais. Se essa chave j´a existe no mapeamento de chaves hash, o novo n´o e´ duplicado e deve ser rejeitado. Similarmente, no processo de desrefinamento pode ocorrer a criac¸a˜ o de n´os orf˜aos, ou n´os que n˜ao est˜ao conectados em nenhum elemento. Depois de desrefinamento, a biblioteca simplesmente conta o n´umero de elementos conectados em cada n´o e remove aqueles n´os que n˜ao est˜ao conectados em nenhum elemento. Elementos     define a classe abstrata    que implementa a interface para um elemento geom´etrico. Diversos tipos de elementos est˜ao presentes na biblioteca atrav´es de classes derivadas da classe   . Nesse contexto, tem-se como exemplo as classes Tri3 e Tet10, correspondente as implementac¸o˜ es para o elemento triangular linear com 3 n´os e o tetraedro com 10 n´os, respectivamente. A colec¸a˜ o de todos os tipos geom´etricos de elementos finitos implementados na biblioteca     inclui quadril´ateros, triangulos, hexaedros, tetraedos, prismas e pirˆamides, bem como, um colec¸a˜ o de elementos infinitos. A lista completa de todos os tipos de elementos est´a apresentada.

(57) 22. na Figura 2.1.. Figura 2.1: Hierarquia da classe    Conectividade Nodal A conectividade dos elementos e´ armazenada atrav´es de um ponteiro para os n´os. Essa t´ecnica e´ uma variac¸a˜ o da estrutura de dados cl´assica de elementos finitos, na qual a conectividade e´ definida em termos de ´ındices nodais [43]. Por armazenar os ponteiros dos n´os, os elementos podem determinar sua conectividade geom´etrica diretamente. Isto simplifica muitas func¸o˜ es no c´odigo por requerer, do usu´ario, apenas o elemento ao inv´es do elemento e a localizac¸a˜ o nodal. Sistema A classe  

(58)   na biblioteca     corresponde a um sistema de equac¸o˜ es diferenciais.

(59) 23. parciais de uma ou mais equac¸o˜ es, que e´ resolvida em uma dada malha. H´a suporte a sistemas expl´ıcitos, impl´ıcitos, dependente do tempo, linear e n˜ao linear. Um objeto  

(60)   armazena os valores da soluc¸a˜ o para os graus de liberdade em uma simulac¸a˜ o, que podem ser tantos reais ou complexos. Al´em disso, o sistema pode conter informac¸o˜ es adicionais tal como a matriz esparsa necess´aria para a estrat´egia impl´ıcita de soluc¸a˜ o. A classe  

(61)   provˆe uma interface gen´erica e customizada que permite ao usu´ario especificar as partes dependentes da f´ısica do problema. Por exemplo, no caso de um sistema impl´ıcito, o usu´ario pode definir uma func¸a˜ o que realiza o assembler da matriz ou derivar sua pr´opria classe e sobrepor o operador do assembler original. Similarmente, para problemas transientes o usu´ario pode definir suas pr´oprias func¸o˜ es de inicializac¸a˜ o ou sobrepor o operador de inicializac¸a˜ o da biblioteca..

(62) 3. M´etodos Iterativos Lineares. Nesse cap´ıtulo e´ discutido o papel da biblioteca PETSc [7, 8, 9] dentro da biblioteca     juntamente com a descric¸a˜ o de alguns dos m´etodos num´ericos de soluc¸o˜ es de sistemas lineares presentes na biblioteca. Dois desses m´etodos num´ericos ser˜ao comentados com maior detalhe, m´etodo dos res´ıduos m´ınimos generalizados (GMRES) [77] e m´etodo dos gradientes bi-conjugados estabilizados (Bi-CGSTAB) [89]. Por fim, ser´a descrito o m´etodo das direc¸o˜ es conjugadas a` esquerda (LCD) [93], n˜ao presente ao conjunto de rotinas do PETSc, e sua inclus˜ao na biblioteca.. 3.1 Biblioteca PETSc A biblioteca PETSc e´ uma ferramenta, constitu´ıda de rotinas que permitem a implementac¸a˜ o de c´odigos paralelos ou seriais para a soluc¸a˜ o de sistemas alg´ebricos. Ela foi desenvolvido pelo Laborat´orio Nacional de Argonne 1 , com o intuito de prover algoritmos eficientes para a soluc¸a˜ o num´erica de equac¸o˜ es diferenciais. Embora seja escrito nas linguagens C e Fortran, a biblioteca foi constru´ıda usando o paradigma de orientac¸a˜ o a objetos. Pode ser facilmente utilizada em c´odigos de aplicac¸o˜ es cient´ıficas de grande escala. PETSc provˆe para a biblioteca     todas as estruturas necess´arias para o armazenamento, manipulac¸a˜ o de vetores e matrizes e m´etodos de soluc¸a˜ o de sistemas lineares e n˜ao lineares. A Figura 3.1 mostra a organizac¸a˜ o hier´arquica entre as bibliotecas     e PETSc com os principais componentes da biblioteca PETSc utilizados pela biblioteca    . Na base da hierarquia apresentada pela Figura 3.1 encontra-se o conjunto de rotinas da biblioteca MPI (do inglˆes, Message Passing Interface) [45]. Essa biblioteca d´a o suporte necess´ario para o desenvolvimento de aplicac¸o˜ es paralelas atr´aves do protocolo de troca de mensagens entre processos. A utilizac¸a˜ o do paradigma de troca de mensagens e´ atrativa porque permite o desenvolvimento de c´odigos mais port´aveis e escal´aveis, al´em de ser compat´ıvel tanto em multicomputadores com mem´oria distribu´ıda, quanto em multiprocessos com mem´oria com1 http://www.anl.com.

Referências

Documentos relacionados

Graças ao apoio do diretor da Faculdade, da Rede de Museus e em especial da Pro Reitoria de Extensão, o CEMEMOR tem ampliado e mantido suas atividades junto

Os estudos originais encontrados entre janeiro de 2007 e dezembro de 2017 foram selecionados de acordo com os seguintes critérios de inclusão: obtenção de valores de

De acordo com estes resultados, e dada a reduzida explicitação, e exploração, das relações que se estabelecem entre a ciência, a tecnologia, a sociedade e o ambiente, conclui-se

1- Designar Comissão composta pelos Professores ANGELO MARIO DO PRADO PESSANHA, matrícula SIAPE 311702; CESAR FREDERICO DOS SANTOS VON DOLLINGER, matrícula SIAPE 2321560; FRANCISCO

A Parte III, “Implementando estratégias de marketing”, enfoca a execução da estratégia de marketing, especifi camente na gestão e na execução de progra- mas de marketing por

Que razões levam os gestores das Universidades Corporativas a optarem pela utilização da educação a distância por meio de cursos on-line na modalidade auto estudo?.

Este trabalho se refere ao instituto processual conhecido como fundamentação das decisões judiciais, que em razão da divergência doutrinária quanto a nomenclatura

LVT APFCAN-Associação de Produtores Florestais dos Concelhos de Alcobaça e Nazaré SF 02-16B 2004 LVT APFCAN-Associação de Produtores Florestais dos Concelhos de Alcobaça e Nazaré