Sie sind auf Seite 1von 9

Explicaciòn Codigo Para Simulador una Fase una dimensión para n número de celdas teniendo

en cuenta las condiciones de frontera y el restablecimiento de la presión después de cierto


tiempo de producción fuente sumidero menor al tiempo de simulación con nodos centrados.

Contenido

1) Aspectos a Tener en cuenta a la hora de correr el algoritmo


2) Consideraciones hechas
3) Explicaciòn del algoritmo

Aspectos a tener en cuenta a la hora de correr el algoritmo

Para que el simulador sea un programa flexible y se pueda aplicar para todos los tipos posibles
de casos para una fase y una dimensión tuvimos en cuenta las distintas posibles condiciones
de frontera y las fuentes sumideros en cada celda y se hizo un arreglo para que las fuentes
sumideros se cerraran después de cierto tiempo de producción y la presión de las celdas se
estabilizara a un presión promedio menor a la presión original como una prueba de presión

Valores de Entrada

Basicamente los Valores de entrada son todos en unidades de campo y se ingresan en la


primera hoja del simulador otra parte versátil es que se tiene en cuenta la inclinación de las
celdas y se hace la distribución de presión a tiempo cero por medio del gradiente y se
almacenaran en una variable.

Datos de Producciòn

Luego de tener establecidos los Valores de Entrada pasamos a la hoja de Datos de Producciòn,
para una nueva simulación se borran los datos, y se da click primero que todo en Generar
Datos esto con la finalidad de que el simulador establezca los números de nodos y ubique las
celdas de Caudales y condiciones de frontera. En este punto el usuario debe ingresar los datos
de fuente sumidero en cada nodo si es un pozo productor con el signo negativo que indica
que se extrae materia del sistema y si es un pozo inyector con el signo positivo que indica que
se ingresa masa al sistema, luego de establecer las fuentes sumideros, se establece el tiempo
de producción o de inyección para que el algoritmo después de cierto tiempo haga el caudal
en el nodo cero y se reestablezca la presión del sistema; en las condiciones de fronteras por
defecto el nodo 1 es el primer nodo y el nodo n el último acà se coloca el caudal que se vaya a
tener a travez de las fronteras.

Cuando el Usuario ya ha definido estos parámetros se procede a dar clic en simular

Al Final de la simulación se va a obtener el tiempo de simulación y la presión en cada celda con


sus respectivas gràficas.
Consideraciones hechas

Dentro de las consideraciones del simulador se establece que el medio es uniforme e


isotrópico por lo tanto la permeabilidad es la misma para todo el sistema y sus propiedades
PVT no cambian con el tiempo, esto para considerar una transmisibilidad constante para todo
el sistema y todo los niveles de tiempo

La presión al principio va a ser la misma para todo el sistema a menos que se tenga un sistema
inclinado.

Explicaciòn del algoritmo

Macro de Generaciòn de Nodos

Con esta subrutina se leen los números de celdas a simular y el tiempo de simulación el
contador es para que se generen las celdas desde la primera hasta el número de celdas y por
defecto los caudales en cada nodo y en las fronteras se establecen como cero para que el
usuario los cambie.

Lectura de Datos
En esta parte del algoritmo se procede a leer cada una de las variables a usar a lo largo del
programa y se establecen parámetros básicos como Gravedad especifica del petróleo entre
otras

Dimensionamiento del vector presión el cual se va a encargar de albergar los datos de presión
para cada nivel de tiempo y para cada nodo

Presiòn(número de intervalos a iterar, número de celdas)

Se dimensiona a un número de tiempos +1 debido a que el nivel de presión cero también


cuenta en el almacenamiento o presión inicial

Los Datos de Caudal que el usuario ingreso y los tiempos de producción son leidos y
almacenados y su número de datos va a ser igual al número de celdas y se hace el respectivo
dimensionamiento
Se lleva el almacenamiento hasta nceldas+1 porque se gasta una fila en la escritura del
encabezado de las tablas y por eso se empieza desde la segunda fila también en este paso
también se leen las condiciones de frontera que el usuario ingreso

En este paso en el caso de que se tengan celdas inclinadas de acuerdo al alfa si es mayor que
cero indica un decremento de profundidad desde el nodo de referencia hacia el siguiente
nodo. Un valor negativo indica una mayor profundidad desde el nodo de referencia hacia el
nodo siguiente, se realiza un arreglo con if para indicar si se tiene alfa positivo o negativo y se
hace la distribución por medio del gradiente del crudo calculado como presión hidrostática y
se almacenan en el vector presión

Esta es la inicialización de los niveles de tiempo empezamos desde un tiempo 1 hasta la


variable númerot que almacena el número de veces que se debe simular al dividir el tiempo de
simulación en los delta de T
La ecuación 5.105 es la Establecida en el libro de Basic Applied Reservoir Simulation de Turcay

