“Simulación de patrones de flujo multifásico en medios porosos”, Etapa ii: implementación de librerías científicas numéricas Computacionales: numpy, scipy y matplotlib, e implementación de gnu octave Como lenguaje de computación numérica interactivo de alto nivel.

Share Embed


Descripción

INFORME FINAL

BECA PARA LA PROMOCIÓN DE LA INVESTIGACIÓN CATEGORÍA GRADUADOS

2012/2013

Título del Proyecto: “SIMULACIÓN DE PATRONES DE FLUJO MULTIFÁSICO EN MEDIOS POROSOS”, Etapa II: IMPLEMENTACIÓN DE LIBRERÍAS CIENTÍFICAS NUMÉRICAS COMPUTACIONALES: NumPy, SciPy y matplotlib, E IMPLEMENTACIÓN DE GNU OCTAVE COMO LENGUAJE DE COMPUTACIÓN NUMÉRICA INTERACTIVO DE ALTO NIVEL”

Director:

IBAÑEZ, Juan Pablo1

Becario:

FERNÁNDEZ, Fabricio2

1 2

[email protected] [email protected]

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 1 de 35

Índice de Contenido Agradecimientos...................................................................................................................................3 Introducción..........................................................................................................................................3 Antecedentes.........................................................................................................................................4 Objetivos...............................................................................................................................................5 Hipótesis...............................................................................................................................................5 Metodología..........................................................................................................................................6 Estado actual de la interfaz gráfica del simulador y sus estructuras de datos......................................7 Implementación de librerías científicas y uso del entorno GNU octave............................................16 Animaciones de la simulación 2d con recovery sistem......................................................................33 Conclusiones.......................................................................................................................................34 Referencias bibliográficas..................................................................................................................35

Índice de Figuras Figura 1: Interfaz gráfica del simulador en su módulo de bienvenida. Diferentes áreas definidas en la arquitectura final del programa.........................................................................................................7 Figura 2: Interfaz gráfica del simulador en su módulo de ingreso de parámetros de la simulación. Sistema de unidades, Parámetros del Reservorio, Parámetros de los Fluidos, Parámetros Estadísticos. .........................................................................................................................................9 Figura 3: Control de parámetros gráficos de resultados durante la simulación. Auto-scale X, Autoscale Y, Opciones de Grid...................................................................................................................10 Figura 4: Módulo Monofásico, a la izquierda la Barra de Parámetros, en el centro el Canvas de Visualización, a la derecha los gráficos de resultados e información de la simulación.....................11 Figura 5: Malla de elementos 2D para la discretización en la simulación del módulo monofásico. La figura muestra la malla 2D, con la siguientes características: refinamiento de malla medio, identificador de elementos, condiciones de borde, información de la roca, e información de la simulación en curso............................................................................................................................12 Figura 6: Interfaz gráfica del simulador en el módulo “Pore Waterflooding”. En la modalidad de “five spot”...........................................................................................................................................13 Figura 7: Interfaz gráfica del simulador en el módulo “Pore Waterflooding”. En la modalidad de barrido plano “plane”.........................................................................................................................14 Figura 8: Interfaz gráfica del simulador en su módulo “Pore Waterflooding”. En la modalidad de “five spot”. Potencial de movilidad de petróleo en una roca mojada por agua. ................................15 Figura 9: Principales funciones del módulo monofásico del simulador.............................................16

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 2 de 35

AGRADECIMIENTOS Agradezco a la Facultad de Ingeniería de la Universidad Nacional de Cuyo por el espacio físico en el cual fue realizado este proyecto de investigación. Agradezco a la Secretaría de Ciencia, Técnica y Posgrado de la Universidad Nacional de Cuyo por las becas otorgadas.

INTRODUCCIÓN El presente proyecto de investigación constituye la segunda etapa del proyecto “Simulación de patrones de flujo multifásico en medios porosos”, realizado en el marco del programa de Becas para la Promoción de la Investigación, Categoría Graduados, de la Secretaría de Ciencia, Técnica y Posgrado de la Universidad Nacional de Cuyo, durante el período 2012/2013. Esta etapa del proyecto de investigación tiene como objetivos principales completar y optimizar la implementación computacional del simulador 2D de flujo multifásico en medios porosos basado en la micro-escala, que se comenzó a desarrollar en la etapa I. Se propone también implementar las librerías científicas computacionales NumPy3, SciPy4, matplotlib5, y principalmente el lenguaje interactivo de alto nivel GNU Octave6, para potenciar las funcionalidades del simulador y generar así nuevas perspectivas del fenómeno simulado. Las librerías científicas computacionales antes mencionadas ofrecen herramientas de alto poder de cálculo y de visualización. La utilización de las mismas supone un mejoramiento sustancial del simulador concebido en la etapa I, cuyas funciones fueron enteramente creadas bajo el lenguaje de programación C7. Es decir que la implementación propuesta implica el estudio de lenguajes modernos de alto nivel utilizados actualmente por los principales programas de cálculo y simulación, como por ejemplo el programa ABAQUS8 que utiliza la técnica de elementos finitos. Se prevé entonces un mejoramiento, tanto en el procesamiento de datos y en las posibilidades de resolución de sistemas más complejos, como en los algoritmos de visualización de resultados. Se espera con esto que el simulador, al finalizar la etapa II, posea características más próximas a las de un simulador numérico potente, una mejorada estructura de datos, y una interfaz gráfica de usuario acorde a las nuevas funcionalidades desarrolladas. Además se pretende que el programa de simulación de procesos de flujos en medios porosos, sea de libre acceso, de manera que pueda ser utilizado tanto por estudiantes como por profesores del área de ingeniería.

