Algoritmos Adaptativos para o Metodo dos Elementos FinitosUtilizando a Biblioteca
Jose Jeronimo Camata
Dissertacao de Mestrado
Programa de Pos-Graduacao em Informatica
Universidade Federal do Espirito Santo
Vitoria, Outubro de 2006
Livros Grátis
http://www.livrosgratis.com.br
Milhares de livros grátis para download.
Aos meus pais, Gecelina e Jose, e ao meu irmao Felipe
Agradecimentos
Expresso aqui meus sinceros agradecimentos aos responsaveis pela realizacao deste trabalho.
A minha orientadora, Prof.a Andrea M. P. Valli que transmitiu seus conhecimentos e ex-
periencias, dedicacao e compreensao, e que, com certeza, contribuiu enormemente na minha
formacao academica e profissional.
A Prof.a Lucia Catabriga pelo apoio dado ao longo deste trabalho, alem de estar disponıvel
para a revisao do mesmo, meus sinceros agradecimentos.
Agradeco a minha famılia por ter me apoiado e me incentivado durante todo perıodo desta
tarefa.
Agradeco aos amigos que fiz ao longo desses ultimos dois anos dentro do departamento de
informatica. Pela trocas de conhecimentos, experiencias e afeto.
Agradeco ao departamento de informatica, que por meio do laboratorio de computacao
de alto desempenho (LCAD), viabilizou a infraestrutura adequada para a completa realizacao
desse trabalho.
Ao Prof. Graham F. Carey pela disponibilidade em ceder os recursos do laboratorio de
dinamicas de fluidos computacionais (CFDLab).
A CAPES, uma vez que esse trabalho faz parte do projeto de colaboracao 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
realizacao desse trabalho.
! !
"!#$#% "!&'(&
&)* + " "$",
- ./0#$#% ""123**41
5 !'(,16 1
7 6+$.118 1
69 1
"2 !
:; 1
&1.$", 131<"$ "/
+= "$ 1>1+ ""1)1
"118 !+$.111 !9 11
1:; 181:1
6**)
Sumario
Lista de Figuras p. vii
Lista de Tabelas p. x
Resumo p. xi
Abstract p. xii
1 Introducao p. 1
1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 6
1.2 Organizacao do texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 7
1.3 Recursos computacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 8
2 Formulacao e Aproximacao p. 9
2.1 Formulacao SUPG para a equacao de transporte . . . . . . . . . . . . . . . . p. 9
2.2 Formulacao de Galerkin para as equacoes de Navier-Stokes . . . . . . . . . . p. 14
2.3 : biblioteca para simulacoes paralelas com refinamento adaptativo
da malha de elementos finitos . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18
3 Metodos Iterativos Lineares p. 24
3.1 Biblioteca PETSc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 24
3.2 Metodos de solucao de sistemas baseados nos sub-espacos de Krylov . . . . . p. 26
3.2.1 Metodo dos resıduos mınimos generalizados (GMRES) . . . . . . . . p. 26
3.2.2 Metodo do gradientes bi-conjugados estabilizados (Bi-CGSTAB) . . p. 31
3.3 Metodo das direcoes conjugadas a esquerda (LCD) . . . . . . . . . . . . . . p. 33
3.3.1 Implementacao no . . . . . . . . . . . . . . . . . . . . . . p. 36
4 Adaptatividade na Biblioteca p. 38
4.1 Refinamento adaptativo da malha . . . . . . . . . . . . . . . . . . . . . . . . p. 38
4.2 Selecao adaptativa do passo no tempo . . . . . . . . . . . . . . . . . . . . . p. 45
4.3 Adaptatividade no espaco e no tempo . . . . . . . . . . . . . . . . . . . . . p. 51
5 Experimentos Numericos usando a Biblioteca p. 54
5.1 Eficiencia computacional dos metodos iterativos . . . . . . . . . . . . . . . . p. 54
5.1.1 Problema de conveccao-difusao . . . . . . . . . . . . . . . . . . . . p. 54
5.1.2 Problema de conveccao dominante . . . . . . . . . . . . . . . . . . . p. 59
5.1.3 Principais conclusoes . . . . . . . . . . . . . . . . . . . . . . . . . . p. 65
5.2 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 conclusoes . . . . . . . . . . . . . . . . . . . . . . . . . . p. 85
6 Conclusao e Trabalhos Futuros p. 87
Referencias Bibliograficas p. 90
Apendices p. 97
Apendice A - SubMatrizes e Subvetores da Matriz Jacobiana . . . . . . . . . . . . p. 97
Lista de Figuras
2.1 Hierarquia da classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 22
3.1 Organizacao hierarquica entre as bibliotecas PETSc e . . . . . . . . p. 25
4.1 Exemplo de refinamento adaptativo da malha para um problema de conveccao-
difusao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Selecao 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 espaco . . . . . . . . . . p. 53
5.1 Solucao do problema de conveccao-difusao . . . . . . . . . . . . . . . . . . p. 55
5.2 Problema de conveccao-difusao - Evolucao do resıduo (Iteracoes log r )para elementos TRI3 (esquerda) e TRI6 (direita), malha 64 64 celulas . . . p. 60
5.3 Problema de conveccao-difusao - Evolucao do resıduo (Iteracoes log r )para elementos TRI3 (esquerda) e TRI6 (direita), malha 128 128 celulas . . p. 60
5.4 Problema de conveccao-difusao - Evolucao do resıduo (Iteracoes log r )para elementos TRI3 (esquerda) e TRI6 (direita), malha 256 256 celulas . . p. 60
5.5 Problema conveccao dominante - Condicoes de Contorno . . . . . . . . . . . p. 61
5.6 Problema conveccao-dominante - Evolucao do resıduo (Iteracoes log r )para elementos TRI3 (esquerda) e TRI6 (direita) - Malha 64 64 celulas . . p. 64
5.7 Problema conveccao-dominante - Evolucao do resıduo (Iteracoes log r )para elementos TRI3 (esquerda) e TRI6 (direita) - Malha 128 128 celulas . p. 64
5.8 Problema conveccao-dominante - Evolucao do resıduo (Iteracoes log r )para elementos TRI3 (esquerda) e TRI6 (direita) - Malha 256 256 celulas . p. 64
5.9 Problema da cavidade - Condicoes de fronteira . . . . . . . . . . . . . . . . p. 67
5.10 Distribuicao da velocidade u no topo da cavidade . . . . . . . . . . . . . . . p. 68
5.11 Problema da cavidade - Reynolds 200 - Perfil das velocidades u (esquerda) e v
(direita) no centro geometrico 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 geometrico da cavidade - malha Fixa (80 80) e
AMR(20 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 - Configuracao final da malha . . . . . p. 73
5.15 Problema da cavidade - Reynolds 1000 - Configuracao 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 - Verificacao do regime permanente -
tempo vs. energia cinetica . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 76
5.19 Problema da cavidade - Reynolds 1000 - Verificacao do regime permanente -
tempo vs. energia cinetica . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 77
5.20 Problema do escoamento com alargamento do canal - Condicoes de fronteira 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 - Numero de nos . . . . p. 81
5.23 Problema do escoamento com alargamento do canal - Configuracao 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
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 Cinetica . . . . p. 85
Lista de Tabelas
5.1 Problema de conveccao-difusao - Desempenho dos metodos GMRES, LCD
and Bi-CGSTAB - Malha 64 64 celulas . . . . . . . . . . . . . . . . . . . p. 56
5.2 Problema de conveccao-difusao - Desempenho dos metodos GMRES, LCD
and Bi-CGSTAB - Malha 128 128 celulas . . . . . . . . . . . . . . . . . . p. 57
5.3 Problema de conveccao-difusao - Desempenho dos metodos GMRES, LCD
and Bi-CGSTAB - Malha 256 256 celulas . . . . . . . . . . . . . . . . . . p. 58
5.4 Problema de conveccao-difusao - Custo das operacoes - Malha 256 256
celulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 59
5.5 Problema conveccao-dominante - Desempenho computacional dos metodos
GMRES, LCD e Bi-CGSTAB - Malha 64 64 celulas . . . . . . . . . . . . p. 62
5.6 Problema conveccao-dominante - Desempenho dos metodos GMRES, LCD
e Bi-CGSTAB - Malha 128 128 celulas . . . . . . . . . . . . . . . . . . . p. 63
5.7 Problema conveccao-dominante - Desempenho dos metodos GMRES, LCD
e Bi-CGSTAB - Malha 256 256 celulas . . . . . . . . . . . . . . . . . . . p. 65
5.8 Problema conveccao-dominante - Custo computacional - Malha 128 128
celulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 66
5.9 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.11 Problema do escoamento com alargamento do canal - Desempenho do PID -
Malha Fixa - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 79
Resumo
Tecnicas adaptativas de refinamento da malha de elementos finitos sao importantes ferra-
mentas na reducao do tempo de processamento da solucao, paralela ou sequencial, de problemas
em engenharia que utilizam o metodo de elementos finitos. Alem do mais, solucoes aproxima-
das que utilizam malhas adaptativas sao capazes de representar com uma maior precisao os
fenomenos fısicos envolvidos. No entanto, a construcao de uma plataforma em elementos fi-
nitos com essas caracterısticas demanda um enorme esforco e tempo de programacao. Sendo
assim, foi adotada a biblioteca ibMesh em C++ para o estudo e implementacao de tecnicas
que podem melhorar a eficiencia computacional de codigos em elementos finitos. Neste tra-
balho foi implementada uma estrategia de selecao do passo do tempo, baseada na teoria de
controle, e a sua aplicabilidade testada quando utilizada em conjunto com a adaptividade espa-
cial presente na ibMesh. Alem do mais, metodo das direcoes conjugados a esquerda (LCD)
foi incluido na biblioteca via uma interface com a biblioteca PETSc, a fim de tambem
fazer parte da biblioteca . Resultados comparativos com os metodos GMRES e Bi-
CGSTAB mostraram a viabilidade da utilizacao desse metodo. Experimentos numericos con-
firmaram a eficiencia da estrategia do passo no tempo, para a obtencao de solucoes em regime
permanente, quando sao utilizadas malhas fixas e malhas adaptativas no espaco. Alem disso,
os custos computacionais para os processos de selecao do passo sao desprezıveis, uma vez que
involvem apenas o armazenamento de alguns vetores e o calculo de normas.
Abstract
Adaptive mesh refinement (AMR) is an important technique in the reduction of the compu-
tational 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 de-
velopment 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 con-
trol 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 non-
symmetric systems of linear equations in the library. Comparative results with GM-
RES 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.
1 Introducao
Diferencas finitas, volumes finitos e elementos finitos sao as principais tecnicas numericas uti-
lizadas para resolver equacoes diferenciais parciais que modelam problemas reais das mais
variadas areas do conhecimento humano. A vantagem do metodo dos elementos finitos relati-
vamente a outros metodos existentes reside na sua versatilidade e generalidade, alem da sua fle-
xibilidade em resolver problemas envolvendo domınios com geometrias complexas e condicoes
de contorno diversas. Desta forma, o metodo de elementos finitos e adotado neste trabalho e
a sua utilizacao na biblioteca [5] e analisada, em conjunto com diversos metodos de
resolucao de sistemas lineares e tecnicas adaptativas da malha. Os modelos matematicos para
os problemas tratados nesse trabalho, e utilizados para testar as tecnicas numericas e computa-
cionais estudadas, sao baseados nas equacoes bidimensionais do transporte convectivo-difusivo
e nas equacoes bidimensionais de Navier-Stokes.
Dentre as principais formulacoes em elementos finitos para escoamentos incompressıveis
estao as formulacoes mistas [24, 69] e penalizadas [94, 69, 22, 23, 24], as formulacoes esta-
bilizadas, como, por exemplo, a formulacao SUPG (Steamline-Upwind/Petrov-Galerkin) [54,
19, 33, 85], a formulacao Galerkin/Least-Squares (GSL) [55, 25, 40], a formulacao Pressure-
Stabilizing/Petrov-Galerkin (PSPG) [84, 31] e as formulacoes baseadas em passos fracionados
[16, 32]. Tambem podemos encontrar formulacoes baseadas nas funcoes de corrente e vor-
ticidade [24, 14]. Neste trabalho e utilizado uma formulacao estabilizada SUPG (Streamline-
Upwind/Petrov-Galerkin) [19] para o problema de transporte com o objetivo de contornar possıveis
instabilidades numericas gerada pela formulacao padrao de Galerkin. Para a equacao de Navier-
Stokes, escritas em variaveis primitivas, e utilizada a formulacao tradicional de Galerkin, com
o metodo de Newton e uma discretizacao no tempo pelo tradicional metodo θ [24].
O metodo dos elementos finitos necessita da geracao da malha correspondente a discretizacao
do domınio do problema, no qual a solucao aproximada e estimada. O espacamento entre os
pontos da malha esta relacionado com a precisao com que a solucao numerica e obtida e com
o tamanho do sistema que e preciso resolver. Quanto maior o numero de pontos ou nos da
malha, maior e o sistema linear resultante. Quanto maior for o sistema linear, mais elevado
2
e o tempo de computacao ou processamento. Mais ainda, em geral os problemas de interesse
em engenharia sao transientes, nao lineares, definidos em 2 ou 3 dimensoes e envolvem malhas
com centenas de milhares de pontos. Isso significa que sistemas lineares de grande porte espar-
sos precisam ser resolvidos varias vezes dentro de um passo no tempo, o que acarreta em um
volume enorme de operacoes para a obtencao da solucao aproximada final. Neste trabalho e
discutido formas de implementacoes numericas capazes de reduzir o tempo de processamento
da solucao em uma plataforma em C++ para a resolucao, paralela ou sequencial, de problemas
em engenharia, utilizando o metodo de elementos finitos e tecnicas adaptativas da malha.
Um dos fatores importante para a melhoria do tempo de processamento e a escolha do
metodo de solucao de sistemas lineares a ser empregado. Esses metodos podem ser diretos,
como eliminacao de Gauss e decomposicao LU, ou iterativos, tais como, Jacobi e Gauss-Seidel.
Os metodos 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 razoes, este tipo de metodo nao e muito utilizado na solucao de sistemas oriundos da
discretizacao por elementos finitos. Assim, os metodos iterativos constituem numa opcao mais
interessante, principalmente, os metodos nao-estacionarios baseados nos subespacos de Kry-
lov [77, 89, 93]. Esses metodos, quando comparados com outros metodos iterativos, possuem
uma taxa de convergencia bem mais alta, principalmente quando algum precondicionamento e
aplicado ao sistema.
O metodo dos resıduos mınimos generalizados, tambem conhecido como GMRES [77],
e o metodo usualmente utilizado na resolucao de sistemas lineares nao-simetricos. Para con-
tornar certos problemas com requerimentos de memoria, a sua variacao mais bem sucedida e
sugerida por Saad e Schultz [77] utiliza a tecnica de reinıcio (”restart”) do processo a cada
ciclo de m iteracoes. Outro metodo, tambem muito empregado, e o metodo dos gradientes
bi-conjugados estabilizados (Bi-CGSTAB) [89]. Esse metodo foi desenvolvido para resolver
a frequente irregularidade de convergencia do metodos dos gradientes conjugados quadrados
(CGS). Alem desses dois ja citados, ha varios outros metodos baseados nos subespacos de Kry-
lov, tais como, o metodo do resıduo quasi-mınimo (QMR), metodo do resıduo quasi-minino
livre de transposicao (TFQMR) e gradientes conjugados (GC).
Em 1994, Yuan et al. [93] introduziram um novo algoritmo para resolver sistemas lineares
nao-singulares e nao-simetricos, o metodo das direcoes conjudadas a esquerda (LCD) base-
ado no conceito de vetores conjugados a esquerda e a direita. Algumas vantagens teoricas
foram verificadas para este metodo, tais como, a propriedade de terminacao finita e a reducao
de falhas (breakdown) para matrizes gerais. Alem disso, existe uma conexao entre LCD e a
3
decomposicao LU, o que facilita a sua compreensao. Catabriga et al [28, 29] aperfeicoaram
esse metodo introduzindo a tecnica do restart e executaram testes comparativos com o GM-
RES. Foi observado que, em algumas casos, o LCD apresentou um desempenho melhor que o
GMRES. No entanto, estudos comparativos com outros metodos continua sendo uma area de
interesse para uma melhor compreensao das capacidades computacionais deste metodo.
Um outro importante fator que afeta consideravelmente o desempenho computacional e o
tamanho da malha oriunda da discretizacao por elementos finitos. Em diversos problemas e
possıvel utilizar uma malha uniforme, ou seja, uma malha que utiliza um mesmo espacamento
entre os diversos nos existentes. Entretanto, existem classes de problemas onde um fenomeno
fısico de interesse acontece em uma determinada regiao do domınio que pode, alem disso,
mudar com o decorrer do tempo. Em geral, para que um fenomeno fısico possa ser estimado
com precisao e definida uma malha suficientemente refinada nas regioes onde a solucao e mais
difıcil de ser estimada ou onde a solucao muda mais rapidamente com o tempo. A utilizacao
de uma malha uniforme nestes casos acarreta em um numero elevado de pontos nodais, ou seja,
em um alto custo computacional.
Para reduzir o tamanho do sistema linear resultante ou o numero de pontos nodais envol-
vidos no problema, e possıvel utilizar uma malha nao uniforme que considere um refinamento
maior nas regioes que necessitam de alta precisao, deixando outras parte do domınio com um
numero reduzido de pontos. Sendo assim, e possıvel obter a precisao necessaria para a solucao
aproximada sem aumentar muito o tamanho do sistema resultante, como no caso da malha uni-
forme. No entanto, para a utilizacao de uma malha nao uniforme e preciso definir estrategias
automaticas de geracao que levem em consideracao a precisao desejada ou o fenomeno fısico
que se deseja capturar [65, 26, 86, 92].
Umas das ferramentas utilizadas para a implementacoes de algoritmos adaptativos e a bi-
blioteca [5]. Seu desenvolvimento iniciou em marco 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 simulacao numerica de equacoes diferenciais parciais usando o metodo de elementos fi-
nitos. Permite o desenvolvimento de codigos tanto para maquinas seriais quanto paralelas de
modo facil e rapido. Ou seja, a biblioteca foi criada para facilitar simulacoes em ele-
mento finitos de problemas multifısicos, multi-escala, e utilizando processos adaptativos e em
paralelo, de modo confiavel e que possa ser reutilizavel.
Um dos principais objetivos da biblioteca e fornecer uma plataforma de pesquisa
para algoritmos adaptativos e paralelos. Grande parte do esforco adotado no desenvolvimento
4
de um software, que suporta simulacoes baseadas em malhas nao 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, usuarios podem concentrar-se na aplicacao fısica
de interesse sem precisar se preocupar com a complexidade adicional envolvida pela adap-
tatividade 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 codigo multifısico
paralelo para uma grande faixa de aplicacoes [90].
Alguns projetos de bibliotecas de alto desempenho que influenciaram o desenvolvimento
do sao [10, 20, 15, 41, 66]. Como deal.II 1 [10, 11], foi projetada, desde
o inıcio, para o uso das caracterısticas avancadas da linguagem de programacao C++. Dentre
elas, a possibilidade de implementacoes de sobreposicao de operadores, herancas e polimor-
fismos, facilitando a estruturacao dos objetos e a extensibilidade da biblioteca. Na biblioteca
nao existe nenhum recurso que utilize linguagens procedurais, tais como, C e FOR-
TRAN. 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 templa-
tes aos usuarios, 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 varias linguagens.
A metodologia de simulacao na biblioteca emprega a discretizacao padrao ba-
seada em celulas, discutida em muitos textos introdutorios de elementos finitos [43]. Dife-
rentes formulacoes de elementos finitos podem ser aplicadas, incluindo os metodos de Ga-
lerkin, Petrov-Galerkin e Galerkin descontınuo. Para o processo de refinamento, a biblioteca
utiliza a tecnica de subdivisao de elementos. Em problemas evolutivos, em parti-
cular, o processo de desrefinamento e desejavel e as vezes essencial para obter solucoes efi-
cientes. implementa um processo simultaneo de refinamento e desrefinamento para
aplicacoes dependentes no tempo. O foco na biblioteca esta na subdivisao local do
elemento (h-refinamento) com desrefinamento local por h restituicoes de subelementos. Alem
disso, tambem permite refinamento h com elementos de graus elevados. A versao
do que esta em desenvolvimento suporta refinamento p e hp para alguns tipos de
elementos.
Um fator importante ao processo de refinamento e desrefinamento sao os indicadores de
1http://www.dealii.org/2www.cactuscode.org3http://charm.cs.uiuc.edu/research/ParFUM/
5
erro a posteriori responsaveis em guiar o processo adaptativo. O indicador do erro utilizado
pelo esta focado nos indicadores locais que sao essencialmentes independentes da
fısica. Isto torna a biblioteca mais flexıvel permitindo seu uso em diversas aplicacoes. De uma
maneira geral, um estimador para o erro deveria ser capaz de colher apenas informacoes sobre
o elemento finito e uma funcao definida na malha e retornar nıveis de aproximacoes para o
erro em cada elemento. Sendo assim, a implementacao escolhida para o indicador do erro na
biblioteca baseia-se na discontinuidade do fluxo que atravessa a face entre dois elementos [65].
Apesar de nao ser um indicador rigoroso para uma grande classe de problemas, na pratica eles
provaram ser largamente aplicaveis.
Existe na literatura um extenso numero de trabalhos dedicados a obtencao de estimativas
a posteriori e indicadores de erros mais confiaveis e precisos que sao estreitamente ligados
aos operadores e equacoes que governam a aplicacao do problema. Atualmente, indicadores de
refinamento baseados nas contribuicoes residuais no elemento local sao 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 independencia fısica.
Como o indicador do erro utilizado pela esta focado nos indicadores locais, eles sao
essencialmentes independentes da fısica.
A biblioteca disponibiliza para o usuario uma grande variedades de metodos de
solucao de equacoes lineares atraves da utilizacao da biblioteca de alto desempenho PETSc.
A biblioteca PETSc e formada por um conjunto de rotinas que permitem a implementacao
de codigos seriais e paralelos para a solucao de sistemas algebricos. Dentre essas rotinas,
encontram-se os metodos de solucao de sistema lineares baseados nos subespacos de Krylov.
Os metodos GMRES, CG, e Bi-CGSTAB sao 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 tecnicas de decomposicao de
domınio [26] atraves do particionamento da malha, na qual cada processo contem uma copia
da malha global, mas em geral somente um subconjunto particular e computado. Para pro-
cessos de refinamento e desrefinamento, onde a solucao em regime permanente e de interesse,
e comum considerar incialmente uma malha grossa que vai sendo progressivamente refinada
ate obter uma malha proxima da otima. E obvio que uma particao inicialmente balanceada
pode rapidamente torna-se muito desbalanceada causando ineficiencias computacionais. Con-
sequentemente, a malha tipicamente requer frequentes reparticionamentos durante o processo
6
de refinamento. O desenvolvimento de esquemas otimos de reparticionamento, que consigam
tirar vantagens de uma particao a priori, em processos de refinamentos paralelos ainda e um
campo aberto para pesquisa [59]. Na ibMesh a decomposicao de domınio e realizada atraves
de uma interface com duas bibliotecas externas: a METIS e a ParMETIS. Mais detalhes acerca
das questoes de paralelismo podem ser vistos em [5].
Finalmente, um outro importante fator que afeta consideravelmente o desempenho compu-
tacional de problemas transientes e a escolha adaptativa do passo no tempo. Existem classes
de problemas de interesse que sao dependentes do tempo, e que demandam um grande perıodo
de processamento. Uma forma de melhorar seu desempenho e empregar estrategias de selecao
adaptativa do passo no tempo. Esse processo de selecao geralmente utiliza parametros carac-
terısticos da solucao, 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 exem-
plo, algoritmos padroes de selecao do passo de tempo que usam estimativas para o erro de
truncamento local sao 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
selecao do passo.
Gustafsson et al. [50] mostraram que o problema de selecao automatica do passo no tempo
pode ser visto como um problema de controle retroalimentado, o que motivou o desenvolvi-
mento de um algoritmo usando o conceito de controle proporcional-integral-derivativo (PID)
[52]. Mais tarde, Coutinho e Alves [34] usaram essas ideias no trabalho de simulacao numerica
pelo metodo dos elementos finitos em meios porosos. Valli et al. [88, 3] desenvolveram dois
algoritmos adaptativos na selecao do passo no tempo, um baseado em controlar uma estimativa
para o erro de truncamento local e outro baseado em controlar as mudancas na energia cinetica
e a taxa de convergencia das iteracoes sucessivas. Recentemente, Sordelind [82] desenvolveu
uma completa estrutura de controle para selecao adaptativa do passo, usando teoria de filtros
digitais. Neste trabalho, sera considerado estrategias de controle do passo no tempo baseadas
na teoria de controle conforme desenvolvido em [88, 3]. A ideia e implementar uma dessas
estrategias de controle do passo no tempo na biblioteca e analisar a sua eficiencia em
conjunto com os processos de refinamento de malha AMR.
1.1 Objetivos
Primeiro, realizar uma analise comparativa dos principais metodos de solucao de sistemas
lineares e implementar, na biblioteca via PETSc, um metodo recente e nao usual
7
como o LCD. Segundo, analisar as principais tecnicas adaptativas para o metodo dos elementos
finitos, aplicado a problemas de Mecanica dos Fluidos Computacional. Analisar, em particu-
lar, a estrategia adaptativa no espaco utilizada na biblioteca . Introduzir na biblioteca
uma estrategia de selecao 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 Organizacao do texto
A organizacao do texto segue a descricao dada a seguir. No Capıtulo 2 sao descritas duas
formulacoes de elementos finitos. Primeiro, e apresenta a formulacao estabilizada de elementos
finitos, conhecida como SUPG, para a equacao de transporte convectivo-difusivo. Segundo, e
descrito a equacao governante da equacao transiente de Navier-Stokes bem com sua formulacao
numerica por elementos finitos. Alem disso, e apresentado nesse capıtulo as principais caracte-
risticas da biblioteca .
O Capıtulo 3 apresenta as principais caracterısticas da biblioteca PETSc e sua utilizacao
dentro da biblioteca , alem de descrever alguns dos metodos numericos de solucao
de sistemas lineares presentes na biblioteca. Alem disso, e descrito o metodo das direcoes
conjugadas a esquerda (LCD), nao presente ao conjunto de rotinas do PETSc, e detalhes da sua
inclusao na biblioteca.
O Capıtulo 4 trata do estudo e implementacao de tecnicas adaptativas para o metodo dos ele-
mentos finitos. Na primeira secao e discutido o esquema adaptativo implementado na biblioteca
, seguido pela estudo de uma tecnica de selecao adaptativa do passo no tempo usando
conceitos de controle automatico. Finalmente, na ultima secao e discutida a implementacao
conjunta das adaptatividades espaciais e temporais na biblioteca .
O Capıtulo 5 esta dividido em duas partes. Na primeira e realizado um estudo de desempe-
nho e esforco computacional dos metodos GMRES, Bi-CGSTAB e LCD para a solucao de sis-
temas de equacoes nao simetricos obtidos na discretizacao por elementos finitos de problemas
de conveccao-difusao. Na segunda parte e analisado o desempenho computacional do algoritmo
de selecao do passo no tempo, na obtencao de solucoes em regime permanente, quando aplica-
dos em discretizacoes por malhas fixas uniformes e, principalmente, seu desempenho quando
aplicado ao processo de refinamento uniforme de malhas.
Finalmente, no Capıtulo 6 sao apresentadas as conclusoes, consideracoes finais e propostas
de trabalhos futuros.
8
1.3 Recursos computacionais
Todos os codigos implementados foram compilados usando os compiladores gnu gcc e
g++ (versao 3.4) em ambiente linux. Os testes realizados para a analise de desempenho dos
metodos iterativos foram realizados em uma maquina Intel Pentium 4 de 2.26GHZ, 512k de
cache L2 e 512 MB de memoria RAM. No avaliacao da implementacao do algoritmo de selecao
do passo no tempo foi utilizada uma maquina Intel Pentium 4 de 3GHz, 1M de cache L2 e 1GB
de memoria RAM. Os recursos computacionais utilizados neste trabalho estao disponıveis no
Laboratorio de Computacao de Alto Desempenho - LCAD4, da universidade federal do Espirito
Santo, e no Laboratorio de Dinamicas de Fluıdos Computacionais - CFDlab5 da universiade do
Texas em Austin, EUA.
4http://www.lcad.inf.ufes.br5http://www.cfdlab.ae.utexas.edu/
2 Formulacao e Aproximacao
Nesse capıtulo sao apresentadas as formulacoes de elementos finitos implementadas na biblio-
teca para as equacoes adveccao-difusao e Navier-Stokes. Alem disso, na ultima secao
e apresentada uma descricao das principais caracterısticas da biblioteca . Serao apre-
sentadas duas formulacoes de elementos finitos. A primeira delas e a formulacao para a equacao
do transporte convectivo-difusivo. Nesse caso, devido a possıveis instabilidades numericas ge-
radas pelo termo convectivo, sera usada a formulacao estabilizada de elementos finitos conhe-
cida como formulacao streamline-upwind/Petrov-Galerkin (SUPG). A segunda formulacao que
sera apresentada e a tradicional formulacao de Galerkin para as equacoes de Navier-Stokes.
Neste caso, foi utilizado o metodo de Newton-Raphson para a resolucao dos sistemas nao line-
ares e o metodo θ de integracao no tempo.
2.1 Formulacao SUPG para a equacao de transporte
A equacao de conveccao-difusao bidimensional em regime permanente pode ser definida
pela equacao
β ∇u ∇ κ∇u f em Ω (2.1)
onde Ω e uma regiao de IR2, u e a variavel a ser transportada (temperatura, concentracao, etc),
β βx βy T e o campo de velocidade do fluido, f e o termo fonte e κ e a difusividade
volumetrica dada por
κ
kx 0
0 ky
(2.2)
Na equacao, β ∇u e o termo convectivo, no qual afeta a distribuicao da quantidade transportada
na direcao do escoamento, e ∇ κ∇u e o termo difusivo, no qual afeta a distribuicao da quan-
tidade transportada em todas as direcoes. Nos experimentos o campo de velocidade do fluido e
considerado com divergencia nula, ou seja, ∇ β 0. E necessario ainda definir as condicoes
10
de fronteira para o problema. Neste trabalho serao consideradas as seguintes condicoes
u g em Γg (2.3)
κ∇u n 0 em Γh (2.4)
onde g e uma funcao 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 metodo de Galerkin e a formulacao geralmente utilizada na discretizacao espacial dos
problemas predominantemente difusivos. Entretanto, na presenca de escoamentos predomi-
nantemente convectivos, esta formulacao nao gera bons resultados, apresentando oscilacoes
espurias, que nao pertencem ao problema fısico, mas que sao devidas as instabilidades da
formulacao utilizada. Como forma de diminuir essas oscilacoes, Brooks e Hughes [19] apre-
sentaram uma formulacao estabilizada de elementos finitos denominada Streamline/Upwind
Petrov-Galerkin, SUPG. A ideia basica do metodo e introduzir difusao (ou viscosidade) so-
mente na direcao do escoamento. O metodo de Galerkin, extendido com a formulacao Petrov-
Galerkin, e modificado adicionando uma pertubacao na direcao das linhas de corrente.
A equacao (2.1) se encontra na sua forma forte. Para definir a formulacao fraca ou varia-
cional do problema define-se dois conjuntos de funcoes. O primeiro conjunto, denominado de
, corresponde ao conjunto das funcoes de teste u, que satisfazem as condicoes de contorno e
sao quadrado integraveis. A segundo conjunto sao as funcoes peso w, denominado , que sao
similares a funcoes de teste, porem, satisfazem condicoes nulas no contorno. De modo geral,
essas funcoes sao aproximadas por funcoes de dimensao finita definidas por:
h φh φh Hh
φh g em Γg (2.5)
e
h wh wh Hh
wh 0 em Γg (2.6)
onde Hh e o conjunto de funcoes quadrado integraveis admissıveis para o problema (2.1) no
espaco de dimensao finita. No metodo de Galerkin usual, as funcoes peso sao consideradas
contınuas ao longo das fronteiras entre os elementos. A formulacao SUPG, entretanto, requer
funcoes pesos descontınuas da forma
w w p (2.7)
onde, w e uma funcao peso contınua e p e a contribuicao descontınua SUPG. Ambos, w e p sao
assumidos suaveis no interior dos elementos.
11
Considerando uma discretizacao por elemento finitos do domınio Ω em nel elementos, Ωe,
e 1 2 nel, tal que, Ω
nele1
Ωe e Ωi Ω j /0, a formulacao estabilizada SUPG para o
problema (2.1) e dada por
∑e
Ωe
whβ h ∇uh ∇ κ∇uh dΩe ∑
e
Ωe
wh f dΩe (2.8)
Substituindo (2.7) em (2.8) e tomando p τβ
β ∇w, por exemplo, segundo estudos de Tez-
duyar, Liou e Behr [83], tem-se,
Ωe
whβ h ∇uh ∇ κ∇uh dΩe
Galerkin
∑e
Ωe
τβ h
β h ∇whβ h ∇uh ∇ κ∇uh dΩe
PetrovGalerkin
Ωe
wh τ
β h
β h ∇wh f dΩe
Fonte
(2.9)
Integrando por partes o termo de Galerkin, obtem-se
Ωe
whβ h ∇uhdΩe
Ωe
∇whκ∇uhdΩe Galerkin
∑e
τ
β h
Ωe
β h ∇whβ h ∇uhdΩe
Ωe
β h ∇wh∇ κ∇uh dΩe PetrovGalerkin
Ωe
wh τ
β h
β h ∇wh
f dΩe Fonte
(2.10)
O parametro de estabilizacao SUPG τ presente na equacao (2.10) possui varias definicoes.
Neste trabalho e utilizada a definicao dada em [83]:
τ
α h
2 (2.11)
12
com
h
2A (2.12)
α minPe
3 1 (2.13)
Pe
β hk
(2.14)
k
βT
β κβT
β (2.15)
onde A e area do elemento, h e o tamanho caracterıstico do elemento, β e o vetor velocidade e
Pe e o numero de Peclet do elemento local.
Considerando uma base φ j, j 1 2 N, para o espaco das aproximacoes
h, φh pode
ser representada da seguinte forma:
uh x N
∑j1
u jφ j x (2.16)
onde N e o numero de nos na malha de elementos finitos e u j, j 1 2 N, sao os valores da
solucao aproximada nos nos da malha. Substituindo a equacao (2.16) em (2.10) e considerando
wh φi para i 1 2 N, obtem-se um sistema de equacoes lineares da forma:
Ku F (2.17)
sendo,K uma matriz de ordem N N conhecida como matriz de rigidez, u e o vetor da solucao
aproximada e F e o termo fonte.
A principal caracterıstica do metodo de elementos finitos e que tanto K quanto F podem
ser calculados por uma soma inteligente das contribuicoes de cada elemento num processo
chamado de assembling. Esse processo e indicado abaixo:
K
nel
Ae1Ke
(2.18)
F
nel
Ae1Fe
(2.19)
onde A indica o assembling das contribuicoes de cada elemento.
No nıvel do elemento, Ke e Fe sao formados pelas contribuicoes do metodo de Galerkin
e Petrov-Galerkin. Alem disso, na matriz de rigidez Ke essas contribuicao sao divididas pelos
termos convectivo e difusivo. Dessa forma, a obtencao de Ke e Fe pode ser representada pelos
13
seguintes somatorios:
Ke Ke
DG KeCG K
eDPG Ke
CPG (2.20)
e
Fe FeG FePG (2.21)
onde os sub-ındices D e C indicam os termos difusivos e convectivos, respectivamente. Ja
os sub-ındices G e PG correspondem, respectivamente, as contribuicoes de Galerkin e Petrov-
Galerkin. Cada termo do somatorio esta apresentado em detalhe abaixo:
Termo difusivo de Galerkin
KeDG Ke
DG i j
Ωe
∇φTi κ∇φ jdΩ (2.22)
Termo convectivo de Galerkin
KeCG Ke
CG i j
Ωe
φiβT ∇φ jdΩe (2.23)
Termo difusivo de Petrov-Galerkin
KeDPG Ke
DPG i j τ
β
Ωe
∇φTi β∇ κ∇φ j dΩe (2.24)
Termo conveccao de Petrov-Galerkin
KeDPG Ke
CPG i j τ
β
Ωe
∇φTi βTβ∇φ jdΩe (2.25)
Termo fonte de Galerkin
FeG FeG i
Ωe
φi f dΩe (2.26)
Termo fonte de Petrov-Galerkin
FePG PeCPG i τ
β
Ωe
βT ∇φi f dΩe (2.27)
Uma vez gerado o sistema de equacoes (2.17), este deve ser resolvido por um metodo eficiente
de resolucao de sistema linear de grande porte. Tais metodos serao discutidos no Capıtulo 3. A
seguir sera apresentada a formulacao de elementos finitos para as equacoes de Navier-Stokes.
14
2.2 Formulacao de Galerkin para as equacoes de Navier-Stokes
Considerando um fluido viscoso e incompressıvel ocupando uma regiao Ω IR2, com contorno
∂Ω, as equacoes de Navier-Stokes transientes podem ser expressas por
du
dt u ∇u ν∇2u
1
ρ∇p f em Ω (2.28)
∇ u 0 em Ω (2.29)
onde u u v e campo de velocidades, p e a pressao, f e o termo fonte, ρ e a densidade do
fluido e ν e a viscosidade. A equacao (2.28) representa a equacao de momento e a equacao
(2.29) representa a equacao de conservacao da massa, que e muito frequentemente chamada
de equacao da continuidade. Estas equacoes estao sujeitas a condicao de contorno de Dirichlet
imposta, dado por
u g em ∂Ω (2.30)
e a condicao inicial u x 0 u0 x . Realizando as seguintes substituicoes
u u
U v
v
U x
x
L y
y
L p
p
ρU2 t t
U
L
ondeU e L sao, respectivamente, a velocidade e o tamanho de referencia, chega-se na formulacao
adimensional das equacoes de Navier-Stokes, conforme apresentada abaixo,
du
dt u ∇u 1
Re∇2u ∇p f em Ω (2.31)
∇ u 0 em Ω (2.32)
sendo Re LUν o numero de Reynolds.
A formulacao fraca ou variacional do problema pode ser descrita como [24]: encontrar
u satisfazendo as condicoes essenciais de contorno e p tal queΩ
du
dt w u ∇u w
1
Re∇u : ∇w ∇p w dΩ
Ωf w dΩ (2.33)
Ω∇ u q dΩ 0 (2.34)
w admissıvel, com w 0 em ∂Ω, e q admissıvel, onde e sao as classes de
funcoes testes para a velocidade e pressao, respectivamente.
Seja
h e
h aproximacoes para os espacos de funcoes e , respectivamente. A
15
formulacao de Galerkin para as equacoes (2.33) e (2.34) pode ser escrita como: encontrar uh
h satisfazendo as condicoes de fronteira e ph
h, tal que
Ω
duh
dt wh
uh ∇uh wh
1
Re∇uh : ∇wh ∇p wh
dΩ
Ωf wh dΩ (2.35)
Ω∇ uh qhdΩ 0 (2.36)
wh
h admissıvel, com wh 0 em ∂Ω, e qh
h. Introduzindo uma discretizacao por
elementos finitos e escolhendo funcoes bases apropriadas que satisfaz a condicao de estabili-
dade de Ladyzhenskaya, Babuska e Brezzi (LBB) [67, 6, 18], as funcoes uh e ph podem ser
aproximadas por:
uh x
N
∑j1
u jφ j x (2.37)
ph x
M
∑l1
plψl x (2.38)
Considerando a funcao de pesowh φr 0 , r 1 N, e substituindo as expressoes (2.37)
e (2.38) nas equacoes (2.35) e (2.36), obtem-se um sistema de equacoes diferenciais ordinarias
nao-linear da forma
dU
dt U
1
ReU P (2.39)
TU 0 (2.40)
onde U uTvT , com uT u1 u2 uN , vT v1 v2 vN e PT
p1 p2 pMT e
M 0
0 M
A 0
0 A
Bx
By
e
Fx
Fy
(2.41)
com
M mi j mi j
Ωh
φiφ jdΩ i j 1 N (2.42)
A ai j ai j
Ωh
∇φi∇φ jdΩ (2.43)
Bx bx il bx il
Ωh
φi xψldΩ l 1 M (2.44)
By by il by il
Ωh
φi yψldΩ (2.45)
Fx Fx i Fx i
Ωh
fxφidΩ (2.46)
16
Fy Fy i Fy i
Ωh
fyφidΩ (2.47)
e
uh
Ωh
uh ∇uh whdΩ (2.48)
e o termo nao linear da equacao (2.39).
Integrando implicitamente no tempo usando o metodo tradicional θ , a cada passo no tempo
tn e preciso resolver
Un Un 1
∆t
θ
Un
1
ReUn Pn
1 θ
Un 1
1
ReUn 1 Pn 1
θn
1 θ n 1 0 (2.49)
TUn 0 (2.50)
Uma vez que U e uma funcao nao linear de U, e preciso resolver a cada passo no tempo, tn,
um sistema nao linear da forma
g rn 0 (2.51)
com rT UT PT . Linearizando (2.51) pelo metodo de Newton, obtem-se um sistema linear
da forma
J rnk rnk 1 g rnk 1 (2.52)
a ser resolvido a cada passo k 1 2 do proceso iterativo, sendo J, a matriz jacobiana dada
por
J
M ∆tθ 1
ReA 0 ∆tθBx
0 M ∆tθ 1ReA ∆tθBy
BxT
ByT 0
∂i
∂ r j(2.53)
e
g rnk 1 M ∆tθUnk 1 ∆tθBPn
k 1 ∆tθDUnk 1 I (2.54)
com
I M 1 θ ∆t1
ReA Un 1
k 1 (2.55)
1 θ ∆tB Pn 1k 1 1 θ ∆t DUn 1
k 1
θ∆tFn 1 θ ∆tFn 1 (2.56)
17
Sabendo que o termo nao linear U pode ser escrito como
iU
Ωh
uh∂uh∂x
φi vh∂uh∂y
φi dΩ e (2.57)
N iU
Ωh
uh∂vh∂x
φi vh∂vh∂y
φi dΩ (2.58)
o calculo da sua derivada ∂i
∂ r je dado a seguir
∂i
∂u j
Ωh
uh ∇φ jφi∂uh∂x
φiφ j dΩ (2.59)
∂i
∂v j
Ωh
φiφ j∂uh∂y
dΩ (2.60)
∂i
∂ pl 0 (2.61)
∂N i
∂u j
Ωh
φiφ j∂vh∂x
dΩ (2.62)
∂N i
∂v j
Ωh
uh ∇φ jφi∂vh∂y
φiφ j dΩ (2.63)
∂N i
∂ pl 0 (2.64)
Desta forma, o jacobiano final pode ser representado pela seguinte matriz
J
M ∆tθ 1
ReA
∂i
∂u1j
∆tθ ∂i
∂u2j
∆tθBx
∆tθ ∂N i
∂u1j
M ∆tθ 1ReA
∂N i
∂u2j
∆tθBy
BxT
ByT 0
(2.65)
Na implementacao padrao utilizada pela biblioteca , a cada passo no tempo e preciso
resolver uma sequencia de sistemas lineares, ate uma precisao 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, obtem-se
F JUk 1 ∆tθ Unk 1
∆tθ Pnk 1 ∆tθ Un
k 1 I (2.67)
Simplificando, chega-se em
F ∆tθ f I (2.68)
18
onde f fx fy 0T com
fx i
Ωh
uh ∇uhφidΩ (2.69)
fy i
Ωh
uh ∇vhφidΩ (2.70)
A sobreposicao das contribuicoes nodais de cada elemento conduz na formacao da matriz
K global assim como os vetor F , sendo entao
K
nel
Ae1Ke
(2.71)
F
nel
Ae1Fe
(2.72)
A matrizKe e o vetor Fe, por sua vez, sao formados por submatrizes e subvetores, relacionados
com o sistema jacobiando inicial e com as seguinte estrutura:
Ke
Kuu Kuv Kup
Kvu Kvv Kvp
Kpu Kpv Kpp
e Fe
Fu
Fv
Fp
(2.73)
O calculo de cada uma dessas submatrizes e subvetores e apresentado no Apendice A. Os siste-
mas sao resolvidos utilizando os metodos de resolucao linear apresentados no Capıtulo 3. Nos
testes numericos apresentados na Secao 5.2 e utilizado o metodo de Euler implıcito (θ 1)
para a integracao no tempo. A razao dessa decisao e que o metodo de segunda ordem Crank-
Nicolson e notoriamente oscilatorio para problemas com dados iniciais descontınuos, tais como,
o problema da cavidade e alargamento de canal. Na proxima secao serao apresentadas as carac-
terısticas principais da biblioteca ibMesh utilizada para a implementacao das formulacoes de
elementos finitos apresentadas aqui.
2.3 : biblioteca para simulacoes paralelas com refi-
namento 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 simulacoes em elemen-
tos finitos de problemas com multifısicas e multiescala de modo confiavel e reutilizavel [5]. A
sua criacao foi possıvel por dois fatores principais. O primeiro e a existencia de uma infraestru-
tura paralela robusta tanto de software quanto de hardware, que inclui cluster de PC’s rodando
19
linux e implementacoes de alto desempenho usando o padrao MPI. O segundo e a evolucao da
metodologia de malhas adaptativas, de algoritmos de decomposicao de domınio e tecnicas de
reparticionamento eficientes.
A biblioteca foi originalmente projetada para fornecer uma estrutura de dados poderosa que
apoiasse o refinamento adaptativo de malhas nao estruturadas surgidas nas simulacoes de ele-
mentos finitos. Esforcos subsequentes foram realizados no desenvolvimento da biblioteca com
intuito de promever melhorias no desempenho, suporte a um numeros maior de elementos fini-
tos e na implementacao de algoritmos para problemas transientes e nao-lineares. Dentro desses
esforcos, sem duvida nenhuma, o mais importante foi a implementacao de tecnicas paralelas no
processo de refinamento adaptativo. Os recursos disponıveis na biblioteca permite ao
usuario final da biblioteca focar, na maior parte do tempo, na modelagem do problema ao inves
da codificacao da aplicacao.
O objetivo de combinar adaptatividade e paralelismo e claramente agrupar os benefıcios
de ambas tecnicas em resolver os problemas de forma mais eficiente. No paralelismo, pela
reducao do custo computacional quando comparado ao tempo de processamento em plataformas
seriais. No refinemento, por permitir obter solucao em malhas mais grossas porem mais bem
projetadas com grau de exatidao comparavel a uma malha padrao nao-adaptativa. E claro que,
quando utilizados refinamento adaptativo e paralelismo, camadas adicionais de complexidade
sao adicionadas na analise do problema, na metodologia, nos algoritmos e nas estruturas de
dados utilizados. Alem disso, ha um custo adicional associado com a implementacao de ambos e
esses fatores devem ser levados em conta. Entretanto, fica claro que cada uma dessas estrategias
oferecem uma capacidade computacional a mais aos usuarios finais.
Experiencias com outras bibliotecas paralelas de alto desempenho usando a linguagem de
programacao C++, influenciaram no projeto da biblioteca . O suporte a orientacao
a objetos em C++ permite que os desenvolvedores escrevam seus codigos usando interfaces
com classes abstratas as quais definem, por exemplo, em tempo de compilacao ou em tempo
de execucao, o tipo de elemento finito a ser usado e/ou a regra de quadratura a ser usada no
processo de integracao numerica. Para reduzir o custo das chamadas das funcoes virtuais das
classes abstratas, os desenvolvedores do decidiram usar poucas chamadas de funcoes
que desempenham grandes operacoes, ao inves, de chamar muitas funcoes que executam poucas
operacoes.
Embora a escrita de codigos eficientes em C++ possa ser difıcil, a linguagem suporta di-
ferentes estilos de programacao, facilitando a escrita de codigos de diferentes complexidades e
na manutencao dos mesmos, uma vantagem quando comparados com as linguagens de nıveis
20
mais baixo, tal como, C e Fortran. As linguagens C e Fortran sao rapidas e mais populares para
a analise numerica, mas nao possui a metodologia adequada de orientacao objetos requeridas
pelos desenvolvedores da biblioteca . Alem disso, o C++ prove um mecanismo natural
de encapsulamento para as interface com as bibliotecas de terceiros atraves de uma interface
comum, e a orientacao objeto permite um ajuste adequado nas camadas de complexidades in-
troduzidas pela combinacao entre o paralelismo e a adaptatividade. A facilidade de ligacao
dos codigos C, Fortran e Assembler dentro de aplicacoes C++ tambem permitem a biblioteca
fazer o uso de bibliotecas existentes escritas na linguagens de nıveis mais baixo.
A existencia de compiladores de alta qualidades com suporte a diferentes hardwares mantem
a biblioteca portavel em diferentes plataformas. A maior parte do desenvolvimento da
biblioteca foi realizado em maquinas rodando Linux usando a colecao de compilado-
res GNU, mas outras platafomas tambem sao suportadas. A biblioteca faz um uso extensivo das
bibliotecas padroes do C++, essenciais para a utilizacao em multiplos compiladores, evitando
a construcao de codigos especıficos para determinados compiladores. O suporte aos compila-
dores nativos no e voltado principalmente para a geracao de codigos otimizados. Em
arquiteturas, tal como o IBM Power 5 e Intel Itanium II, ha um grande numero de instrucoes
complexas especıficas para elas. Os compiladores desenvolvidos para essas plataformas tratam
essas instrucoes de modo mais otimizado. Para essas razoes, a biblioteca tem sempre sido tes-
tada com uma variedade de compiladores, antes dos lancamentos oficiais das novas plataformas.
Um efeito dessa tecnica e que a biblioteca foi posteriormente transportada para arquiteturas adi-
cionais tal como OSX e Windows com pouca dificuldade.
Outra caracterıstica presente no e o investimento, sempre que possıvel, em biblio-
tecas existentes que possam agregar funcionalidades a mesma, evitando que tarefas necessarias
na simulacao que ja foram implementadas, sejam codificadas novamente. Dentre essas biblio-
tecas ha aquelas responsaveis pela geracao de malhas, tais como, Triangle [79], responsavel
pela triangularizacao de Delaunay e o TetGen [80], um gerador de malhas 3D com tetrae-
dros. A biblioteca usa as bibliotecas METIS [63] e ParMETIS [64] para a decomposicao de
domınio. Esquemas de particionamento adicionais podem ser inseridos na biblioteca com bas-
tante facilidade atraves de subclasses em C++. A biblioteca providencia uma classe base abs-
trata que define a interface de particionamento e classes derivadas podem servir
como empactadores de bibliotecas externas de particionamento. O paradigma de classes abs-
tratas/derivadas tambem e usado para criar uma interface com pacotes de algebra linear. Neste
caso, a biblioteca ibMesh disponibiliza as classes abstratas , ,
e . Classes derivadas sao entao implementadas de acordo com
o pacote linear utilizado. Dentre esse pacotes, tem o LasPack[81] para maquinas seriais e a
21
biblioteca PETSc [7] para plataformas seriais e paralelas.
Considerando o paradigma de orientacao a objetos, as principais estruturas de dados usados
na biblioteca sao implementados atraves de classes. As principais delas sao apresenta-
das a seguir e o foco da discussao baseia-se nas funcionalidades basicas e nas razoes sustentadas
em diretrizes do projeto.
Malha
A classe e a principal estrutura da biblioteca . Ela prove uma representacao
discreta de um domınio no espaco d-dimensional, onde d e 1,2 ou 3. Essa discretizacao e
composta por dois tipos de dados armazenados na malha: os elementos e os nos. Esses dados,
por sua vez, sao encapsulados em objetos abstratos que permitem a implementacao de malhas
nao estruturadas e com elementos de diferentes formas sem grande impacto na implementacao.
Nos
Cada objeto da classe armazena a localizacao x y z no espaco, bem como, informacoes
adicionais, tais como, o numero de identificacao unica global (ID) e os ındices do grau de liber-
dade. Varias operacoes triviais sobre a malha, tal como, escalonamento, translacao e rotacao
sao executadas diretamente sobre os nos. Durante o processo de refinamento, novos nos po-
dem ser adicionados a malha. Quando dois elementos adjacentes sao refinados, nos comuns
passam a existir na interface entre esses elementos. Para resolver essa situacao e utilizada
uma discretizacao valida que nao gere nenhum no duplicado. Um novo no e criado como uma
combinacao linear dos nos existentes e uma chave hash e criada baseada nas informacoes dos
nos pais. Se essa chave ja existe no mapeamento de chaves hash, o novo no e duplicado e
deve ser rejeitado. Similarmente, no processo de desrefinamento pode ocorrer a criacao de nos
orfaos, ou nos que nao estao conectados em nenhum elemento. Depois de desrefinamento, a
biblioteca simplesmente conta o numero de elementos conectados em cada no e remove aqueles
nos que nao estao conectados em nenhum elemento.
Elementos
define a classe abstrata que implementa a interface para um elemento geometrico.
Diversos tipos de elementos estao presentes na biblioteca atraves de classes derivadas da classe
. Nesse contexto, tem-se como exemplo as classes Tri3 e Tet10, correspondente as implementacoes
para o elemento triangular linear com 3 nos e o tetraedro com 10 nos, respectivamente. A
colecao de todos os tipos geometricos de elementos finitos implementados na biblioteca
inclui quadrilateros, triangulos, hexaedros, tetraedos, prismas e piramides, bem como, um
colecao de elementos infinitos. A lista completa de todos os tipos de elementos esta apresentada
22
na Figura 2.1.
Figura 2.1: Hierarquia da classe
Conectividade Nodal
A conectividade dos elementos e armazenada atraves de um ponteiro para os nos. Essa tecnica
e uma variacao da estrutura de dados classica de elementos finitos, na qual a conectividade e
definida em termos de ındices nodais [43]. Por armazenar os ponteiros dos nos, os elementos
podem determinar sua conectividade geometrica diretamente. Isto simplifica muitas funcoes no
codigo por requerer, do usuario, apenas o elemento ao inves do elemento e a localizacao nodal.
Sistema
A classe na biblioteca corresponde a um sistema de equacoes diferenciais
23
parciais de uma ou mais equacoes, que e resolvida em uma dada malha. Ha suporte a sistemas
explıcitos, implıcitos, dependente do tempo, linear e nao linear. Um objeto armazena
os valores da solucao para os graus de liberdade em uma simulacao, que podem ser tantos reais
ou complexos. Alem disso, o sistema pode conter informacoes adicionais tal como a matriz
esparsa necessaria para a estrategia implıcita de solucao. A classe prove uma interface
generica e customizada que permite ao usuario especificar as partes dependentes da fısica do
problema. Por exemplo, no caso de um sistema implıcito, o usuario pode definir uma funcao que
realiza o assembler da matriz ou derivar sua propria classe e sobrepor o operador do assembler
original. Similarmente, para problemas transientes o usuario pode definir suas proprias funcoes
de inicializacao ou sobrepor o operador de inicializacao da biblioteca.
3 Metodos Iterativos Lineares
Nesse capıtulo e discutido o papel da biblioteca PETSc [7, 8, 9] dentro da biblioteca
juntamente com a descricao de alguns dos metodos numericos de solucoes de sistemas line-
ares presentes na biblioteca. Dois desses metodos numericos serao comentados com maior
detalhe, metodo dos resıduos mınimos generalizados (GMRES) [77] e metodo dos gradientes
bi-conjugados estabilizados (Bi-CGSTAB) [89]. Por fim, sera descrito o metodo das direcoes
conjugadas a esquerda (LCD) [93], nao presente ao conjunto de rotinas do PETSc, e sua in-
clusao na biblioteca.
3.1 Biblioteca PETSc
A biblioteca PETSc e uma ferramenta, constituıda de rotinas que permitem a implementacao
de codigos paralelos ou seriais para a solucao de sistemas algebricos. Ela foi desenvolvido pelo
Laboratorio Nacional de Argonne 1, com o intuito de prover algoritmos eficientes para a solucao
numerica de equacoes diferenciais. Embora seja escrito nas linguagens C e Fortran, a biblioteca
foi construıda usando o paradigma de orientacao a objetos. Pode ser facilmente utilizada em
codigos de aplicacoes cientıficas de grande escala. PETSc prove para a biblioteca
todas as estruturas necessarias para o armazenamento, manipulacao de vetores e matrizes e
metodos de solucao de sistemas lineares e nao lineares. A Figura 3.1 mostra a organizacao
hierarquica 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 bibli-
oteca MPI (do ingles, Message Passing Interface) [45]. Essa biblioteca da o suporte necessario
para o desenvolvimento de aplicacoes paralelas atraves do protocolo de troca de mensagens
entre processos. A utilizacao do paradigma de troca de mensagens e atrativa porque permite
o desenvolvimento de codigos mais portaveis e escalaveis, alem de ser compatıvel tanto em
multicomputadores com memoria distribuıda, quanto em multiprocessos com memoria com-
1http://www.anl.com
25
Figura 3.1: Organizacao hierarquica entre as bibliotecas PETSc e
partilhada. Dessa forma, o conjunto de rotinas da biblioteca PETSc foi construıdo levando em
consideracao a computacao paralela utilizando o protocolo MPI, permitindo retirar do usuario
final a responsabilidade pela comunicacao entre os processos.
No segundo nıvel da hierarquia encontram-se os principais objetos responsaveis pelo ar-
mazenamento das informacoes, sendo vetores e matrizes os principais deles. Ambas estrutu-
ras foram construıdas com suporte ao paralelismo, ou seja, as informacoes armazenadas por
esses objetos sao distribuıdos entre os processos, alem de existirem diversas rotinas para ma-
nipula-las. No caso de vetores, destacam-se as operacoes: multiplicacao por escalar e soma
de vetores (VecAXPY()), produto interno (VecDot()) e normas vetoriais (VecNorm()). Ja para
matrizes, destacam-se: multiplicacao matriz-vetor (MatMult()) e multiplicacao matricial (Mat-
MatMult()). Alem disso, a estrutura das matrizes permite tanto o armazenamento de matrizes
densas quanto para matrizes esparsas. No caso de matrizes esparsas, utiliza-se esquemas efici-
entes de armazenamento somente dos coeficientes nao nulos. Os esquemas de armazenamento
por linha comprimida (CSR)[76] , linha comprimida por bloco (BCSR) e diagonal por blocos
(BDiag) estao implementados na biblioteca PETSc, sendo que, no , e utilizado apenas
o esquema CSR.
No terceiro nıvel, encontra-se o conjunto de metodos de solucao de sistemas lineares. O
PETSc dispoe de implementacoes paralelas dos principais metodos de solucao de sistemas li-
neares iterativos baseados nos sub-espacos de Krylov, dentre eles, encontram-se o GMRES, Bi-
CGSTAB, Gradiente Conjugado e TFQMR (Transpose-Free Quasi-Minimum Residual). Ainda
nesse nıvel, diversas tecnicas de precondicionamento estao presentes como forma de acelerar a
taxa de convergencia desses metodos, incluindo fatoracao incompleta LU (ILU(k)), fatoracao
incompleta de Choleski (ICC) e Jacobi.
26
Uma atencao especial e dada ao precondionador ILU(k) neste trabalho. A fatoracao incom-
pleta LU e, dentre as tecnicas de precondicionamento, a mais recorrentemente utilizada. Essa
tecnica consiste na decomposicao LU aproximada (A LU ), onde os fatores das matrizes L e
U mantem a estrutura de esparsidade proxima da estrutura da matriz original. Como a ideia e
conservar o padrao esparso durante a fatoracao, descarta-se parte dos elementos diferentes de
zero nas posicoes da matriz A, onde originalmente existiam coeficientes nulos. Tais posicoes
sao chamadas de elementos de preenchimento (fill-in element). Quando todos os elementos
de preenchimento sao descartados o processo e chamado de fatoracao incompleta LU de nıvel
zero, ou apenas, ILU(0). Em alguns casos, a acuracia do fatoracao ILU(0) pode ser insuficiente
na melhoria do rendimento da taxa de convergencia. Dessa forma, nıveis de elementos de pre-
enchimentos mais elevados sao usados por serem mais confiaveis e eficientes, e o parametro k
indica o nıvel de elementos de preenchimento na decomposicao ILU [76].
Finalmente, no ultimo nıvel, encontra-se a biblioteca . Nesse nıvel, ocorre o inter-
faceamento entre os objetos encontrados na com as estruturas de dados da biblioteca
PETSc, alem da interface entre as rotinas que manipulam tais estruturas.
3.2 Metodos de solucao de sistemas baseados nos sub-espacos
de Krylov
Nesta secao serao discutidos dois metodos de solucao de sistemas lineares baseados nos
sub-espacos de Krylov que integram os metodos implementados no PETSc e que sao utilizados
pela biblioteca . O primeiro metodo apresentado e o metodo dos resıduos mınimos
generalizados, tambem conhecido como GMRES. Ja o segundo metodo e o metodo dos gradi-
entes bi-conjugados estabilizado, tambem chamado de Bi-CGSTAB. Nos experimentos com-
putacionais apresentados no Capıtulo 5, sera feito um estudo comparativo entre o desempenho
computacional destes dois metodos com o metodo LCD.
3.2.1 Metodo dos resıduos mınimos generalizados (GMRES)
O metodo dos resıduos mınimos generalizados (GMRES) foi proposto por Saad e Schultz
[77] como uma extensao do metodo do resıduo mınimo (MINRES) [71] para a solucao de
sistemas lineares nao simetricos. Como MINRES, o GMRES gera um sequencia de vetores
ortogonais na formacao das direcoes de busca da solucao do sistema, entretanto, por trabalhar
com sistemas nao simetricos, toda a sequencia de vetores obtidos ao longo do processo devem
ser armazenados.
27
A implementacao sugerida por Saad e Schultz [77] usa a ortogonalizacao de Gram-Schmidt
modificado para a construcao dos vetores dos sub-espacos de Krylov. Walker [91] propos outra
implementacao interessante usando transformacoes de Householder para a construcao da base
ortogonal. Embora essa implementacao tenha apresentado melhores taxas de convergencia,
principalmente em sistemas mal condicionados, ela acarretou numa consideravel perda de de-
sempenho computacional. Levando em conta essa consideracao, em muitas situacoes praticas,
o processo de ortogonalizacao de Gram-Schmidt modificado apresenta desempenhos satis-
fatorios. O custo dessa ortogonalizacao dos sub-espacos de Krylov torna-se proibitivo quando
o numero de vetores armazenado na base cresce consideravelmente. Por essa razao, frequente-
mente usa-se variacoes do metodo GMRES. A variacao mais bem sucedida, tambem sugerida
por Saad e Schultz [77] e reiniciar (”restart”) o processo a cada ciclo de m iteracoes. Um
desvantagem dessa tecnica e que o comportamento da convergencia dependera do valor m. Ex-
perimentos com a escolha de m sao relatadas e discutidas em [53].
Para determinar uma solucao aproximada xk para o sistema linear Ax b, onde A e uma ma-
triz de ordem n e b e o vetor dos termos independentes, o metodo GMRES calcula uma solucao
que minimiza a norma residual sobre uma base dos sub-espacos de Krylov. A ideia inicial e
construir uma base ortogonal para cada sub-espaco de Krylov,Kk = span r0 Ar0 A2r0 A
k 1r0 ,
onde r0 b Ax0 e x0 e uma solucao inicial. A base e construıda explicitamente usando o pro-
cesso de ortogonalizacao de Gram-Schmidt modificado, resumido no algoritmo a seguir.
Algoritmo: Gram-Schmidt Modificado
1. Escolher o vetor inicial u1 r0 r0 .
2. Para i 1 k faca
3. ui1 Aui
4. Para j 1 i faca
5. βi1 j uTi1 u j6. ui1 ui1 βi1 jui
7. hi j βi1 j
10. Fim Para
10. hi1 j ui111. Fim Para
Fim do Algoritmo
Considerando k iteracoes do metodo de Gram-Schimdt, tem-se o sistema de base ortogonal
Uk1 e a matriz de Hessenberg Hk. Com a base ortogonal e possıvel encontrar uma solucao
aproximada xk usando a forma xk x0 z. O termo z e um membro do sub-espaco de Krylov
28
obtido por z Uky e y Rk. Para calcular os valores do vetor y, considere a seguinte relacao
entre os vetores ui e a matriz Hk
AUk Uk1Hk (3.1)
Como dito anteriormente, o GMRES tem como objetivo minimizar a norma residual, ou seja,
minzKk
b A x0 z minzKk
r0 Az (3.2)
Se y Uky, a norma pode ser minimizada com a seguinte funcao em relacao a y:
F y ro AUky (3.3)
Usando a equacao (3.1) e considerando que r0 Uk1e, tem-se
F y Uk1 e Hky (3.4)
onde e 1 0 0 0 0 T . ComoUk1 e ortonormal, a equacao (3.4) pode ser reescrita da forma
F y e Hkyk (3.5)
Assim, a solucao aproximada e dada por
xk x0 Ukyk (3.6)
onde yk minimiza a funcao F y , definido por (3.5), com y Rk. Encontrar y, de modo a
minimizar a funcao F y , significa resolver o sistema Hkyk e. Como Hk e um sistema de
ordem k 1 k, ha a necessidade de aplicar rotacoes no plano, denominado de algoritmo QR
[77], para transforma-lo em um sistema triangular superior de ordem k k. Feito isso, basta
aplicar substituicoes retroativas ao sistema Hkyk e para determinar y.
Assumindo aritmetica exata, se nenhum ”restart”for usado, GMRES convergira em no
maximo n iteracoes, sendo n a ordem do sistema. Entretanto, o algoritmo GMRES pode apre-
sentar algumas dificuldades computacionais para sistemas de grande porte, pois quando k cresce
o numero de vetores armazenados cresce na mesma proporcao criando assim problemas de
memoria. Uma alternativa para contornar esse problema e introduzir a ideia do restart a cada m
passos do algoritmo [77, 76, 77] onde m e um parametro inteiro fixado que representa o numero
maximo de vetores do sub-espaco de Krylov. Depois de escolhido o numero de iteracoes m, os
vetores da base acumulados sao liberados e os resultados intermediarios sao usados como os da-
dos iniciais para as proximas m iteracoes. Esse procedimento e repetido ate que a convergencia
seja alcancada.
29
A dificuldade do processo de ”restart”esta na escolha apropriada de m. Se m e muito
pequeno, o metodo pode ter uma convergencia muito lenta, ou ate mesmo, nao convergir. Por
outro lado, se o valor de m for muito maior que o necessario, o metodo necessitara de um esforco
excessivo na solucao e maior capacidade de armazenamento. Infelizmente, nao ha uma regra
que norteia a decisao de qual valor de m a ser usado, sendo a experiencia no uso do metodo um
dos meios de determinacao de m.
Outra forma utilizada para melhorar o desempenho do metodo e aplicar tecnicas de pre-
condicionamento no sistema. Na biblioteca PETSc, a implementacao permite o precondiciona-
mento tanto a direita quanto a esquerda, sendo que, na execucao do metodo, uma dessas tecnicas
deve ser escolhida pelo usuario. Se o precondicionamento a direita for escolhido, entao o sis-
tema a ser resolvido pelo GMRES(m) e na verdade
AM 1y b (3.7)
onde M e o precondicionador considerado. Note que M 1y x ou y Mx e o resıduo inicial e
dado por r b Ax. Apos a execucao do metodo, a solucao final e dada por x M 1y. Se o
precondicionamento a esquerda e escolhido entao o problema a ser resolvido e
M 1Ax M 1b (3.8)
sendo o resıduo inicial dado por r M 1 b Ax .
A versao do GMRES precondicionado a esquerda com restart sera denotada por GMRES(m)
e esta apresentada no algoritmo abaixo.
Algoritmo GMRES(m)
1. Dados x, A, b, x0, M, lMax, m e η
2. ε η b3. x x0
4. Para l 1 lmax faca
5. Resolver u1 em Mu1 b Ax
6. e u17. u1 u1 u111. Para i 1 m faca
12. Resolver ui1 em Mui1 Aui
13. (Realizar a ortogonalizacao de Gram-Schimdt)
14. Para j 1 i faca
15. βi1 j ui1 u j
30
16. ui1 ui1 βi1 ju j
17. Fim Para
18. ui1 ui1
ui1 j 19. h i β11 1 β11 2 β11 i ui1 j T20. (Aplicar o algoritmo QR)
21. Para j 1 i 1 faca
22.
hij
hij1
c j s j
s j c j
hij
hij1
23.
24. Fim Para
25. r
hii
2 hii1
2
26. ci hiir
27. si hii1
r
28. hii r
29. hii1 0
30. ei1 siei
31. ei ciei
32. Se ei1 ε entao
33. Finaliza laco i
34. Fim Se
35. Fim Para
36. Encontrar y por substituicoes retroativas:
37.
h 11 h
i 11 h
i1
0. . .
......
... h i 1i 1 h
ii 1
0 0 h ii
y1
...
yi 1
yi
e1
...
ei 1
ei
38. Encontrar a solucao x
39. x x ∑ij1 y ju j
40. Se ei1 ε entao
41. Finaliza laco l
42. Fim Se
43. Fim Para
Fim do Algoritmo
No algoritmo GMRES(m), η e a tolerancia relativa, lmax e o numero maximo de iteracoes
31
lineares e M e o precondicionador. Dentres as operacoes realizados pelo GMRES(m), o produto
matriz-vetor, produto interno e precondicionamento sao as operacoes que demandam maior
esforco computacional, sendo que, no laco i mais interno, entre as linhas 11-35, sao realizados
uma operacao produto matriz-vetor, uma operacao de precondicionamento e i execucoes de
atualizacoes de vetores e produto interno. A acao do precondicionador em cada iteracao possui
um esforco computacional que pode ser comparavel a um produto matriz-vetor. Com relacao
ao armazenamento em memoria, sao necessarios m 3 vetores de tamanho n e as matrizes A e
H de ordem n n e m 1 m, respectivamente.
3.2.2 Metodo do gradientes bi-conjugados estabilizados (Bi-CGSTAB)
O metodo do gradientes bi-conjugados estabilizados (Bi-CGSTAB) foi desenvolvido para
resolver sistemas lineares nao-simetricos resolvendo a frequente irregularidade de convergencia
do metodos do Gradientes Conjugados Quadrados (CGS) [89]. Ao inves de computar a sequencia
i P2i A r
0 como no CGS, o Bi-CGSTAB computa i QiAPiA r0, onde Qi e um polinomio
de grau i na forma
Qi t 1 w1t 1 w2t 1 wit (3.9)
que descreve a atualizacao das direcao de busca da solucao. No metodo Bi-CGSTAB, w j na
j-esima iteracao e escolhido de forma a minimizar o resıduo r j, entretanto, se w j for um va-
lor proximo ou igual a zero, podera ocorrer estagnacao ou ate mesmo causar uma interrupcao
na busca da solucao. O algorimo Bi-CGSTAB para resolver o sistema linear Ax b usando
precondicionamento a esquerda e apresentado abaixo.
Algoritmo: Bi-CGSTAB
1. Dados x 0 , A, b, ε e imax
2. Encontrar r 0 em Mr 0 b Ax 0
3. r 0 r 0
4. Para i 1 imax faca
5. ρi 1 r 0 r i 1 6. Se ρi 1 0 entao
7. o metodo falha
8. Fim Se
9. Se i 0 entao
10. p i r i 1
11. Senao
32
12. βi 1 ρi 1ρi 2 αi 1ωi 1
13. p i r i 1 βi 1 p
i 1 ωi 1vi 1
14. Fim Se
15. Encontrar p de Mp p i
16. v i Ap
17. αi ρi 1 r 0 v i 18. s r i 1 αiv
1
19. Se s ε entao
20. x i x i 1 αi p
21. Interrompe o loop i
22. Fim Se
23. Resolver z de Mz s
24. t Az
25. ωi s t t t 26. x i x i 1
αi p ωiz
27. r i s ωit
28. Se ωi 0 entao
29. o metodo falha
30. Fim Se
31. Fim Para
Fim do Algoritmo
onde x 0 e a solucao inicial, ε a tolerancia relativa, imax o numero maximo de iteracoes e M e
matriz de precondicionamento do sistema.
Comparado com CGS, dois produtos internos extras devem ser calculados, mas frequente-
mente o Bi-CGSTAB apresenta taxas de convergencia tao rapido quando o CGS. Com aritmetica
exata, α j e β j tem os mesmos valores com aqueles gerados pelo Bi-CG e CGS. Bi-CGSTAB
pode ser visto como o produto do Bi-CG e GMRES(1). Pelo menos localmente, o resıduo e
minimizado, conduzindo a um comportamento consideravelmente mais suave da convergencia.
Por outro lado, se houver estagnacao no GMRES(1), o sub-espaco de Krylov nao e expandido
fazendo com que o Bi-CGTAB falhe. Essa situacao de falha pode ser evitada com a combinacao
do Bi-CG com outros metodos. Gutknecht [51] propos o Bi-CGSTAB2 que e a combinacao do
Bi-CG com o GMRES(2).
Com relacao ao custo computacional e requerimentos de memoria, o Bi-CGSTAB apre-
senta algumas vantagens quando relacionado com o GMRES. Considerando um ciclo do Bi-
33
CGSTAB, sao realizados 6 operacoes de atualizacao de vetores, 8 operacoes de produto interno
e 2 operacoes de precondicionamento. Nesse caso, oito vetores de tamanho n e uma matriz de
ordem n n sao necessarios no armazenamento.
3.3 Metodo das direcoes conjugadas a esquerda (LCD)
O metodo das direcoes conjugadas a esquerda (LCD) foi introduzido por Yuan et al. [93]
para encontrar a solucao de sistemas nao simetricos e nao-singulares. Esse metodo baseia-se
no conceito de vetores conjugados a esquerda e a direita para matrizes nao-simetricas e nao-
singulares e possui algumas vantagens teoricas: i o LCD tem a propriedade de terminacao
finita, ii falhas (breakdown) para matrizes gerais pode ser evitada e iii existem uma conexao
entre LCD e a decomposicao LU. Experimentos iniciais em uma implementacao no MatLab
mostraram que o LCD possui taxas de convergencias atrativas quando comparados com outros
metodos nao-estacionarios, tais como, QMR, Bi-CGSTAB e GMRES [93].
Recentemente, Dai e Yuan [39] propuseram uma nova tecnica ao algoritmo anterior re-
duzindo em uma unica operacao de produto matriz-vetor em cada iteracao. Catabriga et al.
[28, 29] consideraram o algoritmo dado por [39] e introduziram a estrategia do restart similar
ao do metodo GMRES implementado por Shakib et al. [78], resultando no LCD(k) com restart.
O metodo LCD utiliza um conjunto ortogonal de direcoes de busca cujos vetores tem a
caracterıstica de serem conjugadas a esquerda da matriz A e linearmente independentes. Os
vetores p1 p2 p3 pN RN sao chamados de vetores conjugados a esquerda, de uma matriz
real A nao singular de ordem N N, se
pTi Ap j 0 para i j
pTi Ap j 0 para i j (3.10)
Supondo que a solucao do sistema Ax b e x e que p1 p2 p3 pN sao os vetores conjugados
a esquerda de A, tem-se
x x0
n
∑i1
αipi (3.11)
para cada vetor inicial x0 considerado. Calculando o vetor resıduo por r b Ax obtem-se
r r0
n
∑i1
αiApi (3.12)
onde r0 e o vetor resıduo inicial. Uma vez que p1 p2 p3 pN sao linearmente independentes,
34
para determinar os αi considere r ortogonal em relacao a todos os pis,
pTi r 0 i 1 2 N (3.13)
Substituindo (3.12) em (3.13), temos
αi pTi ri 1
pTi Api(3.14)
Pode-se, agora, rescrever as equacoes (3.11) e (3.12), na forma
xi xi 1 αipi (3.15)
ri ri 1 αiApi (3.16)
Com as equacoes (3.14), (3.15) e (3.16), basta conhecer os vetores linearmente independentes
p1 p2 p3 pN conjugados a esquerda em relacao a A, para determinar o algoritmo para o
metodo LCD. Em [93] e descrito uma relacao recursiva sobre p1 p2 p3 pk e rk para deter-
minar o vetor conjugado pk1:
q0 rk
βi pTi Aqi 1
pTi Api
qi qi 1 βipi para i 1 2 k
pk1 qk (3.17)
Nesse caso e necessario calcular p1 tal que pT1Ap1 0. A seguir e descrito a algoritmo do
metodo das direcoes conjugadas a esquerda elaborado por Yuan et al. [93]:
Algoritmo: LCD
1. Dado x0, A, b, p1 tal que pT1Ap1 0.
2. r0 b Ax
3. Para k 1 kmax faca
4. qk AT pk
5. αk pTk r
k 1
qTk pk
6. xk xk 1 αkpk
7. rk rk 1 αkApk
8. pk1 rk
9. Para i 1 k faca
10. βi qTi pk1
qipi
11. pk1 pk1 βipi
35
12. Fim Para
13. Fim Para
Fim Algoritmo
O algoritmo acima apresenta 2n2 2k 4 n 1 operacoes em ponto flutuante em cada passo
iterativo. A principal razao e devido a necessidade de calcular dois produtos matriz vetor em
cada iteracao, um com a matriz dos coeficientes e outro com sua transposta. Alem disso, ha
a necessidade de armazenar N vetores p e N vetores q para obter a solucao xN . Para reduzir
as operacoes de produto matriz-vetor, Dai e Yuan [39] acrescentaram mais uma operacao de
atualizacao de vetor para a retirada de uma operacoa matriz-vetor. Para tanto, eles multiplicaram
a recorrencia pk1 pk1 βipi por A obtendo
Apk1 Apk1 βiApi (3.18)
Fazendo qk1 Apk1, a seguinte nova recorrencia foi criada
qk1 qk1 βiqi (3.19)
A seguir e dado a versao desse algoritmo, acrescido pela tecnica do restart apresentado em
Catabriga et al. [29], com precondicionamento a esquerda:
Algoritimo: LCD(m)
1. Dado x, A, b, lmax, m e η
2. r0 b Ax
3. Encontrar r em Mr r0
4. ε η r5. Escolha p1 tal que pT1 Ap1 0
6. Para l 1 lmax faca
7. Encontrar q1 em Mq1 Ap1
8. Para k 1 m faca
9. αk pTk r
pTkqk
10. x x αkpk
11. r r αkqk
12. Se r ε entao
13. Saia dos lacos k e l, x e a solucao.
14. Fim Se
15. pk1 r
36
16. Encontrar qk1 em Mqk1 Apk1
17. Para i 1 k faca
18. βi pTi qk1
pTi qi
19. pk1 pk1 βipi
20. qk1 qk1 βiqi
21. Fim Para
22. Escolha o novo p1 tal que pT1 Ap1 0
23. Fim Para
Fim Algoritmo
onde lmax e o numero maximo de iteracoes do metodo, kmax e o numero de vetores conjugados
a esquerda considerados no restart, η e a tolerancia relativa e M e o precondicionador utilizado.
Esse ultimo algoritmo, alem de possuir uma unica operacao produto matriz-vetor, reduziu o
requerimento de memoria ja que agora sao necessarios armazenar 2k vetores de dimensao N.
Para iniciar o LCD(k), alem do vetor p1, um novo vetor pl1 deve ser escolhido, para cada iteracao
l, de modo que pT1Ap1 0. Catabriga et al. [28] realizaram experimentos acerca da escolha de
p1. O melhor resultado foi p1 r1 e pl1 plk1 e nesse trabalho foi adotado essa escolha.
Em [29], foi realizado um estudo comparativo do desempenho dos algoritmos LCD(m) e
GMRES(m) para a solucao do sistemas de equacoes nao lineares oriundos da discretizacao por
elementos finitos e diferencas finitas da equacao de difusao-conveccao. Os estudos apontaram
vantagem para o LCD na maioria dos casos. Na Secao 5.1, e realizado testes numericos com-
parando os metodos LCD, GMRES e Bi-CGSTAB na solucao de sistemas de equacoes lineares
vindas das discretizacao das equacoes conveccao-difusao por elementos finitos de ordem linear
e quadratico.
3.3.1 Implementacao no
A implementacao de qualquer novo metodo numerico de resolucao de sistemas lineares
na biblioteca corresponde, na verdade, a implementacao no PETSc e deve obedecer
alguns padroes de implementacoes tais como a padronizacao dos nomes de variaveis e funcoes
e principalmente manter um forte encapsulamento dos dados. As seguintes rotinas basicas sao
requeridas para cada metodo baseado nos sub-espacos de Krylov.
KSPSetUp XXX(): Faz a alocacao de toda a memoria utilizada pelo metodo.
KSPCreate XXX(): Responsavel pela inicializacao da variavel de contexto utilizada no
37
metodo de Krylov implementado. A variavel de contexto contem o estado completo do
metodo, incluindo os parametros usados (tolerancia relativa, por exemplo), funcoes que
sao executadas no algoritmo (tal como, rotinas de monitoramento de convergencia) e
informacoes sobre o estado atual do metodo (numeros de iteracoes e resıduo).
KSPSetFromOptions XXX(): Modifica algumas opcoes referentes ao metodo, tais como,
tolerancia relativa e, dependendo do metodo, o numero de vetores na base para o restart.
Outro detalhe interessante e o fato do usuario poder alterar certos parametros em tempo
de execucao, atraves da passagem de argumentos por linhas de comando.
KSPSolve XXX(): Contem a implementacao do metodo linear propriamente dito e uti-
liza as rotinas disponıveis no PETSc.
KSPDestroy XXX(): Responsavel pela liberacao de toda memoria utilizada e da variavel
de contexto.
Aqui, XXX denota uma implementacao particular, entretanto, nesse trabalho foi proposto a
implementacao do metodo LCD, cujo algoritmo foi apresentado na secao anterior. Sendo assim,
foram incluıdas as funcoes KSPCreate LCD(), KSPSetFromOptions LCD(), KSPSolve LCD()
e KSPDestroy LCD(). Em todas as funcoes foram utilizadas exclusivamente rotinas da biblio-
teca PETSc, incluindo desde procedimentos de alocacao e desalocacao de memoria ate rotinas
que manipulam matrizes e vetores. Uma vez que a estrutura geral nao foi alterada e o metodo
foi construıdo utilizando as rotinas padroes do PETSc, o novo metodo ja esta pronto para a
execucao em arquiteturas paralelas.
Atualmente, o metodo ja esta disponıvel para downloads na versao 2.3.2 no site http://www-
unix.mcs.anl.gov/petsc/petsc-as/. Testes comparativos entre o metodo LCD e os metodos GM-
RES e Bi-CGSTAB serao apresentados no Capıtulo 5.
38
4 Adaptatividade na Biblioteca
Esse capıtulo trata do estudo e implementacao de tecnicas adaptativas para o metodo dos
elementos finitos, voltadas para diversos problemas da area da engenharia, utilizando a biblio-
teca . O uso dessas tecnicas adaptativas permite ajustar a discretizacao de acordo com
as necessidades da analise. Na Secao 4.1, e discutida a tecnica de refinamento adaptativo da ma-
lha implementada na biblioteca . Em seguida, e realizado um estudo de uma tecnica de
selecao adaptativa do passo no tempo usando conceitos de controles automaticos. Finalmente,
na ultima secao e discutida a implementacao conjunta das adaptatividades espaciais e temporais
na biblioteca .
4.1 Refinamento adaptativo da malha
A modelagem matematica de diversos problemas da ciencias e engenharias, tais como,
turbulencia, fluidos incompressıveis, fluidos reativos e nao reativos, tipicamente envolvem a
solucao de equacoes diferencias parciais nao lineares (PDEs). A solucao numerica requer a
geracao de malhas que discretizam o domınio desses problemas. Malhas bem finas sao frequen-
temente utilizadas para obter solucoes aproximadas com boa acuracia. Entretanto, em muitas
situacoes, existem regioes do domınio onde a alta resolucao da malha nao e necessaria; usar ma-
lhas bem refinadas nessas regioes representaria desperdıcio de recursos computacionais, con-
sequentemente nao resolveria o problema eficientemente. Por outro lado, ha regioes do domınio
que requer uma maior precisao necessitando ser representada por uma malha mais refinada.
Para contornar essa questao, surgiram diversos esquemas de refinamento de malhas de modo a
melhorar a solucao numerica bem como diminuir as limitacoes dos recursos computacionais.
A ideia essencial destes esquemas e refinar regioes do domınio computacional na qual uma
alta precisao e necessaria, deixando outras partes nao interessantes com baixa precisao [26]. Em
cada um desses esquemas, o processo de refinamento define uma sequencia de malhas sendo que
em cada passo haja uma solucao aproximada adequada. A cada passo discreto dessa sequencia,
a solucao associada com a malha e avaliada no mecanismo adaptativo para a geracao da malha
39
do passo seguinte. Existem essencialmente tres metodos empregados para a adaptatividade
espacial em elementos finitos:
h-adaptatividade: adiciona novos nos e elementos na malha original em regioes do domınio
onde ha um grande erro local e remove em regioes com pequeno erro [30, 60].
p-adaptatividade: consiste em aumentar ou diminuir a ordem de aproximacao dos elementos
em uma determinada parte do domınio [47, 75].
r-adaptatividade: adapta a malha de tal modo que o numero de nos e de elementos permanece
inalterado. Isto e tipicamente realizado atraves do uso do movimento de nos, onde a
malha e continuamente deformada com o aumento de densidade de pontos nas regioes do
domınio com o maior erro local [1, 58].
Em algumas aplicacoes avancadas utilizam-se tambem versoes hıbridas desses metodos, tais
como: hp-adaptatividade, hr-adaptatividade ou rp-adaptatividade. Basicamente, o processo
de refinamento adaptativo da malha, em qualquer um dos metodos adotados, pode ser resumido
nas seguintes etapas:
1. Geracao da malha inicial;
2. Montagem do sistema linear Ku F oriundo da discretizacao por elementos finitos;
3. Solucao do sistema Ku F por algum metodo numerico;
4. Calculo da estimativa do erro local;
5. Aplicacao do esquema adaptativo;
6. Interpolacao da solucao nos novos nos adicionados a malha;
7. Retorna para o passo 2 e repete os calculos ate que a solucao final seja obtida.
A tecnica utilizada na biblioteca e a h-adaptatividade, tambem conhecida como
refinamento adaptativo de malha - AMR (Adaptative Mesh Refinement). Na tecnica de refi-
namento adaptativo, a simulacao numerica comeca em uma malha inicial e com o processo
do calculo da solucao sao identificadas as regioes que requerem maior precisao por algum
parametro caracterıstico da solucao, por exemplo, a estimativa do erro de truncamento local. A
malha e refinada somente nessas regioes ate que seja atingido um numero maximo de nıveis de
refinamento, ou o erro local for menor que uma tolerancia fornecida pelo usuario da aplicacao.
40
Por outro lado, regioes do domınio onde a solucao nao se altera significamente com o proces-
samento podem ser desrefinadas.
Como exemplo do esquema h-adaptativo, a Figura 4.1 mostra a configuracao da malha
para um conhecido problema de conveccao-difusao, o cone em movimento diagonal. Em um
domınio quadrado e considerada uma elevacao no canto inferior esquerdo, Figura 4.1(a). A
velocidade de escoamento esta na direcao da diagonal, sendo que, a medida que o tempo passa,
a elevacao diminui e caminha na direcao do escoamento. No tempo t 0, a malha inicial
encontra-se bem refinada. Com o inicio do processamento, t 0 25, o processo AMR identi-
fica as regioes onde a solucao altera mais rapidamente e refina essa regiao. Nesse instante, o
primeiro quadrante e refinado e os os outros quadrantes sao desrefinado pois as alteracoes sofri-
das nessas regicoes sao insignificantes. Como ha conveccao na direcao ao quarto quadrante, a
malha vai se ajustando, a medida que as solucoes sao calculadas, como mostrado nos instantes
t 0 5 e t 0 75.
Como mencionado anteriormente, a construcao da malha ao longo do processo adaptativo
depende da analise da estimativa de erro local adotada. Com a determinacao da dependencia
local do erro na malha, esquemas podem ser construıdos para geracao de malhas otimizadas
que respeitem o comportamento do erro local. Dessa forma, as malhas podem ser geradas e
refinadas ou redistribuıdas de acordo com a estimativa do erro local a fim de que o erro se torne
uniformemente pequeno ate atingir uma tolerancia especificada.
As tecnicas classicas de calculo de erros analisam uma sequencia de malhas, atraves de
tecnicas como a extrapolacao de Richardson, para determinar a taxa de convergencia dos metodos,
tornando essas tecnicas computacionalmente caras. Metodos mais eficientes de analise as-
sintotica do erro vem sendo desenvolvidas ao longo dos ultimos anos. Destacam-se as contribuicoes
dadas por Babuska [56, 57] no desenvolvimento de estimativas de erro em processo h-adaptativos.
A ideia apresentada em seus trabalhos esta baseado no calculo a posteriori do erro em elementos
bilineares usando as informacoes obtidas durante o processo de solucao. Diversos trabalhos pos-
teriores seguiram e adaptaram essas ideias inicialmente apresentadas por Babuska [12, 35, 36].
Na biblioteca , a estimativa do erro implementada baseia-se no esquema apre-
sentado por Kelly et al. [65] por oferecer estimativas, nao somente para elementos lineares e
processos h-adaptativos, como tambem por incluir uma extensao para elementos de ordem mais
elevadas e versoes p-adaptativas do metodo de elementos finitos. Basicamente, o esquema faz
o calculo da norma da energia 2E do salto do fluxo que atravessa a face entre os elementos,
41
(a) t 0 (b) t 0 25
(c) t 0 5 (d) t 0 75
Figura 4.1: Exemplo de refinamento adaptativo da malha para um problema de conveccao-
difusao
ou seja,
2E h
Ωe
∇e1 ∇e2 η dΩe
12
(4.1)
onde, ∇e1 e ∇e2 sao o gradiente da solucao nos elementos vizinhos e1 e e2, respectivamente,
η e o vetor normal a face que une esses elementos e h o comprimento da face. A seguir, sera
descrito o processo utilizado na estimativa do erro e como este erro e utilizado no refinamento
adaptativo de malha na biblioteca .
A Figura 4.2 mostra dois possıveis casos para o calculo das contribuicoes do erro em ele-
mentos da malha. Na Figura 4.2(a), os elementos e1 e e2 pertencem a um mesmo nıvel de
refinamento, assim calcula-se o erro em qualquer uma das face que une esses dois elementos
e adiciona a contribuicao do erro para ambos elementos. Ja na Figura 4.2(b), o elemento e1
esta num nıvel superior de refinamento, entao calcula-se o erro sobre a face do elemento e1,
42
adicionando a contribuicao nos dois elementos.
(a) (b)
Figura 4.2: Fluxo sobre as faces dos elementos
Percebe-se entao que, no final do processo, cada elemento tera um erro local associado.
Entretanto, para que o refinamento realmente aconteca e necessario fornecer algum parametro
extra indicando qual elemento deve ser refinado ou desrefinado. Umas das tecnicas que vem
sendo estudada e a utilizacao de analises estatisticas no processo de refinamento e desrefina-
mento de malha [26]. Este esquema apresenta vantagens em problemas evolutivos, onde, nas
primeiras iteracoes, o erro e pequeno e igualmente distribuido em todos os elementos nao ha-
vendo a necessidade de refinamento. A medida que a solucao se desenvolve, a distribuicao
estatıstica se expande iniciando o processo de refinamento e desrefinamento. Com a solucao
em regime permanente sendo alcancada, a distribuicao do erro tambem alcanca um estado per-
manente efetivando a finalizacao do processo de refinamento.
Como base nessa estrategia, o utiliza duas fracoes, Pr e Pc, que estipulam to-
lerancias como criterios para o refinamento e desrefinamento. A fracao Pr indica que qualquer
elemento com ate 1 Pr% do erro maximo sera refinado. Ja a fracao Pc indica que qualquer
elemento com ate Pc% do erro mınimo sera desrefinado. A tolerancia que indica a necessidade
de refinamento e dada por
εr 1 PrEmax (4.2)
onde Emax e o maior erro entre todos os elementos. Se o erro local de um determinado elemento
for maior ou iqual a εr, este elemento deve ser refinado. Por outro lado, a tolerancia que indica
se um refinamento em um elemento pode ser desfeito e fornecido pelo calculo a seguir
εc Pc∆E Emin (4.3)
onde Emin e o menor erro entre todos os elementos e ∆E e a diferenca entre Emax e Emin. Nesse
caso, o elemento e desrefinado se o erro local for menor ou igual a εc.
43
Figura 4.3: Fluxograma do refinamento adaptativo da malha AMR
44
A Figura 4.3 apresenta o fluxograma que mostra as principais etapas do refinamento adap-
tativo implementado na biblioteca . O algoritmo para o refinamento pode ser dividido
em tres partes: a geracao da malha inicial, o refinamento uniforme na malha inicial e o laco
adaptativo AMR. Na primeira etapa do algoritmo, existem basicamente duas formas de realizar
a geracao da malha inicial. A primeira forma e atraves do gerador automatico de malhas imple-
mentado no , que permite criar malhas estruturadas com diversos tipos de elementos.
A segunda forma e atraves de leituras de malhas, estruturadas ou nao, geradas em outros pro-
gramas desde que esses arquivos estejam em algum formato aceito pelo , como por
exemplo, os formatos .ucd (AVS’s ASCII UCD format), .mat (Matlab triangular ASCII file) e
.unv (I-deas Universal format), alem do seu formato proprio, o .xda. A construcao da malha ini-
cial deve ter um numero suficiente de elementos para representar a complexidade da geometria
e as condicoes de contorno do problema.
Na segunda etapa do algoritmo e necessario indicar quantos nıveis de refinamento uniforme
deverao ser realizados sobre a malha atraves do parametro l, antes do laco adaptativo AMR
se iniciar. Para exemplificar essa operacao, a Figura 4.4 mostra dois nıveis de refinamento
sendo aplicados em um elemento triangular linear. Cada nıvel subdivide o elemento em quatro
novos elementos triangulares, ou seja, 22k, onde k e o nıvel de refinamento. O mesmo e valido
para elementos triangulares quadraticos. A utilizacao do refinamento uniforme logo no inıcio
do processo e necessario sempre que houver desrefinamento, ou seja, Pc 0, isso porque, o
processo adaptativo necessita saber para qual malha uma determinada regiao deve migrar. Se
apenas refinamento for aplicado, o refinamento uniforme da malha inicial e opcional.
(a) Nıvel 0 (b) Nıvel 1 (c) Nıvel 2
Figura 4.4: Nıveis de Refinamento
O algoritmo necessita como dados de entrada, a malha inicial e o numero de refinamentos
iniciais uniformes (l). Alem disso, sera mostrado a seguir que o algoritmo tambem necessita que
sejam definidos pelo usuario os seguintes parametros de entrada: o numero maximo de iteracoes
do processo de refinamento adaptativo (maxrstep), as fracoes Pr e Pc e o nıvel maximo de refi-
namentos (lmax). Por simplicidade sera adotada a notacao AMR (malha inicial,l,Pr,Pc,lmax) nas
45
futuras indicacoes do algoritmo nesse trabalho. Com a malha inicial determinada, comeca a
geracao das malhas adaptativas atraves de um processo iterativo de busca da malha final que
melhor represente o comportamento da solucao, ou seja, a terceira etapa do algoritmo. Para
cada passo no tempo, temos um laco adaptativo onde as seguintes tarefas sao executadas:
(1) Montagem do sistema de equacoes nao-lineares oriundo da discretizacao pelo metodo de
elementos finitos;
(2) Solucao do sistema de equacoes nao-lineares por algum metodo numerico. Em geral, o
sistema de equacoes nao-lineares e resolvido por iteracoes sucessivas ou pelo metodo de
Newton;
(3) Calculo da estimativa do erro;
(4) Refinar e desrefinar os elementos de acordo com o erro, usando as tolerancias εr e εr. Esse
refinamento nao pode ultrapassar o nıvel maximo de refinamento permitido, no qual e
fornecido pelo parametro lmax;
(5) Interpolacao da solucao nos novos nos adicionados a malha.
O processo se repete enquanto as iteracoes nao atingem um numero maximo de refinamentos,
maxrstep, definido pelo usuario da aplicacao. Quando a iteracao for igual a maxrstep, apenas as
tarefas (1), (2) sao realizadas. Com o fim do laco adaptativo, o tempo e acrescido e uma nova
malha adaptativa e construıda com a execucao de mais um laco adaptativo. A solucao final e
obtida interrompendo esse processo usando algum criterio de parada no tempo. Estes criterios
podem ser atraves da indicacao de um tempo final ou da verificacao do regime permanente da
solucao. Em todos os experimentos realizados nesse trabalho sera adotado maxrstep 2. Para
problemas transientes, isso indica que apenas um processo de refinamento sera aplicada em
cada laco no tempo.
4.2 Selecao adaptativa do passo no tempo
Nessa secao e discutida a utilizacao no de um algoritmo de controle retroalimen-
tado para a selecao do tamanho do passo no tempo, para melhorar a eficiencia computacional de
codigos que resolvem problemas numericos dependentes do tempo, em particular, problemas
em regime permanente. A tecnica apresentada nesse trabalho baseia-se no algoritmo desenvol-
vido por Valli et al. [88, 3], que utiliza um controlador retroalimentado do tipo proporcional, in-
tegral e derivativo (PID) para ajustar as escolhas dos passos do tempo. Dois controladores para a
46
escolha do passo no tempo foram desenvolvidos nestes trabalhos, um baseado em controlar uma
estimativa para o erro de truncamento local e outro baseado em controlar as mudancas na ener-
gia cinetica e na taxa de convergencia das iteracoes sucessivas. Varios experimentos numericos
comprovaram a eficiencia dos controladores na obtencao de solucoes em regime permanente de
escoamentos viscosos e incompressıveis acoplados a processos de reacao, difusao e conveccao
combinados com efeitos na tensao superficial. Neste trabalho, um dos controladores vai ser
implementado no e o seu desenvolvimento e apresentado a seguir, dentro do contexto
de controle.
Controle pode ser definido como o processo que faz um sistema de variaveis seguir uma va-
lor particular, denominado de valor de referencia. Os sistemas de controle automaticos sao en-
contrados em abundancia em setores da industria, tais como controle de qualidade e fabricacao
de produtos, linhas de montagem automatica, controles de ferramentas, tecnologia espacial e de
armamento, sistemas de transporte, robos e muitos outros [4, 42]. Em um sistema fechado, um
algoritmo de controle retroalimentado simples e constituıdo pelo processo ou planta, o contro-
lador, o atuador e um sensor, como mostrado na Figura 4.5. O componente central do controle
retroalimentado e o processo, cuja saıda deve ser controlada. A diferenca entre o valor desejado
e o valor calculado no processo e medido por um sensor e igual ao erro cometido, no qual deve
ser ajustado pelo controlador. A saıda do controlador aciona o atuador para que este module o
processo de forma que o erro diminua.
Figura 4.5: Controlador PID
O controlador PID e certamente a estrategia de controle mais largamente utilizada, por
oferecer simplicidade e solucoes eficientes para problemas que envolvem controle. A equacao
fundamental que geralmente descreve o PID tem a seguinte forma:
S τ k
θ τ
1
TI
τ
0θ τ dτ TD
dθ τ
dτ
(4.4)
ou
S τ kPθ τ kIθ τ kDθ τ (4.5)
onde S τ e o sinal de saıda do controlador, S τ e a taxa de variacao de S no tempo, θ τ
47
e o erro atuante, k e o ganho proporcional, TI e o tempo integral e TD e o tempo derivativo.
Os parametros kP, kI e kD sao ajustaveis e relacionados com os controladores proporcional,
integral e derivativo, respectivamente. Para adaptar o modelo contınuo ao modelo discreto, e
preciso trocar as derivadas por diferencas, resultando em
Sn1 Sn kP θn θn 1 kI θn kD θn 2θn 1 θn 2 (4.6)
Cada um dos tres termos PID desempenham um papel no controlador. O termo proporcional
atua como um amplificador com ganho ajustavel. Ja o termo integral e usado para eliminar o
erro estacionario. O modo derivativo atua com um efeito estabilizador permitindo um aumento
do ganho e reduzindo a tendencia de oscilacoes, o que conduz a uma velocidade de resposta
maior. O desenvolvimento de um controlador PID particular corresponde ajustar esses tres
termos, atraves dos parametros KP, KI e KD, para um rendimento satisfatorio do controlador.
Na integracao numerica de equacoes diferencias ordinarias, controle adaptativo de escolha
do tamanho do passo sao provavelmente um dos mais importantes mecanismos responsaveis
para melhorar a eficiencia de um metodo de integracao. Usualmente, o proposito desses con-
troles adaptativos de passos no tempo e minimizar o esforco computacional para construir
uma aproximacao de um determinado problema, dentro de uma precisao desejada. Em geral
utilizam-se estimativas de erro de truncamento local para determinar qual o tamanho do passo
a ser dado [70, 74]. Nesse contexto, um algoritmo tıpico para o controle do tamanho do passo
para um metodo de Runge-Kutta de ordem p 1, pode ser expresso como
∆tn1
tol
en
1 p
∆tn (4.7)
onde tol e uma tolerancia dada e en e uma estimativa do erro de truncamento local no passo ∆tn.
Se o erro e maior que a tolerancia, o controlador diminui o tamanho do passo, caso contrario,
o passo pode ser aumentado. Se o erro for muito grande em um passo, ou seja, maior que um
valor estipulado, entao o passo e rejeitado e a solucao recalculada com um novo tamanho para o
passo. Este tipo de algoritmo funciona razoavelmente bem. Entretanto, para algumas equacoes
diferenciais e metodos de integracao ha grandes oscilacoes na escolha do passo e um grande
numeros de passos serao rejeitados.
Gustafsson et al. [50, 48, 49] mostraram que a selecao do tamanho do passo, Equacao
(4.7), pode ser interpretada como um problema padrao de controle automatico do tipo PI, rees-
crevendo a equacao como
log tn1 log tn 1
p logen log tol (4.8)
48
ou
Sn1 Sn kI θn (4.9)
onde
Sn log tn (4.10)
θn logen logtol (4.11)
Considerando kP 0, kI 1 p and kD 0, a Equacao (4.9) fica equivalente a Equacao (4.6).
Sendo assim, esquemas de escolha do passo no tempo baseados em controlar a mudanca maxima
nas variaveis de interesse sao, na verdade, versoes do conhecido controlador integral PI. Aqui
log tn e a variavel de controle, logen log tol e o erro, logen e o sinal de saıda, e log tol e a
entrada de referencia. A Figura 4.6 mostra um diagrama que representa o problema de selecao
do tempo como uma problema de controle. O processo toma um ∆t como entrada, calcula a
solucao do problema e produz uma estimativa do erro que sera usado pelo controlador para a
escolha do novo passo no tempo.
Figura 4.6: Selecao adaptativa do passo do tempo visto como um problema de controle retroa-
limentado.
Motivados por estas ideias, um novo algoritmo de controle do passo no tempo foi proposto
usando um controlador do tipo PID. Substituindo as definicoes (4.10) e (4.11) em (4.6), obtem-
se
log tn1 log tn kI logen log tol
kP logen log tol logen 1 log tol
kD logen log tol 2 logen 1 log tol
logen 2 log tol (4.12)
no qual pode ser reorganizada como,
tn1
en 1
enkP
tol
enkI
en 12
enen 2
kD tn (4.13)
A Equacao (4.13) pode ser reescrita usando mudancas normalizadas das variaveis de interesse,
49
e n en tol, e n 1 en 1 tol e e n 2 en 2 tol,
tn1
en 1
enkP
1
enkI
en 12
enen 2kD tn (4.14)
onde o o sımbolo * foi retirado para simplificacao da notacao. Note que tres solucoes consecu-
tivas sao necessarias para calcular os erros de truncamento local en, en 1 e en 2. Neste trabalho,
a estimativa do erro e dada por
eu e ntol
e n Un Un 1
Un (4.15)
onde tol e usado para a normalizacao do erro e U e a variavel de interesse.
O algoritmo de controle do passo no tempo pode ser dividido em duas partes principais,
como mostrado na Figura 4.7. A primeira corresponde ao calculo do erro de truncamento local
atraves de tres solucoes consecutivas. Ja a segunda parte, usa o erro calculado para aceitar ou
rejeitar a solucao, modificando, apropriadamente, o tamanho do passo. Se o erro e aceitavel,
a solucao e mantida e um novo passo e calculado atraves da Equacao (4.14). Se o erro e
inaceitavel, a nova solucao e descartada e o processo e reiniciado no passo anterior com um
∆t reduzido.
Os dados iniciais para o algoritmo sao: tres solucoes consecutivas: Un 2, Un 1 e Un, o
tempo corrente t, o tamanho do passo ∆t e o numero de iteracoes no tempo n. Alem disso,
sao definidos os parametros internos do controlador: o tamanho mınimo para o passo do tempo
∆tmim, o tamanho maximo para o passo do tempo ∆tmax, os parametros KP, KI e KD do PID e
a tolerancia tol. No algoritmo, os seguintes parametros necessitam ser inicializados: en 2
en 1 1 0, o tamanho do passo do tempo da iteracao anterior ∆tprev ∆tmin e o numero de
passos rejeitados nre j 0.
Para a implementacao na biblioteca foi utilizado o paradigma de orientacao a obje-
tos com a definicao da classe . Nessa classe encontra-se o metodo
para o calculo do novo passo do tempo. Tal metodo recebe como parametro o erro truncamento
local dada pela equacao 4.15 e verifica se um determinado passo deve ser rejeitado ou aceito.
Em qualquer decisao tomada, o metodo calcula o novo passo atualizando a solucao e as variaveis
do sistema. Na proxima secao sera apresentada uma versao do algoritmo PID para a escolha do
passo no tempo implemantada na biblioteca ibMesh, quando e utilizado em conjunto com o
refinamento adaptativo da malha no espaco.
50
Figura 4.7: Algoritmo PID para a escolha do tamanho do passo no tempo
51
4.3 Adaptatividade no espaco e no tempo
O algoritmo proposto nessa secao, busca inserir os mecanismo da selecao adaptativa do
passo do tempo dentro do processo de refinamento adaptativo de malha. Pequenas adaptacoes
foram realizadas no processo AMR apresentado na Secao 4.1, para se obter o processo adapta-
tivo no tempo. Essas adaptacoes estao apresentadas na Figura 4.8. No fluxograma, as operacoes
necessarias a adaptividade no tempo estao definidas dentro das caixas tracejadas. Note que, essa
adaptacao nao altera de forma significativa o processo de refinamento AMR e que o algoritmo
de escolha do passo no tempo esta dividido em tres partes principais: o calculo do erro, o teste
de rejeicao e o calculo do novo passo no tempo.
A primeira parte do algoritmo esta relacionada com o calculo do erro de truncamento utili-
zado pelo PID. Nesse caso, o procedimento foi colocado dentro do laco AMR, antes do proce-
dimento de refinamento, uma vez que e necessario calcular o erro considerando as solucoes em
uma mesma malha. Na forma como o erro foi implementado, e preciso comparar a solucao pon-
tualmente em dois instantes de tempos consecutivos. Ao longo das iteracoes AMR, os calculos
do erro sao sobrepostos em e, de forma que, ao final do laco, o ultimo valor do e calculado seja
utilizado para a determinacao do novo ∆t.
A segunda parte corresponde ao teste de rejeicao do passo. Como dito anteriormente, o laco
adaptativo realiza, nessas implementacoes, duas iteracoes em todos os experimentos realizados
nesse trabalho. Alem disso, observe que o processo AMR e aplicado somente na primeira
iteracao do laco AMR. Assim, caso o passo seja rejeitado, o laco AMR e abortado antes do
ınicio calculo da nova malha e o controle de execucao volta para o laco no tempo. Seguindo, a
solucao e descartada e o processo e reiniciado no passo anterior com um ∆t reduzido.
Finalmente, tem-se o terceira parte do algoritmo que corresponde ao calculo do novo passo
do tempo, realizado apos o laco AMR. Se o passo nao foi rejeitado, o novo ∆t e obtido seguindo
o esquema apresentado na Figura 4.7 correspondente aos passos aceitos. Caso contrario, executa
se a parte do algoritmo correspondente aos passos rejeitados, no qual reduz o tamanho do passo
e nao atualiza a solucao. Ou seja, os calculos feitos no algoritmo PID sao os mesmos feitos no
novo algoritmo.
Considerando os parametros necessarios ao algoritmo, e facil perceber que eles corres-
pondem aos mesmos parametros utilizados no AMR e no algoritmo de selecao adaptativa do
tempo. Alem das tolerancias para processo nao linear, do metodo linear de solucao de sistema
e da verificacao do regime permanente.
Observe que nao foi preciso fazer nenhuma modificacao significativa no algoritmo de es-
52
colha do passo no tempo, quando este foi inserido no processo AMR. E facil perceber tambem
que os parametros necessarios a este novo algoritmo sao os mesmos utilizados no AMR e no
algoritmo de selecao adaptativa do tempo. Em termos de implementacao computacional, o algo-
ritmo do passo do tempo e bem simples e nao acrescenta esforco computacional significativo ao
algoritmo AMR. No entanto, e preciso analisar o comportamento das solucoes obtidas quando
os dois processos de adaptatividade sao utilizados em conjunto. Isso sera feito nos experimentos
numericos executados no proximo capıtulo.
53
Figura 4.8: Algoritmo do refinamento adaptativo no tempo e no espaco
5 Experimentos Numericos usando a
Biblioteca
Este capıtulo tem como objetivo validar e comparar os metodos descritos nos capıtulos anterio-
res atraves de dois grupos diferentes de resultados, e esta dividido em duas secoes. Na primeira
secao e realizado um estudo entre os metodos lineares LCD, GMRES e Bi-CGSTAB atraves da
solucao de dois problemas convectivo-difusivo. Na segunda secao, por sua vez, e analisado o
desempenho do metodo de selecao do passo no tempo quando conjugado a um esquema de re-
finamento adaptativo de malhas. Para isso, dois problemas modelo sao resolvidos, escoamento
sobre uma cavidade quadrada (lid driven cavity flow) e o escoamento com alargamento de canal
(backward facing step flow).
5.1 Eficiencia computacional dos metodos iterativos
Nessa secao, e discutido o desempenho computacional dos metodos GMRES, Bi-CGSTAB
e LCD para a solucao de sistemas de equacoes nao simetricos obtidos na discretizacao por
elementos finitos de problemas de conveccao-difusao. Para isso, foram implementados dois
problemas para o estudo da eficiencia desses metodos. O primeiro problema estudado inclui
um exemplo construıdo com solucao conhecida. O segundo problema considera o transporte,
conveccao dominante, de um escalar em um domınio quadrado e com velocidade constante. Em
todos os exemplos e considerado o precondicionador ILU(0).
5.1.1 Problema de conveccao-difusao
Considere a equacao de conveccao e difusao (2.1) definida em um domınio quadrado Ω
0 1 0 1 com fronteira Γ. Os coeficientes de difusividade em cada direcao sao kx 1 e
55
ky 1, e o vetor velocidade β e dado por:
βx x2 1 x 2
2y 6y2 4y3
(5.1)
βy y2 1 y 2
2x 6x2 4x3 (5.2)
A velocidade nodal maxima e aproximadamente 1.2 unidades, resultando em um numero de
Peclet global igual a Pe 1 2. O termo fonte f e tal que a solucao exata seja dada por u x y
100xy x 1 y 1 para x y Ω, ou seja,
f x y 200 x x 1 y y 1 100βx 2x 1 y y 1
100βy 2y 1 x x 1 ; (5.3)
No contorno Γ, a solucao e nula, u x y 0.
A equacao de conveccao-difusao e resolvida utilizando dois tipos de elementos triangulares,
com tres (TRI3) e seis (TRI6) nos. O domınio e dividido em 64 64, 128 128 e 256 256 celulas, sendo cada celula subdividida em dois elementos triangulares. Para os metodos
iterativos a convergencia e considerada atingida quando o resıduo relativo for inferior a 10 10.
solucao aproximada, calculada usando uma malha de elementos finitos com 128 128 celulas
subdivididas em elementos triangulares lineares, esta apresentada na Figura 5.1
Figura 5.1: Solucao do problema de conveccao-difusao
Inicialmente, para observar o numero de iteracoes e o tempo de processamento (em segun-
dos) necessarios a convergencia nos metodos LCD e GMRES, o problema foi resolvido usando
diferentes numeros de vetores para o restart. Foram considerados 5, 10, 20, 30 e 40 vetores em
ambos algoritmos. As Tabelas 5.1, 5.2 e 5.3 mostram o numero de iteracoes e o tempo de pro-
cessamento para resolver o problema utilizando as malhas com 64 64, 128 128 e 256 256
56
celulas, respectivamente.
Na Tabela 5.1, e possivel observar que o melhor desempenho do metodo GMRES ocorreu
quando 40 vetores sao utilizados para o restart. Para o metodo LCD, o melhor desempenho
ocorreu quando 10 vetores sao utilizados, tanto para elementos TRI3 quanto para elementos
TRI6. Observa-se tambem que o tempo de processamento do metodo LCD aumentou com o
aumento do numero de vetores na base, embora houvesse diminuicao no numero de iteracoes.
Comparando os tres metodos observamos, em termos de tempo de processamento e numeros
de iteracoes lineares, o metodo Bi-CGSTAB apresenta os melhores resultados. Alem disso,
quando comparado ao melhor desempenho do metodo GMRES, o Bi-CGSTAB chega a ser 1.2
vezes mais rapido para elemento do tipo TRI3 e 1.9 vezes mais rapido para elemento do tipo
TRI6. Considerando o metodo LCD, o Bi-CGSTAB e aproximadamente 1.4 vezes mais rapido
para elementos TRI3 e 2.4 vezes mais rapido para elementos do tipo TRI6. Comparando os
metodos GMRES e LCD, e possıvel notar que o metodo LCD apresentou, geralmente, melhores
resultados, principalmente com elementos TRI6.
Tabela 5.1: Problema de conveccao-difusao - Desempenho dos metodos GMRES, LCD and
Bi-CGSTAB - Malha 64 64 celulas
GMRES
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
5 0.369 346 13.681 2028
10 0.164 151 4.948 730
20 0.117 92 4.001 526
30 0.116 75 4.206 493
40 0.111 67 2.437 255
LCD
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
5 0.144 90 3.436 400
10 0.134 74 3.130 326
20 0.172 73 3.266 267
30 0.211 73 3.735 243
40 0.247 69 4.062 229
Bi-CGSTAB
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
0.092 48 1.270 113
De acordo com a Tabela 5.2, o melhor desempenho do metodo GMRES ocorreu, para ele-
57
mentos TRI3, quando 40 vetores sao utilizados para o restart. Para elementos do tipo TRI6, o
metodo GMRES apresenta melhor desempenho com 30 vetores para o restart. Considerando
5 vetores para o restart, GMRES atingiu o numero maximo de iteracoes sem atingir a con-
vergencia. Para o metodo LCD, o melhor desempenho ocorreu quando 5 vetores sao utilizados
para o restart, considerando elementos do tipo TRI3. Quando elementos TRI6 sao utilizados,
o LCD apresenta melhor desempenho com 10 vetores no restart. Observa-se tambem para esta
malha que o tempo de processamento do metodo LCD aumenta quando o numero de vetores
na base cresce, embora haja uma diminuicao no numero de iteracoes lineares. Comparando os
tres metodos e possıvel observar, em termos de tempo de processamento e numero de iteracoes
lineares, que o metodo Bi-CGSTAB apresenta os melhores resultados. Alem disso, quando
comparado ao melhor desempenho do metodo GMRES, o Bi-CGSTAB chega a ser 3.5 vezes
mais rapido para elementos do tipo TRI6. Considerando o metodo LCD, o Bi-CGSTAB e apro-
ximadamente 3.2 vezes mais rapido para elementos TRI6. Comparando os metodos GMRES e
LCD, o LCD apresenta melhores resultados na maioria dos casos.
Tabela 5.2: Problema de conveccao-difusao - Desempenho dos metodos GMRES, LCD and
Bi-CGSTAB - Malha 128 128 celulas
GMRES
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
5 6.389 1282 285.350 10000
10 3.928 700 46.947 1654
20 1.874 303 38.098 1206
30 1.401 198 37.073 1038
40 1.253 153 40.227 1003
LCD
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
5 1.201 172 36.634 973
10 1.260 156 33.907 770
20 1.447 134 42.410 712
30 1.797 134 41.373 546
40 2.134 133 48.659 535
Bi-CGSTAB
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
0.722 86 10.391 218
Para a malha com 256 256 celulas, Tabela 5.3, o melhor desempenho do metodo GM-
RES para os dois tipos de elemento ocorreu quando 40 vetores sao utilizados para o restart.
58
Para o metodo LCD, o menor tempo de processamento ocorre quando 5 vetores sao utiliza-
dos, para elementos do tipo TRI6, e quando 10 vetores sao utilizados, para elementos do tipo
TRI6. Tambem neste caso, e possıvel observar que no metodo LCD o numero de iteracoes
diminui quando aumentamos o numero de vetores na base, no entanto, o tempo de processa-
mento aumenta. Comparando os tres metodos em termos do tempo de processamento e numero
de iteracoes lineares, o metodo Bi-CGSTAB apresenta os melhores resultados. Alem disso, o
metodo Bi-CGSTAB chega a ser 5 vezes mais rapido que o GMRES para elementos do tipo
TRI6. No caso do metodo LCD e elementos do tipo TRI3, o metodo Bi-CGSTAB e 4 quatro
vezes mais rapido. Comparando os metodos LCD e GMRES, e possivel perceber que o metodo
LCD apresentou melhores resultados para os dois tipos de elementos triangulares.
Tabela 5.3: Problema de conveccao-difusao - Desempenho dos metodos GMRES, LCD and
Bi-CGSTAB - Malha 256 256 celulas
GMRES
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
5 109.170 5037 1146.500 10000
10 57.673 2604 981.270 8657
20 36.202 1403 486.670 3843
30 24.504 812 464.290 3243
40 20.994 612 402.010 2506
LCD
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
5 10.124 328 321.540 2107
10 11.200 296 302.580 1718
20 13.349 251 362.570 1525
30 17.280 251 411.720 1368
40 21.277 251 506.690 1381
Bi-CGSTAB
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
5.387 150 77.983 407
A seguir, e apresentado nas Figuras 5.2, 5.3 e 5.4 o comportamento dos resıduos relati-
vos dos metodos iterativos considerando malhas com 64 64, 128 128 e 256 256 celulas,
respectivamente. Para os metodos GMRES e LCD foram utilizados 40 vetores para o restart.
Observe que o comportamento do resıduo em todos os casos e similar. Os resıduos relativos nos
metodos LCD e GMRES decrescem mais lentamente que o resıduo no metodo Bi-CGSTAB. O
numero de iteracoes e menor no metodo Bi-CGSTAB, e o metodo LCD converge com menos
59
iteracoes que o metodo GMRES. Como o numero de iteracoes do metodo LCD e bem menor
que no metodo GMRES, foi possıvel obter a convergencia do metodo LCD em um tempo menor
de processamento. Esse comportamento ja havia sido comprovado na Tabela 5.3.
Para finalizar a analise nesse exemplo, foi calculado o custo computacional dominante nos
metodos iterativos considerando 40 vetores para o restart. Para isso, foi medido o tempo de pro-
cessamento na malha com 256 256 celulas, considerando elementos TRI3 e TRI6, conforme
mostrado na Tabela 5.4. Como pode ser observado, o precondicionamento e a tarefa que requer
o maior esforco computacional nos metodos Bi-CGSTAB e GMRES. No metodo Bi-CGSTAB
esse custo chega proximo a 50%, e no metodo GMRES essa operacao e apenas um pouco mais
cara que o produto interno. Em relacao a operacao produto matriz-vetor, o custo computacional
nesses dois metodos tambem e significativo. No metodo LCD, o produto interno e a operacao
de maior custo, sendo o produto matriz-vetor a operacao que consome o menor tempo de CPU
quando comparada com as outras operacoes.
Tabela 5.4: Problema de conveccao-difusao - Custo das operacoes - Malha 256 256 celulas
GMRES(40) TRI3 TRI6
Operacoes Temp. CPU custo(%) temp. CPU custo (%)
Produto Interno 5.017 23.9 81.199 20.2
Matriz-Vetor 2.944 14.0 65.166 16.2
Precondicionador 5.228 24.9 125.060 31.1
LCD(40) TRI3 TRI6
Operacoes Temp CPU custo(%) Temp. CPU custo(%)
Produto Interno 7.291 34.26 145.710 28.75
Matriz-Vetor 1.159 5.40 35.588 7.00
Precondicionador 2.193 10.30 69.130 13.60
Bi-CGSTAB TRI3 TRI6
Operacoes Temp. CPU custo(%) Temp. CPU custo(%)
Produto Interno 0.319 5.9 3.561 4.5
Matriz-Vetor 1.379 25.6 20.375 26.1
Precondicionador 2.480 46.0 39.686 50.9
5.1.2 Problema de conveccao dominante
Considere o problema de transporte de um escalar em um domınio quadrado unitario, usado
em Brooks e Hughes [19] para demostrar a eficiencia da formulacao SUPG na resolucao de
problemas de conveccao dominante. O velocidade e constante ( β 1) e sua direcao forma
um angulo de 45o com o eixo x, com condicoes de fronteira descontınuas na entrada e naturais
60
-12
-10
-8
-6
-4
-2
0
2
0 10 20 30 40 50 60 70
LCD(40)GMRES(40)BICGSTAB
-12
-10
-8
-6
-4
-2
0
2
0 50 100 150 200 250 300
LCD(40)GMRES(40)BICGSTAB
Figura 5.2: Problema de conveccao-difusao - Evolucao do resıduo (Iteracoes log r ) para
elementos TRI3 (esquerda) e TRI6 (direita), malha 64 64 celulas
-12
-10
-8
-6
-4
-2
0
2
0 20 40 60 80 100 120 140 160
LCD(40)GMRES(40)BICGSTAB
-12
-10
-8
-6
-4
-2
0
2
0 200 400 600 800 1000 1200
LCD(40)GMRES(40)BICGSTAB
Figura 5.3: Problema de conveccao-difusao - Evolucao do resıduo (Iteracoes log r ) para
elementos TRI3 (esquerda) e TRI6 (direita), malha 128 128 celulas
-12
-10
-8
-6
-4
-2
0
2
0 100 200 300 400 500 600 700
LCD(40)GMRES(40)BICGSTAB
-12
-10
-8
-6
-4
-2
0
2
0 500 1000 1500 2000 2500 3000
LCD(40)GMRES(40)BICGSTAB
Figura 5.4: Problema de conveccao-difusao - Evolucao do resıduo (Iteracoes log r ) para
elementos TRI3 (esquerda) e TRI6 (direita), malha 256 256 celulas
61
e homogeneas na saıda do domınio. A configuracao do problema com as condicoes de fronteira
esta apresentada na Figura 5.5.
Figura 5.5: Problema conveccao dominante - Condicoes de Contorno
Os coeficintes de difusividade na direcao x e y sao kx 10 7 e ky 10 7, respectiva-
mente, o que representa um numero de Peclet igual a Pe 10 7. O problema e predominan-
temente convectivo e a solucao e essencialmente uma adveccao pura. A solucao ”exata”e a
adveccao das condicoes de fronteira na entrada do domınio na direcao do fluxo. Os parametros
de estabilizacao para a formulacao SUPG foram determinados como em [19]. O objetivo nesse
exemplo e verificar o comportamento e a eficiencia computacional dos metodos GMRES, LCD
e Bi-CGSTAB em resolver um problema com conveccao dominante.
Como no problema de conveccao-difusao anterior, o domınio foi discretizado em elemen-
tos triangulares lineares (TRI3) e elementos triangulares quadraticos (TRI6), em malhas com
64 64, 128 128 e 256 256 celulas, e estas, por sua vez, subdivididas em dois triangulos.
Novamente, em todos os testes realizados foi considerado uma tolerancia residual relativa de
10 10 para os metodos iterativos. As Tabelas 5.5, 5.6 e 5.7 apresentam o tempo de proces-
samento (em segundos) e o numeros de iteracoes para resolver o problema em cada uma das
malhas consideradas.
Na Tabela 5.5, e possıvel observar que, para a malha com 64 64 celulas e para os dois
tipos de elementos triangulares, o melhor desempenho dos metodos GMRES e LCD ocorre
quando 5 vetores no restart foram usados. O metodo Bi-CGSTAB apresentou o menor tempo
de processamento para os dois tipos de elementos, embora a diferenca com os outros metodos
nao tenha sido tao significativa. Alem disso, em termos de numeros de iteracoes para a con-
vergencia, o metodo Bi-CGSTAB convergiu mais rapidamente.
62
Tabela 5.5: Problema conveccao-dominante - Desempenho computacional dos metodos GM-
RES, LCD e Bi-CGSTAB - Malha 64 64 celulas
GMRES
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
5 0.0133 9 1.2346 191
10 0.0136 9 1.5545 245
20 0.0136 9 2.2368 318
30 0.0138 9 2.9626 357
40 0.0137 9 3.9747 448
LCD
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
5 0.0170 9 1.6385 201
10 0.0192 9 2.2120 241
20 0.0210 9 3.5356 306
30 0.0227 9 5.2376 368
40 0.0243 9 6.0189 354
Bi-CGSTAB
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
0.0130 5 1.0069 97
Para a malha 128 128 celulas e para os dois tipos de elementos, Tabela 5.6, o melhor de-
sempenho dos metodos GMRES e LCD ocorreu, mais uma vez, quando 5 vetores foram usados
para o restart. O metodo GMRES produziu o menor custo computacional para todos os casos.
O metodo Bi-CGSTAB apresentou convergencia mais rapida e obteve melhores resultados que
o metodo LCD para os dois elementos usados.
Para a malha 256 256 celulas e para os dois tipos de elementos, Tabela 5.7, o melhor
desempenho dos metodos GMRES e LCD tambem ocorreu quando foram utilizados 5 vetores
para o restart. O melhor desempenho para elementos triangulares lineares pertence ao metodo
GMRES. Entretanto, para elementos triangulares quadraticos, o Bi-CGSTAB nao convergiu.
Com relacao os numero de iteracoes para a convergencia, o metodo Bi-CGSTAB convergiu
mais rapidamente somente para elementos do tipo TRI3. O metodo LCD apresentou o menor
numero de iteracoes para a convergencia quando elementos TRI6 foram usados.
As Figuras 5.6, 5.7 e 5.8 apresentam o comportamento dos resıduos relativos para os ele-
mentos dos tipos TRI3 e TRI6, usando 5 vetores para o restart e malhas com 64 64, 128 128
e 256 256 celulas, respectivamente. Como pode ser observado nas Figuras 5.6 e 5.7, o com-
63
Tabela 5.6: Problema conveccao-dominante - Desempenho dos metodos GMRES, LCD e Bi-
CGSTAB - Malha 128 128 celulas
GMRES
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
5 0.0589 9 8.3921 325
10 0.0613 9 10.4350 374
20 0.0654 9 14.8560 480
30 0.0662 9 19.7290 564
40 0.0661 9 25.5620 657
LCD
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
5 0.0727 9 10.8750 327
10 0.0867 9 18.1330 430
20 0.0919 9 27.9690 481
30 0.1004 9 41.0070 569
40 0.1037 9 58.1420 664
Bi-CGSTAB
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
0.0617 5 9.8254 217
portamento dos resıduos para as diferentes malhas e similar. Para elementos do tipo TRI3, o
decaimento do resıduo relativo nos metodos GMRES e LCD e praticamente o mesmo. Ja no
metodo Bi-CGSTAB, o resıduo decai mais rapidamente e o metodo converge com um numero
menor de iteracoes. Apesar do menor numero de iteracoes para a convergencia do metodo Bi-
CGSTAB, foi observado anteriormente que o metodo GMRES converge em um tempo de pro-
cessamento menor. Para elementos do tipo TRI6, o metodo Bi-CGSTAB apresenta oscilacoes
no comportamento do resıduo. No inıcio do processo, o resıduo chega a crescer, entretanto,
apos algum tempo, o resıduo cai abruptamente. Para a malha com 256 256 celulas, o metodo
Bi-CGSTAB divergiu. O resıduo do metodo LCD decai mais rapidamente que o resıduo do
metodo GMRES, apesar do tempo de processamento do LCD ser maior.
Finalmente, a Tabela 5.8 mostra o custo das operacoes que demandam maior tempo com-
putacional na resolucao dos sistemas lineares, o produto interno, o produto matriz-vetor e o
precondicionamento. A analise e feita para a malha com 128 128 celulas. Para este exemplo,
o precondicionamento foi a tarefa de maior custo para todos os metodos, seguido pelo pro-
duto matriz-vetor e pelo produto interno. Esse comportamento e principalmente afetado pelo
pequeno numero de vetores do restart usados. O precondicionamento representa em torno de
64
-12
-10
-8
-6
-4
-2
0
2
0 1 2 3 4 5 6 7 8 9
LCD(5)GMRES(5)BICGSTAB
-10
-8
-6
-4
-2
0
2
4
6
0 50 100 150 200 250
LCD(5)GMRES(5)BICGSTAB
Figura 5.6: Problema conveccao-dominante - Evolucao do resıduo (Iteracoes log r ) para
elementos TRI3 (esquerda) e TRI6 (direita) - Malha 64 64 celulas
-10
-8
-6
-4
-2
0
2
0 1 2 3 4 5 6 7 8 9
LCD(5)GMRES(5)BICGSTAB
-10
-8
-6
-4
-2
0
2
4
6
0 50 100 150 200 250 300 350
LCD(5)GMRES(5)BICGSTAB
Figura 5.7: Problema conveccao-dominante - Evolucao do resıduo (Iteracoes log r ) para
elementos TRI3 (esquerda) e TRI6 (direita) - Malha 128 128 celulas
-10
-8
-6
-4
-2
0
2
4
0 1 2 3 4 5 6 7 8 9
LCD(5)GMRES(5)BICGSTAB
-8
-6
-4
-2
0
2
4
6
8
0 100 200 300 400 500 600 700
LCD(5)GMRES(5)BICGSTAB
Figura 5.8: Problema conveccao-dominante - Evolucao do resıduo (Iteracoes log r ) para
elementos TRI3 (esquerda) e TRI6 (direita) - Malha 256 256 celulas
65
Tabela 5.7: Problema conveccao-dominante - Desempenho dos metodos GMRES, LCD e Bi-
CGSTAB - Malha 256 256 celulas
GMRES
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
5 0.2583 9 73.0730 669
10 0.2910 9 74.6930 630
20 0.2911 9 96.4150 736
30 0.2924 9 124.7100 852
40 0.2929 9 147.6500 900
LCD
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
5 0.3237 9 77.6930 545
10 0.4038 9 110.2200 610
20 0.4240 9 178.4600 737
30 0.4467 9 247.9700 813
40 0.4703 9 311.5000 844
Bi-CGSTAB
TRI3 TRI6
Vetor Temp. CPU Iter. Temp. CPU Iter.
0.2795 5 div div
40% do custo total em todos os metodos, ja o produto interno tem um custo menor nos metodos
GMRES e Bi-CGSTAB, quando comparado com o metodo LCD.
5.1.3 Principais conclusoes
Nessa secao foi discutido o desempenho dos metodos GMRES, Bi-CGSTAB e LCD in-
cluıdo na biblioteca . Para todos os metodos, foi usado o precondicionador ILU(0).
Foram resolvidos um problema de conveccao-difusao e um problema de conveccao dominante
implementados na biblioteca ibMesh.
No primeiro problema, o melhor desempenho dos metodos GMRES e LCD ocorrem quando
40 e 10 vetores foram usados para o restart, respectivamente. Bi-CGSTAB apresentou os me-
lhores resultados em termos de tempo de processamento. Dependo do tipo de elemento usado,
o metodo Bi-CGSTAB chega a ser ate 5 vezes mais rapido que o GMRES e LCD. Comparando
os metodos LCD e GMRES, o LCD apresentou melhores resultados na maioria dos casos. Para
o caso com 40 vetores no restart, o precondicionamento e a tarefa de maior custo computa-
cional nos metodos GMRES e Bi-CGSTAB. Ja no metodo LCD, o produto interno e a tarefa
66
Tabela 5.8: Problema conveccao-dominante - Custo computacional - Malha 128 128 celulas
GMRES(5) TRI3 TRI6
Operacoes Temp. CPU custo(%) Temp. CPU custo(%)
Produto Interno 0.00233 3.5 0.3780 4.27
Matriz-Vetor 0.01138 17.3 2.3727 26.80
Precondicionador 0.02700 41.0 4.2993 48.60
LCD(5) TRI3 TRI6
Operacoes Temp. CPU custo(%) Temp. CPU custo(%)
Produto Interno 0.00704 9.6 1.6585 14.30
Matriz-Vetor 0.01266 17.3 2.2829 19.70
Precondicionador 0.02146 41.0 4.3327 37.45
Bi-CGSTAB TRI3 TRI6
Operacoes Temp. CPU custo(%) Temp. CPU custo(%)
Produto Interno 0.00213 3.4 0.4367 4.6
Matriz-Vetor 0.01708 27.1 2.5359 26.8
Precondicionador 0.02648 35.9 4.7840 50.6
de maior custo. O resıduo relativo nos metodos LCD e GMRES decai mais devagar que no
metodo Bi-CGSTAB e o metodo LCD converge com um numero menor de iteracoes que o
metodo GMRES.
O segundo teste numerico e um problema de conveccao dominante. Neste caso, tanto o
GMRES quanto o LCD apresentaram melhores desempenhos quando 5 vetores foram usados
para o restart. O GMRES apresentou os melhores resultados para todos os casos. Para 5 vetores
no restart, o precondicionador foi a terefa de maior custo em todos os casos, seguido pelo
produto-matriz-vetor e pelo produto interno. A causa desse comportamento e principalmente
devido ao numero de vetores no restart usados. Os resıduos relativos nos metodos GMRES e
LCD sao similares e o metodo Bi-CGSTAB converge com um numeros menor de iteracoes,
exceto para a malha 256 256 e elementos triangulares quadraticos no qual houve divergencia.
5.2 Adaptatividade
O objetivo dessa secao e analisar o desempenho computacional do algoritmo de selecao do
passo no tempo quando aplicado a problemas que utilizam o processo de refinamento adaptativo
de malhas AMR. Dois problemas bastante conhecidos foram implementados e analisados. O
primeiro problema trata do escoamento sobre uma cavidade quadrada (lid driven cavity flow)
e o segundo problema consiste no escoamento com alargamento de canal (backward facing
step flow). Ambos constituem excelentes testes de validacao e sao amplamente utilizados na
67
literatura.
5.2.1 Problema da cavidade
O problema da cavidade e provavelmente um dos problemas mais estudados na dinamica
dos fluidos computacional. E possivel encontrar diversos trabalhos da literatura que utilizam
o problema em testes de novas formulacoes numericas, validacao quanto a precisao, eficiencia
numerica, condicoes de contorno, etc [87, 13, 44]. O escoamento e induzido pelo movimento
de deslizamento da parede do topo da cavidade, gerando recirculacoes no seu interior. A Figura
5.9 apresenta o problema definido no domınio quadrado Ω 0 1 0 1 e suas condicoes de
fronteiras. No topo da cavidade (y 1 0), a condicao de fronteira e dado por u u x e v 0.
Figura 5.9: Problema da cavidade - Condicoes de fronteira
Nos outros lados, u e v sao nulos. Para evitar singularidades nas condicoes de contorno, foi
utilizado uma distribuicao para a velocidade u presente em Prabhakar e Reddy [72], dada por
u x
tanhαx para 0 x 0 5
tanhα x 1 para 0 5 x 1 0(5.4)
com α 0. Nesse estudo e adotado α 100 por dar uma transicao suave entre u 0 e u 1 0,
proximo das paredes laterais da cavidade. Essa transicao pode ser visualizada na Figura 5.10.
Em todos os testes realizados, o metodo de solucao de sistema linear utilizado foi o GMRES
com 30 vetores para o restart e tolerancia relativa de 10 6, aplicado com o precondicionador
ILU(1). A tolerancia para o processo nao linear e de 10 4. Para a verificacao do regime per-
manente foi utilizado o erro relativo da energia cinetica com tolerancia 10 4, ou seja, dada por,
68
0
0.2
0.4
0.6
0.8
1
0 0.2 0.4 0.6 0.8 1
u
x
Figura 5.10: Distribuicao da velocidade u no topo da cavidade
ke n ke n 1 10 4 ken , onde ke e a energia cinetica dada por
ke
Ω
u2 v2
2dΩ (5.5)
com u e v sendo as componentes horizontal e vertical da velocidade. Os testes foram realizados
com dois numeros de Reynolds, 200 e 1000. Na discretizacao por elementos finitos, as veloci-
dades sao aproximadas por elementos triangulares quadraticos (TRI6), e a pressao e aproximada
por elementos triangulares lineares (TRI3).
Sao considerandos dois tipos de procedimentos, um com malha fixa e outro com malha
adaptativa. Para Reynolds 200, e utilizada uma malha fixa com 40 40 celulas com dois
elementos triangulares por celulas, totalizando 6561 nos e 3200 elementos. Para o esquema
adaptativo, e considerada malha inicial dividida em 20 20 celulas com dois elementos trian-
gulares por celula, aplicada a um nıvel de refinamento uniforme, gerando assim, uma malha
com 6561 nos e 3200 elementos. As fracoes Pr e Pc do AMR sao 0.3 e 0.01, respectivamente. O
limite maximo de refinamento considerado e de um nıvel. Por simplicidade e usada a notacao
AMR(20 20,1,0.3,0.01,1), indicada na Secao 4.1, para representar esses parametros.
Para Reynolds 1000, e utilizada uma malha fixa com 80 80 celulas com dois elementos
triangulares por celulas, totalizando 25921 nos e 12800 elementos. Com AMR, a malha inicial
e dividida em 20 20 celulas com dois elementos triangulares por celula considerando dois
nıveis de refinamentos uniformes, resultando numa malha com 80 80 celulas. Para o refina-
mento, as fracoes Pr e Pc sao mantidas com os mesmos valores anteriores, alterando apenas o
numero maximo de refinamentos de um para dois nıveis. Para esse caso, e utilizada a notacao
AMR(20 20,2,0.3,0.01,2) para referencias posteriores.
69
Para validacao da implementacao desenvolvida nesse trabalho, foi utilizado os resultados
apresentados por Erturk et al. em [44] para Reynolds 1000. A Figura 5.11 apresenta os perfis
das velocidades horizontal e vertical no centro geometrico da cavidade para Reynolds 200. Em
cada figura, quatro casos foram analisados: malha fixa sem PID, malha fixa com PID, AMR sem
PID e AMR com PID. Percebe-se que as curvas de u e v, nos quatro casos, sao praticamentes
coincidentes. Analisando a Figura 5.12, referente a solucao para Reynolds 1000, os resultados
obtidos aqui apresentam uma perfeita conformidades com os resultados obtidos em [44]. Isso
tanto vale para as solucoes obtidas usando malha fixa e AMR sem utilizar o controlador PID,
como tambem as solucoes obtidas com o PID.
O comportamento do controlador PID e analizado considerando o passo inicial no tempo
∆tini 1. Para isso, foram utilizados os seguintes parametros: ∆tmin ∆tini, ∆tmax 5, ∆tprev
1, KP 0 075, KI 0 175, KD 0 01 e tolerancia 0.1. Para os testes com passo fixo e adotado
∆t 1. As Tabelas 5.9 e 5.10 apresentam um comparativo de desempenho do metodo de selecao
adaptativa do passo no tempo para numeros de Reynolds 200 e 1000, usando malha fixa e AMR,
respectivamente. Nas tabelas estao apresentados: o numero de iteracoes nao lineares (NLI), o
numero de iteracoes lineares (LI), o tempo de processamento do metodo linear (CPUgmres) me-
dido em segundos, o tempo de processamento do refinamento (CPUre f ) medido em segundos,
o esforco computacional (CPUe f f ort) e o valor maximo das linhas de corrente (ψ). O esforco
computacional e definido pela razao entre o tempo de processamento (CPUgmres) para o obter a
solucao com passo fixo e o tempo de processamento (CPUgmres) usando o PID.
Na Tabela 5.9, e possivel perceber que, para os dois numeros de Reynolds considerados, o
metodo de selecao adaptativa no tempo usando PID apresentou desempenho superior ao metodo
com passo fixo. Para Reynolds 200, houve uma reducao de 20% no esforco computacional,
como tambem, uma reducao no numero de iteracoes nao-lineares e lineares. Observe que os
valores maximos das linhas de correntes obtidos com passo fixo e PID sao identicos neste
caso. Para Reynolds 1000, nao houve diferenca no comportamento das solucoes. O metodo
usando PID reduziu o esforco computacional em quase 30%, como tambem, reduziu o numero
de iteracoes nao-lineares e lineares. Nesse caso, as linhas de corrente, tambem foram compa-
radas com os resultados obtidos por Erturk et al. [44]. Para Reynolds 1000, o valor maximo
obtido pelas linhas de corrente para uma malha com 401 401 celulas e ordem de aproximacao
espacial quadratica e 0.118585, comprovando a boa aproximacao obtida pelo PID.
Na Tabela 5.10 e apresentado o desempenho do PID para o procedimento com malha adap-
tativa e os dois numeros de Reynolds estudados. O procedimento adaptativo, por si so, ja
constribuiu na melhoria do desempenho. Comparando os resultados da malha fixa com AMR
70
0
0.2
0.4
0.6
0.8
1
1.2
-0.4 -0.2 0 0.2 0.4 0.6 0.8 1
x
u
Malha Fixa (40x40)-Sem PIDMalha Fixa (40x40)-Com PID
AMR(20x20,1,0.3,0.01,1)-Sem PIDAMR(20x20,1,0.3,0.01,1)-Com PID
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0 0.2 0.4 0.6 0.8 1v
y
Malha Fixa (40x40)-Sem PIDMalha Fixa (40x40)-Com PID
AMR(20x20,1,0.3,0.01,1)-Sem PIDAMR(20x20,1,0.3,0.01,1)-Com PID
Figura 5.11: Problema da cavidade - Reynolds 200 - Perfil das velocidades u (esquerda) e v
(direita) no centro geometrico da cavidade - malha Fixa (40 40) e AMR(20 20,1,0.3,0.01,1)
- com e sem PID
0
0.2
0.4
0.6
0.8
1
1.2
-0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
y
u
Malha Fixa(80x80)-Sem PIDMalha Fixa(80x80)-Com PID
AMR(20x20,2,0.3,0.01,2)-Sem PIDAMR(20x20,2,0.3,0.01,2)-Com PID
Erturk
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0 0.2 0.4 0.6 0.8 1
v
x
Malha Fixa(80x80)-Sem PIDMalha Fixa(80x80)-Com PID
AMR(20x20,2,0.3,0.01,2)-Sem PIDAMR(20x20,2,0.3,0.01,2)-Com PID
Erturk
Figura 5.12: Problema da cavidade - Reynolds 1000 - Perfil das velocidades u (esquerda) e v
(direita) no centro geometrico da cavidade - malha Fixa (80 80) e AMR(20 20,2,0.3,0.01,2)
- com e sem PID
71
Tabela 5.9: Problema da cavidade - Desempenho do PID para a malha fixa
Reynolds 200 - Malha Fixa 40 40
NLI LI CPUgmres CPUe f f ort ψ
Passo Fixo 95 1587 77.694 1.0 0.10872
Com PID 55 1395 62.907 0.81 0.10872
Reynolds 1000 - Malha Fixa 80 80
NLI LI CPUgmres CPUe f f ort ψ
Passo Fixo 218 6627 964.115 1.0 0.11877
Com PID 102 6280 664.085 0.69 0.11869
usando passo fixo, houve uma reducao de 55% do custo computacional para Reynolds 200 e ate
85% para Reynolds 1000. Na implementacao conjugada dos metodos AMR e PID, mais uma
vez, o metodo implementado com PID demostrou um melhor desempenho quando comparado
com o metodo com passo fixo. Nos testes realizados o custo computacional foi reduzido em
quase 25% para Reynolds 200 e 32% para Reynolds 1000. Alem disso, o numero das iteracoes
nao-lineares e lineares tambem foram reduzidos. Para Reynolds 200, o valor maximo das li-
nhas de correntes foram identicos, mas quando comparadas com os valores com malhas fixas,
houve uma pequena diferenca. Ja o valor maximo das linhas de corrente para Reynolds 1000
demonstrou estar de acordo com os valores encontrados em [44].
Tabela 5.10: Problema da cavidade - Desempenho do PID para a malha adaptativa
Reynolds 200 - AMR(20 20,1,0.3,0.01,1)
NLI LI CPUgmres CPUre f CPUe f f ort ψ
Passo Fixo 107 787 24.874 10.299 1.0 0.10868
Com PID 73 697 19.180 6.671 0.73 0.10868
Reynolds 1000 - AMR(20 20,2,0.3,0.01,2)
NLI LI CPUgmres CPUre f CPUe f f ort ψ
Passo Fixo 292 2531 110.279 37.9210 1.0 0.11877
Com PID 152 2408 80.789 20.046 0.68 0.11879
Figuras 5.13(a) e 5.13(b) mostram o comportamento da escolha do passo no tempo pelo
PID para Reynolds 200 e 1000, respectivamente. No inıcio do processo, o PID escolhe o valor
mınimo para o tamanho do passo, crescendo de acordo com o andamento da solucao em direcao
ao valor maximo permitido. Essa taxa de crescimento depende da tolerancia utilizada no contro-
lador PID. Tolerancias menores apresentam taxa de crescimento menores e tolerancias maiores
permitem escolhas de passos maiores, elevando a taxa de crescimento. A tolerancia utilizada
nesse exemplo para o controlador PID foi de 0.1 pois apresentou otimos resultados quando
72
comparados com tolerancias menores, sem que houvesse passos rejeitados.
1
2
3
4
5
6
0 5 10 15 20 25 30 35 40 45 50
Malha Fixa(40x40)AMR(20x20,1,0.3,0.01,1)
(a) Re=200
1
2
3
4
5
6
0 20 40 60 80 100 120 140
Malha Fixa(80x80)AMR(20x20,2,0.3,0.01,2)
(b) Re=1000
Figura 5.13: Problema da cavidade - Escolha do tamanho do passo ao longo do tempo para as
malhas fixa e AMR
As Figuras 5.14 e 5.15 mostram as malhas finais obtidas no processo de refinamento usando
passo fixo e PID, para os numeros de Reynolds 200 e 1000, respectivamente. Percebe-se que as
malhas obtidas pelo passo fixo sao praticamente identicas as malhas obtidas pelo PID. Consi-
derando o processo de refinamento, ve-se que as regioes mais refinadas corresponde aos cantos
superiores da cavidade, justamente devido a forte singularidade presente nessas regioes.
As Figuras 5.16 e 5.17 mostram as linhas de corrente para o problema da cavidade. Percebe-
se que, para Reynolds 200, ocorre a formacao do vortice nos cantos inferiores direito e o surgi-
mento de um vortice no canto superior esquerdo. Com o aumento do numero de Reynolds para
1000, esses vortices nos cantos inferiores estao presentes e o vortice principal se desloca para o
73
(a) Passo fixo (b) Com PID
Figura 5.14: Problema da cavidade - Reynolds 200 - Configuracao final da malha
(a) Passo fixo (b) Com PID
Figura 5.15: Problema da cavidade - Reynolds 1000 - Configuracao final da malha
centro da cavidade.
Finalmente, as Figuras 5.18(a) e 5.18(b) apresentam o comportamento da energia cinetica
ao longo do tempo para Reynolds 200 e 1000 considerando passo fixo e PID e tolerancia 10 4.
Para o passo fixo, tanto a implementacao com malha fixa quanto a implementacao com malha
adaptativa alcancaram o regime permanente por volta de 30 segundos. Com o PID, esse tempo
foi elevado para 45 segundos, aproximadamente. Para Reynolds 1000, o regime permanente foi
alcancado num tempo pouco acima de 80 segundos quando foi usado passo fixo, como mostra a
Figura 5.19(a). Ja para o PID, mostrado na Figura 5.19(b), esse tempo atingiu valores proximos
a 120 segundos.
74
(a) Malha fixa com passo fixo (b) Malha fixa com PID
(c) AMR com passo fixo (d) AMR com PID
Figura 5.16: Problema da cavidade - Reynolds 200 - Linhas de corrente - Malha fixa e AMR
5.2.2 Problema do escoamento com alargamento do canal
Outro problema amplamente empregado nos testes de validacao e o problema do escoa-
mento com alargamento de canal (backward facing step) [46]. O problema caracteriza-se pelo
escoamento do fluido em um canal reto que abruptamente se alarga. A Figura 5.20 apresenta as
dimensoes geometricas e as condicoes de contorno para o problema do escoamento no domınio
retangular Ω 0 30 0 5 0 5 . O alargamento do canal, para esse problema, foi simulado
pelas condicao de contorno presentes na parede lateral esquerda, dado pela equacao abaixo.
u x
0 0 para 0 5 x 0 0
24y 1 y para 0 0 x 0 5(5.6)
75
(a) Malha fixa com passo fixo (b) Malha fixa com PID
(c) AMR com passo fixo (d) AMR com PID
Figura 5.17: Problema da cavidade - Reynolds 1000 - Linhas de corrente - Malha fixa e AMR
76
0.01
0.015
0.02
0.025
0.03
0.035
0.04
0.045
0 5 10 15 20 25 30
Malha Fixa 40x40AMR(20x20,1,0.3,0.01,1)
(a) Passo fixo
0.01
0.015
0.02
0.025
0.03
0.035
0.04
0.045
0 5 10 15 20 25 30 35 40 45 50
Malha Fixa 40x40AMR(20x20,1,0.3,0.01,1)
(b) Com PID
Figura 5.18: Problema da cavidade - Reynolds 200 - Verificacao do regime permanente - tempo
vs. energia cinetica
77
0
0.01
0.02
0.03
0.04
0.05
0 10 20 30 40 50 60 70 80 90
Malha Fixa 80x80AMR(20x20,2,0.3,0.01,2)
(a) Passo fixo
0
0.01
0.02
0.03
0.04
0.05
0 20 40 60 80 100 120 140
Malha Fixa 80x80AMR(20x20,2,0.3,0.01,2)
(b) Com PID
Figura 5.19: Problema da cavidade - Reynolds 1000 - Verificacao do regime permanente - tempo
vs. energia cinetica
78
Com essa condicao, a velocidade maxima do fluido que entra no canal e umax 1 5. Para esse
estudo, o numero de Reynolds considerado e 800.
Figura 5.20: Problema do escoamento com alargamento do canal - Condicoes de fronteira
Como no experimento anterior, o metodo de solucao do sistema linear e GMRES(30) com
tolerancia relativa de 10 6 e precondicionador ILU(1). A tolerancia para o processo nao li-
near e de 10 4. Da mesma forma, as velocidades sao aproximadas por elementos triangulares
quadraticos (TRI6) e a pressao por elementos triangulares lineares (TRI3). A malha fixa uti-
lizada e dividida uniformemente em 128 16 celulas com dois elementos por celula, gerando
8481 celulas e 2048 elementos. Para o esquema adaptativo, a malha inicial e de 64 8 celulas
aplicado a um nıvel de refinamento uniforme, gerando uma malha de 128 16 celulas e com
numeros de nos e elementos identicos a malha fixa. As fracoes Pr e Pc do AMR sao 0.3 e 0.01,
respectivamente. O limite maximo de refinamento considerado no processo de refinamento e
de um nıvel. A implementacao com PID neste teste considera como passo inicial no tempo
∆tini 0 025 e nos testes com passo fixo ∆t 0 025. Os outros parametros estao configura-
dos da seguinte forma: ∆tmin ∆tini, ∆tmax 0 5, ∆tprev 0 025, KP 0 075, KI 0 175,
KD 0 01 e tolerancia 0 25 10 3.
Tabela 5.11 compara o desempenho computacional do PID com o esquema de passo fixo,
nas implementacoes com malhas fixa e adaptativa AMR. Analisando os resultados com malha
fixa, percebe-se uma reducao no numero de iteracoes nao-lineares e um aumento nas iteracoes
lineares. Entretanto, isso nao refletiu na deterioracao do tempo de processamento. A implementacao
com PID conseguiu reduzir o custo em cerca de 50%, quando comparado com a implementacao
com passo fixo. No desempenho computacional do PID com o esquema adaptivo, e possivel
perceber uma reducao de aproximadamente de 70% com relacao ao esquema com passo fixo,
alem de uma consideravel reducao do numero de iteracoes nao-lineares e lineares.
As escolhas do passo do tempo feitas pelo PID, para as malhas fixas e adaptativas, estao
apresentadas nas Figuras 5.21(a) e 5.21(b). Para a malha fixa, a curva apresenta um compor-
tamento mais suave. No inıcio do processo, o PID nao permite um aumento no passo, porem,
79
Tabela 5.11: Problema do escoamento com alargamento do canal - Desempenho do PID - Malha
Fixa -
Malha fixa 128 16
NLI LI CPUgmres CPUre f CPUe f f ort
Passo fixo 9660 30332 9616.00 - 1.0
Com PID 5692 30650 4408.06 - 0.46
AMR(64 8,1,0.3,0.01,1)
NLI LI CPUgmres CPUre f CPUe f f ort
Passo Fixo 13208 53608 7576.38 2803.11 1.0
Com PID 3390 34649 2097.15 593.48 0.26
conforme a solucao vai se estabilizando, passos maiores sao dados ate atingir o valor maximo
de 0.5. Para o esquema com AMR, as escolhas apresentaram grandes oscilacoes pois o ta-
manho maximo do passo no tempo foi limitado em 0.5 para um melhor desenvolvimento da
malha adaptativa AMR. Apesar da oscilacoes presentes, o esquema PID nao rejeitou nenhum
dos passos no tempo.
Para analisar o processo de refinamento e seus efeitos com a utilizacao do PID, a Figura
5.22 mostra a quantidades de nos na malha ao longo do tempo considerando passo fixo e PID.
Durante as primeiras iteracoes, quando a solucao ainda nao se encontra no regime permanente,
o numero de nos da malha adaptativa com passo fixo e PID oscila bastante. Com o passar do
tempo, a quantidade de nos diminuiu lentamente. Isso devido ao processo de desrefinamento
que atua nas regioes onde a solucao nao altera consideravelmente, mantendo a malha refinada
apenas na regiao proxima ao alargamento do canal. Observar-se tambem que a medida que a
solucao caminha em direcao ao regime permanente, a quantidade de nos vai se estabilizando. Na
implementacao do AMR com passo fixo, inicialmente tem-se 8481 nos na malha. No final do
processo, esse numero fica um pouco abaixo da metade, com 3745 nos. Ja para a implementacao
com AMR e PID, a malha inicial com 8481 nos fica reduzida a 3639 nos, uma diferenca de 106
nos em relacao a malha obtida sem o PID. As Figuras 5.23(a) e 5.23(b) mostram a configuracao
final da malha para os casos AMR com passo fixo e AMR e PID.
Embora haja uma diferenca entre as malhas adaptativas finais obtidas com e sem o PID,
a analise das solucoes apresentadas a seguir demostram que o esquema PID implementado
com o AMR apresentou excelentes resultados com boa acuracia. As Figuras 5.24(a) e 5.24(b)
apresentam o perfil da componente horizontal da velocidade nos pontos x 7 5 e x 15 0,
respectivamente, considerando a implementacao com malha fixa. Em ambas figuras, as curvas
obtidas com e sem o PID sao coincidentes. O mesmo e valido para as implementacoes com
80
0
0.1
0.2
0.3
0.4
0.5
0 20 40 60 80 100 120
dt
Tempo
Malha Fixa
(a) Malha fixa
0
0.1
0.2
0.3
0.4
0.5
0 20 40 60 80 100 120
dt
Tempo
AMR(64x8,1,0.3,0.01,1)
(b) AMR
Figura 5.21: Problema do escoamento com alargamento do canal - Escolha do tamanho do
passo ao longo do tempo
81
3500
4000
4500
5000
5500
6000
0 20 40 60 80 100 120
Numero de nos
Tempo
AMR(64x8,1,0.3,0.01,1) - PIDAMR(64x8,1,0.3,0.01,1) - Passo fixo
Figura 5.22: Problema do escoamento com alargamento do canal - Numero de nos
(a) Passo fixo
(b) Com PID
Figura 5.23: Problema do escoamento com alargamento do canal - Configuracao final da malha
- AMR(64 8,1,0.3,0.01,1)
82
a malha adaptativa e os esquemas com passo fixo e PID, apresentadas nas Figuras 5.25(a) e
5.25(b), respectivamente.
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
-0.2 0 0.2 0.4 0.6 0.8 1 1.2
y
u
Malha Fixa(128x16)-Sem PIDMalha Fixa(128x16)-Com PID
(a) Velocidade u em x=7.5
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
y
u
Malha Fixa(128x16)-Sem PIDMalha Fixa(128x16)-Com PID
(b) Velocidade u em x=15
Figura 5.24: Problema do escoamento com alargamento do canal - Perfil da velocidade - Malha
fixa
As linhas de corrente para esse problema estao apresentas nas Figuras 5.26 e 5.27. As
linhas de corrente mostram que, para Reynolds 800, ocorre a formacao de um vortice na parede
inferior logo apos o enlargamento do canal. O fluxo principal de escoamento e deslocado para
baixo criando outro vortice na regiao superior do canal. Em todas as figuras, foi considerado
apenas a subregiao 0 x 15 0 do domınio, por ser a regiao onde os fenomenos essenciais do
problema acontecem. Para malha fixa, Figuras 5.26(a) e 5.26(b) mostram que o esquema com
83
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
-0.2 0 0.2 0.4 0.6 0.8 1 1.2
y
u
AMR(64x8,1,0.3,0.01,1)-Passo fixoAMR(64x8,1,0.3,0.01,1)-Com PID
(a) Velocidade u em x=7.5
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
y
u
AMR(64x8,1,0.3,0.01,1)-Passo fixoAMR(64x8,1,0.3,0.01,1)-Com PID
(b) Velocidade u em x=15
Figura 5.25: Problema do escoamento com alargamento do canal - Perfil da velocidade -
AMR(64 8,1,0.3,0.01,1)
PID apresenta excelentes resultados com relacao as linhas de corrente obtidas com passo no
tempo fixo. Comparando o valor maximo das linhas de corrente, a implementacao com malha
fixa e passo fixo fornece o valor 0.24654 enquanto que com PID o valor maximo e 0.24665. No
esquema com malha adaptativa, Figuras 5.27(a) e 5.27(b), o valor maximo das linhas de corrente
para passo fixo e 0.24668 e, para o caso com PID o valor obtido e de 0.24667, confirmando,
assim, um otimo desempenho dos esquemas AMR e PID.
O regime permanente nesse problema foi atingido proximo a 100 segundos, como mostrado
84
(a) Passo fixo
(b) Com PID
Figura 5.26: Problema do escoamento com alargamento do canal - Linhas de corrente - Malha
fixa
(a) Passo fixo
(b) Com PID
Figura 5.27: Problema do escoamento com alargamento do canal- Linhas de corrente -
AMR(64 8,1,0.3,0.01,1)
85
4
4.5
5
5.5
6
0 20 40 60 80 100 120
Energia Cinetica
Tempo
Malha Fixa - Passo FixoMalha Fixa - PID
(a) Passo fixo
4
4.5
5
5.5
6
0 20 40 60 80 100 120
Energia Cinˆ'tica
Tempo
AMR(64x8,1,0.3,0.01,1) - Passo fixoAMR(64x8,1,0.3,0.01,1) - PID
(b) Com PID
Figura 5.28: Problema do escoamento com alargamento do canal - Energia Cinetica
na Figura 5.28. Note que a curva se estabiliza quando a energia cinetica atinge o valor proximo
de 5.6 em todos os casos.
5.2.3 Principais conclusoes
Nessa secao foi analisado o desempenho computacional do algoritmo conjunto de selecao
do passo no tempo, que utiliza um controlador automatico PID, com o processo de refinamento
adaptativo de malhas AMR implementado na biblioteca ibMesh. Para isso, foram utilizados
dois problemas classicos encontrados na literatura, o problema da cavidade e o problema do
escoamento com alargamento de canal.
No primeiro problema, foram realizados testes para Reynolds 200 e 1000. Para Reynolds
86
200, as implementacoes utilizando malha fixa e PID conseguiram uma reducao de 20% nos
custos de processamento quando comparados com os custos obtidos com malha fixa e passo
fixo. Para Reynolds 1000, essa reducao alcancou 30%. Quando AMR e PID foram implemen-
tados simultaneamente, o metodo com PID demonstrou um melhor desempenho quando com-
parado com o metodo com passo fixo. Nos testes realizados o custo computacional foi reduzido
em quase 25% para um numero de Reynolds igual a 200 e 32% para Reynolds 1000. Para a
validacao da implementacao desenvolvida nesse trabalho, foi utilizado os resultados apresenta-
dos por Erturk et al. [44] para Reynolds 1000. Em todos os caso, a solucao obtida demostrou
estar de acordo com os valores encontrados em [44].
O segundo teste foi o problema do escoamento com alargamento de canal considerando um
numero de Reynolds igual a 800. Novamente, o PID foi testado tanto em malhas fixas quanto
em malhas adaptativas. No caso de malhas fixas, o custo computacional foi reduzido em 50%
quando comparado com a solucao com malha fixa e passo fixo. Considerando AMR e PID
esse custo foi reduzido em cerca de 70%. As solucoes foram comparadas entre si e todas elas
estao de acordo com os resultados encontrados na literatura. No caso do AMR, foi comparado
o numero de nos entre as malhas finais obtidas com passo fixo e PID. A malha com passo fixo
apresentou 106 nos a mais do que a malha obtida com PID, mas a solucao obtida com PID nao
apresentou perda de acuracia significativa.
6 Conclusao e Trabalhos Futuros
Neste trabalho foi realizado o estudo e a implementacao de tecnicas adaptativas, no espaco e
no tempo, para o metodo de elementos finitos tendo como suporte as ferramentas disponıveis
na biblioteca . As tecnicas adaptativas produziram bons resultados tanto nos aspectos
relacionados ao esforco computacional quanto na precisao das solucoes obtidas. Alem disso, o
metodo das direcoes conjugados a esquerda (LCD) foi incluıdo na biblioteca via uma
interface com a biblioteca PETSc. Para a adaptatividade no espaco, foi utilizado o processo
de refinamento encontrado na biblioteca ibMesh e, para a adaptatividade no tempo, foi imple-
mentado um algoritmo de selecao do passo no tempo baseado na teoria de controle PID. Para
testar a eficiencia das tecnicas adaptativas e o metodo LCD, foram implementados na biblioteca
ibMesh aplicacoes em regime permanente e transientes de problemas modelos encontrados na
literatura.
A utilizacao da biblioteca neste trabalho significou uma consideravel reducao no
esforco necessario ao desenvolvimento de uma plataforma em elementos finitos de algoritmos
adaptativos e em paralelo. Mais ainda, proporcionou um codigo menos susceptıvel a falhas de
codificacao, uma vez que a biblioteca foi extensamente testada. O desenvolvimento de algo-
ritmos de refinamento de malhas e uma tarefa bastante complexa pois envolve diversas etapas,
como por exemplo, o desenvolvimento de indicadores de erros e esquemas de projecoes, alem de
detalhes de projetos como a definicao de estruturas de dados adequadas. Com uso da biblioteca,
este trabalho focou principalmente na formulacao dos problemas e na analise dos resultados.
Alem disso, o paralelismo disponıvel na biblioteca permite extrair resultados de problemas de
grande porte com custo computacional reduzido. Entretanto, neste trabalho, o esforco ficou
concentrado nas aplicacoes voltadas para plataformas seriais.
O metodo LCD apresentou bons resultados para os dois problemas implementados na bi-
blioteca , um problema de conveccao-difusao e um problema de conveccao dominante.
Parte deste trabalho constituiu na implementacao do metodo LCD na biblioteca via
a biblioteca PETSc. O algoritmo implementado considera esquema de precondicionamento a
esqueda e suporta todos os precondicionadores existentes na biblioteca PETSc. Atualmente, o
88
metodo esta disponıvel para toda comunidade academica como parte da ultima versao da bibli-
oteca PETSc. Para verificar seu desempenho, o metodo LCD foi comparado com os metodos
GMRES e Bi-CGSTAB, ja presentes na biblioteca PETSc.
Para o problema conveccao-difusao apresentado na Secao 5.1, o metodo Bi-CGSTAB apre-
sentou o melhor desempenho entre os metodos estudados, tanto no tempo de processamento
quanto no numero de iteracoes realizadas, sendo seguido pelo LCD e GMRES. Entretanto, para
o problema de conveccao dominate, o Bi-CGSTAB nao apresentou um resultado tao bom, sendo
superado pelo GMRES. Foi visto que o desempenho dos metodos GMRES e LCD variam de
acordo com o numero de vetores utilizados no restart, e que, o melhor desempenho do LCD
ocorreu quando e usado um numero pequeno de vetores na base para o restart. Isso esta re-
lacionado, ao numero de operacoes do tipo produto-interno necessarias no metodo. Alem da
analise apresentada neste texto para os metodos de solucao de sistemas lineares baseados nos
subespacos de Krylov, foi estudado o efeito do reordenamento das variaveis na convergencia na
presenca de precondicionadores tipo ILU [27].
Os resultados obtidos na Secao 5.2 utilizaram o processo de refinamento adaptativo imple-
mentado na e puderam comprovar as vantagens da utilizacao de malhas adaptativas,
como a obtencao de solucoes mais precisas e com custo computacional mais baixo. O processo
de refinamento abordado utiliza a tecnica de subdivisao dos elementos, para o refinamento, e
restituicoes dos mesmos, para o processo de desrefinamento. A determinacao das regioes que
devem ser refinadas ou desrefinadas e realizada pelo indicador do erro baseado na norma da
energia do salto do fluxo que atravessa as faces dos elementos. Dois problemas foram imple-
mentados para testar as tecnicas adaptativas, o problema da cavidade e o problema de alar-
gamento de canal. Para isso, foi utilizada a formulacao padrao de Galerkin para as equacoes
transientes de Navier-Stokes para fluidos viscosos e incompressıveis, escolhendo-se espacos de
aproximacoes compatıveis com a LBB. O problema foi resolvido usando malhas fixas e adap-
tativas tanto no espaco quanto no tempo.
A algoritmo de selecao adaptativa do passo no tempo demonstrou eficiencia e robustez na
solucao dos dois problemas modelos. No problema da cavidade foram realizados testes para
Reynolds 200 e 1000, e o esforco computacional foi reduzido consideravelmente usando tanto
malha fixa e PID quanto refinamento adaptativo e PID. Por exemplo, para Reynolds 1000, as
implementacoes utilizando malha fixa e PID conseguiram uma reducao de 30% nos custos de
processamento quando comparadas com malha fixa e passo fixo. Quando AMR e PID foram
implementados simultaneamente, essa reducao alcancou 32% quando comparado com AMR e
passo fixo. Ale disso, a solucao obtida em todos os casos estavam de acordo com os valores
89
encontrados na literatura.
No problema de alargamento de canal para Reynolds 800 o mesmo comportamento foi
observado. No caso de malhas fixas, o custo computacional foi reduzido em 50% quando
comparado com a solucao com malha fixa e passo fixo. Considerando AMR e PID esse custo
foi reduzido em cerca de 70%. As solucoes foram comparadas entre si e todas estao de acordo
com os resultados encontrados na literatura. No caso do AMR, foi comparado o numero de nos
entre as malhas finais obtidas com passo fixo e PID. A malha com passo fixo apresentou 106
nos a mais do que a malha obtida com PID, mas a solucao obtida com PID nao apresentou perda
de acuracia significativa.
A implementacao do algoritmo do passo no tempo e bastante simples e os custos computa-
cionais do processo sao desprezıveis, uma vez que involvem apenas o armazenamento de alguns
vetores e o calculo de normas. No entanto, a sua utilizacao no processo adaptativo resultou em
algumas restricoes em relacao ao numero de refinamentos da malha em cada iteracao no tempo.
No algoritmo de refinamento com o PID, apenas um refinamento e permitido a cada passo no
tempo, pois dessa forma e possivel recuperar tanto a malha quanto a solucao no instante an-
terior, caso o passo seja rejeitado. Para um numero maior de refinamentos da malha em um
mesmo passo no tempo, um outro processo de rejeicao do passo necessita ser construıdo.
Como trabalhos futuros, podem ser listadas as seguintes sugestoes: (i) aprofundamento do
estudo do processo de selecao adaptativa do passo do tempo em conjunto com o processo de
refinamento de malha e sua utilizacao em outros problemas de interesse pratico, (ii) estudar e
implementar outros indicadores de erro mais adequados aos problemas de interesse, (iii) explo-
rar o paralelismo da biblioteca na resolucao de problemas tridimensionais envolvendo
multi-fısicas e multi-escalas, (iv) implementar na biblioteca problemas de interesse pratico,
como os problemas da industria do petroleo e meio ambiente; (v) estudar e aplicar tecnicas de
reordenamento para problemas 3D, (vi) comparar a versao do LCD implementada na biblio-
teca com a versao anterior proposta por Dai e Yuan [39], para verificar o custo das operacoes
de produto-interno em plataformas paralelas; (vii) implementar outros precondicionadores na
biblioteca .
90
Referencias Bibliograficas
[1] S. Adjerid and J. E. Flaherty. A moving mesh finite element method with local refinement
for parabolic partial differential equations. Compu. Methods Appl. Mech. Engrg., 55:3–26,
1986.
[2] G. Allen, W. Benger, T. Goodale, H.C. Hege, G. Lanfermann, A. Merzky, T. Radke, E. Sei-
del, and J. Shalf. The cactus code: A problem solving environment for the grid. In High
Performance Distributed Computing, pages 253–260, 2000.
[3] G.F. Carey A.M.P. Valli and A.L.G.A. Coutinho. Control strategies for timestep selection
in simulation of incompressible flows and coupled reaction-convection-diffusion proces-
ses. International Journal for Numerical Methods in Fluids, 47:201–231, 2005.
[4] K.J. Astrom and T. Hagglund. PID controllers: theory, designed, and tuning. Research
Triangle Park, NC: Instrum. Soc. Amer., 2nd edition, 1995.
[5] R. H. Stogner B. S. Kirk, J. W. Peterson and G. F. Carey. libmesh: A c++ library for
parallel adaptive mesh refinement/coarsenig. Engineering with Computers, (in press),
2006.
[6] I. Babuska. Error bounds for finite elements methods. Numer. Math., 16, 1971.
[7] S. Balay, W. D. Gropp, L. C. McInnes, and B. F. Smith. Efficienct management of pa-
rallelism in object oriented numerical software libraries. In E. Arge, A. M. Bruaset, and
H. P. Langtangen, editors, Modern Software Tools in Scientific Computing, pages 163–202.
Birkhauser Press, 1997.
[8] S. Balay, W. D. Gropp, L. C. McInnes, and B. F. Smith. Petsc home page.
http://www.mcs.anl.gov/petsc, 2001.
[9] S. Balay, W. D. Gropp, L. C. McInnes, and B. F. Smith. Petsc users manual. Technical
Report ANL-95/11 - Revision 2.1.5, Argonne National Laboratory, 2003.
[10] W. Bangerth. Using moderm features of C++ for adaptive finite element methods: dimen-
sional independent programming in deal.ii. In R Owens M Deville, editor, Proceedings of
the 16th IMACS World Congress 2000, 2000.
[11] W. Bangerth, R. Hartmann, and G. Kanschat. Differential Equations Analysis
Library, Technical Reference. .
[12] W. Bangerth and R. Rannacher. Adaptive Finite Element Methods for Differential Equati-
ons. Birkhauser Verlag, Switzerland, 2003.
[13] E. Barragy and G. F. Carey. Stream function-vorticity driven cavity flow using p finite
elements. Computers and Fluids, 26:453–468, 1997.
91
[14] E. Barragy and G.F. Carey. Stream function vorticity solution using high-p element-by-
element techniques. Communications in Numerical Methods in Engineering, 9:387–395,
1993.
[15] J.J. Barton and L.R. Nackman. Scientific and Enginnering C++: An introduction with
advanced techniques and examples. Addison Wesley, 1994.
[16] J. Blasco, R. Codina, and A. Huerta. A fractional step method for the incompressible
navier-stokes equations related to a predictor-multicorrector algorithm. Int. J. Numerical
Methods Fluids, 28:1391–1419, 1998.
[17] G.J. Borse. Numerical Methods with Matlab - A Resourse for Scientists and Engineers.
PWS Publishing Company, New York, NY, 1997.
[18] F. Brezzi. On the existence, uniqueness, and approximation of saddle-point problems
arising from lagrange multipliers. RAIRO, Anal. Numer., 8, 1974.
[19] A.N. Brooks and T.J.R. Hughes. Streamline Upwind/Petrov-Galerkin formulations for
convection dominated flows with particular emphasis on the incompressible Navier-Stokes
equations. Comput. Methods Appl. Mech. and Engrg., 32:199–259, 1982.
[20] K. Budge and J. Peery. Experience developing ALEGRA: A C++ coupled phisics fra-
mework. In C.R. Anderson M.E. Henderson and S.R. Lyons, editors, Object oriented
methods for interoperable scientific and engineering computing, 1996.
[21] P. M. Burrage and K. Burrage. A variable stepsize implementation for stochastic differen-
tial equations. SIAM J. Sci. Comput., 24(3):848–864, 2002.
[22] G.F. Carey and R. Krishnan. Penalty approximation of Stokes flow. Comput. Meths. Appl.
Mech. Engrg., 35:169–206, 1982.
[23] G.F. Carey and R. Krishnan. Penalty finite element methods for the Navier–Stokes equa-
tions. Comput. Meths. Appl. Mech. Engrg., 42:183–224, 1984.
[24] G.F. Carey and J.T. Oden. Finite Elements: Fluid Mechanics, volume 6. Prentice–Hall,
Inc., Englewood Cliffs, NJ, 1986.
[25] G.F. Carey, A. Pehlivanov, Y. Shen, and A. Base. Some questions concerning the least-
squares mixed navier-stokes problem. Technical report, TICOM, Austin, TX, 1994.
[26] Graham F. Carey. Computational Grids: generation, adaptation and solution strategies.
Taylor and Francis, Austin, 1997.
[27] L. Catabriga, J.J. Camata, A.M.P. Valli, A.L.G.A.Coutinho, and G.F. Carey. Reordering
effects on preconditioned krylov methods in amr solutions of flow and transport. In 7th
World Congress on Computational Mechanics, 2006.
[28] L. Catabriga, A.L.G.A. Coutinho, and L.P. Franca. Evaluating the lcd algorithm for sol-
ving linear systems of equations arising from implicit SUPG formulation of compressible
flows. International Journal for Numerical Methods in Engineering, 60:1513–1534, 2004.
92
[29] L. Catabriga, A.M.P. Valli, B.Z. Melotti, L.M. Pessoa, and A.L.G.A. Coutinho. Per-
formance of lcd iterative method in the finite element and finite difference solution of
convection-diffusion equations. Communications in Numerical Methods in Engineering,
22:643–656, 2006.
[30] A. Charafi and L.C. Wrobel. h-hierarchical functions for 2D and 3D BEM. Engineering
Analysis Boundary Elements, 16:341–349, 1995.
[31] R. Codina. A nodal-based implementation of a stabilized finite element method for in-
compressible flow problems. Int. J. Numerical Methods Fluids, 33:737–766, 2000.
[32] R. Codina. Pressure stability in fractional step finite element methods for incompressible
flows. Journal of Computational Physics, 170:112–140, 2001.
[33] R. Codina, E. Onate, and M. Cervera. The intrinsic time for the streamline upwind - pg
formulation using quadratic elements. Comput. Methods Appl. Mech. and Engrg., 94:239–
262, 1992.
[34] A.L.G.A. Coutinho and J.L.D. Alves. Parallel finite element simulation of miscible dis-
placements in porous media. SPE Journal, 4(1):487–500, 1996.
[35] M. Holst D. Estep and D. Mikulencak. Accounting for stability: a posteriori based on
residual and variational analysis. Comunication in Numerical Methods in Engeneering,
18:15–30, 2002.
[36] M. Larson D. Estep and R. William. Estimating the error of numerical solution of system
of nonlinear reaction-diffusion equations. Memoirs of the AmericanMathematical Society,
696:1–109, 2000.
[37] M. Larson D. Estep, M. Holst. Generalized green’s functions and the effective domain
influence. SIAM Journal on Scientific Computing, 26:1314–1339, 2005.
[38] P. Binning D. Kavetski and S.W. Sloan. Adaptive time stepping and error control in a
mass conservative numerical solution of the mixed form of richards equation. Advances
in Water Resources, 24:595–605, 2001.
[39] Y. Dai and J. Y. Yuan. Study on semi-conjugate direction methods for non-symmetric
systems. International Journal for Numerical Methods in Engineering, 60:1383–1399,
2004.
[40] P.A.B. de Sampaio and A.L.G.A. Coutinho. Simulation of free and forced convection
incompressible flows using an adaptive parallel/vector finite element procedure. Int. J.
Num. Meth. Fluids, 29:289–309, 1999.
[41] P.R.B. Devloo and G.C. Longhin. Object oriented design philosophy for scientific com-
puting. Mathematical Modelling and Numerical Analysis, 36:793–807, 2002.
[42] A. O’ Dwyer. Handbook of PI and PID controller tuning rules. Imperial College Press,
London, 2nd edition, 2003.
[43] G. F. Carey E. B. Backer and J. T. Oden. Finite Elements - An introduction, volume 1.
Prentice-Hall, 1981.
93
[44] T. C. Corke E. Erturk and C. Cokcol. Numerical solutions of 2-d steady imcompressible
driven cavity flow at high reynolds numbers. International Journal for Numerical Methods
in Fluids, 48:747–774, 2005.
[45] Message Passing Interface Forum. MPI: A message-passing interface standard. Technical
Report UT-CS-94-230, 1994.
[46] D. K. Gartling. A test problem for outflow boundary conditions-flow over a backward
facing step. International Journal for Numerical Methods in Fluids, 11:953–967, 1990.
[47] W. Gui and I. Babuska. The h, p and h-p versions of the elemento finite methods in 1
dimensions. Numer. Math., 49:659–683, 1986.
[48] K. Gustafsson. Control theoretic techniques for stepsize selection in explicit Runge-Kutta
methods. ACM TOMS, 17:533–554, 1991.
[49] K. Gustafsson. Control theoretic techniques for stepsize selection in implicit Runge-Kutta
methods. ACM TOMS, 20:496–517, 1994.
[50] K. Gustafsson, M. Lundh, and G. Soderlind. A PI stepsize control for the numerical
solution for ordinary differential equations. BIT, 28:270–287, 1988.
[51] M. H. Gutknecht. Variants of bicgstab for matrices with complex spectrum. Technical
Report 91-14, IPS, 1991.
[52] E. Hairer and G. Wanner. Solving Ordinary Differential Equations II: Stiff and
Differential-Algebraic Problems. Springer–Verlag, New York, NY, 1993.
[53] Y. Huang and H. A. van der Vorst. Some observations on the convergence behavior of
gmres. Technical Report 89-09, Delft University of Technology, Faculty of Tech. Math,
1989.
[54] T.J.R. Hughes and A.N. Brooks. A multi-dimensional upwind scheme with no crosswind
diffusion. In T.J.R. Hughes, editor, Finite Element Methods for Convection Dominated
Flows, AMD, volume 34, pages 19–35. ASME, New York, 1979.
[55] T.J.R. Hughes, L.P. Franca, and G.M. Hulbert. A new finite element formulation for com-
putational fluid dynamics: Viii. the galerkin/least-squares methods for advective-diffusive
equations. Comput. Methods Appl. Mech. and Engrg., 73:173–189, 1989.
[56] W.C . Rheinboldt I. Babuska. Error estimates for adaptive finite element computations.
SIAM J. Numer. Anal, 15:736–754, 1978.
[57] W.C. Rheinboldt I. Babuska. A posteriori error estimates for finite element methods. Int.
J. Numer. Math. Engrg, 12:1597–1615, 1978.
[58] M. J. Baines I. W. Johnson and G. Wagner. Moving finite element methods for evolutio-
nary problems, ii: aplications. J. Comput. Phys., 79:270–296, 1988.
[59] S. Iqbal and G.F. Carey. Performance analysis of dynamic load balacing algorithms with
variable number of processors. Journal of Parallel and Distributed Computing, 65:934–
948, 2002.
94
[60] Rencis JJ and Muller RL. Solution of elasticity problems by a self adaptive refinement
technique for boundary element computation. Int. J. Numer. Meth. Engng, 23:1501–1527,
1986.
[61] P. Hansbo ans C. Johnson C K. Erikson, D. Estep. Adaptive finite element. Springer-
Verlag, Berlin, 1996.
[62] D. Kahaner, C. Moler, and S. Nash. Numerical Methods and Software. Prentice–Hall,
Inc., Upper Saddle River, NJ, 1992.
[63] G. Karypis and V. Kumar. METIS unstructured graph partitioning and sparse matrix order.
Technical report, University of Minnesota, Department of Computer Science.
[64] G. Karypis and V. Kumar. A parallel algorithm for multilevel graph partitioning and sparse
matrix reordering. Parallel and Distributed Computing, 48:71–95, 1998.
[65] D. W. Kelly, J. P. Gago, O. C. Zienkiewicz, and I. Babuska. A posteriori error analysis and
adaptive processes in the finite element method: Part I Error analysis. Int. J. Num. Meth.
Engng., 19:1593–1619, 1983.
[66] W. Rachowicz L. Demkowicz and P.R.B. Devloo. A fully automatic hp-adaptivity. J.
Scientific Computing, 17:127–155, 2002.
[67] O. A Ladyzhenskaya. The mathematical theory of viscous incompressible flow, 1969.
[68] O. Lawlor, S. Chakravorty, T. Wilmarth, N. Choudhury, I. Dooley, G. Zheng, and L. Kale.
Parfum: A parallel framework for unstructured meshes for scalable dynamic physics ap-
plications. Engineering with Computers.
[69] D.S. Malkus and T.J.R. Hughes. Mixed finite element methods - reduced and selective
integration techniques: A unification of concepts. Comput. Methods Appl. Mech. and
Engrg., 15:63–81, 1978.
[70] G. Soderlind. Automatic control and adaptive time-stepping. Numerical Algorithms,
31:281–310, 2002.
[71] C.C. Page and M. A. Saunders. Solution of sparse indefinite systems of linear equations.
SIAM J. Numer. Anal., 12:617–629, 1975.
[72] V. Prabhakar and J. N. Reddy. Spectral/hp penalty least-square finite element formulation
for the steady incompressible navier-stokes equations. Journal of Computational Physics,
215:274–297, 2006.
[73] W.H. Press, S.A. Teukolsky, W.T. Vetterling, and B.P. Flannery. Numerical Recipes in C
- The Art of Scientific Computing. Cambridge University Press, New York, NY, second
edition, 1992.
[74] A. Ralston and P. Rabinowitz. A First Course in Numerical Analysys. Dover Publications,
second edition, 2001.
[75] J. E. Flaherty. P.K. Moore S. Adjerid and Y. Wang. High-order adaptive methods for
parabolic systems. Phys. D, 60:94–111, 1992.
95
[76] Y. Saad. Iterative Methods for Sparse Linear Systems. PWS Publishing, Boston, 1996.
[77] Y. Saad and M. H. Schultz. Gmres: A generalized minimal residual algorithm for solving
nonsymmetric linear systems. SIAM J. Sci. Stat. Comput., 7:856–869, 1986.
[78] F. Shakib, T.J.R. Hughes, and Z. Johan. A multi-element group preconditioned gmres
algorithm for nunsymmetric systems arising in finite element analysis. Comput. Methods
Appl. Mech. and Eng., 65:415–456, 1989.
[79] J. R. Shewchuk. Triangle: Enginnering a 2D quality mesh generator and Delaunay tri-
angulator. In MC Lin D. Manocha, editor, Applied Computational Geometry: Toward
Geometric Engineering, volume 1148, pages 203–222. Springer-Verlag, 1996. from the
first ACM workshop on Aplied Computational Geometry.
[80] H. Si. TetGen - A quality tetrahedral mesh generator and tree-dimensional delaunay trian-
gulator. Weierstrass Institute for Applied Analysis and Stochasatics,Berlin.
[81] T. Skalicky. Laspack reference manual. Dresden University of Trchnology.
[82] G. Soderlind. Digital filters in adaptive time stepping. ACM Transactions on Mathematical
Software, 29(1):1–26, March 2003.
[83] T. E. Tezduyar, J. Lion, and M. Behr. A new strategy for finite element computations
involving moving boundaries and interfaces - the dsd/st procedures: I. the concept and
preliminary numerical tests. Computer Methods in Applied Mecanics and Engineering,
94(3):339–351, 1992.
[84] T.E. Tezduyar. Stabilized finite element formulations for incompressible flow computati-
ons. Advances in Applied Mechanics, 28:1–44, 1992.
[85] T.E. Tezduyar and Y. Osawa. Finite element stabilization parameters computed from ele-
ment matrices and vectors. Comput. Methods Appl. Mech. and Engrg., 190:411–430,
2000.
[86] L.L. Thompson and D. He. Adaptive space-time element method for the wave equation
on unbounded domains. Comput. Methods Appl. Mech, 194:1947–2000, 2005.
[87] K. N. Ghia U. Ghia and C. T. Shin. High-re solutions for incompressible flow using navier-
stokes equations and a multigrid method. Journal of Computational Physics, 48:387–411,
1982.
[88] A.M.P. Valli, G.F. Carey, and A.L.G.A. Coutinho. Control strategies for timestep selection
in simulation of coupled viscous flow and heat transfer. Communications in Numerical
Methods in Engineering, 18:131–139, 2002.
[89] H. A. Van der Vorst. Bicgstab: A fast ans smoothly converging variant of bi-cg for the
solution of nonsymmetric linear system. SIAM Jornal and Statistic Computing, 13(2):631–
644, 1992.
[90] B. Kirk W. Barth, G.F. Carey and R. McLay. Parallel distributed solution of viscous
flow with heat transfer on workstation clusters. In High Performance Computing ’00
proceedings, Washington, D.C., 2000.
96
[91] H. F. Walker. Implementation of the gmres method using householder transformations.
SIAM J. Scientific and Statistical Computing, 9:152–163, 1988.
[92] J. Waltz. Parallel adaptive refinement for unsteady flows on calculations on 3d unstructu-
red grids. Int. J. Numer. Meth. Fluids, 46:37–57, 2004.
[93] J.Y. Yuan, G.H. Golub, R.J. Plemmons, and W. A. G. Cecılio. Semiconjugate direction
methods for real positive definite systems. BIT Numerical Mathematics, 44(1):189–207,
2004.
[94] O.C. Zienkiewicz. The Finite Element Method. McGraw-Hill, U.K., 1977.
97
Apendices
Apendice A - SubMatrizes e Subvetores da Matriz Jacobiana
Como visto na secao 2.2, a matriz Ke e o vetor Fe do elemento, sao formados por subma-
trizes e subvetores com a seguinte estrutura:
Ke
Kuu Kuv Kup
Kvu Kvv Kvp
Kpu Kpv Kpp
e Fe
Fu
Fv
Fp
Para simplificar a notacao, sera adotado uh uhnk 1, vh vh
nk 1 e o vetor uh uh vh
nas equacoes seguintes:
Kuu i j
Ωh
φiφ jdΩ θ∆t1
Re
Ωh
∇φi ∇φ jdΩ
θ∆t
Ωh
uh ∇φ jφidΩ θ∆t
Ωh
∂ uh∂x
φiφ jdΩ
Kuv i j θ∆t
Ωh
∂ uh∂y
φiφ jdΩ
Kup il θ∆t
Ωh
φi xψldΩ
Kvu i j θ∆t
Ωh
∂ vh∂x
φiφ jdΩ
Kvv i j
Ωh
φiφ jdΩ θ∆t1
Re
Ωh
∇φi ∇φ jdΩ
θ∆t
Ωh
uh ∇φ jφidΩ θ∆t
Ωh
∂ vh∂y
φiφ jdΩ
98
Kvp il θ∆t
Ωh
φi yψldΩ
Kpu l j
Ωh
φ j xψldΩ
Kpv l j
Ωh
φ j yψldΩ
Kpp l j 0
Fu i
Ωh
u1h
n 1φidΩ 1 θ ∆t
Ωh
un 1h ∇ u1
hn 1φidΩ
1 θ ∆t
Ωh
pn 1 φi xdΩ 1 θ ∆t
1
Re
Ωh
∇ u1h
n 1 ∇φidΩ
θ∆t
Ωh
un 1h ∇uh φidΩ 1 θ ∆t
Ωh
fxn 1φidΩ
θ∆t
Ωh
fxnφidΩ
Fv i
Ωh
u2h
n 1φidΩ 1 θ ∆t
Ωh
un 1h ∇ u2
hn 1φidΩ
1 θ ∆t
Ωh
pn 1 φi ydΩ 1 θ ∆t
1
Re
Ωh
∇ u2h
n 1 ∇φidΩ
θ∆t
Ωh
un 1h ∇vh φidΩ 1 θ ∆t
Ωh
fyn 1φidΩ
θ∆t
Ωh
fynφidΩ
Fp l 0
Livros Grátis( http://www.livrosgratis.com.br )
Milhares de Livros para Download: Baixar livros de AdministraçãoBaixar livros de AgronomiaBaixar livros de ArquiteturaBaixar livros de ArtesBaixar livros de AstronomiaBaixar livros de Biologia GeralBaixar livros de Ciência da ComputaçãoBaixar livros de Ciência da InformaçãoBaixar livros de Ciência PolíticaBaixar livros de Ciências da SaúdeBaixar livros de ComunicaçãoBaixar livros do Conselho Nacional de Educação - CNEBaixar livros de Defesa civilBaixar livros de DireitoBaixar livros de Direitos humanosBaixar livros de EconomiaBaixar livros de Economia DomésticaBaixar livros de EducaçãoBaixar livros de Educação - TrânsitoBaixar livros de Educação FísicaBaixar livros de Engenharia AeroespacialBaixar livros de FarmáciaBaixar livros de FilosofiaBaixar livros de FísicaBaixar livros de GeociênciasBaixar livros de GeografiaBaixar livros de HistóriaBaixar livros de Línguas
Baixar livros de LiteraturaBaixar livros de Literatura de CordelBaixar livros de Literatura InfantilBaixar livros de MatemáticaBaixar livros de MedicinaBaixar livros de Medicina VeterináriaBaixar livros de Meio AmbienteBaixar livros de MeteorologiaBaixar Monografias e TCCBaixar livros MultidisciplinarBaixar livros de MúsicaBaixar livros de PsicologiaBaixar livros de QuímicaBaixar livros de Saúde ColetivaBaixar livros de Serviço SocialBaixar livros de SociologiaBaixar livros de TeologiaBaixar livros de TrabalhoBaixar livros de Turismo