Numerical algorithms for three dimensional computational fluid dynamic problems

The target of this work is to contribute to the enhancement of numerical methods for the simulation of complex thermal systems. Frequently, the factor that limits the accuracy of the simulations is the computing power: accurate simulations of complex devices require fine three-dimensional discretizations and the solution of large linear equation systems.Their efficient solution is one of the central aspects of this work. Low-cost parallel computers, for instance, PC clusters, are used to do so. The main bottle-neck of these computers is the notwork, that is too slow compared with their floating-point performance.Before considering linear solution algorithms, an overview of the mathematical models used and discretization techniques in staggered cartesian and cylindrical meshes is provided. The governing Navier-Stokes equations are solved using an implicit finite control volume method. Pressure-velocity coupling is solved with segregated approaches such as SIMPLEC.Different algorithms for the solution of the linear equation systems are reviewed: from incomplete factorizations such as MSIP, Krylov solvers such as BICGSTAB and GMRESR to acceleration techniques such as the Algebraic Multi Grid and the Multi Resolution Analysis with wavelts. Special attention is paid to preconditioned Krylov solvers for their application to parallel CFD problems.The fundamentals of parallel computing in distributed memory computers as well as implemetation details of these algorithms in combination with the domain decomposition method are given. Two different distributed memory computers, a Cray T3E and a PC cluster are used for several performance measures, including network throughput, performance of algebraic subroutines that affect to the overall efficiency of algorithms, and the solver performance. These measures are addressed to show the capabilities and drawbacks of parallel solvers for several processors and their partitioning configurations for a problem model.Finally, in order to illustrate the potential of the different techniques presented, a three-dimensional CFD problem is solved using a PC cluster. The numerical results obtained are validated by comparison with other authors. The speedup up to 12 processors is measured. An analysis of the computing time shows that, as expected, most of the computational effort is due to the pressure-correction equation,here solved with BiCGSTAB. The computing time algorithm , for different problem sizes, is compared with Schur-Complement and Multigrid. El trabajo de tesis se centra en la solución numérica de las ecuaciones de navier-Stokes en regimen transitorio, tridimensional y laminar. Los algoritmos utilizados son del tipo segregado (SIMPLEC)y se basan en el uso de técnicas de volumenes finitos, con mallas estructurales del tipo staggered y discretizaciones temporales implícitas. En este contexto, el pricipal, problema son los elevados tiempos de cálculo de las simulaciones, que en buena parte se deben a la solución de los sistemas de ecuaciones lineales. Se hace una revisión de diferentes métodos utilizados típicamente en ordenadores secuenciales: GMRES, BICGSTAB, ACM, MSPIP. A fin de reducir los tiempos de cálculo se emplean ordenadores paralelos de memoria distribuida, basados en la agrupacion de ordenadores personales convencionales (PC clusters). Por lo que respecta a la potencia de cálculo por procesador, estos sistemas son comparables a los ordenadores paralelos de memoria distribuida convencionales (como el Cray T3E) siendo, su principal problema la baja capacidad de comunicación (elevada latencia, bajo ancho de banda). Este punto condiciona toda la estrategia computacional, obligando a reducir al máximo el número y el tamaño de los mensajes intercambiados. Este aspecto se cuantifica detalladamente en la tesis, realizando medidas de tiempos de cálculo en ambos ordenadores para diversas operaciones críticas para los algoritmos lineales. Tambien se miden y comparan los tiempos de cálculo y speed ups obtenidos en la solución de los sistemas lineales con diferentes algoritmos paralelos (Jacobi, MSIP, GMRES, BICGSTAB) y para diferentes tamaños de malla. Finalmente, se utilizan las técnicas anteriores para resolver el caso denominado driven cavity, en situacionies tridimensionales y con numeros de Reynolds de hasta 8000. Los resultados obtenidos se utilizan para validar los códigos desarrollados, en base a resultados de otros códigos y también se basa en la comparación con resultados experimentales procedentes de la bibliografía. Se utilizan hasta 12 procesadores, obteniendose spped ups de hasta 9.7 en el cluster de PCs. Se analizan los tiempos de cálculo de cada fase del código, señalandose areas para futuras mejoras. Se comparan los tiempos de cálculo con los algoritmos implementados en otros trabajos. La conclusión final es que los clusters de PCs son una plataforma de gran potencia en los cálculos de dinámica de fluidos computacional.