Título: | Implementação de diferentes métodos iterativos para a resolução de sistemas lineares com aplicação em mecânica dos fluidos |
Autor(es): | Corrêa, Guilherme Mesquita |
Orientador(es): | Rosa, Adriano Possebon |
Assunto: | Equações lineares Mecânica dos fluidos Linguagem de programação - Python |
Data de apresentação: | 10-Nov-2021 |
Data de publicação: | 8-Nov-2024 |
Referência: | CORRÊA, Guilherme Mesquita. Implementação de diferentes métodos iterativos para a resolução de sistemas lineares com aplicação em mecânica dos fluidos. 2021. 128 f., il. Trabalho de Conclusão de Curso (Bacharelado em Engenharia Mecânica) — Universidade de Brasília, Brasília, 2021. |
Resumo: | O presente trabalho estuda e compara diversos métodos iterativos de resolução de sistemas de equa-
ções lineares aplicados na solução do problema da cavidade na mecânica dos fluidos. Os métodos
abordados vão desde métodos simples como Jacobi e Gauss-Seidel, até métodos mais avançados
como o Gradiente Conjugado Pré-condicionado e o Multigrid. Os diversos métodos iterativos são
aplicados para várias malhas com diferentes graus de refinamento e são comparados em termos de
número de iterações necessárias para resolver o problema e tempos de execução dos códigos. As
equações governantes do problema da cavidade são apresentadas, bem como a transformação das
mesmas, que são originalmente equações diferenciais parciais, em um sistema de equações lineares
através do método de projeção e do método de diferenças finitas. A implementação dos métodos
iterativos é feita através do Python, uma linguagem de programação muitas vezes considerada
lenta para esse propósito. Por ser lenta, uma otimização é implementada à linguagem para ace-
lerar a velocidade de execução dos códigos através da biblioteca Numba. Uma comparação entre
os tempos de execução obtidos no Python otimizado será feita com códigos equivalentes executa-
dos em Fortran, que é considerada uma linguagem rápida para esse tipo de aplicação. De uma
forma geral, o método do Gradiente Conjugado Pré-condicionado se mostrou o mais rápido dentre
todos os métodos testados nesse trabalho, seguido do Multigrid e do Gradiente Conjugado sem
pré-condicionamento. Em relação à linguagem de programação utilizada, o Python, conseguiu-
se acelerar consideravelmente seu tempo de execução dos códigos com a utilização da biblioteca
Numba, tornando-o comparável com o Fortran, especialmente no sistema operacional Windows. |
Abstract: | In this work we study and compare several iterative methods for solving linear system of equations
applied to the cavity problem of the fluid mechanics. The methods considered here goes from simple
methods like the Jacobi and Gauss-Seidel method to more advanced methods like Preconditioned
Conjugated Gradient and Multigrid method. The iterative methods are applied to several grids
with diferent levels of refinement and are compared in terms of number of iterations necessary
to solve the problem and execution time of the codes. The governing equations of the cavity
problem are presented, as well as the transformation of the governing equations, which are partial
diferential equations, into a system of linear equations through the projection method and the finite
diferences method. The implementation of the iterative methods is done in Python, a programming
language often considered slow for such purpose. For this reason, a optimization is implemented
to the language in order to accelerate the execution time of the codes using the Numba library. A
comparison will be done between execution times got in optimized Python codes and equivalent
Fortran codes, which is a language considered fast for this kind of application. In a general way, the
Preconditioned Conjugate Gradient was the fastest method compared to the other ones, followed
by Multigrid and Conjugate Gradient without preconditioning. When it comes to the programing
language used, the Python, it was possible to considerably accelerate the execution time of the
codes using the library Numba, making Python comparable to Fortran, specially on operational
system Windows. |
Informações adicionais: | Trabalho de Conclusão de Curso (graduação) — Universidade de Brasília, Faculdade de Tecnologia, Departamento de Engenharia Mecânica, 2021. |
Licença: | A concessão da licença deste item refere-se ao termo de autorização impresso assinado pelo autor que autoriza a Biblioteca Digital da Produção Intelectual Discente da Universidade de Brasília (BDM) a disponibilizar o trabalho de conclusão de curso por meio do sítio bdm.unb.br, com as seguintes condições: disponível sob Licença Creative Commons 4.0 International, que permite copiar, distribuir e transmitir o trabalho, desde que seja citado o autor e licenciante. Não permite o uso para fins comerciais nem a adaptação desta. |
Aparece na Coleção: | Engenharia Mecânica
|
Todos os itens na BDM estão protegidos por copyright. Todos os direitos reservados.