3 4 5 6 7 8

http://www.numpy.org/ http://www.scipy.org/ http://matplotlib.sourceforge.net/ http://www.gnu.org/software/octave/ http://www.faqs.org/docs/artu/c_evolution.html http://www.3ds.com

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 3 de 35

ANTECEDENTES La industria del petróleo enfrenta la problemática de los inmensos volúmenes de petróleo que aun yacen en los reservorios que no pueden ser extraídos por las técnicas convencionales de recuperación. Para este petróleo remanente son necesarias técnicas más avanzadas de recuperación asistida, que requieren en muchos casos la inyección de agua con adición de fluidos de recuperación químicamente diseñados para facilitar la movilidad del petróleo. Estas técnicas encarecen el proceso de explotación del reservorio, por lo que se debe evaluar en cada caso la conveniencia o no de aplicar la recuperación asistida. La industria química ofrece diversos productos que pueden ser potencialmente útiles para este tipo de recuperación, pero es grande la incertidumbre sobre la eficiencia en reservorio de cada uno de ellos. Dados los volúmenes de estos productos químicos involucrados en el proceso de recuperación, las empresas del sector destinan importantes recursos a la investigación previa, a fin de disminuir el margen de error en las estimaciones de eficiencia de la recuperación. La investigación previa se lleva a cabo mediante simulación física y numérica, pero estas siguen en general caminos diferentes. Mientras la simulación física se hace a microescala, materializando el medio poroso mediante microesferas de vidrio confinadas, la simulación numérica está pensada para la macroescala del reservorio. La simulación numérica en la microescala no es comercialmente explotada. En este contexto, un simulador basado en la microescala constituye una novedad, pues incorporaría las características de viscosidad, mojabilidad, presión capilar y tensión interfacial con un mayor grado de detalle y aleatoriedad, permitiendo así una modelación más cercana al fenómeno físico. El profesor Ibañez ha trabajado en la concepción de este tipo de simulador, y ha obtenido un subsidio de la Convocatoria FONSOFT/2009 de la Agencia Nacional de Promoción Científica y Tecnológica, para el desarrollo del mismo. La industria de explotación de reservorios utiliza las técnicas de recuperación asistida para viabilizar la extracción del petróleo remanente en reservorios previamente explotados por los métodos convencionales. En la recuperación asistida se utilizan diferentes productos que se adicionan durante la inyección de agua en el reservorio a fin de facilitar el desplazamiento de petróleo. Dado que cada reservorio presenta sus características particulares (gravedad API del petróleo, porosidad, temperatura, profundidad, etc.), la eficiencia de los productos utilizados precisa ser estimada previamente. Esta técnica es validada en laboratorio, antes de ser aplicada, a través de ensayos a pequeña escala en simuladores experimentales de reservorios. Al tratarse de una técnica de recuperación de elevado costo relativo, la validación de la eficiencia de los tensioactivos es de suma importancia, debido a los elevados volúmenes involucrados en la inyección en reservorios. El simulador de reservorios que se propone desarrollar, tiene como finalidades auxiliar y complementar la simulación física experimental, ofreciendo un ámbito para la visualización y cuantificación del proceso de recuperación en la microescala que permita una evaluación mas completa de la eficiencia de los diferentes tensioactivos. Este simulador constituye una propuesta innovadora, ya que ha de basarse en paradigmas diferentes de los que inspiran los simuladores numéricos de reservorio ya existentes. Mientras que estos últimos se basan en la concepción del medio poroso como un continuo macroscópico, en el simulador propuesto se partirá de una formulación en la microescala, donde el medio poroso será definido como conjunto de partículas que determinarán un espacio poroso irregular y aleatorio. Así, los fenómenos físico-químicotérmicos determinantes de la eficiencia de recuperación serán modelados en la escala en que ocurren. El foco se traslada de lo global a lo local, pues se propone plantear la simulación en la microescala. Posteriormente, utilizando funciones de upscaling, la formulación será llevada a la macroescala para permitir el cálculo del flujo multifásico a nivel macroscópico.

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 4 de 35

OBJETIVOS Implementar las librerías científicas computacionales para mejorar los procesos de cálculo y visualización del simulador desarrollado en la etapa I. Utilizar el entorno GNU octave para estudio del lenguaje de programación M y para la validación de las formulaciones matemáticas del fenómeno físico en estudio. Desarrollar funciones requeridas por el simulador para extender la operatividad y la versatilidad del mismo, tanto en la entrada, como en el proceso y la salida de información. Implementar numéricamente las formulaciones matemáticas que modelan el flujo multifásico en medios porosos. Depurar computacionalmente la estructura de datos y la interfaz gráfica de usuario del simulador de la etapa I. Desarrollar computacionalmente un simulador 2D de flujo multifásico en medios porosos, con énfasis en la visualización de los procesos modelados. Simular y estudiar la formación de digitaciones viscosas y otros fenómenos propios del proceso de barrido de petróleo.

