app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do...

71
UNIVERSIDADE FEDERAL FLUMINENSE CENTRO TÉCNOLÓGICO ESCOLA DE ENGENHARIA DEPARTAMENTO DE ENGENHARIA QUIMICA E DE PETROLEO André Luis Reys de Mattos Aplicação de programação matemática na estruturação e construção de simulador de reservatórios. Niterói – RJ, Brasil 2017

Transcript of app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do...

Page 1: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

UNIVERSIDADE FEDERAL FLUMINENSE CENTRO TÉCNOLÓGICO

ESCOLA DE ENGENHARIA DEPARTAMENTO DE ENGENHARIA QUIMICA E DE PETROLEO

André Luis Reys de Mattos

Aplicação de programação matemática na estruturação e construção de simulador de

reservatórios.

Niterói – RJ, Brasil

2017

Page 2: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

André Luis Reys de Mattos

Aplicação de programação matemática na estruturação e construção de simulador de reservatórios.

Trabalho de Conclusão de Curso apresentado ao Curso de Graduação em Engenharia de Petróleo da Escola de Engenharia da Universidade Federal Fluminense, como requisito parcial para obtenção do Grau de Bacharel em Engenharia de Petróleo.

Orientadores: Arturo Rodrigo Ferreira Pardo

João Felipe Mitre de Araujo

Niterói – RJ, Brasil

2017

Page 3: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Ficha Catalográfica elaborada pela Biblioteca da Escola de Engenharia e Instituto de Computação da UFF

M444 Mattos, André Luis Reys de

Aplicação de programação matemática na estruturação e

construção de simulador de reservatórios / André Luis Reys de

Mattos. – Niterói, RJ : [s.n.], 2017.

70 f.

Projeto Final (Bacharelado em Engenharia de Petróleo) –

Universidade Federal Fluminense, 2017.

Orientadores: Arturo Rodrigo Ferreira Pardo, João Felipe Mitre

de Araujo.

1. Engenharia de reservatório. 2. Fortran (Linguagem de

programação). 3. Programação matemática. I. Título.

CDD 622.3382

Page 4: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

André Luis Reys de Mattos

Aplicação de programação matemática na estruturaçãoe construção de simulador de reservatórios.

Trabalho de Conclusão de Curso apresentado aoCurso de Graduação em Engenharia de Petró-leo da Escola de Engenharia da UniversidadeFederal Fluminense, como requisito parcial paraobtenção do Grau de Bacharel em Engenhariade Petróleo

Aprovado em Niterói - RJ, Brasil, 13 de julho de 2017:

Arturo Rodrigo Ferreira Pardo, D. SC.Orientador

João Felipe Mitre de Araujo, D. SC.Orientador

Elson Antonio do Nascimento, D. SC.

João Crisósthomo de Queiroz Neto, D. SC.

Niterói - RJ, Brasil2017

Page 5: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

A João Pedro, Cláudia e Sérgio Mattos,

a melhor família que qualquer filho poderia desejar

Page 6: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Agradecimentos

Os agradecimentos principais são direcionados a minha família, que sempre esteveao meu lado nos momentos mais difíceis, me encorajando e não me deixando ser levado porpensamentos ruins, a Julia Rocha, por todos os momentos de desespero nos quais me acolheue me trouxe uma luz e a todos os meus amigos companheiros de jornada, dentre os quais sedestacam Melissa, Mayara, Allicia, Pedro e Arnaldo.

Agradecimentos especiais são direcionados a todo o Departamento de Engenharia dePetróleo da Universidade Federal Fluminense, assim como o Petroleum Engineering Departmentda Montana Tech of The University of Montana, cuja maior contribuição foi o conhecimento einspiração necessários para a realização deste.

Agradeço ainda a meus orientadores, Dr. Arturo Rodrigo Ferreira Pardo e Dr. , por todoo suporte e orientação sem os quais o presente trabalho não passariam de notas perdidas em umcaderno.

Page 7: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

"Trabalhe até que não precise mais se apresentar."

Autor Desconhecido

Page 8: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Resumo

Este trabalho visa o desenvolvimento e construção de um simulador de reservatórios Black-Oil,totalmente a partir de códigos abertos ao público e de livre utilização. Primeiro faz-se umbreve resumo de Engenharia de Reservatórios, passando pelos tópicos mais relevantes. Uma vezconcluído, segue para desenvolvimento da equação da continuidade, adaptando-a a meios porosose discretizando-a entre coordenadas espaciais e temporais. Ao final, é realizada a construçãode uma subrotina em FORTRAN, capaz de executar estes cálculos em repetição e chegar a umresultado efetivo.

Palavras-chaves: Simulação de Reservatórios. FORTRAN. Continuidade. Engenharia de Reser-vatórios.

Page 9: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Abstract

This study aims to deduce and develop a Black Oil Reservoir Simulator, directly from open-source codes. It begins with a short recapitulation of Reservoir Engineering, from the maindefinitions to the most relevant topics. Once concluded, the next step is the development of thecontinuity equation, discretizing it between spacial end time coordinates. Finnaly, a FORTRANsubroutine capable of apply the model in loops and achieve an effective result is written .

Key-words: Reservoir Simulation. FORTRAN. Continuity Equation. Reservoir Engineering.

Page 10: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Lista de ilustrações

Figura 2.1 – Densidade vs Pressão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Figura 2.2 – Gráfico de Standing-Katz . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Figura 2.3 – Fator Volume-Formação vs Pressão . . . . . . . . . . . . . . . . . . . . . . 17Figura 2.4 – Viscosidade e Razão Gás-óleo vs Pressão . . . . . . . . . . . . . . . . . . . 19Figura 2.5 – Pressão Capilar vs Saturação . . . . . . . . . . . . . . . . . . . . . . . . . 21Figura 2.6 – Fluxo mássico entre um bloco e seu entorno. . . . . . . . . . . . . . . . . . 26Figura 3.7 – Organização dos blocos no modelo estudado . . . . . . . . . . . . . . . . . 31Figura 4.8 – Modelo de output contendo informações de cada bloco do reservatório . . . 39Figura 4.9 – Modelo de output contendo informações do reservatório como um todo . . . 39Figura 4.10–Interpretação das informações extraídas do programa. Pressão de óleo. . . . 40Figura 4.11–Interpretação das informações extraídas do programa. Saturação de óleo. . . 41Figura 4.12–Interpretação das informações extraídas do programa. Pressão de óleo. Reser-

vatório convencional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Figura 4.13–Interpretação das informações extraídas do programa. Saturação de óleo.

Reservatório convencional. . . . . . . . . . . . . . . . . . . . . . . . . . . 43Figura 4.14–Interpretação das informações extraídas do programa. Pressão de óleo. Reser-

vatório com ausência de capa de gás. . . . . . . . . . . . . . . . . . . . . . 44Figura 4.15–Interpretação das informações extraídas do programa. Saturação de óleo.

Reservatório com ausência de capa de gás. . . . . . . . . . . . . . . . . . . 45Figura 4.16–Interpretação das informações extraídas do programa. Pressão de óleo. Reser-

vatório com quantidade reduzida de água de formação. . . . . . . . . . . . 46Figura 4.17–Interpretação das informações extraídas do programa. Saturação de óleo.

Reservatório com quantidade reduzida de água de formação. . . . . . . . . 47

Page 11: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Sumário

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 CONCEITOS BÁSICOS DE ENGENHARIA DE RESERVATÓRIOS . 122.1 Propriedades da Rocha Reservatório . . . . . . . . . . . . . . . . . 122.2 Propriedades dos Fluidos de Reservatório . . . . . . . . . . . . . . 132.3 Interações Fluido-Rocha e Fluido-Fluido . . . . . . . . . . . . . . . 202.4 Comportamento dos Fluidos no Reservatório . . . . . . . . . . . . 23

3 DESENVOLVIMENTO TEÓRICO . . . . . . . . . . . . . . . . . . . . 283.1 Equações de Fluxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.2 Influência da Pressão Capilar . . . . . . . . . . . . . . . . . . . . . . 293.3 Discretizando as Equações . . . . . . . . . . . . . . . . . . . . . . . . 313.4 Representação dos Poços . . . . . . . . . . . . . . . . . . . . . . . . 34

4 FUNCIONAMENTO DO SIMULADOR . . . . . . . . . . . . . . . . . 364.1 A Linguagem FORTRAN . . . . . . . . . . . . . . . . . . . . . . . . . . 364.2 Mecanismo de Resolução . . . . . . . . . . . . . . . . . . . . . . . . . 374.3 Funcionamento Básico do Programa . . . . . . . . . . . . . . . . . . 374.4 Estudos de Caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.4.1 Caso 1 - Reservatório convencional . . . . . . . . . . . . . . . . . . . . 424.4.2 Caso 2 - Reservatório com ausência de capa de gás . . . . . . . . . . 444.4.3 Caso 3 - Reservatório com quantidade reduzida de água de formação 44

5 CONCLUSÃO E SUGESTÕES PARA TRABALHOS FUTUROS . . . 48

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

APÊNDICES 50

APÊNDICE A – CÓDIGO DESENVOLVIDO . . . . . . . . . . . . . . 51

APÊNDICE B – INPUT UTILIZADO NOS ESTUDOS DE CASO . . 69

Page 12: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

11

1 Introdução

Com o advento da revolução digital, a simulação de reservatório vem continuamenteganhando espaço no mercado de óleo e gás. Simular não é mais uma questão de previsão, mascada vez mais uma questão de estratégia. Novas descobertas de reservatórios podem envolvercondições cada vez pior de escoabilidade, com permeabilidades baixas, grandes falhamentos,produções exageradas de água, entre outros. Um método de simulação corretamente efetuadopode (e geralmente consegue) propiciar estratégias de desenvolvimento respeitando cada vezmais limites econômicos e ambientais.

Graças a essa importância, empresas vêm desenvolvendo dia a dia softwares cada vezmais potentes e eficientes, chegando em questão de minutos a resultados que, sem o uso datecnologia, nunca seriam alcançados. Por questões comerciais, entretanto, esses softwares sãoinvioláveis, atuando como caixas obscuras de processamento, onde entram os dados, saem osresultados.

1.1 Objetivo

Este estudo tem o intuito de retornar às origens e deduzir, a partir das definições maisbásicas, equações funcionais para o desenho de um simulador de reservatórios eficiente e decódigo aberto. O programa desenvolvido terá uma estrutura modular, permitindo sua fáciladaptação às mais diversas situações e assim criando um ambiente um pouco mais amigável paraaqueles que queiram entender o funcionamento de suas versões comerciais.

Antes do desenvolvimento, entretanto, é necessário uma breve revisão de conceitosbásicos da engenharia de reservatórios, como propriedades das rochas, propriedades dos flui-dos, interações entre o fluido e a rocha e seu comportamento em um reservatório. Após, serárealizado um desenvolvimento intensivo de equações de fluxo, levando em conta aspectos comoposicionamento espacial e temporal, condições de contorno e assunções.

Page 13: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

12

2 Conceitos Básicos de Engenharia deReservatórios

Como o próprio nome propõe, a Simulação de Reservatórios é um estudo da como secomporta um reservatório sujeito às varias alterações que podem ser feitas pelo homem oupela natureza ao longo de sua vida. Uma vez que este trabalho se dedica principalmente asimulações onde não há reação química, não há troca de energia entre as diferentes fases etodas as propriedades são contínuas e descritíveis, o estudo se restringirá apenas aos conceitosessenciais para o desenvolvimento de uma solução.

2.1 Propriedades da Rocha Reservatório

Porosidade

Principalmente utilizada na medição do volume de fluido no reservatório, a porosidade éuma das mais importantes propriedades a serem estudadas. Segundo Rosa (2006), a porosidadeé definida como sendo a relação entre o volume de vazios de uma rocha e o volume total damesma, ou seja:

φ =VvVt

(2.1)

Onde:

φ representa a porosidade

Vv representa o volume de vazios

Vt representa o volume total

Permeabilidade

Enquanto a porosidade mede a capacidade de armazenamento da rocha, outra informaçãode vital importância é a Permeabilidade. Análoga ao inverso da resistência de um circuito elétrico,Rosa (2006) define permeabilidade como uma medida da capacidade de um meio poroso de sedeixar atravessar por fluidos. Os estudos mais conclusivos sobre permeabilidade foram feitos porHenry Darcy em 1856 e serão abordados na seção 2.4.

Page 14: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 13

2.2 Propriedades dos Fluidos de Reservatório

Tipos de fluidos

Fluidos em geral podem ser considerados como incompressíveis, compressíveis e leve-mente compressíveis, a depender em como se comportam com o variar da pressão. Um fluidoincompressível, como sugerido pelo nome, não sofre alterações com o variar da pressão, man-tendo sempre o mesmo volume. Fluidos compressíveis, por sua vez, sofrem altas variações devolume, como demonstrado na Figura (2.1) (ERTEKIN, 2001).

Figura 2.1 – Densidade vs Pressão

Fonte: Ertekin (2001)

Geralmente, a água é considerada como incompressível, o gás como compressível e oóleo negro1 como levemente compressível. Existe ainda o óleo com gás em solução (óleo cruou óleo vivo), cujo comportamento é distinto devido a solubilização do gás com o aumentar dapressão.1 Entende-se como óleo negro, óleo morto ou Black Oil o óleo que já dissipou todo o gás em solução.

Page 15: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 14

Pressão de bolha

