Simulación de líneas de corriente optimizada mediante cómputo paralelo de memoria compartida - Alvarez Jiménez, Rafael (My University, 2022)
Para este trabajo se construyó un simulador de líneas de corriente bidimensional para modelar la inyección de agua a un yacimiento, el cual considera flujo incompresible e inmiscible y desprecia efectos capilares y gravitacionales. En primer lugar se hizo un código en serie, el cual es el caso base de aceleración. Con el fin de optimizarlo se usó la biblioteca Numba, de donde tan solo el uso su decorador estrella @njit, redujo drásticamente el tiempo de cómputo. Luego, con el objetivo de optimizar el tiempo de ejecución, se hicieron algunas modificaciones al código para poder prelocalizar memoria en la computadora. Posteriormente, se le añadieron al decorador diversas opciones que hacen uso de la técnica de memoria compartida, entre ellas parallel=True, con el fin de optimizarlo aún más y se obtuvieron menores tiempos de ejecución.
Las líneas de corriente son una herramienta valiosa para el modelado de yacimientos de hidrocarburos. Su uso se está adoptando como complemento a los simuladores numéricos de yacimientos convencionales. Las líneas de corriente pueden trabajar en conjunto con un simulador de yacimientos convencional o bien pueden utilizarse en el post-procesamiento de datos, destacando principalmente dos ventajas: a) la interpretación rápida y sencilla de los canales preferentes de flujo en yacimiento, y b) el tiempo de simulación es considerablemente menor, gracias al uso de la coordenada Tiempo de Vuelo. El Tiempo de Vuelo (en adelante llamado τ ) se calcula mediante el Algoritmo de Pollock, el cual se encarga de rastrear una partícula desde la entrada de esta al dominio de flujo hasta su salida, o bien trazarla en sentido contrario con unas modificaciones menores al algoritmo. Necesita de las velocidades en cada una de las caras de los nodos para determinar por donde saldrá la partícula hasta que esta llegue a un pozo o se estanque. Por su parte, las velocidades son obtenidas de un simulador convencional de diferencias finitas; estas se calculan con los datos de potencial en cada nodo y la movilidad de cada cara mediante la ecuación de Darcy. Los efectos de la heterogeneidad del medio son condensados dentro de la nueva coordenada τ , así como también lleva implícitas las coordenadas cartesianas convencionales. Este cambio de coordenadas hace que un problema 3D sea reducido a un problema 1D (pasamos de usar las coordenadas cartesianas x, y, z a usar solamente τ ), lo cual simplifica los cálculos y reduce el tiempo de cómputo. Otro punto relevante es que las líneas de corriente son independientes entre sí, es decir, no hay transferencia de masa entre ellas; de esto podemos concluir que podemos paralelizar los cálculos y reducir aún más el tiempo de cálculo.
Keywords: Simulación de yacimientos; Inyección de agua; Líneas de corriente; Recuperación secundaria; Optimización de código