You are on page 1of 157
OTIMIZAGAO COMPUTACIONAL EM ALGORITMOS DE TRANSFORMACAO. INTEGRAL PARA AS EQUAGOES DE NAVIER-STOKES Jaci Maria Bemardo da Silva Guigon TESE SUBMETIDA AO CORPO DOCENTE DA COORDENAGAO DOS PROGRAMAS DE POS-GRADUACAO DE ENGENHARIA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSARIOS PARA A OBTENGAO DO GRAU DE MESTRE EM CIENCIAS EM ENGENHARIA MECANICA. Aprovada por: RIO DE JANEIRO, RJ - BRASIL AGOSTO DE 2000 GUIGON, JACI MARIA BERNARDO DA SILVA Otimizagéo Computacional em Algoritmos de Transformagao Integral para as Equagdes de Navier-Stokes[Rio de Janeiro] 2000 XV, 142 p. 29,7 cm (COPPE/UFRM, M.Sc., Engenharia Mecanica, 2000) Tese - Universidade Federal do Rio de Janeiro, COPPE 1. Otimizagdo Computacional 2. Equagdes de Navier-Stokes 3. Técnica da Transformada integral Generalizada |. COPPE/UFRJ Il. Titulo ( série ) Agradecimentos Ao Nticleo de Computagao Eletrénica-UFRJ, pelo apoio oferecido, o que mostra a consciéncia desta Instituigéo, de que é preciso investir na capacitagao profissional e no desenvolvimento académico de seus funcionarios. A Darci, minha mae - Mae em toda a profundidade que esta palavra possa significar e além de tudo, amiga de todas as horas, sempre pronta a ajudar, a aplainar os caminhos, a suavizar as arestas. A Michel, meu marido - Mais do que um amigo, um cumplice, sempre pronto a me apoiar incondicionalmente, em qualquer decisaéo que eu tomar. Uma presenga ao mesmo tempo determinada e doce, de cardter e compreensao extraordindrios. Aos professores Renato Cotta e Jesus Pérez-Guerrero, meus orientadores - Pela amizade, pelo muito que aprendi e pela a oportunidade dada para que eu pudesse expandir meus horizontes. Aos professcres Luiz Claudio Pimentel e Liliane Barichello, membros da banca - Presengas que muito nos honraram e sem as quais este trabalho nao estaria completo. Aos demais colegas, que séo muitos e complementares - Com certeza, cada um a seu modo, foi importante para a realizagao deste trabalho. Resumo da Tese apresentada a COPPE/UFRJ como parte dos requisitos necessarios para a obtengao do grau de Mestre em Ciéncias (M.Sc.) OTIMIZAGAO COMPUTACIONAL EM ALGORITMOS DE TRANSFORMAGAO INTEGRAL PARA AS EQUAGOES DE NAVIER-STOKES Jaci Maria Bernardo da Silva Guigon Agosto/2000 Orientadores: Renato Machado Cotta Jestis Salvador Pérez Guerrero Programa: Engenharia Mecanica O presente trabalho trata da otimizagao computacional de algoritmos de transformacgao integral para a solugao das equagGes de Navier-Stokes e continuidade, aplicadas ao caso de escoamento laminar incompressivel de fluidos newtonianos em formulagao bidimensional permanente. A forma convencional de desenvolvimento e aplicagao da Técnica de Transformada Integral Generalizada (GITT) ¢ inicialmente revista na solugao do problema classico da cavidade retangular com parede deslizante, estendendo-se a outros casos envolvendo variagdes de condigdes de contorno e razGes de aspecto. O aigoritmo convencional em linguagem FORTRAN 6 modificado, testado e revalidado visando a sua otimizagao. Busca-se também modificagdes na forma de aplicagao do método para obtengéo de melhores taxas de convergéncia nas expansdes em autofungées propostas. Resultados para diferentes valores do numero de Reynolds e raz6es de aspecto da cavidade so apresentados em forma de tabelas e graficos. As diferentes alternativas de otimizagéo dos algoritmos sao analisadas, discutindo-se as vantagens e desvantagens de seu uso. Abstract of Thesis presented to COPPE/UFRJ as a partial fulfillment of the requirements for the degree of Master of Science (M.Sc.) COMPUTATIONAL OPTIMIZATION APPLIED OF INTEGRAL TRANSFORM ALGORITHMS FOR THE NAVIER-STOKES EQUATIONS Jaci Maria Bernardo da Silva Guigon August/2000 Advisors: Renato Machado Cotta Jestis Salvador Pérez Guerrero Department: Mechanical Engineering The present work performs an analysis of the computational optimization of Integral Transform algoritms for the continuity and Navier-Stokes equations applied to the steady incompressible laminar flow of a newtonian fluid in a two dimensional formulation. First, the classical lid-driven rectangular cavity flow problem is used in order to revise the conventional form of the Integral Transform Technique development and application and then, other cases are solved involving variations of boundary conditions and aspect ratio. The conventional algorithm in FORTRAN language is modified and tested seeking its optimization. Also, other forms of applying the technique are considered in the search for better convergence rates in the eigenfunction-expansion of the original potentials. Results for different values of the Reynolds number and aspect ratios of the cavity are presented in tabular and graphical forms. The different alternatives of algorithm optimization are analyzed and the advantages and disadvantages of its use are discussed, eps x; Yi Up. Ur Sa NOMENCLATURA Numero de Reynolds Coeficiente da transformagao Coeficiente da transtormagao Coeficiente da transtormago Coeficiente da transformagao Sub-indice de termo na expansao Sub-indice de termo na expanséo Sub-indice de termo na expanséo Componente da velocidade na diregao x, adimensional Componente da velocidade na diregao y, adimensionai Diregao coordenada, adimensional Diregéo coordenada, adimensional Numero de termos de truncamento da expansao Dimensao da cavidade Parametro na sub-rotina BVPFD Parametro na sub-rotina COLMOD: Autofungao Vetor Solugao do Sistema Diferencial Ordindrio Transformado. Norma Fungao Analitica utilizada como Filtro Pressao Componente da Velocidade na parede interior da cavidade Componente da Velocidade na parede superior da cavidade Velocidade na diregao x, dimensional Condigao de Contorno Transformada vi kl # Y(xy) xy) LETRAS GREGAS Vorticidade Campo Transformado Autovalor Fungao Corrente Fungao Auxiliar Densidade do fluido Viscosidade do fluido Somatério SIMBOLOS MATEMATICOS Gradiente Laplaciano Operador Bi-Harménico vii LISTA DE FIGURAS Figura 2.1 Figura 2.2 Figura 2.3.a Figura 2.3.b Figura 2.3.c Figura 3.1 Figura 3.1.a Figura 3.1.b Figura 3.1.¢ Figura 3.1.4 Figura 3.1.e Figura 3.2 Figura 3.3 Figura 4.1 Figura 4.2 Figura 4.3 Figura 4.1 Figura 4.2 Figura 4.3 Figura 4.6.a Figura 4.6.b Cavidade de Segao Quadrada Formulagao em Fungdo Corrente para Cavidade Quadrada Cavidade com Paredes Solidas Deslizantes “Open driven poo!" “Ceramic tape caster" Esquema de Variagdes para o Problema Eliptico Cavidade com uma Parede Sdlida Deslizante Cavidade com duas Paredes Deslizantes — Mesma Diregao Cavidade com duas Paredes Deslizantes — Diregdes Opostas Cavidade com Parede Inferior Deslizante, Superficie Livre Cavidade com Paredes Laterais Deslizantes, Superficie Livre Esquema para caso 3.1.e — Paredes verticais méveis e superficie livre Transformagao Linear aplicada ao caso 3.1.e - Mudanga de Coordenadas Alocagao dos valores obtidos para a fungao original e derivadas- N=3 Redistribuigao dos elementos do vetor para preenchimento de valores a serem obtidos para N=4 Esquema de novo modelo proposto para alocagao de array Alocagao dos valores obtidos para a fungao original e derivadas para N=3 Redistribuigao dos elementos do vetor para preenchimento de valores a serem obtidos para N=4. Esquema de novo modelo proposto para alocagao de array Convergéncia no extremo inferior esquerdo da cavidade. Reynolds=5000 - Aceleragao de Shanks x Heragao Normal Convergéncia no centro da cavidade. Reynolds = 0 - Aceleragao de Shanks x Iteragao Normal Figura 4.6.c Figura 4.6.0 Figura 4.6.e Figura 4.6.f Figura 4.6.9 Figura 4.6.h Figura 4.6.i Figura 5.1 Figura 5.2 Figura 5.3 Figura 5.4 Figura 5.5 Figura 5.6 Figura 5.7 Figura 5.8 Figura 5.9 Figura 5.10 Figura 5.11 Figura 5.12 Convergéncia no extremo superior direito da cavidade. Reynolds = 0 - Aceleragao de Shanks x Iteragao Normal Convergéncia no extremo inferior esquerdo da cavidade. Reynolds=1000. Aceleragao de Shanks x Iteragao Normal Convergéncia no centro da cavidade. Reynolds=1000. Aceleragao de Shanks x Iteragaio Normal Convergéncia no extremo superior direito da cavidade. Reynolds=1000 - Aceleragao de Shanks x Iteragao Normal Convergéncia no extremo inferior esquerdo da cavidade. Reynolds=5000 - Aceleragao de Shanks x Iteragao Normal Convergéncia no centro da cavidade. Reynolds=5000. Acelerag&o de Shanks x Iteragéo Normal Convergéncia no extremo superior direito da cavidade. Reynolds=5000 - Aceleracao de Shanks x Iteragao Normal Reynolds=0 - 1 parede mével - Ut=-1 - Razdo de aspecto=1 Reynolds=1000 - 1 parede mével - Ut=-1 - Razao de aspecto=1 Reynolds=0 - 1 parede mével - Ut=-1 - Razao de aspecto =3 Reynolds=1000 - 1 parede mével - Ut=-1 - Razao de aspecto=3 Reynolds=1000 - 1 parede movel - Ut=-1 - Razao de aspecto=5 Reynolds=1000 - 1 parede movel - Ut=-1 - Raz&o de aspecto=5 Reynolds=0 - 2 paredes méveis - Ut=-2, Ub=-1 Reynolds=1000 - 2 paredes méveis- Ut=-2, Ub=-1 Reynolds=0 -2 paredes moveis -Ut=-2, Ub=-1; Razao de aspecto: Re=1000-2 paredes méveis - Ut=-2, Ub=-1; Razao de aspecto=3,0 Re=0 - 2 paredes méveis - Ut=-2, Ub=-1;Razao de aspecto =5.0 Re=1000 -2 paredes méveis - Ut=-2, Ub=-1; Razao de aspecto=5.0 Figura 5.13 Figura 5.14 Figura 5.15. Figura 5.16 Figura 5.17 Figura 5.18 Figura 5.19 Figura 5.20 Figura 5.21 Figura 5.22 Figura 5.23 Figura 5.24 Reynolds=0 - 2 paredes méveis - diregdes opostas; Razao de aspecto=1 Reynolds=1000 - 2 paredes méveis - direcdes opostas Razao de aspecto=1 Reynolds=0 - 2 paredes moveis - diregdes opostas Raz&o de aspecto =3 Reynolds=1000 - 2 paredes moveis-diregdes opostas Razo de aspecto =3 Reynolds=0 - 2 paredes moveis - diregdes opostas Raz&o de aspecto=5 Reynolds=0 - 2 paredes méveis - diregGes opostas Razao de aspecto =5 Re=0 - Sup. Livre- Ub = 1; Ut=0 - Razao de aspecto=1 Re=0 - Sup. Livre - Ub = It = 0 - Razao de aspecto=1 Re=0 - Sup. Livre - Ub = 1 ; Ut = 0- Razao de aspecto=1.61 Re=1000 - Sup. Livre - Ub ; Ut = 0- Razao de aspecto=1.61 Re=0 - Sup. Livre - Ub = 1 ; Ut = 0 - Razao de aspecto =3 Re=1000 - Sup. Livre - Ub = 1 ; Ut = 0 - Razao de aspecto =3 Tabela 1.1 Tabela 4.1 Tabela 4.2 Tabela 4.3 Tabela 4.4 Tabela 4.5 Tabela 4.6 Tabela 4.7 Tabela 4.8 Tabela 4.9 Tabela 4.10 Tabela 4.11 Tabela 4.12 Tabela 4.13 Tabela 4.14 LISTA DE TABELAS Classificagao relativa das linguagens aplicadas & computagao cientifica Comparagées de Tempo de CPU para diferentes valores de parametrizagao. Tol=1.d° Comparagdes de Tempo de CPU para diferentes valores de parametrizagao. Tol=1.d* Comparagées de Tempo de CPU para diferentes tolerancias entre iteragdes Parametrizagao BVPFD. Comparagdes de Tempo de CPU para diferentes tolerancias. Parametrizagao (pistep=0.1) sem uso de FCNPEQ e FCNPBC, Re=1000, tol = 10° Parametrizagao (pistep=0.1) com uso de FCNPEQ e FCNPBC. Re=1000, tol = 10° Tabelas com diferenga de tempos(s) , Re=1000, n=25 - Tol=10° (Fortran77 e Fortran90) Tempo de execugao para codigo com stride, sem secgdes de array, sem parametrizagao nas Condigdes de Contorno — Tolerancia 10° - Re=1000 Tempo de execuc&o para cddigo com stride, com secgdes de array, sem parametrizagéo nas Condigdes de Contorno — Tolerancia 10° - Re=1000 Tempo de execugao para cédigo com stride, sem seccées de array, com parametrizagaéo nas Condigdes de Contorno — Tolerancia 10° - Re=1000 Tempo de execucao para codigo sem stride, sem seccdes de array, sem parametrizagao nas Condi¢gdes de Contorno — Tolerancia 10° - Re=1000 Tempo de execugao para cédigo sem stride, sem seccdes de array, com parametrizagao nas Condi¢gdes de Contorno — Tolerancia 10° - Re=1000 Valores para Pontos da malha — Rotinas COLMOD e BVPFD BVPFD( pistep=0.1) e COLMOD - Re=0, uma parede movel xi Tabela 4.15 Tabela 4.16 Tabela 4.17 Tabela 4.18 Tabela 4.19 Tabela 4.20 Tabela 4.21 Tabela 4.22 Tabela 4.23 Tabela 4.24 Tabela 4.25 Tabela 4.26 Tabela 4.27 Tabela 4.28 Tabela 4.29 Tabela 4.30 Tabela 4.31 Tabela 4.32 Tabela 4.33 Tabela 4.34 BVPFD( pistep=0.1} e COLMOD - Re=100, uma parede mével BVPFD( pistep=0.1) e COLMOD - Re=0, duas paredes méveis BVPFD( pistep=0.1) e COLMOD - Re=100, duas paredes moveis Re=1.000 - 1 Parede Mével (Rotinas COLMOD e BVPFD) Re=5.000 - 1 Parede Mével (Rotinas COLMOD e BVPFD) Re=10.000 - 1 Parede Mével (Rotinas COLMOD e BVPFD) Re=50.000 - 1 Parede Mével (Rotinas COLMOD e BVPFD) Comparacao de espaco em memoria alocado para subrotinas Colmod e BVPFD Espago em memeéria alocado para subrotinas — Colmod = 20 pontos finais, BVPFD=100 pontos finais, n=5 BVPFD com uso de Jacobiano por Diferencas Finitas Parametrizagao (pistep=0.1) utilizando Jacobiano por Diferengas Finitas Parametrizagao (pistep=0.1). Jacobiano Analitico (FCNJAC- BVPFD) Parametrizacao (pistep=0.01) utilizando Jacobiano por Diferencas Finitas Parametrizagao (pistep-0.01) - EPS=10" Parametrizagao (pistep=0.01) - EPS=10° Parametrizagao (pistep=0.01) - EPS=10"? Processo de Convergéncia para numero crescente de termos na série.Re=0. Aceleragao de Shanks x Iterag&o Normal Processo de Convergéncia a partir de sub-sequencias tomadas diretamente de 29 termos. Extremo Inferior Esquerdo da cavidade. Re=0 Processo de Convergéncia a partir de sub-sequencias tomadas. diretamente de 29 termos. Centro da Cavidade. Re=0 Processo de Convergéncia a partir de sub-sequencias tomadas diretamente de 29 termos. Extremo Sup. Dir. da cavidade, Re=0 xii Tabela 4.35 Tabela 4.36 Tabela 4.37 Tabela 4.38 Tabela 4.39 Tabela 4.40 Tabela 4.41 Tabela 4.42 Tabela 4.43 Tabela 4.44 Tabela 4.45 Tabela 4.46 Tabela 4.47 Tabela 5.1 Tabela 5.2 Tabela 5.3 Tabela 5.4 Processo de Convergéncia para numero crescente de termos na ‘série. Re=1000 - Aceleragdio de Shanks x Iteragdo Normal Processo de Convergéncia a partir de sub-sequencias tomadas diretamente de 29 termos. Extremo Inferior Esquerdo da cavidade. Re=1000 Processo de Convergéncia a partir de sub-sequencias tomadas diretamente de 29 termos. Centro da Cavidade. Re=1000 Processo de Convergéncia a partir de sub-sequencias tomadas diretamente de 29 termos. Extremo Superior Direito da cavidade. Re=1000 Processo de Convergéncia para numero crescente de termos na série. Re=5000 - Aceleragao de Shanks x Iteragao Normal Processo de Convergéncia a partir de sub-sequéncias tomadas diretamente de 27 termos. Extremo Inferior Esquerdo da Cavidade. Re=5000 Processo de Convergéncia a partir de sub-sequéncias tomadas diretamente de 27 termos. Centro da Cavidade. Re=5000 Processo de Convergéncia a partir de sub-sequéncias tomadas diretamente de 27 termos. Extremo Superior Direito da cavidade. Re=5000 implementagao de trecho Nao Linear da rotina FCNEQN - Uso de diretiva para paralelizagao Comparagées entre processamento Sequencial e Paralelo — Cray J90 - Problema Classico Cavidade - Reynotds = 1000 Tempos e tamanhos da malha com Filtro ~ Re=100 Tempos e tamanhos da malha para algoritmo original - Re=100 Comparacao de Tempos: cédigo sequencial x paralelo — |BM-SP2. Problema Classico da Cavidade - Re =100 -n=4 Componente entre Valores obtidos via GITT e Gaskell[60] Convergéncia da GITT para caso 3.1.b — Razo de Aspecto 5 Parte Inferior da cavidade Convergéncia da GITT para caso 3.1.b — Razo de Aspecto 5 Centro da cavidade Convergéncia da GITT para 0 caso 3.1.b - Raz&o de aspecto=5 Parte Superior da Cavidade xiii Tabela 5.5 Tabela 5.6 Tabela 5.7 Tabela 5.8 Tabela 5.9 Tabela 5.10 Tabela 5.11 Tabela 5.12 Tabela 5.13 Tabela 5.14 Tabela 5.15 Tabela 5.16 Convergéncia da GITT para Re=1000 - Tol=10° Convergéncia da GITT para Re=5000 - Tol=10* Caso 3.1.2 - Uma Parede Mével - Re=5000 - Com stride Caso 3.1.a - Uma Parede Mével - Re=5000 - Sem stride Caso 3.1.a - Uma Parede Mével - Re=0 Caso 3.1.a - Uma Parede Movel - Re=1000 Caso 3.1.b - Duas Paredes Méveis; mesma diregéio - Re=0 Caso 3.1.b - Duas Paredes Moveis; mesma direg&o - Re=1000 Caso 3.1.c - Duas Paredes Moveis; diregdes opostas - Re=0 Caso 3.1.c - Duas Paredes Méveis; diregdes opostas - Re=1000 Caso 3.1.d - Superficie Livre - Re=0 Caso 3.1.d - Superficie Livre - Re=1000 CAPITULO | - INTRODUGAO 1 Motivagao e Objetivos..... 12 O Compilador Fortran 90..... 13 A Técnica da Transformada integral Generalizad: 14 Solugdo das Equagdes de Navier-Stokes... CAPITULO II - FORMULAGAO DOS PROBLEMAS-TESTE Wa O problema Classico da Cavidade com Parede Deslizante..... 14 IL2 VariagSes do Problema Classic cB CAPITULO III - APLICAGAO DA GITT E ESPECIFICAGAO DO ALGORITMO I.1 Aplicagao Direta da GITT.... Il.2 Metodologia de Solugao. 4.3 Algoritmo Computacional-Subrotina BVPFD... li4— Alteragdes para Implementagao dos Casos II. CAPITULO IV - OTIMIZACAO COMPUTACIONAL 'V.1_ O processo de parametrizagao do termo nao-linear. 'V.2__ ConsideracSes sobre o uso das rotinas de parametrizagao especificadas pelo usuario(FCNPEQ, FCNPBC). 27 1V.3__ Alteragdes no cédigo - ImplementagGes do Fortran 90, 2138 iV.4Re-adaptagao dos Vetores para Especificagao da Fungao e suas Derivadas... 'V.5 — Subrotina COLMOD..... 'V.6 Determinagao do Jacobiano via Diferengas Finitas.... \V.7_ Aceleragéo de Convergéncia - Transtormagao de Shanks. 'V.8__ Processamento Paralelo..... CAPITULO V - Resultados para Cavidades com diferentes razdes de aspecto V.1 Comparagao entre valores da fung&o-corrente obtidos através de métodos analiticos, numérico e hibrido. V.2 Resultados do Cédigo Otimizado para o Problema Nao-Lineal V.3 Resultados dos diferentes modelos para a cavidade retanguiar..... CAPITULO VI - CONCLUSOES E SUGESTOES... REFERENCIAS BIBLIOGRAFICAS APENDICE A... xv CAPITULO! Introdugao 1.1 - Motivagao e Objetivos A simulacao computacional de problemas na area de transmissdo de calor e mecdnica dos fluidos tem sido altamente fortificada com o avanco da tecnologia dos computadores. A crescente velocidade de processamento, assim como as novas arquiteturas dos computadores tém sido explorados nos algoritmos computacionais provenientes da aplicacéo de metodologias numéricas. Desta forma, os novos algoritmos numéricos ficam robustecidos pelo paralelismo e vetorizagao que os computadores modernos podem oferecer. Tradicionalmente, estas opgdes tem sido amplamente utilizadas em metodologias puramente numéricas tais como o método das diferengas finitas, elementos finitos ou volume finitos, contribuindo marcadamente para a melhora do desempenho computacionai[51, 52, 65]. Por outro lado, os préprios métodos numéricos tém avangado na geragdo de seus algoritmos, sendo hoje capazes de simular fenémenos e problemas de engenharia cada vez mais. diversificados, procurando compatibilizar a acurdcia dos resultados com a minimizagao do tempo de processamento. Nas ultimas duas décadas, a Técnica de Transformada Integral Generalizada (GITT) tem avangado gradativamente na solugéo de problemas difusivo-convectivos, de natureza linear e nao-linear [14]. A GITT é uma metodologia hibrida, seri-analitica, que apresenta duas caracteristicas que a torna uma técnica atraente quando comparada a outras, puramente numeéricas. O carater analitico da GITT permite gerar algoritmos com controle automatico de erro dos potenciais originais do problema. A segunda caracteristica permite um aumento moderado no custo computacional, a partir do aumento do ntimero de varidveis independentes [14,15,16]. Dentro deste contexto, pretende-se através deste trabalho, investigar aspectos computacionais que influenciam no desempenho dos algoritmos de Transformacéo Integral, aplicados & resolugéo de problemas de escoamento governados pelas equagdes de Navier-Stokes em regime permanente. Como parte dos objetivos, pretende-se ainda buscar melhores taxas de convergéncia dos algoritmos, mediante menor esforgo computacional, ou mesmo garantir a obteng&o de resultados para 1 problemas anteriormente nao solucionaveis computacionalmente em termos praticos, devido a necessidade de alocagao de recursos maior do que a quantidade comumente disponivel fisicamente. Os algoritmos estudados resultam da implementagao da técnica da transformada integral generalizada para a resolugao de casos-teste de escoamentos laminares em cavidades fechadas com fronteiras deslizantes, governados pelas equacdes de Navier-Stokes a duas dimensées e regime permanente, conforme serao descritos no proximo capitulo, O estudo realizado sobre as possi fades de otimizagao, com o objetivo de tornar mais eficiente a implementagao do algoritmo na resolugao desta classe de problemas, pode ser sintetizado da seguinte forma: a) Estudo de alternativas de métodos numéricos para solucdéo dos sistemas diferenciais ordinarios transtormados: implementac&o ou modificagéo de rotinas que permitam convergéncia da solugao numérica do problema de valor de contorno para casos fortemente nao-lineares. b) Diminuigaéo do tempo de execucéo do algoritmo, mediante técnicas que racionalizam a utilizagao de recursos do computador: fatores como velocidade do compilador, forma de elaboragao do algoritmo, técnicas de vetorizagéo e de Pparalelizacao, utilizagdo de estruturas mais eficientes, de acordo com o tipo de equipamento, influem no tempo de processamento. Este tipo de otimizagao, salvo restrigdes computacionais tais como vinculagéo do uso da conta ao numero de horas de uso do processador, nao é considerada tao importante na fase de validagdo de resultados, mas sim na aplicagdo pratica do método, tais como por exemplo, em simulagdes em tempo real, ou em benchmarks de desempenho. ¢) Minimizago da alocagéo de recursos, tais como quantidade de meméria dispendida pelo programa. Nos algoritmos de Transforma¢&o Integral isto é um fator essencial quando se deseja um truncamento das expansdes com grande numero de termos, visando a obtengao de convergéncia das expansées dentro de uma precisao mais estrita, ou mesmo permitir a convergéncia em escala grafica em alguns casos extremos, aonde as nao-linearidades sao mais evidentes. d) Redug&o das ordens de truncamento requeridas para a resolugao numérica do método, com garantia de obtengao de melhores taxas de convergéncia a cada termo da série finita através de pré e pds-tratamento analitico do problema, por meio de técnicas de aceleragao de convergéncia e de parametrizacao. Quando se deseja obter convergéncia nas expansées propostas, dentro de uma maior precisdo requerida, a série obtida a partir da transformagao integral do problema em uma Unica diregéo, deverd ser truncada com um numero maior de termos. Isto acarreta também um numero maior de iteragdes no processo numérico de resolugao. do conjunto de equagées diferenciais ordindrias resultante. Ou seja, o grau de rigidez (stiffness) do sistema diferencial ordinario aumenta a medida que cresce o numero de termos retidos no truncamento. As rotinas numéricas para a solugao de sistemas de Equacées Diferenciais Ordindrias normalmente utilizadas em conjunto com o método de transformagao integral, requerem uma grande quantidade de memoria, em funcao da malha adaptativa que cresce significativamente, & medida que cresce o numero de termos retidos nas expansées. No caso de bibliotecas onde 0 cédigo é fechado, pouco resta a fazer por parte do usuério, dentro do objetivo de racionalizar 0 uso de meméria utilizada pelo algoritmo da rotina. Devido a este fato, a primeira tentativa de otimizagao no presente estudo, foi a substituig&o da rotina BVPFD pertencente a biblioteca matematica IMSL [26] pela rotina COLMOD[67], de dominio publico. Nesta fase, o objetivo foi a obtengao de melhores taxas de convergéncia de forma automatica, uma vez que a parametrizagéo desta rotina parecia mais eficiente do que a parametrizagdo da subrotina mais comumente utilizada, a BVPFD. Também foram estudadas duas outras alternativas. A primeira delas consistiu na busca de solugdes_intermediarias (filtros analiticos) que aplicadas ao problema original, pudessem diminuir a rigidez do sistema e também permitir a obtengdo de convergéncia das expansées através da utilizagaio de um numero menor de termos; a segunda consistiu da utilizagaéo de métodos de aceleracfo a posteriori de convergéncia de séries. Sao ainda abordados outros aspectos relevantes tais como parametrizagao do problema diferencial ordinario, reestruturagéo do cddigo e implementagdes computacionais que influem no tempo de processamento do algoritmo. A reestruturagao do cédigo consistiu da modificacao do algoritmo anteriormente escrito em Fortran77 para o Fortran90 [62]. 1.2 - O compilador Fortran 90 O Fortran é a mais antiga linguagem de programacao criada para a computagao cientifica, tendo surgido a sua primeira versdo entre 1954 e 1957, implementada para executar em um computador IBM Type 704/62]. Antes deste periodo, os cédigos eram desenvolvidos para serem executados em linguagem de maquina, mas ja em 1958, mais da metade dos cédigos utilizados no Type704 estavam escritos na linguagem FORTRAN. Tal popularidade fez com que grupos diferentes comegassem a criar os seus prdprios compiladores, surgindo problemas de portabilidade entre os algoritmos escritos nesta linguagem. Para contornar este problema, surgiu a idéia de se criar um padrao e o Fortran foi entao, a primeira linguagem de programagao oficialmente padronizada em 1966, sob responsabilidade do American National Standards Institute(ANSI) e denominada Fortran IV, também conhecida como Fortran 66. A partir de 1977, o Fortran passou por grandes modificagdes, surgindo em 1980 uma nova versao padronizada - o Fortran 77. Paralelamente as modificagdes decorrentes destas versées, foram surgindo novas linguagens, com recursos de programagao e conceitos até entao nunca vistos no Fortran; tal impacto foi muito significativo, de forma que alguns grupos chegaram a acreditar no fim do uso desta linguagem em um futuro proximo. Isto terminou nao acontecendo e grande parte da comunidade cientifica continuou utilizando e desenvolvendo seus cédigos em Fortran, sobretudo devido aos seguintes fatores: * Era uma linguagem de programagao de facil codificagao * Possuia grande potencial para cdlculos, devido a disp llidade de um grande numero de fungées intrinsecas, operagdes e representagdes de dados + Apresentava boa interface com bibliotecas (matematicas e estatisticas) externas em geral, amplamente utilizadas em aplicagdes cientificas * Surgimento de recursos mais atuais e implementacdes mais eficientes visando a otimizagao do cédigo * Dificuldade de migragéo de milhdes de linhas de cédigo implementadas originariamente em Fortran, para uma outra linguagem. Apesar de seu uso intensivo durante as décadas seguintes a sua padronizagao e ja englobando conceitos mais modernos de programac&o do que as suas versées anteriores, o Fortran77 era continuamente criticado, quando comparado as modernas linguagens de programagao recém-criadas. Sao citadas a seguir, algumas deficiéncias normaimente apontadas no Fortran 77: * Necessidade de utilizagéo do formato fixo na codificagao dos programas, heranga da época da criago da linguagem: a entrada de dados era realizada através de cart6es perfurados e para a sua leitura eram utilizadas as leitoras dticas, sendo portanto necessdria a especificagao de determinados comandes de controle em colunas especificas. Apés isto, mesmo com a utilizagao do teclado/terminal(video), © compilador ainda nao permitia a escrita do programa-fonte em qualquer coluna, mantendo 0 formato antigo aplicado aos cartées * Inexisténcia de implementagdes que permitissem acesso dinamico aos dados * Problemas relacionados com a portabilidade numérica. Apesar da facilidade na definig&o de diferentes graus de precisao para tipos de dados, a sua portabilidade entre equipamentos nao era garantida. * N&o disponibilidade de tipos definidos pelo programador. * Auséncia de recursividade explicita + Acesso a dados globais via COMMON block Com o intuito de eliminar estas restrigdes, grandes modificagdes foram intreduzidas, surgindo o Fortran 90, padronizado em 1993. O Fortran 90 € considerado um superset do Fortran77, mantendo todas as estruturas anteriores da linguagem. Desta forma, programas escritos em Fortran 77 podem ser submetidos ao compilador do Fortran 90, muito embora, varios comandos sejam considerados obsoletos, sendo desaconselhado 0 seu uso em novos programas. Atualmente, o Fortran 90, C e C++, comumente sao linguagens nativas de sistemas de work-stations e de maquinas destinadas 4 computagao de alto-desempenho em geral. Também existem versdes do Fortran para PC's. O Fortran PowerStation da Microsoft foi bastante difundido, existindo até a versdo 4. As vers6es mais atuais, preservam 0 mesmo ambiente de programagao e esta atualmente sob responsabilidade da Compaq (Compag Visual Fortran), As versdes do compilador para micros sao bastante amigaveis, oferecendo um ambiente de programag&o caracteristico da Microsoft, integrando as fases de edicao, compilagao, debug e execucdo do programa. De um modo geral, o Fortran 90 oferece o melhor desempenho computacional dentre as linguagens conhecidas, conforme pode ser visto na tabela a seguir [23]: Funcionalidade F77 Cc C++ F90 Robustez numérica 2 4 3 1 Paralelismo de Dados 3 3 3 1 Abstracao de Dados 4 3 2 1 Prog. Orientada a Objetos 4 3 1 2 Programacao Funcional 4 3 2 1 Média 34 3.2 2.2 1.2 Tabela 1.1- Classificacao relativa das Linguagens Aplicadas a Computagao Cientifica. 1- Melhor 4-Pior © problema escolhido para o estudo das possibilidades de otimizagéo 6 o do escoamento laminar em cavidade retangular com contornos deslizantes. Tal escolha deve-se ao fato deste problema resultar em alto grau de rigidez do sistema transformado, expressivamente crescente com o aumento do ntimero de termos no truncamento, com o numero de Reynolds e com a razdo de aspecto da cavidade. A solugéo de problemas elipticos nao-lineares fazendo-se uso da Técnica da Transformada-Integral Generalizada, ja foi amplamente estudada e estabelecida, conforme pode ser verificado em trabalhos de Leiroz[31] , Pérez-Guerrero[49,50], Ramos[53]. Dentre tais estorgos bem sucedidos, encontra-se a solugao do problema classico da cavidade quadrada, resolvido por Pérez Guerrero [47,48]. Neste contexto, além do estudo de formas de otimizagéo computacional para o método GITT, o presente trabalho estende os resultados apresentados por Pérez Guerrero [47] , através da obtengdo de convergéncia satisfatoria para altos nimeros de Reynoids para o caso cldssico da cavidade quadrada e da utilizagao da GITT para a resolugéo de casos alternatives ao problema cldssico, também de interesse em engenharia. 1.3 - A Técnica da Transformada Integral Generalizada A técnica da Transformada Integral € amplamente conhecida como um método classico aplicado @ solugdo analitica de certas classes de problemas difusivos lineares. Tendo como base o método de separagao de varidveis, o par transformada- inversa necessario a solugao de um dado problema nao-homogéneo, é desenvolvido em termos das autofungées associadas a parte homogénea do problema, Ozisik [43]. O tratado de Mikhailov e Ozisik [36] reune a maior parte do trabalho jé realizado sobre a analise de classes de problemas lineares de difusdo de calor e massa seguindo as idéias da transformada integral classica. Apesar da gama de problemas passiveis de solugao exata ter sido ampliada através do uso do método da transformada integral classica, ela é limitada 4 classe de problemas lineares transformaveis, ou seja, problemas que possam ser transformados em sistemas diferenciais ordinarios lineares. desacoplados. A partir do trabalho de Ozisik e Murray [44], versando sobre a solugaéo de problemas difusivos com coeficientes variaveis nas condigdes de contorno, vislumbrou-se que a Técnica da Transformada Integral classica poderia ser capaz de fornecer solugdes para uma faixa maior de problemas lineares e nao-lineares, a principio nao- transformaveis, ocasionande o progressivo desenvolvimento da Técnica da Transformada Integral Generalizada (GITT). Ao longo dos anos, esta técnica ganhou uma estrutura hibrida, ou seja, numérico-analitica, na qual o sistema de Equagdes Diferenciais Parciais é transtormado analiticamente, dando origem a um Sistema de Equacées Diferenciais Ordinarias a ser resolvido numericamente. A idéia desta técnica 6 a de se escolher um problema auxiliar de autovalor, que contenha 0 maximo de informac&o possivel do problema original, desenvolver o par transformada-inversa associado e efetuar a transformac&o integral, obtendo-se entao um sistema diferencia! ordindrio infinito e acoplado. Tal sistema diferencial ordindrio é resolvido numericamente, truncando-se a série em ordem suficientemente grande para @ precisao requerida. Finalmente faz-se uso da formula de inversdo analitica para a recuperagao do potencial original. Pela sua estrutura hibrida numérico-analitica, a Técnica da Transformada Integral Generalizada, além de ser um método computacional alternativo, é também apropriado para fins de validagao de algoritmos numéricos (benchmark) devido a sua inerente caracteristica de controle automdtico de erro, retendo neste aspecto, as 7 mesmas propriedades de uma solugéo puramente analitica. Um outro aspecto do método a ser ressaltado é a extensdo direta a situagdes multidimensionais, possivel gragas a sua caracteristica hibrida, que permite que a soluc&o analitica seja empregada em todas as varidveis independentes, a menos de uma, fazendo com que a tarefa numérica seja sempre reduzida a integragao de um sistema diferencial ordindrio em apenas uma diregao. Cotta [13] apresenta uma revisao de trabalhos desenvolvidos através do uso da GITT: ditus&o[12,57], conveccao-difusdo[11,58], autovalor[37], camada-limite[35], equagdes de Navier-Stokes[47,49]. Os resultados satisfatorios obtidos, mostram o progresso alcangado por esta técnica, dentro do objetivo de solucionar problemas de engenharia de diferentes niveis de complexidade. 1.4 - Solug&o das Equagées de Navier-Stokes © estudo do escoamento bidimensional em cavidades retangulares sempre atraiu muito interesse devido as suas muitas impficagdes praticas. Em particular, o caso da cavidade com parede deslizante é frequentemente utilizado para testes de modelos tedricos e novos esquemas numéricos, devido & simplicidade de sua geometria. O primeiro pesquisador a produzir resultados computacionais para esta classe de escoamentos foi Kawaguti[29], em 1961, fornecendo resultados para diferentes razoes de aspecto e numero de Reynolds=64, fazendo uso do método de diferengas finitas. A corre¢&o no método das diferengas finitas utilizando diferengas centradas e que permitiu 0 calculo para Reynolds mais altos, foi implementada posteriormente por Bozeman e Dalton[9}. Neste trabalho, os resultados foram estendidos para nimeros de Reynolds até 100. Burggraf[10], em 1966, foi o primeiro a estudar o problema da cavidade extensivamente, explicitando a natureza dos vértices e a proporcionar comparagées do modelo de Batchelor[6,7] com solugées numéricas para as equagdes de Navier- Stokes. Seu estudo se estendeu a numeros de Reynolds limitados a 400 (utilizando tefinamentos sucessivos de malha), percebendo a presenga de trés vortices (um primario e dois secundérios) nesta classe de escoamento a baixos numeros de Reynolds. © segundo estudo cronologicamente relevante foi 0 de Pan e Acrivos[45], em 1967, que proporcionou informacées para ntimeros de Reynolds até 2700. Seus estudos mostram que o tamanho do vértice primario 6 dependente do numero de Reynolds. Em 1977, Nallasamy e Prasad[41] pretenderam levar 0 estudo em cavidades a numeros de Reynolds superiores a 30000, realizando, dentro destas condigdes, a avaliagao das caracteristicas hidrodinamicas e térmicas do escoamento. Para isto, a técnica numérica utilizada foi a discretizagao através do esquema upwind, conhecida por produzir solugdes mais estaveis para altos nimeros de Reynolds. Embora sendo um trabalho ambicioso, ndo apresenta resultados contidveis, devido 4 malha grossa utilizada. Em 1980, Jeffrey & Sherwood[27] estudaram os padrées de linhas de corrente de varios escoamentos de Stokes bidimensionais, dando éntase sobretudo aqueles com vortices em regides de linhas de corrente fechadas. Apesar do minuncioso estudo das caracteristicas fisicas deste tipo de escoamento, nao foram examinadas as transicdes ocorridas entre os padrdes estudados. Em 1982, Ghia et al.[22] publicam resultados benchmark para altos Reynolds, obtidos dentro de um excelente tempo computacional e utilizando a técnica de Multigrid. Em trabalhos anteriores, Benjamin & Denny(1979)[8] e Agarwal(1981)[1] ja haviam obtido resultados confiaveis para altos Reynolds ( 10000 e 7500, respectivamente), fazendo- se uso de técnicas distintas de diferengas finitas, porém com tempo computacional bastante elevado. Fazendo uso de equagées em termos de fungdo-corrente e vorticidade, Ghia et al. iniciam os calculos realizando uma discretizagao sobre uma malha uniforme, aproximada por diferengas finitas centrais de segunda ordem aplicadas as derivadas de segunda ordem, enquanto que os termos convectivos sao representados pelo esquema de diferengas upwind de primeira ordem. Através deste processo, é obtida uma malha bastante refinada para Re=100, facilitando a aproximagao para Reynolds mais altos, para os quais ainda sao empregados os procedimentos de Rubin e Khosla[55] denominados CSI (coupled strongly implicit), para estabelecer uma granularidade maxima da malha no processo de projegao, que possa reter informagdes essenciais do campo e portanto, garantir uma boa aproximagao inicial para as malhas mais finas, Sao exibidas isolinhas e tabelas para ndmeros de Reynolds até 10000. Em 1983, Munson & Sturges[39] publicaram resultados tedricos e experimentais bastante significativos, referentes a escoamentos bidimensionais a baixos Reynolds. Como aparato experimental, foi utilizado um tanque circular, contendo barreiras estacionarias simétricas e perpendiculares as suas paredes. Em tal trabalho é feito um estudo detalhado das modificagdes ocorridas no escoamento, decorrentes da mudanga na razao de aspecto, obtida a partir da razao entre o tamanho da barreira em relagao ao diametro do tanque, ficando provado experimentalmente que o padrao de linhas do escoamento obtido depende exclusivamente do tamanho e quantidade de barreiras utilizadas. Este trabalho discute ainda, a possibilidade de obtencao de resultados numéricos, mesmo para escoamentos mais complexos, utilizando-se como aproximagao 0 escoamento de Stokes préximo aos pontos de estagnagdo, que ira permitir 0 desenvolvimento de uma solugao analitica para os campos nas vizinhangas. destes pontos. Em 1986, Sturges(63] publica um trabalho relatando os resultados obtidos para o escoamento em uma cavidade retangular com paredes méveis. Neste estudo, sao mostrados os diversos padrdes de escoamento obtidos a partir da variagao da razio de aspecto da cavidade. Tais resultados sao obtidos para baixa velocidade das paredes, podendo-se portanto, desprezar o termo convectivo da equacdéo de movimento, o que permite trabalhar com a aproximagao conhecida como escoamento de Stokes. Sturges determinou os valores da fungao-corrente para diversos escoamentos; para isto utilizou a série obtida a partir da solugao analitica, truncando-a para um numerc finito de termos e determinando os coeficientes numericamente. Em 1990, Rodriguez-Prada et al.[54] utilizaram um processo de elementos de contorno para a solugao da formulagdo das equagées de Navier-Stokes a duas dimensées, em termos de Fung&o Corrente-Vorticidade. O método dos elementos de contorno encontra a solugao de um dado problema a principio, somente no contorno do dominio, desacoplando a solugao do contorno da solugao nos pontos interiores. Desta forma, a solugao dos pontos interiores pode ser encontrada a posteriori, por integracao direta. Segundo os autores, a aplicagéo do método dos elementos de contorno as equagées de Navier-Stokes incluindo os termos inerciais, complica o problema consideravelmente. Nesta referéncia, os autores propdem uma nova metodologia de resolugao, utilizando as equagdes acopladas de Navier-Stokes em estado transiente, de forma a tratar os termos nao lineares via um procedimento de discretizagéo no tempo. O caso-teste utilizado foi o da cavidade quadrada, com uma parede deslizante, para varias faixas de numeros de Reynolds. Como conclusao, os autores afirmaram que o método nao converge para Numeros de Reynolds superiores a 300, mesmo. através do uso de relaxacao entre as iteragdes, provando que a técnica é instavel para altos numeros de Reynolds. Ainda em 1990, Lippke e Wagner[34] publicam um trabalho referente a métodos numéricos aplicados as Equagdes de Navier-Stokes, utilizando como teste, o escoamento em cavidade quadrada. Neste trabalho, a Equagdo Diferencial Parcial que descreve o problema é formulada em termos de fungao corrente. As equacdes no lineares discretizadas pelo método de diferengas finitas centradas, sAo resolvidas por uma sequéncia de iteragoes Newton-Chord, utilizando a decomposigao LU modificada. Esta decomposi¢ao especial aliada a alternancia dos métodos de Newton e Chord no processo iterativo, reduzem significativamente o tempo de processamento € a quantidade de memoria requerida para resolver o problema, permitindo que todos os calculos sejam realizados em um PC. Os autores utilizaram como referéncia, o trabalho de Schreiber e Keller[56], onde também foi utilizada a formulagao em fungao corrente, sendo publicados os valores de fun¢&o corrente e vorticidade obtidos para todos os vortices, para Reynolds até a faixa de 10000. A resolucdo obtida para 121 x 121 ndés usados na discretizagao, 6 a metade dos pontos utilizados por Schreiber e Keller e % dos pontos usados por Guia et al., em trabalhos anteriores. Os resultados s&o concordantes com aqueles obtidos por Guia et al., e Benjamin e Denny{8] para médios valores de Reynolds e com os de Schreiber e Keller, para Reynolds na faixa de 10000. O estudo prossegue até Reynolds=30000, sendo os resultados para esta faixa, encontrados pela primeira vez na literatura. Em 1993, Shankar[60] investigou a influéncia dos vértices formados nas arestas, no Processo de gerac&o de grandes vortices no interior da cavidade. Uma atencao particular foi dada ao estudo do erro induzido pelo truncamento de autofungdes, uma vez que foram detectadas diferengas de resultados no valor da solugdéo em dois. trabalhos anteriores: em 1967, de Pan e Acrivos[45] e em 1978, de Joseph e Sturges [28]. Constatou-se que no primeiro trabalho, os erros eram devidos ao uso de uma malha de diferengas finitas insuficientemente refinada. JA no segundo, a diferenca devia-se ao emprego de um numero pequeno de autofungdes, em sua expansao em séries biortogonais. Em 1996, Krasnopolskaya et al.[30] realizam estudos sobre 0 escoamento de Stokes em uma cavidade anular, constituida de dois cilindros méveis. Em seu trabalho utiliza- se duas séries de Fourier, que satisfazem a todas as condigées de conterno. Um importante fato detectado neste estudo, é a similaridade do comportamento fisico do escoamento nesta geometria comparado ao escoamento em geometrias retangulares. Em 1996, Gaskell et a!.[20] apresentam um modelo pata escoamento viscoso dentro de uma cavidade cilindrica, formada por dois cilindros concéntricos. O problema de valor de contorno é formulado através da aproximagao de Stokes, resolvida em termos de fung&o-corrente. As caracteristicas da tungéo-corrente nas vizinhancas dos pontos de estagnagao, so investigadas por meio de séries de Taylor truncadas. Neste 12 trabalho, é utilizada a Transformagao de Shanks[61], para produzir aceleragao de convergéncia. Nesta referéncia sdo detalhadas as modificagdes ocorridas no escoamento, de acordo com as variagdes das razGes de aspecto e dos raios dos cilindros. Os autores concluiram que ha valores criticos de razao de aspecto e razao de velocidades, para os quais os pontos de estagnagao se alternam entre centro e ponto de sela (bifurcagao). Em 1998, Gaskell et al[21] publicam resultados numéricos e padrées de isolinhas para escoamentos de Stokes aplicados a diferentes configuragées de cavidades retangulares. O primeiro modelo descreve uma cavidade possuindo uma ou duas paredes (superior e/ou inferior) mdveis. Os outros dois modelos caracterizam uma cavidade possuindo a superficie superior livre com duas paredes laterais méveis (segundo modelo) ou parede inferior mével (terceiro modelo). Em todos os problemas. adota-se formulagao em fungéio corrente. As solugdes sao apresentadas de forma comparativa, fornecendo valores obtidos através de métodos analiticos, desenvolvidos por Joseph and Sturges[28] e Shankar [60] respectivamente, e resultados obtidos a partir do uso da formulacdo por elementos finitos das equagdes governantes. De acordo com os resultados, a boa concordancia entre os dados obtidos a partir dos diferentes métodos é atingida quando se usa um numero de termos suficientemente grande nas expansdes. Também s&o apresentadas as linhas de corrente obtidas para cavidades com diferentes razées de aspecto e valores das velocidades adimensionais no contorno. CAPITULO I Formulagao dos Problemas-Teste 1.1 - O Problema Classico da Cavidade com Parede Deslizante © escoamento de um fluido no interior de cavidades com paredes deslizantes caracteriza uma classe especial de problemas representada por padrées de linhas de corrente fechadas, podendo apresentar um ou mais vortices, de acordo com a variagéo de parametros governantes, tais como velocidade do contorno, razao de aspecto da cavidade ou viscosidade do fluido. © problema cldssico, ja amplamente estudado, é representado pela cavidade de secao quadrada, completamente preenchida por um fluido e possuindo uma parede mdvel, com velocidade uniforme; desta forma, a parede mével causa uma circulagdo do fluide dentro da cavidade. O padrao das linhas de corrente varia entao, em fung&o do ndmero de Reynolds do escoamento. u=0;v=0 Figura 2.1 - Cavidade de Seceao Quadrada As principais hipsteses consideradas para a formulagdo das equagdes que governam © escoamento no interior desta cavidade sao: ~ Fluide Newtoniano - Escoamento em Regime Estacionario - Escoamento Incompressivel e laminar ~ Propriedades fisicas constantes - Condi¢&o de Impermeabilidade no Contorno - Fluido |sotérmico 14 Considerando as hipdteses citadas, 0 escoamento acima descrito 6 governado pelas equagdes de Navier-Stokes € continuidade, que podem ser escritas na forma adimensionalizada: u.Vu=-VP + av ( Equagdes de Conservacao da Quantidade de e Movimento ) Vu =0 ({ Equagao da Continuidade ) onde: Re =pUL/p O sistema pode ser re-escrito utilizando a equagao de transporte de vorticidade, para representar o escoamento bidimensional estacionario na cavidade: 0 y) dun(x, y) u(x, YJ ay +n) =p Vow y) (2.4) onde u(x,y), v(xy) representam as componentes do campo de velocidades nas diregGes x e y respectivamente. Esta representacao das Equagées de Navier-Stokes é conveniente pois elimina o gradiente de pressdo, presente na formulagao em variaveis primitivas. Considerando a definigao de fungao corrente w(x, y) associada as componentes da velocidade: u(x y)= ¥ (2.2.a) uxy) =e (2.2.b) x Utilizando a definigao de Vorticidade: o=Vxu=—-— (2.3 wes (2.3) e aplicando (2.2) em (2.3): o=Vy (2.4) Substituindo 2.2, 2.3 e 2.4 em 2.1, sdo obtidas as equagdes de Navier-Stokes em termos de fun¢&o corrente ¥(x,y) conforme descrito a seguir: ay oy oy dy ay oy aw ay_ Jy ey -—~* -2¥ ew _ ly 2.5) ay Ox dy Oxy? Ox Oe’dy ax dy? Re” = 5) sendo que as Condigdes de Contorne que completam a formulagéo do problema sao dadas por: y=0; Wao ; x=0 2.6.) (2.6.b) (2.6.0) y=0; Woy; yor (2.6.4) oy A equagao (2.5) é de quarta ordem, onde o operador biharménico é representado por: a 2a at v‘ = ax? Way +o (2.7) 16 A nova formulagao, incluindo as Condigées de Contorno, em termos da fungao corrente, é mostrada no esquema abaixo: oy =0,2=-1 v= 05, oy =0;— =0 veo oy =0—= yas Figura 2.2 — Formulagao em Funcao-Corrente para Cavidade Quadrada A inexisténcia da velocidade normal as quatro paredes da cavidade deve-se a condi¢ao de impermeabilidade. O campo de velocidades no contorno superior deve-se apenas & componente tangencial. A componente tangencial nula nas paredes laterais e interior deve-se a condig¢ao de nao-deslizamento. O caso linear homogéneo + y= 0, conhecido como problema de Stokes, oferece resolugées analiticas na fiteratura, conforme descrito em [10,45]. 12 - Variagdes do Problema Classico Como alternativa ao problema classico, seréo apresentadas as formulagdes para casos similares, tais como o escoamento de Stokes em cavidades retangulares, com diferentes disposigées de paredes mdveis e/ou contendo superficie livre. Estes modelos constituem uma aproximagao util para muitos escoamentos de interesse na engenharia. Na referéncia[21], foram analisados exemplos de escoamentos a baixos Reynolds em diferentes configuragées. O primeiro modelo a ser apresentado é constituido por uma cavidade retangular com todas as paredes sdlidas e duas (superior e inferior) deslizantes (fig. 2.3.a). Este, além de representar uma modelagem util para, por exemplo, o escoamento geofisico na crosta terrestre, é um problema classico de benchmark utilizado para testes de novos algoritmos computacionais em Mecdnica dos Fluidos. O segundo e terceiro modelos, constituem-se em cavidades com combinagaéo de Paredes sdlidas e superticies planas livres (fig. 2.3.b,c), possuindo diversas aplicagdes industriais tais como processamento de polimeros e produgao de finas camadas de ceramica utilizadas em eletrénica. Alguns destes exemplos serao posteriormente investigados via GITT para uma ampla faixa de numero de Reynolds e razao de aspecto. Figura 2.3.2 Cavidade com Paredes Solidas Destizantes e Condigées de contorno correspondentes wasyawnd My" Lg wives Lf Lge. oy pas Figura 2.3.b "Open Driven Poo!" e Condigées de Contorno correspondentes Figura 2.3.c “Ceramic Tape Caster” e Condi¢des de Contorno correspondentes CAPITULO Il Aplicagao da GITT e Especificagdo de Algoritmo lIL1 - Aplicag&o Direta da GITT O procedimento de solugao do problema descrito na segao I.1 mediante a técnica de transformada integral generalizada pode ser esquematizado da seguinte forma: a) Obteng&o de um _ problema auxiliar adequado, que contenha o maximo de b) ©) d e) ) informagées possivel do problema original, em relagdo & geometria e aos operadores nas coordenadas a serem eliminadas na transformagao integral. O problema auxiliar na presente solugdo, sera escolhido com base em um problema homogéneo que inclua os termos difusivos. Solugao do Problema Auxiliar e obten¢&o das autofungées, autovalores e normas. Desenvolvimento do par transformada-inversa Transtormagao do Problema diferencial parcial em um sistema diferencial ordinario infinito. Obtengao dos Campos Transformados, através do truncamento do sistema infinito, em uma ordem suficientemente grande. O sistema diferencial ordinario resultante sera entao resolvido por procedimentos numéricos bem estabelecidos, disponiveis. em bibliotecas de subrotinas cientificas tais como o IMSL[26] ou NAG[40]. Tais rotinas possuem controle automatico de erro local, por refinamento adaptativo na malha unidimensional e discretizagao de ordem varidvel. Obten¢gao do campo original em forma analitica, fazendo-se uso da formula de inversao. 20 Ill.2 - Metodologia de Solucao A aplicagao da Transformagao Integral ao Problema Diferencial Parcial (2.5) e (2.6) é realizada mediante a integragaéo da equagao diferencial parcial original em uma das diregdes coordenadas de forma a se obter um sistema diferencial ordinario. O conjunto das autofungdes que oferece a base da expansdo da fungdo corrente, é obtido a partir da utilizagao de um problema auxiliar. A descrigao completa pode ser encontrada em [47]. O problema auxiliar foi determinado na diregéo em que as condigdes de contorno sao naturalmente homogéneas. Desta forma, o problema auxiliar fica definido por: wiX,; i=1,2,3, (3.1) aX,,(0) X,(0)= “20 (3.2.a,b) (3.3.a,b) Com solug&o geral definida por: X, =C, cosh u,x+ C,sinhyt,x + C, cos 1.x +C,sing,x (3.4) cuja equagéo transcendental para o cdlculo dos autovalores 6 dada por: cosh u, cos f, = 1 (3.5) € que permite encontrar os autovalores y's necessarios & solugdo do problema auxiliar, 21 Considerando as Condigdes de Contorno (3.2.a,b) e (3.3.a,b) em (3.4), obtemos as autofungdes: cosh £,x-cosf,x — sinhu.x—sing.,x cosh ff, — cos ft, sinh, — sing, XQ)= ; G=1,2,3... (3.6) A expressao (3.6) pode ser escrita em modos pares e impares, de forma a facilitar a analise e os calculos. Manipulando a expressdo transcendental em (3.5) obtém-se autovalores distintos para modos pares e impares conforme dado a seguir: tan #15; =1,35,... anhHi=} 2 (3.7) sendo que as autofungées sao reescritas como: sings (x-112) _sinhtt(x-12) 9 4g sinE sinh (3.8) cos H, on 1/2) cosh wx-1/2).s gg rr ne ae 5S > cosh cos 2 com base na Norma definida por: 1 N= [x}ax (3.9) ° quando aplicada a equagao acima, tem-se que : 1 N,=]X/de=1 (3.10) ° 22 indicando que a fun¢ao é auto-normalizada. 11.2.1 - O Par Transformada-Inversa Continuando dentro da proposta da GITT, tem-se que a fungao corrente, em sua forma bidimensional, pode ser representada como uma expansao em autofuncdes: vx.) = 5 %,0C07,0») (3.11) a onde; 1 z Xx) =| x? Rix) N, [xfae (3.12) Multiplicando ambos os lados da expresso (3.11) por ¥ ;(%) e integrando-se no dominio x, obtém-se: on =} Xl, vide “YG, XX ode (3.13) 3 Aplicando-se a propriedade de ortogonalidade: Opie F oe Lis j 4-3, -{/" / (3.14) Chega-se finalmente ao par Transformada-Inversa definido por: 23 1 VO) = J ¥, Coys ya (Transformada) (3.15) a Wx y=S Ey) (Inversa) (3.16) Através da utilizagéo da transformada (3.15), o sistema diferencial parcial dado em (2.5) sera transformado em um sistema diferencial ordinario, através da remogao da dependéncia em x. A recuperagao do potencial original y(x, y)sera realizado através da formula de Inversao (3.16) 24 Il1.2.2 - Transformagao do Problema Original A formula de transformag&o é aplicada & equagao (2.5) e suas condigdes de contorno, multiplicando cada termo pela autofungao X, (x) e integrando ao longo da diregao x: , 5 9 [x Vv OV ay oy g oy ay oya’y aa ae? fs “Oy dxay? acs ere avajx, ae f av = (3.17) a+ [X, SF (3.17) o O primeiro e o terceiro termo do segundo membro da equagéo sao facilmente transformaveis dentro da proposta original da Transformada Integral. Ja os termos convectivos no primeiro membro da equagao, assim como o segundo termo no lado direito, nao sao transformaveis dentro do contexto da transformada integral classica. No entanto, fazendo-se uso da Transformada Integral Generalizada, isto torna-se possivel aplicando-se a fdérmula de inversdo. As integrais provenientes desta transformagao sao coeficientes que iréo compor cada um dos somatdrios. Tais coeficientes sao calculados analiticamente em rotinas desenvolvidas por Pérez Guerrero et al.[47,49]. Da mesma forma, a transformag&o é aplicada as condigdes de contorno do problema original, na diregdo y, dadas pelas equagGes 2.6.a-d, obtendo-se: 7,(0) =0 (3.18.a) 7.) =0 (3.18.b) 7, (0)=0 (3.18.¢) vM=f, (3.18.4) 1 Onde: f=-[R desi = 123, 2 Chegando-se a: F tan Bi =135.00 (3.19.1) A 4,=0;1= 246,00. (3.19.2) 25 A partir da transformagao aplicada, obtém-se um sistema infinito de equagdes ordinarias néo-lineares de quarta ordem com condigdes de contorno em dois pontos. Este sistema é resolvido numericamente, através do truncamento da expansdo em um numero finito de termos suficiente para obter solugdes convergidas para uma precisao desejada. Portanto, 0 sistema finito a ser resolvido fica representado por: ay, — dy, w ay, — —ta-uly,+ ~2D, £+Re| S'( ty.+ oO x ve RED Aa oe (3.20) dy, dy, .—dy, , — an wy ay OY ay eV 26 1.3 - Algoritmo Computacional - Subrotina BVPFD Os primeiros programas para a resolugéo de Problemas de Valor de Contorno surgiram por volta de 1965 com Pereyra[46], consistindo de uma implementagao de diferengas finitas de ordem varidvel baseada em corregées adiadas, tendo estimagao de erro global e refinamentos sucessivos da malha uniforme. Alguns métodos globais tais como a regra do ponto médio e trapezoidal, foram acrescentadas as idéias iniciais de Pereyra e apresentados no programa PASUNI, em 1974, por Lentini e Pereyra[32]. Outros programas surgiram nos primeiros anos da década de 80 com 0 objetivo de obter solugdes numéricas para problemas de valor de contorno. Dentre eles, pode ser citado 0 COLSYS, cédigo desenvolvido por Ascher, Christiansen e Russel [2], tendo como base a colocag&o de pontos gaussianos, nos quais a solugéo desejada é aproximada por segmentos. O DTPTB[26] foi outra rotina desta classe e consistia de uma verso modificada da rotina DVERK, existente na biblioteca matematica IMSL[26], utilizada para problemas de valor inicial. A DVERK foi alterada, sendo incorporado o método de multiple- shooting. No entanto, as técnicas de shooting, que consistem da substituicao de um probiema de valor de contorno por uma sequéncia de problemas de valor inicial, sao Gteis em problemas de baixa rigidez, mas tornam-se ineficientes quando se aumenta a rigidez do problema. De um modo geral, a maior parte destes algoritmos apresentavam ainda como inconveniente, a utilizag&o de passos uniformes, tendo aplicabilidade limitada, pois tornavam-se muito caros quando surgiam variagdes bruscas na solugao do problema, tais como camadas-limite. Como estas variagdes surgiam com muita frequéncia nas aplicagdes, os métodos progrediram no sentido de se desenvolver um procedimento de adaptagao dinamica para a geragdo de uma malha nao-uniforme. O primeiro programa que surgiu utilizando estas novas idéias foi o PASVAR[17], que incorporava a possibilidade de especificagao de passos varidveis dentro da técnica utilizada para a resolug&o do problema. A idéia chave no processo de refinamento automatico de malha era a equidistribuigaéo da norma do erro local, utilizando aproximagées por splines. © PASVA2 surgiu em 1975, sendo uma adaptagéo do PASVAR, fartamente documentado e escrito em Fortran. As alteragdes decorrentes do uso desta versao, deram origem ao PASVA3 e posteriormente este programa foi incorporado a biblioteca do IMSL, sob forma de sub-rotina, denominada DVCPR. 27 Versdes do PASVA3 também aparecem no Harwell Subroutine Library(DDO4AD) [24] e na biblioteca NAG(DO2RAF) [40]. As alteragdes, em sua maior parte referentes ao esquema de alocagao de meméria, geraram uma nova versao da rotina, ainda denominada BVPFD, que resolve um sistema opcionalmente parametrizado através do método trapezoidal de ordem varidvel, discretizando uma malha nao-uniforme escolhida adaptativamente e com controle de erro global. O sistema algébrico nao-linear resultante do processo iterativo, € resolvido pelo método de Newton Generalizado. A BVPFD é portanto atualmente, uma das rotinas comumente utilizadas para a solugéo de sistemas diferenciais ordindrios associados a problemas de valor de contorno com comportamento stiff, presentes nos algoritmos de transformacaéo integral. A solugao de sistemas com comportamento stiff apresenta uma dificuldade adicional, que reside principalmente no esquema de adaptagdo da malha utilizada, de forma a manter praticamente 0 mesmo, o erro local entre os pontos. Ou seja, o método deve ser eficiente o bastante, no sentido de refinar a malha o maximo possivel , em regides aonde a fungao, aproximada por algum esquema numérico especifico, apresenta variagdes bruscas, mantendo menor refinamento nas regiées em que a funcado apresenta-se mais estavel. A BVPFD resolve sistemas contendo equagdes de primeira ordem. Como a formulagao em (3.22) consiste de um sistema de quarta ordem, este devera ser transtormado em um sistema de primeira ordem equivalente. Esta rotina exige a especificagao de uma tolerancia absoluta que é imposta a todos os componentes da solugao. A utilizagao da BVPFD prevé ainda, a construgao de trés a cinco fungdes por parte do usuario e que so chamadas peia rotina principal. Sao elas: FCNEQN - Especificagao do Sistema Diferencial Ordinario FCNJAG - Especificagao do Jacobiano do Sistema FCNBC - Especificag&éo das Condigées de Contorno FCNPEQ - Especificagao das Derivadas Parciais relativas ao parametro p. FCNPBC - Especificagaio das Condigdes de Contomo relativas ao 28 parametro p. As duas Ultimas rotinas sao utilizadas somente quando o problema for parametrizado. De acordo com [47,49], a redefinig&o da equagdo (3.20) para um sistema de primeira ordem é feita da forma a seguir: YO=G, (3.21.a) Yar) -% 3.21.) ay, Yavail Y= i 3 (3.21.c) ai Youail Y= (3.21.4) fw ay" a Pat ma (3.21.2) Onde: i=1,2,3,....N e ¥(y) = vetor solugéo 29 Sendo assim, 0 sistema a ser resolvido computacionalmente, fica definido por: dY, o a Ses 2D Yan FRED [AWK yj + Bakar Yann (8:22) — CV ¥ovvn — Big Vel ane 1 5G SLQN As demais 3N equagdes do sistema diferencial de primeira ordem sao dadas por: Meany, 5 i 212.3N (3.23) dy com condigdes de contorno: ¥(0)=0 (3.24.a) ¥(1)=0 (3.24.b) ¥y.i(0)=0 (3.24.c) Fail =F, (3.24.4) Portanto, o sistema de quarta ordem dado por (3.20), tendo a série truncada por exemplo, em N termos, seré representado por um sistema de 4*N equagées de primeira ordem nao-lineares, a ser resolvido pela BVPFD. 11.3.1 Estratégia de Codificagao do Algoritmo O procedimento computacional desenvolvido para o uso da rotina BVPFD, nao se restringe somente ao problema da cavidade; ao invés disto, a construgdo deste algoritmo pessui caracteristicas genéricas a serem utilizadas para qualquer problema eliptico resolvido via GITT. O procedimento de resolugao do sistema diferencial nao-linear, segue basicamente os seguintes passos: - Especificagao do numero de termos no truncamento das expansées - Gerag&o dos Coeficientes Integrais 30 - _ Especificagao de uma malha, podendo ser inicialmente igualmente espagada Apés a resolugao do sistema, é realizada a inversao dos campos transformados, para a determinacdo da fungao-corrente. Ill.4 - Alteragdes para Implementagao dos casos II.2 A partir da andlise dos trés modelos para o problema de Stokes apresentados na (fig.2.3), concluiu-se que os modelos 1 (com variantes) e 3, apenas requerem modificagdes na implementagado de uso da BVPFD, ou seja, sera utilizada a mesma metodologia obtida para o caso classico descrito na Figura 2.2. O modelo 2 requer modificagao na formulagao do problema auxiliar, sendo necessaria a geragao de um novo conjunto de autovalores. Isto deve-se a mudanga na orientagao. de coordenadas para a especificagao das paredes deslizantes. Os modelos serao portanto esquematizados, conforme mostrado a seguir: (3.4.9) (3.1.4) (3.1.e) > Esquema de Variagdes para o Problema Eliptico Problema de Stokes - (¥=0 Os modelos 3.1.a, 3.1.b @ 3.1.c promoverao aiteragées apenas na rotina FCNBC, que especifica as condi¢des de contorno, de acordo com o caso. Se a cavidade possuir geometria com raz&o de aspecto diferente da unidade, o dominio de resolugao do sistema também devera ser alterado. © modelo 3.1.d, também requer alteragéo na rotina FCNBC, no que concerne & representagdéo da superficie livre. Neste caso, a condigéo de contorno a ser considerada é a de Newman. Ja o modelo 3.1.e exige modificagdes mais significativas na formulagao do problema, conforme seré apresentado em trabalhos futuros. 31 CAPITULO IV OTIMIZACAO COMPUTACIONAL Pretende-se neste capitulo, realizar um estudo de diversas técnicas que possam melhorar a performance computacional do algoritmo utilizado na solugao de problemas elipticos, com a utilizacéo da GITT. Plataformas Computacionais Utilizadas 1. Pentium II - Velocidade de processamento de 450 Mhz e 192 Mb de memoria. 2. Cray J90 - Composto de 8 processadores, com palavra de 64 bits, operando a 200Mflops/CPU, com meméria compartilhada, num total de 2Gb. 3. IBM SP2— Composto de 8 processadores, com palavra de 64 bits, operando a 200Mfiops/CPU, com meméria distribuida, num total de 2Gb. Neste sistema existem as seguintes possibilidades de processamento paralelo: 1) Execugao via Switch - Processamento em Batch (fila) 2) Execugao através de clusters de estagées: execugao interativa Devido 4 pequena quantidade de recursos alocados e a rapidez do tempo de processamento para o caso-teste selecionado, foi utilizada a segunda forma de execugao, apesar de se pagar o prego da obtencao de menor performance de execugao, comparativamente ao caso 1, aonde a troca de mensagens ocorre de forma muito mais rapida. {V.1 O processo de parametrizacao do termo nao-linear A medida que cresce a nao-linearidade do sistema, ocasionada pelo aumento do numero de Reynolds, torna-se necessdria a utilizagao de algum tipo de Parametrizagao, para que a solugao do sistema de equagées diferenciais ordindrias se torne vidvel. Em muitos casos, o problema a ser resolvido contém um parametro relevante do ponto de vista fisico, possuindo valores para os quais a solugao é facilmente encontrada, sendo de dificil resolugéo para um determinado valor de interesse. Se nenhum 32 parametro natural esta presente na equagao ou sistema a ser resolvido, 6 necessaria a introdugao de um parametro artificial, de forma que o problema possa ser resolvido por meio de continua¢ao homotdépica[59]. No caso da parametrizacdo natural, o parametro a ser utilizado sera um valor que possua significado fisico e cujo aumento de intensidade contribua para o aumento da n&o-linearidade do sistema. Tal parametro, inicialmente de valor pequeno, é& multtiplicado ao termo ndo linear do sistema, de forma a reduzir a sua importancia. A matha e os campos obtidos na iteragao anterior sao utilizados como aproximag&o para a determinagao de um novo sistema, similar ao anterior, porém com maior contribuigao da nao-linearidade. Ou seja, o problema anterior garantira um boa aproximagao para 0 problema seguinte. Isto tem como base, a necessidade de uma boa aproximag&o inicial para que a resolugao de um problema na -linear torne-se convergente. Este processo é repetido sucessivamente através do incremento de valor para 0 parametro até que este atinja o seu valor real, remetendo portanto, ao sistema original. Na estratégia de continuacao, o parametro que sera multiplicado pelo termo nao linear 6 escolhido de forma a manter constante 0 erro entre os pontos da malha gerada, garantindo a obtencao de convergéncia pelo método iterativo de Newton. Na BVPFD, 0 usudrio especifica 0 valor inicial do incremento a ser utilizado. © ntimero de passos que serao utilizados para a resolugado do sistema diferencial ordinario é determinado pela rotina com base na avaliagao do erro no processo de discretizacao da malha. IV.1.1 Estratégias de Parametrizagao para o Problema © problema especificado em il.1, permite a utilizagéo das duas formas de parametrizagao citadas. O numero de Reynolds, que esta associado ac termo néo. linear das equa¢des podera ser utilizado como parametro natural. Isto exigira que o controle de iteragGes seja explicitado dentro do algoritmo. Uma segunda forma de resolugéo do problema, é a utilizagéo do processo de parametrizagéio automatica disponibilizada pela rotina BVPFD. 33 1V.1.1.1 Parametrizagao para controle de termo Nao-Linea Parametrizagao Natural A estratégia de parametrizagao é utilizada externamente, ou seja, é criado um parametro representado por um numero de Reynolds de menor intensidade do que o requerido para o problema real, associado ao termo ndo-linear. E criado um processo iterativo de chamadas a rotina BVPFD com o numero de Reynolds sendo incrementado sucessivamente, até que o sistema restabelega sua caracteristica inicial. Os numeros de Reynolds intermedidrios so obtidos a partir de sua multiplicagao por um parametro menor do que a unidade (facdelta) que também esta associado as condigdes de contorno naéo homogéneas. Em cada passo, s4o utilizados os pontos da malha obtida na iteragao anterior. A seguir sao mostrados alguns resultados obtidos a partir do algoritmo implementado utilizando a parametrizagao natural. Todos os casos foram rodados para o modelo 3.1.a, Reynolds=1000 e 29 termos nas expansdes. Parametro Reynolds Tolerancia Matha Final Tempo(s) 0.10 | 0,100,200,300,400,500, 145) 235) 2894.30, 600,700,800,900,1000 0.20 0,200,400,600,800, 1000 1.05 257 2053.28 0.25 0,250,500,750,1000 10-5 265 2055.36 0.30 | 0,300,600,900,1000 1.05 245 2875.13 0.40 0,400,800, 1000 1.05 248 1639.75 0.45 | 0,450,900,1000 145 252 3676.88 0.50 0,500,1000 1.05 271 1841.11 Tabela 4.1 - ComparagGes de Tempo para diferentes parametros. Tol=10" Parametro Reynolds Tolerncia | Malha Final Tempo(s) 0.10 | 0,100,200,300,400,500 14 206 1582.34 600,700,800,900, 1000 0.20 0,200,400,600,800,1000 1.d-4 201 673.28 0.25 0,250,500,750,1000 4.d-4 195 988.66 0.30 0,300,600,900,1000 1.04 206 961.19 0.40 |0,400,800,1000 14 192 807.95 045 |0,450,960, 1000 Ta4 205 842.72 0.50 0, 500,1000 1.d-4 244 1244.34 Tabela 4.2 - Comparagées de Tempo para diferentes parametros — Tol=10" 34 De acordo com as Tabelas 3.1 e 3.2, para as tolerancias de 10° e 10% os melhores resultados relativos ao tempo de execucdo foram obtidos para uma parametrizagao de 0.4. A variagao no tamanho da malha final convergida para diversos valores do parametro, néo chega a ser significativa. Porém, 0 aumento da precisaéo requerida dobrou o tempo de CPU. Para alguns casos obtidos a partir da tabela 3.1, foi realizado um teste com o intuito de verificar a influéncia da variagéo da tolerancia ou precisao relativa dentro do processo iterativo. Na tabela a seguir, as primeiras linhas corresponde aos valores obtidos a partir da execugaéo do programa utilizando a precisao de 10° em todas as iteragdes. Ja na segunda linha, foi utilizada a tolerancia tol=10* nos passos intermediarios ¢ tol=10* na iteragao final. Facdelta Reynolds Tol. Ini Tol. Final | Malha Final Tempo(s) 0.25 0,250,500,750,1000 | 1.4-5 1.4-5 265) 2055.36 0.25 0,250,500,750,1000 1.d-3 10-5 274 1860.77 04 0,400,800, 1000 14-5 1.65 248, 1639.75 04 0,400,800,1000 1.d-3 1.d-5 272 1596.63 05 0,500,1000 1.45 10-5 274 1841.11 05 0,500,1000 1.d-3 1.d-5 272 1682.07 Tabela 4.3 — Comparagées de Tempo para diferentes tolerancias entre iteragoes: A combinagao do uso de uma preciso menor ( e portanto a obtengao de uma malha mais grosseira para os passos intermediarios ) em conjunto com a especificagado da preciso desejada somente no passo final leva a um ganho de tempo de processamento razoavelmente significativo, porém com pequeno aumento no tamanho: da malha causado pela necessidade de ajuste dos pontos no processo de obtencao de resultados com maior precisdo na ultima iteragaio. 1V.1.1.2 Parametrizagao da BVPFD O processo de parametrizagao definido pela rotina BVPFD consiste em resolver um sistema: w =p fy yiy y") 35 onde p inicia em zero (representando um problema mais simples de ser resolvido), caminhando até o valor de 1, remetendo ao problema original. © usuario deve especificar o incremento inicial para o parametro p, denominado PISTEP, sendo que os préximos incrementos serao realizados automaticamente pelo algoritmo que ira gerar uma malha nao-uniforme, cujo processo adaptativo consiste em manter 0 erro local constante. P/STEP devera ter o valor minimo de 0.01. Para este tipo de parametrizagao, a estratégia utilizada foi portanto, a fixagao de um valor para 0 parametro da BVPFD (PiSTEP) combinado com a utilizagao de valores anteriores de pontos da malha e valores a cada expansdo. A parametrizagao também pode ser aplicada as condigées de contorno nao- homogéneas. Neste caso, 0 parametro p também deverd ser multiplicado as condigdes de contorno nao-homogéneas especificadas na rotina) FCNBC, indicando que o problema sera resolvido utilizando condigdes de contorno intermedidrias, mais faceis de serem resolvidas, retomando o contormo original no final do processo de parametrizacao. A seguir, sao mostrados os resultados para diferentes tolerncias prescritas. A parametrizacao € aplicada diretamente aos primeiros 29 termos da série, com Reynolds=1000. Pistep Reynolds Toierancia | __ Malha Final Tempo(s) oa 7000 Ta 239 7084.50 01 1000 1.d-5 268 1569.28 Tabela 4.4 — Parametrizacao BVPFD. Comparagées de tempo de execugao para diferentes precisées requeridas. Na tabela 4.4 verifica-se que uma exigéncia maior no controle de erro dos campos transformados, iré implicar em um maior refinamento da malha, conforme esperado. Mas os dois casos da tabela 4.4 fornecem uma malha final significativamente maior, quando comparada as malhas da parametrizagao alternativa (Tabelas 4.1, 4.2) ao se considerar um mesmo parametrizador. No entanto, ao se analizar os tempos de processamento, resulta que a alternativa de uso do processo de parametrizagdo da BVPFD apresenta-se mais eficiente, em contradigaéo ao maior numero de pontos gerados. 36 1V.2 - Consideragées sobre o uso das rotinas de parametrizagado especificadas pelo usuario ( FCNPEQ, FCNPBC ) A chamada da rotina BVPFD , fazendo uso ou nao do processo de parametrizacao, pode ser realizada utilizando 0 mesmo conjunto de argumentos. Isto significa que o uso das rotinas FCNPEQ e FCNPBC nao é obrigatério; 0 que ira especificar o uso da parametrizagdo sera o valor nao-nulo atribuido a variavel PISTEP. A seguir, resultados obtidos através da chamada 4 BVPFD sem uso uso das rotinas FCNPEQ e FCNPBC e pistep = 0.1 utilizada na forma: CALL dBVPFD(FCNEQN, FCNJAC, FCNBC, FCNEGQN,FCNBC,NEQNS,NLEFT, & NCUPBC,XLEFT,XRIGHT,PISTEP, TOL,NINIT.XINIT,YINIT , & LDYINI,LINEAR, PRINT, MXGRID,NFINAL,XFINAL, YFINAL , & LDYFIN,ERREST) N Malha Inicial Malha Final Tempo(s) 5 101 211 3.24 9 au 21 25.81 5 ai 226 150.34 21 226 226 411.33 23 226 226 558.10 25 226 226 711.29 TEMPO IMSL = 1860.11 TEMPO TOTAL = 1861.04 Tabela 4.5 — Parametrizagao (pistep=0.1) sem uso de FCNPEQ e FCNPEC. Re=1000. Tol=10° Para comparagao, sao mostrados os tempos obtidos através do uso das rotinas especificas para 0 processo de parametrizagao, cuja chamada 6 feita na forma a seguir: CALL dBVPFD(FCNEQN,FCNJAC,FCNBC, FCNPEQ, FCNPBC,NEQNS,NLEFT, & NCUPBC,XLEFT,XRIGHT, PISTEP, TOL,NINIT,XINIT, YINIT =, & LDYINILINEAR, PRINT, MXGRID,NFINAL,XFINAL, YFINAL , & LDYFIN,ERREST) 37 N Malha Inicial Matha Final Tempo(s) 5 101 211 2.64 9 ait ant 18.07 15 ait 226 110.46 21 226 226 290.00 23 226 226 393.82 25 226 226 494.88 TEMPO IMSL = 1309.87 TEMPO TOTAL = 1310.74 Tabela 4.6 — Parametrizagao (pistep=0.1) com uso de FCNPEQ e FCNPBC. Re=1000. Tol 10° Observa-se redu¢do no tempo de execucao do mesmo problema, quando as rotinas FCNPEQ e FCNPBC so utilizadas, embora nao sejam estritamente necessdrias para 0 funcionamento do programa parametrizado. Um outro fato observado foi que tanto o fornecimento dos pontos da malha obtida, quanto © fornecimento de pontos da malha em combinagao com os valores dos Potenciais obtidos como aproximacaéo para um numero maior de termos, nao altera o tempo de execug&o do programa, quando aplicado a um numero de Reynolds moderado; em ambos os casos, a média do tempo de execugao obtida foi coincidente. No entanto, a medida que se eleva o numero de Reynolds, a informagao de pontos da malha passa a n&o ser suficiente, sendo absolutamente necessdtia a informacao dos valores dos potenciais como aproximac&o para o processo de obtenc&o de convergéncia para um numero maior de termos da série. 1V.3 Alteragdes no Cédigo - implementagées em Fortran 90 A modelagem de problemas para a area de engenharia, normalmente requer 0 uso intensivo de matrizes e vetores, entidades capazes de armazenar conjuntos de dados de mesma natureza. Para a melhoria deste aspecto, além das modificagdes possiveis para reduzir a quantidade de estruturas utilizadas, pode-se também lancar mao da alocagao dinamica de meméria, ou seja, da criagao ou dimensionamento das estruturas no decorrer da execucao do programa, evilando o superdimensionamento, ou a reutiliza¢ao de estruturas mediante superposigao de dados, decorrentes da alocagao estdtica. O uso da segunda op¢ao é bastante evidente em antigos 38 Programas escritos em Fortran, época em que esta linguagem de programacao ainda nao incorporava as ferramentas para alocagao dinamica de dados. Para que ocorra a redugaéo de tempo de processamento, torna-se necessdria uma estratégia de representagdo de dados que seja compativel com a arquitetura da plataforma a ser utilizada e a correta utilizag&o dos recursos e estruturas disponibilizados pelo compilador. O Fortran90 possui como caracteristicas: Formato livre para a codificagéo do algoritmo, manipulagao dinamica de memoria, estruturas otimizadas para manipulagao de vetores, orientagao a objetos, maior numero de fungées intrinsecas e extens&o das possibilidades de manipulagao de entrada e saida de dados, recursividade, tipos de dados definidos pelo programador, dentre outras. Devido aos fatores citados, optou-se pela adaptagéo do cédigo anterior para Fortran90, ao invés de migra-lo para uma outra linguagem de programacdo. A seguir, s&o mostradas algumas alteraces realizadas no cédigo original. 1) A estrutura abaixo, anteriormente utilizada em cada uma das unidades de Programa, visando o compartilhamento das varidveis e vetores especificados: common /aa/a,b,¢,d,uu,r common /bbin common /cc/tbe Foi substituida pela estrutura independente a ser mostrada a seguir, colocada antes do programa principal (podendo vir também em uma unidade separada a ser compilada de forma independente) e acessada por todas as unidades que tiverem necessidade de uso das variaveis nela contida. Tal unidade é 0 Médulo, que tem como. objetivo, organizar os elementos do programa. Este sozinho n&o é executdvel, mas pode conter declaragdes de dados, definigdes de tipos derivados, informagdes de interface entre procedimentos e definigses de subprogramas, a serem compartilhados por outras unidades de programa. Desta forma, ele se torna mais abrangente do que o COMMON BLOCK, além de oferecer mais seguranga no processo de manipulagao de dados globais. 39 MODULE integer, parameter :: NMAX = 15, DIMENSION A(NMAX,NMAX,NMAX),FBC(NMAX) ,uu(nMAX) DIMENSION (NMAX,NMAX,NMAX),C(NMAX,NMAX,NMAX), & D(NMAX,NMAX) INTEGER N DOUBLE PRECISION R END MODULE Para acessar os dados, agora globais, contidos no modulo acima, basta utilizar o comando: USE no inicio da unidade desejada ( programa principal, fung&o, subrotina ). 2) Os coeficientes, obtidos numericamente através de programas especificos rodados em separado, sao agora gerados de uma s6 vez para o numero maximo de termos, a partir do programa que resolve o sistema de equagdes. Os programas que geram os. coeficientes foram transformados em rotinas externas que s&o chamadas pelo Programa principal. Além disto, os coeficientes que eram gravados em arquivos de dados, s&o agora mantidos em vetores gerados pelas sub-rotinas e compartilhados com 0 Programa Principal, via modulo. 3) A rotina de inverséo que deveria receber como argumento (ou via modulo) informagées tais como numero de termos (N), tamanho final da malha (NFINAL), bem como vetores com pontos da malha e campo transformado respectivamente (XFINAL, YFINAL), além do vetor com os autovalores e o vetor com valores do coefiente D, passou a ser utilizada como uma subrotina interna, herdando automaticamente todas estas varidveis do programa principal, através do uso do conceito de varidvel global. Isto além de tornar a execugao do cédigo mais eficiente, suprime a necessidade de passagem de argumentos entre o programa principal e a sub-rotina. Isto pode ser codificado de acordo com a estrutura abaixo: 40 PROGRAM XX CALL YY CONTAINS. SUBROUTINE YY END SUBROUTINE YY END PROGRAM XX 4) A resolugao de problemas com alto grau de rigidez, muitas vezes sofrem enorme perda de precisao. Devido a este fato, os programas comumente tém suas varidveis e rotinas adaptadas para a precisao dupla. No entanto, os programas com declaracdes DOUBLE PRECISION, por exemplo, nao sao portaveis entre maquinas com diferentes tamanhos de palavras. Um programa que roda em uma maquina com palavra de 32 bits e cujo algoritmo demanda uma precisao maior obtida com 64 bits, normalmente tém suas variaveis declaradas como DOUBLE PRECISION. Caso este programa seja migrado para uma maquina com palavra de 64 bits, ele deve ser rodado com preciséo simples e as variaveis deverao estar declaradas como REAL. Isto ocorre porque, em uma maquina de 32 bits, sao utilizadas duas palavras para a declaragao DOUBLE PRECISION, que é praticamente 0 mesmo efeito de se utilizar uma palavra na maquina de 64 bits. Existe a possibilidade de degradac¢ao de performance do programa caso a declaragdo seja mantida desnecessariamente, em um determinado equipamento. Para eliminar este problema de portabilidade entre maquinas, foi utilizado o recurso proporcionado pelo Fortran90, o atributo KIND, através do qual, a varidvel se ajusta automaticamente a arquitetura da maquina que esta sendo utilizada. Sendo assim, a declaragao: DOUBLE PRECISION NFINAL foi substituida pela declaragao REAL(KIND=8) NFINAL Isto garante que a varidvel possuira em média, 15 digitos de preciséo em base decimal, n&io importando o equipamento utilizado ( PC (dupla precisao), sistema CRAY (preciso simples), estages de trabalho(dupla precisao) ). 41 Cabe observar que o Fortran90 padrao nado suporta declaragdes do tipo real*n, embora esta sintaxe possa ser utilizada em algumas versdes, visando manter a compatibilidade com as declaragées do Fortran77. De toda forma, nao 6 recomendavel © uso desta sintaxe em novos cédigos. © atributo KIND pode ainda ser especificado para varidveis de tipo INTEGER, LOGICAL, COMPLEX e CHARACTER. Os codigos completos dos programas escritos em Fortran90 poderao ser verificados no Apéndice A . Abaixo, sao mostrados os tempos de execugao comparativos para os cédigos original e alterado, respectivamente. 5) Adaptagao do Cédigo para formato livre No Fortran90, os programas podem ser escritos tanto em formato fixo (alinnhados em colunas especificas) quanto em formato livre. Os novos cédigos foram adaptados para a utilizagéo desta segunda opgao, tornando o processo de escrita do cédigo muito mais simples e compativel com o padrao das linguagens mais modernas. Este tipo de formatagao deve ser especificada para o compilador através da extensdo .f90 6) Utilizagao de Secgdes de Arrays Esta flexibilidade permite a selec&o de partes do array na forma de elementos regularmente espacados, tomados paralelamente as suas dimensées. A seguir, 6 mostrado um exemplo: integer, dimension(2,2) =: subvetor integer, dimension(4,4) :vetor subvetor = vetor(1:4:2, 1:4:2) vetor(1:4, 1) = 32 Na primeira atribuigéo acima, os valores de linhas e colunas impares da estrutura denominada vetor, sdo simultaneamente atribuidos ao array subvetor: subvetor(1,1)=vetor(1,1); subvetor(2, 1)=vetor(1,3); subvetor(1,2)=vetor(3,1); subvetor(2,2)=vetor(3,3) Na segunda atribuigao, toda a primeira coluna do array vetor, recebe o valor 32, sem necessidade de utilizagao de um Joop. 42 A implementagao de secgGes de arrays em substituig&o ao processamento do array elemento a elemento, foi utilizada em uma verséo do cédigo modificado, com o objetivo de avaliar a alteracdo no tempo de execucao do programa. A seguir, sao exibidos os tempos de CPU obtidos respectivamente, para o cédigo original escrito em Fortran77 e 0 cédigo modificado, contendo implementagdes do Fortrango. Codigo em Fortran 77 Codigo em Fortran 90 2758.23 1559.28 Tabela 4.7 - tabelas com diferenga de tempos(s) , Re=1000, n=25 - Tol: 10 43 \V.4 - Re-adaptagdo dos Vetores para Especificagao da Fungao e suas Derivadas As aplicagées que fazem uso de vetores e matrizes devem ser modeladas de forma a explorar ao maximo as caracterfsticas de hardware da maquina, para que se possa obter melhor desempenho no processamento de seus elementos, © tempo de execucao pode ser reduzido através da minimizagao.do stride para o Processamento de um array. O stride de um array refere-se a relagdo entre a disposigao dos seus elementos na memGria e a ordem em que eles sAo processados. Pode-se associar stride ao conceito de “distancia” na memoria entre os elementos de um array que s&o processados dentro de um /oop. Desta forma, se A é um array definide como REAL(8), 0 seu elemento A(2) tera inicio 8 bytes apés 0 elemento A(1). Em arrays unidimensionais, é desejavel que os elementos a serem processados dentro de um /oop, estejam localizados na memoria, o mais préximo possivel. Para arrays multi-dimensionais, quando se utiliza o Fortran, 0 melhor desempenho obtido acontecera quando a variavel do foop mais interno estiver relacionada com o indice esquerdo do array. Para pequenos arrays, este fator n&o ira impactar no desempenho; No entanto, a medida que o array torna-se maior (0 quaéo maior, dependera da arquitetura da maquina, mas tal valor esta associado em média a 64 Kbytes) o sistema precisa realizar trocas de paginas ou blocos em meméria para realizar 0 acesso ao préximo elemento. Este trabalho extra e desnecessdrio realizado pelo processador pode portanto ser eliminado apenas com a troca de indices no foop (quando possivel), ou através de uma redefinigaio do modelo criado para acesso aos elementos. Conforme foi visto em 3.21, a adaptagao da equagéo (3.20) para um sistema de primeira ordem obedece a seguinte especificagao: (8.21.2) (3.21.5) vy, Yona Y= ay’ (3.21.c) ay, Yanai Y= ao (3.21.0) i Ope a (2.21.2) Abaixo 6 mostrado o esquema de alocagao em meméria para 0 armazenamento dos dados obtidos durante o processamento com trés termes nas expansées: Figura 4.1 - Alocagao dos valores obtidos para a fungao original e derivadas com N=3 Este modelo apresenta dois inconvenientes: 1) No caso de se usar o vetor obtido como aproximagdo para um numero maior de termos, torna-se necessaria a realocagao de espagos no interior do vetor. A seguir, € mostrada a realocagaéo de espago no vetor, quando se aumenta o numero de 45 termos da série, de 3 para 4. Este realocagao é utilizada nos cédigos originais para resolugao de problemas elipticos. Ys Janra Figura 4.2 — Redistribuigao dos elementos do vetor para preenchimento de valores a ‘serem obtidos para N=4 2) O acesso aos elementos do array no interior de um /oop nao é feita sequencialmente. Na verdade, quanto maior 0 numero de termos na série, mais distantes seréo os enderecos de meméria a serem acessados para a fungao e suas varias derivadas, dentro de uma mesma iteragao, gerando aumento no stride do vetor. Devido a estes problemas, é proposto um novo arranjo vetorial para armazenamento de valores obtidos para o potencial e derivadas a cada expansdo, conforme descrito a seguir: Y¥G-Dntl=7, (4.1.2) ¥G@-1)n42= (4.1.b) dy 46 ay, ¥@-lnt3= G-n43= SE (4.1.0) a yu-tn4= 2h (4.1.4) Figura 4.3 ~ Esquema de novo modelo proposto para alocagao de array A utilizagao deste modelo tem como vantagens: 1) Oacesso as varias derivadas a cada iteragao do loop é feita em posic¢ées proximas ou Contiguas de memoria. 2) Para novos termos, somente 6 necessario ir acrescentando os novos resultados obtidos ao final do array, sem necessidade de realocagao de espa¢o no interior do mesmo. A seguir sao apresentadas diversas combinagées realizadas entre algumas implementagées estudadas. Embora tais implementagdes tenham como objetivo a redugao do tempo de CPU mediante menor alocagao de recursos, verifica-se que este resultado nao é regra em todas as situagdes. As implementagdes a serem verificadas sao portanto: A eliminagao do stride em vetores, através do uso de um novo esquema de alocagao em memoria; o uso de secgdes de arrays, implementagao proveniente do Fortran90, tendo como objetivo a exploragao de caracteristicas vetoriais do problema, realizando o processamento de 47 varios elementos do array simultaneamente; a aplicagéo do esquema de parametrizagao da rotina BVPFD, também as condigGes de contorno. Truncamentos Truneamento Maximo Maiha Tempo (s) Intermediarios 5 25 att 3.68 9 25 211 29.49 15 25 226 144.18 21 25 226 304.14 23 25 226 534.04 25 25 226 673.17 Tempo Total = 1780.25 25 termos (sem truncamentos Tempo Total = 551.87 intermediarios) Tabela 4.8- Tempo de execugao para cédigo com stride, sem seccbes de array, sem parametriza¢ao nas Condigées de Contorno — Tolerancia 10° - Re=1000 Truncamentos Truncamento Maximo Malha Tempo (8) Intermediarios 5 25 211 494 9 25 ai 36.14 15 25 226 165.33 Al 25 226 440.89 23 25 226 592.37 25 25 226 744,79 Tempo Total = 1985.29 25 termos (sem truncamentos Tempo Total = 676.37 intermediarios) Tabela 4.9- Tempo de execugdo para cédigo com siride, com seogdes de array, sem parametrizagdo nas Condi¢des de Contorno — Tolerancia 10° - Re=1000 Truneamentos Truncamento Maximo Matha Tempo (8) Intermedidrios 5 25 3H 2.96 9 25 ai 23.51 15 25 226 118.97 21 25 226 316.59 23 25 226 430.01 25 25 226 544.53 Tempo Total = 1439.43 25 termos (sem truncamentos Tempo Total = 479.68 intermediarios) Tabela 4.10 - Tempo de execugéio para cédigo com stride, sem seccées de array, com parametrizagao nas Condigées de Contorno — Tolerancia 10° - Re=1000 48 Truncamento Maximo Matha ‘Tempo (s) 25 211 3.85 25 211 29.71 25 226 143.03 25 226 391.67 25 226 535.09 25 226 671.35 Tempo Total = 1775.69 25 termos (sem truncamentos Tempo Total = 572.21 intermediarios) Tabela 4.11 - Tempo de execugao para cédigo sem stride, sem secgdes de array, sem parametrizagao nas Condigées de Contorno — Tolerancia 10° - Re=1000 O tempo da tabela acima mostra-se similar aquele obtide para a tabela 4.8, ou seja, dentro das mesmas condi¢des, porém com stride. Truncamentos | Truncamento Maximo Matha Tempo (s) Intermediatios 5 25 at 2.75 9 25 211 17.74 15 35 226 108.10 24 25 226 286.93 23 25 226 392.28 25 25 226 495.26 Tempo Total = 1304.04 25 termos (sem truncamentos ‘Tempo Total = 444.40 intermediarios) Tabela 4.12 - Tempo de execucao para cédigo sem stride, sem seccées de array, com Parametrizagao nas Condigées de Contoro - Tolerancia 10° - Re=1000 Verifica-se que o maior tempo de processamento foi obtido na Tabela 4.9, aonde a Unica implementago aplicada foi o uso de secgées de arrays. Este tempo mostra-se mesmo superior ao obtido na Tabela 4.8, na qual nao foi aplicada nenhuma das otimizagdes citadas. Dai comprova-se que o uso de secgdes de arrays, quando aplicadas a vetores pequenos, produz desempenho inferior ao procedimento escalar de acesso aos dados. Descartando 0 uso de secgGes de arrays e preservando 0 novo modelo de alocagao de memoria para os dados, os testes restantes tiveram como objetivo, avaliar a influéncia da parametrizagao aplicada as condigdes de contorno. 49 Na Tabela 4.11, a auséncia da parametrizagdo produz um tempo computacional préximo daquele obtido sem nenhuma otimizacdo. No entanto, a nova alocacéo de dados em memoria, em combinagao com a parametrizagao das condigdes de contorno (Tabela 4.12), apresenta os melhores resultados. Ou seja, com base nestas informagées, optou-se pelo uso do cédigo aplicado @ tabela 4.12, por tornar o programa potencialmente mais eficiente de acordo com o aumento do numero de termos e por proporcionar redug&o significativa no tamanho do algoritmo. IV.5 - Subrotina alternativa na solugao do Problema de Valor de Contorno Subrotina COLMOD Apés andlise detalhada do algoritmo original utilizado para a resolugéo do Problema de Valor de Contorno descrito em II.1, foi verificado que a queda de performance relativa ao tempo de execug&o deve-se as inimeras chamadas 4 rotina utilizada para a resolugao do sistema diferencial ordindrio (BVPFD). Ela é responsavel pela quase totalidade do tempo de processamento do programa. Esta andlise foi realizada utilizando-se 0 sistema CRAY J90, que oferece ferramentas eficientes para avaliagéo de desempenho. Para tal avaliagao, foram utilizadas as ferramentas HPM e FLOWVIEW que além de detectar 0 baixo desempenho da rotina BVPFD ainda detalharam a utilizagao do tempo de CPU por cada subrotina. A avaliag&o de tempo de CPU gasto por cada trecho ou sub-rotina pertencente ao programa é fundamental na detecgao de quais as areas do programa que devem ser otimizadas. As areas mais utilizadas tém prioridade neste processo. Apesar de existir uma variedade de rotinas para a resolugao de Problemas de Valor de Contorno em geral, ainda hoje sao poucas as opgées para resolugdo de tais problemas apresentando nao-linearidades e alto grau de rigidez. Para este tipo de problema, em termos de métodos numéricos, é frequentemente muito dificil de determinar ao mesmo tempo, uma malha que produza uma solugdo numérica sufucientemente acurada e uma aproximagao inicial da solugao que garanta a convergéncia dada pelo método de Newton. 50 As dificuldades essenciais em tais problemas surgem do fato de que suas solucdes exibem estreitas regides com variagdes muito bruscas (camadas-limite), tornando-se dificil a obtengao de uma malha que discretize o problema de maneira eficiente. Como alternativa 4 BVPFD, foi estudada a possibilidade de utilizagao de uma outra rotina que tem a conveniéncia de ser de dominio publico, podendo portanto, ter seu cddigo-fonte alterado visando a otimizagao do algoritmo. Tal rotina é denominada COLMOD, origindria do cédigo COLNEW, desenvolvido em 1987, por Ascher e Bader{4] e utiliza o método de colocagao de alta-ordem para a resolugdo de problemas de valor de contorno. O aperteigoamento da COLNEW foi no sentido de propiciar a resolug&éo de problemas de valor de contorno singularmente perturbados. Isto € feito através de uma estratégia de continuagaéo homotépica e permite que problemas de valor de contorno com alto grau de rigidez sejam resolvidos de forma eficiente. O uso deste tipo de continuagao consiste na resolugao de uma sequéncia de problemas progressivamente mais dificeis, utilizando-se a informagao de um problema anterior, para resolver o proximo. Dentro desta metodologia, o ideal 6 a resolugao do menor numero possivel de problemas intermediarios e a minimizagéo do numero de iteragdes de Newton e adaptagdes de malha, a cada passo. A rotina COLMOD resolve diretamente sistemas de até quarta ordem, sem que seja necessario realizar a transformagao do problema para um sistema de primeira ordem equivalente. IV.5.1 - O processo de Parametrizagao na COLMOD Um problema dito singularmente perturbado 6 caracterizado pela presenga de um pardmetro pequeno, positivo, que multiplica o termo de mais alta derivada no sistema de equagées diferenciais. Quando o parametro torna-se menor, aumenta a importancia do termo n&o-linear da equagao, tornando o problema mais dificil de ser resolvido. Um exemplo do problema pode ser descrito por: py" =foxyieiy): O 500 100015002000 sho 2000 Figura 4.6.d - Convergéncia no extremo inferior esquerdo da cavidade Re=1000 - Aceleragao de Shanks x Soluc&o Original 69 N Shanks 5 1181 1474 7 1172 1174 9 1173 1174 1 1174 1174 13 1173 1173 15 1974 1173 7 1173 1973, 19 1173 1173 a 1173 1173 23 1173 1173 25 1173 71173 27 1173 1173 29 1173 1173 Tabela 4.37 = Proc. de Convergéncia a partir de sub-sequencias tamadas tamente de 29 termos. Centro Cavidade 9969 11 Wes. so apts ago asp nan Figura 4.6.e — Convergéncia no centro da cavidade Re=1000 - Aceteragao de Shanks x Solugéa Original au x Y N Série Original SHANKS 5 -9399E-2 -6832E-2 7 8387E-2 6842E-2 9 7501-2 .6773E-2 1 -6891E-2 -6769E-2 13 .6576E-2 -6785E-2 15 -6488E-2 6778E-2 7 -6534E-2 6884E-2 19 -6634E-2 -6768E-2 21 .6729E-2 .6768E-2 23 .6776E-2 6744E-2 25 6775E-2 6742E-2 27 -6781E-2 -6833E-2 29 6820E-2 -6785E-2 Tabela 4.38 - Proc. de Convergéncia a partir de sub-sequencias tomadas diretamente de 29 termos. Extremo Superior Direito da Cavidade, net 08, oye —O- Seve Figura 4.6.f - Convergéncia no extremo superior direito da cavidade Re=1000 - Aceleragao de Shanks x Solugao Original n X=01 X=09 Y=04 Y=09 N Série Shanks Série Shanks Série ‘Shanks Original Original Original 5 |-2563E-3 | -2830E-3(S5) |.1308 | .1308(65) | 2847E1 | -9019E-1(S5) 7 |-4864E-3 | -5837E-3(S5) |.1392 | .1385(S5) | 3054E-1 | -.3376E-1(S5) 9 |-8767E-3 | -9644E-3(S5) | i408 | 1474/65) | 2887E-1 | .2640E-1(S5) 11 |-1275E-2 | -1218E-2(S9) [1434 | .1435(85) | 2442E-1 | .3087E-1(S5) 13 | -14226-2 | -14076-2(89) [1434 | 1435(S9) | 1747E-1 | .8597E-2(S5) 15 |-1549E-2 | -.1520E-2(S9) |.1413 | .1473(S13) | 6859E-2 | .7206E-2(S13) 17 |-1638E-2 | -.1639E-2(89) | 1401 -1399(89) | .4660E-2 | .6788E-2(813) 19 |-1655E-2 | -.1691E-2(S9) |.1379 | .1380(S9) | 5828E-2 | .6236E-2(S7) 21 | -1646E-2 | -.1645E-2(S15) |.1354 | 1354(S17) | 2980-2 | .4032E-2(S15) 23 |-1598E-2 | -.1603E-2(813) | 1332 | .1332(59) | 1701E-2 | .2960E-2(S17) 25 | --1547E-2 | -.1525E-2(S13) |.1318 | 1317(S9) | .1230E-2 | .1766E-2(S19) 27 |-1505E-2 | -.1472E-2(813) | 1305 1305(59)__|.1399E-2 | 1278E-2(S11) Tabela 4.39 - Processo de Convergéncia para num. crescente de termos na série. Re=5000 - Aceleragao de Shanks x Solugao Original - Tol. 10° 2 N ‘Série Original Shanks 5 -.2632E-02 -.3445E-02 7 ~.1793E-02 ~.3633E-02 9 -.1486E-02 -.1675E-02 Wi -.1506E-02 -.1762E-02 13 -.1490E-02 ~.1472E-02 15, -.1506E-02 -.1538E-02 7 -.1514E-02 ~.1510E-02 19 -.1508E-02 -.1508E-02 21 +. 1505E-02 -.1800E-02 23 =.1505E-02 ~.1505E-02 25 -.1505E-02 -. 1505E-02 27 ~.1505E-02 -.1505E-02 Tabela 4.40 - Proc. de Convergéncia a partir de sub-sequencias tomadas diretamente de 27 termos. Extremo Inferior Esquerdo da Cavidade sos > oJ ans | — | = N ed Figura 4.6.g - Convergéncia no extremo inferior esquerdo da cavidade Re=5000 - Aceleragao de Shanks x Soluao Original B X=05 Y=05 N Série Original Shanks 5 1329 .1309 7 1293 .1309 9 A312 1305 1 1304 1305 13 -1308 1305 15, 1303, 1305 7 -1306 1305 19 1304, 1305 at 1305, 1305 23 -1305 1305 25 1305, -1305 27 -1305 -1305 Tabela 4.41 — Proc. de Convergéncia a partir de sub-sequencias tomadas diretamente de 27 termos. Centro Cavidade 1326-1 so 10001500 mg « 5.00 aba Figura 4.6.h - Convergéncia no centro da cavidade Re=8000 - Acelerago de Shanks x Solugao Original 4 N Shanks 5 -3282E-02 5638E-2 7 1746E-02 -5482E-2 9 -1669E-02 -1356E-2 1 -1499E-02 1279E-2 13 -1128E-02 1276E-2 15 -8422E-02 1278E-2 17 -6838E-02 1331E-2 19 -5715E-02 -1212E-2 21 .5335E-02 .1223E-2 23 -6886E-02 .1268E-2 25 .1039E-02 .1115E-2 27 -1399E-02 :1049E-2 Tabela 4.42 - Proc. de Convergéncia a partir de sub-sequencias tomadas diretamente de 27 termos. Extremo Superior Direito da Cavidade. - = | Figura 4.6.i — Convergéncia no extremo superior direito da cavidade Re=5000 - Aceleragao de Shanks x Solugao Original 75 Para a andlise, foram tomados trés pontos da cavidade: A extremidade inferior esquerda, centro e extremidade superior direita. Para Re=0, nao se veritica nenhum ganho obtido através do uso da aceleragao de Shanks. De fato, o processo de convergéncia para este perfil de escoamento apresenta caracteristica assintotica e esta linearidade néo produz as variacdes de gradiente necessarias para garantir a acelerac&o da série através do método apresentado, conforme pode ser visualizado nas figuras 4.6.4, 4.6.b e 4.6.c. Para Re=1000, a andlise deve ser realizada em separado para cada regido da cavidade: O ponto (0.1, 0.1) encontra-se no interior de um vértice secundario, conforme pode ser verificado pela fig. 4.6.d e a implementagao da Transformagao de Shanks nao acarreta nenhum ganho. J& o ponto central da cavidade (Fig. 4.6.e) encontra-se no interior do vortice principal, de caracteristica difusiva, que apresenta grandes variacdes de gradiente nas proximidades do ponto de estagnagao, aonde o escoamento inverte o sentido. Neste caso, j4 para pequeno numero de termos, é possivel obter uma boa aproximagao para o valor final convergido, 0 mesmo acontecendo para o ponto (0.9, 0.9), Fig.4.6.f. Neste local, a proximidade com a parede deslizante gera a camada-limite que por sua vez, provoca grandes variagdes com 0 aumento do numero de termos; utilizando-se a aceleragao de Shanks, observa- se uma boa aproximacao para o resultado convergido, ja nos primeiros termos da série. Para Re=5000, a utilizag&o da aceleracdo na regio do vértice secundario apresenta resultados piores do que na convergéncia normal, conforme mostrado na Fig. 4.6.g. Na regiao central (Fig. 4.6.h), proximo ao ponto de estagnagao, os resultados sao excelentes. A convergéncia 6 obtida através da aplicagao da aceleragao de Shanks a apenas nove termos da série. No ponto (0.9, 0.9), Fig. 4.6.1, a forte ndo-linearidade provoca grandes oscilagdes de valores obtidos no processo de expans&o. Neste caso, a aplicagao da aceleragao 6 um exemplo de indugao de convergéncia, apresentando a tendéncia de valores préximos a convergéncia, a partir de nove termos da série. 76 'V.8 - Processamento Paralelo A principal motivagao para o uso de sistemas paralelos para a execugao de um dado problema, é a obteng&o de melhor desempenho computacional através da cooperagao de processadores na execu¢ao simultanea de tarefas. Ou seja, 0 objetivo é obter o efeito de uma unica CPU, mais rapida, mediante a utilizagao de varias CPU's simulando o mesmo. Os recursos dos sistemas de alto desempenho, assim como o processamento paralelo obtido através de sistemas mais simples interligados em rede, tem sido aplicados em areas que necessitam de computagao intensiva para obtengao de resultados. Grande parte das caracteristicas do paralelismo é implementada a nivel de hardware e 0 conhecimento das caracteristicas de arquitetura do equipamento a ser utilizado, leva @ obtengao de eficiéncia maxima na exploracdo de seus recursos. Surgiram nas ultimas décadas, muitas variedades de computadores da classe MIMD (Multiple Instruction, Multiple Data) que combinam paralelismo de instrugées e dados. Esta classe pode ser dividida em sistemas com meméria compartilhada (tais como os sistemas CRAY), caracterizados por varios processadores associados a uma meméria global e os sistemas de meméria distribuida, onde cada processador tem sua memoria local (por exemplo, os sistemas IBM-SP2). Os sistemas de meméria compartilhada tendem a ser limitados em numero de processadores, uma vez que o aumento de processadores leva a um aumento do tempo de acesso & meméria dado A maior possibilidade de conflitos. Ja os sistemas de meméria distribuida buscam a maximizagdo do desempenho individual do processador conservando uma por¢ao da memoria total do sistema diretamente ligada a ele. O acesso as instrugGes e a maior parte dos dados 6 local, sendo utilizada uma rede de interconexao de alta velocidade para a comunicagao entre os processadores. A capacidade da rede de interconexéo é um fator primordial nesta classe de computadores devendo ser capaz de manipular um grande volume de trafico de mensagens entre os processadores, para 0 obtengao de um grau elevado de eficiéncia nas aplicagées paralelas. As maquinas com meméria distribuida que se comunicam via troca de mensagens sao comumente chamadas de multicomputadores e normalmente possuem uma rede de interconexao que pode operar com mais velocidade do que as redes do tipo LAN, tais como a Ethernet, que rapidamente se torna saturada mediante miultiplas 7 conversagées. Apesar deste fato, a paralelizagao de algoritmos nao se restringe apenas & supercomputadores e maquinas especificas de alto-desempenho. A computagao paralela pode ser utilizada em um ambiente de micros interligados por uma rede Ethernet e que possuem algum software que estabelece o protocolo de comunicagéo tal como o MPI[38] ou PVM[64], rodando em sistemas operacionais Windows ou Linux. No processamento vetorial, pode-se obter melhoria de desempenho mediante diretivas simples inseridas no cédigo e comandos passados na fase de compilagao. Ja o processamento paralelo, diferentemente do processamento vetorial, exige mais esforgo na adaptacao do codigo, sendo também de fundamental importancia, a escolha do problema a ser implementado. Programas que podem ser subdivididos em tarefas menores e que podem ser resolvidas simultaneamente produzindo o mesmo. resultado final de um processamento sequencial, sao bons candidatos para o Processamento paralelo. Os problemas computacionais sem estas caracteristicas nao sao de facil manipulagéo em ambientes paralelos, podendo mesmo obter em tais sistemas, um desempenho inferior ao obtido em sistemas convencionais. Isto deve-se ao tempo gasto pelo sistema na comunicagéo entre os processadores, na manipulag&o das tarefas e na sincronizagao. A paralelizagao aplicada a um ntimero pequeno de repeticédes & outro caso em que ocorre redugao na velocidade do cédigo; ou seja, paralelizar 0 cédigo pode, em alguns casos, tornar a execug&o mais lenta. O esforgo gasto na criac&o de divisdes do algoritmo e na comunicagao entre os processadores, nado sera compensado pela execucao de tarefas muito simples. 1V.8.1 Paralelizagao em Arquitetura CRAY Para ilustrar esta afirmagao, foram utilizadas duas versées do problema classico da cavidade (modelo 3.1.a) adaptadas para serem executadas no sistema CRAY J90. A primeira versao foi implementada de forma sequencial, sem opgdes de otimizagaéo e adaptada para ser executada no sistema CRAY J90. A segunda versdo foi paralelizada utilizando diretivas que foram inseridas em trechos do programa e através da opgdo de AufoTasking, especificada juntamente com as demais opgdes de compilagao. 78 A andlise de performance de cédigos paralelizados ou candidatos a paralelizagao no CRAY J90, pode ser feita através das ferramentas disponiveis no UNICOS, normalmente o Flowview ou o Profview. Neste caso, os trechos paralelizaveis do programa, foram detectados através da execu¢do normal do programa sem otimizagao, utilizando o software Profview. A partir dai, foram identificadas as segées significantes das subrotinas que poderiam ser executadas em paralelo. Para a paralelizagéo dos trechos identificados, foram acrescentadas diretivas em trechos do programa conforme é mostrado a seguir: IMICS_ PARALLEL PRIVATE(I,K,SJN,SUP,SKN,SKP,SK,SJ,SUMK) IMICS* SHARED (A,B,C,D,R,P, Y,DYDX,UU,N,SUMJ) IMICS DO PARALLEL DO 110 I=t,N ‘SJN=0.D0 SJP=0.D0 DO 120 J=1,N SKN=0.D0 SKP=0.D0 DO 130 K=1,N SK=A(I\J,K)"Y (N4J)*Y (K)+B(1,J,K)*Y(N+J)*¥(2*N+K)- & Cd, K)*Y(S)"Y(N+K)-B(1,J,K)*¥(K"¥(3°N+) IF(SK.LE.0.D0)THEN SKN=SKN+SK ELSE SKP=SKP+SK ENDIF 130 CONTINUE SUMK=SKN+SKP SJ=-2.D0"D(I\d)"¥(2*N+)+R'p"SUMK IF(SJ.LE.0.D0)THEN SJN=SJN4SJ ELSE SUP=SJP+SJ ENDIF 120 _ continue IMIC$ GUARD SUMJ=SJN+SUP DYDX(I)=¥(4N) DYDX(I+N)=¥(142*N) DYDX(1+2*N)=¥(1+3°N) DYDX(|+3*N)=SUMJ-UU(I)**4.D0"Y(1) IMICS END GUARD 110 CONTINUE IMICS END DO IMIC$ END PARALLEL Tabela 4.43 — Implementacao de trecho nao-linear da rotina FCNEQN — Uso de diretiva 79 A seguir, é mostrada a tabela indicando a performance do processamento serial x paralelo, de acordo com o incremento do numero de termos (aumento do numero de iteragdes e vetores). N- Numero de Termos Sequencial Paralelo 5 13.58 15.42 9 55.48 57.94 15 239.22 242.71 21 529.54 526.07 23 684.47 644.16 33 1797.77 1717.85 35 2039.37 1750.37 37 2313.90 1923.37 39 2607.30 2103.02 | 41 2929.84 2316.62 Total 13289.37 1276.50 Tabela 4.44 - Comparagées entre processamento Sequencial e Paralelo - Cray J90 Problema Classico Cavidade - Reynold: De acordo com os resultados da Tabela 4.44 verifica-se que o esforgo dispendido na paralelizagéo do algoritmo, sé é justificado a partir de um aumento significativo do numero de termos da série. © processamento paralelo mostra-se mais caro quando aplicado a um numero Pequeno de termos resultante do truncamento da série infinita. A medida que o numero de termos aumenta, vai ficando mais evidente o ganho computacional obtido a partir da paralelizacao. 1V.8.2 Avaliagao dos trechos paralelizdveis de um algoritmo Para a utilizagéo de ambientes paralelos, os programas devem ser adaptados escolhendo-se um modelo de programagao compativel com a natureza do problema, identificando a existéncia de independéncia de dados e de partes que podem ser executadas concorrentemente. A eficiéncia obtida 6 decorrente da minimizagado da frequéncia e volume de comunica¢ao entre os processos.Qu seja, como via de regra, os melhores candidatos séo os problemas de granularidade espessa, isto é que podem ser sub-divididos em tarefas com grande numero de instrugdes a serem executadas de forma independente, diminuindo a comunicac&o entre os processos e 80 consequentemente, a necessidade frequente de sincronizagéo. Granularidade espessa e granularidade fina definem o quao grande sao os blocos de instrugées executados em paralelo. O processo de paralelizagao de um algoritme pode portanto ser definido nas seguintes fases: a) Em uma primeira andlise, deve-se localizar quais as partes do programa que utilizam o maior tempo de execugao e deve-se observar a proporcao entre a parte do programa que pode ser paralelizada, ou seja, a parte cujas tarefas podem ser executadas simultaneamente de forma independente, e a parte sequencial do Programa. Muitos dos sistemas oferecem comandos e utilitarios que permitem determinar o tempo de execug&o de trechos do programa e o numero de chamadas para cada sub-rotina. Estas estatisticas sao importantes para se entender como o programa se comporta e a partir dai, determinar a maneira de paraleliza-lo. b) A segunda fase, envolve a determinag&o dos pontos de trocas de mensagens uma vez que cada processo opera exclusivamente em um ambiente privado (processador), néo podendo ser modificado diretamente por outros processos. Normalmente, elege-se um processador mestre, que se torna responsdvel pela recepgao de resultados parciais obtidos de processadores escravos e pela sincronizagao na execugao simultanea de processos. 1V.8.3 - Paralelizagéo em arquitetura IBM-SP2 Devido as caracteristicas deste sistema, que oferece melhor performance na execucao. simulténea de trechos independentes do cédigo distribuidos entre processadores, foi desenvolvida uma versao alternativa para o algoritmo original, utilizando um filtro analitico com base na solugéo de menor ordem, conforme descrito em [47]. Tal formulag&o, permite que a parte ndo-linear do sistema de equacées seja fragmentada em quatro partes independentes de cédigo que serao distribuidas entre processadores diferentes. 81 Além da possibilidade de paralelizagado do algoritmo, espera-se que a proposta de construgao de aproximagao inicial para o problema original, através do filtro analitico LOS(Lowest Order Solution), possa suavizar 0 efeito convectivo do sistema de equacées descrito em (4.6.1), bem como homogeneizar as Condigdes de Contorno originalmente especificadas, conforme sera mostrado. IV.8.3.1 - Soluga&o de menor Ordem Conforme esta detalhado em [37], é possivel obter uma solugaéo aproximada desacoplada para o sistema de equagées diferenciais ordinarias: ey, Wend ${ 4.4% Ay he dy ra+Z| 20, ited 3 * dy (4.6.1) —Cy¥,——*-B, 0H 6g Wop g AY gk dy dy’ URE dy Para o desacoplamento, sao considerados apenas os termos correspondentes as. diagonais principais das matrizes que definem os coeficientes A, B, C, D. [4.6.1] fica portanto simplificada, conforme é mostrado a seguir: vy, dy, dy, _ dy, [ Av Zien, SOR cup A ae eo (4.6.2) 7 i% +7 Wi -B, 2D, ie Jae HY, ay? onde: i= 1,2,.. O sistema (4.6.2) tem solug&o nula para os modos pares, devido ao fato das condigdes de contorno serem todas homogéneas em tais modos. Para os modos impares, o sistema a ser resolvido fica resumido a: 82 i oy fh. op 4% % ay + pii7, =0 ; onde: i=1,3,.., 01 (4.6.3) Este sistema, possui solugao analitica dada por: v= Gi yH,sin 5m Yl, cos 7 CG [om( yu, sin 5p YH, cos 3) @ (4.6.4) —cotg 8 i YEE, sin! 2 "2 onde: oa s0i=0) Desta forma, a solugao de Menor Ordem fornece resultados aproximados para o problema biharménico, obtidos a partir do negligenciamento dos elementos ndo- diagonais no sistema acoplado (4.6.1). 1V.8.3.2 - Formulagao do filtro Dada a equagao de Navier-Stokes em termos de fungao-corrente, valida no interior da cavidade: i YM ax + YYoay VM aay WoW oy = VW (4.6.2.1) Utilizando um Filtro Analitico genérico dado por: WxYI=F( xy )+ Hx y) (4.6.2.2) A equacao (1) podera entao ser reescrita na forma: 83 CF, +9, WF + Gee FOP, +O, WFgy + Boy I CF, +9) Frey + Bers JCF, +9, M Fog + Vy = (4.6.2.3) = werevs =. F+V%4] Redistribuindo os termos: 9,bra + Poy PG ey B.Pyys F, Bex t Foy FP F Gye IF, +9, oy OF OF ype F, Pog + F,Fogy-F Fey EF, yo ay ay (4.6.2.4) ie Pa + roy + Pyyyy + Freee +2 Faye + FoI Utilizando o Par Transformada-Inversa: 4,= JE. (Transformada) 59)= Liew, 0 (Inversa) O Sistema resultante apés a Transformagao é dado por: [Andi8, + BBR C8, HBB, 8) [ApF, + By FA ~ Cah ~ BaF G+ 2 “S| FF + BOF. ~ Cyd, F~B48;F,] ses) ao ol >a Hi a a mI I & i T + By EE, — Me — 5. =) 3 Co > ost 00008: Figura 5.1 - Reynolds=0; 1 parede mével - Ut=-1-Razdo de Aspecto=1 0 'B.WUUUE-US" s5086-02- a suet ee, °% 05 a Figura 5.2 Reynolds 1000; 1 parede movel - Ut=-1 - Raz@o de Aspecto =1 96 Figura 5.4 Reynolds=1000 - 1 parede movel - Ut=-1 - Razao de Aspecto = 3 7 CGE TORN 0.006 6S Figura 5.6 Reynolds 1000 - 1 parede mével - Ut=-1 - Razio de Aspecto = 5 98 Raziio de Aspecto Matha Inicial Matha Final Tempo 1 131 146 163.22 3 BI 16) 178.93 5 101 179) 199.09 Tabela 5.9 - Caso I.a- Uma Parede Mével - Re=0 Razio de Aspecto Matha Inicial Mabha Final Tempo 1 ior 129 1028.93 3 101 362, 2069.09 5 131 357 2170.80, Tabela 5.10 - Caso 1.a - Uma Parede Mével - Re=1000 99 % | 2o-a0002'6- > os ; 9.000084 4.4000E-02. (sna ‘\ -4.4000E-02 °% Os 1 —_* Figura 5.7 Reynolds=0 - 2 paredes moveis - mesma diregdo Ut=-2, Ub=-1 —»> 1 Ade ge-UE 02: i 1.24906-02 P Figura 5.8 Reynolds=1000 - 2 paredes méveis - mesma diregao Ut=-2, Ub=-1 Figura 5.10 Re=1000 - 2 paredes méveis; - ut = -2, ub Razio de Aspecto =3.0 101 x Figura 5.12 Re=1000 - 2 paredes moveis;- ut = -2, ub = -1; Razdo de Aspecto=5.0 Raziio de Aspecto Malha Inicial MaihaFinal___| Tempo 1 131 154 206.49 3 131 204 283.13, 5 131 214 328.10 Tabela 5.11 - Caso 1.b - Duas Paredes Méveis; mesma diregio - Re=0 Razdio de Aspecto Malha Inicial Matha Final Tempo 1 101 414 7586.84 3 121 597 7955.76 5 191 637 8749.92 Tabela 5.12 - Caso 1.b - Duas Paredes Moveis; mesma diregio - Re=1000 103 - 1008-92, a o +1, fon.) 8 78089, 20-3000}'8- : “6.20008.09 10+ 30000 0—-- 0, 0000 +00- Boe wba: 9.5 3, A 7 -8.0099E-02 = P30000°0- Figura 5.14 Reynolds=1000 - 2 paredes méveis - direges opostas; Razao de Aspecto =1 igt Reyn par iregoes opo: Pp Figura 5.16 Reynolds=1000 - 2 paredes méveis-diregées opostas; Razao de Aspecto =3 105 0 25 5 + x Figura 5.18 Reynolds=0 - 2 paredes méveis-diregdes opostas; Raziio de Aspecto =5 106 Razio de Aspecto | Malha Inicial Malha Final Tempo 1 131 157 178.80 3 131 222 273.79 5 i 209 241.02 ‘Tabela 5.13 - Caso 1.c - Duas Paredes Méveis; diregdes opostas - Re=0 Raziio de Aspecto Matha Inicial Matha Final Tempo L 101 286 1752.06 3 101 483 3562.92 5 191 566 5054.72 ‘Tabela 5.14 - Caso 1.c - Duas Paredes Méveis; diregdes opostas - Re=1000 107 Fig. 5.20 Re=0 - Sup. Livre - Ub = 1; Ut = 0; Razao de Aspecto =1 108 0 0s 1 1.6 x 05 1 15 Fig. 5.22 Re=1000 - Sup. Livre - Ub = 1 ; Ut = 0; Razao de Aspecto =1.61 Fig. 5.23 Re=0- Sup. Livre - Ub = 1 ; Ut= 0; Razio de Aspecto =3 Fig. 5.24 Re=1000 - Sup. Livre - Ub = 1; Ut = 0; Razdo de Aspecto =3 110 Razio de Aspecto Matha Inicial Malha Final Tempo 1 101 5 124.70 3 131 146 162.72 5 131 161 188.91 Tabela 5.15 - Caso 1.d - Superficie Livre - Re=0 Razio de Aspecto Malha Inicial Malha Final Tempo 1 131 235 953.26, 3 131 212 1458.15 5 131 335 2065.96 Tabela 5.16 - Caso 1.c - Superficie Livre - Re=1000 CAPITULO VI ConclusGes e Sugestdes Aqui sao sintetizadas algumas conclusées e as principais sugestées de investigagao futura, permitidos pelo esforgo de otimizagao do algoritmo de Transformagao Integral para problemas elipticos bidimensionais, aqui representados pelas equagées de Navier-Stokes em regime permanente e geometria retangular. A migra¢ao do algoritmo da linguagem Fortran77 para Fortran90, possibilitou a exploragao de recursos de otimizagao intrinsecos ao novo compilador, além da possibilidade de reducao significativa do codigo computacional, facilitando na clareza e na utilizagao de entidades globais do cédigo. O presente trabalho contribuiu portanto, na elaboragao de um algoritmo computacional mais claro, eficiente, explorando e modificando varias estruturas vetoriais anteriormente criadas para a representagao dos dados. Em termos de avaliacdo de eficiéncia de compiladores, poderia ser também criada uma versao utilizando, por exemplo, 0 C++, para a realizacao de uma andlise do tempo computacional para cada um dos algoritmos. Sugere-se também, a continuidade no estudo da possibilidade de otimizagao dos /oops mais internos, nos trechos nao-lineares do algoritmo. A utilizagéo de recursos de parametrizagdo proprios da rotina BVPFD, aliada a parametrizagao das condigées de contorno e implementagao de novo esquema de alocac4o das estruturas de dados em memoria, produziu uma redugao significativa no tempo de execugao do algoritmo, sendo recomendado o seu uso em futuros cédigos. Através deste trabalho, ficou comprovado que o tempo utilizado no processo de transformacao integral, incluindo o calculo dos coeficientes e a inversao utilizada para a recuperacéo do potencial sA0 pouco significativos, independente do numero de dimensdes do problema, o que torna o método bastante atraente. No entanto, a rotina utilizada para a solugdo do sistema de equagées diferenciais é bastante cara, consumindo a quase totalidade do tempo computacional utilizado. Sendo assim, como sugestao para trabalhos posteriores, com o intuito de otimizar 0 algoritmo, seria a busca de uma subrotina alternativa & BVPFD para a resolugao do 12 sistema de equagdes. Uma alternativa seria prosseguir na investigagao da rotina Colmod através da alteragao de seu codigo, com o objetivo de minimizar a quantidade de memoria alocada e resolver sistemas com maior niimero de equagées e também, o aproveitamento da facilidade de aplicagéo de diferentes tolerancias de erro ao conjunto de equagées do sistema, implicando na diminuigao do tempo computacional gasto. Em ambos os casos, 0 uso de processamento paralelo poderia ser um fator de drastica redugdo no tempo computacional do algoritmo. Outras sugestdes mais diretamente ligadas ao método de solugao seriam: « Prosseguimento no estudo da viabilidade da aplicagéo da Transformacao de Shanks em problemas elipticos como método de aceleracao de séries, porém, aplicada nao sobre as somas parciais do sistema de equagdes definido para o numero total de termos, mas sim sobre a sequéncia de valores provenientes de solugdes consecutivas de sistemas para n termos (n=3,4,5. Este parece ser um processo mais natural, uma vez que pode-se fazer o controle de convergéncia acelerada a medida que se aumenta o numero de equacées do sistema, podendo- se atingir a convergéncia utilizando uma quantidade menor de equagdes do que pelo processo original. « Uma possibilidade de uso de filtro para numeros de Reynolds elevados é aquela proveniente da proposta de Burggraf[10], que apresenta uma solugao analitica para a estrutura principal do escoamento, utilizando uma aproximagao proveniente da situagao limite Re > <. De forma geral, procurou-se apontar e demonstrar as inumeras alternativas de andlise para otimizagao de algoritmos de transformacéo integral, cujo entendimento e aprofundamento permitirao a extenséo desta ferramenta hibrida e robusta de simulagao a situagdes extremas em cada classe de problemas ja tratadas por esta técnica em sua primeira fase de desenvolvimento. 113 REFERENCIAS BIBLIOGRAFICAS [1] Agarwal, R. K., “A Third-Order-Accurate Upwind Scheme for Navier-Stokes Solutions at High Reynolds Number’, AIAA, Paper n. 81 0112, 1981 {2] Ascher, U., Christiansen, J., Russell, R.D., “A Collocation Code for boundary-value problems”, in Codes for Boundary Value Problems in Ordinary Differencial Equations, Lecture Notes in Computer Science 76, Berlin, 1979 [3] Ascher, U., Christiansen, J., Russell, R.D., “Collocation software for boundary-value ODEs", ACM Trans. Math. Software, V.7, pp. 209-222, 1981 [4] Bader, G., Ascher, U., “A New Basis Implementation for a Mixed Order Boundary Value ODE Solver’, SIAM J. Sci. Stat. Comp., v. 8, pp. 483-500, 1987 [5] Baohua, C., Cotta, R.M., “Integral Transform Analysis of Natural Convection in Porous Enclosures”, Int. J. Num. Meth. In Fluids, v. 17, pp. 787-801, 1993 [6] Batchelor, G., “On Steady Laminar Flow with Closed Streamlines at Large Reynolds Number’, Journal of Fluid Mechanics V.1, pp.177-190,1956. [7] Batchelor, G., “A Proposal concerning Laminar Wakes behind Bluff Bodies at Large Reynolds Number’, Journal of Fluid Mechanics V.1, pp.388-398,1956 [8] Benjamin, A. S., Denny, V. E., “On the convergence of numerical solutions for 2-D flows in a cavity at high Re’, ", J. Comp. Physics, 12, pp. 348-363, 1973 [9] Bozeman, J.D., Dalton, C., "Numerical Study of Viscous Flow in a Cavity", J. Comp. Physics, 12, pp. 348-363, 1973 [10] Burggraf, O. R., “Analytical and Numerical studies of the structure of steady separated flows”, J. Fluid Mech., v. 24, pp. 113-151, 1966 [11] Cotta, R.M., Serfaty, R., Guedes, R. O. C. , “Integral Transform Solution of a Class iffusion Problems”, Proc. of the Int. Conf. On Advanced 14 of Transient Convection-| Computational Methods in Heat Transfer, "Heat Transfer 90”, v.1,pp.239-250, Southampton,UK, 1990 [12] Cotta, R. M., “Hybrid Numerical Analytical Approach to Nonlinear Diffusion Problems”, Num. Heat Transfer, part B-Fundamentals, v.17, pp. 217-226, 1990 [13} Cotta, R.M., “A Review of the Integral Transform Method in Nonlinear Heat and Fluid Flow Problems", Proc. of the 1° Ibero American Congress of Mechanical Engineering (tnvited lecture), v. 1, pp. 35-64 Madrid, Spain, September, 1993 [14] Cotta, R.M. ,”integral Transforms in Computational Heat and Fluid Flow”, CRC Press, FL, 1993 [15] Cotta, R.M., Mikhailov, M.D., "Heat Conduction - Lumped Analysis, Integral Transforms, Symbolic Computation’, Wiley-Interscience Publication, JohnWiley & Sons,1997 [16] Cotta, R.M., "The Integral Transform Method in Termal and Fluids Science and Engineering”, Begel House Inc., 1998 [17] Fairweather, G., Vedha-Noyagam, M., “An Assessment of Numerical Software for Solving Two-Point Boundary-Value Problems Arising in Heat Transfer’, Numerical Heat Transfer, v. 11, pp. 281-293, 1987 [18] Frontiers of Computational Fluid Dynamics, Edig&o D. A. Caughey e M. M. Hafez, CMAS: Computational Methods in Applied Sciences, 1994 [19] Gaskell, P.H., Savage, M.D., Thompson, H.M.,"Creeping Flow - Novel Analytic and Finite Elements Solutions”, Proc. of the 7th Int. Conf. Num. Methods in Laminar & Turbulent Flow, Part 2, pp.1743-1753,1991 [20] Gaskell, P.H., Savage, M.D., Wilson, M.,"Stokes flow in a half-filled annulus between rotating coaxial cylinders”, J. Fluid Mech., V.337, pp.263-282,1997 5 [21] Gaskell, P.H., Savage, M.D., Summers, J.L., Thompson, H.M.,”Stokes flow in closed, rectangular domains", Applied Mathematical Modeling V.22, pp.727- 743,1998 [22] Ghia, U., Ghia, K.N., Shin, C.T.,"High-Re Solutions for Incompressible Flow Using the Navier-Stokes Equations and a Multigrid Method", Journal of Computational Physics, V.48, pp.387-411,1982 [23] Harper, J.F., Wake, G.C., “Stokes Flow between Parallel Plates due to a Transversely moving end Wall’, J. Appl. Math., v. 30, pp. 141-149, 1983 [24] Harwell Subroutine Library, AERE Harwell, Oxfordshire, England, 1978 [25] http://csep1.phy.ornl.gov/CSEP/PL [26] IMSL Library, Math.Lib., Houston, Texas, 1989 [27] Jeffrey, D. J, Sherwood, J.D. ,“Streamline Patterns and Eddies in Low-Reynolds- Number Flow’, J. Fluid Mech., v. 96, pp. 315-334, 1980 [28] Joseph, D.D., Sturges, L., “The Convergence of biorthogonal series for biharmonic and Stokes flow edge problems” Parte II SIAM J. Appl. Math. V.34, pp.7-26,1978 [29] Kawaguti,M., “Numerical Solution of the Navier-Stokes Equations for the Flow in a Two-Dimensional Cavity”, J. Physics Soc. Japan, 16, pp. 2307-2315, 1961 [30] Krasnopolskaya, T.S., Meleshko, V.V., Peters, G.W., Meijer, H. E.,"Steady Stokes Flow in a annular cavity”, Q. J. Mech, Appl. Maths V.49, pp.593-619, 1996 [31] Leiroz, AJ.K, Cotta, R.M., “On the Solution of Nonlinear Elliptic Convection- Diffusion Problems Through the Integral Transform Method’, Num. Heat Transfer, parte B, v.23, pp.401-411, 1993 [32] Lentini, M., Pereyra, V., "A variable order finite difference method for nonlinear multipoint boundary values problems", Math. Comp., V. 28, pp.981-1004, 1974 116 [33] Levin, D., “Development of Non-Linear Transformations for improving Convergence of Sequences”, Intern. J. Computer Math., v. 3, pp. 371-388, 1973 [34] Lippke, A ., Wagner, H., “A Reliable Solver for Nonlinear Biharmonic Equations”, Computers & Fluids, V. 18, pp. 405-420, 1990 [35] Machado, H. A. , Cotta, R. M., “integral Transform Method for Boundary Layer Equations in Simultaneous Heat and Fiuid Flow Problems’, Int. J. Num. Meth. Heat & Fluid Flow, v. 5, pp. 225-237, 1995 [36] Mikhailov, M. D. e Ozisik, M. N, “Unified Analysis & Solutions of Heat and Mass Diffusion”, John Wiley & Sons, New York, 1984 [37] Mikhailov, M. D., Cotta, R.M., “Integral Transform Solution of Eigenvalue Problems” Comm. Num. Meth. Eng., v. 10, pp. 827-835, 1994 [38] MP! - Message Parsing Interface Forum. “MPI: A Message-Parsing Interface Standard”, pp.46-48, May, 1994 [39] Munson, B. R., Sturges, L. D., “Low Reynolds Number Flow in a Rotating Tank with Barriers’, Phys. Fluids, v. 26, pp. 1173-1176, 1983 [40] NAG Fortran Library. Numerical Algorithms Group, 256 Banbury Road, OXFORD,U.K. {41] Nallasamy, M., Krishna Prasad, “On Cavity Flow at High Reynolds Number’, J. Fluid Mech., 70, pp 391-414, 1977 [42] “Optimization and Tuning Guide for Fortran, C and C++”, AIX, Version 4, IBM Corp., Sec. Edition, 1996 [43] Ozisik, M.N., “Heat Conduction’, John Wiley, New York, 1980 (44] Ozisik, M.N. e Murray, R.L., “On the Solution of Linear Diffusion Problems with Variable Boundary Conditions Parameters “, Journal of Heat Transfer, V. 96, pp.48- 51, 1974 7 [45] Pan, F., Acrivos, A., “Steady Flows in Rectangular Cavities’, J. Fluid Mech., v. 28, pp. 643-655, 1967 [46] Pereyra, V., “PASVA3: An Adaptative Finite-Difference FORTRAN Program for First Order Nonlinear Boundary Value Problems”, Lec. Notes in Comp. Science, 76, Springer-Verlag, Berlin, pp.67-88, 1978 [47] Pérez-Guerrero, J.S., “Solugao das Equagées de Navier-Stokes em Formulagao de Fungao Corrente via Transformagao Integral’, COPPE/UFRu, M.Sc., Tese, Rio de Janeiro, 1991 [48] Pérez-Guerrero, J.S:, Cotta, R. M., “Integral Transform Solution for the Lid-Driven Cavity Flow Problem in Stream-Function-Only Formulation”, J. for Num. Methods in Fluids, v. 15, pp. 399-409, 1992 [49] Pérez-Guerrero, J.S., Cotta, R. M., Scofano Neto, F., “Hybrid Solution of the Incompressible Navier-Stokes Equations Via Integral Transformation’, Proc. of the 2% Int. Conf. Advanced Computational Methods in Heat Transfer, “Heat Transfer 92” v. 1, pp. 735-750, Milan, Italy, 1992 50] Pérez-Guerrero, J.S., Cotta, R. M., Scofano Neto, F., “Integral Transformation of Navier-Stokes Equations for Incompressible Laminar Flows in Channels”, Proc. of the 8th Int. Conf. Num. Methods in Laminar & Turbulent Flow, v. 2, pp. 1195-1206, Swansea, UK, 1993 [51] Povitsky, A. , “Efficient Parallelization of a Parabolized Flow Solver’, Computers & Fluids, V. 27, n. 8, pp. 985-1000, 1998 [52] Press, W. H. et al., “Numerical Recipes in Fortran — The Art of Scientific Computing” 2 ed., Cambridge Publishing, New York, 1994 [53] Ramos, R., Cotta, R.M., "Integral Transforms in the Two-Dimensional Nonlinear Formulation of Longitudinal Fins with Variable Profile", Int. J. Num. Meth. Heat & Fluid Flow, V.8, no.1, pp.21-27, 1998 118 [54] Rodriguez-Prada, H.A., Pironti, F.F., Sdéez,A.E.,“Fundamental Solutions of the StreamFunction-Vorticity formulation of the Navier-Stokes Equations”, International Journal for Numerical Methods in Fluids, V.10, pp.1-12,1990 [55] Rubin, S.G., Khosla, P. K., J. Comp. Fluids, V. 9, pp. 163, 1981 [56] Schreiber, R. e Keller, H. B., “Driven Cavity Flows by Efficient Numerical Techniques’, J. Comp. Physics, V.49, pp. 310-333, 1983 [57] Serfaty, R., Cotta, R.M., “Integral Transform Solutions of Diffusion Problems with Nonlinear Equations Coefficients’, Int. Comm. Heat & Mass Transfer, v.17, pp. 852- 864, 1990 [58] Serfaty, R., Cotta, R.M., “Hybrid Analisys of Transient Nonlinear Convection- Diffusion Problems’, Int. J. Num, Meth. Heat & Fluid Flow, v.1,pp.55-62, 1992 [59] Seydel, R., "Tutorial on Continuation’, Int. J. of Bifurcation and Chaos, V. 1, pp. 3-11, 1991 [60] Shankar, P.N., “The eddy structure in Stokes Flow in a Cavity”, Journal of Fluid Mechanics V.250, pp.371-383,1993 [61] Shanks, D., “Non-Linear Transformations of Divergent and Slowly Convergent Sequences’, J. Math. and Phys., v.34, pp.1-4, 1955 [62] Stephen, J. C., “Fortran 90/95 for Scientists and Engineers” 1.ed., McGraw-Hill Book Co, Singapore, 1998 [63] Sturges, L. D., “Stokes Flow in a Two-Dimensional Cavity with Moving End Walls’, Phys. Fluids, v. 29, pp. 1731-1734, 1986 [64] Sunderam, V.S., PVM: A Framework for Parallel Distributed Computing. Concurrency: Practice and Experience, 2(4), 1990. {65] Tannehill J., Anderson D., Pletcher R., “Computation Fluid Mechanics and Heat Transfer", Mc Graw-Hill Book Company, 1. Ed., 1984 119 [66] Wolfram, S., “Mathematica — A system for doing Mathematics by Computer”, The Advanced Book Program, Addison-Wesley Publishing Co., Redwood City, California, 1991 [67] Wright, R., Cash, J., Moore, G., “Mesh Selection for Stiff Two-Point Boundary Value Problems”, Numerical Algorithms, v. 7, p. 205, 1994 120 Apéndice A Fonte do programa Fortran otimizado, com implementagdes do Fortran 90 MODULE SHARE IMPLICIT NONE integer, parameter :: RZA=2.0 CHARACTER*15 NOME :: XRIGHT = 5.D0 REAL(KIND=8), PARAMETER :: R = 0 NUMERO DE REYNOLDS END MODULE SHARE PROGRAM CASOS ! Programa com eliminacao de stride nas rotinas do [MSL ' PROBLEMA DA CAVIDADE RESOLVIDA " ‘TRANSFORMADA INTEGRAL GENERALIZADA CASO AUTOVALOR BIHARMONICO. fa FORNECE 0 CAMPO TRANSFORMADO E SUAS DERIVADAS. USE MSIMSLMD. USE SHARE. IMPLICIT NONE, INTEGER :: MXGRID, NMAX, LDYFIN, LDYINI REAL{KIND=8),ALLOCATABLE, DIMENSION(:) :: ERREST REAL(KIND=8),ALLOCATABLE, DIMENSION(:) :: XFINAL, XINIT. REAL(KIND=8),ALLOCATABLE, DIMENSION(:,:) : YFINAL, YINIT REAL(KIND=8) :: T1, T2, PISTEP, TOL, XLEFT REAL(KIND=8) :: TIME2, TF, DELX, TIME1, TIMTI, TIMEF INTEGER =: NN=5, UR =5 INTEGER :: NEQNS, INIX, INTY, NINIT, NFINAL, INTEGER :: Vii, 12, 3, NGUESS, NP, NLEFT INTEGER :: NCUPEC, I,J, K LOGICAL :: LINEAR,PRINT EXTERNAL FCNBC,FCNEQN,FCNIAC, FCNPEQ, FCNPBC PRINT *, Numero Maximo de Termos?" read (*,")NMAX, LDYFIN=4*NMAX, LDYINI=4*NMAX, ALLOCATE(A(nmax.nmax,nmax),FBC(nmax) ,UU(amax)) ALLOCATE(B(nmaxnmax,nmax),C(nmax,nmax,timax),D(nmax,nmax) ) ALLOCATE(ERREST(4*NMAX)) PRINT *, ‘Tamanho Maximo da Malha?” read (*,*)MXGRID ALLOCATE(XFINAL(MXGRID), XINIT(MXGRID)) ALLOCATE(YFINAL{(4*NMAX,MXGRID), YINIT(4*NMAX,MXGRID)) 121 PRINT *, Nome do arquivo de saida (tempos)? read (*,*)nome nome = nomel/dat” Tl =TIMEFQ) OPEN(UNIT=26,FILE=nome;STATUS=REPLACE), ‘OPEN(UNIT=16,FILE=jerror.datSTATUS=UNKNOWN?) OPEN(UNIT=32,FILE=RELAT.DAT,, FORM=FORMATTIEDSTATUS=REPLACE) ! Leitura dos Autovalores do Problema Auxiliar OPEN(UNIT=4,FILE=filed.datSTATUS=OLD}, READ(4,*)(UU(), I= 1, NMAX) CLOSE(4) 1 Geracao dos coeficientes CALL JANEW2(NMAX) CALL JBNEW2(NMAX) CALL JCNEW2(NMAX) CALL JD2(NMAX) NEQNS =4#NN iN =NN ; NCUPBC = 0 XLEFT =0.D0 ;PRINT = false. ; LINEAR =.FALSE. INIX =0 3INIY : PISTEP = 0.01 NFINAL = 101 !NINIT=101 NGUESS = 0 3TOL =1.D-4 Ul =NMAX jU2 =NMAX =; 3 DO I=1,.NFINAL DELX=(XRIGHT-XLEFT)/DFLOAT(NFINAL-1) XFINAL()=DFLOAT(-1)"DELX + XLEFT ENDDO- 1 INICIO DAS ITERACOES DO WHILE (UR LE. NMAX) NLEFT=N*2 write(*, "yr WRITE(*,*) NINIT ‘ NINIT. '* SOLUCAO DO SISTEMA DE EQUACOES DIFERENCIAIS ‘TIME1=TIME() write(*,*)R IF (UR EQ. NMAX) TOL=1.D-4 ! CALL dBVPFD(FCNEQN,JAC_NUM,FCNBC,.FCNPEQ,FCNPBC,NEQNS,NLEFT, CALL 4B VPFD(FCNEQN,FCNJAC,FCNBC,FCNPEQ,FCNPBC,NEQNS,NLEFT, 6 NCUPBC.XLEFT,XRIGHT.PISTEP. TOL NINIT,XINIT, YINIT,& LDYINILLINEAR,PRINT,MXGRID.NFINAL,XFINAL,YFINAL, & LDYFIN.ERREST) time2timef() ‘IMT I=time2-TIME vwrite(*,9),N,NINIT afinal,TIMT write(26,9)r,N,NINIT nfinal timtl 122 9 Format(Sx,REYNOLD! ‘afin §7.0,5x,N='14,5X, NINIT="14,5X, & 4,5X, Tempo='f18.10) ! OUTPUT DA VARIAVEL TRANSFORMADA E SUAS DERIVADAS | #eeeereHH4HN4 FIM DO LOOP INCREMENTO DE REYNOLDS IF (NN LT. NMAX ) THEN NGUESS = NN SELECT CASE(UR) CASEG:) UR=UR+4 END SELECT NN=UR N=NN NEQNS = 4*NN ENDDO ! FIM DAS ITERACOES - NUMERO DE TERMOS CALL INVERTE DO I=1.n"4 WRITE(16,*)errest(i) ENDDO ‘T2 = TIMER) TF=T2-Tl WRITE(26,87)TF 87 FORMAT (//,2X, TEMPO TOTAL GASTO = F158) CLOSE (26) CLOSEG2) PRINT +, TF DEALLOCATE(A.FBC.UU) DEALLOCATE(B, C, D) DEALLOCATE(ERREST) DEALLOCATE(XFINAL, XINIT, YFINAL, YINIT) CONTAINS, SUBROUTINE INVERTE PROBLEMA DA CAVIDADE INVERSAO DO CAMPO TRANSFORMADO ! ! CALCULO DA FUNCAO CORRENTE, 1 ‘CAMPO DE VELOCIDADES IMPLICIT REAL*8(A-H,0-Z) INTEGER IND OPEN(UNIT=32,FILE='gask105.dat’ STATUS='replace’) ! NUMERO DE TERMOS DA SERIE (N) E DO NUMERO DOS PONTOS (NFINAL) ap=1 «+ FUNCAO CORRENTE (CORR)... WRITE(32,*) TITLE = "PROBLEMA DE STOKES” WRITE(32,*)' VARIABLES = X.Y." ‘WRITE(32,280)NFINAL.NFINAL 280 FORMAT(’ ZONE T="zone-one", [='14,', J='14,, F-POINT) ! NUMERO DE TERMOS DA SERIE (N) E DO NUMERO DOS PONTOS (NFINAL) 123 np=t .-FUNCAO CORRENTE (CORR). ITERJ: DO J=1,NFINAL.NP ITERK: DO K=1,NFINAL,NP CORRI=0.D0 ‘CORRP=0.D0 IND=1 IMPAR: DO [=1,4*N8 E=UU(IND)*(XFINAL()/XRIGHT-0.5D0) XNI=DCOS(E) XD1I=DCOS(UU(IND)*0.5D0) XN2=DCOSH(E) XD2=DCOSH(UUGND)*0.5D0) X=XNI/XDI-XN2/XD2 IND = IND +2 CORRI=X*YFINAL{LK)+CORRI ENDDO IMPAR ! TERMOS PARES IND=2 PAR: DOI=5,4*N.8 E=UU(IND)*(XFINALQYXRIGHT-0,5D0) XNI=DSINE) XD1=DSIN(UUAND)*0.5D0) XN2=DSINH(E) XD2=DSINH(UU(IND)*0.5D0) X=XNI/XDI-XN2/XD2 IND=IND +2 CORRP=X*YFINAL(.K)}+CORRP ENDDO PAR CORR=CORRI+CORRP WRITE(32,*)xfinal(j)/XRIGHT, sfinal(K),CORR*rza ENDDO ITERK ENDDO ITERJ CLOSE (32) END subroutine inverte END PROGRAM ! 1 SUBROTINAS UTILIZADAS PELA BVPED M4 eeSISTEMA DE EQUACOES DIFERENCIAIS.....0. SUBROUTINE FCNEQN(NEQNS,X.Y P,DYDX) USE SHARE IMPLICIT NONE INTEGER :: NEQNS, 1. J, K REAL{KIND=8) :: X, P REAL(KIND=8) :: Y1. 2, Y3 REAL(KIND=8) :: SIN, SIP, SKN, SKP, SUMK, SUMJ, SK. SJ REAL{KIND=8) ::¥(NEQNS),DYDX(NEQNS) 124 ITERI; DOI=1N SIN=0.D0 SIP=0.D0 ITERJ: ‘SKN=0.D0 SKP=0.D0 yl=Ya7y) y2=¥(441-2) y3=¥(440-3) ITERK: DO K=1,N SK=BOLJ.K)*Y2*Y(4"K-1- & CUS.K)#Y3*Y (4*K-2)- & BOLI, K)*Y 1#¥(4*K-3)+ & A(LLK)*Y2*Y(4*K-3) IF(SK.LE.0,D0)THEN SKN=SKN+SK. ELSE SKP=SKP+SK ENDIF ENDDOITERK SUMK=SKN+SKP_ SJ=-2.D0*D0))*Y(44I-1}4R*p*SUMK IF(SJ.LE.0.D0)THEN SIN=SIN4SJ ELSE ‘SIP=SJP+S] ENDIF ENDDO ITERJ SUMJ=SIN+SIP DYDX(4*1-: DYDX(4*1-: DYDX(4*1)=SUMJ-UU()*"4.D0*¥ (4*1-3) ENDDOITER| END JACOBIANO DO SISTEMA DE EQUACOES. ‘SUBROUTINE FCNIAC(NEQNS,X.Y,P,DYPDY) USE SHARE IMPLICIT NONE INTEGER :: NEQNS, I, J, K,M REAL{KIND=8) :: X, P REAL{KIND=8) :: AJ1, CK1, AK, BK2, CJ, BIL, BJ3, BK, DU REAL{KIND=8) :: ¥(NEQNS),DYPDY(NEQNS,NEQNS) DYPDY=0.D0 ITERI: DOI=1,N TTERM: DO M=1.n ajl=0.40; ck1=0.40; AK=0.D0 BK2=0.D0; ej=0.d0 sbj1=0.40 bk=0.d0; bj3=0.d0 STERI: DOJ=1.n aj l=ajl+a(ij.m)*y(4*j-2) ej=cj+e(ijam)*y(4°I-3) Ddjl=bji +bG,j.m)*y(44I-2) bj3=bj3-+bi,j,m)"y(4"D) ENDDOITER} 125 ITERK: DOK=i,n ck1=ck1 +e(i,m.ky*y(4¥K-2) AK=AK+A(LmK)*Y(4"KC3) BK2=BK2+B(.m,K)*¥(4*K-1) bk=bK+b(i.m,k)*y(4*k-3) ENDDO ITERK DYPDY(441-3,441-2) DYPDY(4*1-2.441-1 DYPDY(4*I-1.44 DU=0.d0, iff.eq.m) du=uu(iy**4 dypdy(4*i,4*m-3)=du+r*(aj -ck1-bj3)*p DYPDY(4#1,4*m-2)-R*(AK+BK2-Cl)*p dypdy(4*i,4*m-1)=-2.d0*d(im)+r*bj1*p dypdy(4#i,4*m) =-r*bk*p ENDDO ITERM. ENDDO ITER] END YF cases CONDICOES DE CONTORNO.... SUBROUTINE FCNBC(NEQNS.YLEFT,YRIGHT,P.F) USE SHARE IMPLICIT NONE INTEGER NEQNS REAL(KIND=8) :: UB, UT, PX, PI REAL{KIND=8) :: YLEFT(NEQNS), YRIGHT(NEQNS),F(NEQNS) -2.D0 -1.D0 IF ( px .€9.0.d0)px=0.1d0 ! pr= 1d F)=YLEFT(4*1-3) FO+N)=YLEFT(4#1-2) + UB*FBC()*px. F(L42*N)=YRIGHT(441-3) F(L43*N)=YRIGHT(441-2}+ UT*FBCO)*px ! uso de 4-1 para segunda derivada =0 => Superficie Livre {__ FQ+3#N)=YRIGHT(4*1-1)+ UT*FBC(D)*px ENDDO END _-DERIVADAS PARCIAIS DE P SUBROUTINE FCNPEQ(neqns.x.y.,dypdp) USE SHARE IMPLICIT NONE INTEGER NEQNS, 1. J, K REAL(KINI X.P REAL(KIND=8) :: Y1, Y2, ¥3 REAL(KIND=8) :: SJN, SJP, SKN, SKP, SUMK, SUMS, SK, SJ REAL(KIND=8) :: dypdp(neqns), y(neqns) ITERE DOI=1,n SIN=0.D0 SIP=0.D0 ITERJ: DOJ=I.N 126 ITERK: DO K=1.N SK=AG,J,K)*Y2*Y(4*K-3)- & BOK)FY(4*K-3)"Y3- & COSKYYIY4*K-2)+ 0 & BOLK)*Y2*Y(4*K-1) IF(SK.LE.0.D0)THEN SKN=SKN+SK ELSE SKP=SKP+SK ENDIF ENDDOITERK SUMK=SKN+SKP SJ=SUMK IF(SIJ_LE.0.D0)THEN SIN=SIN+SI ELSE SIP=SIP+S} ENDIF ENDDOITERJ SUMJ=SIN4+SIP DYpDp(4*=SUMS+r ENDDO ITERI END CONDICOES DE CONTORNO DE ACORDO COM P ... SUBROUTINE FCNPBC(neqns yleft,yright,p.dfdp) USE SHARE IMPLICIT NONE. INTEGER NEQNS : YLEFT(NEQNS), YRIGHT(NEQNS),dFdp(NEQNS) DFDP =0.40 END 127 Cédigo implementado com uso de Jacobiano por Diferengas Finitas MODULE SHARE IMPLICIT NONE, ‘integer, parameter =: RZA=2.0 CHARACTER*15 NOME REAL{KIND=8):: XRIGHT = 5.D0 REAL(KIND=8), ALLOCATABLE :: AC.) REAL(KIND=8), ALLOCATABLE #: B(;,,:), Cl INTEGER N REAL{KIND=8), PARAMETER. =: R = 0 NUMERO DE REYNOLDS. END MODULE SHARE PROGRAM JACDIFE ! Programa com eliminacao de stride nas rotinas do IMSL fo * PROBLEMA DA CAVIDADE RESOLVIDA " ‘TRANSFORMADA INTEGRAL GENERALIZADA " ‘CASO AUTOVALOR BIHARMONICO. " FORNECE 0 CAMPO TRANSFORMADO E SUAS DERIVADAS. i USE MSIMSLMD USE SHARE IMPLICIT NONE INTEGER :: MXGRID, NMAX, LDYFIN, LDYINI REAL(KIND=8),ALLOCATABLE, DIMENSION(:) :: ERREST REAL(KIND=8),ALLOCA TABLE, DIMENSION(:) :: XFINAL, XINIT REAL(KIND=8),ALLOCATABLE, DIMENSION(::) :: YFINAL, YINIT REAL(KIND=8) :: T1, T2, PISTEP, TOL, XLEFT REAL(KIND=8) :: TIME2, TF, DELX, TIME!, TIMT1, TIMEF INTEGER :: NN=5,UR = INTEGER :: NEQNS. INIX, INIY, NINIT, NFINAL INTEGER :: 1J1, 112, 3, NGUESS, NP, NLEFT INTEGER :: NCUPBC, I, J, K LOGICAL :: LINEAR,PRINT EXTERNAL FCNBC.FCNEQN.FCNIAC, FCNPEQ, FCNPBC PRINT *, Numero Maximo de Termos?” read (#,*)NMAX LDYFIN=4*NMAX, LDYINI=4*NMAX ALLOCATE(A(nmax,nmax,nmax),FBC(nmax) ,UU(nmax)) ALLOCATE(B (nmax,nmax,nmax).C(mmax,nmax,nmax),D(amax,nmax) ) ALLOCATE(ERREST(4*NMAX)) PRINT *, ‘Tamanho Maximo da Malha?” read (*,*)MXGRID ALLOCATE(XFINAL(MXGRID), XINIT(MXGRID)) ALLOCATE(YFINAL(4*NMAX,MXGRID), YINIT(4*NMAX.MXGRID)) PRINT *, Nome do arquivo de saida (tempos)?" read (*,*)nome nome = nomed!'dat” 128 Ti = TIMEFO OFENUNIT=26 jome,STATUS=REPLACE’) Tora STATUS UNKNOWN) OPEN(UNIT=4,FIL READ(G,*)(UU@, CLOSE(4) ! Geracao dos coeficientes CALL JANEW2(NMAX) CALL JBNEW2(NMAX) CALL JCNEW2(NMAX) CALL JD2(NMAX) NEQNS =4*NN ;N=NN XLEFT = 0.D0 ; PRINT =-false. INIX =0 7 INIY NFINAL = 101 !NINIT=101 ;TOL =1.D4 32 =NMAX = ;U3 =1 DO I=1,NFINAL DELX=(XRIGHT-XLEFT/DFLOAT(NFINAL-1) XFINAL()=DFLOAT(-1)*DELX + XLEFT ENDDO | INICIO DAS ITERACOES Do WHILE (UR .LE. NMAX) write(*.*)r WRITE(*,*) NINIT =, NINIT !* SOLUCAO DO SISTEMA DE EQUACOES DIFERENCIAIS TIME1=TIME(Q, vrite(*,*)R IF (UR .EQ. NMAX) TOL=1.D4 ! Atencao : modificacao na chamada da BVPFD CALL dB VPFD(FCNEQN,JAC_NUM,FCNBC,FCNEQN,FCNBC ,NEQNS.NLEFT, & ! CALL dB VPFD(FCNEQN,FCNJAC,FCNBC,FCNPEQ,FCNPBC.NEQNS.NLEFT, & NCUPBC,XLEFT.XRIGHT,PISTEP, TOL,NINIT, XINIT. YINIT.& LDYINI.LINEAR,PRINT.MXGRID,NFINAL, XFINAL, YFINAL, & LDYFIN.ERREST) write(*.9)r,N,NINIT final, TIMT1 write(26,9}r.N.NINIT,nfinal,timt | 9 Format(Sx,REYNOLDS="(7.0,5x,N=" ‘finale i4,5X, tempo="f18,10) |4,5X, NINIT=\14,5X, & 129 ! OUTPUT DA VARIAVEL TRANSFORMADA E SUAS DERIVADAS | ##seeseeeeee¢ FIM DO LOOP INCREMENTO DE REYNOLDS, IF (NN.LT. NMAX ) THEN NGUESS = NN SELECT CASEGUR) CASE(S:) UR=URM END SELECT NN=UR N=NN NEQNS = 4*NN ELSE UR=UR+1 ENDIF ENDDO ! FIM DAS ITERAGOES - NUMERO DE TERMOS CALL INVERTE, DO T=1.n*4 WRITE(I6,*)errest(i) ENDDO 72 =TIMEFO. TF =12-T1 WRITE(26,87)1F 87 FORMAT (//,2X,TEMPO TOTAL GASTO = 'F15.8) CLOSE (26) CLOSE(32) PRINT +, TF DEALLOCATE(A,FBC,UU) DEALLOCATE(B, C, D) DEALLOCATE(ERREST) DEALLOCATE(XFINAL, XINIT, YFINAL, YINIT) CONTAINS SUBROUTINE INVERTE, PROBLEMA DA CAVIDADE INVERSAO DO CAMPO TRANSFORMADO ! 1 CALCULO DA FUNCAO CORRENTE, ! CAMPO DE VELOCIDADES: IMPLICIT REAL*8(A-H,0-Z) INTEGER IND OPEN(UNIT=32,FILE='gask105.dat, STATUS='replace’) NUMERO DE TERMOS DA SERIE (N) E DO NUMERO DOS PONTOS (NFINAL) mp =1 {es ennnte-FUNCAO CORRENTE (CORR). WRITE(32,*)TITLE = “PROBLEMA DE STOKES” WRITE(32,*) VARIABLES = X,Y.F° WRITE(32,280)NFINAL,NFINAL 280 FORMAT(’ ZONE T="zone-one”, 14, 1='14,, POINT) NUMERO DE TERMOS DA SERIE (N) E DO NUMERO DOS PONTOS (NFINAL) np=1 130 {nents FUNCAO CORRENTE (CORR)... ITERJ: DO J=1,NFINAL.NP TTERK: DO K=I,NFINAL.NP CORRI=0.D0 CORRP=0.D0 E=UU(ND)*“(XFINAL(YXRIGHT-0.5D0) XNI=DCOS(E) XD1=DCOS(UU(IND)*0.5D0) XN2=DCOSH(E) XD2=DCOSH(UU(IND)*0.5D0) X=XNI/XD1-XN2/XD2 IND =IND +2 CORRI=X*YFINAL(K)+CORRI ENDDO IMPAR ! TERMOS PARES IND=2 PAR: DO 1=5,4*N,8 E=UU(IND)*(XFINAL(/XRIGHT-0.SD0) XNI=DSINE) XDI=DSIN(UU(IND)*0.5D0) XN2=DSINH(E) XD2=DSINH(UU(IND)*0.5D0) X=XNI/MDI-XN2/XD2 CORRP=X*YFINAL(,.K}+CORRP ENDDO PAR CORR=CORRI+CORRP WRITE(32,*)xfinal(/XRIGHT, xfinal(K),CORR*rza, ENDDOITERK ENDDO ITERI CLOSE (32) END subroutine inverte END PROGRAM 1 ! SUBROTINAS UTILIZADAS PELA BVPFD SISTEMA DE EQUACOES DIFERENCIAIS..... SUBROUTINE FCNEQN(NEQNS,X,Y,P,DYDX) ‘USE SHARE IMPLICIT NONE INTEGER :: NEQNS, I. J, K REAL{KIND=8) :: X, P REAL(KIND=8) :: ¥1, 2. ¥3 REAL(KIND=8) :: SIN, SJP, SKN, SKP, SUMK, SUM. SK, SJ REAL(KIND=8) :"¥ (NEQNS), DYDX(NEQNS) ITERI: DO I=1,N SIN=0.D0 SIP=0.D0 131 yl=YCa4d) y2=¥(44I-2) y3=¥(4*33) ITERK: DO K=1,N SK=B(LLK)*Y2*Y (4*K-1)- & CULLK)*Y3*YG*K-2)- & BOLK)Y AY @*K-3)+ & AGLK)*Y2*Y(44K-3) IF(SK.LE.0.D0)THEN SKN=SKN+SK_ ELSE SKP=SKP+SK ENDIF ENDDOITERK SUMK=SKN+SKP S¥=-2.D0*D(J)*¥ (44I-1)+R*p*SUMK IF(S1.LE.0.DO)THEN SINSSIN+SI ELSE SIP=SIP+S5 ENDIF ENDDO ITER) SUMJ=SIN+SIP DYDX(4*1-3)=¥¢441-2) DYDX (441-2) Y441-1) DYDX(441L-1)=¥ 441) DYDX(4#1)=SUMJ-UUG)"*4.D0*Y (441-3) ENDDOITERI END {* JACOBIANO DO SISTEMA DE EQUACOES DIFERENCIAIS SUBROUTINE JAC_NUM(N,X,W,P,DWPDW) IMPLICIT REAL*8(A-H.O-Z) REAL{KIND=8), PARAMETER =: EPS = 1.D-8 REAL(KIND=8) :; W(N),DWDX I(N),DWDX2(N),DWPDW(N.N) EXTERNAL FCN_JN CALL FCN_IN(N,X,W,P,DWDX1) DO I=IN TMP = WO) H= EPS*ABS(TMP) IF(H EQ. 0.00) H = EPS TMP +H (J) "TMP CALL FCN_IN(N,X.W,P,DWDX2) Wo) = TMP DWPDW(1:N.J) = (DWDX2(1:N) - DWDX1(I:N) Y/H ENDDO RETURN END 132 {SISTEMA DE EQUACOES DIFERENCIAIS SUBROUTINE FCN_JN(NEQNS,X,Y,P,DYDX) USE SHARE IMPLICIT NONE. INTEGER :: NEQNS, I, J, K REAL(KIND=8) :: X, P REAL(KIND=8) :: Y1, ¥2, ¥3 REAL(KIND=8) :: SIN, SJP, SKN, SKP, SUMK, SUMJ, SK, SJ REAL(KIND=8) ::Y(NEQNS),DYDX(NEQNS) ITERI: DO I=1.N ‘SIN=0.D0 yl=Ya"d) y2=¥ (444-2) y3=¥(44I3) ITERK: DO K=1.N SK=BLIK)*Y2*Y(4*K-1)- & CULLK)*Y3*Y 4*K-2)- & BOS.KPYIAY(44K-3)+ & ACK) Y2°Y(4K-3) IF(SK.LE.0.D0)THEN SKN=SKN+SK ELSE SKP=SKP#SK ENDIF ENDDO ITERK SUMK=SKN+SKP SJ=-2.D0*D(.J)FY (441-1)+R*p*SUMK IF(SJ.LE.0.D0)THEN ENDDO ITERJ SUMI=SIN+SIP DYDX(4*1-3)=Y(4*1-2) DYDX(4*1-2)=¥(441-1) DYDX(441-1)=¥ (441) DYDX(4"1)=SUMJ-UU()*#4. DOTY (4°13) ENDDO ITER! END 133 Cédigo implementado utilizando a Aceleragao de Convergéncia - Shanks MODULE SHARE, IMPLICIT NONE, integer, parameter :: RZ, CHARACTER*15 NOME 0 XRIGHT = 5.D0 ), ALLOCATABLE :: AC ), ALLOCATABLE :: BC: ‘«), FBCG) , UU) hs CC), DED INTEGER N REAL(KIND=8), PARAMETER. R = 0 NUMERO DE REYNOLDS END MODULE SHARE, PROGRAM SHANKS + Programa com eliminacao de stride nas rotinas do IMSL_ " " PROBLEMA DA CAVIDADE RESOLVIDA TRANSFORMADA INTEGRAL GENERALIZADA s CASO AUTOVALOR BIHARMONICO. * FORNECE 0 CAMPO TRANSFORMADO E SUAS DERIVADAS. 1 USE MSIMSLMD USE SHARE, IMPLICIT NONE INTEGER :: MXGRID, NMAX, LDYFIN, LDYINI REAL(KIND=8).ALLOCATABLE, DIMENSION(>) :: ERREST REAL(KIND=8),ALLOCATABLE, DIMENSION(:) :: XFINAL, XINIT REAL(KIND=8).ALLOCATABLE, DIMENSION(:,:) :: YFINAL, YINIT REAL(KIN TI, T2, PISTEP, TOL, XLEFT REAL(KIND=8) :: TIME2, TF, DELX, TIME1, TIMT!, TIMEF INTEGER :: NN=5,UR =5 INTEGER :: NEQNS, INIX, INIY, NINIT, NFINAL INTEGER =: L1, 112, 13, NGUESS, NP, NLEFT INTEGER :: NCUPBC, I. J, K LOGICAL :: LINEAR. PRINT EXTERNAL FCNBC.FCNEQN,FCNJAC, FCNPEQ, FCNPBC PRINT *, Numero Maximo de Termos?” read (*,*)NMAX LDYFIN=4*NMAX LDYINI=4*NMAX ALLOCATE(A(nmax,nmax,nmax),FBC(nmax) ,UU(nmax)) ALLOCATE(B(nmax.nmax,nmax),C(nmax,amax,nmex),D(nmax,nmax) ) ALLOCATE(ERREST(4*NMAX)) PRINT *, ‘Tamanho Maximo da Matha” read (*,*JMXGRID ALLOCATE(XFINAL(MXGRID), XINIT(MXGRID)) ALLOCATE(YFINAL(4*NMAX,MXGRID), YINIT(4*NMAX,MXGRID)) PRINT *, ‘Nome do arquivo de saida (tempos)?” read (*,")nome nome = nome//"dat" 134 ‘Ti =TIMEFQ 6,FILE=nome,STATUS= 6,FILE= jerror.datSTATU: 2,FILE=RELAT.DAT, FOR! PLACE), = UNKNOWN’) FORMATTED, STATUS~ REPLACE) ! Leitura dos Autovalores do Problema Auxiliar OPEN(UNIT=4,FILE=Sfiles.dat,STATUS=OLD) READ(4,*)\(UU(), I= 1, NMAX) CLOSE(4) 1 Geracao dos coeficientes CALL JANEW2(NMAX) CALL JBNEW2(NMAX) CALL JCNEW2(NMAX) CALL JD2(NMAX) NEQNS =4*NN :N =NN : NCUPBC =0 XLEFT =0.D0 ;PRINT =Jalse. ; LINEAR =.FALSE, INIX =0 sINIY s PISTEP = 0.01 NFINAL = 10] !NINIT=101 NGUESS = :TOL =1.D4 Ul =NMAX 302 =NMAX 13 DO ]=1,NFINAL DELX=(XRIGHT-XLEFT)/DFLOAT(NFINAL-1) XFINAL{I)=DFLOAT(-1)*DELX + XLEFT ENDDO ! INICIO DAS ITERACOES DO WHILE (UR .LE. NMAX) write(*.*)r WRITE(*,*) NINIT =, NINIT !* SOLUCAO DO SISTEMA DE EQUACOES DIFERENCIAIS TIME!=TIMEfO write(*,*)R IF (UR EQ. NMAX) TOL=1.D-4 1 CALL dB VPFD(FCNEQN.JAC_NUM,FCNBC.FCNPEQ,FCNPBC,NEQNS,NLEFT, CALL dB VPFD(FCNEQN.FCNJAC,FCNBC,FCNPEQ.FCNPEC,NEQNS.NLEFT, & NCUPBC.XLEFT.XRIGHT PISTEP, TOL NINIT.XINIT, YINIT,& LDYINI,LINEAR,PRINT,MXGRID.NFINAL,XFINAL,YFINAL, & LDYFIN.ERREST) time2=timef() ‘TIMT 1=time2-TIME1 write(*,9),.N,NINIT,nfinal, TMT] write(26,9)r,N,NINIT,nfinal.timt1 9 Format(5x,REYNOLDS="f7.0.5x,N='I4,5X, NINIT="I4,5X, & ‘nfinal="i4,5X, tempo='f18.10) ! OUTPUT DA VARIAVEL TRANSFORMADA E SUAS DERIVADAS 135 | ##e9¢¢4¢444¢¢#0+ FIM DO LOOP INCREMENTO DE REYNOLDS IF (NN LT. NMAX ) THEN NGUESS = NN SELECT CASE(UR) CASE(S:) DR=UR+4 END SELECT NN=UR N=NN NEQNS = 4*NN ELSE UR=UR+1 ENDIF ENDDO ! FIM DAS ITERACOES - NUMERO DE TERMOS CALL INVERTE DO I=1,n*4 WRITE(16, erresi(i) ENDDO T2=TIMEF() TR=72-T1 WRITE(26,87)TF 87 FORMAT (//,2X,TEMPO TOTAL GASTO ='FI5.8) CLOSE (26) CLOSEG2) PRINT *, TF DEALLOCATE(A,FBC,UU) DEALLOCATE(B, C, D) DEALLOCATE(ERREST) DEALLOCATE(XFINAL, XINIT. YFINAL, YINIT) CONTAINS SUBROUTINE INVERTE PROBLEMA DA CAVIDADE INVERSAO DO CAMPO TRANSFORMADO ! : ‘CALCULO DA FUNCAO CORRENTE, ! CAMPO DE VELOCIDADES IMPLICIT REAL*8(4-H,0-Z) INTEGER IND. IS REAL(KIND=8):: SERIE(60), VALOR, SUMP SERIE = 0.D0 OPEN(UNIT=32, FILE='gask 105 dat’STATUS= replace’) ! NUMERO DE TERMOS DA SERIE (N) E DO NUMERO DOS PONTOS (NFINAL) ' -FUNCAQ CORRENTE (CORR). { WRITE(32,*) "CAVIDADE QUADRADA - ACELERAGAO DE CONVERGENCIA" {NUMERO DE TERMOS DA SERIE (N) E DO NUMERO DOS PONTOS (NFINAL) np=t ! -FUNCAO CORRENTE (CORR)... 136 ITERJ: DO J=1,NFINAL,NP ITERK: DO K=1,NFINAL.NP IMPAR; DO I=! E=UU(ND)*(XFINALUYXRIGHT-0.5D0) XN1=DCOS(E) XD1=DCOS(UUGND)*0.5D0) XN2=DCOSH(E) XD2=DCOSH(UU(IND)*0.5D0) X=XNUXDI-XNYXD2 IND = IND +2 CORRI=X*YFINAL(,K)+CORRI SUMP = SUMP + CORRI SERIE() = SUMP ENDDO IMPAR ! TERMOS PARES IND=2 PAR: DO Is5,44N,8 E=UU(IND)(XFINALUYXRIGHT-0.5D0) XNI=DSINE) XDI=DSINCUUAND)*0.5D0) XN2=DSINHE) XD2=DSINH(UU(ND)*0.5D0) X=XNUXDI-XNUXD2 IND=IND +2 CORRP=X*YFINAL(.K}+CORRP SUMP = SUMP +CORRP SERIE(1) = SUMP ENDDO PAR, CORR=CORRI+CORRP !CALCULO DA ACELERACAO DE SHANKS E IMPRESSAO DE RESULTADOS DOIS=3,N,2 CALL SHANK(IS,SERIE, VALOR) IF (IS EQ. 3) THEN WRITE(32,*) ‘WRITE(32,77) xfinal(j/XRIGHT, xfinal(K), CORR*RZA, IS, VALOR*RZA n FORMAT( F104, F10.4 , £21.12,’ TERMOS: "92,” £21.12) ELSE ! IMPRESSAO DOS VALORES PARCIAIS DA SERIE WRITE(32,78) IS, VALOR*RZA. B FORMAT(’ vv TERMOS: ‘12, £21.12) ENDIF ENDDO. ENDDO ITERK ENDDOITERJ CLOSE (32) END subroutine inverte 137 END PROGRAM. 1! SUBROTINA PARA ACELERACAO DE CONVERGENCIA - SHANK.F90 ! Calculo das somas parciais de séries ‘SDeclare Module Matrizes Real*8, Allocatable, Dimension(:,:) Real*8, Allocatable, Dimension(:,:) Integer*4, Allocatable, Dimension(:) End Module Matrizes matnum,matden FACN,FACD IPVTN,IPVTD SUBROUTINE SHANK( Nt, SERIE, VALOR) Use MSIMSLMD Use Matrizes Integer*4 i,jmyntynts,nn,kk Real*8 sump,funcao,DETN1,DETN2,DETD1,DETD2,sumSHANK,RCONDN,RCONDD External funcao REAL*8 —SERIE(*), VALOR LOGICAL FLAG FLAG = TRUE. DOI=1,NT IF ( SERIE(I) .NE. 0.D0 ) FLAG = FALSE. ENDDO IF (FLAG) THEN VALOR = 0.D0 ELSE ! Formagio da Série Parcial nn = Ceiling(Dble(nt)/2.0) kk = nn-l Alfocate(matnum(nn.nn),matden(nn,nn)) ! Primeira linha das matrizes Do j=1,an matnum(1,j) = serie(an-kk-14)) matden(1,j) = 1.0 EndDO ! Montagem do resto das matrizes Do i=2,an Doj=inn matnum(i,j)=serie(nn-kk+ (i-2}+))-serie(nn-kk+(i-3)4j) matden(i,j)=serie(nn-kk+(-2)4))-serle(nn-kk+(i-3)+5) EndDo EndDo 1 Céleuto de Shank Allocate(FACN(nn,nn),FACD(nn,nn)IPVTN(nn),[PVTD(an)) CALL DLFCRG (nn, matoum, nn, FACN, nn, IPVIN, RCONDN) CALL DLFCRG (nn, matden, nn, FACD, nn, IPVTD, RCONDD) : Calculo dos Determinates CALL DLFDRG (an, FACN, nn, IPVTN, DETN1, DETN2) CALL DLFDRG (an, FACD, nn, IPVTD, DETD1, DETD2) 138 sumSHANK = (DETN1*10.d0**DETN2)(DETD1*10.d0**DETD2) VALOR = sumSHANK DEALLOCATE(matnum,matden,FACN,FACD,IPVIN,IPVID) ENDIF end 1 SUBROTINAS UTILIZADAS PELA BVPFD PFs cansnnn SISTEMA DE EQUACOES DIFERENCIAI.... SUBROUTINE FCNEQN(NEQNS,X,Y,P,DYDX) USE SHARE IMPLICIT NONE INTEGER =: NEQNS, I,J, K REAL(KIND=8) :: X, P REAL{KIND=8) :: ¥1. Y2, ¥3 SIN, SIP, SKN, SKP, SUMK, SUMI, SK, SJ : ¥(NEQNS),DYDX(NEQNS) y3=Y(4J-3) TTERK: © DOK=1,N SK=B(LI,K)*Y2*Y(4*K-1)- & COLLK)*Y3*Y(4*K-2)- & BOLI.K)*Y 1*Y(4*K-3}- & AGLL.K)*Y2*Y(44K-3) IF(SK.LE.0.D0)THEN SKN=SKN+SK ELSE SKP=SKP+SK ENDIF ENDDOITERK SUMK=SKN+SKP SJ=-2.D0*DG,D*¥(4*J-1)+R*p*SUMK IF(SI.LE.0.D0)THEN SIN=SIN+SI ELSE SIP=SIP+S3 ENDIF ENDDOITERI SUMI=SIN+SIP DYDX(44-3)=¥(4*1-2) DYDX(441-2)=¥(441-1) DYDX(4*1-1)=¥(4"1) DYDX(4*1)=SUMI-UU()*#4.D0*Y(4"1-3) ENDDO ITERI END 139 PF ass ACOBIANO DO SISTEMA DE EQUACOES...... SUBROUTINE FCNIAC(NEQNS,X,Y,P,DYPDY) USE SHARE IMPLICIT NONE INTEGER :: NEQNS, i, J, K,M REAL(KIND=8) :: X, P REAL(KIND=8) =: All, CK1, AK, BK2, CI, BI1, BJ3, BK, DU REAL(KIND=8) :; ¥(NEQNS),DYPDY(NEQNS,NEQNS) DYPDY=0.D0 ITERI: DO 1=1.N TTERM: DOM=1.0 40; ck1=0.40; AK=0.D0 j=0.d0 sbjl=0.d0 bk=0.d0 ; bj3-0.0 ITER): = DOJ=1n aj =a +aGi jn) *y(4%)-2) ej=ejteti,j.m)*y(47I-3) Dbjl=bjl+b(ij,m)*y(44F-2) bj3=bj3+ DG j-m)*y(44) ENDDOITERJ ITERK: § DOK=I,n kL te(im.k)*y(4*K-2) K+A(LmK)*Y(4*K-3) BK2-BK2+B(Lm,K)*¥(4*K-1) bk=bK+b(im)"y(4*k-3) ENDDO ITERK DYPDY(441-3,441-2)=1.D0 DYPDY(4*1-2.441-1}=1.D0 DYPDY(441-1.441)=1,D0 DU=0.40 if(i.cq.m) du=-uu(i)**4 dypdy(4i,4#m-3)=duts*(ajl -ck1-bj3)*p END Po csnstne«CONDICOES DE CONTORNO..... SUBROUTINE FCNBC(NEQNS.YLEFT.YRIGHT,P.F) USE SHARE IMPLICIT NONE INTEGER NEQNS REAL(KIND=8) :: UB, UT, PX, Pd YLEFT(NEQNS).YRIGHT(NEQNS),F(NEQNS) UB = -2.D0 IF ( px .€4.0.40)px=0.1d0 ! px= 1.60 N FQ)=YLEFI(4+1-3) FOAN)=YLEFT(4*-2) + UB*FBC()*px 140 F(42*N)=YRIGHT(4*1-3) FQ+3*N)=YRIGHT(4*1-2)+ UT+FBCO)+px uso de 41-1 para segunda derivada ~0 => Superficie Livre ! Fd43*N)-YRIGHT(4*1-1)+ UT*FBC()*px ENDDO END DERIVADAS PARCIAIS DE P SUBROUTINE FCNPEQ(neqns.x.y.p.dypdp) USE SHARE IMPLICIT NONE INTEGER NEQNS, I, J, K REAL(KIN} XP REAL(KIND=8) :: YI, Y2. ¥3 REAL(KIND=8) :: SIN, SIP, SKN, SKP, SUMK, SUMJ, SK, SJ REAL(KIND=8) :: dypdp(neqns), y(neqns) ITERE: DOI=i,n ‘SIN=0.D0 SIP=0.D0 ITERI: DOJ=1,.N SKN=0.D0 SKP=0.D0 Y1=¥@*)-3) Y2=Y¥ (441-2) Y3=Y(4*)) ITERK: DO K=1,N SK=ACLL.K)*Y2*Y(G*K-3} & BOLK)*Y4*K-3)"Y3 & COLK)YIYG*K2)+ & BOLI.K)*¥2*Y(44K-1) IF(SK.LE.0.D0)THEN SKN=SKN+SK ELSE SKP=SKP+SK ENDIF ENDDO ITERK SUMK=SKN+SKP SJ=SUMK IE(SI.LE.0.D0)THEN SIN=SIN+S} ELSE SIP=SIP+SI ENDIF ENDDOITERJ SUMJ=SIN+SIP DYpDp(4*1)}=SUMJ*r ENDDOITERI END 1 sssesseCONDICOES DE CONTORNO DE ACORDO COM P....... SUBROUTINE FCNPBC(neqns. yleft,yrightp.dfép) USE SHARE IMPLICIT NONE INTEGER NEQNS REAL(KIND=8) :: P 141 REAL(KIND=8) :: YLEFT(NEQNS), YRIGHT(NEQNS).dFdp(NEQNS) DFDP =0.0 END 142

You might also like