HIPÓTESIS Los fenómenos presentes en el flujo en medios porosos ocurren en la microescala, a nivel del espacio poral. Las características microscópicas del medio poroso son complejas y aleatorias. Los fenómenos que definen las características del flujo multifásico en la recuperación asistida de petróleo ocurren a nivel de poro. En el volumen poroso, de distribución aleatoria en tamaño y conectividad, ocurre la interacción entre agua y petróleo, controlada por las propiedades de mojabilidad, tensión interfacial y presión capilar. Las funciones de upscaling permiten sintetizar y llevar una formulación o una distribución de resultados de la microescala a la macroescala.

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 5 de 35

METODOLOGÍA Revisión bibliográfica general del tema en estudio. Planteamiento de las ecuaciones que derivan en los problemas físicos a modelar numéricamente. Implementación de algoritmos que permitan validar las hipótesis y los resultados de las ecuaciones que gobiernan al fenómeno simulado. Replanteamiento de la estructura de datos del simulador. Redefinición de la arquitectura del simulador. Implementación computacional de la estructura de datos y de la interfaz gráfica de usuario. Implementación computacional de las ecuaciones de flujo monofásico y multifásico. Implementación computacional de la salida gráfica del simulador, para visualización y cuantificación de procesos y resultados. Validación de la correcta implementación de las formulaciones matemáticas. Simulación de procesos de barrido plano y tipo five spot. Procesamiento y análisis interpretativo de los resultados. Redacción del informe final, publicaciones y presentaciones.

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 6 de 35

ESTADO ACTUAL DE LA INTERFAZ GRÁFICA DEL SIMULADOR Y SUS ESTRUCTURAS DE DATOS En este capítulo se presenta el estado actual de la interfaz gráfica del simulador concebido en la etapa I del presente proyecto de investigación, y también el estado actual de las estructuras de datos modificadas y depuradas adecuadamente, según las nuevas funcionalidades proyectadas para el simulador. Como ya se menciona en el informe correspondiente a la etapa I, la interfaz gráfica de usuario del simulador es construida y gerenciada íntegramente por la biblioteca IUP 9. La implementación de dicha librería requirió el estudio de la misma por parte de los integrantes del proyecto. Se trata de una herramienta moderna y concreta en la elaboración de todo tipo de programas10.

Figura 1: Interfaz gráfica del simulador en el módulo de bienvenida. Diferentes áreas definidas en la arquitectura final del programa. La arquitectura del simulador se refiere a la creación y gerenciamiento de los espacios visuales, siendo estos interactivos o no, tales como la barra del menú, los diálogos de entrada de datos, los paneles y canvas de visualización de procesos y resultados, etc. La Figura 1 muestra la definición básica de estos espacios visuales que forman la interfaz gráfica de usuario del simulador. Debido a que el simulador desarrollado está orientado a eventos, este inicia, define y carga la interfaz gráfica de usuario, y luego entrega el control a la biblioteca IUP mediante un ciclo o loop 9 http://www.tecgraf.puc-rio.br/iup/ 10 http://www.tecgraf.puc-rio.br/iup/en/screenshots.html

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 7 de 35

de espera de eventos. A partir de esa instancia, el programa queda a la espera de que el usuario realice algún evento (apretar un botón, acceder a un submenú, elegir un tipo de simulación, etc.) que accionará una función de llamada o callback, es decir, una función de respuesta al evento que ejecuta una serie de operaciones implementadas. Una vez realizadas las operaciones, el programa vuelve al loop esperando un nuevo evento del usuario. De esta forma, el usuario tiene el control sobre el simulador, y no es obligado a seguir un protocolo estricto preestablecido, según los nuevos paradigmas de desarrollo de software.

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 8 de 35

Para el diseño del canvas principal se hace uso de la biblioteca CD 11, que a través de la función general de redisplay vincula funciones específicas de diseño de formas, según el módulo de simulación en que se encuentre el usuario.

Figura 2: Interfaz gráfica del simulador en el módulo de ingreso de parámetros de simulación. Sistema de unidades, Parámetros del Reservorio, Parámetros de los Fluidos, Parámetros Estadísticos. El módulo Parámetros define el espacio utilizado para la definición de variables y los parámetros de análisis, que luego serán empleados en los diferentes procesos de cálculo en la simulación. Cada variable de análisis se inicia con valores por defecto cargados previamente por el simulador, lo que permite generar una rápida simulación con la incorporación de un número reducido de datos. Lo primero a definir por el usuario es el sistema de unidades a utilizar. Luego se define el tipo de roca que caracteriza al reservorio desde una lista predefinida. Esta lista está constituida por la librería de rocas del simulador, siendo las más usuales arcillita y arenisca. Un parámetro significativo del proceso de simulación es la porosidad del reservorio. El programa incorpora la opción de establecer valores por defecto, valores constantes y valores uniformes. Si se conoce la porosidad de la roca a evaluar, el programa permite incorporar directamente el valor de la porosidad, pero también permite que ese valor se aplique de forma anisótropa. La anisotropía se incorpora a través de la generación de valores aleatorios según una distribución estadística normal, con una media definida por el usuario y una dispersión definida mediante un elemento de interfaz regulable llamado valuator12. 11 http://www.tecgraf.puc-rio.br/cd/ 12 http://www.tecgraf.puc-rio.br/iup/en/elem/iupval.html

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 9 de 35