Segundo Ahmed (2010), a pressão de bolha de um sistema de hidrocarbonetos é definidacomo a mais alta pressão na qual uma bolha de gás é liberada do óleo. Essa importante proprie-dade pode ser medida experimentalmente através de um teste PVT flash ou estimada com o usode correlações. Neste trabalho será considerada como um valor conhecido do sistema.

Compressibilidade isotérmica

De acordo com Ertekin (2001), a compressibilidade isotérmica de um fluido é definidacomo a mudança volumétrica relativa de uma determinada massa sujeita a uma alteração depressão em condições de temperatura constante. A compressibilidade pode, matematicamente,ser definida como:

ci = − 1

V

∂V

∂p|T (2.2)

Em termos de massa específica, sabendo que ρ = mV

, a expressão resultante então é:

ci = −1

ρ

∂ρ

∂p|T (2.3)

Fator z de compressibilidade do gás

Gás ideal

Segundo Rosa (2006), um gás ideal é um fluido hipotético que obedece a 3 condiçõesespecíficas:

- O volume ocupado pelas moléculas é insignificante se comparado ao volume total dofluido.

- Não existem quaisquer forças intermoleculares atrativas ou repulsivas, seja com o própriofluido, seja com as paredes do recipiente.

- As colisões entre as moléculas são perfeitamente elásticas.

Uma vez seguidas essas condições, o gás pode ser considerado ideal e seu comportamentopode ser previsto, em unidades absolutas, pela Equação (2.4), também conhecida como Equaçãode Estado ou Lei dos Gases Ideais.

PV = nRT (2.4)

Page 16: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 15

Gás real

Ainda que a grande maioria dos gases não siga as condições específicas dos gases ideais,quando em baixa temperatura e baixa pressão são fiéis a essa relação. Para os que não seguemesse modelo, existe um fator de correção chamado fator z de compressibilidade do gás ou, eminglês, z-factor. A equação (2.5) mostra a inserção deste fator.

PV = znRT (2.5)

Dependente de variáveis como temperatura e pressão, associadas a propriedades dasubstância, como temperatura e pressão críticas, esse fator tem comportamento anômalo. Apesarda existência de correlações bem precisas, como Peng-Robinson, até hoje, o método do Gráficode Standing-Katz (Figura 2.2) é ainda muito utilizado.

Razão gás-óleo

Também conhecida como Razão de Solubilidade do Gás, a Razão gás-óleo (Rs) ouGas-Oil Ratio (GOR) representa a quantidade de gás que se desprende do óleo no caminho domesmo entre o reservatório e a superfície (MCCAIN, 1990). Essa razão então é definida emtermos das quantidades de gás e óleo que surgem durante a produção.

Rs =volume de gás produzido sob condições padrãovolume de óleo produzido sob condições padrão

(2.6)

Na ausência de dados de laboratório, Terry e Rogers (2014) sugerem a utilização decorrelações. Standing, em seus estudos, concluiu que poderia estimar a Razão gás-óleo a partirda temperatura e da pressão do reservatório, juntamente a gravidade específica do gás e dagraduação API do óleo. Beggs apresenta a correlação de Standing em formato de equação eválida para pressões abaixo da pressão de bolha como (BRADLEY, 1987):

Rs = γg

( p

18 ∗ 10(yg)

)1.204

(2.7)

Onde:

yg = 0.00091T − 0.125ρAPI

Fator volume-formação

Segundo Rosa (2006), fator volume-formação é a relação entre o volume que o fluidoocupa em uma determinada condição de temperatura e pressão e o volume que este mesmo fluido

Page 17: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 16

Figura 2.2 – Gráfico de Standing-Katz

Fonte: Katz (1959)

Page 18: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 17

ocupa em condições padrão. Portanto, para uma fase genérica n pode-se escrever a equação (2.8)

Bn =VnV0,n

(2.8)

Fator volume-formação de gás

Substituindo a equação (2.5) na equação (2.8) e assumindo que, para condições padrão,z ∼= 1 pode-se então escrever a equação (2.9).

Bg =P0ZT

T0P(2.9)

Fator volume-formação de óleo

Como visto na seção Razão gás-óleo, até atingir o ponto de bolha, o gás se dissolve noóleo. Essa dissolução faz com que o óleo, entre a pressão padrão e o ponto de bolha, aumentede volume com o aumentar da pressão. Acima da pressão de bolha, o aumento da pressão fazcom que o óleo e o gás nele dissolvido se comprimam, uma vez que não há mais dissolução.Como podemos notar na figura (2.3), entre a pressão de bolha e a pressão inicial, o Bo possuicomportamento linear.

Figura 2.3 – Fator Volume-Formação vs Pressão

Fonte: Rosa (2006)

Page 19: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 18

Viscosidade

Segundo Ertekin (2001), viscosidade de um fluido é a medida da facilidade de um fluidode escoar como resultado de um gradiente de pressão aplicado. Para fluidos com gás diluído, asmoléculas se encontram afastadas e não oferecem muita resistência. Em contraste, um fluidomais denso oferece uma alta resistência ao escoamento. A viscosidade é geralmente estimadaem função de temperatura e pressão. Neste estudo porém, serão desconsideradas quaisquerinfluências de variação de temperatura, visto que o modelo utilizado somente é válido paraprocessos isotérmicos.

Viscosidade de um óleo

Em casos onde não é possível a análise laboratorial, existem inúmeras maneiras paraestimar a viscosidade de um óleo. Um dos métodos mais utilizados é :

Passo 1 - Estimar a viscosidade do óleo morto através da correlação de Beggs-Robinson.

µod = 10A(T−460)−1.163 − 1.0 (2.10)

Onde:

A = 103.0324−0.202023API

Passo 2 - Estimar a viscosidade para pressões menores que a pressão de bolha através da correlaçãode Beggs-Robinson.

µob = a(µod)b (2.11)

Onde:

a = 10.715(Rs+ 100)−0.515

b = 5.44(Rs+ 150)−0.338

Passo 3 - Corrigir a viscosidade do óleo para pressões maiores que a pressão de bolha através dacorrelação de Khan.

µo = µob exp[9.6× 10−6(P − Pb)

](2.12)

Temos então, para o óleo, comportamento análogo ao representado na Figura 2.4

Page 20: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 19

Figura 2.4 – Viscosidade e Razão Gás-óleo vs Pressão

Fonte: Rosa (2006)

Viscosidade de um gás

Assim como para estimar a viscosidade do óleo, existem inúmeras maneiras de se estimara viscosidade de um gás. Um dos métodos mais utilizados, graças a sua simplicidade, é o métodode Lee-Gonzales-Eakin.

Em seus estudos, Lee et al. apresentou uma relação semi-empírica para a viscosidade degases naturais, propondo a seguinte equação (AHMED, 2016):

µg = 10−4K exp

[X( ρg

62.4

)Y ](2.13)

Onde:

k = (9.4+0.02Ma)T 1.5

209+19Ma+T

X = 3.5 + 986T

+ 0.01Ma

Y = 2.4−X

Page 21: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 20

2.3 Interações Fluido-Rocha e Fluido-Fluido

Além dos fenômenos comportamentais intrínsecos dos fluidos e das rochas, devemostambém estudar como estes se relacionam entre si. Fatores como saturação, pressão capilar,permeabilidade relativa entre outros, podem não aparentar, mas possuem um papel decisivo naprecisão de uma simulação.

Saturação

Um dos fatores determinantes do comportamento de um certo fluido na presença deoutras fazes é a saturação. De acordo com Ertekin (2001), saturação de um determinadofluido representa a fração do poro ocupada pelo mesmo. Por representar uma fração do fluido,geralmente a saturação é representada como um valor entre 0 e 1, onde 0 representa a ausênciado fluido em questão e 1 a total ocupação do poro pelo mesmo. Também pode se considerar queem um sistema, a soma da saturação de todas as fases se igualará a 1. Tem-se então, para n fases:

n∑i=1

Si = 1 (2.14)

Conclui-se então que, para um sistema gás-óleo:

Sg + So = 1 (2.15)

Para um sistema água óleo:

So + Sw = 1 (2.16)

Finalmente, para um sistema trifásico:

So + Sg + Sw = 1 (2.17)

Pressão Capilar

Quando duas ou mais fases imiscíveis são colocadas em um recipiente, em estado estático,as fases mais pesadas tendem a se concentrar no fundo da mistura, assim como as mais levesno topo, se formando assim uma superfície de separação entre as fases. Segundo Rosa (2006),em meios porosos, porém, não ocorre a formação desta superfície, mas sim de uma zona detransição devido aos fenômenos capilares.

Ertekin (2001) define pressão capilar como uma função da saturação e de seu histórico(ou seja, drenagem ou embebição) para um determinado conjunto rocha-fluidos a depender datemperatura e da composição. Pressão capilar, portanto, é a força exercida entre as fases através

Page 22: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 21

dos fenômenos capilares ou, principalmente, a tensão superficial, gerando um diferencial depressão entre fases submetidas às mesmas condições externas. Numericamente pode ser definidacomo a diferença de pressão entre a fase não-molhante e a fase molhante, como demonstradonas equações 2.18 e 2.19. A figura 2.5 exemplifica o comportamento da pressão capilar com ovariar das saturações de óleo e água.

Pcow = Po − Pw (2.18)

Para rocha preferencialmente molhável pela água, e

Pcgo = Pg − Po (2.19)

Para sistema óleo-gás.

Figura 2.5 – Pressão Capilar vs Saturação

Fonte: Ertekin (2001)

Page 23: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 22

Permeabilidade Relativa

Originalmente a lei de Darcy foi derivada para fluxo monofásico, onde a permeabilidadedo meio poroso representa a permeabilidade absoluta do meio. Quando dois ou mais fluidosfluem simultaneamente, a lei de Darcy pode ser modificada através da inserção do termode permeabilidade relativa. Definido como a razão entre permeabilidade do sistema a umdeterminado fluido pela permeabilidade absoluta do meio, a permeabilidade relativa possuidimensão nula e é função do meio e dos fluidos envolvidos e suas respectivas saturações(ERTEKIN, 2001).

krx =kxk

(2.20)

Modelo de Corey

O modelo bifásico de Corey é um modelo válido principalmente para o processo dedrenagem em rochas consolidadas. O modelo baseia-se principalmente numa normalização dasaturação da fase molhante.

Swn =Sw − Siw

1− Sw(2.21)

A permeabilidade relativa da fase molhante é, então:

krw = S4wn (2.22)

E, para a fase não-molhante:

krnw = (1− Swn)2(1− Swn) (2.23)

Modelo trifásico de Naar, Henderson e Wygal

Já no modelo trifásico de Naar, Henderson e Wygal, as permeabilidades relativas de cadafase individual do reservatório são expressas por:

krw =

(Sw − Siw1− Siw

)4

(2.24)

kro =

(S3o(1− Sg + 2Sw − 3Siw)

(1− Siw)4

)(2.25)

krg =

(S3g (2− Sg − 2Siw)

(1− Siw)4

)(2.26)

Page 24: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 23

Este modelo, porém, não incorpora Sor e Sgc e, para que o modelo funcione adequada-mente, devem ser impostas duas condições para as previsões do modelo:

kro = 0 (2.27)

Para So 5 Sor, e

krg = 0 (2.28)

Para Sg 5 Sgc.

2.4 Comportamento dos Fluidos no Reservatório

Potencial de fluido

Uma informação frequentemente obtida em estudos de mecânica dos fluidos é a carga.Quando em unidades usuais de engenharia, essa carga frequentemente se apresenta em m.c.a(metros de coluna de água), podendo ser interpretada como a coluna de água necessária paraatingir o mesmo nível de potencial de um certo ponto em estudo. Para fluidos incompressíveis,pode ser matematicamente representada por:

hf =p

γ+ z (2.29)

Onde:

- z representa a altura em relação a uma origem determinada arbitrariamente.

- p representa a pressão no ponto em estudo

- γ = γcρg sendo γc um fator de conversão de gravidade, ρ a massa específica do fluidoem estudo e g a constante de gravidade local.

Multiplicando-se os dois lados da equação (2.29) por γ, é possível obter:

γhf = p+ ρz (2.30)

Nota-se, por análise dimensional, que o termo γhf possui então dimensão semelhante apressão e pode ser representado pela letra grega Φ, tendo então:

Φ = p+ ρz (2.31)

Uma vez que, ao se estudar reservatórios, os processos geralmente se encontram abaixoda plataforma, torna-se interessante substituir o termo z, relativo a posição vertical, pelo termo

Page 25: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 24

D relativo a Profundidade Vertical Real - TVD. Colocando-se como referencial comum o Kelly

Bushing (KB) e levando-se em conta a diferença de sentido, assume-se:

D = −z (2.32)

E, portanto, a a equação (2.31) torna-se:

Φ = p− γD (2.33)

Lei de Darcy

Engenheiro responsável pelo sistema de distribuição de águas de Dijon, na França, HenryDarcy designou uma das equações mais utilizadas para o estudo do fluxo de fluidos em meiosporosos. Em 1856, ao estudar problemas de tratamento de água através de filtros de areia, Darcyconcluiu que "a vazão através de um meio poroso é proporcional à área aberta ao fluxo e aodiferencial de pressão, e inversamente proporcional ao comprimento e à viscosidade."A fim deadequar e generalizar a equação, Darcy inseriu uma constante de proporcionalidade k que, apósvários experimentos, concluiu ser função apenas do meio poroso e batizou esta constante comopermeabilidade absoluta do meio. A equação obtida pr Darcy foi:

