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...
Guardado en:
| Autor principal: | |
|---|---|
| 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/ |