miércoles, 28 de octubre de 2009

Secciones RUNSPEC, GRID y EDIT

Sección RUNSPEC
Ésta es la primera sección del simulador EBO y tiene dos funciones fundamentales que son asignar memoria y especificar el carácter básico del modelo. La primera es la memoria RAM para los componentes de la simulación como los pozos, la data, etc., es decir, en cuánta memoria RAM se debe subdivir internamente para cada componente. Desde que se creó ECLIPSE, éste se ha ido modificando y asigna tanta memoria como sea necesaria para simular. El simulador usa la memoria paso a paso a medida que lee el archivo que contiene los datos de entrada, de estos datos algunos ocupan poca memoria como las tablas PVT y las de permeabilidad, en cambio la malla del yacimiento sí ocupan bastante memoria. La segunda función es para establecer la fecha de inicio de la simulación.

Los keywords más usados en esta sección son TITLE, DIMENS, FIELD (para indicar las unidades en que va a trabajar el simulador), OIL, WATER, DISGAS (estos tres últimos representan las fases presentes en el yacimiento), WELLDIMS (en el que se colocan algunas características de los pozos), START, AQUDIMS (keyword asignado para las propiedades del acuífero y es opcional porque puede ser descrito más ampliamente en otra sección), TABDIMS (opcional).

Otro keyword perteneciente a RUNSPEC es PARALLEL que permite que conjuntos de datos sean distribuidos a procesadores para lograr una simulación más rápida. El usuario puede cambiar el número de procesadores de acuerdo a los recursos disponibles.

Sección GRID
La transmisibilidad es una propiedad compartida entre celdas conectadas, que consiste en el flujo de fluidos entre esas celdas. El simulador usa la transmisibilidad y el volumen poroso de las celdas para calcular el flujo de fluidos de cada fase, en cada celda y para cada paso de tiempo; pero para hacer esto son necesarios ciertos datos que son proporcionados por el usuario en la sección GRID. Entonces las propiedades obligatorias que deben ser suministradas aquí son: las dimensiones y profundidades de la celda, la porosidad, la permeabilidad y el espesor neto (auque si no se tiene este dato, Eclipse asume 1), estas tres últimas propiedades están referidas al centro de la celda. La transmisibilidades también son necesarias para calcular el flujo en las direcciones X, Y y Z (en caso de que el sistema usado sea cartesiano), y estas se ven influenciadas por la geometría de las celdas.

Tipos de Mallas: EBO dispone de cuatro tipos de mallas, las cuales son: corner point, block-centered, radial y unstructured. Las geometrías corner point y block-centered son llamadas modelos cartesianos normalmente. Las geometrías NO se pueden mezclar para una misma data porque cada una tiene su método particular de calcular las transmisibilidades, salvo que sea un caso extremo.
  • Corner Point: las celdas de esta geometría pueden tomar un sin número de formas y es útil para facilitar la simulación de estructuras geológicas complejas, además de permitir el flujo parcial entre celdas. Esta geometría es más compleja que la block centered y su data es mucho mayor, para lo cual se usa un preprocesador. Los keywords utilizados son COORD y ZCORN.
  • Block-centered: las celdas son rectangulares; los topes y las bases son horizontales y los lados verticales, los lados forman un ángulo de 90° entre sí, por ello la data es relativamente pequeña. La celda (1,1,1) está conectada a la (1,2,1) a pesar de la localización espacial de estas celdas. Los keywords usados son DX, DY, DY y TOPS. En esta geometría no se requiere de un pre-procesador a diferencia de Corner point, pero su desventaja es que las conecciones entre celdas son incorrectas cuando hay presencia de fallas (porque los modelos geológicos son simplificados) y en consecuencia, el usuario debe modificar la transmisibilidad.
  • Radial: este tipo de geometría se usa mayormente en los estudios cercanos al pozo y los keywords correspondientes son DR, DTHETA y DZ.
  • Unstructured: este tipo de malla siempre es creada usando el pre-procesador FloGrid; en el que el volumen poroso, la transmisibilidad y el orden de las celdas son pre-procesados. Se usa el keyword PEBI en Eclipse para indicar que la geometría de la malla es unstructured.

Por otra parte, para no perder tiempo calculando el flujo de fluidos en celdas sin importancia, hay una serie de keywords que le permiten al usuario agrupar estas celdas como inactivas, lo que hace el simulador es asignarle el valor cero al volumen poroso de estas celdas. Entre ellos están: ACTNUM, MINPV y PINCH. Por ejemplo ACTNUM indica de manera explícita el comportamiento de la celda: 0 indica si es inactiva y 1 si es activa.