La temperatura de los materiales en la simulación modifica la viscosidad y la permeabilidad de los fluidos en el medio. La temperatura es ingresada al final del módulo de parámetros; de lo contrario el programa considera una temperatura de simulación por defecto, de 20°C.

Figura 3: Control de parámetros de los gráficos de resultados de la simulación. Autoscale X, Autoscale Y, Opciones de Grid. Los gráficos muestran resultados a medida que se realizan los procesos de cálculo, es decir mientras la simulación se lleva a cabo. La incorporación de parámetros de ajuste permite elegir las opciones adecuadas de escala según los ejes X e Y, y habilitar o deshabilitar la grilla de fondo. El módulo de simulación de flujo monofásico se plantea como un caso particular del módulo monofásico 2D, en el cual una estructura principal de datos se relaciona con el usuario a travez de la interfaz gráfica de usuario. La arquitectura del módulo monofásico consta de una estructura de datos principal, y de subestructuras que tienen funciones específicas dentro de la simulación. En la estructura principal de datos se registran, almacenan, modifican y actualizan todos los parámetros y variables de la simulación. Las subestructuras poseen tareas específicas que complementan a la estructura principal con funcionalidades tales como generar el entorno gráfico, realizar procesos de cálculo, realizar actualización en los elementos de visualización, entre otras.

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 10 de 35

Figura 4: Módulo Monofásico: a la izquierda la Barra de Parámetros, en el centro el Canvas de Visualización, a la derecha los gráficos de resultados e información de la simulación. En el sector superior de la pantalla de visualización se muestran las condiciones de borde impuestas al sistema. En la celda 0 la presión permanece constante, en la celda 13 se extrae del sistema un caudal constante, y en la celda 14 existe condición de no flujo. En el sector inferior se dispone un mapa de intensidad de presión sobre todo el dominio de cálculo. Las presiones mayores se grafican en rojo, y a medida que disminuyen hacia la derecha, su color se torna amarillo. En el sector derecho superior se muestra la información de la simulación, la cual incluye el tipo de roca, la dimensión de la grilla, el algoritmo utilizado para resolver la ecuación diferencial, el número de celdas y todos los parámetros particulares de la simulación. En el sector derecho inferior se muestra el gráfico de presiones obtenidas para cada una de las celdas de cálculo13.

13 Se invita al lector a dirigirse a la página 12 del informe de la etapa I, donde se exponen y se comparan los resultados obtenidos por el simulador con resultados analíticos obtenidos de la bibliografía. Dicho informe puede ser consultado en internet de manera gratuita en la siguiente dirección web: https://drive.google.com/file/d/0B1D6d6rxuNDzdlRia1FXOEtCYWs/edit?usp=sharing O bien, puede solicitarse via correo electrónico a la siguiente dirección:

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

[email protected]

Página 11 de 35

En esta etapa del proyecto de investigación se incorpora en el módulo de simulación monofásico la posibilidad de realizar mallas de elementos 2D para la discretización. La figura que sigue muestra la malla 2D con la siguientes características: refinamiento medio (optativo entre bajo, medio y alto), identificación de los elementos, condiciones de borde, información de la roca, e información de la simulación en curso.

Figura 5: Malla de elementos 2D para la discretización en la simulación del módulo monofásico con la siguientes características: refinamiento de malla medio, identificador de elementos, condiciones de borde, información de la roca, e información de la simulación en curso. En el módulo Pore Waterflooding se implementa la interfaz gráfica de la celda Helle Shaw para realizar barridos de petróleo u otro líquido mediante desplazamiento con inyección de agua. El simulador permite barrido de arreglo tipo five spot o barrido plano. Se realizó la implementación de flujo bifásico en la microescala, con las siguientes características: > Se modelaron medios porosos aleatorios en la microescala, discretizando granos de roca, poros y gargantas porales de geometría irregular. Esto se realizó mediante editores de imágenes que transforman la información en matrices con la definición necesaria para reproducir el medio poroso en el simulador. > Se adaptaron las funciones de la macroescala al nivel del poro, mediante funciones de potencial que tienen en cuenta la mojabilidad de la roca (por agua o por petróleo), así como la viscosidad del petróleo. Se definió así un “potencial de movilidad” para el petróleo y otro para el agua. > Se diseñaron puntos de inyección y producción para la entrada y salida de flujo del sistema. Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 12 de 35