q = kAP1 − P2

µL(2.34)

A equação de Darcy, em seu formato original, foi formulada sobre algumas condiçõescomo:

• Estado estacionário,

• Fluxo isotérmico,

• Propriedades constantes do fluido e do meio em todo o trecho em estudo,

• Não há interação entre o fluido e o meio e

• Fluxo laminar.

Essas condições, porém, podem ser facilmente sobrepostas com a integração de outrasfunções ou equações.

Estado estacionário e transiente

Durante processos como a injeção de água em um reservatório ou a produção de óleo, épossível notar que a resposta a esta perturbação não é imediata. Podem se passar minutos, horas

Page 26: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 25

e até dias para que esta onda seja sentida pelas áreas limítrofes do reservatório. Este fenômenoocorre graças a compressibilidade existente nos componentes do reservatório

De acordo com Ertekin (2001), para um fluido incompressível, a resposta à perturbaçãoseria imediatamente sentida na borda, supondo que a rocha reservatório é também incompressívelou, matematicamente:

ρ 6= f(P ) (2.35)

Para cf = 0 ou ρ constante, e

(∂ρ

∂t

)s

= 0 (2.36)

E, consequentemente,

(∂P

∂t

)s

= 0 (2.37)

Em termos de velocidade:

(∂u

∂t

)s

= 0 (2.38)

Problemas de fluxo envolvendo fluidos incompressíveis e meios porosos possuem solu-ções independentes do tempo, uma vez que todos os derivativos em relação ao tempo são nulos,dependendo apenas da posição s. Tal comportamento é chamado de estado estacionário.

Para fluidos levemente compressíveis e compressíveis, a perturbação é amortecida ini-cialmente pela compressibilidade do fluido, até que o fluido não consiga mais armazenar estaenergia. A energia remanescente é então transferida para o próximo ponto no espaço e assim pordiante. A energia armazenada será posteriormente transferida de um ponto para o outro. Apósum certo tempo, a perturbação será transferida até as regiões limítrofes e será então percebida emqualquer ponto de observação. Pode-se então dizer que há no meio poroso um comportamentoem função do tempo, ou estado transiente. Para este caso teríamos:

ρ = f(P ) (2.39)

Para cf > 0 e

(∂ρ

∂t

)s

6= 0 (2.40)

Page 27: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 26

E, consequentemente,

(∂P

∂t

)s

6= 0 (2.41)

Em termos de velocidade:

(∂u

∂t

)s

6= 0 (2.42)

Equação da continuidade

Segundo Welty et al. (2007), a equação da continuidade é uma forma diferencial dalei da conservação de massa. Por se tratar de uma forma diferencial, deve-se então partir daconsideração de um volume de controle de dimensões ∆x, ∆y e ∆z. Considerar então a todo ofluxo mássico presente entre este bloco e seu entorno, como mostrado na figura 2.6.

Figura 2.6 – Fluxo mássico entre um bloco e seu entorno.

Fonte: Welty et al. (2007)

A expressão para a conservação de massa do volume de controle é então:

∫ρ (v· n) dA+

∂t

∫ρdV = 0 (2.43)

Que pode ser interpretado como:Fluxo de massa paradentro ou para fora

do volume de controle

+

Taxa de acumulaçãode massa no interior

do volume de controle

= 0 (2.44)

Page 28: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 2. Conceitos Básicos de Engenharia de Reservatórios 27

O fluxo mássico ρ (v· n) em cada face do volume de controle está representado na figura2.6. A massa contida dentro do volume de controle pode ser representada por ρ∆x∆y∆z e,portanto, a mudança de massa dentro do volume de controle é

∂t(rho∆x∆y∆z) (2.45)

A densidade, porém, pode variar ponto a ponto, ou seja, ρ = ρ(x, y, z, t). Sendo assim, ofluxo mássico pelas faces do volume de controle pode ser representado, respectivamente para asdireções x, y e z por:

(ρvx|x+∆x − ρvx|x) ∆y∆z (2.46)

(ρvy|y+∆y − ρvy|y) ∆x∆z (2.47)

(ρvz|z+∆z − ρvz|z) ∆x∆y (2.48)

Substituindo as equações 2.45 até 2.48 na equação 2.43, temos:

(ρvx|x+∆x − ρvx|x) ∆y∆z + (ρvy|y+∆y − ρvy|y) ∆x∆z

+ (ρvz|z+∆z − ρvz|z) ∆x∆y +∂

∂t(rho∆x∆y∆z) = 0 (2.49)

Uma vez que, nos estudos em geral, o volume não se altera como tempo, torna-se possíveldividir a equação por ∆x∆y∆z. No limite, com ∆x,∆y e ∆z tendendo a um valor infinitesimal,obtém-se a forma extensa da equação da continuidade:

∂xρvx +

∂yρvy +

∂zρvz +

∂ρ

∂t= 0 (2.50)

Aplicando a função matemática divergente, é possível obter a forma compacta da equaçãoda continuidade:

∇ · ρv +∂ρ

∂t= 0 (2.51)

Page 29: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

28

3 Desenvolvimento Teórico

3.1 Equações de Fluxo

Seguindo o método proposto por Koederitz (2005), é possível, baseando-se na equaçãoda continuidade, escrever uma expressão geral para o balanço de massa de um problema de fluxocomo

{fluxo de entrada} − {fluxo de saída} − {produção} = {acúmulo}. (3.1)

Onde:

{fluxo de entrada} = Qx +Qy +Qz (3.2)

{fluxo de saída} = {fluxo de entrada}+ ∆x∂Qx

∂x+ ∆y

∂Qy

∂y+ ∆z

∂Qz

∂z(3.3)

Como citado na seção 2.4, a equação proposta por Darcy pode ser facilmente adaptadapara se adequar às condições do problema. Aplicando-se, por exemplo, as propriedades de fatorvolume-formação sobre a equação 2.34, é possível obter

q =kA(P1 − P2)

µBL. (3.4)

Para que a equação seja valida não só para fluxo horizontal, mas também para vertical, éinteressante substituir os termos de pressão por termos de potencial de fluido. Da mesma maneira,a equação pode ser convertida para suportar fluxo multifásico através da inserção do termo depermeabilidade relativa, obtendo:

q =kkrA(Φ1 − Φ2)

µBL(3.5)

Definindo um fluxo na direção x, assumindo dimensões infinitesimais e considerandoAx = ∆y∆z:

q =kkr∆y∆z

µB

∂Φ

∂x(3.6)

Substituindo a equação 3.6 na equação 3.3 e rearranjando os termos:

Page 30: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 3. Desenvolvimento Teórico 29

{fluxo de entrada} − {fluxo de saída} =

∆x∆y∆z

[∂

∂x

(kkrµB

∂Φ

∂x

)+

∂y

(kkrµB

∂Φ

∂y

)+

∂z

(kkrµB

∂Φ

∂z

)](3.7)

Considerando um volume total Vb = ∆x∆y∆z,que o volume disponível para o fluido éV = φVb, que a porção desse volume ocupada por este seja igual a sua saturação e que o termode acúmulo representa a mudança de massa armazenada em uma célula no tempo,

{acúmulo} =∂

∂t

(SVbφ

B

). (3.8)

Substituindo as equações 3.7 e 3.8 na equação 3.1, adequando todos os termos para faseóleo e considerando uma produção de óleo igual a qo,

Vb

[∂

∂x

(kkroµoBo

∂Φ

∂x

)+

∂y

(kkroµoBo

∂Φ

∂y

)+

∂z

(kkroµoBo

∂Φ

∂z

)]− qo =

∂t

(SoVbφ

Bo

). (3.9)

De forma análoga, para a água,

Vb

[∂

∂x

(kkrwµwBw

∂Φ

∂x

)+

∂y

(kkrwµwBw

∂Φ

∂y

)+

∂z

(kkrwµwBw

∂Φ

∂z

)]− qw =

∂t

(SwVbφ

Bw

). (3.10)

Visto a existência do gás em solução, o gás não pode ser modelado da mesma maneiraque a água. Uma modelagem adequada para o gás seria primeiramente modelar o gás livre esomar com o gás em solução. Assim obtendo:

Vb

[∂

∂x

(kkroRs

µoBo

∂Φ

∂x

)+

∂y

(kkroRs

µoBo

∂Φ

∂y

)+

∂z

(kkroRs

µoBo

∂Φ

∂z

)+

∂x

(kkrgµgBg

∂Φ

∂x

)+

∂y

(kkrgµgBg

∂Φ

∂y

)+

∂z

(kkrgµgBg

∂Φ

∂z

)]− (qg + qoRs)

=∂

∂t

(SoRsVbφ

Bo

+SgVbφ

Bg

)(3.11)

3.2 Influência da Pressão Capilar

A fim de se levar em conta os efeitos gravitacionais e de pressão capilar, Koederitz (2005)sugere um incremento ao potencial de fluido, inserindo na equação 2.33, termos relativos àpressão capilar.

Page 31: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 3. Desenvolvimento Teórico 30

Para o óleo temos então:

Φo = Po − γoD (3.12)

De forma análoga, temos para a água:

Φw = Pw − γwD (3.13)

Aplicando-se a equação 2.18, temos portanto:

Φw = Po − Pcow − γwD (3.14)

Utilizando-se dos mesmos princípios, temos para o gás:

Φg = Po + Pcgo − γwD (3.15)

Substituindo as equações 3.12, 3.14 e 3.15 nas equações 3.9, 3.10 e 3.11, respectivamente,obtemos

Vb

[∂

∂x

(kkroµoBo

∂ (Po − γoD)

∂x

)+

∂y

(kkroµoBo

∂ (Po − γoD)

∂y

)+

∂z

(kkroµoBo

∂ (Po − γoD)

∂z

)]− qo =

∂t

(SoVbφ

Bo

), (3.16)

Para o óleo,

Vb

[∂

∂x

(kkrwµwBw

∂ (Pw − γwD)

∂x

)+

∂y

(kkrwµwBw

∂ (Pw − γwD)

∂y

)+

∂z

(kkrwµwBw

∂ (Pw − γwD)

∂z

)]− qw =

∂t

(SwVbφ

Bw

), (3.17)

Para a água, e

Vb

[∂

∂x

(kkroRs

µoBo

∂ (Po − γoD)

∂x

)+∂

∂y

(kkroRs

µoBo

∂ (Po − γoD)

∂y

)+∂

∂z

(kkroRs

µoBo

∂ (Po − γoD)

∂z

)+

∂x

(kkrgµgBg

∂ (Po + Pcgo − γwD)

∂x

)+

∂y

(kkrgµgBg

∂ (Po + Pcgo − γwD)

∂y

)+

∂z

(kkrgµgBg

∂ (Po + Pcgo − γwD)

∂z

)]− (qg + qoRs) =

∂t

(SoRsVbφ

Bo

+SgVbφ

Bg

), (3.18)

Para o gás.

Page 32: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 3. Desenvolvimento Teórico 31

3.3 Discretizando as Equações

O modelo encontrado, entretanto, assume condições continuas dentro do reservatório e,consequentemente, existem infinitas soluções, para infinitos pontos diferentes no reservatório.Desta maneira, o sistema de equações seria complexo demais para ser calculado através dequalquer método. Faz-se, portanto, necessário a discretização e a consequente adaptação paraum sistema representado por blocos homogêneos, usualmente referidos como "gridblocks".

Durante o processo de simulação, o usuário assume que o reservatório pode ser divididoem um número n de blocos. Estes não necessariamente necessitam ter o mesmo formato oudimensões, porém devem ser pequenos o suficiente para que sejam verdadeiras consideraçõescomo propriedades constantes dentro de cada bloco e, ao mesmo tempo, grandes o suficiente parareduzir o número de cálculos. É válido lembrar que, para cada bloco, em um sistema trifásico,são atribuídas 3 equações, uma para cada fase, além das equações respectivas às saturações, queequilibram o sistema. Um sistema possui, então, para n gridblocks, um total de 6n equações.

Para os fins deste estudo, a sssunção de que cada bloco possui formato de paralelepípedo,com dimensões semelhantes ∆x, ∆y e ∆z e posicionam-se como apresentado na Figura 3.7.Este modelo, porém, assume a individualidade de cada bloco que, apesar de compartilhar suas di-mensões com seus blocos irmãos, possuem propriedades diferentes e, portanto, comportamentosdiferentes no decorrer do estudo.

Figura 3.7 – Organização dos blocos no modelo estudado

Fonte: Koederitz (2005)

Page 33: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 3. Desenvolvimento Teórico 32

Para simplificar os cálculos, pode-se definir um termo M , chamado de Mobilidade edefinido por:

M =k.krµ.B

(3.19)

E, utilizando-se da aproximação da diferencial parcial como diferença finita

∂A

∂x≈ A2 − A1

x2 − x1

(3.20)

obtendo então, para o óleo:

Vb

(Mo

∂(Po−γoD)∂x

)i+ 1

2,j,k−(Mo

∂(Po−γoD)∂x

)i− 1

2,j,k

∆x+

(Mo

∂(Po−γoD)∂y

)i,j+ 1

2,k−(Mo

∂(Po−γoD)∂y

)i,j− 1

2,k

∆y+(

Mo∂(Po−γoD)

∂z

)i,j,k+ 1

2

−(Mo

∂(Po−γoD)∂z

)i,j,k− 1