Definir las Propiedades de la Celda: los keywords correspondientes a dichas propiedades requieren un valor por celda (aunque sea inactiva) y en cada dirección. Hay varias maneras de definir estas propiedades. Es importante mencionar que los valores de la propiedades deben estar explícitos en EBO. Por ejemplo, si existe una ecuación que permite calcular la permeabilidad a partir de la porosidad, esta debe ser calculada primero; esto generalmente se hace con un pre-procesador y luego estos datos se cargan al archivo de datos con el keyword INCLUDE.

Para asignar los valores repetidos a cada celda se usan los asteriscos (*) y algunos de los operadores más usados son EQUALS, BOX y COPY. Por ejemplo:

-----------------------------------------

GRID

EQUALS

'PORO' 0.3/

'PERMX' 100/

'PERMX' 50 1 3 1 3 2 2/

/

BOX

1 4 1 4 1 1/

PORO

16*0.3/

PERMX

200 50 40 150 ............ 80 90/

ENDBOX

------------------------------------------

Para el caso de EQUALS, en PORO se le asigna el valor de 0.3, luego se le asigna el valor de 100 a la permeabilidad en el eje x. En caso de querer cambiar este valor sólo en algunas celdas, en la línea siguiente escribo el keyword correspondiente entre comillas, luego el nuevo valor y los argumentos siguientes son las celdas que tomarán este valor. En este caso el nuevo valor de PERMX es 50 desde i1=1 hasta i2=3, j1=1- j2=3 y k1=2-k2=2. Note que el valor de porosidad y el primer valor de PERMX son asignados para todas las celdas (valores por defecto).

Para el keyword BOX, primero que nada se debe estar pendiente de "cerrar esa caja con un ENDBOX, porque si no tendríamos un error". Luego de BOX se definen las celdas que componen la caja, en este caso desde i1=1 hasta i2=4, j=1-j=4 y z1=2-z2=2. Después se le asigna el valor de la porosidad a estas 16 celdas, multiplicando el número de celdas por la porosidad (escribirlo en ese orden). Para PERMX se le asigna un valor de permeabilidad a cada celda que va en el siguiente orden: (1,1,1); (2,1,1); (3,1,1);(4,1,1); (1,2,1);(2,2,1);(3,1,1),(4,2,1);...(4,4,1), son 16 valores de permeabilidad.

Cálculo de las Transmisibilidades: generalmente la simulaición se realiza cuando el flujo ocurre entre celdas con una conexión directa o entre celdas adyacentes. Pero hay casos donde hay flujo entre celdas con índices I,J o K no vecinos, como por ejemplo cuando una celda se subdivide en varias celditas, entonces habrá flujo entre la celda que está al lado de la original y las pequeñas celdas en las que fue subdividida esta. Eclipse asigna automáticamente una NNC (non-neighboring) en cualquier momento cuando una celda corner point hace contacto con otra celda cuyos índices I,J,K no son adyacentes.

Los NNC se aplican cuando hay fallas, acuíferos, modelos radiales, inconformidades y pinchouts (cuando un grupo de celdas con un mismo índice i, j o k que va disminuyendo hasta desaparecer estas celdas).

Reportar Resultados: para reportar resultados de la sección GRID en el archivo PRT se usan:

  • RPTGRID: solicita el reporte de muchos keywords, incluyendo ALLNNC.
  • BOUNDARY: que limita la salida de datos en el archivo PRT a ciertas celdas.

Si se quiere tener una vista 3D de los resultados, se usan los siguientes keywords:

  • GRIDFILE: para datos geométricos (*.egrid)
  • INIT: para propiedades estáticas (*.init)

En líneas generales, en la sección GRID se proporciona la data necesaria para calcular el volumen poroso, las transmisibilidades, profundidades del centro de las celdas y las conexiones directas y no vecinas.

Sección EDIT

Como se mencionó en el artículo anterior, la sección EDIT es opcional y está destinada a modificar o editar la información suministrada en la sección GRID. También se mencionó que a medida que el simulador va leyendo la información, va verificando que la misma sea lógica; luego de este proceso, las propiedades calculadas en GRID pueden ser ajustadas por el usuario, pero de allí en adelante, los datos a partir de los cuales fueron calculadas las propiedades no puede ser modificados. Es en este caso donde es útil la sección EDIT; para modificar los volumenes porosos, transmisibilidades, las profundidades en el centro de la celda y las NNC. Los keywords correspondientes son PORV, TRAN y DEPTH, respectivamente.