> Se diseñó una barra de parámetros que permite elegir el tipo de roca desde una librería incorporada al simulador con opciones predefinidas. > Se puede elegir la mojabilidad de la roca para simular fenómenos de drenaje e imbibición. > Se puede ajustar el grado de viscosidad del líquido a desplazar. > Se incorporaron opciones de visualización de la roca y de los fluidos. > Se incorporó la opción de activar o desactivar los inyectores y los productores de forma sencilla e interactiva, en cualquier momento de la simulación. > Los botones del control de procesos permiten iniciar, pausar y detener el barrido a cada instante de la simulación. > El grado de avance del proceso se cuantifica en la barra de gráficos. En ella se muestra el factor de recuperación de petróleo u otro líquido en porcentaje respecto al máximo valor de recuperación, y también se muestra el avance en el tiempo de la recuperación mediante un histograma.

Figura 6: Interfaz gráfica del simulador en el módulo Pore Waterflooding en la modalidad de five spot. La modalidad five spot permite, antes o durante la simulación, habilitar o deshabilitar la apertura de los picos de inyección posicionados en los cuatro vértices del canvas y uno en la zona central. Cada pico puede funcionar como inyector, cuando incorpora agua a presión (gráficamente el ícono cambia a color celeste), o como productor, cuando genera puntos de presiones negativas donde se produce la extracción de petróleo (el ícono cambia a color negro).

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 13 de 35

La barra de parámetros desarrollada en este módulo permite el ajuste de los parámetros que intervienen en el proceso de inundación con agua o waterflooding, a saber: > Selección del tipo de roca, de la biblioteca incluida en el simulador. > Opción de mojabilidad de la roca: mojada por agua para simular proceso de imbibición, o mojada por petróleo para simular proceso de drenaje. > Grado de viscosidad del petróleo, que determina el potencial de movilidad del petróleo. El uso del simulador con las funcionalidades disponibles permite observar que en el caso de drenaje la adsorción del petróleo en la roca está relacionada con el tamaño de las gargantas porales, ya que las gargantas estrechas dificultan el barrido de agua, quedando parte del petróleo entrampado. Esto contribuye a la ocurrencia del fenómeno de digitación viscosa o fingering, donde el agua encuentra caminos preferenciales y se canaliza por las gargantas porales más amplias, dejando petróleo sin barrer. A medida que aumenta la cantidad de petróleo entrampado, el factor de recuperación resulta más bajo.

Figura 7: Interfaz gráfica del simulador en el módulo Pore Waterflooding en la modalidad de barrido plano (plane). La modalidad de barrido plano incorpora la funcionalidad de activado o desactivado, similar a la del modo five spot. En este caso la habilitación o deshabilitación del plano de inyección se realiza a través de una línea de borde. Esta línea de borde puede ser productora o inyectora.

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 14 de 35

El uso del simulador con las funcionalidades disponibles permite observar que en el caso de imbibición se verifica la tendencia a un barrido más uniforme, tipo pistón, dado que el agua moja la roca y no hay adsorción petróleo-roca. Esto permite que la fase petróleo fluya más fácilmente, dependiendo del valor de la tensión interfacial agua-petróleo, y que se ve reflejado en un factor de recuperación más alto.

Figura 8: Interfaz gráfica del simulador en su módulo Pore Waterflooding en la modalidad de five spot. Potencial de movilidad de petróleo en una roca mojada por agua. Las figuras 7 y 8 muestran la implementación de opciones de mojabilidad de la roca a través del mapa de potencial de movilidad del petróleo. También es posible ver cómo este aspecto afecta al petróleo, al quedar este entrampado después de aplicar el barrido mediante inyección de agua. En el caso mojado por agua, el petróleo remanente forma bolsones en los poros, mientras que en el caso mojado por petróleo, éste se localiza en contacto con la roca y en gargantas porales estrechas.

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 15 de 35

IMPLEMENTACIÓN DE LIBRERÍAS CIENTÍFICAS Y USO DEL ENTORNO GNU OCTAVE14 En la etapa I del presente proyecto fueron desarrolladas funciones que forman programas computacionales en el lenguaje C. Estas se relacionan directa o indirectamente con la interfaz gráfica del simulador en su modo monofásico y responden a la interactividad del usuario con la interfaz gráfica. Las funciones programadas en la etapa I se presentan en la siguiente figura. En la parte izquierda se coloca el nombre de la función tal como es declarada en el programa, y en la parte derecha una breve descripción de su objetivo dentro del módulo.

Figura 9: Principales funciones del módulo monofásico del simulador. Estas funciones fueron actualizadas en la etapa II del presente proyecto, según las nuevas funcionalidades implementadas en el simulador. 14 http://www.gnu.org/software/octave/

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 16 de 35

Dentro del módulo monofásico y dentro de la mayor parte de la estructura de datos del simulador, las funciones fueron desarrolladas en el lenguaje de programación C. Los procesos de simulación produjeron un elevado consumo computacional, el cual se tradujo en una ralentización de la visualización de los resultados. Las funciones más complejas, al utilizar matrices de muchos elementos e involucrar procesos iterativos, requirieron entre otras cosas, de un gerenciamiento de la memoria involucrada, y por lo tanto requirieron también del desarrollo de funciones específicas encargadas de dicha tarea (además de las propias de la simulación). Esto llevó a pensar que los paquetes de librerías científicas y los entornos de computación numérica, que interactuan conjuntamente con la estructura principal del simulador mediante archivos de entrada y archivos de salida, serían una alternativa viable para sortear los inconvenientes antes mencionados. El siguiente esquema presenta la implementación de librerías científicas y GNU Octave para realizar los procesos numéricos requeridos en el módulo monofásico:

