Implementación de modelos Lattice Boltzmann para flujo multifásico con transferencia de calor en unidades de procesamiento gráfico

En este trabajo se implementó un código numérico para resolver problemas de mecánica de fluidos con transferencia de calor en flujos multifásicos con cambio de fase utilizando Unidades de Procesamiento Gráfico (GPU). Se utilizó la arquitectura de las GPU por su diseño, el cual permite realizar la...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autor principal: Coronel, Thomás
Formato: Tesis NonPeerReviewed
Lenguaje:Español
Publicado: 2020
Materias:
Acceso en línea:http://ricabib.cab.cnea.gov.ar/914/1/Coronel.pdf
Aporte de:
id I25-R131-914
record_format dspace
institution Instituto Balseiro
institution_str I-25
repository_str R-131
collection Repositorio Institucional Centro Atómico Bariloche e Instituto Balseiro (RICABIB)
language Español
orig_language_str_mv es
topic Transferencia de Calor
Multiphase flow
Flujo multifásico
Heat transfer
Transferencia de calor
[Lattice Boltzmann]
spellingShingle Transferencia de Calor
Multiphase flow
Flujo multifásico
Heat transfer
Transferencia de calor
[Lattice Boltzmann]
Coronel, Thomás
Implementación de modelos Lattice Boltzmann para flujo multifásico con transferencia de calor en unidades de procesamiento gráfico
topic_facet Transferencia de Calor
Multiphase flow
Flujo multifásico
Heat transfer
Transferencia de calor
[Lattice Boltzmann]
description En este trabajo se implementó un código numérico para resolver problemas de mecánica de fluidos con transferencia de calor en flujos multifásicos con cambio de fase utilizando Unidades de Procesamiento Gráfico (GPU). Se utilizó la arquitectura de las GPU por su diseño, el cual permite realizar la ejecución de instrucciones con elevado nivel de paralelismo, y así reducir los costos computacionales de los algoritmos involucrados. El modelo de lattice Boltzmann (LBM) pseudopotencial es el utilizado para abordar los problemas de interés, el cual resuelve de manera indirecta ecuaciones diferenciales no lineales por medio de ecuaciones lineales más sencilla, y además tiene la ventaja de resultar altamente paralelizable. En particular, para el presente trabajo se utilizó un LBM con dos ecuaciones pseudopotencial con operador MRT. El código realizado se implementó en los lenguajes de programación C, Cuda C y Python, en dónde el desarrollo del proyecto se llevó a cabo mediante la herramienta CMake con la posibilidad de seleccionar su tipo de variables (float o double). El proyecto se planificó para que los kernels de Cuda C compilados puedan ser implementados en un script de Python con su módulo PyCuda. La validación del código se realizó en CPU y GPU para diferentes problemas numéricos. Se realizó una comparación entre los tiempos de cálculo del código en los diferentes lenguajes utilizados, en donde se obtuvo que la implementación en Cuda C llega a ser 23 veces más rápida que el equivalente en C para un único proceso, en las GPU y CPU evaluadas durante este Proyecto Integrador. Por otro lado, al realizar la comparación del código implementado en PyCuda con respecto al equivalente en Cuda C, se obtuvo que el primero es alrededor de un 10% más lento que el segundo. En cuanto a la comparación de la conveniencia de utilización de tipos de variable float o double, se obtuvo que la diferencia porcentual entre las precisiones es cercana al 0,003 %, y que el tiempo de cálculo en variables tipo double es aproximadamente un 25% mayor que en float.
format Tesis
NonPeerReviewed
author Coronel, Thomás
author_facet Coronel, Thomás
author_sort Coronel, Thomás
title Implementación de modelos Lattice Boltzmann para flujo multifásico con transferencia de calor en unidades de procesamiento gráfico
title_short Implementación de modelos Lattice Boltzmann para flujo multifásico con transferencia de calor en unidades de procesamiento gráfico
title_full Implementación de modelos Lattice Boltzmann para flujo multifásico con transferencia de calor en unidades de procesamiento gráfico
title_fullStr Implementación de modelos Lattice Boltzmann para flujo multifásico con transferencia de calor en unidades de procesamiento gráfico
title_full_unstemmed Implementación de modelos Lattice Boltzmann para flujo multifásico con transferencia de calor en unidades de procesamiento gráfico
title_sort implementación de modelos lattice boltzmann para flujo multifásico con transferencia de calor en unidades de procesamiento gráfico
publishDate 2020
url http://ricabib.cab.cnea.gov.ar/914/1/Coronel.pdf
work_keys_str_mv AT coronelthomas implementaciondemodeloslatticeboltzmannparaflujomultifasicocontransferenciadecalorenunidadesdeprocesamientografico
_version_ 1812569712632004608
spelling I25-R131-9142021-05-07T11:52:55Z Implementación de modelos Lattice Boltzmann para flujo multifásico con transferencia de calor en unidades de procesamiento gráfico Implementation of lattice Boltzmann models for multiphase flow with heat transfer in graphic processing units Coronel, Thomás Transferencia de Calor Multiphase flow Flujo multifásico Heat transfer Transferencia de calor [Lattice Boltzmann] En este trabajo se implementó un código numérico para resolver problemas de mecánica de fluidos con transferencia de calor en flujos multifásicos con cambio de fase utilizando Unidades de Procesamiento Gráfico (GPU). Se utilizó la arquitectura de las GPU por su diseño, el cual permite realizar la ejecución de instrucciones con elevado nivel de paralelismo, y así reducir los costos computacionales de los algoritmos involucrados. El modelo de lattice Boltzmann (LBM) pseudopotencial es el utilizado para abordar los problemas de interés, el cual resuelve de manera indirecta ecuaciones diferenciales no lineales por medio de ecuaciones lineales más sencilla, y además tiene la ventaja de resultar altamente paralelizable. En particular, para el presente trabajo se utilizó un LBM con dos ecuaciones pseudopotencial con operador MRT. El código realizado se implementó en los lenguajes de programación C, Cuda C y Python, en dónde el desarrollo del proyecto se llevó a cabo mediante la herramienta CMake con la posibilidad de seleccionar su tipo de variables (float o double). El proyecto se planificó para que los kernels de Cuda C compilados puedan ser implementados en un script de Python con su módulo PyCuda. La validación del código se realizó en CPU y GPU para diferentes problemas numéricos. Se realizó una comparación entre los tiempos de cálculo del código en los diferentes lenguajes utilizados, en donde se obtuvo que la implementación en Cuda C llega a ser 23 veces más rápida que el equivalente en C para un único proceso, en las GPU y CPU evaluadas durante este Proyecto Integrador. Por otro lado, al realizar la comparación del código implementado en PyCuda con respecto al equivalente en Cuda C, se obtuvo que el primero es alrededor de un 10% más lento que el segundo. En cuanto a la comparación de la conveniencia de utilización de tipos de variable float o double, se obtuvo que la diferencia porcentual entre las precisiones es cercana al 0,003 %, y que el tiempo de cálculo en variables tipo double es aproximadamente un 25% mayor que en float. In this work, a numerical code for multiphase flow with phase change and heat transfer was implemented in Graphics Processing Units (GPU). The GPU architecture is used by its design, which performs executions in parallel and thereby reduce the computational costs of the algorithms implemented. A pseudopotential lattice Boltzmann model (LBM) was used, which indirectly recovers the solution of nonlinear differential equations from the solution of a much simpler equation with a highly paralellizable algorithm. In particular, a pseudopotential LBM with MRT operator was implemented. Code was implemented under CMake on the programming languajes C, CUDA C and Python, with the posibility to select variable types at compilation time. CUDA C kernels were also compiled to be used within Python scripts by means of the PyCuda module. Code validation was performed on CPU and GPU for different numerical benchmarks. A comparison was made between the calculation times of the code on the different programming languages, where it was obtained that the implementation on Cuda C improvement from one to two orders of magnitude to the equivalent implementation on C. On the other hand, when comparing the code implemented on PyCuda with respect to the equivalent on Cuda C, the former was found to be about 10% slower. Numerical solutions computed with different variable types (i.e. float or double) showed relative differences lower than 0.003%, while the computational time is increased by 25% between each case. 2020-07-13 Tesis NonPeerReviewed application/pdf http://ricabib.cab.cnea.gov.ar/914/1/Coronel.pdf es Coronel, Thomás (2020) Implementación de modelos Lattice Boltzmann para flujo multifásico con transferencia de calor en unidades de procesamiento gráfico / Implementation of lattice Boltzmann models for multiphase flow with heat transfer in graphic processing units. Proyecto Integrador Ingeniería Mecánica, Universidad Nacional de Cuyo, Instituto Balseiro. http://ricabib.cab.cnea.gov.ar/914/