Los operadores que se pueden usar en esta sección son: MULTIPLY, BOX, EQUALS, COPY, ADD, etc.

jueves, 22 de octubre de 2009

Introducción a la Simulación Numérica de Yacimientos II

El simulador Eclipse Blackoil es el más usado en el mundo porque simplemente ofrece resultados muy confiables aún en situaciones muy complejas de representar como los son la segregación gravitacional y el PVT variable. Además trabaja tomando en cuenta muchas aplicaciones geológicas y siempre se está innovando.

Como ya se mencionó, básicamente lo que hace cualquier simulador es resilver un modelo matemático. Los datos que se ingresan de propiedades de la roca y de los fluidos son leídos y guardados en un archivo de datos. Luego de esto se verifica que los datos sean consistentes. El siguiente paso es lo básico que hace Blackoil; se calculan las presiones y saturaciones a lo largo del tiempo. Por último, el simulador sólo muestra los resultados que uno le solicita y esta información es mostrada en diversos archivos de salida.

Archivo *.DATA: es el archivo de datos en Eclipse Blackoil, en este debe estar contenida la información necesaria para el cálculo de presiones y saturaciones. El archivo *.DATA está formado por ocho secciones: RUNSPEC, GRID, EDIT, PROPS, REGIONS, SOLUTION, SUMMARY y SCHEDULE. De estas, cinco son obligatorias: RUNSPEC, GRID, PROPS, SOLUTION y SCHEDULE, el resto son opcionales.
En este archivo de datos el nombre de la sección siempre debe estar escrito en mayúscula y en la primera columna (sin dejar márgen). De igual manera se escriben el restos de los keywords (los keywords son palabras claves en los cuales se indican ciertos valores, por ejemplo PORO es un keyword, en el que se guardan los valores de porosidad, entonces en el archivo de datos se coloca:

PORO
20*0.2/
En el que 20 es el número de celdas y 0.2 el valor de la porosidad para todas esas celdas).
  • RUNSPEC: en esta sección se encuentran la características generales del modelo. Se utiliza para el dimensionamiento de las variables y establecer la memoria necesaria para llevar a cabo la simulación, en otras palabras prepara al simulador para la corrida. En esta sección se definen las fases presentes en el yacimiento, unidades (de campo, laboratorio o métricas), fechas, título, entre otras y todo los relacionado con el dimensionamiento de la variables porque Eclipse Blackoil (EBO) lee algunas variables como matrices, por ejemplo los PVT. Estos PVT pueden existir para cada región, en caso de que el yacimiento se divida en dos regiones o más, para esto es necesario asignarle un espacio de la memoria a esta variable. Entre los keywords presentes en esta sección son: OIL, GAS, DISGAS, WATER, VAPOIL, TITLE, DIMENS, START, AQUDIMS, WELLDIMS.
  • GRID: en esta sección se establece la geometría de la malla y las propiedades de la roca. Se define la porosidad y la permeabilidad en todas las direcciones, la profundidad del modelo, las celdas activas y las inactivas, dimensiones de la malla, número de celdas. Algunos de los keywords pertenecientes a esta sección son: PORO, PERMX, PERMY, PERMZ, RPTGRID (para reportar resultados), entre otras.
  • EDIT: esta sección es opcional porque se utiliza para modificar propiedades contenidas en la sección GRID. Generalmente se modifican las transmisibilidades (por la presencia de fallas).
  • PROPS: esta sección, al igual que RUNSPEC y GRID, es obligatoria y en ella se definen las propiedades PVT y Roca-Fluido. Entre los keywords de esta sección están: PVTO, PVTG, PDVG, SWOF, SGOF, PVTW, ROCK, etc.
  • REGION: es otra sección opcional en la que se subdivide el yacimiento por regiones. Hay que estar pendiente que esto se debe establecer desde un principio en la sección RUNSPEC, porque en caso contrario el simulador va a reportar un error. En esta sección se indica cuales celdas contituyen a cada región. Cada región tiene diferentes propiedades como las PVT, cuando el simulador está leyendo la información PVT en PROPS, la primera tabla que lee será la de la primera región, la segunda será la de la segunda región y así sucesivamente.
  • SOLUTION: esta sección es obligatoria y aquí se realiza la inicialización del modelo. Es decir, se le proporciona información al simulador de presiones y saturaciones iniciales de cada celda para resolver el modelo.
  • SUMMARY: es una sección opcional y con ella conseguimos los vectores de salida para gráficos. A través de este keyword se le pide al simulador que calcule algo, por ejemplo tasas.
  • SCHEDULE: en esta sección se define la información de los pozos y pasos de tiempo, es decir, momentos en los cuales se van a generar los reportes, ubicación, producción, tipo, etc.