A continuación se describe en detalle la implementación de los programas que permiten realizar los procesos numéricos de la simulación utilizando el entorno GNU Octave. El siguiente código constituye una callback o función de llamada que está asociada al elemento botón Run analysis en la barra de parámetros del módulo monofásico. Su objetivo es informar al sistema operativo que debe ejecutar el entorno GNU Octave con “bifa1d.m” como archivo de entrada. Este archivo contiene todos los parámetros requeridos por la simulación y es generado conforme al diagrama de flujo presentado anteriormente. int RUN_Analysis(void) { system("octave bifa1d.m"); IupMessage(NULL,"Analysis Completed\n\n Press Load Result ..."); return IUP_DEFAULT; }

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 17 de 35

El archivo “bifa1d.m” es lo primero que ejecuta el entorno GNU Octave. En primer lugar inicializa el entorno borrando todas las variables que puedan existir en el momento anterior al de la ejecución. En segundo lugar cambia el directorio de trabajo del entorno al directorio donde se ubican los archivos principales del proceso de cálculo, mostrando en pantalla el directorio actualizado. Por último ejecuta el principal archivo fuente de la simulación, que contiene los procedimientos de cálculos y que se presenta por etapas a continuación.

% clears all local and global user-defined variable and all functions home; clear; % Change the current working directory cd('~/recovery-octave/Bifasico2d/bifa1d'); disp('Cabiando directorio a:') disp(pwd); % run the script file disp('Ejecutando: a_main_bifa1d') a_main_bifa1d;

La secuencia de comandos siguiente es una de las partes del archivo principal de la simulación. En primer lugar borra todas las variables del entorno de trabajo, luego carga las funciones específicas requeridas (que en este caso son librerías gráficas), a continuación define las variables Prel, Pvt y Pcapi que contienen las relaciones constitutivas de las variables de cálculo.

% clears all local and global user-defined variable and all functions clear('all'); % librerias graficas para el entorno octave pkg load gnuplot; % informacion tabulada en referencia bibliografica Prel=load('data_Prel.m'); % Sw krw krow Sg Ptv=load('data_Ptv.m'); % P Rs Bo muo Pcapi=load('data_Pcapi.m'); % Sw Pcow Sg

krg Bw Pcgo

muw

Bg

mug

Las relaciones entre el grado se saturación S y las permeabilidades relativas de las fases kr fueron obtenidas de Petroleum Reservoir Simulation: A Basic Approach (JAMAL H.: 2006). Dichas relaciones son almacenadas en el archivo fuente data_Prel.m, y cargadas al entorno en la variable Prel, según se observa en el segundo programa de la página 18.

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 18 de 35

% Two-phase Relative Permeability % Oil-Water and Oil-Gas % Sw krw krow %[fr] [fr] [fr]

Sg [fr]

krg [fr]

krog [fr]

0.130 0.191 0.250 0.294 0.357 0.414 0.490 0.557 0.630 0.673 0.719 0.789 1.000

0.000 0.101 0.150 0.195 0.250 0.281 0.337 0.386 0.431 0.485 0.567 0.605 0.800

0.0000 0.0026 0.0121 0.0195 0.0285 0.0372 0.0500 0.0654 0.0761 0.0855 0.1022 0.1120 0.1700

1.0000 0.5169 0.3373 0.2919 0.2255 0.2100 0.1764 0.1433 0.1172 0.0883 0.0461 0.0294 0.0000

0.0000 0.0051 0.0102 0.0168 0.0275 0.0424 0.0665 0.0970 0.1148 0.1259 0.1381 0.1636 1.0000

1.0000 0.9990 0.8000 0.7241 0.6206 0.5040 0.3170 0.3029 0.1555 0.0956 0.0576 0.0000 0.0000

% [fr]=[fraction]

Las relaciones entre la presión P, la relación de gas disuelto Rs, el factor de volumen de formación B y las viscosidades de las fases fueron obtenidas de Petroleum Reservoir Simulation: A Basic Approach (JAMAL H.: 2006). Dichas relaciones son almacenadas en el archivo fuente “data_Pcapi.m”, y cargadas al entorno en la variable Pcapi, según se observa en el segundo programa de la página 18. % Fluid PVT and Viscosity % P %[psia] 1500 2000 2500 3000 3500 4000 4500

Rs [scf/STB] 292.75 368.00 443.75 522.71 619.00 724.92 818.60

Bo [RB/STB] 1.20413 1.23210 1.26054 1.29208 1.32933 1.37193 1.42596

muo [cp] 1.7356 1.5562 1.4015 1.2516 1.1024 0.9647 0.9180

Bw [RB/B] 1.02527 1.02224 1.01921 1.01621 1.01321 1.01024 1.00731

muw [cp] 0.5200 0.5200 0.5200 0.5200 0.5200 0.5200 0.5200

