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 (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.

[img]
Vista previa
PDF (Tesis)
Disponible bajo licencia Creative Commons: Reconocimiento - No comercial - Compartir igual.

Español
2717Kb

Resumen en español

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.

Resumen en inglés

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.

Tipo de objeto:Tesis (Proyecto Integrador Ingeniería Mecánica)
Palabras Clave:Multiphase flow; Flujo multifásico; Heat transfer; Transferencia de calor; [Lattice Boltzmann]
Referencias:[1] Incropera, F. P., Lavine, A. S., Bergman, T. L., DeWitt, D. P. Fundamentals of heat and mass transfer. Wiley, 2007. [2] Schiffer, H.-W., Kober, T., Panos, E. World energy council’s global energy scenarios to 2060. Zeitschrift für Energiewirtschaft, 42 (2), 91–102, 2018. [3] Zhang, Y., Zhang, C., Jiang, J. Numerical simulation of fluid flow and heat transfer of supercritical fluids in fuel bundles. Journal of nuclear science and technology, 48 (6), 929–935, 2011. [4] Guo, Z., Shu, C. Lattice Boltzmann method and its applications in engineering, tomo 3. World Scientific, 2013. [5] Kelley, C. T. Iterative methods for linear and nonlinear equations, tomo 16. Siam, 1995. [6] Krüger, T., et al. The lattice boltzmann method: Principles and practice. sl: Springer international publishing, 2017. [7] Rinaldi, P. R. Modelos de autómatas celulares sobre unidades de procesamiento gráfico de alta performance. Tesis Doctoral, Universidad Nacional de Cuyo, 2011. [8] Fogliatto, E. O., Teruel, F. E., Clausse, A. Modelado y simulación de flujo multifásico mediante el método de lattice-boltzmann. Mecánica Computacional, 36 (23), 1071–1077, 2018. [9] Fogliatto, E. O., Clausse, A., Teruel, F. E. Simulation of phase separation in a van der waals fluid under gravitational force with lattice boltzmann method. International Journal of Numerical Methods for Heat & Fluid Flow, 2019. [10] Fogliatto, E. O., Teruel, F. E., Clausse, A. Transferencia de calor en flujo multifásico mediante el método de lattice-boltzmann. XXIV Congreso sobre Métodos Numéricos y sus Aplicaciones. 5 - 7 de Noviembre, 2019. Santa Fe, Argentina., 2019. [11] Gunstensen, A. K., Rothman, D. H., Zaleski, S., Zanetti, G. Lattice boltzmann model of immiscible fluids. Physical Review A, 43 (8), 4320, 1991. [12] Shan, X., Chen, H. Lattice boltzmann model for simulating flows with multiple phases and components. Physical review E, 47 (3), 1815, 1993. [13] Swift, Y., Osborn. Lattice boltzmann simulation of nonideal fluids. Physical review Lett, 75, 830, 1995. [14] Wang, H., Yuan, X., Liang, H., Chai, Z., Shi, B. A brief review of the phase-field-based lattice boltzmann method for multiphase flows. Capillarity, 2 (3), 33–52, 2019. [15] PARRILL, A. L., LIPKOWITZ, K. B. Reviews in computational chemistry, volume 31, 2019. [16] Huang, H., Sukop, M., Lu, X. Multiphase lattice Boltzmann methods: Theory and application. John Wiley & Sons, 2015. [17] Li, Q., Luo, K., Li, X. Lattice boltzmann modeling of multiphase flows at large density ratio with an improved pseudopotential model. Physical Review E, 87 (5), 053301, 2013. [18] Succi, S., Succi, S. The lattice Boltzmann equation: for complex states of flowing matter. Oxford University Press, 2018. [19] Márkus, A., Házi, G. Simulation of evaporation by an extension of the pseudopotential lattice boltzmann method: A quantitative analysis. Physical Review E, 83 (4), 046705, 2011. [20] Zou, Q., He, X. On pressure and velocity boundary conditions for the lattice boltzmann bgk model. Physics of fluids, 9 (6), 1591–1598, 1997. [21] Inamuro, T., Yoshino, M., Inoue, H., Mizuno, R., Ogino, F. A lattice boltzmann method for a binary miscible fluid. Journal of Computational Physics, 179 (1), 201–215, 2002. [22] AMD. Especificaciones de procesadores, 2020. URL https://www.amd.com/es/ products/specifications/processors/1896,2466,11776,1736,2481, [Web; accedido el 06-05-2020]. [23] Intel. Intel R coreTM processor family, 2020. URL URL{https://www.intel. la/content/www/xl/es/products/processors/core.html}, [Web; accedido el 06-05-2020]. [24] Rajagopal, R. Introduction to Microsoft Windows NT cluster server: Programming and administration. CRC Press, 1999. [25] Tölke, J. Implementation of a lattice boltzmann kernel using the compute unified device architecture developed by nvidia. Computing and Visualization in Science, 13 (1), 29, 2010. [26] Intel. Procesador intel R coreTM i7-3770, 2020. URL https: //ark.intel.com/content/www/us/en/ark/products/65719/ intel-core-i7-3770-processor-8m-cache-up-to-3-90-ghz.html, [Web; accedido el 12-06-2020]. [27] Intel. Procesador intel R coreTM i7-4770, 2020. URL https: //ark.intel.com/content/www/es/es/ark/products/75122/ intel-core-i7-4770-processor-8m-cache-up-to-3-90-ghz.html, [Web; accedido el 12-06-2020]. [28] NVIDIA. Geforce gtx 760, 2020. URL https://www.nvidia.es/ gtx-700-graphics-cards/gtx-760/, [Web; accedido el 12-06-2020]. [29] NVIDIA. Geforce gtx 970, 2020. URL https://www.nvidia.es/ gtx-900-graphics-cards/gtx-970/, [Web; accedido el 12-06-2020]. [30] Nobile, M. S., Cazzaniga, P., Besozzi, D., Pescini, D., Mauri, G. cutauleaping: A gpu-powered tau-leaping stochastic simulator for massive parallel analyses of biological systems. PLoS One, 9 (3), 2014. [31] Zone, N. D. Cuda toolkit documentation. NVIDIA,[Online]. Available: https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html.[Acedido en Abril 2020]. [32] Represa Pérez, C., Cámara Nebreda, J. M., Sánchez Ortega, P. L., et al. Introducción a la programación en cuda: v. 3.1, 2016. [33] Kitware. Build with cmake. build with confidence., 2020. URL https://www. kitware.com/build-with-cmake-build-with-confidence/, [Web; accedido el 15-06-2020]. [34] Git. User manual., 2020. URL https://git-scm.com/docs/user-manual, [Web; accedido el 15-06-2020]. [35] Berberan-Santos, M. N., Bodunov, E. N., Pogliani, L. Liquid–vapor equilibrium in a gravitational field. American Journal of Physics, 70 (4), 438–443, 2002.
Materias:Ingeniería mecánica > Transferencia de Calor
Divisiones:Gcia. de área de Aplicaciones de la tecnología nuclear > Gcia. de Investigación aplicada > Mecánica computacional
Código ID:914
Depositado Por:Marisa G. Velazco Aldao
Depositado En:07 May 2021 08:52
Última Modificación:07 May 2021 08:52

Personal del repositorio solamente: página de control del documento