2

∆z

− qo =∂

∂t

(SoVbφ

Bo

)(3.21)

Utilizando-se da mesma aproximação para o tempo:

Vb

(Mo

∂(Po−γoD)∂x

)i+ 1

2,j,k−(Mo

∂(Po−γoD)∂x

)i− 1

2,j,k

∆x+

(Mo

∂(Po−γoD)∂y

)i,j+ 1

2,k−(Mo

∂(Po−γoD)∂y

)i,j− 1

2,k

∆y+(

Mo∂(Po−γoD)

∂z

)i,j,k+ 1

2

−(Mo

∂(Po−γoD)∂z

)i,j,k− 1

2

∆z

− qo =

(SoVbφBo

)t+∆t−(SoVbφBo

)t

∆t(3.22)

Discretizando ainda os termos de diferencial de potencial, chega-se a:

Page 34: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 3. Desenvolvimento Teórico 33

Vb∆x·

[Mo

i+12 ,j,k

((Poi+1,j,k

− γoDi+1,j,k

)−(Poi,j,k − γoDi,j,k

)∆x

)−

Moi− 1

2 ,j,k

((Poi,j,k − γoDi,j,k

)−(Poi−1,j,k

− γoDi−1,j,k

)∆x

)]+

Vb∆y·

[Mo

i,j+12 ,k

((Poi,j+1,k

− γoDi,j+1,k

)−(Poi,j,k − γoDi,j,k

)∆y

)−

Moi,j− 1

2 ,k

((Poi,j,k − γoDi,j,k

)−(Poi,j−1,k

− γoDi,j−1,k

)∆y

)]+

Vb∆z·

[Mo

i,j,k+12

((Poi,j,k+1

− γoDi,j,k+1

)−(Poi,j,k − γoDi,j,k

)∆z

)−

Moi,j,k− 1

2

((Poi,j,k − γoDi,j,k

)−(Poi,j,k−1

− γoDi,j,k−1

)∆z

)]−

qo =

(SoVbφBo

)t+∆t−(SoVbφBo

)t

∆t(3.23)

Retornando o volume total às suas condições originais Vb = ∆x∆y∆z e simplificandoos termos em que os mesmos estão presentes, obtém-se:

∆y∆z

∆x·[Mo

i+12 ,j,k

((Poi+1,j,k

− γoDi+1,j,k

)−(Poi,j,k − γoDi,j,k

))−

Moi− 1

2 ,j,k

((Poi,j,k − γoDi,j,k

)−(Poi−1,j,k

− γoDi−1,j,k

))]+

∆x∆z

∆y·[Mo

i,j+12 ,k

((Poi,j+1,k

− γoDi,j+1,k

)−(Poi,j,k − γoDi,j,k

))−

Moi,j− 1

2 ,k

((Poi,j,k − γoDi,j,k

)−(Poi,j−1,k

− γoDi,j−1,k

))]+

∆x∆y

∆z·[Mo

i,j,k+12

((Poi,j,k+1

− γoDi,j,k+1

)−(Poi,j,k − γoDi,j,k

))−

Moi,j,k− 1

2

((Poi,j,k − γoDi,j,k

)−(Poi,j,k−1

− γoDi,j,k−1

))]−

qo =

(SoVbφBo

)t+∆t−(SoVbφBo

)t

∆t(3.24)

De forma análoga, as mesmas operações podem ser realizadas nas equações 3.17 e 3.18,que modelam a água e o gás, respectivamente.

O termo Moi+1

2 ,j,k, entretanto, assume uma permeabilidade média entre os centros dos

blocos. Rosa (2006) sugere, em seu trabalho, que para este propósito, seja utilizado o método da

Page 35: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 3. Desenvolvimento Teórico 34

média harmônica ponderada, ou seja,

kavg =∆xi∆xi+1

∆xiki

+ ∆xi+1

ki+1

(3.25)

3.4 Representação dos Poços

Ainda que o modelo contemple a movimentação dos fluidos em um reservatório demaneira completa, principal objetivo de uma simulação é "imitar"os efeitos gerados pelasdiversas perturbações em um reservatório. Estas, por sua vez, são geradas através de poços,sejam eles de injeção ou de produção. Modelar os poços, portanto, se mostra uma tarefa essencialpara o desenvolvimento de um modelo eficiente.

Um dos modelos mais simples, porém mais eficientes, é o modelo de Peaceman. Estemodelo parte da equação de Darcy e considera o fluido saindo da rocha como um todo, nãolevando em conta, por exemplo, mudanças de estado físico decorrente da alteração brusca depressão entre a rocha-reservatório e o poço. Propriedades essenciais ao modelo, como o fluxosimultâneo de várias fases com propriedades diferentes e adaptação ao modelo de grid-blocks

são facilmente adaptáveis, uma vez que a equação de Darcy pode ser facilmente manipulada.

O modelo inicialmente proposto por Peaceman (1978) é a proposição de Schwabe eBrand:

q =2πkh

µ

Pe − Pwfln(rerw

)+ s

(3.26)

Onde Pe representa a pressão média volumétrica não só do bloco em estudo, mas tambémdos blocos ao entorno deste e s representa o fator de skin do poço, isto é, representa o dano (oumelhoramento) decorrente dos processos de perfuração e completação.

Peaceman (1978) então assume que as dimensões do bloco são muito superiores ao raiodo poço (re >>> rw), obtendo:

Pe ≈ Pi,j,k (3.27)

Ertekin (2001) continua estes estudos e encontra, para fluxo em estado estacionário, àseguinte equação:

qsc =2πkh (Pi,j,k − Pwf )

µB[ln(rerw

)− 0.5 + s

] (3.28)

Page 36: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 3. Desenvolvimento Teórico 35

Para condições anisotrópicas, Peaceman (1978) ainda define:

re ≈ req = 0, 28 ·

√[√kykx

(∆x)2]

+[√

kxky

(∆y)2]

4

√kyKx

+ 4

√kxKy

(3.29)

E, consequentemente, para condições isotrópicas:

re ≈ req = 0, 14

√(∆x)2 + (∆y)2 (3.30)

A adequação para modelo multifásico é feita pela simples inserção do termo de permea-bilidade relativa, multiplicando o numerador do lado esquerdo da equação, resultando em, para oóleo:

qo =2πkrokh

(Poi,j,k − Pwf

)µoBo

[ln(rerw

)− 0.5 + s

] . (3.31)

Page 37: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

36

4 Funcionamento do Simulador

Uma vez deduzidos todos os modelos necessários, foi iniciada a montagem do simulador.Este, baseado em FORTRAN 90, utiliza em seu código apenas componentes de uso livre, nãonecessitando de licenças adicionais nem citações. A própria linguagem FORTRAN possuilicença de uso livre e, sendo um dos códigos mais eficientes para cálculos matemáticos simples,aliado com um código de fácil aprendizado devido a sua semântica simples, foi escolhida comolinguagem de uso neste trabalho.

4.1 A Linguagem FORTRAN

Definida como uma linguagem de nível alto, FORTRAN tem seu nome graças a contraçãode "FORmula TRANslated"(inglês para fórmula traduzida). Muito utilizada para processosextensivos de cálculo, essa linguagem teve inicio nos anos 1950 e se dedicava principalmente acientistas e engenheiros.

Em suas primeiras versões, era inserida através de cartões perfurados, Hoje em dia,porém, por ser uma linguagem versátil e bem adequada para operações matemáticas, existemvários compiladores e infinitas IDE’s. Por esta mesma razão, esta linguagem foi, por muitotempo, a preferida pelas universidades para pesquisadores e engenheiros.

Hoje em dia no Brasil, a maioria das instituições federais ainda utiliza o FORTRANpara os cursos de engenharias Química e de Petróleo. Outros cursos, entretanto, substituem essalinguagem por C, Pascal, Java e, recentemente, Phyton.

Semântica Básica da Linguagem

A linguagem FORTRAN 90, versão utilizada neste estudo, surgiu como uma tentativa demodernizar a antiga versão 77, que, apesar de já incluir várias estruturas lógicas, apresentava-se obsoleta em relação às outras linguagens. A modernização foi bem aceita, uma vez queambas utilizavam de um modelo de sintaxe parecido, porém com grandes diferenças quanto aodesempenho. Dentre a semântica básica desta linguagem, pode-se destacar:

1 O FORTRAN 90, ao contrário do 77, não possui uma regra explicita quanto ascolunas (alguns compiladores mais arcaicos, no entanto, necessitam de flags para queesta regra seja quebrada).

2 O ponto de exclamação (!) define o início e um comentário e instrui o compilador aignorar todo o conteúdo desta linha após o mesmo.

Page 38: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 4. Funcionamento do Simulador 37

3 Ainda que a linguagem seja compatível com comandos em letras minúsculas, aboa prática e a praticidade na leitura sugerem que todos os comandos estejam nacapitalização maiúscula. O mesmo ocorre com a identação, porém devido a incompa-tibilidade de alguns compiladores mais antigos, a boa prática recomenda também sóutilizar os 8 primeiros caracteres de cada linha para os comandos, sendo utilizadosna maioria das vezes apenas para referências.

4.2 Mecanismo de Resolução

As equações desenvolvidas durante os capítulos 2 e 3 podem ser reunidas, formando umsistema de, para n gridblock, 6× n equações. Uma maneira de solucionar esse tipo de sistema, éencará-lo como uma multiplicação de matrizes, no formato A× x− b = 0, onde A é uma matrizquadrada de ordem 6n, que recebe os termos quem multiplicam as pressões e saturações nasequações, x é o vetor cujo valor será manipulado durante a solução, contendo os valores dasvariáveis e b é um vetor coluna que recebe todas as informações independentes das variáveisrepresentadas em x.

Uma vez que sistemas como esse podem alcançar números incrivelmente altos de equa-ções e soluções diretas iriam exigir muito cálculo computacional, com o incidente risco de nãoconvergir, a solução adotada, graça a sua simplicidade e eficiência, é o Método de Newton-Raphson. Esse método iterativo baseia-se na utilização da iteração anterior, somado o resquício(ou diferença) dividido pela derivada das equações que compõe o sistema.

O Método de Newton-Raphson é, então, representado por:

xn+1 = xn −f (xn)

f ′ (xn)(4.1)

4.3 Funcionamento Básico do Programa

O programa encontra-se no formato de sub-rotina, a fim de melhor se adequar auma estrutura modular, de fácil adaptação para diferentes situações. Esta, com o nome de"Newton Solver"utiliza como entrada informações como estado anterior do reservatório(Representadopela matriz R), informações relativas aos poços (WELLS), informações relativas ao passo detempo (tstep), dimensões dos blocos (GB), número total de blocos em cada direção (x,y e z),número total de equações do sistema (n), informações sobre o comportamento das bordas doreservatório (BOUNDARY), informações sobre a rocha-reservatório (ROCK), informações sobreo fluido a ser estudado pré processadas de acordo com as condições anteriores (PVT), Informa-ções sobre o fluido estáticas ao tempo (SPVT) e configurações relativas à precisão e ao limitede iterações (SETUP). Suas informações de saída constituem no novo estado do reservatório(sobrescrito sobre a matriz R) e informações quantitativas como óleo, água e gás "in-place".

Page 39: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 4. Funcionamento do Simulador 38

Para construir as matrizes utilizadas para a resolução, o programa segue um algoritmoespecífico, onde ele trata cada fase por sua vez, compondo as matrizes linha por linha de acordocom as equações. As equações são inseridas no modelo na seguinte ordem:

1o - Equações relativas ao fluxo do óleo na fase líquida

2o - Equações relativas ao fluxo de água

3o - Equações relativas ao fluxo de gás livre e gás em solução

4o - Equações relativas ao correto somatório das saturações, certificando-se que as mesmasatinjam o todo da célula

5o - Equações relativas à pressão capilar óleo-água

6o - Equações relativas à pressão capilar gás-óleo

O algoritmo utilizado segue um padrão onde, através de uma sequência de caracteres,reconhece o tipo de equação a ser tratado. Uma vez reconhecido, ele segue preenchendo as linhascom as informações tridimensionais das células, mantendo sempre a ordem de preenchimentoseguindo primeiramente o eixo x, após o y e, finalmente o z. Uma vez atingido o final de umeixo, o programa da um passo no eixo seguinte e reinicia o anterior, fazendo assim com quetodas as células sejam cobertas. Após o término de todos os eixos, o programa se encarrega detrocar a variável que armazena a sessão a ser trabalhada.

Devido a esta organização, é possível garantir que a matrizA gerada não possuirá determi-nante nulo e, portanto, o sistema possui uma solução única, além de transformar com excelênciauma informação tridimensional em uma informação bidimensional facilmente mapeável comgarantias de que nenhum dado será perdido no processo.

Uma vez montada a matriz A e o vetor b, o programa calcula a função derivada e, atravésdo Método de Newton-Raphson, entra em loop até que o critério de parada seja atingido. Ocritério de parada geralmente é representado por um fator aceitável de diferença entre duasiterações consecutivas ou um número limite de iterações que evita uma eventual sobrecarga dosistema.

Atingido esse critério de parada, o programa interpreta as informações e as gera noformado de saída necessário, gerando um vetor de resultado com 4 dimensões, sendo a primeiraa informação armazenada, e as outras três as coordenadas a que se referem. O programa calculatambém, ao final de todos os cálculos deste espaço de tempo, as informações qualitativas e asexporta em seu respectivo vetor.