Reglas Básicas del Archivo *.DATA:

  • Los keywords deben estar escrito en mayúsculas y empezar en la primera columna.
  • No puede haber más de 132 caracteres en una línea.
  • Los keywords son de 8 caracteres máximo.
  • Para escribir un comentario se colocan dos guiones al principo del mismo, o simplemente se colocan después de un slach (/).
  • Los keywords pueden tener argumentos o no. OIL es un keyword sin argumento ya que no es necesario colocar más nada, el simulador lo lee y ya sabe que existe esta fase. En cambio, el keyword START es necesario escribir debajo el día, el mes, el año y se termina con un slach; todo esto se llama argumento, cada uno se separa con un espacio y cada uno representa algo. Todos los keywords con argumentos terminan con un /, como mínimo. No importan los espacios entre el último argumento y el primer /.
  • Los valores predeterminados son valores por defecto y se pueden identificar con un asterisco (*) o colocando un slach. Por ejemplo: START /, el simulador asume la fecha 1 JAN 1983 por defecto. Pero si sólo se quiere que se asuman por defecto los dos primeros valores y un año distinto al predeterminado, se escribre de la siguiente manera:
  • START
    2* 1990/


Tipos de Archivos de Salida: estos archivos son generados al correr el simulador.

Según tipo de archivo:

  • Formateado: son los que la gente común puede entender porque está escrito en código ASCII, el keyword correspondiente para generar este archivo es FMTOUT, es de gran tamaño y se puede leer en un editor de texto.
  • No formateado: generalmente no se entiende porque está escrito en código binario, no se puede leer en un editor de texto y es de tamaño pequeño.

Según tipo de contenido:

  • Unificado: su keyword es UNIFOUT y se llama así porque un solo archivo contiene todos los informes en tiempo. Su ventaja es que el número de informes es ilimitado y su desventaja es que los informes indeseados no pueden ser eliminados.
  • Múltiple: a diferencia del anterior, este genera un archivo para informe en tiempo y su ventaja y desventaja son opuestas, es decir, máximo 9999 informes pero los archivos indeseados sí se pueden eliminar.

Archivos de Salida:

  • Print File: contiene TODA la información d ela simulación, siempre y cuando el usuario la pida. Los principales keywords son: RPTGRID, RPTPROPS, RPTSOL...
  • Init File: contiene propiedades iniciales del grid, propiedades de la roca y fluido usado para visualizar en 3D. El keyword es INIT.
  • Geometry File: contiene la geometría estructural de la malla, utilizada para ver en 2D y 3D. Su keyword es GRIDFILE.
  • Summary: se utiliza para crear gráficos.

Por otra parte existen keywords que se puede colocar en cualquier sección como INCLUDE (para cargar un archivo externo), ECHO (para mostrar la escritura de un keyword en el archivo *.PRT), NO ECHO (para suprimir la escritura de un keyword en el archivo .*PRT, generalmente se usa cuando los datos son muy extensos o por cuestiones de confidencialidad) y EXTRAMPS (emite un mensaje de alerta en cada paso de tiempo cuando algún valor de las tablas PVT o VFP se ha extrapolado).

viernes, 2 de octubre de 2009

Introducción a la Simulación Numérica de Yacimientos I

El petróleo es la principal fuente de energía en el mundo, aunque es no renovable. Por ello, hoy en día, se inverten grandes cantidades de dinero en la exploración para conseguir dicho recurso y luego explotarlo. Pero no esta tarea sencilla porque una vez confirmada la presencia de petróleo en algún lugar (que ya es un gran paso) se procede a realizar un estudio de ese yacimiento, y es allí donde juega un papel muy importante la simulación de yacimientos.
La simulación de yacimientos es una forma de modelar numéricamente el yacimiento para cuantificar e interpretar los fenómenos físicos que allí ocurren, con la habilidad de predecir el comportamiento futuro. En otras palabras, se representa de comportamiento real del yacimiento a partir de un modelo matemático con ecuaciones que se resuelven con métodos numéricos. El proceso consiste en dividir el yacimiento en un determinado número de celdas en tres dimensiones y representar el progreso del mismo y las propiedades de los fluidos en el tiempo y espacio para cada etapa.