Bg [RB/scf] 0.00180 0.00133 0.00105 0.00088 0.00077 0.00069 0.00064

mug [cp] 0.0150 0.0167 0.0185 0.0204 0.0222 0.0241 0.0260

Las relaciones entre el grado de saturación de la fase S y las presiones capilares Pc, fueron obtenidas de Petroleum Reservoir Simulation: A Basic Approach (JAMAL H.: 2006). Dichas relaciones son almacenadas en el archivo fuente data_Ptv.m, y cargadas al entorno en la variable Ptv, según se observa en el segundo programa de la página 18.

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 19 de 35

% Two-phase Capillary Pressure % Oil-Water and Oil-Gas % Sw Pcow % [fr] [psi] 0.20 16.00 0.25 8.60 0.30 6.00 0.40 3.56 0.50 2.42 0.60 1.58 0.70 0.86 0.80 0.20 0.90 0.00

Sg [fr] 0.04 0.24 0.34 0.49 0.59 0.69 0.74 0.79 0.00

Pcgo [psi] 0.02 0.54 1.02 2.08 2.98 4.44 5.88 9.52 0.00

% [fr]=[fraction]

Las siguientes sentencias de cálculo cargan las variables iniciales de la simulación. La lista detallada junto a los valores adoptados por defecto se presenta en el archivo fuente “b_input_bifa1d.m”, en donde se define: paso de cálculo, número de bloques de la malla, paso del tiempo, dimensión de los bloques de la malla, saturación inicial de agua, porosidad inicial del medio, presión inicial de la fase petróleo, presión de referencia, compresibilidad del medio, caudal inicial del bloque productor y caudal inicial del bloque inyector. Luego son definidas e inicializadas las variables requeridas para almacenar los volúmenes de cada bloque (anisotropía) y las áreas de cada bloque. % variables de inicio b_input_bifa1d; units_system; % vector de volumen de bloque Vb = dx*dx*dz; % vectores de areas Ax=(zeros(1,nb).+dy).*dz; Ay=(zeros(1,nb).+dx).*dz;

Las siguientes líneas de comandos corresponden al archivo fuente “b_input_bifa1d.m”. Como se menciona anteriormente las variables son definidas e inicializadas con valores iniciales por defecto. Dichos valores pueden ser modificados en cualquier momento de la simulación.

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 20 de 35

% Customary Units input % pasos de calculo [] ni=50; % bloques en x = longx/dx [] nb=nblox=5; % discretizacion del tiempo [day] dt=0.1; % discretizacion del espacio [ft] dx=1; dy=1; dz=rand(1,nb).*0.2+1; % saturacion inicial del agua [fraction] Sw_o=0.35; % porosidad inicial del medio [fraction] fi_o=0.30; % presion inicial de fase oil [psia] Pr_o = 2500; % presion de referencia [psia] Pref = 2000; % compresibilidad [1/psi] co = 1e-5; cw = 1e-6; % caudal inicial del productor qtot = 0.0015;

[std m3/d]

% caudal inicial del inyector [B/D] qiny_o = -0.019;

Como se observa en el programa de la página 20, seguido del archivo “b_input_bifa1d.m” es ejecutado el archivo “units_system.m”. El archivo “units_system.m”, contiene la definición de variables del entorno que permiten el uso de factores correspondientes al sistema de unidades utilizado. Dichos factores fueron obtenidos de Petroleum Reservoir Simulation: A Basic Approach (JAMAL H.: 2006).

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 21 de 35

% Customary SPE_Metric Lab % Factor de alpha_cus = alpha_spe = alpha_lab = % Factor beta_cus beta_spe beta_lab

Conversion de Volumen: alpha-c 5.614583; 1; 1;

de Transmisibilidad: beta-c = 0.001127; = 0.0864; = 1;

% Gravedad: g g_ft = 32.174; g_ms = 9.806635; g_cs =980.6635;

% [ft/s2] % [m/s2] % [cm/s2]

A continuación son definidos todos los parámetros iniciales del reservorio: saturación inicial del agua y del petróleo, presión capilar de fase, presión de fase, factores de volumen de formación de fase para presión inicial y de referencia, permeabilidad relativa de fase, transmisibilidad y ubicación del bloque productor. %% parametros iniciales en el reservorio % saturacion de agua y presion de oil Sw=Sw_o; po=Pr_o; % presion capilar Pcow = fn_Pcow(Sw,Pcapi); % variacion temporal de presion capilar oil-water Pcow_p=zeros(1,nb); % presion de la fase water pw=po-Pcow; % factor de volumen de formacion de fase - presion inicial [Rso,Bo,muo] = fn_B_fvf(po,'o',Ptv); [Rsw,Bw,muw] = fn_B_fvf(pw,'w',Ptv); % factor de volumen de formacion de fase - presion de referencia [Rs_o_ref,Bo_ref,mu_o_ref] = fn_B_fvf(Pref,'o',Ptv); [Rs_w_ref,Bw_ref,mu_w_ref] = fn_B_fvf(Pref,'w',Ptv); % permeabilidad relativa de fase Krw = fn_krel(Sw_o,'w',Prel)*ones(1,nb); Krow = fn_krel(Sw_o,'ow',Prel)*ones(1,nb); % transmisibilidad Twx=(Ax*beta_cus.*Krw)./(muw*Bw*dx); Tox=(Ax*beta_cus.*Krow)./(muo*Bo*dx); % bloque productor nprod = nb;

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 22 de 35