Ao final so cálculo, a subrotina se encerra e retorna ao programa principal criado pelousuário, que pode armazenar as informações e iniciar um novo passo de tempo ou encerrar oscálculos e iniciar sua interpretação.

O formato de saída gerado pelo programa principal é uma sequência de pontos, ondeo programa informa a posição x, y, z e, logo após, as pressões e saturações decorrentes do

Page 40: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 4. Funcionamento do Simulador 39

cálculo. O programa ainda exibe como saída um segundo arquivo, representando, em sequência,as condições médias de pressão do reservatório, a quantidade de óleo e gás ainda armazenados ea vazão total dos poços, como representado na nas figuras 4.8 e 4.9.

Figura 4.8 – Modelo de output contendo informações de cada bloco do reservatório

Figura 4.9 – Modelo de output contendo informações do reservatório como um todo

As informações exportadas sobre o reservatório podem, com auxilio do Microsoft Excel,serem transformadas em mapas, como por exemplo as figuras 4.10 e 4.11, que indicam mapas depressão e saturação ao redor de um poço encontrado nas coordenadas x = 5, y = 5, percorrendotodos os blocos na direção z.

Page 41: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 4. Funcionamento do Simulador 40

Figura 4.10 – Interpretação das informações extraídas do programa. Pressão de óleo.

Page 42: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 4. Funcionamento do Simulador 41

Figura 4.11 – Interpretação das informações extraídas do programa. Saturação de óleo.

Page 43: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 4. Funcionamento do Simulador 42

Mais detalhes podem ser encontrados no Apêndice A, que apresenta o código emFORTRAN utilizado na confecção do programa.

4.4 Estudos de Caso

A fins de teste da capacidade e das limitações do programa, foram executados estudos decaso sobre situações de potencial uso do programa, incluindo:

4.4.1 Caso 1 - Reservatório convencional

Utilizando-se os inputs presentes no apêndice B, chegou-se ao resultado apresentado nasfiguras 4.12 e 4.13, mostrando que o simulador resolveu o problema com propriedade. A quedade pressão no entorno do bloco de posição 5, 5 é devida a presença de poço produtor na região.

Figura 4.12 – Interpretação das informações extraídas do programa. Pressão de óleo. Reservató-rio convencional.

Page 44: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 4. Funcionamento do Simulador 43

Figura 4.13 – Interpretação das informações extraídas do programa. Saturação de óleo. Reserva-tório convencional.

Page 45: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 4. Funcionamento do Simulador 44

4.4.2 Caso 2 - Reservatório com ausência de capa de gás

O caso 2, em contrapartida, apresentou resultados inconclusivos. Acredita-se que aprincipal razão seja a rápida variação de pressão causada pela ausência do gás. Uma vez queo método utilizado é o método implícito de cálculo, o coeficiente de expansão do óleo não semostra suficiente, gerando distúrbios e assim resultados irreais, como pode ser conferido nasfiguras 4.14 e 4.15.

Figura 4.14 – Interpretação das informações extraídas do programa. Pressão de óleo. Reservató-rio com ausência de capa de gás.

4.4.3 Caso 3 - Reservatório com quantidade reduzida de água de

formação

De maneira análoga ao caso 2, o caso 3 mostrou-se também inconclusivo, demonstrando anecessidade do método por todos os fluidos modelados. Valores próximos a zero para a saturação

Page 46: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 4. Funcionamento do Simulador 45

Figura 4.15 – Interpretação das informações extraídas do programa. Saturação de óleo. Reserva-tório com ausência de capa de gás.

Page 47: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 4. Funcionamento do Simulador 46

geram, no método implícito, situações onde erros de arredondamento, problema comum ao setratar de métodos numéricos, se tornem relevantes e prejudiquem o cálculo do resultado. Osresultados encontram-se nas figuras 4.16 e 4.17.

Figura 4.16 – Interpretação das informações extraídas do programa. Pressão de óleo. Reservató-rio com quantidade reduzida de água de formação.

Page 48: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Capítulo 4. Funcionamento do Simulador 47

Figura 4.17 – Interpretação das informações extraídas do programa. Saturação de óleo. Reserva-tório com quantidade reduzida de água de formação.

Page 49: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

48

5 Conclusão e Sugestões paraTrabalhos Futuros

A simulação de reservatórios é uma técnica em constante desenvolvimento que, a cadadia, se torna mais importante seu conhecimento. A revolução digital faz com que computadoresconsigam executar modelos cada vez mais complexos e confiáveis em tempo economicamenteviáveis. Em contrapartida, essa disponibilidade de softwares, juntamente ao patenteamento demetodologias utilizado por várias empresas, fazem com que estes métodos caiam no esqueci-mento.

Com o intuito de reunir estas informações em um formato consolidado e didático,este trabalho apresentou o estudo e o desenvolvimento de uma metodologia de previsão decomportamento de um reservatório trifásico através da modelagem Black Oil, utilizando apenaslinguagens e códigos abertos ao público. Dentre todas as características do código implementado,pode-se destacar sua facilidade em ser transformado. Uma vez que todas suas entradas sãomanipuláveis e suscetíveis a implantação de modelos diferentes. Sua resolução pelo método deNewton-Raphson, apesar de demorada, apresenta convergência em condições mais amenas.

A metodologia adotada para a reorganização das informações provou-se efetiva e capaz delidar com o desafio proposto pelo programa. Posteriores revisões das deduções e discretizaçõesconfirmaram a eficiência destas equações na representação da realidade quando atendidascondições amenas de reservatório, estando limitadas a resolução do estudo, que não pode seralta demais a fim de comprometer a performance, nem baixa demais a ponto de comprometer aeficiência e a presença de todas as fases modeladas.

Resta ainda, porém, estudos de como melhor lidar com gerenciamento de memóriadurante a criação das matrizes solução, assim como a pesquisa por métodos de solução maiseficientes, como método de gradiente conjugado, ORTHOMIN, entre outros. Sugere-se tambémestudos comparativos entre resultados obtidos através deste programa e simuladores comerciais,a fim de se realizar ajustes, assim como a criação de módulos adicionais para o programa,adicionando novas metodologias para o cálculo de propriedades.

Page 50: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

49

Referências

AHMED, T. Reservoir engineering handbook. Amsterdam Boston: Gulf Professional Pub, 2010.ISBN 978-1-85617-803-7. Citado na página 14.

AHMED, T. Equations of State and PVT Analysis, Second Edition: Applications for ImprovedReservoir Modeling. Estados Unidos da América: Gulf Professional Publishing, 2016. ISBN978-0-12801-570-5. Citado na página 19.

BRADLEY, H. B. Petroleum Engineering Handbook. Estados Unidos da América: Society ofPetroleum, 1987. ISBN 978-1-55563-010-3. Citado na página 15.

ERTEKIN, T. Basic Applied Reservoir Simulation. Estados Unidos da América: Society ofPetroleum Engineers, 2001. ISBN 978-1-55563-089-8. Citado 8 vezes nas páginas 13, 14, 18,20, 21, 22, 25 e 34.

KATZ, D. L. V. Handbook of natural gas engineering. New York: McGraw-Hill, 1959. ISBN978-0-07033-384-0. Citado na página 16.

KOEDERITZ, L. F. Lecture Notes On Applied Reservoir Simulation. University of Missouri- Rolla, Estados Unidos da América: World Scientific Publishing Company, 2005. ISBN978-9-81256-198-6. Citado 3 vezes nas páginas 28, 29 e 31.

MCCAIN, W. D. The properties of petroleum fluids. Tulsa - OK, Estados Unidos da América:PennWell Books, 1990. ISBN 978-0-87814-335-1. Citado na página 15.

PEACEMAN, D. Interpretation of well-block pressures in numerical reservoir simula-tion(includes associated paper 6988 ). Society of Petroleum Engineers Journal, Societyof Petroleum Engineers (SPE), v. 18, n. 03, p. 183–194, jun 1978. Disponível em:<https://doi.org/10.2118/6893-pa>. Citado 2 vezes nas páginas 34 e 35.

ROSA, A. J. Engenharia de Reservatório de Petróleo. Rio de Janeiro: Interciência, 2006. ISBN978-8-57193-135-6. Citado 7 vezes nas páginas 12, 14, 15, 17, 19, 20 e 33.

TERRY, R. E.; ROGERS, J. B. Applied Petroleum Reservoir Engineering. Estados Unidos daAmérica: Prentice Hall, 2014. ISBN 978-0-13315-558-7. Citado na página 15.

WELTY, J. et al. Fundamentals of Momentum, Heat and Mass Transfer. Hoboken - NJ, EstadosUnidos da América: Wiley, 2007. ISBN 978-0-47012-868-8. Citado na página 26.

Page 51: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

Apêndices

Page 52: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

51

APÊNDICE A – Código Desenvolvido

Nas páginas a seguir, encontra-se todo o código desenvolvido durante o estudo destetrabalho. Existe no início uma seção de comentários em inglês que explicam o conteúdo de cadavariável, fazendo, assim, um mapeamento detalhado da localização de cada informação.

1

2 SUBROUTINE Newton_Solver(R,WELLS,tstep,GB,x,y,z,n,BOUNDARY,ROCK

,PVT,SPVT,WRES,RRES,SETUP)

3 INTEGER x, y, z, i, j, k, l, m, n, counter,ipvt(n),info

4 REAL R(6,x,y,z),GUESS(n),GUESSold(n), WELLS(x,y,z,7), tstep, GB(3),

ROCK(3,x,y,z), PVT(10,x,y,z), SPVT(4), WRES(3,x,y,z), RRES(4), B(n

), Pi, A(n,n), BOUNDARY(6), SETUP(2),work(n), det(2), RT(n), dA(n,

n)

5 CHARACTER(3) var

6 ! This subroutine organize and solve the system for a determined

timestep.

7 !

8 !

#########################################################################

9 ! # ATTENTION:

#

10 ! # FOR THIS SUBROUTINE BE ABLE TO RUN, YOU NEED TO ADD THE

#

11 ! # -ffixed-line-length-0 AND -ffree-line-length-0 FLAGS TO THE

COMPILLER #

12 ! # ( GFORTRAN & GCC )

#

13 ! # STILL NEED SOME TESTING, BUT I THINK INTEL FORTRAN DOESN’T

NEED FLAGS #

14 ! # TO COMPILE THIS SUBROUTINE IF IT’S ON F90 FILE FORMAT

#

15 !

#########################################################################

16 !

17 ! In order to solve the system, the computer uses Newton method with

a maximum number of iterations.

18 ! INPUT/OUTPUT VARIABLES

Page 53: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 52

19 ! *R is a 4 dimensional matrix that stores data from previous

runs, like pressures and saturations. This variable will store the

new data. It has the following structure: R(data,X_position,

Y_position,Z_position). The data is organized in: 1 - Oil Pressure

; 2 - Water Pressure; 3 - Gas Pressure; 4 - Oil Saturation; 5 -

Water Saturation; 6 - Gas Saturation

20 ! *WELLS is a 4 dimensional that stores the data from producing

and injecting wells. It has the following structure: WELLS(

X_position,Y_position,Z_position,stored_data) Stored data is

organized in: 1 - Number of the Well(0 for no well); 2 - Type of

well (0 for productor, 1 for water injector, 2 for gas injector);

3 - Type of Constraint (0 for Fluid Rate, 1 for Pressure); 4 -

Constraint as determined on 3; 5 - Pwf, 6 - Well diameter; 7 -

Skin Effect

21 ! *tstep defines the size of the timestep to be calculated. The

distance in time between the information that will be stored.

22 ! *GB stores information about the dimensions of each gridblock

of the model. It’s organized as a single vector with the following

structure: GB(1) stores the X dimension of the gridblocks; GB(2)

stores the Y dimension of the gridblocks; GB(3)stores the Z

dimension of the gridblocks.

23 ! *BOUNDARY is a size 6 vector that stores the boundary

conditions for each of the reservoir boundaries. (0 for no flow,

otherwise it stores the flow pressure)

24 ! *ROCK is a 4 dimensional matrix that stores information about

Porosity and Permeability. It has the following structure: ROCK(

data,X_position,Y_position,Z_position). The data is organized in:

1 - Vertical Permeability; 2 - Horizontal Permeability; 3 -

Porosity

25 ! *PVT stores data that relates to the fluid. It has the

following structure: PVT(data,X_position,Y_position,Z_position).

The data is organized in: 1 -Oil Viscosity; 2 -Oil FVF; 3 - Kro; 4

- Pcow; 5 - Pcog; 6 - Rso; 7 - Gas FVF; 8 - Gas Viscosity; 9 -

Krw; 10 - Krg

26 ! *SPVT stores PVT data that doesn’t change with time or position

. It’s a one dimension vector with the following structure: 1 -

Water Brine density; 2 - Gas specific gravity; 3 - Oil Sp.Gr.; 4 -

Reservoir Temperature.

27 ! *WRES store the output data, like the production or the

pressure on each well.

28 ! *RRES store the output data of the reservoir, like the average

pressure, the FOIP, the FGIP and the FWIP

Page 54: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 53

29 ! *SETUP stores the parameters for the Newton solver: 1 - Maximum

number of iterations before break the timestep; 2 - Decimal order

of precision for the Newton solver.

30 i=1

31 j=1

32 k=1

33

34 Pi= 3.1415265358979323846264338327950288419716939937510

35 A=0

36 B=0

37 var=’OIL’