Como ya mencioné anteriormente, se crea un modelo matemático que se resuelve a partir de métodos numéricos, pero ¿qué ecuación se resuelven?--->Se resuelve una ecuación que es una combinación de la ecuación de balance de materiales y la Ley de Darcy para cada paso de tiempo. Cada celda se resuelve simultáneamente, así que el número de celdas está directamente relacionado con el tiempo necesario para resolver paso.



La estructura del un simulador se puede dividir en tres estapas:
  1. Inicialización: para definir las condiciones iniciales de la simulación, es decir, la presión y la saturación en la fecha de inicio de la simulación. En esta etapa con una descripción estática y las propiedades de la roca y de los fluidos se determina el POES.
  2. Ajuste Histórico: en esta etapa, con los datos históricos de lo pozos, con las condiciones de producción e instalaciones y el POES determinado anteriormente, se realizan los cálculos del simulador en el tiempo.
  3. Predicciones: con los cálculos de la etapa anterior se hace la predicción de la tasa de recobro y a partir de esto se realiza un análisis económico y la estimación de reservas recuperables.

El simulador lo que hace es calcular presiones y saturaciones de cada celda, así como estimar producción de cada pozo. Para esto se fundamenta en que:

  • El yacimiento está dividido en un número finito de celdas.
  • Los pozos están en el centro de la celdas.
  • Se proporcionan los datos básicos para cada celda.
  • La producción de los pozos es suministrada en función del tiempo.

Es necesario conocer varias propiedades de la roca y de los fluidos:

  • De la roca: porosidad, permeabilidad, compresibilidad, profundidad, espesor, permeabilidad relativa, presion capilar y saturaciones.
  • De los fluidos: densidad, compresibilidad, factor volumétrico de formación, viscosidad, solubilidad y presión de saturación.
Hay diferentes tipos de simuladores, como por ejemplo: petróleo negro, composicionales, térmicos, químicos, acoplados con modelos, etc. En este curso sólo estudiaremos el de petróleo negro (Black Oil).

La importancia de simular un yacimiento radica en que se determina de manera aproximada las reservas recuperables, se determina también el método de perforación más económico, así como el tipo y diseño del pozo, el número de pozos a perforar, las tasas de inyección, instalaciones más adecuadas. Por otra parte, también tiene sus limitaciones ya que las soluciones no son exactas dedibo a que los datos ingresados no son precisos, no se puede confiar plenamente en el ajuste histórico porque suelen tener mucha incertidumbre y los datos petrofísicos y geológicos se extrapolan de algunos puntos al campo completo. Se tiene la siguiente premisa del simulador : si basura entra, basura sale; los resultados de salida dependen de los de entrada.

jueves, 1 de octubre de 2009

Presentación

Hola, mi nombre es Lourdes González y estudio ingeniería de petróleo en la UCV. En nuestro pénsum de estudio están contempladas materias muy importantes para nuestra formación como ingenieros, entre ellas están las ingenierías de yacimientos desde la I hasta la V.
En líneas generales, la I estudiamos todo en cuanto a propiedades de la roca, de los fluidos contenidos en ella y las interacciones roca-fluido, así como nos familiarizarnos con en el uso y conversión de los datos de laboratorio, para después utilizarlos, tanto en estudios de ingeniería de yacimientos en el campo, como en la determinación de los volúmenes de hidrocarburos y reservas; la II se enfoca básicamente en el estudio de balance de materiales y pruebas de presión; en la III estudiamos todo lo relacionado con el desplazamiento inmiscible y arreglo de pozos; en la IV se estudia la dinámica de los yacimientos según el estado de agotamiento, la relación pozos/yacimientos, análisis de curvas de declinación de producción y estimación de reservas; y por último yacimientos V, en el que aprendemos a simular el comportamiento de un yacimiento con Eclipse Blackoil.
En esta última asignatura, como parte del sistema de evaluación, publicamos artículos, referentes a la misma, a medida que avanzan las clases y vamos aprendiendo a usar el simulador. Dichos artículos serán publicados en este blog y posiblemente sean útiles para ustedes.
Personalmente, aunque la UCV se incline más hacia la parte de ingeniería de yacimientos, no es el área que más me gusta de la carrera (hasta los momentos); me gusta ingeniería de producción. Espero con este curso de simulación en Eclipse Blackoil interesarme más en el área yacimientos, porque pienso que como futuros ingenieros deberíamos explorar todas las áreas de la profesión independientemente de nuestras preferencias.