Para realizar la inicialización de los parámetros del reservorio fueron necesarias funciones de interpolación que relacionan los parámetros tabulados con los valores iniciales. La función “fn_Pcow”, devuelve la presión capilar agua/petróleo mediante la interpolación del valor de la saturación de agua Sw, según los valores tabulados en Pcapi (descrito en la página 19) % Interpola Pcow function Pcow = fn_Pcow(Sw,Pcapi) Pcow = interp1(Pcapi(:,1),Pcapi(:,2),Sw); if Sw=(Pcapi(size(Pcapi,1),1)) Pcow=0; endif endfunction

La función “fn_krel” devuelve el parámetro de permeabilidad de la fase mediante la interpolación del valor de la saturación de la fase en los datos tabulados. Los datos de entrada de la función son: la saturación de la fase Sp, la fase p, y los valores tabulados que relacionan Sp con Krel de cada fase.

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 23 de 35

% Interpola permeabilidad relativa de fase function Kr = fn_krel(Sp,p,dat) % Sp=saturacion de la fase % p=fase, 'w'=water, 'ow'=oil-water, 'g'=gas, 'og'=oil-gas % dat= datos para interpolacion if ( p=='w' || p=='ow' || p=='g' || p=='og' ) %limites de saturacion posibles if (p=='w' || p=='ow') l_inf= dat(1,1); l_sup= dat(size(dat,1),1); else l_inf= dat(1,4); l_sup= dat(size(dat,1),4); end if (l_infInvertido, con roca mojada por petróleo

http://youtu.be/4O0Xxc7lE8I

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 33 de 35

CONCLUSIONES Se implementaron las librerías científicas computacionales del entorno GNU Octave en el módulo monofásico, mejorando así los procesos de cálculo y de visualización del simulador desarrollado en la etapa I. Debido al tiempo requerido en el proceso de depuración, prueba y optimización del código generado, no se implementación otras librerías numéricas de visualización y cálculo, que fueron propuestas en los objetivos. Así mismo, se desarrollaron funciones que permitieron extender la operatividad y la versatilidad del simulador, tanto en la entrada, como en el proceso y la salida de información. Y se continuó con el proceso de depuración computacional de la estructura de datos y la interfaz gráfica de usuario del simulador de la etapa I. Se implementaron numéricamente las formulaciones matemáticas que modelan el flujo multifásico en medios porosos. El simulador logra simular la formación de digitaciones viscosas y otros fenómenos propios del proceso de barrido de petróleo. (ver animaciones en página 33) Se ha presentado el informe final correspondiente a la Beca para la Promoción de la Investigación categoría Graduado, titulado “SIMULACIÓN DE PATRONES DE FLUJO MULTIFÁSICO EN MEDIOS POROSOS”. Trabajo realizado por el Ingeniero Civil Fabricio Fernández, bajo la tutoría del Profesor Dr. Juan Pablo Ibañez. El presente proyecto contribuyó al desarrollo del simulador “Recovery”, un simulador 2D de flujo multifásico en medios porosos, con énfasis en la visualización de los procesos modelados, completamente autónomo e independiente de otro simulador, que fue concebido e implementado íntegramente por el equipo formado por el Profesor Dr Juan Pablo Ibañez y por los Ingenieros Civiles Javier Cicchinelli y Fabricio Fernández.

Mendoza, 23 de enero de 2014.-

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 34 de 35

REFERENCIAS BIBLIOGRÁFICAS > AZIZ K, (1995); “Petroleum reservoir simulation”. > BIDNER M. S., (2001); “Propiedades de la roca y los fluidos en reservorios de petróleo”. > CD Canvas Draw, A 2D Graphics Library Version 5.6, Tecgraf - Computer Graphics Technology Group, PUC-Rio, Brazil. http://www.tecgraf.puc-rio.br/cd > FANCHI J. R., (2006); “Principles of Applied Reservoir Simulation”. > FERNÁNDEZ, F., (2013); “Simulación de patrones de flujo multifásico en medios porosos” (Etapa I). Informe final de beca promoción a la investigación de alumno avanzado. Universidad Nacional de Cuyo - Facultad de Ingeniería. Mendoza, Argentina. > GNU Octave . A high-level interactive language for numerical computations Edition 3 for Octave version 3.6.1 . > IUP Portable User Interface Version 3, Tecgraf - Computer Graphics Technology Group, PUCRio, Brazil. http://www.tecgraf.puc-rio.br/iup > JAMAL H. Abou-Kassem, (2006); “Petroleum Reservoir Simulation: A Basic Approach”. > KOEDERITZ L. F, (2004); “Lecture Notes on Applied Reservoir Simulation”.

Informe Final BPI Categoría Graduados Universidad Nacional de Cuyo - Facultad de Ingeniería

Página 35 de 35

Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.