38 DO l=1,n,1 !this section creates the A matrix

39 IF (var.eq.’OIL’) THEN !Generates the section of the matrix that

relates with oil equations.

40 IF (i.eq.1) THEN

41 A(l,l+1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i+1,j,k)))*GB(2)*GB

(3)*PVT(3,i,j,k)/(GB(1)*PVT(2,i,j,k)*PVT(1,i,j,k))

42 IF (BOUNDARY(1).ne.0) THEN

43 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*PVT(3,i,j,k)/(GB(1)

*PVT(2,i,j,k)*PVT(1,i,j,k))*BOUNDARY(1)

44 A(l,l) = A(l,l)-0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*PVT(3,i,j,k)/(GB

(1)*PVT(2,i,j,k)*PVT(1,i,j,k))

45 END IF

46 A(l,l) = A(l,l)-A(l,l+1)

47 ELSE IF (i.eq.x) THEN

48 A(l,l-1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i-1,j,k)))*GB(2)*GB

(3)*PVT(3,i,j,k)/(GB(1)*PVT(2,i,j,k)*PVT(1,i,j,k))

49 IF (BOUNDARY(2).ne.0) THEN

50 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*PVT(3,i,j,k)/(GB(1)

*PVT(2,i,j,k)*PVT(1,i,j,k))*BOUNDARY(2)

51 A(l,l) = A(l,l)-0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*PVT(3,i,j,k)/(GB

(1)*PVT(2,i,j,k)*PVT(1,i,j,k))

52 END IF

53 A(l,l) = A(l,l)-A(l,l-1)

54 ELSE

55 A(l,l+1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i+1,j,k)))*GB(2)*GB

(3)*PVT(3,i,j,k)/(GB(1)*PVT(2,i,j,k)*PVT(1,i,j,k))

56 A(l,l-1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i-1,j,k)))*GB(2)*GB

(3)*PVT(3,i,j,k)/(GB(1)*PVT(2,i,j,k)*PVT(1,i,j,k))

57 A(l,l) = A(l,l)-A(l,l-1)-A(l,l+1)

58 END IF

59 IF (j.eq.1) THEN

Page 55: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 54

60 A(l,l+x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j+1,k)))*GB(1)*GB

(3)*PVT(3,i,j,k)/(GB(2)*PVT(2,i,j,k)*PVT(1,i,j,k))

61 IF (BOUNDARY(3).ne.0) THEN

62 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*PVT(3,i,j,k)/(GB(2)

*PVT(2,i,j,k)*PVT(1,i,j,k))*BOUNDARY(3)

63 A(l,l) = A(l,l)-0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*PVT(3,i,j,k)/(GB

(2)*PVT(2,i,j,k)*PVT(1,i,j,k))

64 END IF

65 A(l,l) = A(l,l)-A(l,l+x)

66 ELSE IF (j.eq.y) THEN

67 A(l,l-x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j-1,k)))*GB(1)*GB

(3)*PVT(3,i,j,k)/(GB(2)*PVT(2,i,j,k)*PVT(1,i,j,k))

68 IF (BOUNDARY(4).ne.0) THEN

69 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*PVT(3,i,j,k)/(GB(2)

*PVT(2,i,j,k)*PVT(1,i,j,k))*BOUNDARY(4)

70 A(l,l) = A(l,l)-0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*PVT(3,i,j,k)/(GB

(2)*PVT(2,i,j,k)*PVT(1,i,j,k))

71 END IF

72 A(l,l) = A(l,l)-A(l,l-x)

73 ELSE

74 A(l,l+x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j+1,k)))*GB(1)*GB

(3)*PVT(3,i,j,k)/(GB(2)*PVT(2,i,j,k)*PVT(1,i,j,k))

75 A(l,l-x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j-1,k)))*GB(1)*GB

(3)*PVT(3,i,j,k)/(GB(2)*PVT(2,i,j,k)*PVT(1,i,j,k))

76 A(l,l) = A(l,l)-A(l,l-x)-A(l,l+x)

77 END IF

78 IF (k.eq.1) THEN

79 A(l,l+x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1)))*GB(2)*

GB(1)*PVT(3,i,j,k)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))

80 B(l) = B(l) + 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1)))*GB(2)*

GB(1)*PVT(3,i,j,k)*SPVT(3)*GB(3)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))

81 IF (BOUNDARY(5).ne.0) THEN

82 B(l) = B(l) - 0.006328*ROCK(1,i,j,k)*GB(2)*GB(1)*PVT(3,i,j,k)/(GB(3)

*PVT(2,i,j,k)*PVT(1,i,j,k))*BOUNDARY(5)

83 A(l,l) = A(l,l)-0.006328*ROCK(1,i,j,k)*GB(2)*GB(1)*PVT(3,i,j,k)/(GB

(3)*PVT(2,i,j,k)*PVT(1,i,j,k))

84 END IF

85 A(l,l) = A(l,l)-A(l,l+x*y)

86 ELSE IF (k.eq.z) THEN

87 A(l,l-x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k-1)))*GB(2)*

GB(1)*PVT(3,i,j,k)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))

Page 56: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 55

88 B(l) = B(l) - 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k-1)))*GB(2)*

GB(1)*PVT(3,i,j,k)*SPVT(3)*GB(3)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))

89 IF (BOUNDARY(6).ne.0) THEN

90 B(l) = B(l) - 0.006328*ROCK(1,i,j,k)*GB(2)*GB(3)*PVT(3,i,j,k)/(GB(1)

*PVT(2,i,j,k)*PVT(1,i,j,k))*BOUNDARY(6)

91 A(l,l) = A(l,l)-0.006328*ROCK(1,i,j,k)*GB(2)*GB(3)*PVT(3,i,j,k)/(GB

(1)*PVT(2,i,j,k)*PVT(1,i,j,k))

92 END IF

93 A(l,l) = A(l,l)-A(l,l-x*y)

94 ELSE

95 A(l,l+x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1)))*GB(2)*

GB(1)*PVT(3,i,j,k)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))

96 A(l,l-x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k-1)))*GB(2)*

GB(1)*PVT(3,i,j,k)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))

97 B(l) = B(l) + 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1)))*GB(2)*

GB(1)*PVT(3,i,j,k)*SPVT(3)*GB(3)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))

- 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k-1)))*GB(2)*GB(1)*

PVT(3,i,j,k)*SPVT(3)*GB(3)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))

98 A(l,l) = A(l,l)-A(l,l-x*y)-A(l,l+x*y)

99 END IF

100 IF (WELLS(i,j,k,1).ne.0) THEN

101 IF (WELLS(i,j,k,2).eq.0) THEN

102 B(l) = B(l)+0.00708*ROCK(2,i,j,k)*PVT(3,i,j,k)*GB(3)*(R(1,i,j,k)/2-

WELLS(i,j,k,5))/(PVT(2,i,j,k)*PVT(1,i,j,k)*(LOG(SQRT(GB(1)*GB(2)/

Pi)/WELLS(i,j,k,6))-0.75+WELLS(i,j,k,7)))

103 A(l,l) = A(l,l)-0.00708*ROCK(2,i,j,k)*PVT(3,i,j,k)*GB(3)/(PVT(2,i,j,k

)*PVT(1,i,j,k)*(LOG(SQRT(GB(1)*GB(2)/Pi)/WELLS(i,j,k,6))-0.75+

WELLS(i,j,k,7)))

104 END IF

105 END IF

106 A(l,l+3*x*y*z) = GB(1)*GB(2)*GB(3)/tstep*ROCK(3,i,j,k)/PVT(2,i,j,k)

107 B(l) = B(l) + GB(1)*GB(2)*GB(3)/tstep*ROCK(3,i,j,k)/PVT(2,i,j,k)*R(4,

i,j,k)

108 i=i+1

109 IF (i.gt.x) THEN

110 i=1

111 j=j+1

112 END IF

113 IF (j.gt.y) THEN

114 j=1

115 k=k+1

116 END IF

Page 57: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 56

117 IF (k.gt.z) THEN

118 k=1

119 var=’WAT’

120 END IF

121 ELSE IF (var.eq.’WAT’) THEN !Generates the section of the matrix that

relates with water equations.

122 IF (i.eq.1) THEN

123 A(l,l+1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i+1,j,k)))*GB(2)*GB

(3)*PVT(9,i,j,k)/(GB(1))

124 IF (BOUNDARY(1).ne.0) THEN

125 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*PVT(9,i,j,k)/(GB(1)

)*BOUNDARY(1)

126 A(l,l) = A(l,l)-0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*PVT(9,i,j,k)/(GB

(1))

127 END IF

128 A(l,l) = A(l,l)-A(l,l+1)

129 ELSE IF (i.eq.x) THEN

130 A(l,l-1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i-1,j,k)))*GB(2)*GB

(3)*PVT(9,i,j,k)/(GB(1))

131 IF (BOUNDARY(2).ne.0) THEN

132 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*PVT(9,i,j,k)/(GB(1)

)*BOUNDARY(2)

133 A(l,l) = A(l,l)-0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*PVT(9,i,j,k)/(GB

(1))

134 END IF

135 A(l,l) = A(l,l)-A(l,l-1)

136 ELSE

137 A(l,l+1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i+1,j,k)))*GB(2)*GB

(3)*PVT(9,i,j,k)/(GB(1))

138 A(l,l-1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i-1,j,k)))*GB(2)*GB

(3)*PVT(9,i,j,k)/(GB(1))

139 A(l,l) = A(l,l)-A(l,l-1)-A(l,l+1)

140 END IF

141 IF (j.eq.1) THEN

142 A(l,l+x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j+1,k)))*GB(1)*GB

(3)*PVT(9,i,j,k)/(GB(2))

143 IF (BOUNDARY(3).ne.0) THEN

144 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*PVT(9,i,j,k)/(GB(2)

)*BOUNDARY(3)

145 A(l,l) = A(l,l)-0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*PVT(9,i,j,k)/(GB

(2))

146 END IF

Page 58: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 57

147 A(l,l) = A(l,l)-A(l,l+x)

148 ELSE IF (j.eq.y) THEN

149 A(l,l-x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j-1,k)))*GB(1)*GB

(3)*PVT(9,i,j,k)/(GB(2))

150 IF (BOUNDARY(4).ne.0) THEN

151 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*PVT(9,i,j,k)/(GB(2)

)*BOUNDARY(4)

152 A(l,l) = A(l,l)-0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*PVT(9,i,j,k)/(GB

(1))

153 END IF

154 A(l,l) = A(l,l)-A(l,l-x)

155 ELSE

156 A(l,l+x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j+1,k)))*GB(1)*GB

(3)*PVT(9,i,j,k)/(GB(2))

157 A(l,l-x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j-1,k)))*GB(1)*GB

(3)*PVT(9,i,j,k)/(GB(2))

158 A(l,l) = A(l,l)-A(l,l-x)-A(l,l+x)

159 END IF

160 IF (k.eq.1) THEN

161 A(l,l+x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1)))*GB(2)*

GB(1)*PVT(9,i,j,k)/(GB(3))

162 B(l) = B(l) + 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1)))*GB(2)*

GB(1)*PVT(9,i,j,k)*SPVT(1)*GB(3)/(GB(3))

163 IF (BOUNDARY(5).ne.0) THEN

164 B(l) = B(l) - 0.006328*ROCK(1,i,j,k)*GB(2)*GB(3)*PVT(9,i,j,k)/(GB(1)

)*BOUNDARY(5)

165 A(l,l) = A(l,l)-0.006328*ROCK(1,i,j,k)*GB(2)*GB(3)*PVT(9,i,j,k)/(GB

(1))

166 END IF

167 A(l,l) = A(l,l)-A(l,l+x*y)

168 ELSE IF (k.eq.z) THEN

169 A(l,l-x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k-1)))*GB(2)*

GB(1)*PVT(9,i,j,k)/(GB(3))

170 B(l) = B(l) - 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k-1)))*GB(2)*

GB(1)*PVT(9,i,j,k)*SPVT(1)*GB(3)/(GB(3))

171 IF (BOUNDARY(6).ne.0) THEN

172 B(l) = B(l) - 0.006328*ROCK(1,i,j,k)*GB(2)*GB(1)*PVT(9,i,j,k)/(GB(3)

)*BOUNDARY(6)

173 A(l,l) = A(l,l)-0.006328*ROCK(1,i,j,k)*GB(2)*GB(1)*PVT(9,i,j,k)/(GB

(3))

174 END IF

175 A(l,l) = A(l,l)-A(l,l-x*y)

Page 59: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 58

176 ELSE

177 A(l,l+x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1)))*GB(2)*

GB(1)*PVT(9,i,j,k)/(GB(3))

178 A(l,l-x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k-1)))*GB(2)*

GB(1)*PVT(9,i,j,k)/(GB(3))

179 B(l) = B(l) + 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1)))*GB(2)*

GB(1)*PVT(9,i,j,k)*SPVT(1)*GB(3)/(GB(3)) - 0.006328*(2/(1/ROCK(1,i

,j,k)+1/ROCK(1,i,j,k-1)))*GB(2)*GB(1)*PVT(9,i,j,k)*SPVT(1)*GB(3)/(

GB(3))

180 A(l,l) = A(l,l)-A(l,l-x*y)-A(l,l+x*y)

181 END IF

182 IF (WELLS(i,j,k,1).ne.0) THEN

183 IF (WELLS(i,j,k,2).eq.0) THEN