Esta es la ecuación para una fase una dimensión el método implícito para e modelamiento del
yacimiento se observa que la transmisibilidad va a ser constantes para todos los nodos y en
todos los niveles de tiempo en la parte derecha de la ecuación se tiene el termino Fuente
sumidero al realizar un arreglo se puede obtener la ecuación para el caso de las fronteras.

Este es el cálculo de la transmisibilidad y del factor de unosobren como lo denominamos que


corresponde al factor de 1/n multiplicado por el volumen de roca, Este calculo al ser constante
se puede dejar por fuera del contado del tiempor para reducir el tiempo de simulación.

El establecimiento de la matriz se puede llevar a cabo básicamente al establecer tres factores

Al observar la ecuación 5.105 se observa que la presión Pi+1 del nodo siguiente y la Pi-1 nodo
anterior ambos están afectados por la transmisibilidad en la cara compartida entre los nodos y
Pi nodo actual es función de dos veces la transimisibilidad debido a que es constante para
todo el yacimiento y una vez el factor 1/n

Para todos los nodos intermedios no afectados por las condiciones de frontera se puede hacer
un arreglo para escribir los Valores

Se dimensionan las constantes como dijimos transmisibilidad y el factor 1/n + 2 veces la


transmisibilidad para el caso de los nodos en los que se está simulando el uso de dos for es
para permitir movernos tanto en filas como en columnas y generar los valores de la matriz
para los nodos intermedios en los que no se afecta las condiciones de frontera

Primero se inicializan los contadores en 0 para no tener problemas , se dimensionan las


constantes y se inicia el contador6 en tres debido a que las otras dos primeras filas están
ocupadas por el encabezado y la condición de frontera del nodo inicial y se lleva hasta n celdas
para bajar n filas el contador ocho me va a permitir moverme en Columnas al principio va a ser
escrito en la primera columna pero al pasar al otro nodo este ya no se ubica en la primera
columna si no en la columna anterior +1 y se llevan las columnas hasta un nivel màs 2 debido a
que cada celda intermedia tiene tres factores el pi, pi-1 y pi+1 y se escriben las respectivas
constantes para esto usamos el contador9 que va ir hasta tres y siempre se reinicia en cero
para cada paso.

El contador siete se reinicia tres valores para que para el siguiente paso se restablezca en la
columna que se esta escribiendo

Interpretación de las condiciones de fronteras si el valor de las condiciones de frontera es cero


entonces no se va a establecer una caudal adicional por lo tanto a es transmisibilidad y b es –
(1/n+transmisibilidad) y en el caso que si tenga condiciones de caudal –
(1/n+2*transimisibilidad)

Se escriben los valores de las constantes como b y a en las celdas que por defecto siempre va a
ser la primera celda en fila 2 y columna 1 debido a que la primera se ocupa en la escritura del
encabezado y el nodo final va a ser nceldas+1 debido a que se corre por el encabezado.
Si el tiempo de producción del nodo es mayor que el tiempo de simulación indica que no se va
a realizar un build up y los valores de la matriz independientes quedan solo como el caudal a
todo el tiempo de simulación y la matriz independiente queda igual para todos los niveles de
tiempo

Si tengo un tiempo de producción en el nodo dividido en el delta de tiempo mayor que el


tiempo que voy simulando(contador18) entonces se tiene en cuenta el caudal de lo contrario
en el else el caudal se hace cero o simplemente no se coloca para que el yacimiento
restablezca la presión.

Para las condiciones del primer nodo se hace la misma consideración adicional con la
consideración adicional de si tengo un caudal sobre las fronteras que como se estableció va a
influir en el termino de la matriz de constantes el caudal en frontera para el nodo 1 fue
almacenado como fronteranodo1=caudal en las fronteras para el primer nodo.

Ya hasta este punto se tienen todos los datos de las matrices y solo es cuestión de resolver el
sistema por el método de Thomas el for con contador11 es para escribir las presiones que se
van a resolver

El procedimiento anterior es el algoritmo de Thomas que se puede apreciar en el libro de


Zetari y la aplicación es tal como se encuentra en el libro al simplificar la matriz que se tiene
como el producto de dos matrices y resolver los sistemas de ecuaciones.
En el primer for contador17 se almacenan los valores solución en umatriz(contador17) este
almacena los valores de presión

Y con el contador19 se pasan de un vector de dimensión nceldas almacenado en u matriz al


vector presión que tiene dimensión en tiempo y espacio y se almacena en el espacio y tiempo
correspondiente (contador18=tiempo) y contador 19=celdas en espacio

Los últimos for son para escribir los deltas de tiempo y los valores respectivos se corren una
unidad debido a que no se estableció el nivel de tiempo 0

Das könnte Ihnen auch gefallen