184 B(l) = B(l)+0.00708*ROCK(2,i,j,k)*PVT(9,i,j,k)*GB(3)*(R(2,i,j,k)/2-

WELLS(i,j,k,5))/((LOG(SQRT(GB(1)*GB(2)/Pi)/WELLS(i,j,k,6))-0.75+

WELLS(i,j,k,7)))

185 A(l,l) = A(l,l)-0.00708*ROCK(2,i,j,k)*PVT(9,i,j,k)*GB(3)/((LOG(SQRT(

GB(1)*GB(2)/Pi)/WELLS(i,j,k,6))-0.75+WELLS(i,j,k,7)))

186 ELSE IF (WELLS(i,j,k,2).eq.1) THEN

187 B(l) = B(l)-0.00708*ROCK(2,i,j,k)*PVT(9,i,j,k)*GB(3)*(R(2,i,j,k)/2-

WELLS(i,j,k,5))/(PVT(2,i,j,k)*PVT(1,i,j,k)*(LOG(SQRT(GB(1)*GB(2)/

Pi)/WELLS(i,j,k,6))-0.75+WELLS(i,j,k,7)))

188 A(l,l) = A(l,l)+0.00708*ROCK(2,i,j,k)*PVT(9,i,j,k)*GB(3)/(PVT(2,i,j,k

)*PVT(1,i,j,k)*(LOG(SQRT(GB(1)*GB(2)/Pi)/WELLS(i,j,k,6))-0.75+

WELLS(i,j,k,7)))

189 END IF

190 END IF

191 A(l,l+3*x*y*z) = GB(1)*GB(2)*GB(3)/tstep*ROCK(3,i,j,k)

192 B(l) = B(l) + GB(1)*GB(2)*GB(3)/tstep*ROCK(3,i,j,k)*R(5,i,j,k)

193 i=i+1

194 IF (i.gt.x) THEN

195 i=1

196 j=j+1

197 END IF

198 IF (j.gt.y) THEN

199 j=1

200 k=k+1

201 END IF

202 IF (k.gt.z) THEN

203 k=1

204 var=’GAS’

205 END IF

Page 60: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 59

206 ELSE IF (var.eq.’GAS’) THEN !Generates the section of the matrix that

relates with gas equations.

207 ! Here starts the gas equations. Those equations doesn’t consider the

Dissolved Gas.

208 IF (i.eq.1) THEN

209 A(l,l+1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i+1,j,k)))*GB(2)*GB

(3)*PVT(10,i,j,k)/(GB(1)*PVT(7,i,j,k)*PVT(8,i,j,k))

210 IF (BOUNDARY(1).ne.0) THEN

211 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*PVT(10,i,j,k)/(GB

(1)*PVT(7,i,j,k)*PVT(8,i,j,k))*BOUNDARY(1)

212 A(l,l) = A(l,l)-0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*PVT(10,i,j,k)/(GB

(1)*PVT(7,i,j,k)*PVT(8,i,j,k))

213 END IF

214 A(l,l) = A(l,l)-A(l,l+1)

215 ELSE IF (i.eq.x) THEN

216 A(l,l-1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i-1,j,k)))*GB(2)*GB

(3)*PVT(10,i,j,k)/(GB(1)*PVT(7,i,j,k)*PVT(8,i,j,k))

217 IF (BOUNDARY(2).ne.0) THEN

218 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*PVT(10,i,j,k)/(GB

(1)*PVT(7,i,j,k)*PVT(8,i,j,k))*BOUNDARY(2)

219 A(l,l) = A(l,l)-0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*PVT(10,i,j,k)/(GB

(1)*PVT(7,i,j,k)*PVT(8,i,j,k))

220 END IF

221 A(l,l) = A(l,l)-A(l,l-1)

222 ELSE

223 A(l,l+1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i+1,j,k)))*GB(2)*GB

(3)*PVT(10,i,j,k)/(GB(1)*PVT(7,i,j,k)*PVT(8,i,j,k))

224 A(l,l-1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i-1,j,k)))*GB(2)*GB

(3)*PVT(10,i,j,k)/(GB(1)*PVT(7,i,j,k)*PVT(8,i,j,k))

225 A(l,l) = A(l,l)-A(l,l-1)-A(l,l+1)

226 END IF

227 IF (j.eq.1) THEN

228 A(l,l+x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j+1,k)))*GB(1)*GB

(3)*PVT(10,i,j,k)/(GB(2)*PVT(7,i,j,k)*PVT(8,i,j,k))

229 IF (BOUNDARY(3).ne.0) THEN

230 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*PVT(10,i,j,k)/(GB

(2)*PVT(7,i,j,k)*PVT(8,i,j,k))*BOUNDARY(3)

231 A(l,l) = A(l,l)-0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*PVT(10,i,j,k)/(GB

(2)*PVT(7,i,j,k)*PVT(8,i,j,k))

232 END IF

233 A(l,l) = A(l,l)-A(l,l+x)

234 ELSE IF (j.eq.y) THEN

Page 61: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 60

235 A(l,l-x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j-1,k)))*GB(1)*GB

(3)*PVT(10,i,j,k)/(GB(2)*PVT(7,i,j,k)*PVT(8,i,j,k))

236 IF (BOUNDARY(4).ne.0) THEN

237 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*PVT(10,i,j,k)/(GB

(2)*PVT(7,i,j,k)*PVT(8,i,j,k))*BOUNDARY(4)

238 A(l,l) = A(l,l)-0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*PVT(10,i,j,k)/(GB

(2)*PVT(7,i,j,k)*PVT(8,i,j,k))

239 END IF

240 A(l,l) = A(l,l)-A(l,l-x)

241 ELSE

242 A(l,l+x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j+1,k)))*GB(1)*GB

(3)*PVT(10,i,j,k)/(GB(2)*PVT(7,i,j,k)*PVT(8,i,j,k))

243 A(l,l-x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j-1,k)))*GB(1)*GB

(3)*PVT(10,i,j,k)/(GB(2)*PVT(7,i,j,k)*PVT(8,i,j,k))

244 A(l,l) = A(l,l)-A(l,l-x)-A(l,l+x)

245 END IF

246 IF (k.eq.1) THEN

247 A(l,l+x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1)))*GB(2)*

GB(1)*PVT(10,i,j,k)/(GB(3)*PVT(7,i,j,k)*PVT(8,i,j,k))

248 B(l) = B(l) + 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1)))*GB(2)*

GB(1)*PVT(10,i,j,k)*SPVT(2)*GB(3)/(GB(3)*PVT(7,i,j,k)*PVT(8,i,j,k)

)

249 IF (BOUNDARY(5).ne.0) THEN

250 B(l) = B(l) - 0.006328*ROCK(1,i,j,k)*GB(2)*GB(1)*PVT(10,i,j,k)/(GB

(3)*PVT(7,i,j,k)*PVT(8,i,j,k))*BOUNDARY(5)

251 A(l,l) = A(l,l)-0.006328*ROCK(1,i,j,k)*GB(2)*GB(1)*PVT(10,i,j,k)/(GB

(3)*PVT(7,i,j,k)*PVT(8,i,j,k))

252 END IF

253 A(l,l) = A(l,l)-A(l,l+x*y)

254 ELSE IF (k.eq.z) THEN

255 A(l,l-x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k-1)))*GB(2)*

GB(1)*PVT(10,i,j,k)/(GB(3)*PVT(7,i,j,k)*PVT(8,i,j,k))

256 B(l) = B(l) - 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k-1)))*GB(2)*

GB(1)*PVT(10,i,j,k)*SPVT(2)*GB(3)/(GB(3)*PVT(7,i,j,k)*PVT(8,i,j,k)

)

257 IF (BOUNDARY(6).ne.0) THEN

258 B(l) = B(l) - 0.006328*ROCK(1,i,j,k)*GB(2)*GB(3)*PVT(10,i,j,k)/(GB

(1)*PVT(7,i,j,k)*PVT(8,i,j,k))*BOUNDARY(6)

259 A(l,l) = A(l,l)-0.006328*ROCK(1,i,j,k)*GB(2)*GB(3)*PVT(10,i,j,k)/(GB

(1)*PVT(7,i,j,k)*PVT(8,i,j,k))

260 END IF

261 A(l,l) = A(l,l)-A(l,l-x*y)

Page 62: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 61

262 ELSE

263 A(l,l+x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1)))*GB(2)*

GB(1)*PVT(10,i,j,k)/(GB(3)*PVT(7,i,j,k)*PVT(8,i,j,k))

264 A(l,l-x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k-1)))*GB(2)*

GB(1)*PVT(10,i,j,k)/(GB(3)*PVT(7,i,j,k)*PVT(8,i,j,k))

265 B(l) = B(l) + 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1)))*GB(2)*

GB(1)*PVT(10,i,j,k)*SPVT(2)*GB(3)/(GB(3)*PVT(7,i,j,k)*PVT(8,i,j,k)

) - 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k-1)))*GB(2)*GB(1)*

PVT(10,i,j,k)*SPVT(2)*GB(3)/(GB(3)*PVT(7,i,j,k)*PVT(8,i,j,k))

266 A(l,l) = A(l,l)-A(l,l-x*y)-A(l,l+x*y)

267 END IF

268 ! Here starts the Dissolved Gas equations.

269 IF (i.eq.1) THEN

270 A(l,-2*x*y*z+l+1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i+1,j,k)))*

GB(2)*GB(3)*PVT(3,i,j,k)/(GB(1)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,

i,j,k)+PVT(6,i+1,j,k))/2

271 IF (BOUNDARY(1).ne.0) THEN

272 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*PVT(3,i,j,k)/(GB(1)

*PVT(2,i,j,k)*PVT(1,i,j,k))*BOUNDARY(1)*(PVT(6,i,j,k))

273 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*

PVT(3,i,j,k)/(GB(1)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,i,j,k))

274 END IF

275 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-A(l,-2*x*y*z+l+1)

276 ELSE IF (i.eq.x) THEN

277 A(l,-2*x*y*z+l-1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i-1,j,k)))*

GB(2)*GB(3)*PVT(3,i,j,k)/(GB(1)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,

i,j,k)+PVT(6,i-1,j,k))/2

278 IF (BOUNDARY(2).ne.0) THEN

279 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*PVT(3,i,j,k)/(GB(1)

*PVT(2,i,j,k)*PVT(1,i,j,k))*BOUNDARY(2)*(PVT(6,i,j,k))

280 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-0.006328*ROCK(2,i,j,k)*GB(2)*GB(3)*

PVT(3,i,j,k)/(GB(1)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,i,j,k))

281 END IF

282 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-A(l,-2*x*y*z+l-1)

283 ELSE

284 A(l,-2*x*y*z+l+1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i+1,j,k)))*

GB(2)*GB(3)*PVT(3,i,j,k)/(GB(1)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,

i,j,k)+PVT(6,i+1,j,k))/2

285 A(l,-2*x*y*z+l-1) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i-1,j,k)))*

GB(2)*GB(3)*PVT(3,i,j,k)/(GB(1)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,

i,j,k)+PVT(6,i-1,j,k))/2

286 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-A(l,-2*x*y*z+l-1)-A(l,-2*x*y*z+l+1)

Page 63: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 62

287 END IF

288 IF (j.eq.1) THEN

289 A(l,-2*x*y*z+l+x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j+1,k)))*

GB(1)*GB(3)*PVT(3,i,j,k)/(GB(2)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,

i,j,k)+PVT(6,i,j+1,k))/2

290 IF (BOUNDARY(3).ne.0) THEN

291 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*PVT(3,i,j,k)/(GB(2)

*PVT(2,i,j,k)*PVT(1,i,j,k))*BOUNDARY(3)*(PVT(6,i,j,k))

292 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*

PVT(3,i,j,k)/(GB(2)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,i,j,k))

293 END IF

294 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-A(l,-2*x*y*z+l+x)

295 ELSE IF (j.eq.y) THEN

296 A(l,-2*x*y*z+l-x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j-1,k)))*

GB(1)*GB(3)*PVT(3,i,j,k)/(GB(2)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,

i,j,k)+PVT(6,i,j-1,k))/2

297 IF (BOUNDARY(4).ne.0) THEN

298 B(l) = B(l) - 0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*PVT(3,i,j,k)/(GB(2)

*PVT(2,i,j,k)*PVT(1,i,j,k))*BOUNDARY(4)*(PVT(6,i,j,k))

299 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-0.006328*ROCK(2,i,j,k)*GB(1)*GB(3)*

PVT(3,i,j,k)/(GB(2)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,i,j,k))

300 END IF

301 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-A(l,-2*x*y*z+l-x)

302 ELSE

303 A(l,-2*x*y*z+l+x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j+1,k)))*

GB(1)*GB(3)*PVT(3,i,j,k)/(GB(2)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,

i,j,k)+PVT(6,i,j+1,k))/2

304 A(l,-2*x*y*z+l-x) = 0.006328*(2/(1/ROCK(2,i,j,k)+1/ROCK(2,i,j-1,k)))*

GB(1)*GB(3)*PVT(3,i,j,k)/(GB(2)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,

i,j,k)+PVT(6,i,j-1,k))/2

305 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-A(l,-2*x*y*z+l-x)-A(l,-2*x*y*z+l+x)

306 END IF

307 IF (k.eq.1) THEN

308 A(l,-2*x*y*z+l+x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1))

)*GB(2)*GB(1)*PVT(3,i,j,k)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT

(6,i,j,k)+PVT(6,i,j,k+1))/2

309 B(l) = B(l) + 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1)))*GB(2)*

GB(1)*PVT(3,i,j,k)*SPVT(3)*GB(3)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))

*(PVT(6,i,j,k)+PVT(6,i,j,k+1))/2

310 IF (BOUNDARY(5).ne.0) THEN

311 B(l) = B(l) - 0.006328*ROCK(1,i,j,k)*GB(2)*GB(1)*PVT(3,i,j,k)/(GB(3)

*PVT(2,i,j,k)*PVT(1,i,j,k))*BOUNDARY(5)*(PVT(6,i,j,k))

Page 64: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 63

312 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-0.006328*ROCK(1,i,j,k)*GB(2)*GB(1)*

PVT(3,i,j,k)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,i,j,k))

313 END IF

314 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-A(l,-2*x*y*z+l+x*y)

315 ELSE IF (k.eq.z) THEN

316 A(l,-2*x*y*z+l-x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k-1))

)*GB(2)*GB(1)*PVT(3,i,j,k)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT

(6,i,j,k)+PVT(6,i,j,k-1))/2

317 B(l) = B(l) - 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k-1)))*GB(2)*

GB(1)*PVT(3,i,j,k)*SPVT(3)*GB(3)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))

*(PVT(6,i,j,k)+PVT(6,i,j,k-1))/2

318 IF (BOUNDARY(6).ne.0) THEN

319 B(l) = B(l) - 0.006328*ROCK(1,i,j,k)*GB(2)*GB(3)*PVT(3,i,j,k)/(GB(1)

*PVT(2,i,j,k)*PVT(1,i,j,k))*BOUNDARY(6)*(PVT(6,i,j,k))

320 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-0.006328*ROCK(1,i,j,k)*GB(2)*GB(3)*

PVT(3,i,j,k)/(GB(1)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,i,j,k))

321 END IF

322 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-A(l,-2*x*y*z+l-x*y)

323 ELSE

324 A(l,-2*x*y*z+l+x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1))

)*GB(2)*GB(1)*PVT(3,i,j,k)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT

(6,i,j,k)+PVT(6,i,j,k+1))/2

325 A(l,-2*x*y*z+l-x*y) = 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k-1))

)*GB(2)*GB(1)*PVT(3,i,j,k)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT

(6,i,j,k)+PVT(6,i,j,k-1))/2

326 B(l) = B(l) + 0.006328*(2/(1/ROCK(1,i,j,k)+1/ROCK(1,i,j,k+1)))*GB(2)*

GB(1)*PVT(3,i,j,k)*SPVT(3)*GB(3)/(GB(3)*PVT(2,i,j,k)*PVT(1,i,j,k))

*(PVT(6,i,j,k)+PVT(6,i,j,k+1))/2 - 0.006328*(2/(1/ROCK(1,i,j,k)+1/

ROCK(1,i,j,k-1)))*GB(2)*GB(1)*PVT(3,i,j,k)*SPVT(3)*GB(3)/(GB(3)*

PVT(2,i,j,k)*PVT(1,i,j,k))*(PVT(6,i,j,k)+PVT(6,i,j,k-1))/2

327 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-A(l,-2*x*y*z+l-x*y)-A(l,-2*x*y*z+l+

x*y)

328 END IF

329 IF (WELLS(i,j,k,1).ne.0) THEN

330 IF (WELLS(i,j,k,2).eq.0) THEN

331 B(l) = B(l)+0.00708*ROCK(2,i,j,k)*PVT(10,i,j,k)*GB(3)*(R(2,i,j,k)/2-

WELLS(i,j,k,5))/(PVT(7,i,j,k)*PVT(8,i,j,k)*(LOG(SQRT(GB(1)*GB(2)/

Pi)/WELLS(i,j,k,6))-0.75+WELLS(i,j,k,7)))

332 A(l,l) = A(l,l)-0.00708*ROCK(2,i,j,k)*PVT(10,i,j,k)*GB(3)/(PVT(7,i,j,

k)*PVT(8,i,j,k)*(LOG(SQRT(GB(1)*GB(2)/Pi)/WELLS(i,j,k,6))-0.75+

WELLS(i,j,k,7)))

Page 65: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 64

333 B(l) = B(l)+0.00708*ROCK(2,i,j,k)*PVT(3,i,j,k)*GB(3)*(R(1,i,j,k)/2-

WELLS(i,j,k,5))/(PVT(2,i,j,k)*PVT(1,i,j,k)*(LOG(SQRT(GB(1)*GB(2)/

Pi)/WELLS(i,j,k,6))-0.75+WELLS(i,j,k,7)))*(PVT(6,i,j,k))

334 A(l,-2*x*y*z+l) = A(l,-2*x*y*z+l)-0.00708*ROCK(2,i,j,k)*PVT(3,i,j,k)*

GB(3)/(PVT(2,i,j,k)*PVT(1,i,j,k)*(LOG(SQRT(GB(1)*GB(2)/Pi)/WELLS(i

,j,k,6))-0.75+WELLS(i,j,k,7)))*(PVT(6,i,j,k))

335 ELSE IF (WELLS(i,j,k,2).eq.1) THEN

336 B(l) = B(l)-0.00708*ROCK(2,i,j,k)*PVT(10,i,j,k)*GB(3)*(R(2,i,j,k)/2-

WELLS(i,j,k,5))/(PVT(7,i,j,k)*PVT(8,i,j,k)*(LOG(SQRT(GB(1)*GB(2)/

Pi)/WELLS(i,j,k,6))-0.75+WELLS(i,j,k,7)))

337 A(l,l) = A(l,l)+0.00708*ROCK(2,i,j,k)*PVT(10,i,j,k)*GB(3)/(PVT(7,i,j,

k)*PVT(8,i,j,k)*(LOG(SQRT(GB(1)*GB(2)/Pi)/WELLS(i,j,k,6))-0.75+

WELLS(i,j,k,7)))

338 END IF

339 END IF

340 A(l,l+3*x*y*z) = GB(1)*GB(2)*GB(3)/tstep*ROCK(3,i,j,k)

341 B(l) = B(l) + GB(1)*GB(2)*GB(3)/tstep*ROCK(3,i,j,k)*R(5,i,j,k)

342 A(l,l+x*y*z) = GB(1)*GB(2)*GB(3)/tstep*ROCK(3,i,j,k)/PVT(2,i,j,k)*(

PVT(6,i,j,k))

343 B(l) = B(l) + GB(1)*GB(2)*GB(3)/tstep*ROCK(3,i,j,k)/PVT(2,i,j,k)*R(4,

i,j,k)*(PVT(6,i,j,k))

344 i=i+1

345 IF (i.gt.x) THEN

346 i=1

347 j=j+1

348 END IF

349 IF (j.gt.y) THEN

350 j=1

351 k=k+1

352 END IF

353 IF (k.gt.z) THEN

354 k=1

355 var=’SAT’

356 END IF

357 ELSE IF (var.eq.’SAT’) THEN

358 A(l,l) = 1

359 A(l,x*y*z+l) = 1

360 A(l,2*x*y*z+l) = 1

361 B(l) = 1

362 i=i+1

363 IF (i.gt.x) THEN

364 i=1

Page 66: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 65

365 j=j+1

366 END IF

367 IF (j.gt.y) THEN

368 j=1

369 k=k+1

370 END IF

371 IF (k.gt.z) THEN

372 k=1

373 var=’COW’

374 END IF

375 ELSE IF (var.eq.’COW’) THEN

376 A(l,l-4*x*y*z) = 1

377 A(l,l-3*x*y*z) = -1

378 B(l) = PVT(4,i,j,k)

379 i=i+1

380 IF (i.gt.x) THEN

381 i=1

382 j=j+1

383 END IF

384 IF (j.gt.y) THEN

385 j=1

386 k=k+1

387 END IF

388 IF (k.gt.z) THEN

389 k=1

390 var=’COG’

391 END IF

392 ELSE IF (var.eq.’COG’) THEN

393 A(l,l-5*x*y*z) = 1

394 A(l,l-3*x*y*z) = -1

395 B(l) = PVT(5,i,j,k)

396 i=i+1

397 IF (i.gt.x) THEN

398 i=1

399 j=j+1

400 END IF

401 IF (j.gt.y) THEN

402 j=1

403 k=k+1

404 END IF

405 IF (k.gt.z) THEN

406 k=1

Page 67: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 66

407 var=’END’

408 END IF

409 END IF

410 END DO

411 i=1

412 j=1

413 k=1

414 counter=1

415 DO l=1,n,1 !this section creates the initial guess

416 GUESS(l) = R(counter,i,j,k)

417 i=i+1

418 IF (i.gt.x) THEN

419 i=1

420 j=j+1

421 END IF

422 IF (j.gt.y) THEN

423 j=1

424 k=k+1

425 END IF

426 IF (k.gt.z) THEN

427 k=1

428 counter = counter + 1

429 END IF

430 END DO

431 dA = A

432 call sgefa(dA,n,n,ipvt,info)

433 call sgedi(dA,n,n,ipvt,det,work,01)

434 GUESSold = GUESS

435 counter = 1

436 DO WHILE (test.eq.0)

437 counter = counter + 1

438 RT = (MATMUL(A,GUESS)-B)

439 GUESS = GUESS + MATMUL(dA,RT)

440 DO l=1,n,1

441 diff = diff + abs(GUESS(l)-GUESSold(l))

442 END DO

443 IF (diff.le.SETUP(2)) THEN

444 test=1

445 END if

446 IF (counter.gt.setup(1)) then

447 test=2

448 PRINT*, "The process didn’t converge after", counter, "iterations"

Page 68: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 67

449 PRINT*, "In order to proceed, it will be used the last guess"

450 call system (’pause’)

451 END IF

452 END DO

453 CALL exportar(x, y, z, n,GUESS, RRES, R, GB, ROCK, PVT)

454

455 END SUBROUTINE

456

457 SUBROUTINE exportar(x, y, z, n,GUESS, RRES, R, GB, ROCK, PVT)

458 INTEGER i, j, k, l, m, n, x, y, z

459 REAL GUESS(n), RRES(6), R(6,x,y,z), GB(3), ROCK(3,x,y,z), PVT(10,x,y,

z)

460

461 i = 1

462 j = 1

463 k = 1

464 m = 1

465 RRES = 0

466

467 DO l=1,n,1

468 R(m,i,j,k) = GUESS(l)

469 i=i+1

470 IF (i .gt. x) THEN

471 i=1

472 j=j+1

473 END IF

474 IF (j .gt. y) THEN

475 j=1

476 k=k+1

477 END IF

478 IF (k .gt. z) THEN

479 k=1

480 m=m+1

481 END IF

482 END DO

483 DO i=1,x,1

484 DO j=1,y,1

485 DO k=1,z,1

486 RRES(1) = RREES(1) + GB(1)*GB(2)*GB(3)*ROCK(3,i,j,k)*R(4,i,j,k)/PVT

(2,x,y,z)

487 RRES(2) = RREES(2) + GB(1)*GB(2)*GB(3)*ROCK(3,i,j,k)*R(5,i,j,k)

Page 69: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE A. Código Desenvolvido 68

488 RRES(3) = RREES(3) + GB(1)*GB(2)*GB(3)*ROCK(3,i,j,k)*R(4,i,j,k)*PVT

(6,i,j,k)/PVT(2,x,y,z) + GB(1)*GB(2)*GB(3)*ROCK(3,i,j,k)*R(6,i,j,k

)/PVT(7,x,y,z)

489 END DO

490 END DO

491 END DO

492 END SUBROUTINE

Page 70: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

69

APÊNDICE B – Input utilizado nosestudos de caso

Tabela 1 – Caso 1 – Reservatório convencional

Propriedade Valor utilizadoPressão inicial no Datum 2500 psiVazão do poço Restrito a 1500 BBL/diaPermeabilidade 70 mDPorosidade 20%Saturação de óleo 50%Saturação de água 30%Saturação de gás 20%Número de blocos 500Dimensões 10x10x5 blocos∆x 100 ft∆y 100 ft∆z 10 ftPcow 0.9 psiPcog 0.3 psi

Tabela 2 – Caso 2 – Reservatório com ausência de capa de gás

Propriedade Valor utilizadoPressão inicial no Datum 2500 psiVazão do poço Restrito a 1500 BBL/diaPermeabilidade 70 mDPorosidade 20%Saturação de óleo 65%Saturação de água 35%Saturação de gás 00%Número de blocos 500Dimensões 10x10x5 blocos∆x 100 ft∆y 100 ft∆z 10 ftPcow 0.7 psiPcog 0.3 psi

Page 71: app.uff.br© Luis Reys de Mattos.pdfJoão Felipe Mitre de Araujo, D. SC. Orientador Elson Antonio do Nascimento, D. SC. João Crisósthomo de Queiroz Neto, D. SC. Niterói - RJ, Brasil

APÊNDICE B. Input utilizado nos estudos de caso 70

Tabela 3 – Reservatório quantidade reduzida de água de formação

Propriedade Valor utilizadoPressão inicial no Datum 2500 psiVazão do poço Restrito a 1500 BBL/diaPermeabilidade 70 mDPorosidade 20%Saturação de óleo 75%Saturação de água 05%Saturação de gás 20%Número de blocos 500Dimensões 10x10x5 blocos∆x 100 ft∆y 100 ft∆z 10 ftPcow 2.3 psiPcog 0.3 psi