Reservoir Coupling with Pipe-It - A Scripted Logic Controller Approach

advertisement
Master Thesis
Reservoir Coupling with Pipe-It - A Scripted
Logic Controller Approach
In Partial Fulfillment of the Requirements for
TPG4920 - Petroleum Engineering, Master Thesis
Luky Hendraningrat
Advisor: Professor Curtis H. Whitson
Trondheim, July 2010
Department of Petroleum Engineering and Applied
Geosciences
Spring Semester 2010
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach ABSTRACT
The main purpose of this thesis is to propose Reservoir Coupling (RC) solution using a
scripted logic controller approach through Pipe-It. The Pipe-It is the open interface
framework that allows an entire project to be executed that involves external or thirdparty programs such ECLIPSE. The motivation is to solve current limitation of RC
feature in one commercial Reservoir Simulator ECLIPSE. The logic approach
formulation has been developed to manage production-scheme logic under target and
constraint at field. The feedbacks of production and injection rates provide dynamic
system in the coupled reservoir model. The case example is taken from ECLIPSE RC
datasets and the results verified with ECLIPSE results run.
Keywords:
Reservoir Coupling, Pipe-It, Scripted logic controller, ECLIPSE, Production-scheme
logic, Dynamic feedback, Black oil models
Luky Hendraningrat – MSc. Thesis, 2010 i
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach ACKNOWLEDGMENT
I would like to express my utmost gratitude towards my advisor, Prof. Curtis H.
Whitson, not only for his insights and guidance, but also for his patience and
encouragement when things did not go so well.
I wish to express my gratitude to my co-advisors Dr. Mohammad Faizul Hoda and
Arif Kuntadi, PhD-Candidate, who have abundantly helpful and offered invaluable
assistance, support and technical guidance.
This study would not also have been possible accomplished unless support from
colleague at PERA office. Therefore I owe my deepest gratitude to Silvya D.
Rahmawati, PhD-Candidate. She always had time to discuss, offered invaluable
assistance and suggestion although she was very busy.
I would like to acknowledge PERA, IPT-NTNU and their staffs for supporting and
granting me free software access and licenses during accomplishing this study.
I would like thank to QUOTA Scheme Programme for giving me a scholarship during
two years completing Master Degree at the Department of Petroleum Engineering and
Applied Geophysics of the Norwegian University of Science and Technology.
I am indebted to my new big family, PPI Trondheim, who always support me during
staying in Trondheim.
Eventually, I wish to express my love and gratitude to my beloved family, my wife
Isma Nurlina, who always boosted me when I felt down and also my son, Muhammad
Rafif Shaquille, for giving me a wonderful day, understanding and endless love
through the duration of my thesis.
Trondheim, July 2010
Luky Hendraningrat
Luky Hendraningrat – MSc. Thesis, 2010 ii
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach TABLE OF CONTENTS
ABSTRACT....................................................................................................................i
ACKNOWLEDGMENT................................................................................................ii
TABLE OF CONTENTS............................................................................................. iii
1. INTRODUCTION .................................................................................................1
1.1.
Background ....................................................................................................1
1.2.
Motivation and Objective ..............................................................................1
1.3.
Project Description.........................................................................................2
1.4.
Software Description .....................................................................................3
1.4.1.
ECLISPE................................................................................................3
1.4.2.
Pipe-It.....................................................................................................3
1.4.3.
Optimizer ...............................................................................................4
1.4.4.
Streamz ..................................................................................................4
1.4.5.
Linkz and Maplinkz ...............................................................................5
1.4.6.
Pipe-Itc...................................................................................................5
1.4.7.
Plot .........................................................................................................5
1.5.
Visual Basic Scripting....................................................................................6
1.6.
Specification of Personal Computer Employed.............................................6
2. RESERVOIR COUPLING ....................................................................................7
2.1.
Philosophy......................................................................................................7
2.2.
Master and Slave Data ...................................................................................7
2.3.
Reservoir Coupling Feature in ECLIPSE ......................................................9
2.4.
Group Control of Production and Injection ...................................................9
2.5.
Guide Rate and Potential Rate .....................................................................10
2.6.
Synchronization Mechanism........................................................................11
2.7.
Activation ECLIPSE RC Feature in Stand-alone Mode ..............................12
2.7.1.
Check Available License .....................................................................12
2.7.2.
User Configuration File .......................................................................12
2.7.3.
Installing Intel Message Passing Interface (MPI)................................13
2.8.
Special Keywords of ECLIPSE Reservoir Coupling Feature......................13
3. RESERVOIR COUPLING APPROACHES .......................................................14
3.1.
Reservoir Model Description.......................................................................14
3.2.
Coupling Scheme .........................................................................................16
3.3.
Logic Approach ...........................................................................................16
3.3.1. Production Constraint ..............................................................................16
3.3.2. Injection Constraint..................................................................................19
3.4.
Sample Approach: RC with ECLIPSE RC Special Feature ........................21
3.5.
Proposed Approach: RC with Scripted Logic Controller ............................22
3.5.1.
Initial Run ............................................................................................22
3.5.2.
Transition Run .....................................................................................24
3.5.3.
Restart Run...........................................................................................28
Luky Hendraningrat – MSc. Thesis, 2010 iii
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 3.5.4.
Data Collection Aggregation ...............................................................28
3.5.5.
Results and Plots ..................................................................................28
4. RESULTS AND DISCUSSION ..........................................................................29
4.1.
Verification Result .......................................................................................29
4.1.1.
Production and Injection Profile ..........................................................29
4.1.2.
Cumulative Production and Injection ..................................................31
4.1.3.
Computation time.................................................................................31
4.1.4.
Sensitivity Study to Project Time Step ................................................32
4.2.
Benefit and Limitation .................................................................................32
5. CONCLUDING REMARKS AND RECOMMENDATIONS ...........................34
5.1.
Concluding Remarks....................................................................................34
5.2.
Recommendations........................................................................................34
NOMENCLATURE ....................................................................................................36
REFERENCES ............................................................................................................39
APPENDIX A - Figures...............................................................................................41
APPENDIX B - Tables ................................................................................................69
APPENDIX C - VBScript............................................................................................70
APPENDIX D - Example Calculation.......................................................................100
APPENDIX E - ECLIPSE Datasets: Master and Slaves ...........................................103
APPENDIX F - ECLIPSE Restart File......................................................................143
Luky Hendraningrat – MSc. Thesis, 2010 iv
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 1. INTRODUCTION
1.1. Background
One-way reservoir coupling is still widely used where this method only gathers the
production and injection from a number of reservoir models without introducing
feedback from surface model to reservoir model due to constraint on the surface
facilities limitation capacity such as gas-water surface production and injection. Fully
coupling multi-reservoirs models offers increased degree of precision in prediction
and optimization of reservoir deliverability and in forecasting full-field performance.
It will balance and optimize the potential flow rate of wells in the reservoir models,
honoring all individual well constraints, based on surface facilities model limitation.
The potential flow rate and control mode from groups of wells will be run as the
optimization process. Then the results will transfer back as dynamic feedback to the
individual reservoir runs to keep balancing and repeating as iterations. This process is
called full reservoir coupling as shown in Fig.1.
Reservoir simulator suite like ECLIPSE currently has special extension for Reservoir
Coupling (RC) feature. This feature provides fully reservoir coupling technique in
reservoir simulation. However, based on ECLIPSE technical description version
2009.2, current RC feature in commercial reservoir simulator (ECLIPSE) is only
limited to black oil reservoir models (ECL100). It means that if we want to couple
multi-reservoir types simultaneously (e.g. with compositional model) it is not possible
yet. It is also mentioned that RC feature in ECLIPSE is only limited to 20 slaves
(ECLIPSE Technical Description, 2009). Indeed, it is rare that in actual case that we
have around 20 reservoirs in a field.
1.2. Motivation and Objective
It is common that in real field case, it consists of several reservoir models and types;
Black Oil, Volatile, Retrograde Gas, Wet Gas and/or Dry Gas, which are isolated
from each other. They might be black oil or compositional type. Then their streams
will be comingled to each other and linked to the surface facilities as integrated
system.
The main purpose of this study is development of an alternative RC solution by
solving the current limitation in fully RC dynamic models through Pipe-It Project.
The “black box” inside of RC ECLISPE must be understood prior to do this study.
This study offers RC solution using scripted logic controller to solve those current
limitations with some engineering logic approach.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 1 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach The scripted logic controller and Optimizer act as Master Datasets in ECLIPSE RC
feature. They will control and distribute the global production and injection
constraints data to individual isolated reservoir models so-called Slaves which are
running in parallel execution. In addition it will resolve the flow rate goal to be
applied to each individual reservoir models at particular time step as dynamic
feedback.
Through Pipe-it project, it might be possible to implement RC models as many as we
have because it does not require ECLIPSE RC license. In addition, it is not only
limited to one commercial reservoir simulator, but it also will provide for several
commercial reservoir simulator as third party runs simultaneously. Certainly, each
method has benefit and limitation. Prior to those, the verification result with RC
ECLIPSE runs should be done with matching satisfaction.
1.3. Project Description
The project will develop alternate Reservoir Coupling (RC) solution by using scripted
logic controller with Pipe-It. The reservoir models were taken from RC ECLIPSE
example dataset which consist of three black oil reservoir models. The main reason is
easier to compare the results as verification. The RC approaches will run on a single
computer. All of employed software in this project is installed in stand-alone mode.
Particularly ECLIPSE suite simulator is using server licenses for all licenses such
black oil and reservoir coupling feature. Besides the verification results of production
and injection profile of each approach, the benefit and limitation found also will be
explained later. The approaches are as follows.
1. Sample Approach
Coupled three black oil reservoir models that have been run by using
Reservoir Coupling (RC) feature in ECLIPSE special extension (see in Fig.2).
This feature will be launched by using Pipe-It instead of ECLIPSE launcher. It
needs several licenses both black oil models and RC special license, which
depends on how many slaves, master and reservoir coupling run.
2. Propose Approach
Coupled three black oil reservoir models using scripted logic controller that
are run with ECLIPSE simulator (without RC ECLIPSE license). Each slave is
simultaneously run (parallel execution) for input to Pipe-It project. The
scripter and command should be developed in open interface logic controller
module where the Optimizer featuring with VBScript will act as Super master
dataset and logic controller instead of Master data (C.H. Whitson and M.F.
Hoda, 2010). The integrated process overview can be seen in Fig.3.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 2 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 1.4. Software Description
1.4.1. ECLISPE
ECLIPSE simulator suite has become a widely used reservoir simulator that has been
developed by Schlumberger. It is comprised of two types of reservoir simulators. The
first is ECLIPSE 100 (ECL100), which is specified for black oil reservoir modeling.
Another is ECLIPSE 300 (ECL300) which is specified for compositional modeling.
FORTRAN is coding language used in writing both simulators. The latest ECLIPSE
version 2009.2 has been employed for this project.
Reservoir coupling is one of special extensions from ECLIPSE simulator suite with a
separate license from ECLIPSE reservoir model. The ability of this feature is to
couple a number of reservoir models to allow for constraints on their overall
production and injection rates, and optionally the sharing of a common surface
network (ECLIPSE Technical Description, 2009). It will provide a convenient way of
uniting these reservoir models to comply global production and injection constraints,
with minor change to their input data. The reservoir simulation models are run as
separate processes, under the control of a master process which commands their
production and injection constraints at each time step. The current Reservoir coupling
feature is provided for ECLIPSE 100 (Black oil models) only.
The reservoir coupling examples given in ECLIPSE simulator suite dataset consist of
three black oil reservoir model called Slave and one Master Dataset to command their
production and injection constraints at each time step.
1.4.2. Pipe-It
Nowadays there are large numbers of commercial software to integrate the project in
petroleum industries; one of them is Pipe-It. This software has been developed by
Petrostreamz AS. Pipe-It allows a project to be visualized with an intuitive graphical
layout design. Visualization can be created to give a clear vision of the project from a
top-level management point of view (Petrostreamz AS, 2010). That is the reason why
we called Pipe-It here as Open Interface controller module. Pipe-It components can be
seen in Fig.4.
Pipe-It also allows an entire project or elements of a project to be executed. This
might involve executing external programs or third party programs, such as ECLIPSE
and HYSYS, to be coupled then describing their performance of reservoirs, wells,
pipelines, process facilities until final-destination refining.
The basic principle behind Pipe-It is to send a stream of information from a resource
through a process into another resource which in turn might be a resource for another
process to form a chain of processes replicating the flow of petroleum in a producing
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 3 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach field. By using Graphical User Interface (GUI), it is easy to visual the connection
process of the project (Petrostreamz AS, 2010).
1.4.3. Optimizer
Optimizer is one of Pipe-It components that have several purposes. It is an
optimization engine options in Pipe-It that has a main purpose in global and or local
optimization. In this project, Optimizer acts as Master data in RC ECLIPSE feature
which control and transfer the global production and injection constraints data (see
illustration in Fig.5). In addition it will resolve the flow rate goal to be applied to each
individual reservoir models at particular time step.
The Optimization engine will use both in-house solvers as well as third party solvers.
The solvers utilized by Pipe-It uses plug-in technology to allow users & researchers to
plug-in their solvers encapsulated in dlls, documented of the API is provided to
facilitate this. The solvers that can be chosen are: Reflection, Random sampler,
Experimental design, Reflection, Trivial, Nonlinear or it is possible to run our own
solver. The detail explanation can be read from Petrostreamz support website.
The optimization engine consists of several optimization “variables” as follows:
(Petrostreamz AS, 2010)
o VAR: User- or Optimizer-specified. May be written to file. Updated before
any other variable and before model execution.
o AUX: Either set by equation, read from file, or user-specified, in that order of
priority. If set by equation, may also be written to file. Updated after VARs
but before model execution.
o CON: Unless a user-specified constant, either read from file or set by
equation, after model execution. (Note: Constraints are recognized for all
variables, not just the results labeled CON).
o OBJ: Same as CON, except the Optimizer will try to minimize or maximize it.
Pipe-It Optimizer allows the interface to attach, modify & monitor numerical
variables in files linked to resources. This functionality in itself is quite unique and
powerful and can be used for “manual” optimization without a proper solver or
regression routine (Petrostreamz AS, 2010). The example of Optimizer file can be
seen in Fig.6.
1.4.4. Streamz
Streamz is a generic program to convert fluid streams from one to another
characterization. It describes the number and names of components making up the
stream, and optionally their properties such as molecular weight, critical pressure and
temperature and other properties. Streamz is driven by a single or more input file soLuky Hendraningrat – M.Sc. Thesis, 2010 Page 4 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach called driver and with an include file or more (Petrostreamz AS, 2010). It is
comprised of named characterizations, their properties, and defines conversions
among them (see Fig.7).
This file allows the user to specify opening of stream files, containing the streams in
particular characterizations, and also commands for filtering, combining and copying
streams from one file to another. The program automatically invokes conversions
among the differing characterizations as required (see Fig.8). Typically the program
commands are generated by the pre-processors or modules, ensuring the syntax to be
correct. This program also allows us to get standard output file so-called log file.
Inside this file, we can see various messages during Streamz execution such as error
file (Petrostreamz AS, 2010).
1.4.5. Linkz and Maplinkz
In order to connect input or output file (as number and or strings) into Optimizer,
Linkz is needed. Then Optimizer will execute to be optimized or other purposes. This
is a unique technology from Pipe-It that is shown in Fig.9. One or more number and
or strings are able to connect in one file. In order to make it fast to connect, it can be
set to search the line and token either from beginning or at the end of the file (see
Fig.10). The token that we have could be addressed within Pipe-It, either by the
MapLinkz (LinkzUtil) or Optimizer as shown in Fig.11.
1.4.6. Pipe-Itc
Pipe-Itc allows Pipe-It to be embedded within any other software that can launch an
OS command-line. It means Pipe-It can recursively call many instances of itself from
within a top-level graphical instance as shown in Fig.12. This is the basis of multilevel local and global optimization made possible by Pipe-It. Pipe-Itc is non-GUI
version of Pipe-It that can be invoked from other programs or by Pipe-It itself, which
means it allows running a model from a command line. In such case the Pipe-It
Runner is only being invoked directly. The user has to specify the Optimizer filename and the composite-path within which optimization should be run. Whenever this
process is finished, the sub-Pipe-It run is terminated and the main run can continue
with the process next in line.
1.4.7. Plot
Plot application allows depict the graphs directly from Streamz format into various
format such as bitmap/JPG format, Portable Document Format (PDF), etc. It can be
found in the Petrostreamz installation as default plotting program (so-called Plot.exe).
The script can be written as command. This command is created into plot format. The
Plot results are shown in APPENDIX A.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 5 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 1.5. Visual Basic Scripting
The Visual Basic Scripting (VBScript) is a light version of Microsoft's programming
language Visual Basic. Microsoft VBScript Edition brings active scripting to a wide
variety of environments. it uses the component object model to access elements of the
environment within which it is running like File System Object (FSO) is used to
create, read, update and delete files (Wikipedia, 2010). In this study, VBScript is
being used for scripting logic controller in RC project for control, formulate and
distribute the data within Pipe-It project. The script can be seen in APPENDIX C.
There are at least three reasons of using VBScript in this project as taken from
reference (Wikipedia, 2010). Firstly, VBScript is widely used among system
administrators in the Microsoft environment (Operating System with Microsoft
Windows). This situation may change with the promotion and increased use of
Windows PowerShell. Secondly, VBScript is the scripting language for Quick Test
Professional, a test automation tool. The last reason is the adoption of VBScript as the
internal scripting language for some embedded applications, such as industrial
operator interfaces and human machine interfaces. The format of VBScirpt file is
using stand-alone format (file extension.vbs). The script can be invoked in two ways
(Wikipedia, 2010).
1. Wscript.exe is used to display output and receive input through a GUI, such as
dialog and input boxes.
2. Cscript.exe is used in a command line environment.
Table 1 shows the key point of VBScript language such as: procedures, control
structures, constants, variables, user interaction, array handling, date/time functions,
error handling, mathematical functions, objects, regular expressions, string
manipulation, and so on.
1.6. Specification of Personal Computer Employed
The simultaneously parallel running a number of reservoir models are commonly
performed in several computers. However, this thesis is tried running in one machine
(stand-alone mode). In order to do this, it should be modified in some files that will be
described in next section. The consequence, it is going to run slower because it has
many jobs to do in the same time. However the reservoir models run here is quite
simple. Hence there is no significant effect to stand-alone mode. This study is using
author’s PC with the specification as shown on Table 2. All of dataset and extension
were running with the similar condition of CPU.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 6 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 2. RESERVOIR COUPLING
2.1. Philosophy
The purpose of reservoir coupling is to keep hold of the original simulation models of
the individual reservoirs dataset and run them parallel as separate processes either on
one or several machines/computers. Recent years, fully coupling scheme becomes an
important issue as a part of Integrated Asset Management. Generally it consists of
three main modules which are Sub-surface module, Controller module and Surface
network module whereas the network balancing is kept among them. To link and
control the inter-process communication among them, the PVM passing message is
usually used.
Reservoir coupling is part of sub-surface module and becomes a main focus on this
study. It usually consists of one Master data and one or several Slaves data. Master
data may characterize one of the slave data or as a” dummy” reservoir. The master run
as a “brain” where responsible for allocating rate targets to the slave groups, and to
comply with the global constraints of the coupled system to keep balancing. The
homework that should be done is how logical process behind it. At the beginning of
each time step in the master run, it commands each slave group what it can produce
and inject at the current reservoir conditions proportionally.
Actually each slave may also have their own flow constraints which must be applied
at a lower level, hence forming a hierarchy of production and injection constraints
(see Fig.13). The higher the level, the smaller the level number then the constraint in
the lower level could be replaced by the higher one. Combining the production and
injection streams to obey all the constraints can be a difficult task (Haugen, Holmes
and Selvig, 1995). This process is called RC dynamic model. Therefore in this study,
one of the tasks is to solve this dynamic problem with some logical approachment by
using scripted logic controller.
2.2. Master and Slave Data
This part will describe general terms that are using in RC runs. The Master and Slaves
data described as follow are the useful and contains as general use in ECLIPSE.
Besides Master is responsible for allocating rate targets to the slave groups, and to act
upon the global constraints of the coupled system, it should contain the group
hierarchy down to the slave groups in the each slave reservoirs. Whereas slave groups
themselves are present in both the master and the slave runs to be synchronized with
particular keyword. Therefore, they will connect to all groups mentioned from all
slaves reservoir and then simulations will be coupled. The synchronization process
would be described next.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 7 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach As mentioned above, RC usually consists of one master dataset and one or more
slaves dataset. They are two methods how to create master data (ECLIPSE Technical
Description, 2009):
1. Master data from one of slave dataset
Master data is created from one of slave reservoirs dataset where it has its own
wells, groups, PVT and fluid properties, schedule, etc. In addition it also contains
the group hierarchy down to the top level groups of the slave reservoirs datasets.
This method would be suitable for a main reservoir having a number of smaller
satellite reservoirs producing into its surface network facilities (Haugen, Holmes
and Selvig, 1995).
Fig.14 depicts a schematic representation of three coupled reservoirs, one of
slaves as master run process and the other two as Slaves. In each slave Reservoir,
one or more groups must be designated to have their production and injection
targets set by the master that is called as slave groups.
2. Master data as “dummy” reservoir
Master data as “dummy” reservoir is created as it is of common format of dataset.
However the data such as PVT, Rock and fluid properties, grid would be created
as dummy from one of slave data. However it must contain the group hierarchy
but no wells. However it also contains the group hierarchy down to the top level
groups of the slave reservoirs datasets. The start date event must be earlier than all
slaves. Then master datasets is responsible for allocating rate targets to the slave
groups, and to obey the global constraints of the coupled system.
Fig.15 depicts a schematic representation of three coupled-reservoirs as slaves,
with one dummy reservoir as master run process. Conversely, a slave reservoir
may have more than one slave group if necessary, as long as one slave group is
not subordinate to another.
The Slave dataset is similar with what usual dataset have such as PVT, rock and fluid
properties, grid block size, start date, well schedule, etc. In addition, it is needed a
special keywords to synchronize with master dataset. The special keywords needed
would be described next. They will be coupled to the master process by group
production and injection constraints. Once more, it should be remembered that the
setting of start date in each slave dataset must be later than the start date of the master
dataset run.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 8 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 2.3. Reservoir Coupling Feature in ECLIPSE
Reservoir Coupling (RC) is one of the special extensions from ECLIPSE simulator
suite and its license is separated from ECLIPSE reservoir model. The function of this
feature is to couple a number of black oil reservoir models to allow for constraints on
their overall production and injection rates, and optionally the sharing of a common
surface network. It provides a convenient way of uniting these reservoir models to
comply global production and injection constraints, with minor change to their input
data.
The reservoir simulation models are run as separate processes, under the control of a
master process which commands their production and injection constraints at each
time step. The current RC coupling feature is only limited for ECLIPSE 100 (Black
oil models) and maximum runs for 20 Slaves.
2.4. Group Control of Production and Injection
The production and injection target phase value can be controlled and distributed with
group control level. In addition, it will also give the feedback to the lower level like
each subgroup or wells if the production and injection higher than target or constraint.
The purpose is to keep balancing between subsurface and surface process capacities.
This logical process is trying to be adapted and translated into scripted logic controller
approach as dynamic model process.
It is common to have several wells grouped into particular group name and one field
has possible more than one group. In order to control from the groups, ECLIPSE
provides control tools using keyword GCONPROD and GCONINJE located in
SCHEDULE section for the production and injection respectively. As we can see from
Fig.13, the hierarchy of group control is higher the well control. Hence if those
keywords above existed, they will follow the group control rules. The box below is an
example for group control.
Based on ECLIPSE Technical Description 2009.2 version, the group’s target rate is
apportioned between the individual wells in proportion to each well’s specified guide
rate or potential rate (if no specific guide rate).
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 9 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach SCHEDULE
GCONPROD
-- GROUP
-- NAME
'FIELD'
'PLAT-A'
'PLAT-B'
'GR-*'
/
GCONINJE
-- GROUP
-- NAME
'FIELD'
'FIELD'
'PLAT-A'
'PLAT-A'
'SP-C'
'SP-C'
'SP-B'
'GR-*'
'GR-*'
CNTL
MODE
'ORAT'
'LRAT'
'NONE'
'NONE'
PHASE
INJ
'GAS'
'WAT'
'GAS'
'WAT'
'GAS'
'WAT'
'WAT'
'GAS'
'WAT'
OIL
WATER
RATE RATE
40000 /
2*
2*
5*
CNTL
MODE
'REIN'
'VREP'
'FLD'
'FLD'
'FLD'
'FLD'
'VREP'
'FLD'
'FLD'
GAS
RATE
70000
55000
LIQU
RATE
20000
1*
LIMIT
ACTION
AVAIL
FLD
GUID
RATE
'RATE' 'NO' /
'RATE' 'YES' /
'YES' 1000
SRAT VRAT REIN VREP AVAIL GUID
FLD RATE
1*
1*
0.5 /
1*
1*
1*
0.8 /
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1.0 'NO' /
5*
100
5*
100
'LIQ'
GRAT
DEFN
'VOID'
'NETV'
'VOID'
'NETV'
/
/
/
/
'RATE'
'RATE'
/
/
2.5. Guide Rate and Potential Rate
There are two control methods here, Group control and Individual control. The former
means that a well that is producing its full share of the group’s production target.
Meanwhile the latter means a well constrained by its own flow or pressure limits. In
this study, group control is the main focus.
The guide rate and potential rate become important issues in reservoir coupling
mechanism in both techniques approach. The target rates of the wells under group
control are set in proportion to their guide rates, to meet the group or field production
target. If the guide rate phase differs from the phase under control, the guide rate is
translated into a guide rate for the controlled phase using the well’s flow rates at the
beginning of each time step. By default, the well’s guide rate is set equal to its
production potential of the phase under group control (Technical Description, 2009).
Master data will control each phase automatically to meet the target and constraint
data.
This mechanism above is used here by using VBScript as scripted logic controller.
The logic approximation is used to give a dynamic feedback to each group each time
step hence the constraint will change depend on their previous production and
injection. Since the constraint will give a great affect to the production and control
system. This logic approximation controls the group level production and injection as
Master Data does in ECLIPSE. The detail logic approximation is described in the next
part. The script can be seen in APPENDIX C.
The potential rate is the flow rate the well would instantaneously achieve in the
absence of any rate constraints or lower the target or constraint set as represent the
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 10 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach production or injection rate. The acting constraint for a well’s potential is thus either
its BHP limit or its THP limit, whichever is the more restrictive (Technical
Description, 2009).
At the start of the time step, the master will command each slave to report its
unconstrained flow potentials. These calculations are performed sequentially, but they
take up a very small fraction of the overall time. At the time step starts each iteration,
Master Dataset determines the flow targets of the slave groups, and asks the slaves to
report the flows they can sustain under the constraints.
The relationship between guide rate and potential rate are shown in the formula
(Eq.1):
GR p =
( POTp ) A
B + C ( R1 ) D + E ( R2 ) F
…………………………….
(1)
Where the GRp is the well’s or groups guide rate of the nominated phase (oil, water,
gas or liquid), POTP is well’s or groups potential flow rate of the nominated phase
(oil, water, gas or liquid), Alphabets (A-F) are user-supplied power and coefficients.
The R1 and R2 are the phase potentials ratios which depend on the nominated phase
above.
2.6. Synchronization Mechanism
The procedure flowchart of synchronization in the ECLIPSE reservoir coupling for
each time step Master data run can be seen in Fig. 16. As mentioned before that the
Master data should have start date earlier than all slaves. Each slave may have
different start date. Then the slave, who starts later, will be a quiescent until Master
data starts it without contributing any production and injection. Thus the couple
between Master and slaves data is synchronized with time steps of Master process. At
the beginning of each time step in the master process, it requests each slave group
what it can produce and inject at the current reservoir conditions. It uses this
information to apportion the global production and injection rate targets between the
slave groups. The procedure continues until the master run finishes. Its final task is to
send a signal to the slave runs to terminate. If a slave run finishes before the master
run, the master run will continue without any production or injection from the slave.
However, the master run can be made to stop in these circumstances by setting the
“end run” flag of its master groups in item 8 of keyword GECON. Of course, if a
slave runs stops due to an error condition, the master and all the other slave runs will
also stop. To make a greater accuracy, the coupling event can be made by reducing
the maximum time step size in the Master data using keyword TUNING (ECLIPSE
Technical Description, 2009).
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 11 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 2.7. Activation ECLIPSE RC Feature in Stand-alone Mode
In this study, the RC feature in ECLIPSE is launched by a using single computer
(laptop) and stand-alone mode. It means that the ECLIPSE simulator suite is installed
in the laptop and run by using server license/s. The ECLIPSE simulator suite 2009.2
version is used here. Since Reservoir coupling is the special extension of ECLIPSE
simulator suite, it should do special things prior to activate reservoir coupling feature
as follows:
2.7.1. Check Available License
The Reservoir coupling has its own FLEX license in ECLIPSE simulator suite 2009.2.
It could be checked to the c:\ecl\ to the license.txt file. The example of available
license for reservoir coupling is written in license.txt file as follows:
FEATURE
rescoupling
lmgrd.slb
2005.000
permanent
uncounted
\3613EBB29BC8VENDOR_STRING=GEO HOSTID=ANYSIGN=C393D30017A6
In addition, the FLEX license checking procedure checks for the availability of an
appropriate license for an ECLIPSE Options when a keyword activating the feature is
encountered. For instance in reservoir coupling as follows:
RUNSPEC
…
LICENSES
'rescoupling' /
/
2.7.2. User Configuration File
The eclrun.config file is installed automatically during an ECLIPSE installation on a
local or remote machine. The default location is c:\ecl\macros. The eclrun.config is a
XML formatted file. The new XML format of the file is consistent across all the
supported configuration files in the hierarchy. The configuration file is meant to be
used for debugging and testing purposes only (ECLIPSE ECL-Run, 2009).
The user configuration file content are separated depends on the Operating System
used. Since in this thesis Windows Vista is used as operating system, the default
content for Windows as follows:
<Configuration>
<Eclrun>
</Eclrun>
</Configuration>
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 12 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Once ECLRUN is to launch a parallel case, it checks to see if there are adequate
processors to run the process. To do this, it takes the number of ECLIPSE processes
currently running and adds the number of processors that it requires. Then it compares
resulting total to the value set by the ECLNJOBS configuration variable (ECLIPSE
Manual Reference, 2009).
If the value of the ECLNJOBS configuration variable is greater than or equal to the
number of processors required, as summarized by ECLRUN then the job is launched.
Otherwise it will terminate with an error stating that there is an insufficient number of
CPUs. The EclNJobs variable defaults to the number of CPUs of the machine.
As default, the CPUs machine used here has 2 processors. It means that only 2 jobs
can be run. To solve this, check DATA file and ECLRUN configuration files. There is
only positive integers are accepted in EclNJobs configuration value. For instance we
have to run one master data file and 3 slave’s data run process. Totally we have 4 jobs
running. Then we can re-configure as follows:
<Configuration>
<Eclrun>
<EclNJobs>5</EclNJobs>
</Eclrun>
</Configuration>
2.7.3. Installing Intel Message Passing Interface (MPI)
The Intel Message Passing Interface (MPI) installation is necessary to run stand-alone
RC feature in ECLIPSE. This software is included in ECLIPSE CD software package
as third party software where it should be installed separately from ECLIPSE feature.
The step of installation can be read from ECLIPSE suite installation guide. After
installing this software, it must register with stand-alone domain and user name. The
purpose of installing Intel MPI is to run Eclipse Model in parallel mode such reservoir
coupling.
2.8. Special Keywords of ECLIPSE Reservoir Coupling Feature
Table 3 shows keywords control output of data relevant to the Reservoir Coupling
Facility either in Master or Slave dataset are optional to be added. Those keywords
are intended to examine the rate constraints in the file that are applied to the slave
groups and located at SUMMARY section on ECLIPSE dataset. Once no rate limit is
being applied, the value of the limit is normally set default to 1.0E20. Towards avoid
this, infinite rate limits are reset to zero before writing to the Summary File. Those
keywords could be located at SCHEDULE section on ECLIPSE datasets. It should be
note that especially for running standalone each slaves, we can only deactivate
keyword GRUPSLAV.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 13 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 3. RESERVOIR COUPLING APPROACHES
3.1. Reservoir Model Description
In order to develop alternate RC solution, the comparison and verification of the
results between two approaches of reservoir coupling should be made. The examples
application was taken from ECLIPSE examples dataset that are provided in ECLIPSE
2009.2 version. They are three isolated black oil reservoirs contribute to an offshore
oil field, so-called Reservoir-A (RCSLAVE-1), Reservoir-B (RCSLAVE-2) and
Reservoir-C (RCSLAVE-3). In the future, Reservoir-B is included to account for tieins of satellite Platform (called SP-B) at Platform-B.
This case has multiple operating conditions that need to be honored at different levels
from Field to the group level. The desired operating conditions, as illustrated in Fig.2,
are plateau field oil target, liquid-facility limit, and gas-facility limit. According to
logic controller approach, the modification should be done each Slave dataset in
group control level within keyword GECONPROD and GECONINJE since originally
the Slave is controlled by ECLIPSE Master Dataset. The detail of each reservoir
models can be described as follows.
Reservoir-A (RCSLAVE-1)
The simulation reservoir model of Reservoir-A is saturated oil-gas system, threephase with dry gas (no vaporized oil), oil and water. It has 3x9x3 grid system (81
grids), divided into three layers with thick oil layer 1,990 ft. The reservoir is
homogenous with equal horizontal-lateral permeability to 300 md with verticalhorizontal permeability ratio is 0.1 and constant porosity at 30%. The initial condition
was taken to be saturated oil reservoir which has thin gas cap 10 ft and aquifer. Top of
reservoir located at 7,000 ft, where GOC and WOC located at 7,010 ft and 9,000 ft
respectively. Initial reservoir pressure was taken at datum (GOC) of 4,000 psia.
This reservoir has 10 wells both production and injection which is divided into 2
groups: Group-A1 and Group-A2. There are only some wells opened at the beginning.
Group-A1 has 3 oil production wells and 1 gas injection well. Meanwhile group-A2
has 3 oil production wells and 3 water injection wells. The rest will be opened if the
target or constraint can not be reached or out of limitation. This reservoir has its local
constraint of production and injection data. The minimum Bottom Hole Pressure
(BHP) for all production wells is 2000 psia and for both gas and water injection is
5500 psia. The economic limit rate for minimum oil production and maximum water
cut (WC) are 500 BOPD and 70% respectively. A half gas produced is injected to
Group-A1 only. Meanwhile Group-A2 is injected by water produced approximately
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 14 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 80 %. The hierarchy level of wells is located at second level. The start date for this
reservoir is January 1st, 2010 and will be end after 730 days.
Reservoir-B (RCSLAVE-2)
The simulation reservoir model of Reservoir-B is dead-oil system, two-phase with oil
and water without contain dissolved gas. It has also 3x9x3 grid system (81 grids)
similar with previous Reservoir, divided into three layers with thick oil layer 1,990 ft.
The permeability, vertical-horizontal permeability and porosity are identical with
Reservoir-A.
All of the production from Reservoir-B will gather to Satellite Platform-B (SP-B).
This reservoir is going to enter the Platform-B 2 months after Reservoir-A and
Reservoir-C started producing. The SP-B is divided into 2 groups: Group-B1 and
Group-B2. Currently, Group-B1 has 3 production wells and Group-B2 has 3
production wells and 3 water injection wells. In the future, total this reservoir has 9
wells both production and injection. This reservoir has also its local constraint of
production and injection data. The minimum Bottom Hole Pressure (BHP) for all
production wells is 2000 psia and for both gas and water injection is 6000 psia. The
economic limit rate for minimum oil well production and maximum water cut (WC)
are 500 BOPD and 70% respectively. The hierarchy level of wells is located at third
level.
Reservoir-C (RCSLAVE-3)
The simulation reservoir model of Reservoir-C is saturated oil–gas system, threephase with dry gas (no vaporized oil), oil (with dissolve gas) and water. This reservoir
is identical with Reservoir A. This reservoir also has 10 wells both production and
injection which is divided into 2 groups: Group-C1 and Group-C2. However all of the
group production from Reservoir-C will gather to Satellite Platform-C (SP-C).
Currently Group-C1 has 3 oil production wells and 1 gas injection well. Meanwhile
group-C2 has 3 oil production wells and 3 water injection wells. This reservoir has its
local constraint of production and injection data. The minimum Bottom Hole Pressure
(BHP) for all production wells is 2000 psia and for both gas and water injection is
5500 psia. The economic limit rate for minimum oil production and maximum water
cut (WC) are 500 BOPD and 70% respectively. The start and finish event date for this
reservoir is similar to Reservoir-A. A half total gas produced is injected to Group-C1
only. Meanwhile Group-C2 is injected by water produced approximately 80 %. The
hierarchy level of the well is located at the lowest level (third level).
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 15 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 3.2. Coupling Scheme
The coupling scheme in this study is developed as similar as original ECLIPSE
Master Dataset where the group control (keywords GECONPROD and GECONINJE
in SCHEDULE section) each slaves level becomes the main focus of controlling,
formulating and distributing the target and constraint. The production streams from
those reservoirs above are coupled by the field production rate constraints, which are
imposed by the process capacities of the platform. Reservoir-A production stream will
be gathered to Platform-A (PLAT-A). The others will be gathered into Platform-B
(PLAT-B). Each platform has their own production and injection rate constraints,
which are dictated from Master data. The event date is going to start on January 1st,
2010 and has 730 days time steps running. The coupling scheme of this project is
shown in Fig.2.
3.3. Logic Approach
A Heuristic method has been applied to overcome an optimal constraint solution. In
this case, reservoir engineering knowledge is used to manage the main problem in
controlling the constraint rate each phase in each slave. Therefore the mathematics
logic approximation should be developed and proven to match with ECLIPSE RC
dataset.
3.3.1. Production Constraint
The oil field production target becomes the highest priority target to be fulfilled that is
set equal to the plateau rate of 40,000 BOPD and platforms PLAT-A and PLAT-B are
required to produce equivalent or less than then quantities of liquid and gas constraint,
then PLAT-A and PLAT-B should be given equal guide rates for the liquid phase as
shown in Fig.2.
n
∑
i =1
n
∑
i =1
n
∑
i =1
n
∑
i =1
Qo , i ≤ Qo , F
Qg , i ≤ Qg , F
Qw, i ≤ Q w, F
Qf ,i ≤ Qf ,F
, (BOPD) …...………….
(2)
, (Mscf/day) …..………..
(3)
, (BWPD) …...…………
(4)
, (BFPD) …...………….
(5)
Where i is number of reservoir or group or well (i, n = 1, 2, …. , n) and Q p , F is phase
field target and constraint.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 16 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach At the initiate of the time step, the master will command each slave to report its
unconstrained production and injection flow rate potentials. These calculations are
performed sequentially, but they take up a very small fraction of the overall time. At
the time step starts each iteration, it determines the flow targets of the slave groups,
and asks the slaves to report the flows they can sustain under the constraints.
The liquid guide rates are translated into oil guide rates by multiplying them by each
platform’s oil-liquid ratio from the previous time step. Both platforms are then given
oil rate targets in proportion to their oil guide rates, and placed under control from the
higher (field) level. Hence in the logic approachment, it assumes if GOR and WC
constraints are constants for next time step target and constraints.
The balancing procedure should be developed to fulfil target rate. The logic scheme
this case here, if the PLAT-A which has only Reservoir-A, is unable to fulfil its oil
target due to its constraint of gas and water handling, PLAT-B will produce oil higher
to cover the remains of to fulfil the oil field rate target.
Following equations are logical translation of the coupling scheme above:
Qo , F = Qo , PLAT − A + Qo , PLAT − B
, (BOPD) …...………….
Qo , PLAT − A = Qo , A
, (BOPD) ...…………….
(6)
(7)
The entering new reservoirs that will tie-in with existing reservoir are common
occurrence in the real case. In this example, Reservoir-B will enter to PLAT-B and
shared their production and injection to fulfill the target oil rate. At the beginning
when reservoir pressure in Reservoir-B is still high, then Reservoir-C should reduce
the production to keep balancing.
At the beginning of n-days, PLAT-B is fully contributed from Reservoir-C.
Afterwards, the both Reservoir-B tie in and produce proportionally with Reservoir-C
to fulfill the main field rate target.
Qo , PLAT − B = Qo , C
, at time step < n-days ………….....
(8)
Qo , PLAT − B = Qo , B + Qo , C
, at time step ≥ n-days; (Qo,B = Qo,C)
(9)
Since this field is contributed from two Platforms, PLAT-A and PLAT-B, which each
Platform has its own production rate constraints. These constraints are set due to
capacity limitation at the surface process. In definition, production and injection of
PLAT-A is contributed only from Reservoir-A. Meanwhile, PLAT-B is divided into
two: Reservoir-B (SLAVE2) and Reservoir-C (RCSLAVE3). The PLAT-A has liquid
and gas process limitation capacities: 20,000 BFPD of liquid and 70,000 Mscf/day of
gas. The liquid constraint is put in higher priority than gas constraint. Meanwhile
PLAT-B has gas produced capacity handling where the maximum of 55,000
Mscf/day.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 17 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Since oil field production target (Qo,f) is given to 40,000 BOPD and liquid constraint
for PLAT-A is 20,000 BFPD, the balancing production rate as follows:
Qo , PLAT − B = Qo , F − Qo , PLAT − A
, (BOPD) ………………
(10)
Qo , PLAT − A = QoA = Q f , A − Qw, A
, (BOPD) ………………
(11)
The liquid guide rates are translated into oil guide rates by dividing them to each
platform is water-liquid ratio (WC) from the previous time step. Hence the WC is
assumed constant for next time step. The oil and water flow rate are taken from
previous time step for Slave-N, with the example calculation for PLAT-A as follow:
Qw, N (TS −ΔTS )
WC N (TS ) =
Q f , N (TS −ΔTS )
, (fraction) …………….
(12)
Qo , PLAT − A(TS ) = Q f , A (1 − WC A(TS ) )
, (BOPD) ………………
(13)
From Equation above, the constraint oil rate for PLAT-B in Eq. 6 can be calculated.
Therefore the oil rate constraint for Reservoir-B and Reservoir-C can be solved. If all
reservoirs could not fulfill the oil field target, a new well can be drilled and opened.
Afterwards, the oil rate can be allocated based on their potential rate with Bottom
Hole Pressure (BHP) as limitation.
For gas production constraint case, PLAT-A and PLAT-B have gas production
constraint of 70,000 Mscf/day and 55,000 Mscf/day respectively. Then it is not true if
we put proportionally divided by each group. Besides it represent as not feedback
dynamic model, it will affect to liquid produce from each wells. It should be
remembered that each well has own well constraint for oil, WC and gas-oil ratio
(GOR). To solve this problem by assuming constant GOR from previous time step,
following approximation is used as approach for gas production group constraint by
choosing the lowest gas production rate each group in a reservoir.
Qg ,i (TS )
n
⎞
⎛
⎜ (Qg ,i, x ∑Qg , i ) ⎟
i =1
⎟
=⎜ n
n
⎟
⎜
⎜ ∑Qg , i + ∑Qgi, i ⎟
i =1
⎠(TS −ΔTS )
⎝ i =1
,( Mscf / day )……………
(14)
Where gas rate ( Qg ,i , ) and gas injection rate ( Qgi , i ), is taken from previous time step.
Since during Plateau rate, the GOR will be higher and higher until some time, then the
constraint should have a threshold for next calculation. The gas threshold constraint
has set to be greater or equal to gas rate at previous time step.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 18 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach If Qg ,i (TS ) is greater than gas threshold constraint, then use Qg ,i (TS ) as gas constraint for
next calculation (Use the greater value between Qg ,i (TS ) and gas threshold for next
time step gas rate constraint).
Then for another group, the gas constraint form higher gas rate can be formulated as
follows:
Q g , j = Gas Constra int − Q g ,i
, ( Mscf / day ) …...……..
(15)
Where the subscript i and j are refer to group name of a reservoir.
Because Reservoir-B is dead-oil reservoir which is containing non-zero Gas-Oil Ratio
(GOR) and none gas injected there, then the gas rate constraint should be set to
infinity as default (1.E+20 Mscf/day) each group then Eq. 15 could be applied.
The developed logical approachment here is only local approachment to the current
case that depends on the production- scheme management. The logical approachment
above is therefore going to be translated and scripted into logical controller,
Optimizer and VBScript to develop alternate RC solution. In RC ECLIPSE feature the
group constraint in the slave’s dataset will follow automatically the master dataset. In
this example, the applied reservoir management scenario and process capacity limits
are chosen with the purpose of illustrating production and injection coupling effects.
The reason of allocation strategy is also not necessary to discuss intensively here or it
might be an optimization scenario after alternate RC solution has been verified with
RC ECLIPSE feature.
3.3.2. Injection Constraint
Both gas and water injection rate are a function of the production performance (see
Fig.2). The half field gas produced is being re-injected to Reservoir-A and ReservoirC. Meanwhile the 0.8 water produced is being injected to those reservoirs. The main
difficult part is how pre-estimating the injection rate since Reservoir-B also will
contribute the gas production after it enters the production system after 58 days. For
water injection, it is easier because the all water produced from Reservoir-B is
directly re-injected without sharing with other reservoirs in the system. At the
ECLIPSE master runs, it apportioned the available injection gas between Reservoir-A
and Reservoir-C in proportion to their volumetric voidage.
Each Reservoir/Slave has two groups that has different injection phase to them. If the
injection phase to the groups are equal, the group rate constraint (for phase defined
such as: oil, water, liquid, gas) in keyword GCONPROD put proportionally. For
instance, Reservoir-A (RCSLAVE-1) has two groups that have been described above.
The Group-A1 is injected by gas which is from a half of gas surface produced,
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 19 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach another is injected by water. Through using engineering sense, Group-A1 is going to
produce more gas than in Group-A2.
However, when each slave was simulated individually the injection constraints had to
be pre-estimated and formulated. The first step is put all reservoirs unconstrained to
know their injection potential then choose the highest gas injection rate one in
reservoir as a base formulation. Thereafter formulate the injection factor (α) each
phase (subscript p) as the injection control to the possibly highest injected rate
reservoir. The following approximation is used in the logical scripted logic controller.
⎞
⎛ n
+ Q pi , i )inj .res + ⎜ ∑ Qp , i ⎟
⎠ Non −inj .res
⎝ i =1
, 0 <α p ≤1
n
n
⎞
⎛
⎜ ∑ Qp , i + ∑ Q pi , i ⎟
i =1
⎠ inj .res + Non −inj .res
⎝ i =1
(Q
αp =
p, i
, (fraction) …....
(16)
, (fraction) …....
(17)
, (fraction) …...
(18)
For Gas injection factor;
(Q
⎛ n
⎞
+ Qgi , i )inj .res + ⎜ ∑ Qg , i ⎟
⎝ i =1
⎠ Non−inj .res
, 0 < αg ≤ 1
n
n
⎛
⎞
⎜ ∑ Qg , i + ∑ Qgi , i ⎟
i =1
⎝ i =1
⎠ inj . res + Non −inj . res
g, i
αg =
For Water injection factor;
(Q
αw =
w, i
⎞
⎛ n
+ Q wi , i )inj .res + ⎜ ∑ Qw, i ⎟
⎠ Non −inj .res
⎝ i =1
n
⎞
⎛ n
⎜ ∑ Qw, i + ∑ Q wi , i ⎟
i =1
⎠ inj . res + Non − inj . res
⎝ i =1
, 0 <αw ≤1
Where Qp , i phase (gas, water) flow is rate for highest possibility injection rate
potential in particular reservoir and Qpi , i is phase (gas, water) injection flow rate for
highest possibility injection rate. At the beginning, the injection allocation gives
Reservoir-A and Reservoir-C an equal share of the available field injection rate. Once
Reservoir-B is put on production, then the apportioned injection with formulas above
will be applied.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 20 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 3.4. Sample Approach: RC with ECLIPSE RC Special Feature
In this technique, the RC feature in ECLIPSE is initialized and launched through
Pipe-It project (see Fig.19). The previous section has described how to activate
ECLIPSE Reservoir Coupling Feature in stand-alone mode. The process of reservoir
coupling is similar to ECLIPSE Launcher. To launch ECLIPSE through Pipe-It
project, it needs writing a command to the scripter in the Pipe-It component. There are
two keywords can be written to the scripter in the Pipe-It for stand-alone mode, here
as follows:
Scripts to launch and run ECLiPSE Master run:
c:\ecl\macros\eclrun.exe eclipse RCMASTER.data
OR
cmd /c $eclipse RCMASTER
The scripts above will call the RCMASTER.DATA and run reservoir coupling mode.
The reservoir coupling model comprises three separate simulation models controlled
by a master model. The master model that was created is the second type of master as
“dummy” reservoir without wells and has single grid block. Prior to execute into
ECLIPSE, Master model should be run into PRE-ECL with Platform Summary file
(PSM) input file which is containing detail information for platforms, wells, and
perforations. All slaves should be connected to scripter and run together with Master
run. Then every slaves and master has report file (PRT format). The schematic of this
sample approach through Pipe-It is depicted in Fig. 17.
The licenses that we need to process this case are 4 licenses (for a master file and 3
slaves) and 1 license for reservoir coupling. Hence the RC simulation could not run
without having RC license.
In addition, Pipe-It project needs additional keywords for running RC ECLIPSE
feature. By adding keywords UNIFOUT and UNIFIN in the RUNSPEC section of
dataset to release UNSMRY file that needed to convert ECLIPSE output File to
Streamz/strexcel with Streamz format (.str). Then with creating driver file, Streamz
will collect and launch the results of production and injection profile. These results
(with Streamz format) then will be compared and discussed in the next part.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 21 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach RUNSPEC
TITLE
DIMENS
....
....
....
....
UNIFOUT
UNIFIN
3.5. Proposed Approach: RC with Scripted Logic Controller
In this section, it is going to develop alternative RC solution in by solving the current
limitation in fully RC dynamic models through Pipe-It Project. In this technique, it is
introducing how to replace the Master Dataset which contains global production and
injection constraint with Optimizer and VBScript as Superset Master and logic
controller. Optimizer and VBScript logical approximation are made as equal as
Master run does in RC ECLIPSE feature. In the Coupling Scheme part, it has been
described the logical approximation behind the Master runs. Of course, the minor
changes to each original Slave dataset should be done. It will need more effort to do
this especially to logical process flow as shown in Fig.3. In this approach, the input
file will be separated into five integrated sections (see Fig.18) that Optimizer and
VBScript become a key control as follows:
3.5.1. Initial Run
The essential purpose of initial run each slave reservoir models is to construct and
provide the potential production and injection rate each individual reservoir. This
potential rate is needed as guide rate for controlling production and injection rate each
group at next time step (transition and restart runs). At the initial runs, the production
and injection of each group are set proportionally. The VBScript will command to
fetch production and injection value from report file (PRT format) that is needed for
next time step input calculation as described above (see APPENDIX C).
There are two methods in executing the composite: Parallel and Sequential. Since RC
ECLIPSE is running in parallel mode, then each slave here will be run in parallel
execution as well through Pipe-It. Prior to run the project, minor change should be
done inside slave dataset. For instance, the modification in RCSLAVE-1 dataset is
shown in Fig.21. Several modifications and their purpose are described as follows:
o RUNSPEC Section
In this section, there are located additional keywords to support this RC
approach which are: UNIFOUT, UNIFIN and SAVE. It is necessary to put
keyword SAVE for restart run where the file has to be saved for each time step
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 22 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach report. However, it needs modification in SOLUTION and SHEDULE
sections as well to create SAVE file. Hence this construction then as a part of
preparation for restart runs (if using fast restart).
o SOLUTION Section
In this section, it is necessary in ECL100 runs to add keyword RPTRST to
create restart files which is followed by integer value. This keyword is put in
the SOLUTION section. In this case, we use basic equal to two. This means
restart files are created at every report time until this switch is reset and all are
kept.
RUNSPEC
TITLE
GRID
EDIT
PROPS
REGIONS
SOLUTION
…
RPTRST
BASIC=2 /
In other hand, in keyword RPTSOL, it can be added keyword 'RESTART=2' to
create restart files. The meaning of this keyword is and mnemonic “2” is to
give output of the initial RESTART file every report time until the switch is
reset and one are deleted.
o SCHEDULE Section
Similar with RPTSOL, keyword RPTSCHED, it is added keyword 'RESTART=2'. The
meaning of this keyword and mnemonic “2” is RESTART files are created at every
report time until the switch is reset and one are deleted. If both keywords are showed,
the RPTRST has higher prioritized and others will be overridden. However keyword
RPTRST is more flexible such if we want to put additional data to restart file. In this
case we add keyword RPTSCHED to report production and injection summary, that
are needed data to be extracted there. The further explanation will be seen in restart
runs section. In order to make easier the link inside the Pipe-It, the group control
production and injection is separated as include file. The initial time step (tinit) run is
put at day 1 (one) or January 2nd, 2010. The keyword SAVE file is needed for restart
run that will be explained more detail in the next section.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 23 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach RUNSPEC
...
...
...
...
UNIFIN
UNIFOUT
SAVE
/
GRID
...
EDIT
...
PROPS
...
REGIONS
...
SOLUTION
...
RPTRST
BASIC=2 /
RPTSOL
'PRES' 'SWAT' 'RS' 'FIP=2' 'EQUIL' 'RESTART=2' 'RSVD' /
SUMMARY
...
SCHEDULE
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'RESTART=2' 'WELSPECS' /
INCLUDE
SCHEDULE1-INIT.INC /
TSTEP
tinit /
/
3.5.2. Transition Run
The essential purpose of transition run is to translate logical approachment in
Coupling Scheme section above, formulate with scripter and distribute new input the
production and injection constraints using VBScript and Maplinkz (with Optimizer) to
each group in each Reservoir (see Fig.20). However fetching input file in this section
has been done by using Maplinkz. This purpose is demonstrating if Pipe-It is flexible
of transferring the data file.
The initial target input that has provided from previous runs (at 1 day) will be
processed by VBScript (see APPENDIX C) to give a new constraint input to each
Reservoir for particular time step. Following all reservoir runs parallel, then proceed
as initial runs script command to take a new constraint of the group production and
injection rate from current report file for restart runs.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 24 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach The production and injection constraint of each group are set based on
recommendation from VBScript. Therefore the scripted will keep running as dynamic
feedback as possible each time step runs. However, there is some keywords should be
deactivated before running the transition runs each Slave dataset (from original
datasets). These keywords are SKIPREST and QDRILL are deactivated. The
SKIPREST instruct ECLIPSE to skip the subsequent keywords in Schedule section of
restart runs time step of restart run reached, including the group control data
(GCONPROD and GECONINJE). If this keyword is activated, it will instruct to use
the previous group control data. Therefore it does not give a dynamic feedback
condition. The keyword QDRILL is also should be deactivated since these data has
been provided before at initial runs. The calculation results that becomes the include
file for Restart data, are shown as follows:
Input file as include named SCHEDULE1-R.inc for Reservoir-A (RCSLAVE-1):
GCONPROD
-- GROUP CNTL
-- NAME MODE
'G-A1' 'LRAT'
'G-A2' 'LRAT'
/
GCONINJE
-- GROUP
-- NAME
'G-A1'
'G-A2'
/
OIL WATER GAS LIQU
RATE RATE RATE RATE
1*
1*
QgA1 QfA1
1*
1*
QgA2 QfA2
LIMIT
ACTION
'RATE'
'RATE'
AVAIL GUID
FLD
RATE
'NO'
/
'NO'
/
PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID
INJ
MODE
FLD
RATE
'GAS' 'REIN' 1*
1* αg /
'WAT' 'VREP' 1*
1*
1* αw /
-- Previous time step calculation
TSTEP
(CurrentSimstart) /
-- UsertimeStep
TSTEP
(UserTimeStep- CurrentSimstart-tinit) /
SAVE
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 25 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Input file as include named SCHEDULE2-R.inc for Reservoir-B (RCSLAVE-2):
GCONPROD
-- GROUP CNTL OIL WATER GAS LIQU LIMIT AVAIL GUID
-- NAME MODE RATE RATE RATE RATE ACTION FLD RATE
'GR-B1' 'ORAT' 0 0 1* 0 'RATE' 'NO' /
'GR-B2' 'ORAT' 0 0 1* 0 'RATE' 'NO' /
/
-- GCONINJE
-- GROUP PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID
-- NAME INJ
MODE
FLD
RATE
-- 'GR-B2' 'WAT' 'VREP' 1* 1* 1* 1.0 NO /
-- /
TSTEP
(Current Sim. Start) /
--Time Reservoir-2 entering the system
TSTEP
(TIMESLAVE-2) /
GCONPROD
-- GROUP CNTL OIL
WATER GAS LIQU
-- NAME
MODE RATE RATE RATE RATE
'GR-B1' 'ORAT' Qo B1
1*
1* 1*
'GR-B2' 'ORAT' Qo B2
1*
1* 1*
/
LIMIT
AVAIL
ACTION FLD
'RATE' 'NO'
'RATE' 'NO'
GUID
RATE
/
/
GCONINJE
-- GROUP PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID
-- NAME INJ
MODE
FLD
RATE
'GR-B2' 'WAT' 'VREP' 1* 1* 1* 1.0 NO /
/
-- Previous time step calculation
TSTEP
(TIMESLAVE-2) /
-- UsertimeStep
TSTEP
(UserTimeStep - (2*TIMESLAVE-2) - CurrentSimstart-tinit) /
SAVE
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 26 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Input file as include named SCHEDULE3-R.inc for Reservoir-C (RCSLAVE-3):
--Before Reservoir-B entering the system
GCONPROD
-- GROUP CNTL
OIL WATER GAS LIQU LIMIT
AVAIL GUID
-- NAME MODE RATE RATE RATE RATE ACTION FLD
RATE
'GR-C1' 'ORAT' QoC1
1* QgA1
1*
'RATE' 'NO'
/
'GR-C2' 'ORAT' QoC2
1* QgA2
1*
'RATE' 'NO'
/
/
GCONINJE
-- GROUP
-- NAME
'GR-C1'
'GR-C2'
/
PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID
INJ
MODE
FLD
RATE
'GAS' 'REIN' 1*
1* (1-αg ) /
'WAT' 'VREP' 1*
1*
1* (1-αw ) /
TSTEP
(Current Sim. Start) /
--Time Reservoir-2 entering the system
TSTEP
(TIMESLAVE-2) /
--After Reservoir-B entering the system
GCONPROD
-- GROUP CNTL
OIL WATER GAS LIQU LIMIT
AVAIL GUID
-- NAME MODE RATE RATE RATE RATE ACTION FLD
RATE
'GR-C1' 'ORAT' QoC1 1* QgA1
1*
'RATE' 'NO'
/
'GR-C2' 'ORAT' QoC2 1* QgA2
1*
'RATE' 'NO'
/
/
GCONINJE
-- GROUP
-- NAME
'GR-C1'
'GR-C2'
/
PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID
INJ
MODE
FLD
RATE
'GAS' 'REIN' 1*
1* (1-αg ) /
'WAT' 'VREP' 1*
1*
1* (1-αw ) /
-- Previous time step calculation
TSTEP
(TIMESLAVE-2) /
-- UsertimeStep
TSTEP
(UserTimeStep - (2*TIMESLAVE-2) - CurrentSimstart-tinit) /
SAVE
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 27 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 3.5.3. Restart Run
The essential purpose of Restart run each slaves reservoir models is equal purpose to
transition runs with updating group constraint each reservoir per time step run using
VBScript (see APPENDIX C). Then, it will stop running until time step end reached.
In this process renaming the new files for restart runs becomes one of important part.
It will be handled by Maplinkz and Optimizer. They will run the similar data file as in
Transition runs and replace every new time step runs. Besides, the Optimizers will
provide and handle optimization method of time step end iterations.
As we can see from APPENDIX F, the format is provided for flexible restart runs.
They are two restarting methods in ECLIPSE, fast and flexible. The reasons of using
flexible restart than Fast restart here are there is no restriction to allow restarts from
different version of ECLIPSE. In addition, it is able to run the restart with
modification from RUNSPEC to REGIONS section.
3.5.4. Data Collection Aggregation
The result from initial until the end of time step will be collected in Streamz format.
By using Streamz driver file script, it will collect and tabulate each time step
recorded. The tabulated data could be chosen by Slave, group or well. Since we
control in the group level, the tabulated data by Slave and Group are more necessary.
3.5.5. Results and Plots
All the result that needed to be plotted and compared is located at reporting section.
The calculation and optimization results in Streamz format are transferred as input
from Data collection and Aggregation section and connected to Plot application. The
Plot application with particular scripting is flexible for producing the output Plot. The
plot can be produced in bitmap/JPG format or Portable Document Format (PDF). In
this project, the results will be shown in the PDF. The main reason of producing
output Plot in PDF is it can produce multi-plot in one file of PDF. Otherwise it is
needed one file each plot if using bitmap. Hence besides the smaller size, PDF has
advance than bitmap format. The Plot output is going to be used in the result and
discussion part.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 28 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 4. RESULTS AND DISCUSSION
4.1. Verification Result
The demonstration and explanation between two method approaches have been done
in previous section. The results evaluation of both should be performed as
verification. This case has multiple operating conditions that need to be honored at
different levels. The desired operating conditions are plateau field oil target, liquidfacility limit, and gas-facility limit (as illustrated in Fig.2).
4.1.1. Production and Injection Profile
The results of the production and injection behavior of two approaches are shown
APPENDIX A (Figs.22 through 35) featuring with y-axis error bar of 5%. The
production scenario is 365 days and restart keyword is implemented each year. The
total production time is 730 days (2 years). As a base case, the project time step is run
in each 365 days as similar as ECLIPSE RC.
The field oil production performance has matched fulfilling the field oil target of
40,000 BOPD at first 211 days (see Fig.22). The scripted logic approximation gives
longer Plateau rate than ECLIPSE RC does. However after 288 days, it gives steeper
oil rate. Meanwhile the oil production each reservoir (Reservoir-A, B and C) also
gives a good matched between two approaches as plotted in Figs.27 through 29. The
variation occurred greatly in Reservoir-A going steeper after first 400 days.
The maximum gas and liquid rate constrained its oil production. The decreasing oil
production in Reservoir-A was the main reason of the oil field rate has declining.
Otherwise the production from Reservoir-B and Reservoir-C was increased
proportionally to still fulfill the oil field production target.
Evaluation of propose approach is depicted in Figs.36 through 41 especially in gas
production constraint and injection constraint. As we can see in Fig.36, the gas rate
constraint for Group-A1 which is being injected by gas was put too small. However
gas production rate constraint of proposes approach for Group-A2 has a good match
at first 280 days (See Fig.37).
Since the gas rate constraint of propose approach was too pessimistic, then the new
well could not open at the same time at ECLIPSE RC from Reservoir-A to fulfill the
oil field target at time step 408.5 days. At that time in ECLIPSE RC, the existing well
PA-1 at Group-A1 has closed due to its GOR over the limit of 10 Mscf/STB. Then
well PA-3 and PA5 were opened. However at Pipe-It RC, these wells were not opened
yet due to GOR of existing wells were still below the limit.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 29 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach The evaluation of gas and water injection factor (α) has a good match before entering
Reservoir-B (before day 58). Afterwards, gas and water injection factor for propose
approach has showed inversely with the sample approach. It is probably caused by
assumption of using constant GOR from previous time step is too long where at the
initial step, between shared Injected reservoir gives equal gas injection potential.
After entering Reservoir-B, then Reservoir-C reduced its oil production. It will cause
the gas production from Reservoir-A greatly higher than Reservoir-C. In the future,
the logic approximation should be evaluated and improved with advance one.
The difficulty of using logic approach here to honor the desired operating conditions
for this problem arises from interdependencies of the involved target and limits. An
indication of these dependencies such if changing the particular group constraint to
meet oil target, it affect one or more of the rest operating criteria including another
group/s.
In both sample and propose approaches of RC, the master dataset can only control the
wells indirectly through group constraints. Consequently the intervention type well
management events such as work over or drilling new well cannot be triggered by
global constraints. If the field or group’s gas or water limit capacity is reached, the
order to close or work over the wells with highest water cut will not be passed on to
the slaves. Instead, each slave would have to have its work over well management
keywords.
For instance, water production rate also matched with between two approaches until
500 days but not in gas production rate. The discrepancies observed of the
approximation errors in predicting gas and water rate (production and injection)
limitation each reservoir since injection rate was a function of the production
performance. Based on ECLIPSE RC, additional well (at 408.5 days) has been opened
(due to another well over GOR limit then shut in) in water injected-group (well PA-5
at Group-A2), then it will cause greater water production from this group. In the PipeIt RC, this well did not opened yet because the GOR was still below the limit.
In addition, the used assumption of gas and water rate constraint remain constant from
previous time step as a substitute for a dynamic feedback will affect to the production
and injection system. For instance, if the time step calculation put on 365 days, then
the fluid production and injection constraint remain constant during that period. This
becomes error of the calculation. In the sensitivity analysis part, reducing the project
time step has been performed. Overall, the developed of logic approach control in
reservoir coupling has succeed to demonstrate and replace the Master runs but it
needs more improvement and advance in algorithm approximation especially in
predicting injection rate constraint.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 30 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 4.1.2. Cumulative Production and Injection
The cumulative fluid production and injection at 730 days between two approaches
are shown in Figs.42 through 45. Overall, propose approach gives smaller fluid
production and injection than sample approach (ECLIPSE RC). The cumulative oil
and gas production differs 4.1% and 5% respectively. The greatest discrepancy of
cumulative oil occurred in Reservoir-A with differences 15%. As explained above,
the gas rate constraint that was set in Reservoir-A was too small then it affect the both
its production and injection rate. Meanwhile the water production differs 31.8% that
mainly occurred after first 500 days where the reason has explained above.
As mentioned above, due to difficulties in predicting gas and water injection each
reservoir, the gas and water injection give enormous differences with more than 20%
each between two approaches.
4.1.3. Computation time
Both approaches that launched from Pipe-It project has been tested and recorded for
30-times running due to stability of machine used. Once should be remembered that
both approaches has been performed using ECLISPE stand-alone mode and server
license. It means that it requires some time for checking the ECLIPSE license.
The checking license is function of project time step (differs with simulation time
step). The checking license was required average 15.3 second at testing condition.
Pipe-It required at least 3 times for checking ECLIPSE server licenses each section
(Initial, transition and Restart). However ECLIPSE RC needed once parallel time for
checking the license.
The average total computation time for ECLIPSE RC and Pipe-It RC were 50.83 and
66.8 second respectively (including checking the license of 15.3 second at testing
condition). Theoretically in case this project will run without checking license,
ECLIPSE RC and Pipe-It RC required of 35.53 and 20.55 second respectively (see
Fig.46). The simulation time step until 730 days both ECLIPSE RC is higher than
Pipe-It where ECLIPSE RC has total 35 data and Pipe-It RC has total 21 data. Since
the computation time is function of simulation time step. In case if we compare at the
same total time step, the actual variation computation performance believes pretty
similar.
In addition the propose approach involved separated integration process to accomplish
its result. The breakdown of its process actually is shown by integrated timeline
console view within Pipe-It project (see example Timeline in Fig.47).
The longest time-consuming has arisen when running the restart process (see Fig.48).
It takes 31.2 % time-consuming of all process. The initial and transition runs take
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 31 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach place 27.9 and 30% respectively. The collection and aggregation only takes 11%
time-consuming.
4.1.4. Sensitivity Study to Project Time Step
Sensitivity to Project Time Step (PTS) has performed to know the effect of constraint
determination as dynamic feedback to degree of accuracy compare to ECLIPSE RC
data set. The sensitivity has done with put shorter of PTS from 365 days as base case
to 73 days. The result can be seen in Fig.49-54. Once production and injection
constraint determines every 73 days, it will optimize the production and injection rate.
As shows in Fig.49, oil production profile has a good match at first 380 days. The
shortest project time step at Pipe-It project would update the constraint more often.
The gas production profile also gave closer with ECLIPSE RC. Otherwise water
production profile going far away from ECLIPSE RC. Comparing with ECLIPSE RC,
cumulative oil production of Reservoir-A Group-A1 variation of PTS 365 days and 73
days are 10.1% and 10.7% respectively. Meanwhile Group-A2 variation of PTS 365
days and 73 days are 14.5% and 7.2% respectively.
Both cases could not reach the maximum GOR limit each well. Consequently there
were no additional wells to be opened to fulfill the target oil rate. It demonstrates
complexity of using logic approach here to honor the desired operating conditions for
this problem arises from interdependencies of the involved target and limits.
4.2. Benefit and Limitation
Following with the result verification, it could be noticed that Optimizer and
VBScript has successfully been act as Master runs using scripted logic controller and
could replace the Master file in RC feature in ECLIPSE with advance improving in
logic approximation later on. Therefore the limitation of current RC feature has been
solved by using Pipe-It RC.
Pipe-It also provides for a new reservoir or satellite platform as tie-in (in the future) to
be easily integrated to the system. This case has been demonstrated in this study with
entering Reservoir-B. This reservoir entered to the system after particular time step
started. In the future, there is no limitation anymore to couple black oil reservoir and
compositional model into the system since Pipe-It does not require RC ECLIPSE
license to perform RC scheme. In addition, there is no limitation number of slaves
could be coupled (it is possible greater than 20 Slaves simultaneously with proper
machine).
Fetching output file and distributing input file stream starts from one section to next
section has been demonstrated by two methods: using VBScript and Maplinkz with
Optimizer. Besides formulating, VBScript can be used both for fetching and
distributing the output file. However, if the output file or keyword is changing each
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 32 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach time step, it is rather complex script should be made. Then Maplinkz with optimizer
could be a solution for this case. Hence Pipe-It is flexible for fetching and distributing
input and output stream file.
By using Pipe-It project, sensitivity scenario can be made easily from Optimizer
without changing manually from simulation dataset as long as we have made links
what we desire. This case has been demonstrated by performing PTS sensitivity.
The proposed approach need improvement and advance logical algorithm to increase
the degree of accuracy. It does not have good capability of estimating injection
requirements. Since injection rate was a function of the production performance.
Dealing with Pipe-It project preparation, dataset must be modified and logic controller
should be developed to perform RC scheme with Pipe-It. Therefore the preparation
with Pipe-It will take some time. However the basic technique and keywords has
already explained in this study, then it is not a big deal to perform reservoir coupling
within Pipe-It.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 33 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 5. CONCLUDING REMARKS AND
RECOMMENDATIONS
5.1. Concluding Remarks
1. Both Reservoir Coupling (RC) approaches have been successfully developed,
constructed and launched with Pipe-It project then verified the production and
injection results with overall matched between two approaches with cumulative oil
error of 4.1%. The discrepancies observed of the approximation errors due to
difficulties in predicting injection rate and assumption used in the propose
approach.
2. The limitation of current RC feature has been solved. Optimizer and VBScript has
successfully been act as Master runs using scripted logic controller with Pipe-It and
could replace the Master file in RC feature in ECLIPSE with advance improving in
logic approximation.
3. The scripted logic approach does not have adequate capability of estimating
injection requirements. Since injection rate was a function of the production
performance. Therefore it requires improvement and advance logical algorithm to
increase the degree of accuracy.
4. The average total computation time for ECLIPSE RC and Pipe-It RC were 50.83
and 66.8 second respectively (including checking the license of 15.3 second at
testing condition). Theoretically in case this project will run without checking
license, ECLIPSE RC and Pipe-It RC required of 35.53 and 20.55 second
respectively. The simulation time step until 730 days both ECLIPSE RC is higher
than Pipe-It where ECLIPSE RC has total 35 data and Pipe-It RC has total 21 data.
Since the computation time is function of simulation time step. In case if we
compare at the same total time step, the actual variation computation performance
believes pretty similar.
5. The Pipe-It project has flexibility in doing sensitivity, fetching, formulating and
distributing input/output file. Pipe-It also provides for a new reservoir or satellite
platform as tie-in (in the future) to be easily integrated to the system.
5.2. Recommendations
The extension work to make this study more comprehensive might be as follows:
1. Improvement in logical algorithm and approximation is necessary to increase the
degree of accuracy especially in predicting injection rate constraint.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 34 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 2. Implementation of coupled among compositional reservoir models currently has
been developed within Pipe-It Project by others (Rahmawati, S.D, et al, 2010). This
study purpose is to verify if current limitation has been proved to be solved.
Furthermore, Pipe-It could be an alternate RC solution with variety of Reservoir
model by improving in logic approximation to increase the degree of accuracy.
3. For more complex reservoir models such as full-field case, it is not recommend
running in one machine (stand-alone mode). Besides the computer should be work
harder and need higher specification, it will very time consuming. It can be run in
parallel on different machines.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 35 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach NOMENCLATURE
A,B,C,D,E,F
API
AS
BHP
BO
CPU
Cum.
ECL100
ECL300
Fig./Figs.
FSO
ft
GB
GCONPROD
GCONINJE
GOR
GR p
GUI
IAM
Inc.
Init.
JPG
md
MPI
Mscf/day
P
PDF
POTp
POTN
PPO
PPV
PTS
psi
PSM
PVM
PVT
Qo , F
user-supplied power and coefficients
American Petroleum Institute
Aksjeselskap (Company Abbreviations in Norway, Denmark)
Bottom hole pressure
Oil factor volume formation
Central Processing Unit
Cumulative
ECLIPSE 100 for black oil model
ECLIPSE 300 for compositional model
Figure/s
File System Object
Foot (unit)
Gyga bytes
Group Control Production
Group Control Injection
Gas-oil ratio
well’s or groups guide rate of the nominated phase (oil, water, gas or liquid)
Graphics User Interface
Integrated Asset Management
Include (file)
Stand for initial condition
Joint Photographic Group, a bitmap compression formats for picture and image files
Milidarcies
Message Passing Interface
Thousand Standard cubic feet per day
Pressure
Portable Document Format
well’s or groups potential flow rate of the nominated phase
Potential rate
Pipe-It Optimizer format file
Pipe-It project Visual format file
Project Time Step
pounds per square inch absolute
Platform Summary file, Petrostreamz format file
Parallel Virtual Machine
Pressure Volume Temperature
Oil field rate target
Qo , PLAT − A
Oil rate constraint of Platform-A
Qo , PLAT − B
Oil rate constraint of Platform-B
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 36 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Qo , A
Oil rate constraint of Reservoir-A
Qo , B
Oil rate constraint of Reservoir-B
Qo , C
Oil rate constraint of Reservoir-C
Qf ,A
Fluid rate of Reservoir-A
Q f , A1
Fluid rate constraint of Group-A1
Q f , A2
Fluid rate constraint of Group-A2
Qw, A
Water rate constraint of Reservoir-A
Q f , N (TS −ΔTS )
Fluid rate constraint of Platform –N at previous time step
Qw, N (TS − ΔTS )
Water rate constraint of Platform –N at previous time step
Qg, i
Gas rate constraint fore lowest gas production rate
Q g ,i , TS
Gas rate constraint at current time step for group-i
Qg ,
Gas rate constraint of Platform –A
Qg , j
Gas rate constraint fore highest gas production rate
Q gi ,i
Gas Injection rate for group-i
Q p ,i
Production Rate at particular phase (gas and water) for group-i
Q pi ,i
Injection Rate at particular phase (gas and water) for group-i
Qw,i
Water Production Rate for group-i
Qwi ,i
Water Injection Rate for group-i
R1 , R2
RC
RS
RB/D
SC
sec
STB/D
THP
VBScript
WC N (TS )
phase potentials ratios which depend on the nominated phase
Reservoir Coupling
solution gas oil ratio
reservoir barrel per day
Standard Condition
Second (time unit)
stock tank barrel per day
Tubing Head Pressure
Visual Basic Scripting
WC A( n )
Water Cut Platform –A at current time step
Windows Script Host
Percentage
WSH
%
Water Cut Platform –N at current time step
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 37 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach GREEK SYMBOL
α
Ʃ
Δ
Injection Factor (g =gas, w = water)
Summation of the numbers indicated
Increment in a variable, Interval
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 38 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach REFERENCES
ECLIPSE Simulator Suite, Version 2009.2 Technical Description. 2009. Schlumberger.
ECLIPSE Simulator Suite, Version 2009.2 Reference Manual. 2009. Schlumberger.
ECLIPSE Simulator Suite, Version 2009.2 ECL-Run. 2009. Schlumberger.
Haugen, E.D., Holmes, J.A., and Selvig, A. 1995. Simulation of Independent Reservoirs
Coupled by Global Production and Injection Constraints. Paper SPE 29106-MS
presented at SPE Reservoir Simulation Symposium, San Antonio, Texas, USA, 12-15
February 1995.
Personal communication with C.H. Whitson. 2010. Trondheim: NTNU & PERA AS.
Personal communication with M.F. Hoda. 2010. Trondheim: PERA AS.
Petrostreamz AS. 2010. Pipe-It Manual, http://support.petrostreamz.com/ (accessed
April 2010).
Petrostreamz
AS.
2010.
Strexcel
Command
http://trac.petrostreamz.com:9000/wiki/StrExcel (accessed May 2010).
Specification,
Petrostreamz
AS.
2010.
Strexcel
Function
http://trac.petrostreamz.com:9000/wiki/StrExcel (accessed May 2010).
Specification
Streamz, Version 1.1 Manual. October 2002. Trondheim, Norway. PERA AS.
Rahmawati, S.D., Whitson, C.H., Foss, B., and Kuntadi, A. 2010. Field Asset Integrated
Optimization Benchmark. Paper SPE 130768 presented at the SPE EUROPEC/EAGE
Annual Conference and Exhibition held in Barcelona, Spain, 14–17 June 2010.
Wikipedia. 2010. VBScript, http://en.wikipedia.org/wiki/VBScript (accessed May 2010).
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 39 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach SI Metric Conversion Factors
bbl
ft3
psi
x
x
x
1.589873
2.831685
6.894757
E-01
E-02
E+00
Luky Hendraningrat – M.Sc. Thesis, 2010 =
=
=
m3
m3
kPa
Page 40 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach APPENDIX A - Figures
Fig.1 – Fully Reservoir Coupling Overview
Fig.2 – ECLIPSE Reservoir Coupling Overview
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 41 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Fig.3 – The RC Process Overview in Scripted Logic Controller Module within Pipe-It Project
Fig.4 – Pipe-It Elements and Components
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 42 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Fig.5 – Optimizer and Project Relationship (Adopted from Petrostreamz AS, 2010)
Solver option
Objective/Target
Direction
Number of Iteration
Fig.6 – Optimizer: An Example file
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 43 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Fig.7 – Streamz Flow and I/O (Adopted from Petrostreamz AS, 2010)
Double click on Streamz
Fig.8 – Invoking Streamz: An Example
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 44 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Fig.9 – Linkz Window: An Example
Fig.10 – How to Linkz: An Example
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 45 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Double click on
Process
Fig.11 – Maplinkz Application
Launch Pipe-Itc.exe
Remarks:
--pc : desired composite address to be activated
--po
: desired of optimizer file name ( *.ppo)
file name and also the flag to launch the
optimizer instead of runner
Double click on Process
Fig.12 – Pipe-Itc Application: An Example
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 46 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Fig. 13 – Schematic and Level of Hierarchy Reservoir Coupling in this Thesis
Level of
Hierarchy
1
2
FIELD
MASTER
Reservoir #1
PLAT-A
GR-A1
PLAT-B
GR-A2
3
SP-B
GR-B1
GR-B2
SLAVE-1
Reservoir #2
SP-C
GR-C1
GR-C2
SLAVE-2
Reservoir #3
Fig. 14 – Master data from one of slave dataset
Fig. 15 – Master data as Dummy Reservoir
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 47 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Fig. 16 –Synchronization procedure in the ECLIPSE RC for each time step Master data run
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 48 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Script Command:
c:\ecl\macros\eclrun.exe eclipse "Ecl_RC\RCMASTER-PSM.DATA"
Fig. 17 –ECLIPSE run launched from Pipe-It Project (Stand-alone mode)
Fig. 18 –Process flow of RC Solution using Scripted Logic Controller in Pipe-It Project
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 49 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Fig. 19 –Process flow of ECLIPSE RC invoked by Pipe-It Project
Fig. 20 –Process flow of Pipe-It RC: Example of Transition runs
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 50 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Original from ECLIPSE Dataset (Previously controlled by Master Dataset)
GCONPROD
-- GROUP
GUID
-- NAME
RATE
'G-*'
/
GCONINJE
-- GROUP
-- NAME
'G-A1'
'G-A2'
/
CNTL
OIL
WATER
GAS
LIQU
LIMIT
AVAIL
MODE
RATE
RATE
RATE
RATE
ACTION
FLD
8000
'RATE'
'NO' /
'LRAT'
PHASE
INJ
'GAS'
'WAT'
3*
CNTL
MODE
'RATE'
'RESV'
SRAT VRAT REIN VREP AVAIL GUID
FLD RATE
10
/
1*
10
/
GRAT
DEFN
After modified to be controlled by Scripted Logic Controller
GCONPROD
-- GROUP
-- NAME
'G-A1'
'G-A2'
/
CNTL
OIL WATER GAS LIQU LIMIT
AVAIL GUID
MODE
RATE RATE RATE RATE ACTION FLD
RATE
'LRAT'
1*
1* QgA1 QfA1
'RATE' 'NO'
/
'LRAT'
1*
1* QgA2 QfA2
'RATE' 'NO'
/
GCONINJE
-- GROUP
-- NAME
'G-A1'
'G-A2'
/
PHASE
INJ
'GAS'
'WAT'
CNTL SRAT VRAT REIN VREP AVAIL GUID
MODE
FLD
RATE
'REIN' 1* 1*
αg /
'VREP' 1* 1*
1*
αw /
Fig. 21 –Modification examples of Reservoir-A (RCSLAVES-1) from original (above)
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 51 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Oilfield Production Performance
50 000
ECLIPSE RC
PIPE-IT RC
Oilfield Rate, BOPD
40 000
30 000
20 000
10 000
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 22 – Field Oil Production Profile: ECLIPSE RC vs. Pipe-It RC
The field oil production performance has matched fulfilling the field oil target of 40,000 BOPD at first 211
days (featuring with y-axis error bar of 5%). Since the gas rate of Pipe-It RC was too pessimistic, then the
new well could not open at the same time at ECLIPSE RC from Reservoir-A to fulfill the oil field target at
time step 408.5 days. At that time in ECLIPSE RC, the existing well PA-1 at Group-A1 has closed due to
its GOR over the limit of 10 Mscf/STB. Then well PA-3 and PA5 were opened. However at Pipe-It RC,
these wells were not opened due to GOR of existing wells were still below the limit.
Field Gas Production Performance
200 000
ECLIPSE RC
PIPE-IT RC
Gas Rate, Mscf/day
150 000
100 000
50 000
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 23 – Field Gas Production Profile: ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%. The variation of gas production at the beginning is
affected due to gas production constraint at Reservoir-A was too small. It caused by assumption of using
constant GOR from previous time step where at the initial step, between shared Injected reservoir gives
equal gas injection potential. After entering Reservoir-B, then Reservoir-C reduced its oil production. It
will cause the gas production from Reservoir-A greatly higher than Reservoir-C.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 52 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Field Water Production Performance
5 000
ECLIPSE RC
PIPE-IT RC
Water Rate, BWPD
4 000
3 000
2 000
1 000
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 24 – Field Water Production Profile: ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%. Based on ECLIPSE RC, additional well (at 408.5 days)
has been opened (due to another well over GOR limit then shut in) in water injected-group (well PA-5 at
Group-A2), then it will cause greater water production from this group. In the Pipe-It RC, this well did not
opened yet because the well’s GOR was still below the limit.
Field Water Injection Performance
50 000
ECLIPSE RC
45 000
PIPE-IT RC
Water Inejction Rate, BWPD
40 000
35 000
30 000
25 000
20 000
15 000
10 000
5 000
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 25 – Field Water Injection Profile: ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%. The discrepancies observed of the approximation errors
due to difficulties in predicting gas and water rate (production and injection) limitation each reservoir since
injection rate was a function of the production performance.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 53 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Field Gas Injection Performance
100 000
ECLIPSE RC
Gas Injection Rate, Mscf/day
PIPE-IT RC
80 000
60 000
40 000
20 000
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 26– Field Water Injection Profile: ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%.
Oil Production Performance
Platform-A (Reservoir-A)
50 000
ECLIPSE RC
PIPE-IT RC
Oil Rate, BOPD
40 000
30 000
20 000
10 000
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 27 – Oil Production Profile of Platform-A (Reservoir-A): ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 54 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Oil Production Performance
Platform-B (Reservoir-B and Reservoir-C)
50 000
ECLIPSE RC
PIPE-IT RC
Oil Rate, BOPD
40 000
30 000
20 000
10 000
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 28 – Oil Production Profile of Platform-B (Reservoir-B and C): ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%. The Platform-B oil production profile has good match.
Oil Production Performance
Reservoir-B
50 000
ECLIPSE RC
PIPE-IT RC
Oil Rate, BOPD
40 000
30 000
20 000
10 000
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 29 – Oil Production Profile of Reservoir-B: ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%. The variation of starting point (at 58 days) is due to the
average calculation of time step.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 55 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Oil Production Performance
Reservoir-C
50 000
ECLIPSE RC
PIPE-IT RC
Oil Rate, BOPD
40 000
30 000
20 000
10 000
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 30 – Oil Production Profile of Reservoir-C: ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%. The variation of starting point (at 58 days) is due to the
average calculation of time step.
Gas Production & Injection Performance
Platform-A (Reservoir-A)
Productiion Gas Rate, Mscf/day
PIPE-IT RC (Prod)
PIPE-IT RC (Inj)
100000
90 000
90000
80 000
80000
70 000
70000
60 000
60000
50 000
50000
40 000
40000
30 000
30000
20 000
20000
10 000
10000
0
Injectioin Gas Rate, Mscf/day
ECLIPSE RC (Prod)
ECLIPSE RC (inj)
100 000
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 31 –Gas Production and Injection Profile of Platform (Reservoir-A):
ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%. The variation of gas production at the beginning is
affected due to gas production constraint at Reservoir-A was too small. It caused by assumption of using
constant GOR from previous time step where at the initial step, between shared Injected reservoir gives
equal gas injection potential. After entering Reservoir-B, then Reservoir-C reduced its oil production. It
will cause the gas production from Reservoir-A greatly higher than Reservoir-C.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 56 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Gas Production and Injection Performance
Platform-B (Reservoir-B and Reservoir-C)
Production Gas Rate, Mscf/day
100 000
PIPE-IT RC (Prod)
PIPE-IT RC (Inj)
100000
90 000
90000
80 000
80000
70 000
70000
60 000
60000
50 000
50000
40 000
40000
30 000
30000
20 000
20000
10 000
10000
Inejction Gas Rate, Mscf/day
ECLIPSE RC (Prod)
ECLIPSE RC (Inj)
0
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 32 – Gas Production and Injection Profile of Platform-B (Reservoir-B and Reservoir-C):
ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%.
Water Production and Injection Performance
Platform-A (Reservoir-A)
ECLIPSE RC (Prod)
ECLIPSE RC (Inj)
14000
3 000
12000
2 500
10000
2 000
8000
1 500
6000
1 000
4000
500
2000
0
Water Injection Rate, BWPD
Water Rate, BWPD
3 500
PIPE-IT RC (Prod)
PIPE-IT RC (Inj)
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 33 – Water Production and Injection Profile of Platform-A (Reservoir-A):
ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 57 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Water Production Performance of Platform-B
(Reservoir-B and Reservoir-C)
2 000
Water Production Rate, BWPD
ECLIPSE RC (Prod)
PIPE-IT RC (Prod)
1 600
1 200
800
400
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 34 – Water Production Profile of Platform-B (Reservoir-B and Reservoir-C):
ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%.
Water Injection Performance of Platform-B
(Reservoir-B and Reservoir-C)
25000
PIPE-IT RC
ECLIPSE RC
8 000
20000
6 000
15000
4 000
10000
2 000
5000
0
Water Injection Rate, BWPD
Water Injection Rate, BWPD
10 000
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 35 – Water Injection Profile of Platform-B (Reservoir-B and Reservoir-C):
ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 58 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Gas Production Rate Constraint Profile for Group-A1 (Reservoir-A)
Sample vs. Propose Approach
Gas Production Rate Constraint, Mscf/day
100 000
ECLIPSE RC
PIPE-IT RC
80 000
60 000
40 000
20 000
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 36 – Gas Production Rate Constraint Profile of Group-A1 (Reservoir-A): Calculation of
Sample vs. Propose Approach
This plot is featured with y-axis error bar of 5%. The variation of gas production rate constraint of
proposes approach is shifting after entering Reservoir-B to the system. Reservoir-B is contributing to field
gas production and gas injection rate is function of gas production. The Group-A1 is injecting by gas.
Gas Production Constraint Profile for Group-A2 (Reservoir-A)
Sample vs. Propose Approach
Gas Production Rate Constraint, Mscf/day
100 000
ECLIPSE RC
PIPE-IT RC
80 000
60 000
40 000
20 000
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 37 – Gas Production Rate Constraint Profile of Group-A2 (Reservoir-A): Calculation of
Sample vs. Propose Approach
This plot is featured with y-axis error bar of 5%. The variation of gas production rate constraint of
proposes approach has a good match at first 280 days.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 59 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Gas Injection Factor (αg) of Platform-A
Sample vs. Propose Approach
1.00
ECLIPSE RC
PIPE-IT RC
Gas Injection Factor ( αg )
0.80
0.60
0.40
0.20
0.00
0
100
200
300
400
500
600
700
800
Time, days
Fig. 38 – Gas Injection Factor Profile at Platform-A: Calculation of Sample vs. Propose Approach
This plot is featured with y-axis error bar of 5%. Determination of gas injection factor at Platform-A was
over the objective. It caused by the gas constraint at Group-A1 was too high. Otherwise Group-A2 has gas
constraint too small.
Gas Injection Factor (αg) of Platform-B
Sample vs. Propose Approach
1.00
ECLIPSE RC
PIPE-IT RC
Gas Injection Factor ( αg )
0.80
0.60
0.40
0.20
0.00
0
100
200
300
400
500
600
700
800
Time, days
Fig. 39 – Gas Injection Factor Profile at Platform-B: Calculation of Sample vs. Propose Approach
This plot is featured with y-axis error bar of 5%. Determination of gas injection factor at Platform-B was
below the objective.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 60 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Water Injection Factor (αw) of Platform-A
Sample vs. Propose Approach
1.00
ECLIPSE RC
PIPE-IT RC
Water Injection Factor ( αw)
0.80
0.60
0.40
0.20
0.00
0
100
200
300
400
500
600
700
800
Time, days
Fig. 40 – Water Injection Factor Profile at Platform-A: Calculation of Sample vs. Propose
Approach
This plot is featured with y-axis error bar of 5%. Determination of water injection factor at Platform-A was
over the objective.
Water Injection Factor (αw) of Platform-B
Sample vs. Propose Approach
1.00
Water Injection Factor ( αwB )
ECLIPSE RC
PIPE-IT RC
0.80
0.60
0.40
0.20
0.00
0
100
200
300
400
500
600
700
800
Time, days
Fig. 41 – Gas Injection Factor Profile at Platform-B: Calculation of Sample vs. Propose Approach
This plot is featured with y-axis error bar of 5%. Determination of gas injection factor at Platform-B was
below the objective.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 61 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Cumulative Oil Production @ 730 days
8000
ECLIPSE RC
PIPE-IT RC
7000
Cum. Oil, MSTB
6000
5000
4000
3000
2000
1000
0
GR-A1
GR-A2
GR-B1
GR-B2
GR-C1
GR-C2
Group Name
Fig. 42 – Cumulative Oil Production Comparison: ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%. The greatest discrepancy occurred from Reservoir-C with
differences 16.7%. Overall, the variation of both approaches for cumulative oil is 4.1 %.
Cumulative Water Production @ 730 days
600
ECLIPSE RC
PIPE-IT RC
Cum. Water Prod, MSTB
500
400
300
200
100
0
GR-A1
GR-A2
GR-B1
GR-B2
GR-C1
GR-C2
Group Name
Fig. 43 – Cumulative Water Production Comparison: ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%. Overall, the cumulative water variation of both
approaches is 31.8 %. This is caused by the gas rate limitation at Group-A2 and Group-C2 was too small.
Then it greatly affected to the water production. However if they were put into higher level, the oil rate will
be lower level. This is called interdependencies variable of the involved target and limits.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 62 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Cumulative Gas Production @ 730 days
40000
ECLIPSE RC
PIPE-IT RC
Cum. Gas Prod, MMSCF
35000
30000
25000
20000
15000
10000
5000
0
GR-A1
GR-A2
GR-B1
GR-B2
GR-C1
GR-C2
Group Name
Fig. 44 – Cumulative Gas Production Comparison: ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%. The greatest discrepancy occurred from Group-A2 is
23.3%. Overall, the variation of both approaches for cumulative gas production is 4.9 %.
Cumulative Gas and Water Injection @ 730 days
10000
Cum. Water Injection, MSTB
9000
8000
7000
20000
6000
5000
15000
4000
10000
3000
2000
Cum. Gas Inj, MMSCF
30000
ECLIPSE RC Wat.Inj
PIPE-IT RC Wat.Inj
ECLIPSE RC Gas.Inj 25000
PIPE-IT RC Gas.Inj
5000
1000
0
0
GR-A1 (Gas GR-A2 (Water
Inj)
Inj)
GR-B1
GR-B2
GR-C1
GR-C2
Group Name
Fig. 45 – Cumulative Gas and Water Injection Comparison: ECLIPSE RC vs. Pipe-It RC
This plot is featured with y-axis error bar of 5%. The variation of both approaches for cumulative gas and
water injection are 28.0% and 23.5% respectively.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 63 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Rough Computation Time Comparison
(After reducing with Checking License)
100
ECLIPSE RC
PIPE-IT RC
Elapsed Time, sec.
80
The different due to total simulation time
step ECL RC is greater than Pipe-It RC
60
40
20
0
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Number of Run
Fig. 46 – Computation time Comparison: ECLIPSE RC vs. Pipe-It RC
The average total computation time for ECLIPSE RC and Pipe-It RC were 50.83 and 66.8 second
respectively (including checking the license of 15.3 second at testing condition). Theoretically in case this
project will run without checking license, ECLIPSE RC and Pipe-It RC required of 35.53 and 20.55 second
respectively. The simulation time step until 730 days both ECLIPSE RC is higher than Pipe-It where
ECLIPSE RC has total 35 data and Pipe-It RC has total 21 data. Since the computation time is function of
simulation time step. In case if we compare at the same total time step, the actual variation computation
performance believes pretty similar.
Fig. 47 – Integrated Timeline Console View in Pipe-It Project: Example of Transition Runs
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 64 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Breakdown Integrated Process
ECLIPSE Reservoir Coupling launched from Pipe-It
Breakdown Integrated Process
Pipe-IT Reservoir Coupling
Ecl2Str; 0.5%
Initial Runs; 27.9%
Collection and
Aggregation; 11.0%
Streamz; 0.6%
Pre-Ecl; 0.4%
Restart Runs; 31.2%
Transition Runs; 30.0%
Launch ECL100; 98.5%
Breakdown Integrated Process: Transition Runs
Breakdown Integrated Process: Initial Runs
VBScript; 5.0%
Copy file; 0.5%
VBScript; 0.0%
Streamz 1.5%
Copy File; 7.3%
Maplinkz; 14.0%
Ecl2Str; 4.9%
Launch ECL; 88.2%
Restart ECL100; 78.7%
Breakdown Integrated Process: Collection and Aggregation
Breakdown Integrated Process: Restart Runs
VBScript; 1.3%
Maplinkz; 19.0%
Ecl2Str; 5.7%
Split Production and
Injection data; 21.4%
Copy file; 4.5%
Streamz; 74.0%
Restart ECL100; 73.9%
Fig. 48 – Breakdown Integrated Process of Reservoir Coupling using Pipe-It
The longest time-consuming has arisen when running the restart process. It takes 31.2 % time-consuming
of all process. The initial and transition runs take place 27.9 and 30% respectively. The collection and
aggregation only takes 11% time-consuming.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 65 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Sensitivity to Project Time Step
Oil Production Performance
Platform-A (Reservoir-A)
50 000
ECLIPSE RC
PIPE-IT RC (Prod) @ PTS 365 days
PIPE-IT RC (Prod) @PTS 73 days
Oil Rate, BOPD
40 000
30 000
20 000
10 000
0
0
100
200
300
400
Time, days
500
600
700
800
Fig. 49 – Sensitivity Analysis to Project Time Step: 365 days (base case) and 73 days
Example of Reservoir-A Oil production rate
This plot is featured with y-axis error bar of 5%. The shortest project time step at Pipe-It project would
update the constraint more often. The oil production rate profile closer to ECLIPSE’s profile at first 380
days.
Sensitivity to Project Time Step
Gas Production & Injection Performance
Platform-A (Reservoir-A)
Productiion Gas Rate,
Mscf/day
100 000
PIPE-IT RC (Prod) @PTS 365 days
ECLIPSE RC (inj)
PIPE-IT RC (Inj) @PTS 73 days
100000
80 000
80000
60 000
60000
40 000
40000
20 000
20000
0
Injectioin Gas Rate, Mscf/day
ECLIPSE RC (Prod)
PIPE-IT RC (Prod) @PTS 73 days
PIPE-IT RC (Inj)
0
0
100
200
300
400
500
600
700
800
Time, days
Fig. 50 – Sensitivity Analysis to Project Time Step: 365 days (base case) and 73 days.
Example of Reservoir-A Gas production and Injection rate
This plot is featured with y-axis error bar of 5%.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 66 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Sensitivity to Project Time Step
Water Production and Injection Performance
Platform-A (Reservoir-A)
PIPE-IT RC (Prod) @PTS 365 days
PIPE-IT RC (Prod) @PTS 73 days
ECLIPSE RC (Inj)
PIPE-IT RC (Inj) @PTS 365 days
PIPE-IT RC (Inj) @PTS 73 days
14000
3 000
12000
2 500
10000
2 000
8000
1 500
6000
1 000
4000
500
2000
0
800
0
0
100
200
300
400
500
600
Water Injection Rate, BWPD
Water Rate, BWPD
3 500
ECLIPSE RC (Prod)
700
Time, days
Fig. 51 – Sensitivity Analysis to Project Time Step: 365 days (base case) and 73 days.
Example of Reservoir-A Water production and Injection rate
This plot is featured with y-axis error bar of 5%.
Sensitivity to Project Time Step
Cumulative Oil Production of Reservoir-A @ 730 days
10000
ECLIPSE RC
PIPE-IT RC @ 365 days
PIPE-IT RC @ 73 days
9000
8000
Cum. Oil, MSTB
7000
6000
5000
4000
3000
2000
1000
0
GR-A1
GR-A2
Group Name
Fig. 52 – Sensitivity Analysis to Project Time Step: 365 days (base case) and 73 days: Cumulative
Oil Production
This plot is featured with y-axis error bar of 5%. Comparing with ECLIPSE RC, cumulative oil production
of Reservoir-A Group-A1 variation of PTS 365 days and 73 days are 10.1% and 10.7% respectively.
Meanwhile Group-A2 variation of PTS 365 days and 73 days are 14.5% and 7.2% respectively.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 67 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Cumulative Gas Production of Reservoir-A @ 730 days
40000
ECLIPSE RC @PTS 365days
PIPE-IT RC @PTS 365days
PIPE-IT RC @PTS 73days
Cum. Gas Prod, MMSCF
35000
30000
25000
20000
15000
10000
5000
0
GR-A1
GR-A2
Group Name
Fig. 53 – Sensitivity Analysis to Project Time Step: 365 days (base case) and 73 days: Cumulative
Gas Production
This plot is featured with y-axis error bar of 5%. Comparing with ECLIPSE RC, cumulative gas
production of Reservoir-A Group-A1 variation of PTS 365 days and 73 days are 4.51% and 22%
respectively. This is caused by a Group-A1 has closed for 70 days towards at the end of simulation.
Cumulative Gas and Water Injection of Reservoir-A @ 730 days
9000
Cum. Water Injection, MSTB
8000
7000
50000
ECLIPSE RC Wat.Inj
PIPE-IT RC Wat.Inj @PTS 365days
45000
PIPE-IT RC Wat.Inj @PTS 73days
40000
ECLIPSE RC Gas.Inj
PIPE-IT RC Gas.Inj @PTS 365days
35000
PIPE-IT RC Gas.Inj @PTS 73days
6000
30000
5000
25000
4000
20000
3000
15000
2000
10000
1000
5000
0
Cum. Gas Inj (MMSCF)
10000
0
GR-A1 (Gas Inj)
GR-A2 (Water Inj)
Group Name
Fig. 54 – Sensitivity Analysis to Project Time Step: 365 days (base case) and 73 days: Cumulative
Gas and Water Injection
This plot is featured with y-axis error bar of 5%. Comparing with ECLIPSE RC, cumulative gas injection
of shorter PTS will give more discrepancies of Gas injection due to Group-A1 has closed for 70 days
towards at the end of simulation. Otherwise, water injection of shorter PTS will give higher water injection
cumulative since during some wells closed, this group is pushed to be allocated more oil production.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 68 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach APPENDIX B - Tables
Key point
Procedure
Control
Structures
Constants
Variables
User
interaction
Names
TABLE 1 – KEYPOINTS OF INTRODUCTION VBScript LANGUAGE
Description
A “procedure” is the main construct in VBScript for separating code into smaller
modules. VBScript distinguishes between a function, which can return a result in an
assignment statement, and a subroutine, which cannot. Parameters are positional, and
can be passed by value or by reference.
Control structures include the usual iterative and conditional Do Loops, If-Then-Else
statements, and Case statements, with some more complex variants, such as ElseIf and
nested control structures.
As a memory aid in coding, and certainly for readability, there are a large number of
constants, such as True and False for logical values, vbOKCancel and vbYesNo for
MsgBox codes, vbBlack and vbYellow for color values, vbCR for the carriage return
character, and many others.
Variables by default have “Variant” type, but it is possible (and sometimes necessary)
using conversion functions to force a particular type (integer, date, etc.) using conversion
functions (Cint, CDate, etc.)
User interaction is provided through the functions MsgBox and InputBox which provide
a simple dialogue box format for messages and input. Both functions display prompting
messages, with the former returning a standard response, and the latter returning one
user-supplied text or numeric value. For more elaborate GUI interaction with controls,
VBScript can be used in combination with HTML, for example, in an HTML
Application. Event-driven forms are not supported as in Visual Basic or Visual Basic for
Applications.
Names are not case-sensitive; therefore, for example, MsgBox and msgbox, or
FileSystemObject and filesystemobject, are treated as the same name. However, as usual,
it is considered a best practice of VBScript style to be consistent and to capitalize
judiciously.
TABLE 2 - CPU EMPLOYED SPECIFICATION
Manufacturer : Toshiba Sat. A205
Processor : Intel Core 2 Duo T520; 1.5GHz
Memory/Ram : 4.0 GB
System Type : 32 Bit
Operating System : Windows Vista Home Premium
Keyword
GOPRL
GOIRL
GWPRL
GWIRL
GGPRL
GGIRL
GLPRL
GVPRL
GVIRL
TABLE 3 – ECLIPSE RC SUMMARY OUTPUT GROUP CONTROL
Control Level
Description
Group
Group Oil Production Rate Limit
Group
Group Water Production Rate Limit
Group
Group Oil Injection Rate Limit
Group
Group Water Injection Rate Limit
Group
Group Gas Production Rate Limit
Group
Group Gas Injection Rate Limit
Group
Group Liquid Production Rate Limit
Group
Group reservoir Volume Production Rate Limit
Group
Group reservoir Volume Injection Rate Limit
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 69 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach APPENDIX C - VBScript
'Title: VBScript at Initial Run as Logic Controller
'Purpose: To fetch / extract Production and Injection Rate from Report file each
Group and Optimize Reservoir-B (RCSLAVE2) as preparation of input file in
Transition run
Dim objFSO, objIFile1, objIFile2, objIFile3, objIFile4, objOFile
Dim curDir, Output, Input1, Input2, Input3, Input4
Set WshShell = WScript.CreateObject ("WScript.Shell")
WScript.Echo (WshShell.CurrentDirectory)
curDir = WshShell.CurrentDirectory
Set objArgs = WScript.Arguments
If objArgs.Count > 0 Then
WScript.Echo objArgs.Count
WScript.Echo objArgs.Length
Input1 = curdir & "\" & objArgs.item(0)
Input2 = curdir & "\" & objArgs.item(1)
Input3 = curdir & "\" & objArgs.item(2)
Input4 = curdir & "\" & objArgs.item(3)
Output = curdir & "\" & objArgs.item(4)
Else
Wscript.Echo "Didn't Find any Arguments in Command Line Exiting The Script"
WScript.Quit
End If
For i = 0 To objArgs.Count-1
WScript.Echo objArgs.item(i)
Next
di = 0 ' Data to ignore
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objIFile1 = objFSO.OpenTextFile(Input1, 1)
Set objIFile2 = objFSO.OpenTextFile(Input2, 1)
Set objIFile3 = objFSO.OpenTextFile(Input3, 1)
Set objOFile = objFSO.CreateTextFile(Output, 2)
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 70 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 'Reservoir-A (RCSLAVE-1)
objOFile.WriteLine("Reservoir-A (RCSLAVE-1)")
Dim groups()
Dim orats
Dim wrats
Dim grats
Dim ginjs
Dim winjs
i=0
Set orats = CreateObject("Scripting.Dictionary")
Set wrats = CreateObject("Scripting.Dictionary")
Set grats = CreateObject("Scripting.Dictionary")
Set ginjs = CreateObject("Scripting.Dictionary")
Set winjs = CreateObject("Scripting.Dictionary")
no_group = -1
no_groupw = -1
no_groupg = -1
no_groupgi= -1
no_groupwi= -1
Do Until objIFile1.AtEndOfStream
line = objIFile1.ReadLine
a = Split(line, ":")
CNTLMODE =(a(2))
CNTLMODEG = (a(4))
CNTLMODEW = (a(3))
'Identification Control Mode keyword in Production Report RCSLAVE-1
if CNTLMODE = "LRAT" then
QO = a(3)
QW = a(4)
QG = a(5)
group = Trim(a(1))
no_group = no_group + 1
ReDim Preserve groups(no_group)
groups(no_group) = group
orat = QO
orats.Add group, orat
groupw = Trim(a(1))
no_groupw = no_groupw+1
ReDim Preserve groupws(no_groupw)
groupws(no_groupw) = groupw
wrat = QW
wrats.Add groupw, wrat
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 71 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach groupg = Trim(a(1))
no_groupg = no_groupg+1
ReDim Preserve groupgs(no_groupg)
groupgs(no_groupg) = groupg
grat = QG
grats.Add groupg, grat
End If
'Identification Control Mode keyword in Injection Report RCSLAVE-1
'Gas Injection
'Identification Control Mode keyword in Gas Injection Report RCSLAVE-1
if CNTLMODEG = "REIN" then
QGi = a(7)
WScript.Echo QGi
groupgi = Trim(a(1))
no_groupgi = no_groupgi + 1
ReDim Preserve groupgis(no_groupgi)
groupgis(no_groupgi) = groupgi
ginj = QGi
ginjs.Add groupgi, ginj
End If
'Water Injection
'Identification Control Mode keyword in Water Injection Report RCSLAVE-1
if CNTLMODEW = "VREP" then
QWi = a(6)
WScript.Echo QWi
groupwi = Trim(a(1))
no_groupwi = no_groupwi + 1
ReDim Preserve groupwis(no_groupwi)
groupwis(no_groupwi) = groupwi
winj = QWi
winjs.Add groupwi, winj
End If
Loop
' The notation (i*2) to reduce twice reporting
For i = 0 To UBound(groups)
WScript.Echo "Oil rate (BOPD) of " & groups(i*2) & " is " & orats.Item(groups(i*2))
objOFile.WriteLine("OilRate(BOPD)"&groups(i*2)&"is "& orats.Item(groups(i*2)))
Next
For i = 0 To UBound(groups)
WScript.Echo "Water rate (BWPD) of " & groups(i*2) & " is " & wrats.Item(groups(i*2))
objOFile.WriteLine("WaterRate(BWPD)of"&groups(i*2)& "is"& wrats.Item(groups(i*2)))
Next
For i = 0 To UBound(groups)
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 72 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach WScript.Echo "Gas rate (Mscf/day) of " & groups(i*2) & " is " & grats.Item(groups(i*2))
objOFile.WriteLine("GasRate(Mscf/day)of"&groups(i*2)& "is"& grats.Item(groups(i*2)))
Next
For i = 0 To UBound(groups)
WScript.Echo "Gas Injection rate (Mscf/day) of " & groups(i*2) & " is " & ginjs.Item(groups(i*2))
objOFile.WriteLine("GasInjectionRate(Mscf/day)of"& groups(i*2)&"is" & ginjs.Item(groups(i*2)))
Next
For i = 0 To UBound(groups)
WScript.Echo "Water Injection rate (Mscf/day) of " & groups(i*2) & " is " & winjs.Item(groups(i*2))
objOFile.WriteLine("WaterInjectionRate(BWPD)of"&groups(i*2)&"is"& winjs.Item(groups(i*2)))
Next
Dim Totalginj
Totalginj = 0
For i = 1 To ginjs.Count
Totalginj = Totalginj + ginjs.Item(groups(i))
Next
Wscript.Echo "The total gas injection(Mscf/day) of Reservoir-A is " & Totalginj
objOFile.WriteLine("TotalGasInjection(Mscf/day)ofReservoir-Ais " & Totalginj)
Dim Totalwinj
Totalwinj = 0
For i = 1 To winjs.Count
Totalwinj = Totalwinj + winjs.Item(groups(i))
Next
Wscript.Echo "The total Water injection(BWPD) of Reservoir-A is " & Totalwinj
objOFile.WriteLine("TotalWaterInjection(BWPD)ofReservoir-Ais " & Totalwinj)
' RESERVOIR-B (RCSLAVE-2)
objOFile.WriteLine("Reservoir-B (RCSLAVE-2)")
Dim groups2()
Dim orats2
Dim wrats2
Dim grats2
Dim ginjs2
Dim winjs2
i=0
Set orats2 = CreateObject("Scripting.Dictionary")
Set wrats2 = CreateObject("Scripting.Dictionary")
Set grats2 = CreateObject("Scripting.Dictionary")
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 73 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Set ginjs2 = CreateObject("Scripting.Dictionary")
Set winjs2 = CreateObject("Scripting.Dictionary")
no_group2 = -1
no_groupw2 = -1
no_groupg2 = -1
no_groupgi2= -1
no_groupwi2= -1
Do Until objIFile2.AtEndOfStream
line = objIFile2.ReadLine
a = Split(line, ":")
CNTLMODE2 =(a(2))
CNTLMODEG2 = (a(4))
CNTLMODEW2 = (a(3))
'Identification Control Mode keyword in Production Report RCSLAVE-2
'Start after Time Step 58 days (TIMESLAVE2)
if CNTLMODE2 = "ORAT" then
QO2 = a(3)
QW2 = a(4)
QG2 = a(5)
group2 = Trim(a(1))
no_group2 = no_group2 + 1
ReDim Preserve groups2(no_group2)
groups2(no_group2) = group2
orat2 = QO2
orats2.Add group2, orat2
groupw2 = Trim(a(1))
no_groupw2 = no_groupw2+1
ReDim Preserve groupws2(no_groupw2)
groupws2(no_groupw2) = groupw2
wrat2 = QW2
wrats2.Add groupw2, wrat2
groupg2 = Trim(a(1))
no_groupg2 = no_groupg2+1
ReDim Preserve groupgs2(no_groupg2)
groupgs2(no_groupg2) = groupg2
grat2 = QG2
grats2.Add groupg2, grat2
End If
'Identification Control Mode keyword in Injection Report RCSLAVE-2
'Gas Injection
if CNTLMODEG2 = "REIN" then
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 74 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach QGi2 = a(7)
WScript.Echo QGi2
groupgi2 = Trim(a(1))
no_groupgi2 = no_groupgi2 + 1
ReDim Preserve groupgis2(no_groupgi2)
groupgis2(no_groupgi2) = groupgi2
ginj2 = QGi2
ginjs2.Add groupgi2, ginj2
End If
'Water Injection
'Identification Control Mode keyword in Water Injection Report RCSLAVE-1
if CNTLMODEW2 = "VREP" then
QWi2 = a(6)
WScript.Echo QWi2
groupwi2 = Trim(a(1))
no_groupwi2 = no_groupwi2 + 1
ReDim Preserve groupwis2(no_groupwi2)
groupwis2(no_groupwi2) = groupwi2
winj2 = QWi2
winjs2.Add groupwi2, winj2
End If
Loop
'Tie in Reservoir-B (RCSLAVE-2)
Dim CURRENTSIMSTART, TIMESLAVE2, CURRENTSIMEND
Set objIFile4 = objFSO.OpenTextFile(Input4, 1)
i=0
Do Until objIFile4.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objIFile4.ReadLine
c = Split(arrFileLines(i) , "=")
Wscript.Echo c(0) & " -> " & c(1)
if c(0) = "CURRENTSIMSTART" then
CURRENTSIMSTART = c(1)
end if
if c(0) = "TIMESLAVE2" then
TIMESLAVE2 = c(1)
end if
if c(0) = "CURRENTSIMEND" then
CURRENTSIMEND = c(1)
end if
i=i+1
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 75 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Loop
if (CInt(CURRENTSIMSTART) < CInt(TIMESLAVE2)) THEN
orats2 = 0
grats2 = 0
wrats2 = 0
ginjs2 = 0
for i = 0 to UBound(groups2)
objOFile.WriteLine("OilRate(BOPD) of " & groups2(i*2) & " is 0")
Next
for i = 0 to UBound(groups2)
objOFile.WriteLine("WaterRate(BWPD) of " & groups2(i*2) & " is 0")
Next
for i = 0 to UBound(groups2)
objOFile.WriteLine("GasRate(Mscf/day) of " & groups2(i*2) & " is 0")
Next
for i = 0 to UBound(groups2)
objOFile.WriteLine("GasInjectionRate(Mscf/day) of " & groups2(i*2) & " is 0")
Next
for i = 0 to UBound(groups2)
objOFile.WriteLine("WaterInjectionRate(BWPD) of " & groups2(i*2) & " is 0")
Next
else
' The notation (i*2) to reduce reporting twice
For i = 0 To UBound(groups2)
WScript.Echo "OilRate(BOPD) of " & groups2(i*2) & " is " & orats2.Item(groups2(i*2))
objOFile.WriteLine("OilRate(BOPD)of"&groups2(i*2)&"is " & orats2.Item(groups2(i*2)))
Next
For i = 0 To UBound(groups2)
WScript.Echo "Water rate (BWPD) of " & groups2(i*2) & " is " & wrats2.Item(groups2(i*2))
objOFile.WriteLine("WaterRate(BWPD)of "& groups2(i*2)&"is " & wrats2.Item(groups2(i*2)))
Next
For i = 0 To UBound(groups2)
WScript.Echo "Gas rate (Mscf/day) of " & groups2(i*2) & " is " & grats2.Item(groups2(i*2))
objOFile.WriteLine("GasRate(Mscf/day)of" & groups2(i*2) & "is"& grats2.Item(groups2(i*2)))
Next
For i = 0 To UBound(groups2)
WScript.Echo "Gas Injection rate (Mscf/day) of " & groups2(i*2) & " is " & ginjs2.Item(groups2(i*2))
objOFile.WriteLine("GasInjectionRate(Mscf/day)of" & groups2(i*2) & "is"& ginjs2.Item(groups2(i*2)))
Next
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 76 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach For i = 0 To UBound(groups2)
WScript.Echo "Water Injection rate (BWPD) of " & groups2(i*2) & " is " & winjs2.Item(groups2(i*2))
objOFile.WriteLine("WaterInjectionRate(BWPD)of"& groups2(i*2)&"is" & winjs2.Item(groups2(i*2)))
Next
Dim Totalginj2
Totalginj2 = 0
For i = 1 To ginjs2.Count
Totalginj2 = Totalginj2 + ginjs2.Item(groups2(i))
Next
Wscript.Echo "The total gas injection(Mscf/day) of Reservoir-B is " & Totalginj2
objOFile.WriteLine("TotaGasInjection(Mscf/day)ofReservoir-Bis " & Totalginj2)
Dim Totalwinj2
Totalwinj2 = 0
For i = 1 To winjs2.Count
Totalwinj2 = Totalwinj2 + winjs2.Item(groups2(i))
Next
Wscript.Echo "TotalWaterInjection(BWPD) of Reservoir-B is " & Totalwinj2
objOFile.WriteLine("TotalWaterInjection(BWPD)ofReservoir-Bis" & Totalwinj2)
end if
' Reservoir-C (RCSLAVE-3)
objOFile.WriteLine("Reservoir-C (RCSLAVE-3)")
Dim groups3()
Dim orats3
Dim wrats3
Dim grats3
Dim ginjs3
Dim winjs3
i=0
Set orats3 = CreateObject("Scripting.Dictionary")
Set wrats3 = CreateObject("Scripting.Dictionary")
Set grats3 = CreateObject("Scripting.Dictionary")
Set ginjs3 = CreateObject("Scripting.Dictionary")
Set winjs3 = CreateObject("Scripting.Dictionary")
no_group3 = -1
no_groupw3 = -1
no_groupg3 = -1
no_groupgi3= -1
no_groupwi3= -1
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 77 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Do Until objIFile3.AtEndOfStream
line = objIFile3.ReadLine
a = Split(line, ":")
CNTLMODE3 =(a(2))
CNTLMODEG3 = (a(4))
CNTLMODEW3 = (a(3))
'Identification Control Mode keyword in Production Report RCSLAVE-3
'() = column location
if CNTLMODE3 = "ORAT" then
QO3 = a(3)
QW3 = a(4)
QG3 = a(5)
group3 = Trim(a(1))
no_group3 = no_group3 + 1
ReDim Preserve groups3(no_group3)
groups3(no_group3) = group3
orat3 = QO3
orats3.Add group3, orat3
groupw3 = Trim(a(1))
no_groupw3 = no_groupw3+1
ReDim Preserve groupws3(no_groupw2)
groupws3(no_groupw3) = groupw3
wrat3 = QW3
wrats3.Add groupw3, wrat3
groupg3 = Trim(a(1))
no_groupg3 = no_groupg3+1
ReDim Preserve groupgs3(no_groupg2)
groupgs3(no_groupg3) = groupg3
grat3 = QG3
grats3.Add groupg3, grat3
End If
'Identification Control Mode keyword in Injection Report RCSLAVE-2
'Gas Injection
if CNTLMODEG3 = "REIN" then
QGi3 = a(7)
WScript.Echo QGi3
groupgi3 = Trim(a(1))
no_groupgi3 = no_groupgi3 + 1
ReDim Preserve groupgis3(no_groupgi3)
groupgis3(no_groupgi3) = groupgi3
ginj3 = QGi3
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 78 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach ginjs3.Add groupgi3, ginj3
End If
'Water Injection
'Identification Control Mode keyword in Water Injection Report RCSLAVE-1
if CNTLMODEW3 = "VREP" then
QWi3 = a(6)
WScript.Echo QWi3
groupwi3 = Trim(a(1))
no_groupwi3 = no_groupwi3 + 1
ReDim Preserve groupwis3(no_groupwi3)
groupwis3(no_groupwi3) = groupwi3
winj3 = QWi3
winjs3.Add groupwi3, winj3
End If
Loop
' The notation (i*2) to reduce twice reporting
For i = 0 To UBound(groups3)
WScript.Echo "Oil rate (BOPD) of " & groups3(i*2) & " is " & orats3.Item(groups3(i*2))
objOFile.WriteLine("OilRate(BOPD)of"& groups3(i*2)& "is" & orats3.Item(groups3(i*2)))
Next
For i = 0 To UBound(groups3)
WScript.Echo "Water rate (BWPD) of " & groups3(i*2) & " is " & wrats3.Item(groups3(i*2))
objOFile.WriteLine("WaterRate(BWPD)of" & groups3(i*2) & "is" & wrats3.Item(groups3(i*2)))
Next
For i = 0 To UBound(groups3)
WScript.Echo "GasRate (Mscf/day) of " & groups3(i*2) & " is " & grats3.Item(groups3(i*2))
objOFile.WriteLine("GasRate(Mscf/day)of" & groups3(i*2) & "is" & grats3.Item(groups3(i*2)))
Next
For i = 0 To UBound(groups)
WScript.Echo "Gas Injection rate (Mscf/day) of " & groups3(i*2) & " is " & ginjs3.Item(groups3(i*2))
objOFile.WriteLine("GasInjectionRate(Mscf/day)of"& groups3(i*2) &"is" & ginjs3.Item(groups3(i*2)))
Next
For i = 0 To UBound(groups)
WScript.Echo "WaterInjectionRate (Mscf/day) of " & groups3(i*2) & " is " &
winjs3.Item(groups3(i*2))
objOFile.WriteLine("WaterInjectionRate(BWPD)of" & groups3(i*2) & "is" &
winjs3.Item(groups3(i*2)))
Next
Dim Totalginj3
Totalginj3 = 0
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 79 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach For i = 1 To ginjs3.Count
Totalginj3 = Totalginj3 + ginjs3.Item(groups3(i))
Next
Wscript.Echo "The total gas injection(Mscf/day) of Reservoir-C is " & Totalginj3
objOFile.WriteLine("TotalGasInjection_Mscf/day_ofReservoir-Cis " & Totalginj3)
Dim Totalwinj3
Totalwinj3 = 0
For i = 1 To winjs3.Count
Totalwinj3 = Totalwinj3 + winjs3.Item(groups3(i))
Next
Wscript.Echo "The total Water injection(BWPD)ofReservoir-Cis " & Totalwinj3
objOFile.WriteLine("TotalWaterInjection(BWPD)ofReservoir-Cis " & Totalwinj3)
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 80 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 'Title: Transition Logical Controller
'Purpose: To Formulate and distribute new input constraint to
Transition runs (after initial run 1 day)
Dim objFSO, objIfile, objOFile, objOFile1, objOFile2
Dim curDir, Input, Output1, Output2, Output3
Dim OILFIELDRATE, CONSLIQRATEPLATA, CONSGASRATEPLATA, CONSGASRATEPLATB,
OILRATEGRA1, OILRATEGRA2, WATRATEGRA1, WATRATEGRA2, GRATGRA1, GRATGRA2,
GASINJE_PLATA, GASINJE_PLATB, WRATGRC1, WRATGRC2, WINJGRA2, WINJGRC2
'CONSLIQRATEPLATA = Constraint Liquid Rate Plat-A
'CONSGASRATEPLATA = Constraint Gas Rate Plat-A
'CONSGASRATEPLATB = Constraint Gas Rate Plat-B
'OILRATEGRA1 = Oil rate actual Group A-1
'OILRATEGRA2 = Oil rate actual Group A-2
'WATRATEGRA1 = Water rate actual Group A-1
'WATRATEGRA2 = Water rate actual Group A-2
'GASINJE_PLATA = Gas injection rate actual PLAT-A
'GASINJE_PLATB = Gas injection rate actual PLAT-B
'OILRATEPLATA, TOTALOILPOTNRCSLAVE1, TOTALOILPOTNRCSLAVE2,
TOTALOILPOTNRCSLAVE3
Dim CURRENTSIMSTART, USERTSTEP, CURRENTSIMEND, TIMESLAVE2
Set WshShell = WScript.CreateObject ("WScript.Shell")
WScript.Echo (WshShell.CurrentDirectory)
curDir = WshShell.CurrentDirectory
Set objArgs = WScript.Arguments
If objArgs.Count > 0 Then
WScript.Echo objArgs.Count
WScript.Echo objArgs.Length
Input = curdir & "\" & objArgs.item(0)
Output1 = curdir & "\" & objArgs.item(1)
Output2 = curdir & "\" & objArgs.item(2)
Output3 = curdir & "\" & objArgs.item(3)
Else
Wscript.Echo "Didn't Find any Arguments in Command Line Exiting The Script"
WScript.Quit
End If
For i = 0 To objArgs.Count-1
WScript.Echo objArgs.item(i)
Next
di = 0 ' Data to ignore
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objIfile = objFSO.OpenTextFile(Input, 1)
Set objOFile = objFSO.CreateTextFile(Output1, 2)
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 81 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Set objOFile1 = objFSO.CreateTextFile(Output2, 2)
Set objOFile2 = objFSO.CreateTextFile(Output3, 2)
Dim arrFileLines()
i=0
Do Until objIfile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objIfile.ReadLine
a = Split(arrFileLines(i) , "=")
Wscript.Echo a(0) & " -> " & a(1)
If a(0) = "OILFIELDRATE" Then
OILFIELDRATE = a(1)
Wscript.Echo OILFIELDRATE
End If
If a(0) = "CONSLIQRATEPLATA" Then
CONSLIQRATEPLATA = a(1)
Wscript.Echo CONSLIQRATEPLATA
End If
If a(0) = "CONSGASRATEPLATA" Then
CONSGASRATEPLATA = a(1)
Wscript.Echo CONSGASRATEPLATA
End If
If a(0) = "CONSGASRATEPLATB" Then
CONSGASRATEPLATB = a(1)
Wscript.Echo CONSGASRATEPLATB
End If
If a(0) = "OILRATEGRA1" Then
OILRATEGRA1 = a(1)
Wscript.Echo OILRATEGRA1
End If
If a(0) = "OILRATEGRA2" Then
OILRATEGRA2 = a(1)
Wscript.Echo OILRATEGRA2
End If
If a(0) = "WATRATEGRA1" Then
WATRATEGRA1 = a(1)
Wscript.Echo WATRATEGRA1
End If
If a(0) = "WATRATEGRA2" Then
WATRATEGRA2 = a(1)
Wscript.Echo WATRATEGRA2
End If
If a(0) = "GRATGRA1" Then
GRATGRA1 = a(1)
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 82 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Wscript.Echo GRATGRA1
End If
If a(0) = "GRATGRA2" Then
GRATGRA2 = a(1)
Wscript.Echo GRATGRA2
End If
If a(0) = "GASINJE_PLATA" Then
GASINJE_PLATA = a(1)
Wscript.Echo GASINJE_PLATA
End If
If a(0) = "GRATGRC1" Then
GRATGRC1 = a(1)
Wscript.Echo GRATGRC1
End If
If a(0) = "GRATGRC2" Then
GRATGRC2 = a(1)
Wscript.Echo GRATGRC2
End If
If a(0) = "WRATGRC1" Then
WRATGRC1 = a(1)
Wscript.Echo WRATGRC1
End If
If a(0) = "WRATGRC2" Then
WRATGRC2 = a(1)
Wscript.Echo WRATGRC2
End If
If a(0) = "WINJGRA2" Then
WINJGRA2 = a(1)
Wscript.Echo WINJGRA2
End If
If a(0) = "WINJGRC2" Then
WINJGRC2 = a(1)
Wscript.Echo WINJGRC2
End If
If a(0) = "GASINJE_PLATB" Then
GASINJE_PLATB = a(1)
Wscript.Echo GASINJE_PLATB
End If
If a(0) = "CURRENTSIMSTART" Then
CURRENTSIMSTART = a(1)
Wscript.Echo CURRENTSIMSTART
End If
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 83 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach If a(0) = "CURRENTSIMEND" Then
CURRENTSIMEND = a(1)
Wscript.Echo CURRENTSIMEND
End If
If a(0) = "USERTSTEP" Then
USERTSTEP = a(1)
Wscript.Echo USERTSTEP
End If
If a(0) = "USERTSTEP" Then
USERTSTEP = a(1)
Wscript.Echo USERTSTEP
End If
If a(0) = "TIMESLAVE2" Then
TIMESLAVE2 = a(1)
Wscript.Echo TIMESLAVE2
End If
i=i+1
Loop
'Heuristic Method
'Liquid Constraint Calculation'
Dim WCGRA1, WCGRA2, WCPLATA, OILPLATA, OILPLATB, CONSLIQRATEGRA1,
CONSLIQRATEGRA2
WCGRA1 = 0
WCGRA1 = WCGRA1 + (WATRATEGRA1) /(WATRATEGRA1 + OILRATEGRA1)
WScript.Echo ("WCGRA1 is ") & WCGRA1
WCGRA2 = 0
WCGRA2 = WCGRA2 + (WATRATEGRA2) / (WATRATEGRA2 + OILRATEGRA2)
WScript.Echo ("WCGRA2 is ") & WCGRA2
WCPLATA = 0
WCPLATA = WCPLATA + ((WCGRA1+WCGRA2)/ 2)
WScript.Echo ("WCPLATA is ") & WCPLATA
OILPLATA = 0
OILPLATA = CONSLIQRATEPLATA * (1 - WCPLATA)
WScript.Echo ("OILPLATA is ") & OILPLATA
OILPLATB = OILFIELDRATE - OILPLATA
WScript.Echo ("OILPLATB is ") & OILPLATB
'Liquid are proportional to each Group to keep gas and water constraint
'CONSLIQRATEGRA1 = 0
'CONSLIQRATEGRA1 = WATRATEGRA1 + OILRATEGRA1)
CONSLIQRATEGRA1 = CONSLIQRATEPLATA/2
CONSLIQRATEGRA2 = CONSLIQRATEPLATA/2
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 84 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach WScript.Echo ("CONSLIQRATEGRA1 is ") & CONSLIQRATEGRA1
WScript.Echo ("CONSLIQRATEGRA2 is ") & CONSLIQRATEGRA2
'Gas Rate Constraint Calculation Reservoir-A
Dim CONSGASRATEGRA, CONSGASRATEGRA1, CONSGASRATEGRA2,
GCONTRESHOLDA, GASTOTA
GASTOTA = GRATGRA1 + GRATGRA2)
WScript.Echo ("GASTOTA is ") & GASTOTA
GCONTRESHOLDA = GRATGRA2
WScript.Echo ("GCONTRESHOLD is ") & GCONTRESHOLDA
CONSGASRATEGRA2 = GRATGRA2 * GASTOTA / (GASTOTA + GASINJE_PLATA)
if (CONSGASRATEGRA2) >= (GCONTRESHOLDA) then
CONSGASRATEGRA2 = CONSGASRATEGRA2
CONSGASRATEGRA1 = CONSGASRATEPLATA - CONSGASRATEGRA2
WScript.Echo ("CONSGASRATEGRA1 = ") & CONSGASRATEGRA1
WScript.Echo ("CONSGASRATEGRA2 = ") & CONSGASRATEGRA2
else
CONSGASRATEGRA2 = GCONTRESHOLDA
CONSGASRATEGRA1 = CONSGASRATEPLATA - CONSGASRATEGRA2
WScript.Echo ("CONSGASRATEGRA1 = ") & CONSGASRATEGRA1
WScript.Echo ("CONSGASRATEGRA2 = ") & CONSGASRATEGRA2
end if
'Reservoir B & Reservoir C Calculation
Dim CONSGASRATEGRC, CONSGASRATEGRC1, CONSGASRATEGRC2, CONSGASRATEGRB,
CONSGASRATEGRB1, CONSGASRATEGRB2, GASTOTB, GRATGRB1, GRATGRB2,
GRATGRC1, GRATGRC2, GCONTRESHOLDB
GASTOTB = GRATGRB1 + GRATGRB2 + GRATGRC1 + GRATGRC2
WScript.Echo ("GASTOTB is ") & GASTOTB
GCONTRESHOLDB = GRATGRC2
CONSGASRATEGRC2 = (GRATGRC2 * GASTOTB) / (GASTOTB + GASINJE_PLATB)
if CONSGASRATEGRC2 >= (GCONTRESHOLDB) then
CONSGASRATEGRC2 = CONSGASRATEGRC2
CONSGASRATEGRC1 = CONSGASRATEPLATB - CONSGASRATEGRC2
WScript.Echo ("CONSGASRATEGRC1 = ") & CONSGASRATEGRC1
WScript.Echo ("CONSGASRATEGRC2 = ") & CONSGASRATEGRC2
else
CONSGASRATEGRC2 = GCONTRESHOLDB
CONSGASRATEGRC1 = CONSGASRATEPLATB - CONSGASRATEGRC2
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 85 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach WScript.Echo ("CONSGASRATEGRC2 = ") & CONSGASRATEGRC2
end if
'Special case for Reservoir-C when Reservoir-B is still not opening
Dim CONSOILRATEGRB1, CONSOILRATEGRB2, CONSOILRATEGRB1a,
CONSOILRATEGRB2a, CONSOILRATEGRC, CONSOILRATEGRC1,
CONSOILRATEGRC2,CONSOILRATEGRCa, CONSOILRATEGRC1a, CONSOILRATEGRC2a
CONSOILRATEGRCa = OILPLATB
CONSOILRATEGRC1a = (CONSOILRATEGRCa / 2 )
CONSOILRATEGRC2a = (CONSOILRATEGRCa / 2)
CONSOILRATEGRB1a = 0
CONSOILRATEGRB2a = 0
If (CURRENTSIMEND) < (TIMESLAVE2) Then
CONSOILRATEGRC = OILPLATB
CONSOILRATEGRC1 = (CONSOILRATEGRC / 2)
CONSOILRATEGRC2 = (CONSOILRATEGRC / 2)
WScript.Echo "CONSOILRATEGRC" & CONSOILRATEGRC
Else
CONSOILRATEGRC = OILPLATB / 2
CONSOILRATEGRB = OILPLATB / 2
CONSOILRATEGRB1 = CONSOILRATEGRB / 2
CONSOILRATEGRB2 = CONSOILRATEGRB / 2
CONSOILRATEGRC1 = CONSOILRATEGRC / 2
CONSOILRATEGRC2 = CONSOILRATEGRC / 2
WScript.Echo "current sim end" & CURRENTSIMEND
End if
'Gas Injection Gas Constraint for Platform-A and Platform-B
Dim GIFA, GIFC, GASFIELD, GRATGRB1a, GRATGRB2a
'GIFA = Gas Injection Factor (Based on ECL Original Scheme) @ PLATFORM-A
'GIFB = Gas Injection Factor (Based on ECL Original Scheme) @ PLATFORM-C
GASFIELD = GASTOTA + GASTOTB + GRATGRB1a + GRATGRB2a
WScript.Echo ("Total Gas Production is ") & GASFIELD
GIFA = (GASTOTA + GASINJE_PLATA + GRATGRB1a + GRATGRB2a) / (GASFIELD +
GASINJE_PLATA + GASINJE_PLATB))
GIFB = 1 - GIFA
WScript.Echo ("Gas Injection constraint for Plat-A is ") & GIFA
WScript.Echo ("Gas Injection constraint for Plat-B is ") & GIFB
'Water Injection factor below is not used since the water injection has set proportional directly from
ECLIPSE
'This equation below is used if Reservoir-B shares its water production (but no injection) or proportional
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 86 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 'Dim WIFA, WIFC, WINJA, WRATGRB1, WRATGRB2, WATFIELD, WATOTA, WATOTC
'WATOTA = WATRATEGRA1 + WATRATEGRA2
'WATOTC = WRATGRC1 + WRATGRC2 + WRATGRB1 + WRATGRB2
'WATFIELD = WATOTA + WATOTC
'WIFA = (WASTOTA + WINJGRA2)) / (WATFIELD + WINJGRA2 + WINJGRC2)
'WScript.Echo ("WIFA is ") & WIFA
'WIFC = 1 - WIFA
'WScript.Echo ("Water Injection Factor for Reservoir-A is ") & WIFA
'WScript.Echo ("Water Injection Factor for Reservoir-C is ") & WIFC
WScript.Echo ("Liquid Rate Constraint for Group-A1 is ") & CONSLIQRATEGRA1
WScript.Echo ("Gas Rate Constraint for Group-A1 is ") & CONSGASRATEGRA1
WScript.Echo ("Liquid Rate Constraint for Group-A2 is ") & CONSLIQRATEGRA2
WScript.Echo ("Gas Rate Constraint for Group-A2 is ") & CONSGASRATEGRA2
WScript.Echo ("Oil Rate Constraint for Group-B1 is ") & CONSOILRATEGRB1
WScript.Echo ("Gas Rate Constraint for Group-B1 is ") & CONSGASRATEGRB1
WScript.Echo ("Oil Rate Constraint for Group-B2 is ") & CONSOILRATEGRB2
WScript.Echo ("Gas Rate Constraint for Group-B2 is ") & CONSGASRATEGRB2
WScript.Echo ("Oil Rate Constraint for Group-C1 is ") & CONSOILRATEGRC1
WScript.Echo ("Gas Rate Constraint for Group-C1 is ") & CONSGASRATEGRC1
WScript.Echo ("Oil Rate Constraint for Group-C2 is ") & CONSOILRATEGRC2
WScript.Echo ("Gas Rate Constraint for Group-C2 is ") & CONSGASRATEGRC2
WScript.Echo ("Gas Injection Factor for Plat-A is ") & GIFA
WScript.Echo ("Gas Injection Factor for Plat-B is ") & GIFB
WScript.Echo ("Water Injection Factor for Reservoir -A is ") & WIFA
WScript.Echo ("Water Injection Factor for Reservoir-C is ") & WIFC
'SLAVE 1 constraint output file
'WScript.Echo CURRENTSIMSTART
objOFile.WriteLine("GCONPROD")
objOFile.WriteLine("-- GROUP CNTL OIL WATER GAS LIQU LIMIT AVAIL GUID")
objOFile.WriteLine("-- NAME MODE RATE RATE RATE RATE ACTION FLD RATE")
objOFile.WriteLine("'G-A1' 'LRAT'" & " " & "1*" & " " & "1*" & " " & CONSGASRATEGRA1 & " " &
CONSLIQRATEGRA1 & " " & "'RATE' 'NO' /")
objOFile.WriteLine("'G-A2' 'LRAT'" & " " & "1*" & " " & "1*" & " " & CONSGASRATEGRA2 & " " &
CONSLIQRATEGRA2 & " " & "'RATE' 'NO' /")
objOFile.WriteLine("/")
objOFile.WriteLine("")
objOFile.WriteLine("GCONINJE")
objOFile.WriteLine("-- GROUP PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID")
objOFile.WriteLine("-- NAME INJ MODE
FLD RATE")
objOFile.WriteLine("'G-A1' 'GAS' 'REIN'" & " " & "1*" & " " & "1*" & " " & GIFA & " " & "/")
objOFile.WriteLine("'G-A2' 'WAT' 'VREP'" & " " & "1*" & " " & " 1*" & " " & " 1*" & " " & "0.8" & "
" & "/")
objOFile.WriteLine("/")
objOFile.WriteLine("")
objOFile.WriteLine("TSTEP")
objOFile.WriteLine(CURRENTSIMSTART)
objOFile.WriteLine("/")
objOFile.WriteLine("")
objOFile.WriteLine("TSTEP")
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 87 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach objOFile.WriteLine(USERTSTEP-2*CURRENTSIMSTART)
objOFile.WriteLine("/")
objOFile.WriteLine("")
objOFile.WriteLine("SAVE")
'SLAVE 2 constraint output file
objOFile1.WriteLine("GCONPROD")
objOFile1.WriteLine("-- GROUP CNTL OIL WATER GAS LIQU LIMIT AVAIL GUID")
objOFile1.WriteLine("-- NAME MODE RATE RATE RATE RATE ACTION FLD RATE")
objOFile1.WriteLine("'GR-B1' 'ORAT'" & " " & CONSOILRATEGRB1a & " " & "0" & " " & "1*" &
" " & "0" & " " & "'RATE' 'NO' /")
objOFile1.WriteLine("'GR-B2' 'ORAT'" & " " & CONSOILRATEGRB2a & " " & "0" & " " & "1*" &
" " & "0" & " " & "'RATE' 'NO' /")
objOFile1.WriteLine("/")
objOFile.WriteLine("")
objOFile1.WriteLine("-- GCONINJE")
objOFile1.WriteLine("-- GROUP PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID")
objOFile1.WriteLine("-- NAME INJ MODE
FLD RATE")
objOFile1.WriteLine("-- 'GR-B2' 'WAT' 'VREP'" & " " & "1*" & " " & "1*" & " " & "1*" & " " & "1.0"
& " " & "NO" & " " & "/")
objOFile1.WriteLine("-- /")
objOFile.WriteLine("")
objOFile1.WriteLine("TSTEP")
objOFile1.WriteLine(CURRENTSIMSTART)
objOFile1.WriteLine("/")
objOFile1.WriteLine("")
objOFile1.WriteLine("TSTEP")
objOFile1.WriteLine(TIMESLAVE2)
objOFile1.WriteLine("/")
objOFile1.WriteLine("")
objOFile1.WriteLine("GCONPROD")
objOFile1.WriteLine("-- GROUP CNTL OIL WATER GAS LIQU LIMIT AVAIL GUID")
objOFile1.WriteLine("-- NAME MODE RATE RATE RATE RATE ACTION FLD RATE")
objOFile1.WriteLine("'GR-B1' 'ORAT'" & " " & CONSOILRATEGRB1 & " " & "1*" & " " & "1*" &
" " & "1*" & " " & "'RATE' 'NO' /")
objOFile1.WriteLine("'GR-B2' 'ORAT'" & " " & CONSOILRATEGRB2 & " " & "1*" & " " & "1*" &
" " & "1*" & " " & "'RATE' 'NO' /")
objOFile1.WriteLine("/")
objOFile.WriteLine("")
objOFile1.WriteLine("GCONINJE")
objOFile1.WriteLine("-- GROUP PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID")
objOFile1.WriteLine("-- NAME INJ MODE
FLD RATE")
objOFile1.WriteLine("'GR-B2' 'WAT' 'VREP'" & " " & "1*" & " " & "1*" & " " & "1*" & " " & "1.0"
& " " & "NO" & " " & "/")
objOFile1.WriteLine("/")
objOFile.WriteLine("")
objOFile1.WriteLine("TSTEP")
objOFile1.WriteLine(TIMESLAVE2)
objOFile1.WriteLine("/")
objOFile1.WriteLine("")
objOFile1.WriteLine("TSTEP")
objOFile1.WriteLine(USERTSTEP-2*TIMESLAVE2-2*CURRENTSIMSTART)
objOFile1.WriteLine("/")
objOFile1.WriteLine("")
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 88 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach objOFile1.WriteLine("SAVE")
'SLAVE 3 constraint output file
objOFile2.WriteLine("GCONPROD")
objOFile2.WriteLine("-- GROUP CNTL OIL WATER GAS LIQU LIMIT AVAIL GUID")
objOFile2.WriteLine("-- NAME MODE RATE RATE RATE RATE ACTION FLD RATE")
objOFile2.WriteLine("'GR-C1' 'ORAT'" & " " & CONSOILRATEGRC1a & " " & "1*" & " " &
CONSGASRATEGRC1 & " " & "1*" & " " & "'RATE' 'NO' /")
objOFile2.WriteLine("'GR-C2' 'ORAT'" & " " & CONSOILRATEGRC2a & " " & "1*" & " " &
CONSGASRATEGRC2 & " " & "1*" & " " & "'RATE' 'NO' /")
objOFile2.WriteLine("/")
objOFile2.WriteLine("")
objOFile2.WriteLine("GCONINJE")
objOFile2.WriteLine("-- GROUP PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID")
objOFile2.WriteLine("-- NAME INJ MODE
FLD RATE")
objOFile2.WriteLine("'GR-C1' 'GAS' 'REIN'" & " " & "1*" & " " & "1*" & " " & GIFB & " " & "/")
objOFile2.WriteLine("'GR-C2' 'WAT' 'VREP'" & " " & "1*" & " " & "1*" & " " & "1*" & " " & "0.8"
& " " & "/")
objOFile2.WriteLine("/")
objOFile2.WriteLine("")
objOFile2.WriteLine("TSTEP")
objOFile2.WriteLine(CURRENTSIMSTART)
objOFile2.WriteLine("/")
objOFile2.WriteLine("")
objOFile2.WriteLine("TSTEP")
objOFile2.WriteLine(TIMESLAVE2)
objOFile2.WriteLine("/")
objOFile2.WriteLine("")
objOFile2.WriteLine("GCONPROD")
objOFile2.WriteLine("-- GROUP CNTL OIL WATER GAS LIQU LIMIT AVAIL GUID")
objOFile2.WriteLine("-- NAME MODE RATE RATE RATE RATE ACTION FLD RATE")
objOFile2.WriteLine("'GR-C1' 'ORAT'" & " " & CONSOILRATEGRC1 & " " & "1*" & " " &
CONSGASRATEGRC1 & " " & "1*" & " " & "'RATE' 'NO' /")
objOFile2.WriteLine("'GR-C2' 'ORAT'" & " " & CONSOILRATEGRC2 & " " & "1*" & " " &
CONSGASRATEGRC2 & " " & "1*" & " " & "'RATE' 'NO' /")
objOFile2.WriteLine("/")
objOFile2.WriteLine("")
objOFile2.WriteLine("GCONINJE")
objOFile2.WriteLine("-- GROUP PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID")
objOFile2.WriteLine("-- NAME INJ MODE
FLD RATE")
objOFile2.WriteLine("'GR-C1' 'GAS' 'REIN'" & " " & "1*" & " " & "1*" & " " & GIFB & " " & "/")
objOFile2.WriteLine("'GR-C2' 'WAT' 'VREP'" & " " & "1*" & " " & "1*" & " " & "1*" & " " & "0.8"
& " " & "/")
objOFile2.WriteLine("/")
objOFile2.WriteLine("")
objOFile2.WriteLine("TSTEP")
objOFile2.WriteLine(TIMESLAVE2)
objOFile2.WriteLine("/")
objOFile2.WriteLine("")
objOFile2.WriteLine("TSTEP")
objOFile2.WriteLine(USERTSTEP-2*TIMESLAVE2-2*CURRENTSIMSTART)
objOFile2.WriteLine("/")
objOFile2.WriteLine("")
objOFile2.WriteLine("SAVE")
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 89 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 'Title: Restart Logical Controller
'Purpose: To Formulate and distribute new constraint as input to each Slave for Restart File
Dim objFSO, objIfile, objOFile, objOFile1, objOFile2
Dim curDir, Input, Output1, Output2, Output3
Dim OILFIELDRATE, CONSLIQRATEPLATA, CONSGASRATEPLATA, CONSGASRATEPLATB,
ORATGRA1_R_R, ORATGRA2_R_R, WRATGRA1_R, WRATGRA2_R, GRATGRA1_R,
GRATGRA2_R, WINJGRA1, WINJGRA2_R, GINJGRA1_R, GINJGRA2_R, ORATGRB1_R,
ORATGRB2_R, WRATGRB1_R, WRATGRB2_R, GRATGRB1_R, GRATGRB2_R, WINJGRB1_R,
WINJGRB2_R, GINJGRB1_R, GINJGRB2_R, ORATGRC1_R, ORATGRC2_R, WRATGRC1_R,
WRATGRC2_R, GRATGRC1_R, GRATGRC2_R, WINJGRC1_R, WINJGRC2_R, GINJGRC1_R,
GINJGRC2_R
'CONSLIQRATEPLATA = Constraint Liquid Rate Plat-A
'CONSGASRATEPLATA = Constraint Gas Rate Plat-A
'CONSGASRATEPLATB = Constraint Gas Rate Plat-B
'ORATGRA1_R = Oil rate actual Group A-1
'ORATGRA2_R = Oil rate actual Group A-2
'WRATGRA1_R = Water rate actual Group A-1
'WRATGRA2_R = Water rate actual Group A-2
'GINJGRA1_R = Gas injection rate actual PLAT-A
'GINJGRC1_R = Gas injection rate actual PLAT-B
Dim CURRENTSIMSTART, USERTSTEP, CURRENTSIMEND, TIMESLAVE2
'Reservoir-A data
Set WshShell = WScript.CreateObject ("WScript.Shell")
WScript.Echo (WshShell.CurrentDirectory)
curDir = WshShell.CurrentDirectory
Set objArgs = WScript.Arguments
If objArgs.Count > 0 Then
WScript.Echo objArgs.Count
WScript.Echo objArgs.Length
Input = curdir & "\" & objArgs.item(0)
Output1 = curdir & "\" & objArgs.item(1)
Output2 = curdir & "\" & objArgs.item(2)
Output3 = curdir & "\" & objArgs.item(3)
Else
Wscript.Echo "Didn't Find any Arguments in Command Line Exiting The Script"
WScript.Quit
End If
For i = 0 To objArgs.Count-1
WScript.Echo objArgs.item(i)
Next
di = 0 ' Data to ignore
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 90 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Set objIfile = objFSO.OpenTextFile(Input, 1)
Set objOFile = objFSO.CreateTextFile(Output1, 2)
Set objOFile1 = objFSO.CreateTextFile(Output2, 2)
Set objOFile2 = objFSO.CreateTextFile(Output3, 2)
Dim arrFileLines()
i=0
Do Until objIfile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objIfile.ReadLine
a = Split(arrFileLines(i) , "=")
Wscript.Echo a(0) & " -> " & a(1)
If a(0) = "OILFIELDRATE" Then
OILFIELDRATE = a(1)
Wscript.Echo OILFIELDRATE
End If
If a(0) = "CONSLIQRATEPLATA" Then
CONSLIQRATEPLATA = a(1)
Wscript.Echo CONSLIQRATEPLATA
End If
If a(0) = "CONSGASRATEPLATA" Then
CONSGASRATEPLATA = a(1)
Wscript.Echo CONSGASRATEPLATA
End If
If a(0) = "CONSGASRATEPLATB" Then
CONSGASRATEPLATB = a(1)
Wscript.Echo CONSGASRATEPLATB
End If
If a(0) = "ORATGRA1_R" Then
ORATGRA1_R = a(1)
Wscript.Echo ORATGRA1_R
End If
If a(0) = "ORATGRA2_R" Then
ORATGRA2_R = a(1)
Wscript.Echo ORATGRA2_R
End If
If a(0) = "WRATGRA1_R" Then
WRATGRA1_R = a(1)
Wscript.Echo WRATGRA1_R
End If
If a(0) = "WRATGRA2_R" Then
WRATGRA2_R = a(1)
Wscript.Echo WRATGRA2_R
End If
If a(0) = "GRATGRA1_R" Then
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 91 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach GRATGRA1_R = a(1)
Wscript.Echo GRATGRA1_R
End If
If a(0) = "GRATGRA2_R" Then
GRATGRA2_R = a(1)
Wscript.Echo GRATGRA2_R
End If
If a(0) = "WINJGRA1_R" Then
WINJGRA1_R = a(1)
Wscript.Echo WINJGRA1_R
End If
If a(0) = "WINJGRA2_R" Then
WINJGRA2_R = a(1)
Wscript.Echo WINJGRA2_R
End If
If a(0) = "GINJGRA1_R" Then
GINJGRA1_R = a(1)
Wscript.Echo GINJGRA1_R
End If
If a(0) = "GINJGRA2_R" Then
GINJGRA2_R = a(1)
Wscript.Echo GINJGRA2_R
End If
If a(0) = "ORATGRB1_R" Then
ORATGRB1_R = a(1)
Wscript.Echo ORATGRB1_R
End If
If a(0) = "ORATGRB2_R" Then
ORATGRB2_R = a(1)
Wscript.Echo ORATGRB2_R
End If
If a(0) = "WRATGRB1_R" Then
WRATGRB1_R = a(1)
Wscript.Echo WRATGRB1_R
End If
If a(0) = "WRATGRB2_R" Then
WRATGRB2_R = a(1)
Wscript.Echo WRATGRB2_R
End If
If a(0) = "GRATGRB1_R" Then
GRATGRB1_R = a(1)
Wscript.Echo GRATGRB1_R
End If
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 92 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach If a(0) = "GRATGRB2_R" Then
GRATGRB2_R = a(1)
Wscript.Echo GRATGRB2_R
End If
If a(0) = "WINJGRB1_R" Then
WINJGRB1_R = a(1)
Wscript.Echo WINJGRB1_R
End If
If a(0) = "WINJGRB2_R" Then
WINJGRB2_R = a(1)
Wscript.Echo WINJGRB2_R
End If
If a(0) = "GINJGRB1_R" Then
GINJGRB1_R = a(1)
Wscript.Echo GINJGRB1_R
End If
If a(0) = "GINJGRB2_R" Then
GINJGRB2_R = a(1)
Wscript.Echo GINJGRB2_R
End If
If a(0) = "ORATGRC1_R" Then
ORATGRC1_R = a(1)
Wscript.Echo ORATGRC1_R
End If
If a(0) = "ORATGRC2_R" Then
ORATGRC2_R = a(1)
Wscript.Echo ORATGRC2_R
End If
If a(0) = "WRATGRC1_R" Then
WRATGRC1_R = a(1)
Wscript.Echo WRATGRC1_R
End If
If a(0) = "WRATGRC2_R" Then
WRATGRC2_R = a(1)
Wscript.Echo WRATGRC2_R
End If
If a(0) = "GRATGRC1_R" Then
GRATGRC1_R = a(1)
Wscript.Echo GRATGRC1_R
End If
If a(0) = "GRATGRC2_R" Then
GRATGRC2_R = a(1)
Wscript.Echo GRATGRC2_R
End If
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 93 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach If a(0) = "WINJGRC1_R" Then
WINJGRC1_R = a(1)
Wscript.Echo WINJGRC1_R
End If
If a(0) = "WINJGRC2_R" Then
WINJGRC2_R = a(1)
Wscript.Echo WINJGRC2_R
End If
If a(0) = "GINJGRC1_R" Then
GINJGRC1_R = a(1)
Wscript.Echo GINJGRC1_R
End If
If a(0) = "GINJGRC2_R" Then
GINJGRC2_R = a(1)
Wscript.Echo GINJGRC2_R
End If
If a(0) = "CURRENTSIMSTART" Then
CURRENTSIMSTART = a(1)
Wscript.Echo CURRENTSIMSTART
End If
If a(0) = "CURRENTSIMEND" Then
CURRENTSIMEND = a(1)
Wscript.Echo CURRENTSIMEND
End If
If a(0) = "USERTSTEP" Then
USERTSTEP = a(1)
Wscript.Echo USERTSTEP
End If
If a(0) = "USERTSTEP" Then
USERTSTEP = a(1)
Wscript.Echo USERTSTEP
End If
If a(0) = "TIMESLAVE2" Then
TIMESLAVE2 = a(1)
Wscript.Echo TIMESLAVE2
End If
If a(0) = "ORATGRA1_R_R" Then
ORATGRA1_R_R = a(1)
Wscript.Echo ORATGRA1_R_R
End If
i=i+1
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 94 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Loop
'Liquid Constraint Calculation
Dim WCGRA1, WCGRA2, WCPLATA,OILPLATA, OILPLATB, CONSLIQRATEGRA1,
CONSLIQRATEGRA2
WCGRA1 = 0
WCGRA1 = WCGRA1 + (WRATGRA1_R)/(WRATGRA1_R + ORATGRA1_R)
WScript.Echo ("WCGRA1 is ") & WCGRA1
WCGRA2 = 0
WCGRA2 = WCGRA2 + (WRATGRA2_R) /(WRATGRA2_R + ORATGRA2_R)
WScript.Echo ("WCGRA2 is ") & WCGRA2
WCPLATA = 0
WCPLATA = WCPLATA + ((WCGRA1_R + WCGRA2_R)/ 2)
WScript.Echo ("WCPLATA is ") & WCPLATA
OILPLATA = 0
OILPLATA = CONSLIQRATEPLATA * (1 - WCPLATA)
WScript.Echo ("OILPLATA is ") & OILPLATA
OILPLATB = OILFIELDRATE - OILPLATA
WScript.Echo ("OILPLATB is ") & OILPLATB
CONSLIQRATEGRA = CONSLIQRATEPLATA/2
CONSLIQRATEGRA2 = CONSLIQRATEPLATA - CONSLIQRATEGRA1
'Gas Injection Constraint Calculation Reservoir-A
Dim CONSGASRATEGRA, CONSGASRATEGRA1, CONSGASRATEGRA2,
GCONTRESHOLDA, GASTOTA
GASTOTA = GRATGRA1_R + GRATGRA_R
WScript.Echo ("GASTOTA is ") & GASTOTA
GCONTRESHOLDA = GRATGRA2_R
WScript.Echo ("GCONTRESHOLDA is ") & GCONTRESHOLDA
CONSGASRATEGRA2 = (GRATGRA2_R * GASTOTA) / (GASTOTA + GINJGRA1_R)
if (CONSGASRATEGRA2) >= (GCONTRESHOLDA) then
CONSGASRATEGRA2 =CONSGASRATEGRA2
CONSGASRATEGRA1 = CONSGASRATEPLATA - CONSGASRATEGRA2
WScript.Echo ("CONSGASRATEGRA1 = ") & CONSGASRATEGRA1
WScript.Echo ("CONSGASRATEGRA2 = ") & CONSGASRATEGRA2
else
CONSGASRATEGRA2 = GCONTRESHOLDA
CONSGASRATEGRA1 = CONSGASRATEPLATA - CONSGASRATEGRA2
WScript.Echo ("CONSGASRATEGRA1 = ") & CONSGASRATEGRA1
WScript.Echo ("CONSGASRATEGRA2 = ") & CONSGASRATEGRA2
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 95 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach end if
' Reservoir B & Reservoir C Calculation
Dim CONSGASRATEGRC, CONSGASRATEGRC1, CONSGASRATEGRC2, CONSGASRATEGRB,
CONSGASRATEGRB1, CONSGASRATEGRB2, GASTOTB, GCONTRESHOLDB
GASTOTB = GRATGRB1_R) + GRATGRB2_R + GRATGRC1_R + GRATGRC2_R
WScript.Echo ("GASTOTB is ") & GASTOTB
GCONTRESHOLDB = GRATGRC2_R
CONSGASRATEGRC2 = (GRATGRC2_R * GASTOTB) / (GASTOTB + GINJGRC1_R)
if (CONSGASRATEGRC2) >= (GCONTRESHOLDB) then
CONSGASRATEGRC2 = CONSGASRATEGRC2
CONSGASRATEGRC1 = CONSGASRATEPLATB - CONSGASRATEGR2
WScript.Echo ("CONSGASRATEGRC1 = ") & CONSGASRATEGRC1
WScript.Echo ("CONSGASRATEGRC2 = ") & CONSGASRATEGRC2
else
CONSGASRATEGRC2 = GCONTRESHOLDB
CONSGASRATEGRC1 = CONSGASRATEPLATB - CONSGASRATEGRC2
WScript.Echo ("CONSGASRATEGRC1 = ") & CONSGASRATEGRC1
WScript.Echo ("CONSGASRATEGRC2 = ") & CONSGASRATEGRC2
end if
Dim CONSOILRATEGRB1, CONSOILRATEGRB2, CONSOILRATEGRC,
CONSOILRATEGRC1,
CONSOILRATEGRC2,CONSOILRATEGRCa, CONSOILRATEGRC1a, CONSOILRATEGRC2a
'Constraint for Platform-B
CONSOILRATEGRC = OILPLATB / 2
CONSOILRATEGRB = OILPLATB / 2
CONSOILRATEGRB1 = CONSOILRATEGRB / 2
CONSOILRATEGRB2 = CONSOILRATEGRB / 2
CONSOILRATEGRC1 = CONSOILRATEGRC / 2
CONSOILRATEGRC2 = CONSOILRATEGRC / 2
Dim GIFA, GIFB, GASFIELD
'GIFA = Gas Injection Factor (Based on ECL Original Scheme) @ PLATFORM-A
'GIFB = Gas Injection Factor (Based on ECL Original Scheme) @ PLATFORM-B
GASFIELD = GASTOTA + GASTOTB
WScript.Echo ("Total Gas Production is ") & GASFIELD
GIFA = (GASTOTA + GINJGRA1_R + GRATGRB1_R + GRATGRB2_R) / (GASFIELD +
GINJGRA1_R + GINJGRC1_R))
GIFB = 1 - GIFA
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 96 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach WScript.Echo ("Gas Injection constraint for Plat-A is ") & GIFA
WScript.Echo ("Gas Injection constraint for Plat-B is ") & GIFB
'Water Injection factor below is not used since the water injection has set proportional directly from
ECLIPSE
'This equation below is used if Reservoir-B shares its water production (but no injection) or proportional
'Dim WIFA, WIFC, WINJA, WATFIELD, WATOTA, WATOTC
'WATOTA = (WRATGRA1_R) + (WRATGRA2_R)
'WATOTC = (WRATGRC1_R) +( WRATGRC2_R) +(WRATGRB1_R) +( WRATGRB2_R)
'WATFIELD = WATOTA + WATOTC
'WIFA = (WASTOTA + WINJGRA2_R)) / (WATFIELD + WINJGRA2_R + WINJGRC2_R)
'WScript.Echo ("WIFA is ") & WIFA
'WIFC = 1 - WIFA
'WScript.Echo ("Water Injection Factor for Reservoir-A is ") & WIFA
'WScript.Echo ("Water Injection Factor for Reservoir-C is ") & WIFC
WScript.Echo ("Liquid Rate Constraint for Group-A1 is ") & CONSLIQRATEGRA1
WScript.Echo ("Gas Rate Constraint for Group-A1 is ") & CONSGASRATEGRA1
WScript.Echo ("Liquid Rate Constraint for Group-A2 is ") & CONSLIQRATEGRA2
WScript.Echo ("Gas Rate Constraint for Group-A2 is ") & CONSGASRATEGRA2
WScript.Echo ("Oil Rate Constraint for Group-B1 is ") & CONSOILRATEGRB1
WScript.Echo ("Gas Rate Constraint for Group-B1 is ") & CONSGASRATEGRB1
WScript.Echo ("Oil Rate Constraint for Group-B2 is ") & CONSOILRATEGRB2
WScript.Echo ("Gas Rate Constraint for Group-B2 is ") & CONSGASRATEGRB2
WScript.Echo ("Oil Rate Constraint for Group-C1 is ") & CONSOILRATEGRC1
WScript.Echo ("Gas Rate Constraint for Group-C1 is ") & CONSGASRATEGRC1
WScript.Echo ("Oil Rate Constraint for Group-C2 is ") & CONSOILRATEGRC2
WScript.Echo ("Gas Rate Constraint for Group-C2 is ") & CONSGASRATEGRC2
WScript.Echo ("Water Injection Factor for Reservoir -A is ") & WIFA
WScript.Echo ("Water Injection Factor for Reservoir-C is ") & WIFC
'SLAVE 1
'WScript.Echo CURRENTSIMSTART
objOFile.WriteLine("GCONPROD")
objOFile.WriteLine("-- GROUP CNTL OIL WATER GAS LIQU LIMIT AVAIL GUID")
objOFile.WriteLine("-- NAME MODE RATE RATE RATE RATE ACTION FLD RATE")
objOFile.WriteLine("'G-A1' 'NONE'" & " " & "1*" & " " & "1*" & " " & CONSGASRATEGRA1 & "
" & CONSLIQRATEGRA1 & " " & "'RATE' 'NO' /")
objOFile.WriteLine("'G-A2' 'NONE'" & " " & "1*" & " " & "1*" & " " & CONSGASRATEGRA2 & "
" & CONSLIQRATEGRA2 & " " & "'RATE' 'NO' /")
objOFile.WriteLine("/")
objOFile.WriteLine("")
objOFile.WriteLine("GCONINJE")
objOFile.WriteLine("-- GROUP PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID")
objOFile.WriteLine("-- NAME INJ MODE
FLD RATE")
objOFile.WriteLine("'G-A1' 'GAS' 'REIN'" & " " & "1*" & " " & " 1*" & " " & GIFA & " " & "/")
objOFile.WriteLine("'G-A2' 'WAT' 'VREP'" & " " & "1*" & " " & " 1*" & " " & " 1*" & " " & "0.8" &
" " & "/")
objOFile.WriteLine("/")
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 97 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach objOFile.WriteLine("")
objOFile.WriteLine("TSTEP")
objOFile.WriteLine(CURRENTSIMSTART)
objOFile.WriteLine("/")
objOFile.WriteLine("")
objOFile.WriteLine("TSTEP")
objOFile.WriteLine(USERTSTEP)
objOFile.WriteLine("/")
objOFile.WriteLine("")
objOFile.WriteLine("SAVE")
'SLAVE 2
objOFile1.WriteLine("GCONPROD")
objOFile1.WriteLine("-- GROUP CNTL OIL WATER GAS LIQU LIMIT AVAIL GUID")
objOFile1.WriteLine("-- NAME MODE RATE RATE RATE RATE ACTION FLD RATE")
objOFile1.WriteLine("'GR-B1' 'NONE'" & " " & CONSOILRATEGRB1 & " " & "1*" & " " & "1*" &
" " & "1*" & " " & "'RATE' 'NO' /")
objOFile1.WriteLine("'GR-B2' 'NONE'" & " " & CONSOILRATEGRB2 & " " & "1*" & " " & "1*" &
" " & "1*" & " " & "'RATE' 'NO' /")
objOFile1.WriteLine("/")
objOFile.WriteLine("")
objOFile1.WriteLine("GCONINJE")
objOFile1.WriteLine("-- GROUP PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID")
objOFile1.WriteLine("-- NAME INJ MODE
FLD RATE")
objOFile1.WriteLine("'GR-B2' 'WAT' 'VREP'" & " " & "1*" & " " & "1*" & " " & "1*" & " " & "1.0"
& " " & "NO" & " " & "/")
objOFile1.WriteLine("/")
objOFile.WriteLine("")
objOFile1.WriteLine("TSTEP")
objOFile1.WriteLine(CURRENTSIMSTART)
objOFile1.WriteLine("/")
objOFile1.WriteLine("")
objOFile1.WriteLine("TSTEP")
objOFile1.WriteLine(USERTSTEP)
objOFile1.WriteLine("/")
objOFile1.WriteLine("")
objOFile1.WriteLine("SAVE")
'SLAVE 3
objOFile2.WriteLine("GCONPROD")
objOFile2.WriteLine("-- GROUP CNTL OIL WATER GAS LIQU LIMIT AVAIL GUID")
objOFile2.WriteLine("-- NAME MODE RATE RATE RATE RATE ACTION FLD RATE")
objOFile2.WriteLine("'GR-C1' 'NONE'" & " " & CONSOILRATEGRC1 & " " & "1*" & " " &
CONSGASRATEGRC1 & " " & "1*" & " " & "'RATE' 'NO' /")
objOFile2.WriteLine("'GR-C2' 'NONE'" & " " & CONSOILRATEGRC2 & " " & "1*" & " " &
CONSGASRATEGRC2 & " " & "1*" & " " & "'RATE' 'NO' /")
objOFile2.WriteLine("/")
objOFile2.WriteLine("")
objOFile2.WriteLine("GCONINJE")
objOFile2.WriteLine("-- GROUP PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID")
objOFile2.WriteLine("-- NAME INJ MODE
FLD RATE")
objOFile2.WriteLine("'GR-C1' 'GAS' 'REIN'" & " " & "1*" & " " & "1*" & " " & GIFB & " " & "/")
objOFile2.WriteLine("'GR-C2' 'WAT' 'VREP'" & " " & "1*" & " " & "1*" & " " & "1*" & " " &
"0.8" & " " & "/")
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 98 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach objOFile2.WriteLine("/")
objOFile2.WriteLine("")
objOFile2.WriteLine("TSTEP")
objOFile2.WriteLine(CURRENTSIMSTART)
objOFile2.WriteLine("/")
objOFile2.WriteLine("")
objOFile2.WriteLine("TSTEP")
objOFile2.WriteLine(USERTSTEP)
objOFile2.WriteLine("/")
objOFile2.WriteLine("")
objOFile2.WriteLine("SAVE")
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 99 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach APPENDIX D - Example Calculation
Extracted INPUT from Report file using Maplinkz given from Transition to restart file:
Extract Restart Data (Maplinkz)
RESERVOIR_A
ORATGRA1_R=7101.1
ORATGRA2_R=8282.4
WRATGRA1_R=20.2
WRATGRA2_R=213.9
GRATGRA1_R=55036.2
GRATGRA2_R=14963.8
WINJGRA1_R=0.0
WINJGRA2_R=8852.7
GINJGRA1_R=31319.8
GINJGRA2_R=0.0
RESERVOIR_B
ORATGRB1_R=5000.4
ORATGRB2_R=5000.4
WRATGRB1_R=5.1
WRATGRB2_R=3.3
GRATGRB1_R=6000.4
GRATGRB2_R=6000.4
WINJGRB1_R=0.0
WINJGRB2_R=5159.3
GINJGRB1_R=0.0
GINJGRB2_R=0.0
RESERVOIR_C
ORATGRC1_R=5000.4
ORATGRC2_R=5000.4
WRATGRC1_R=6.7
WRATGRC2_R=18.3
GRATGRC1_R=15958.9
GRATGRC2_R=7275.8
WINJGRC1_R=0.0
WINJGRC2_R=4473.4
GINJGRC1_R=6907.1
GINJGRC2_R=0.0
Constraint:
OILFIELDRATE=40,000 BOPD
CONSLIQRATEPLATA=20,000 BFPD
CONSGASRATEPLATA=70,000 Mscf/day
CONSGASRATEPLATB=55,000 Mscf/day
Calculation:
Eq.12
WRATGRA1_R
= 0.00284
( WRATGRA1_R + ORATGRA1_R)
WRATGRA2_R
=
= 0.0252
( WRATGRA2_R + ORATGRA2_R)
WCGR − A1 =
WCGR − A 2
WC PLAT − A =
WCGR − A1 + WCGR − A2
= 0.014
2
Eq.13
Qo , PLAT − A = CONSLIQRATEPLATA * (1 − WC PLAT − A ) = 19,720 BOPD
Result from Eq.13 used if Reservoir-A has own oil target with keyword ORAT. Since in this case
is using liquid constraint (LRAT), then another approximation used directly with total oil from
Previous time step.
Qo , PLAT − A = Qo , A1 + Qo , A2 = 15,383.5 BOPD
Liquid constraint put in the equal between Group-A1 and A-2 as ECLIPSE does:
Q f , A1 =
Qf , A
2
= 10,000 BFPD
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 100 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Q f , A1 =
Q f , A2
Qf , A
= 10,000 BFPD
2
= Q f , A − Q f , A1 = 10,000 BFPD
'Constraint for Platform-B
Eq.13
Qo , PLAT − B = Qo , F − Qo , PLAT − A = 40,000 − 15,383.5 = 24,616.5 BOPD
Constraint for Oil Rate at Platform-B is equal to all groups
Qo , B =
Qo , PLAT − B
2
= 12,308.25 BOPD
Eq.9
Qo , PLAT − B = Qo , B + Qo , C
Qo , C = Qo , PLAT − B − Qo , B = 12,308.25 BOPD
Hence, Constraint the oil rate each group at Platform-B are:
Qo , B1 =
Qo , B 2 =
Qo , C 1 =
Qo , C 2 =
Qo , B
2
Qo , B
2
Qo , C
2
Qo ,C
2
= 6,154.13 BOPD
= 6,154.13 BOPD
= 6,154.13 BOPD
= 6,154.13 BOPD
Gas Rate Constraint Calculation Reservoir-A
n
∑Q
i =1
g, A
== Qg , A1 + Qg , A2 = 755,036.2 + 14963.8 = 70,000 Mscf / day
Determine the gas threshold from Group which has lowest gas prodoction rate at previous time
step:
Treshold Gas == Q g , A 2 = 14963.8 Mscf / day
Eq.14
Qg , A2(TS )
n
⎞
⎛
⎜ (Qg , A2, x ∑Qg , A ) ⎟
⎛ 14,963.8x70,000 ⎞
i =1
⎟
=⎜
=⎜ n
⎟ = 10.153.75 Mscf / day
n
⎟
⎜
70,000 + 31,319.8 ⎠
⎝
⎜ ∑Qg , A + ∑Qgi, A ⎟
i =1
⎠ (TS −ΔTS )
⎝ i =1
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 101 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach Q
Since, the g , A 2 (TS ) < Treshold gas, then use bigger value as next gas constraint for lower gas
production rate group.
Q g , A2 (TS ) = 14,963.8 Mscf / day
Eq.15
Q g , A1 = Gas Constra int PLAT − A − Q g , A 2 = 70,000 − 14,963.8 = 55,036 Mscf / day
Q g , A2 (TS ) = 14,963.8 Mscf / day
'Gas Rate Constraint Calculation Reservoir-C
Similar to Reservoir-A calculation flow, got:
Q g ,C 2(TS ) = 7275.8 Mscf / day
Q g ,C1 = Gas Constra int PLAT − B − Q g ,C 2 = 55,000 − 7275.8 = 47,724.2 Mscf / day
'Gas Injection Constraint Calculation Reservoir-A
Since Reservoir-B contributes gas production, where a half-gas produced will be re-injected then
use Eq.17. The first step is put all reservoirs unconstrained to know their injection potential then
choose the highest gas injection rate one in reservoir as a base formulation:
(Q
α gA =
α gA =
⎛ n
⎞
)
Q
+
+
⎜ ∑ Qg , i ⎟
g, i
gi , i inj .res
⎠ Non −inj .res
⎝ i =1
, 0 < αg ≤1
n
⎛ n
⎞
⎜ ∑ Qg , i + ∑ Q gi , i ⎟
i =1
⎝ i =1
⎠ inj . res + Non −inj . res
70,000 + (6000.4 + 6000.4) + 31319.8
70,000 + (6000.4 + 6000.4) + (15,958.9 + 7275.8) + (6907.1 + 31319.8)
α gA = 0.77
Gas Injection factor for Plat-B:
α gB = 1 − α gA = 0.23
In this case, Eq.18 is not used since the water injection factor has set proportionally from
ECLIPSE each 0.80.
Those calculation results then as new input for restart run which located in file: SCHEDULE(n)R.inc which n is name of Reservoir or Slave.
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 102 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach APPENDIX E - ECLIPSE Datasets: Master and
Slaves
NOTE: BLUE FONT INDICATES WOULD CHANGE / MODIFY
SAMPLE APPROACH DATASETS (Original RC ECLIPSE Dataset)
------------------------------------------------------------------------------------------------------------------------------------- MASTER RUNS OF ECLIPSE RC DATSET WITH DUMMY
-----------------------------------------------------------------------------------------------------------------------------------RUNSPEC
==============================================================
TITLE
MULTI-LEVEL GROUP CONTROL IN COUPLED RESERVOIRS - MASTER RUN
DIMENS
1 1 1 /
OIL
WATER
GAS
DISGAS
FIELD
TABDIMS
1 1 16 15
3 15 /
REGDIMS
3 1 0 0 /
WELLDIMS
1 1 10 1 /
-- Original was 1 'JAN' 1994
START
1 'JAN' 2010 /
-- Checking available Reservoir Coupling ECLIPSE License
LICENSES
'rescoupling' /
/
NSTACK
4/
-- To release UNSMRY file
UNIFOUT
UNIFIN
GRID
==============================================================
EQUALS
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 103 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach /
'DX' 1000 /
'DY' 1000 /
'DZ' 20 /
'PERMX' 300 /
'PERMY' 300 /
'PERMZ' 30 /
'PORO' 0.3 /
'TOPS' 7000 /
NOGGF
-- Report Levels for Grid Section Data
RPTGRID
/
INIT
PROPS
==============================================================
-- THE PROPS SECTION DEFINES THE REL. PERMEABILITIES, CAPILLARY
-- PRESSURES, AND THE PVT PROPERTIES OF THE RESERVOIR FLUIDS
-- WATER RELATIVE PERMEABILITY AND CAPILLARY PRESSURE ARE TABULATED AS
-- A FUNCTION OF WATER SATURATION.
-- A FUNCTION OF WATER SATURATION.
SWFN
-- SWAT KRW PCOW
0.22 0 7
0.3 0.07 4
0.4 0.15 3
0.5 0.24 2.5
0.6 0.33 2
0.8 0.65 1
0.9 0.83 0.5
1 1 0 /
-- A FUNCTION OF GAS SATURATION.
SGFN
-- SGAS KRG PCOG
0 0
0
0.04 0
0.2
0.1 0.022 0.5
0.2 0.1 1
0.3 0.24 1.5
0.4 0.34 2
0.5 0.42 2.5
0.6 0.5 3
0.7 0.8125 3.5
0.78 1
3.9 /
-- A FUNCTION OF OIL SATURATION.
SOF3
-- SOIL KROW KROG
0
0
0
0.2
0
0
0.38 0.00432 0
0.4
0.0048 0.004
0.48 0.05288 0.02
0.5
0.0649 0.036
0.58 0.11298 0.1
0.6
0.125 0.146
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 104 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 0.68
0.7
0.74
0.78
0.345 0.33
0.4
0.42
0.7
0.6
1
1
/
PVTW
-- REF. PRES.(psia) REF. FVF COMPRESSIBILITY(psia-1) REF VISCOSITY(cp) VISCOSIBILITY
3000 1.00341 3.0D-6 0.96 0 /
ROCK
-- REF. PRES(psia) COMPRESSIBILITY(psia-1)
3600 4.0D-6 /
DENSITY
-- OIL WATER GAS
45 63.02 0.0702 /
-- PVT PROPERTIES OF DRY GAS (NO VAPOURISED OIL)
-- WE WOULD USE PVTG TO SPECIFY THE PROPERTIES OF WET GAS
PVDG
-- PGAS BGAS VISGAS
400 5.9 0.013
800 2.95 0.0135
1200 1.96 0.014
1600 1.47 0.0145
2000 1.18 0.015
2400 0.98 0.0155
2800 0.84 0.016
3200 0.74 0.0165
3600 0.65 0.017
4000 0.59 0.0175
4400 0.54 0.018
4800 0.49 0.0185
5200 0.45 0.019
5600 0.42 0.0195 /
-- PVT PROPERTIES OF LIVE OIL (WITH DISSOLVED GAS)
PVTO
-- RS POIL FVFO VISO
0.165 400 1.012 1.17 /
0.335 800 1.0255 1.14 /
0.500 1200 1.038 1.11 /
0.665 1600 1.051 1.08 /
0.828 2000 1.063 1.06 /
0.985 2400 1.075 1.03 /
1.130 2800 1.087 1.00 /
1.270 3200 1.0985 0.98 /
1.390 3600 1.11 0.95 /
1.500 4000 1.12 0.94 /
1.600 4400 1.13 0.92 /
1.676 4800 1.14 0.91 /
1.750 5200 1.148 0.9 /
1.810 5600 1.155 0.89
6000 1.1504 0.89
6400 1.1458 0.89
6800 1.1412 0.89
7200 1.1367 0.89 /
/
RPTPROPS
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 105 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach SOLUTION
============================================================
-- DATUM DATUM OWC OWC GOC GOC RSVD RVVD SOLN
-- DEPTH PRESS DEPTH PCOW DEPTH PCOG TABLE TABLE METH
EQUIL
7010 4000 9000 0.0 7010
0.0 0
0
5 /
SUMMARY
=============================================================
-THIS SECTION SPECIFIES DATA TO BE WRITTEN TO THE SUMMARY
-FILES, WHICH MAY LATER BE USED WITH THE GRAPHICS PACKAGE.
=============================================================
FOPR
FWPR
FGPR
GLPR
'PLAT-A' /
GOPR
/
GWPR
/
GGPR
/
FWIR
FGIR
GWIR
/
GGIR
/
GVIR
/
FMCTP
GMCTP
/
FMCTW
GMCTW
/
FMCTG
GMCTG
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 106 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach DATE
-- HAVE THESE QUANTITIES TABULATED IN THE PRINT FILE
RUNSUM
SEPARATE
SCHEDULE
==============================================================
SKIPREST
SLAVES
-- slave datafile machine directory
-- name root hostname of data file
/
'slave1' 'rcslave1' '*' '.' /
'slave2' 'rcslave2' '*' '.' /
'slave3' 'rcslave3' '*' '.' /
DUMPCUPL
'U' /
DRSDT
1E20 /
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'WELSPECS' /
GRUPTREE
'GR-A1' 'PLAT-A' /
'GR-A2' 'PLAT-A' /
'SP-B' 'PLAT-B' /
'SP-C' 'PLAT-B' /
'GR-B1' 'SP-B' /
'GR-B2' 'SP-B' /
'GR-C1' 'SP-C' /
'GR-C2' 'SP-C' /
/
GRUPMAST
-- MASTER SLAVE SLAVE LIMITING
-- GROUP NAME GROUP RATE CHANGE
'GR-A1' 'SLAVE1' 'G-A1' 0.1 /
'GR-A2' 'SLAVE1' 'G-A2' 0.1 /
'GR-B1' 'SLAVE2' 1*
0.1 /
'GR-B2' 'SLAVE2' 1*
0.1 /
'GR-C1' 'SLAVE3' 1*
0.1 /
'GR-C2' 'SLAVE3' 1*
0.1 /
/
GCONPROD
-- GROUP CNTL OIL WATER GAS LIQU LIMIT AVAIL GUID
-- NAME
MODE RATE RATE RATE RATE ACTION FLD RATE
'FIELD' 'ORAT' 40000 /
'PLAT-A' 'LRAT' 2*
70000 20000 'RATE' 'NO' /
'PLAT-B' 'NONE' 2*
55000 1* 'RATE' 'YES' /
'GR-*' 'NONE' 5*
'YES' 1000 'LIQ' /
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 107 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach GCONINJE
-- GROUP PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID GRAT
-- NAME INJ MODE
FLD RATE DEFN
'FIELD' 'GAS' 'REIN' 1* 1* 0.5 /
'FIELD' 'WAT' 'VREP' 1* 1* 1* 0.8 /
'PLAT-A' 'GAS' 'FLD' 1* 1* 1* 1* 1* 1* 'VOID' /
'PLAT-A' 'WAT' 'FLD' 1* 1* 1* 1* 1* 1* 'NETV' /
'SP-C' 'GAS' 'FLD' 1* 1* 1* 1* 1* 1* 'VOID' /
'SP-C' 'WAT' 'FLD' 1* 1* 1* 1* 1* 1* 'NETV' /
'SP-B' 'WAT' 'VREP' 1* 1* 1* 1.0 'NO' /
'GR-*' 'GAS' 'FLD' 5*
100 'RATE' /
'GR-*' 'WAT' 'FLD' 5*
100 'RATE' /
/
-- The TUNING data is kept on the restart file so that it will apply to any subsequent
-- restart run unless it is reset in the restart run.
-- Whenever TUNING is declared with the TSINIT field defaulted, then TSINIT is set
-- equal to 1.0.
TUNING
1 50 /
/
-- The number represents the minimum timestep length that can be imposed by a group’s limiting
-- flow rate fractional change.
RCMASTS
10 /
DATES
11 'JAN' 2010 /
20 'FEB' 2010 /
1 'APR' 2010 /
1 'JLY' 2010 /
1 'OCT' 2010 /
/
-- RESTART FILE DUMP
RPTSCHED
'RESTART=2' 'WELLS=2' 'SUMMARY=2' 'CPU=2' 'WELSPECS' /
DATES
1 'JAN' 2011 /
/
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'WELSPECS' /
DATES
1 'APR' 2011 /
1 'JLY' 2011 /
1 'OCT' 2011 /
1 'JAN' 2012 /
/
END
==============================================================
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 108 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach --------------------------------------------------------------------------------------------------------------- RESERVOIR-A (RCSLAVE1) ORIGINAL DATASET
-------------------------------------------------------------------------------------------------------------RUNSPEC
==============================================================
TITLE
MULTI-LEVEL GROUP CONTROL IN COUPLED RESERVOIRS - SLAVE1
DIMENS
3 9 3 /
OIL
WATER
GAS
DISGAS
FIELD
TABDIMS
1 1 16 15
3 15 /
REGDIMS
3 1 0 0 /
WELLDIMS
10 3 4 6 /
START
1 'JAN' 2010 /
NSTACK
4/
GRID
==============================================================
EQUALS
'DX' 1000 /
'DY' 1000 /
'DZ' 20 /
'PERMX' 300 /
'PERMY' 300 /
'PERMZ' 30 /
'PORO' 0.3 /
'TOPS' 7000
1
'TOPS' 7020
1
'TOPS' 7040
1
'TOPS' 7060
1
'TOPS' 7080
1
'TOPS' 7100
1
'TOPS' 7120
1
'TOPS' 7140
1
'TOPS' 7160
1
/
3
3
3
3
3
3
3
3
3
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
/
/
/
/
/
/
/
/
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 109 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach NOGGF
RPTGRID
/
PROPS
==============================================================
SWFN
0.22 0 7
0.3 0.07 4
0.4 0.15 3
0.5 0.24 2.5
0.6 0.33 2
0.8 0.65 1
0.9 0.83 0.5
1 1 0 /
SGFN
0 0
0
0.04 0
0.2
0.1 0.022 0.5
0.2 0.1 1
0.3 0.24 1.5
0.4 0.34 2
0.5 0.42 2.5
0.6 0.5 3
0.7 0.8125 3.5
0.78 1
3.9 /
SOF3
0
0
0
0.2
0
0
0.38 0.00432 0
0.4
0.0048 0.004
0.48 0.05288 0.02
0.5
0.0649 0.036
0.58 0.11298 0.1
0.6
0.125 0.146
0.68 0.345 0.33
0.7
0.4
0.42
0.74 0.7
0.6
0.78 1
1
/
PVTW
3000 1.00341 3.0D-6 0.96 0 /
ROCK
3600 4.0D-6 /
DENSITY
45 63.02 0.0702 /
PVDG
400 5.9 0.013
800 2.95 0.0135
1200 1.96 0.014
1600 1.47 0.0145
2000 1.18 0.015
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 110 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 2400
2800
3200
3600
4000
4400
4800
5200
5600
0.98
0.84
0.74
0.65
0.59
0.54
0.49
0.45
0.42
PVTO
0.165
0.335
0.500
0.665
0.828
0.985
1.130
1.270
1.390
1.500
1.600
1.676
1.750
1.810
0.0155
0.016
0.0165
0.017
0.0175
0.018
0.0185
0.019
0.0195 /
400 1.012 1.17 /
800 1.0255 1.14 /
1200 1.038 1.11 /
1600 1.051 1.08 /
2000 1.063 1.06 /
2400 1.075 1.03 /
2800 1.087 1.00 /
3200 1.0985 0.98 /
3600 1.11 0.95 /
4000 1.12 0.94 /
4400 1.13 0.92 /
4800 1.14 0.91 /
5200 1.148 0.9 /
5600 1.155 0.89
6000 1.1504 0.89
6400 1.1458 0.89
6800 1.1412 0.89
7200 1.1367 0.89 /
/
RPTPROPS
/
SOLUTION
==============================================================
-- DATUM DATUM OWC OWC GOC GOC RSVD RVVD SOLN
-- DEPTH PRESS DEPTH PCOW DEPTH PCOG TABLE TABLE METH
EQUIL
7010 4000 9000 0.0 7010
0.0 0
0
5 /
RPTSOL
-- Initialisation Print Output
-'PRES' 'SWAT' 'RS' 'FIP=2' 'EQUIL' 'RSVD' /
SUMMARY
==============================================================
FOPR
FWPR
FGPR
FLPR
FVPR
GOPR
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 111 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 'G-A1' 'G-A2' /
GWPR
'G-A1' 'G-A2' /
GGPR
'G-A1' 'G-A2' /
FWIR
FGIR
FVIR
GMCTP
'G-A1' 'G-A2' /
GMCTW
'G-A2' /
GMCTG
'G-A1' /
WMCTL
/
FMWPR
FMWIN
DATE
RUNSUM
SCHEDULE
==============================================================
SKIPREST
DRSDT
1E20 /
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'WELSPECS' /
WELSPECS
-- WELL GROUP LOCATION BHP PREF DRAIN BACK SHUT/
-- NAME NAME
I J DEPTH PHAS RAD PRES STOP
'PA1' 'G-A1'
3 2 1* 'OIL' -1.0 'NO' 'SH' /
'PA2' 'G-A1'
1 3 1* 'OIL' -1.0 'NO' 'SH' /
'PA3' 'G-A1'
2 4 1* 'OIL' -1.0 'NO' 'SH' /
'PA4' 'G-A2'
2 7 1* 'OIL' -1.0 'NO' 'SH' /
'PA5' 'G-A2'
1 6 1* 'OIL' -1.0 'NO' 'SH' /
'PA6' 'G-A2'
3 5 1* 'OIL' -1.0 'NO' 'SH' /
'IGA' 'G-A1'
1 1 1* 'GAS' -1.0 /
'IWA1' 'G-A2'
1 9 1* 'WAT' -1.0 /
'IWA2' 'G-A2'
2 9 1* 'WAT' -1.0 /
'IWA3' 'G-A2'
3 9 1* 'WAT' -1.0 /
/
GRUPSLAV
-- SLAVE EQUIV OIL
WAT/LIQ GAS
Luky Hendraningrat – M.Sc. Thesis, 2010 RESV OIL
WAT
GAS
Page 112 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach -- GROUP MASTER PROD PROD PROD PROD INJ INJ INJ
-- NAME GROUP LIMITS LIMITS LIMITS LIMITS LIMITS LIMITS LIMITS
'G-A1' 'GR-A1' /
'G-A2' 'GR-A2' /
/
COMPDAT
-- WELL -LOCATION- OPEN/ SAT CONN BORE
-- NAME I J K1-K2 SHUT TAB FACT DIAM
'PA1' 3 2 1 3 'OPEN' 0 0.0 0.333 /
'PA2' 1 3 1 3 'OPEN' 0 0.0 0.333 /
'PA3' 2 4 1 3 'OPEN' 0 0.0 0.333 /
'PA4' 2 7 1 3 'OPEN' 0 0.0 0.333 /
'PA5' 1 6 1 3 'OPEN' 0 0.0 0.333 /
'PA6' 3 5 1 3 'OPEN' 0 0.0 0.333 /
'IGA' 1 1 1 1 'OPEN' 0 0.0 0.333 /
'IWA1' 1 9 2 3 'OPEN' 0 0.0 0.333 /
'IWA2' 2 9 2 3 'OPEN' 0 0.0 0.333 /
'IWA3' 3 9 2 3 'OPEN' 0 0.0 0.333 /
/
-- Original Data
-- 'P*' 0 0 1 3 'OPEN' 0 0.0 0.333 /
-- 'IG*' 0 0 1 1 'OPEN' 0 0.0 0.333 /
-- 'IW*' 0 0 2 3 'OPEN' 0 0.0 0.333 /
-- /
WCONPROD
-- WELL OPEN/ CNTL OIL WATER GAS LIQU VOID BHP
-- NAME SHUT MODE RATE RATE RATE RATE RATE
'P*' 'SHUT' 'GRUP' 2*
3E4
2* 2000 /
/
WELOPEN
'PA1' /
'PA2' /
'PA4' /
/
WCONINJE
-- WELL INJ OPEN/ CNTL FLOW RESV BHP
-- NAME TYPE SHUT MODE RATE RATE
'IG*' 'GAS' 'OPEN' 'GRUP' 2*
5500 /
'IW*' 'WAT' 'OPEN' 'GRUP' 2*
5500 /
'IWA2' 'WAT' 'SHUT' 'GRUP' 2*
5500 /
/
QDRILL
'PA3' 'PA5' 'PA6' 'IWA2' /
WECON
-- WELL MIN MIN MAX MAX MAX WORK END
-- NAME OIL GAS WCT GOR WGR OVER RUN
'P*' 500 1* 0.7 10.0 1* 'CON' 'NO' /
/
GCONPROD
-- GROUP CNTL OIL WATER GAS LIQU LIMIT AVAIL GUID
-- NAME
MODE RATE RATE RATE RATE ACTION FLD RATE
'G-*' 'LRAT' 3*
8000 'RATE' 'NO' /
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 113 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach GCONINJE
-- GROUP PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID GRAT
-- NAME INJ MODE
FLD RATE DEFN
'G-A1' 'GAS' 'RATE' 10 /
'G-A2' 'WAT' 'RESV' 1* 10 /
/
DATES
11 'JAN' 2010 /
20 'FEB' 2010 /
1 'APR' 2010 /
1 'JLY' 2010 /
1 'OCT' 2010 /
/
-- RESTART FILE DUMP
RPTSCHED
'RESTART=2' 'WELLS=2' 'SUMMARY=2' 'CPU=2' 'WELSPECS' /
DATES
1 'JAN' 2011 /
/
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'WELSPECS' /
DATES
1 'APR' 2011 /
1 'JLY' 2011 /
1 'OCT' 2011 /
1 'JAN' 2012 /
/
END
==============================================================
-------------------------------------------------------------------------------------------------------------Luky Hendraningrat – M.Sc. Thesis, 2010 Page 114 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach -- RESERVOIR-B (RCSLAVE2) ORIGINAL DATASET
-------------------------------------------------------------------------------------------------------------RUNSPEC
==============================================================
TITLE
MULTI-LEVEL GROUP CONTROL IN COUPLED RESERVOIRS - SLAVE2
DIMENS
3 9 3 /
OIL
WATER
FIELD
TABDIMS
1 1 16 15
3 15 /
REGDIMS
3 1 0 0 /
WELLDIMS
10 3 4 6 /
START
1 'MAR' 2010 /
NSTACK
4/
GRID
==============================================================
EQUALS
'DX' 1000 /
'DY' 2000 /
'DZ' 20 /
'PERMX' 300 /
'PERMY' 300 /
'PERMZ' 30 /
'PORO' 0.3 /
'TOPS' 7000
1
'TOPS' 7020
1
'TOPS' 7040
1
'TOPS' 7060
1
'TOPS' 7080
1
'TOPS' 7100
1
'TOPS' 7120
1
'TOPS' 7140
1
'TOPS' 7160
1
/
3
3
3
3
3
3
3
3
3
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
/
/
/
/
/
/
/
/
/
NOGGF
RPTGRID
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 115 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach PROPS
==============================================================
SWFN
0.22 0 7
0.3 0.07 4
0.4 0.15 3
0.5 0.24 2.5
0.6 0.33 2
0.8 0.65 1
0.9 0.83 0.5
1 1 0 /
SOF2
0
0
0.2
0
0.38 0.00432
0.4
0.0048
0.48 0.05288
0.5
0.0649
0.58 0.11298
0.6
0.125
0.68 0.345
0.7
0.4
0.74 0.7
0.78 1
/
PVTW
3000 1.00341 3.0D-6 0.96 0 /
ROCK
3600 4.0D-6 /
DENSITY
45 63.02 0.0702 /
PVDO
1400 1.05 1.0
7200 1.01 1.0 /
RSCONST
1.2 3100 /
RPTPROPS
/
SOLUTION
==============================================================
-- DATUM DATUM OWC OWC GOC GOC RSVD RVVD SOLN
-- DEPTH PRESS DEPTH PCOW DEPTH PCOG TABLE TABLE METH
EQUIL
7010 4000 9000 0.0 7010
0.0 0
0
5 /
RPTSOL
-- Initialisation Print Output
-'PRES' 'SWAT' 'RS' 'FIP=2' 'EQUIL' 'RSVD' /
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 116 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach SUMMARY
==============================================================
FOPR
FWPR
FLPR
FVPR
GOPR
'GR-B1' 'GR-B2' /
GWPR
'GR-B1' 'GR-B2' /
FWIR
FVIR
GMCTP
'GR-B1' 'GR-B2' /
GMCTW
'GR-B2' /
WMCTL
/
FMWPR
FMWIN
DATE
RUNSUM
SCHEDULE
==============================================================
SKIPREST
DRSDT
1E20 /
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'WELSPECS' /
WELSPECS
-- WELL GROUP LOCATION BHP PREF DRAIN BACK SHUT/
-- NAME NAME
I J DEPTH PHAS RAD PRES STOP
'PB1' 'GR-B1' 3 2 1* 'OIL' -1.0 'NO' 'SH' /
'PB2' 'GR-B1' 1 3 1* 'OIL' -1.0 'NO' 'SH' /
'PB3' 'GR-B1' 2 4 1* 'OIL' -1.0 'NO' 'SH' /
'PB4' 'GR-B2' 2 7 1* 'OIL' -1.0 'NO' 'SH' /
'PB5' 'GR-B2' 1 6 1* 'OIL' -1.0 'NO' 'SH' /
'PB6' 'GR-B2' 3 5 1* 'OIL' -1.0 'NO' 'SH' /
'IWB1' 'GR-B2' 1 9 1* 'WAT' -1.0 /
'IWB2' 'GR-B2' 2 9 1* 'WAT' -1.0 /
'IWB3' 'GR-B2' 3 9 1* 'WAT' -1.0 /
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 117 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach /
GRUPSLAV
'GR-B1' /
'GR-B2' /
/
COMPDAT
-- WELL -LOCATION- OPEN/ SAT CONN BORE KH SKIN
-- NAME I J K1-K2 SHUT TAB FACT DIAM
'PB1' 3 2 1 3 'OPEN' 0 0.0 0.333 /
'PB2' 1 3 1 3 'OPEN' 0 0.0 0.333 /
'PB3' 2 4 1 3 'OPEN' 0 0.0 0.333 /
'PB4' 2 7 1 3 'OPEN' 0 0.0 0.333 /
'PB5' 1 6 1 3 'OPEN' 0 0.0 0.333 /
'PB6' 3 5 1 3 'OPEN' 0 0.0 0.333 /
'IWB1' 1 9 2 3 'OPEN' 0 0.0 0.333 1* -3 /
'IWB2' 2 9 2 3 'OPEN' 0 0.0 0.333 1* -3 /
'IWB3' 3 9 2 3 'OPEN' 0 0.0 0.333 1* -3 /
/
-- Original data could not read 0 IJ on streamz
-- 'P*' 0 0 1 3 'OPEN' 0 0.0 0.333 /
-- 'IW*' 0 0 2 3 'OPEN' 0 0.0 0.333 1*
-- /
-3 /
WCONPROD
-- WELL OPEN/ CNTL OIL WATER GAS LIQU VOID BHP
-- NAME SHUT MODE RATE RATE RATE RATE RATE
'P*' 'SHUT' 'GRUP' 3*
2*
2000 /
/
WELOPEN
'PB1' /
'PB2' /
'PB4' /
/
WCONINJE
-- WELL INJ OPEN/ CNTL FLOW RESV BHP
-- NAME TYPE SHUT MODE RATE RATE
'IW*' 'WAT' 'OPEN' 'GRUP' 2*
6000 /
'IWB2' 'WAT' 'SHUT' 'GRUP' 2*
6000 /
/
QDRILL
'PB3' 'PB5' 'PB6' 'IWB2' /
WECON
-- WELL MIN MIN MAX MAX MAX WORK END
-- NAME OIL GAS WCT GOR WGR OVER RUN
'P*' 500 1* 0.7 10.0 1* 'CON' 'NO' /
/
GCONPROD
-- GROUP CNTL OIL WATER GAS LIQU LIMIT AVAIL GUID
-- NAME
MODE RATE RATE RATE RATE ACTION FLD RATE
'GR-*' 'ORAT' 10 3*
'RATE' 'NO' /
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 118 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach GCONINJE
-- GROUP PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID GRAT
-- NAME INJ MODE
FLD RATE DEFN
'GR-B2' 'WAT' 'RESV' 1* 10 /
/
DATES
11 'MAR' 2010 /
1 'MAY' 2010 /
1 'JLY' 2010 /
1 'OCT' 2010 /
/
--RESTART FILE DUMP
RPTSCHED
'RESTART=2' 'WELLS=2' 'SUMMARY=2' 'CPU=2' 'WELSPECS' /
DATES
1 'JAN' 2011 /
/
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'WELSPECS' /
DATES
1 'APR' 2011 /
1 'JLY' 2011 /
1 'OCT' 2011 /
1 'JAN' 2012 /
/
END
==============================================================
-------------------------------------------------------------------------------------------------------------Luky Hendraningrat – M.Sc. Thesis, 2010 Page 119 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach -- RESERVOIR-C (RCSLAVE3) ORIGINAL DATASET
-------------------------------------------------------------------------------------------------------------RUNSPEC
==============================================================
TITLE
MULTI-LEVEL GROUP CONTROL IN COUPLED RESERVOIRS - SLAVE3
DIMENS
3 9 3 /
OIL
WATER
GAS
DISGAS
FIELD
TABDIMS
1 1 16 15
3 15 /
REGDIMS
3 1 0 0/
WELLDIMS
10 3 4 6 /
START
1 'JAN' 2010 /
NSTACK
4/
GRID
==============================================================
EQUALS
'DX' 1000 /
'DY' 1000 /
'DZ' 20 /
'PERMX' 300 /
'PERMY' 300 /
'PERMZ' 30 /
'PORO' 0.3 /
'TOPS' 7000
1
'TOPS' 7020
1
'TOPS' 7040
1
'TOPS' 7060
1
'TOPS' 7080
1
'TOPS' 7100
1
'TOPS' 7120
1
'TOPS' 7140
1
'TOPS' 7160
1
/
3
3
3
3
3
3
3
3
3
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
/
/
/
/
/
/
/
/
/
NOGGF
RPTGRID
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 120 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach /
PROPS
==============================================================
SWFN
0.22 0 7
0.3 0.07 4
0.4 0.15 3
0.5 0.24 2.5
0.6 0.33 2
0.8 0.65 1
0.9 0.83 0.5
1 1 0 /
SGFN
0 0
0
0.04 0
0.2
0.1 0.022 0.5
0.2 0.1 1
0.3 0.24 1.5
0.4 0.34 2
0.5 0.42 2.5
0.6 0.5 3
0.7 0.8125 3.5
0.78 1
3.9 /
SOF3
0
0
0
0.2
0
0
0.38 0.00432 0
0.4
0.0048 0.004
0.48 0.05288 0.02
0.5
0.0649 0.036
0.58 0.11298 0.1
0.6
0.125 0.146
0.68 0.345 0.33
0.7
0.4
0.42
0.74 0.7
0.6
0.78 1
1
/
PVTW
3000 1.00341 3.0D-6 0.96 0 /
ROCK
3600 4.0D-6 /
DENSITY
45 63.02 0.0702 /
PVDG
400 5.9 0.013
800 2.95 0.0135
1200 1.96 0.014
1600 1.47 0.0145
2000 1.18 0.015
2400 0.98 0.0155
2800 0.84 0.016
3200 0.74 0.0165
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 121 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 3600
4000
4400
4800
5200
5600
0.65
0.59
0.54
0.49
0.45
0.42
PVTO
0.165
0.335
0.500
0.665
0.828
0.985
1.130
1.270
1.390
1.500
1.600
1.676
1.750
1.810
/
0.017
0.0175
0.018
0.0185
0.019
0.0195 /
400 1.012 1.17 /
800 1.0255 1.14 /
1200 1.038 1.11 /
1600 1.051 1.08 /
2000 1.063 1.06 /
2400 1.075 1.03 /
2800 1.087 1.00 /
3200 1.0985 0.98 /
3600 1.11 0.95 /
4000 1.12 0.94 /
4400 1.13 0.92 /
4800 1.14 0.91 /
5200 1.148 0.9 /
5600 1.155 0.89
6000 1.1504 0.89
6400 1.1458 0.89
6800 1.1412 0.89
7200 1.1367 0.89 /
RPTPROPS
/
SOLUTION
============================================================
-- DATUM DATUM OWC OWC GOC GOC RSVD RVVD SOLN
-- DEPTH PRESS DEPTH PCOW DEPTH PCOG TABLE TABLE METH
EQUIL
7010 4000 9000 0.0 7010
0.0 0
0
5 /
RPTSOL
-- Initialisation Print Output
-'PRES' 'SWAT' 'RS' 'FIP=2' 'EQUIL' 'RSVD' /
SUMMARY
=============================================================
FOPR
FWPR
FGPR
FLPR
FVPR
GOPR
'GR-C1' 'GR-C2' /
GWPR
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 122 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 'GR-C1' 'GR-C2' /
GGPR
'GR-C1' 'GR-C2' /
FWIR
FGIR
FVIR
GMCTP
'GR-C1' 'GR-C2' /
GMCTW
'GR-C2' /
GMCTG
'GR-C1' /
WMCTL
/
FMWPR
FMWIN
DATE
RUNSUM
SCHEDULE
=============================================================
SKIPREST
DRSDT
1E20 /
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'WELSPECS' /
WELSPECS
-- WELL GROUP LOCATION BHP PREF DRAIN BACK SHUT/
-- NAME NAME
I J DEPTH PHAS RAD PRES STOP
'PC1' 'GR-C1'
3 2 1* 'OIL' -1.0 'NO' 'SH' /
'PC2' 'GR-C1'
1 3 1* 'OIL' -1.0 'NO' 'SH' /
'PC3' 'GR-C1'
2 4 1* 'OIL' -1.0 'NO' 'SH' /
'PC4' 'GR-C2'
2 7 1* 'OIL' -1.0 'NO' 'SH' /
'PC5' 'GR-C2'
1 6 1* 'OIL' -1.0 'NO' 'SH' /
'PC6' 'GR-C2'
3 5 1* 'OIL' -1.0 'NO' 'SH' /
'IGC' 'GR-C1'
1 1 1* 'GAS' -1.0 /
'IWC1' 'GR-C2'
1 9 1* 'WAT' -1.0 /
'IWC2' 'GR-C2'
2 9 1* 'WAT' -1.0 /
'IWC3' 'GR-C2'
3 9 1* 'WAT' -1.0 /
/
GRUPSLAV
'GR-C1' /
'GR-C2' /
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 123 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach COMPDAT
-- WELL -LOCATION- OPEN/ SAT CONN BORE
-- NAME I J K1-K2 SHUT TAB FACT DIAM
'PC1' 3 2 1 3 'OPEN' 0 0.0 0.333 /
'PC2' 1 3 1 3 'OPEN' 0 0.0 0.333 /
'PC3' 2 4 1 3 'OPEN' 0 0.0 0.333 /
'PC4' 2 7 1 3 'OPEN' 0 0.0 0.333 /
'PC5' 1 6 1 3 'OPEN' 0 0.0 0.333 /
'PC6' 3 5 1 3 'OPEN' 0 0.0 0.333 /
'IGC' 1 1 1 1 'OPEN' 0 0.0 0.333 /
'IWC1' 1 9 2 3 'OPEN' 0 0.0 0.333 /
'IWC2' 2 9 2 3 'OPEN' 0 0.0 0.333 /
'IWC3' 3 9 2 3 'OPEN' 0 0.0 0.333 /
/
-- Original data could not read 0 IJ on streamz
-- 'P*' 0 0 1 3 'OPEN' 0 0.0 0.333 /
-- 'IG*' 0 0 1 1 'OPEN' 0 0.0 0.333 /
-- 'IW*' 0 0 2 3 'OPEN' 0 0.0 0.333 /
-- /
WCONPROD
-- WELL OPEN/ CNTL OIL WATER GAS LIQU VOID BHP
-- NAME SHUT MODE RATE RATE RATE RATE RATE
'P*' 'SHUT' 'GRUP' 2*
3E4
2* 2000 /
/
WELOPEN
'PC1' /
'PC2' /
'PC4' /
/
WCONINJE
-- WELL INJ OPEN/ CNTL FLOW RESV BHP
-- NAME TYPE SHUT MODE RATE RATE
'IG*' 'GAS' 'OPEN' 'GRUP' 2*
5500 /
'IW*' 'WAT' 'OPEN' 'GRUP' 2*
5500 /
'IWC2' 'WAT' 'SHUT' 'GRUP' 2*
5500 /
/
QDRILL
'PC3' 'PC5' 'PC6' 'IWC2' /
WECON
-- WELL MIN MIN MAX MAX MAX WORK END
-- NAME OIL GAS WCT GOR WGR OVER RUN
'P*' 500 1* 0.7 10.0 1* 'CON' 'NO' /
/
GCONPROD
-- GROUP CNTL OIL WATER GAS LIQU LIMIT AVAIL GUID
-- NAME
MODE RATE RATE RATE RATE ACTION FLD RATE
'GR-*' 'ORAT' 10 3*
'RATE' 'NO' /
/
GCONINJE
-- GROUP PHASE CNTL SRAT VRAT REIN VREP AVAIL GUID GRAT
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 124 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach -- NAME INJ MODE
'GR-C1' 'GAS' 'RATE' 10 /
'GR-C2' 'WAT' 'RESV' 1* 10 /
/
FLD RATE DEFN
DATES
11 'JAN' 2010 /
20 'FEB' 2010 /
1 'APR' 2010 /
1 'JLY' 2010 /
1 'OCT' 2010 /
/
-- RESTART FILE DUMP
RPTSCHED
'RESTART=2' 'WELLS=2' 'SUMMARY=2' 'CPU=2' 'WELSPECS' /
DATES
1 'JAN' 2011 /
/
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'WELSPECS' /
DATES
1 'APR' 2011 /
1 'JLY' 2011 /
1 'OCT' 2011 /
1 'JAN' 2012 /
/
END
==============================================================
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 125 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach PROPOSE APPROACH DATASETS
------------------------------------------------------------------------------------------------------------------------------------
-- RESERVOIR-A (RCSLAVE1) DATASET AT INITIAL RUNS
-----------------------------------------------------------------------------------------------------------------------------------RUNSPEC
==============================================================
TITLE
MULTI-LEVEL GROUP CONTROL IN COUPLED RESERVOIRS - SLAVE1
DIMENS
3 9 3 /
OIL
WATER
GAS
DISGAS
FIELD
TABDIMS
1 1 16 15
3 15 /
REGDIMS
3 1 0 0 /
WELLDIMS
10 3 4 6 /
START
1 'JAN' 2010 /
-- ORIGINAL FILE
-- 1 'JAN' 1994 /
NSTACK
4/
UNIFOUT
UNIFIN
SAVE
/
GRID
==============================================================
EQUALS
'DX' 1000 /
'DY' 1000 /
'DZ' 20 /
'PERMX' 300 /
'PERMY' 300 /
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 126 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 'PERMZ' 30 /
'PORO' 0.3 /
'TOPS' 7000
1 3 1 1 1 1 /
'TOPS' 7020
1 3 2 2 1 1 /
'TOPS' 7040
1 3 3 3 1 1 /
'TOPS' 7060
1 3 4 4 1 1 /
'TOPS' 7080
1 3 5 5 1 1 /
'TOPS' 7100
1 3 6 6 1 1 /
'TOPS' 7120
1 3 7 7 1 1 /
'TOPS' 7140
1 3 8 8 1 1 /
'TOPS' 7160
1 3 9 9 1 1 /
/
NOGGF
RPTGRID
/
PROPS
==============================================================
-- Water Saturation Function
SWFN
0.22 0 7
0.3 0.07 4
0.4 0.15 3
0.5 0.24 2.5
0.6 0.33 2
0.8 0.65 1
0.9 0.83 0.5
1 1 0 /
-- Gas Saturation Function
SGFN
0 0
0
0.04 0
0.2
0.1 0.022 0.5
0.2 0.1 1
0.3 0.24 1.5
0.4 0.34 2
0.5 0.42 2.5
0.6 0.5 3
0.7 0.8125 3.5
0.78 1
3.9 /
-- Oil Saturation Function
SOF3
0
0
0
0.2
0
0
0.38 0.00432 0
0.4
0.0048 0.004
0.48 0.05288 0.02
0.5
0.0649 0.036
0.58 0.11298 0.1
0.6
0.125 0.146
0.68 0.345 0.33
0.7
0.4
0.42
0.74 0.7
0.6
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 127 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 0.78
1
1
/
-- Water PVT
-- Press Density Compressibility Viscousity
-- psiea
psi-1
cp
PVTW
3000 1.00341 3.0D-6 0.96 0 /
-- Rock pressure and compressibility
ROCK
3600 4.0D-6 /
-- Oil, Water and Gas density (API, field unit)
DENSITY
45 63.02 0.0702 /
-- Dry gas PVT
PVDG
400 5.9 0.013
800 2.95 0.0135
1200 1.96 0.014
1600 1.47 0.0145
2000 1.18 0.015
2400 0.98 0.0155
2800 0.84 0.016
3200 0.74 0.0165
3600 0.65 0.017
4000 0.59 0.0175
4400 0.54 0.018
4800 0.49 0.0185
5200 0.45 0.019
5600 0.42 0.0195 /
PVTO
0.165
0.335
0.500
0.665
0.828
0.985
1.130
1.270
1.390
1.500
1.600
1.676
1.750
1.810
/
400 1.012 1.17 /
800 1.0255 1.14 /
1200 1.038 1.11 /
1600 1.051 1.08 /
2000 1.063 1.06 /
2400 1.075 1.03 /
2800 1.087 1.00 /
3200 1.0985 0.98 /
3600 1.11 0.95 /
4000 1.12 0.94 /
4400 1.13 0.92 /
4800 1.14 0.91 /
5200 1.148 0.9 /
5600 1.155 0.89
6000 1.1504 0.89
6400 1.1458 0.89
6800 1.1412 0.89
7200 1.1367 0.89 /
RPTPROPS
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 128 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach SOLUTION
==============================================================
-- DATUM DATUM OWC OWC GOC GOC RSVD RVVD SOLN
-- DEPTH PRESS DEPTH PCOW DEPTH PCOG TABLE TABLE METH
EQUIL
7010 4000 9000 0.0 7010
0.0 0
0
5 /
RPTRST
BASIC=2 /
RPTSOL
-- Initialisation Print Output
'PRES' 'SWAT' 'RS' 'FIP=2' 'EQUIL' 'RESTART=2' 'RSVD' /
SUMMARY
==============================================================
FOPR
FWPR
FGPR
FLPR
FVPR
GOPR
'G-A1' 'G-A2' /
GWPR
'G-A1' 'G-A2' /
GGPR
'G-A1' 'G-A2' /
GWIR
'G-A1' 'G-A2' /
GGIR
'G-A1' 'G-A2' /
FWIR
FGIR
FVIR
GMCTP
'G-A1' 'G-A2' /
GMCTW
'G-A2' /
GMCTG
'G-A1' /
WMCTL
/
FMWPR
FMWIN
DATE
RUNSUM
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 129 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach SCHEDULE
==============================================================
SKIPREST
DRSDT
1E20 /
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'RESTART=2' 'WELSPECS' /
WELSPECS
-- WELL GROUP LOCATION BHP PREF DRAIN BACK SHUT/
-- NAME NAME
I J DEPTH PHAS RAD PRES STOP
'PA1' 'G-A1'
3 2 1* 'OIL' -1.0 'NO' 'SH' /
'PA2' 'G-A1'
1 3 1* 'OIL' -1.0 'NO' 'SH' /
'PA3' 'G-A1'
2 4 1* 'OIL' -1.0 'NO' 'SH' /
'PA4' 'G-A2'
2 7 1* 'OIL' -1.0 'NO' 'SH' /
'PA5' 'G-A2'
1 6 1* 'OIL' -1.0 'NO' 'SH' /
'PA6' 'G-A2'
3 5 1* 'OIL' -1.0 'NO' 'SH' /
'IGA' 'G-A1'
1 1 1* 'GAS' -1.0 /
'IWA1' 'G-A2'
1 9 1* 'WAT' -1.0 /
'IWA2' 'G-A2'
2 9 1* 'WAT' -1.0 /
'IWA3' 'G-A2'
3 9 1* 'WAT' -1.0 /
/
-- Deactivated keywords GRUPSLAV in stand-alone running
-- GRUPSLAV
-- SLAVE EQUIV OIL WAT/LIQ GAS RESV OIL WAT GAS
-- GROUP MASTER PROD PROD PROD PROD INJ INJ INJ
-- NAME GROUP LIMITS LIMITS LIMITS LIMITS LIMITS LIMITS LIMITS
-- 'G-A1' 'GR-A1' /
-- 'G-A2' 'GR-A2' /
-- /
COMPDAT
-- WELL -LOCATION- OPEN/ SAT CONN BORE
-- NAME I J K1-K2 SHUT TAB FACT DIAM
'PA1' 3 2 1 3 'OPEN' 0 0.0 0.333 /
'PA2' 1 3 1 3 'OPEN' 0 0.0 0.333 /
'PA3' 2 4 1 3 'OPEN' 0 0.0 0.333 /
'PA4' 2 7 1 3 'OPEN' 0 0.0 0.333 /
'PA5' 1 6 1 3 'OPEN' 0 0.0 0.333 /
'PA6' 3 5 1 3 'OPEN' 0 0.0 0.333 /
'IGA' 1 1 1 1 'OPEN' 0 0.0 0.333 /
'IWA1' 1 9 2 3 'OPEN' 0 0.0 0.333 /
'IWA2' 2 9 2 3 'OPEN' 0 0.0 0.333 /
'IWA3' 3 9 2 3 'OPEN' 0 0.0 0.333 /
/
-- Original Data
-- 'P*' 0 0 1 3 'OPEN' 0 0.0 0.333 /
-- 'IG*' 0 0 1 1 'OPEN' 0 0.0 0.333 /
-- 'IW*' 0 0 2 3 'OPEN' 0 0.0 0.333 /
-- /
WCONPROD
-- WELL OPEN/ CNTL OIL WATER GAS LIQU VOID BHP
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 130 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach -- NAME SHUT MODE RATE RATE RATE RATE RATE
'P*' 'SHUT' 'GRUP' 2*
3E4 2*
2000 /
/
WELOPEN
'PA1' /
'PA2' /
'PA4' /
/
WCONINJE
-- WELL INJ OPEN/ CNTL FLOW RESV BHP
-- NAME TYPE SHUT MODE RATE RATE
'IG*' 'GAS' 'OPEN' 'GRUP' 2*
5500 /
'IW*' 'WAT' 'OPEN' 'GRUP' 2*
5500 /
'IWA2' 'WAT' 'SHUT' 'GRUP' 2*
5500 /
/
QDRILL
'PA3' 'PA5' 'PA6' 'IWA2' /
WECON
-- WELL MIN MIN MAX MAX MAX WORK END
-- NAME OIL GAS WCT GOR WGR OVER RUN
'P*' 500 1* 0.7 10.0 1* 'CON' 'NO' /
/
INCLUDE
SCHEDULE1-INIT.INC /
TSTEP
1/
SAVE
END
==============================================================
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 131 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach ------------------------------------------------------------------------------------------------------------------------------------
-- RESERVOIR-B (RCSLAVE2) DATASET AT INITIAL RUNS
-----------------------------------------------------------------------------------------------------------------------------------RUNSPEC
==============================================================
TITLE
MULTI-LEVEL GROUP CONTROL IN COUPLED RESERVOIRS - SLAVE2
DIMENS
3 9 3 /
OIL
WATER
FIELD
TABDIMS
1 1 16 15
3 15 /
REGDIMS
3 1 0 0 /
WELLDIMS
10 3 4 6 /
-- The entering date has been written with separated file named TIMESLAVE2 in Pipe-It project
START
1 'JAN' 2010 /
-- Original dataset
-- 1 'MAR' 1994 /
-- Linear Solver Stack size
NSTACK
4/
UNIFOUT
UNIFIN
SAVE
/
GRID
==============================================================
EQUALS
'DX' 1000 /
'DY' 2000 /
'DZ' 20 /
'PERMX' 300 /
'PERMY' 300 /
'PERMZ' 30 /
'PORO' 0.3 /
'TOPS' 7000
1
'TOPS' 7020
1
'TOPS' 7040
1
'TOPS' 7060
1
3
3
3
3
1
2
3
4
1
2
3
4
1
1
1
1
1
1
1
1
/
/
/
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 132 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 'TOPS'
'TOPS'
'TOPS'
'TOPS'
'TOPS'
7080
7100
7120
7140
7160
1
1
1
1
1
3
3
3
3
3
5
6
7
8
9
5
6
7
8
9
1
1
1
1
1
1
1
1
1
1
/
/
/
/
/
/
NOGGF
RPTGRID
/
PROPS
==============================================================
SWFN
0.22 0 7
0.3 0.07 4
0.4 0.15 3
0.5 0.24 2.5
0.6 0.33 2
0.8 0.65 1
0.9 0.83 0.5
1 1 0 /
SOF2
0
0
0.2
0
0.38 0.00432
0.4
0.0048
0.48 0.05288
0.5
0.0649
0.58 0.11298
0.6
0.125
0.68 0.345
0.7
0.4
0.74 0.7
0.78 1
/
PVTW
3000 1.00341 3.0D-6 0.96 0 /
ROCK
3600 4.0D-6 /
DENSITY
45 63.02 0.0702 /
PVDO
1400 1.05 1.0
7200 1.01 1.0 /
RSCONST
1.2 3100 /
RPTPROPS
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 133 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach SOLUTION
==============================================================
-- DATUM DATUM OWC OWC GOC GOC RSVD RVVD SOLN
-- DEPTH PRESS DEPTH PCOW DEPTH PCOG TABLE TABLE METH
EQUIL
7010 4000 9000 0.0 7010
0.0 0
0
5 /
RPTRST
BASIC=2 /
RPTSOL
-- Initialisation Print Output
-'PRES' 'SWAT' 'RS' 'FIP=2' 'EQUIL' 'RSVD' /
SUMMARY
==============================================================
FOPR
FWPR
FLPR
FVPR
GOPR
'GR-B1' 'GR-B2' /
GWPR
'GR-B1' 'GR-B2' /
FWIR
FVIR
GMCTP
'GR-B1' 'GR-B2' /
GMCTW
'GR-B2' /
WMCTL
/
FMWPR
FMWIN
DATE
RUNSUM
SCHEDULE
==============================================================
SKIPREST
DRSDT
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 134 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 1E20 /
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'WELSPECS' /
WELSPECS
-- WELL GROUP LOCATION BHP PREF DRAIN BACK SHUT/
-- NAME NAME
I J DEPTH PHAS RAD PRES STOP
'PB1' 'GR-B1' 3 2 1* 'OIL' -1.0 'NO' 'SH' /
'PB2' 'GR-B1' 1 3 1* 'OIL' -1.0 'NO' 'SH' /
'PB3' 'GR-B1' 2 4 1* 'OIL' -1.0 'NO' 'SH' /
'PB4' 'GR-B2' 2 7 1* 'OIL' -1.0 'NO' 'SH' /
'PB5' 'GR-B2' 1 6 1* 'OIL' -1.0 'NO' 'SH' /
'PB6' 'GR-B2' 3 5 1* 'OIL' -1.0 'NO' 'SH' /
'IWB1' 'GR-B2' 1 9 1* 'WAT' -1.0 /
'IWB2' 'GR-B2' 2 9 1* 'WAT' -1.0 /
'IWB3' 'GR-B2' 3 9 1* 'WAT' -1.0 /
/
-- Deactivated keywords GRUPSLAV in stand-alone running
-- GRUPSLAV
-- 'GR-B1' /
-- 'GR-B2' /
-- /
COMPDAT
-- WELL -LOCATION- OPEN/ SAT CONN BORE KH SKIN
-- NAME I J K1-K2 SHUT TAB FACT DIAM
'PB1' 3 2 1 3 'OPEN' 0 0.0 0.333 /
'PB2' 1 3 1 3 'OPEN' 0 0.0 0.333 /
'PB3' 2 4 1 3 'OPEN' 0 0.0 0.333 /
'PB4' 2 7 1 3 'OPEN' 0 0.0 0.333 /
'PB5' 1 6 1 3 'OPEN' 0 0.0 0.333 /
'PB6' 3 5 1 3 'OPEN' 0 0.0 0.333 /
'IWB1' 1 9 2 3 'OPEN' 0 0.0 0.333 1* -3 /
'IWB2' 2 9 2 3 'OPEN' 0 0.0 0.333 1* -3 /
'IWB3' 3 9 2 3 'OPEN' 0 0.0 0.333 1* -3 /
/
WCONPROD
-- WELL OPEN/ CNTL OIL WATER GAS LIQU VOID BHP
-- NAME SHUT MODE RATE RATE RATE RATE RATE
'P*' 'SHUT' 'GRUP' 3*
2*
2000 /
/
WELOPEN
'PB1' /
'PB2' /
'PB4' /
/
WCONINJE
-- WELL INJ OPEN/ CNTL FLOW RESV BHP
-- NAME TYPE SHUT MODE RATE RATE
'IW*' 'WAT' 'OPEN' 'GRUP' 2*
6000 /
'IWB2' 'WAT' 'SHUT' 'GRUP' 2*
6000 /
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 135 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach QDRILL
'PB3' 'PB5' 'PB6' 'IWB2' /
WECON
-- WELL MIN MIN MAX MAX MAX WORK END
-- NAME OIL GAS WCT GOR WGR OVER RUN
'P*' 500 1* 0.7 10.0 1* 'CON' 'NO' /
/
INCLUDE
SCHEDULE2-INIT.INC /
TSTEP
1/
SAVE
END
==============================================================
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 136 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach ------------------------------------------------------------------------------------------------------------------------------------
-- RESERVOIR-C (RCSLAVE3) DATASET AT INITIAL RUNS
-----------------------------------------------------------------------------------------------------------------------------------RUNSPEC
==============================================================
TITLE
MULTI-LEVEL GROUP CONTROL IN COUPLED RESERVOIRS - SLAVE3
DIMENS
3 9 3 /
OIL
WATER
GAS
DISGAS
FIELD
TABDIMS
1 1 16 15
3 15 /
REGDIMS
3 1 0 0/
WELLDIMS
10 3 4 6 /
START
1 'JAN' 2010 /
-- Original
-- 1 'JAN' 1994 /
NSTACK
4/
UNIFOUT
UNIFIN
SAVE
/
GRID
==============================================================
EQUALS
'DX' 1000 /
'DY' 1000 /
'DZ' 20 /
'PERMX' 300 /
'PERMY' 300 /
'PERMZ' 30 /
'PORO' 0.3 /
'TOPS' 7000
1 3 1 1 1 1 /
'TOPS' 7020
1 3 2 2 1 1 /
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 137 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 'TOPS'
'TOPS'
'TOPS'
'TOPS'
'TOPS'
'TOPS'
'TOPS'
7040
7060
7080
7100
7120
7140
7160
1
1
1
1
1
1
1
3
3
3
3
3
3
3
3
4
5
6
7
8
9
3
4
5
6
7
8
9
1
1
1
1
1
1
1
1
1
1
1
1
1
1
/
/
/
/
/
/
/
/
NOGGF
RPTGRID
/
PROPS
==============================================================
SWFN
0.22 0 7
0.3 0.07 4
0.4 0.15 3
0.5 0.24 2.5
0.6 0.33 2
0.8 0.65 1
0.9 0.83 0.5
1 1 0 /
SGFN
0 0
0
0.04 0
0.2
0.1 0.022 0.5
0.2 0.1 1
0.3 0.24 1.5
0.4 0.34 2
0.5 0.42 2.5
0.6 0.5 3
0.7 0.8125 3.5
0.78 1
3.9 /
SOF3
0
0
0
0.2
0
0
0.38 0.00432 0
0.4
0.0048 0.004
0.48 0.05288 0.02
0.5
0.0649 0.036
0.58 0.11298 0.1
0.6
0.125 0.146
0.68 0.345 0.33
0.7
0.4
0.42
0.74 0.7
0.6
0.78 1
1
/
PVTW
3000 1.00341 3.0D-6 0.96 0 /
ROCK
3600 4.0D-6 /
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 138 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach DENSITY
45 63.02 0.0702 /
PVDG
400 5.9 0.013
800 2.95 0.0135
1200 1.96 0.014
1600 1.47 0.0145
2000 1.18 0.015
2400 0.98 0.0155
2800 0.84 0.016
3200 0.74 0.0165
3600 0.65 0.017
4000 0.59 0.0175
4400 0.54 0.018
4800 0.49 0.0185
5200 0.45 0.019
5600 0.42 0.0195 /
PVTO
0.165
0.335
0.500
0.665
0.828
0.985
1.130
1.270
1.390
1.500
1.600
1.676
1.750
1.810
/
400 1.012 1.17 /
800 1.0255 1.14 /
1200 1.038 1.11 /
1600 1.051 1.08 /
2000 1.063 1.06 /
2400 1.075 1.03 /
2800 1.087 1.00 /
3200 1.0985 0.98 /
3600 1.11 0.95 /
4000 1.12 0.94 /
4400 1.13 0.92 /
4800 1.14 0.91 /
5200 1.148 0.9 /
5600 1.155 0.89
6000 1.1504 0.89
6400 1.1458 0.89
6800 1.1412 0.89
7200 1.1367 0.89 /
RPTPROPS
/
SOLUTION
==============================================================
-- DATUM DATUM OWC OWC GOC GOC RSVD RVVD SOLN
-- DEPTH PRESS DEPTH PCOW DEPTH PCOG TABLE TABLE METH
EQUIL
7010 4000 9000 0.0 7010
0.0 0
0
5 /
RPTRST
BASIC=2 /
RPTSOL
-- Initialisation Print Output
-'PRES' 'SWAT' 'RS' 'FIP=2' 'RESTART=2' 'EQUIL' 'RSVD' /
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 139 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach SUMMARY
=============================================================
FOPR
FWPR
FGPR
FLPR
FVPR
GOPR
'GR-C1' 'GR-C2' /
GWPR
'GR-C1' 'GR-C2' /
GGPR
'GR-C1' 'GR-C2' /
FWIR
FGIR
FVIR
GMCTP
'GR-C1' 'GR-C2' /
GMCTW
'GR-C2' /
GMCTG
'GR-C1' /
WMCTL
/
FMWPR
FMWIN
DATE
RUNSUM
SCHEDULE
==============================================================
SKIPREST
DRSDT
1E20 /
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'RESTART=2' 'WELSPECS' /
WELSPECS
-- WELL GROUP
-- NAME NAME
LOCATION BHP PREF DRAIN BACK SHUT/
I J DEPTH PHAS RAD PRES STOP
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 140 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach /
'PC1' 'GR-C1'
'PC2' 'GR-C1'
'PC3' 'GR-C1'
'PC4' 'GR-C2'
'PC5' 'GR-C2'
'PC6' 'GR-C2'
'IGC' 'GR-C1'
'IWC1' 'GR-C2'
'IWC2' 'GR-C2'
'IWC3' 'GR-C2'
3 2
1 3
2 4
2 7
1 6
3 5
1 1
1 9
2 9
3 9
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
'OIL' -1.0 'NO'
'OIL' -1.0 'NO'
'OIL' -1.0 'NO'
'OIL' -1.0 'NO'
'OIL' -1.0 'NO'
'OIL' -1.0 'NO'
'GAS' -1.0 /
'WAT' -1.0 /
'WAT' -1.0 /
'WAT' -1.0 /
'SH'
'SH'
'SH'
'SH'
'SH'
'SH'
/
/
/
/
/
/
-- Deactivated keywords GRUPSLAV in stand-alone runnig
-- GRUPSLAV
-- 'GR-C1' /
-- 'GR-C2' /
-- /
COMPDAT
-- WELL -LOCATION- OPEN/ SAT CONN BORE
-- NAME I J K1-K2 SHUT TAB FACT DIAM
'PC1' 3 2 1 3 'OPEN' 0 0.0 0.333 /
'PC2' 1 3 1 3 'OPEN' 0 0.0 0.333 /
'PC3' 2 4 1 3 'OPEN' 0 0.0 0.333 /
'PC4' 2 7 1 3 'OPEN' 0 0.0 0.333 /
'PC5' 1 6 1 3 'OPEN' 0 0.0 0.333 /
'PC6' 3 5 1 3 'OPEN' 0 0.0 0.333 /
'IGC' 1 1 1 1 'OPEN' 0 0.0 0.333 /
'IWC1' 1 9 2 3 'OPEN' 0 0.0 0.333 /
'IWC2' 2 9 2 3 'OPEN' 0 0.0 0.333 /
'IWC3' 3 9 2 3 'OPEN' 0 0.0 0.333 /
/
WCONPROD
-- WELL OPEN/ CNTL OIL WATER GAS LIQU VOID BHP
-- NAME SHUT MODE RATE RATE RATE RATE RATE
'P*' 'SHUT' 'GRUP' 2*
3E4 2*
2000 /
/
WELOPEN
'PC1' /
'PC2' /
'PC4' /
/
WCONINJE
-- WELL INJ OPEN/ CNTL FLOW RESV BHP
-- NAME TYPE SHUT MODE RATE RATE
'IG*' 'GAS' 'OPEN' 'GRUP' 2*
5500 /
'IW*' 'WAT' 'OPEN' 'GRUP' 2*
5500 /
'IWC2' 'WAT' 'SHUT' 'GRUP' 2*
5500 /
/
QDRILL
'PC3' 'PC5' 'PC6' 'IWC2' /
WECON
-- WELL MIN MIN MAX MAX MAX WORK END
-- NAME OIL GAS WCT GOR WGR OVER RUN
'P*' 500 1* 0.7 1* 1* 'CON' 'NO' /
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 141 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach /
INCLUDE
SCHEDULE3-INIT.INC /
TSTEP
1/
SAVE
END
==============================================================
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 142 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach APPENDIX F - ECLIPSE Restart File
NOTE: BLUE FONT INDICATES WOULD CHANGE / MODIFY
------------------------------------------------------------------------------------------------------------------------------------
-- FLEXIBLE RESTART OF THE RCSLAVE1 DATASET USING UNRST FILE
-- N = NUMBER OF REPORT (TIMESTEP)
-----------------------------------------------------------------------------------------------------------------------------------RUNSPEC
TITLE
MULTI-LEVEL GROUP CONTROL IN COUPLED RESERVOIRS - SLAVE1
DIMENS
3 9 3 /
OIL
WATER
GAS
DISGAS
FIELD
TABDIMS
1 1 16 15
3 15 /
REGDIMS
3 1 0 0 /
WELLDIMS
10 3 4 6 /
START
1 'JAN' 2010 /
-- Linear Solver Stack size
NSTACK
4/
UNIFOUT
UNIFIN
SAVE
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 143 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach GRID
==============================================================
EQUALS
'DX' 1000 /
'DY' 1000 /
'DZ' 20 /
'PERMX' 300 /
'PERMY' 300 /
'PERMZ' 30 /
'PORO' 0.3 /
'TOPS' 7000
1
'TOPS' 7020
1
'TOPS' 7040
1
'TOPS' 7060
1
'TOPS' 7080
1
'TOPS' 7100
1
'TOPS' 7120
1
'TOPS' 7140
1
'TOPS' 7160
1
/
3
3
3
3
3
3
3
3
3
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
/
/
/
/
/
/
/
/
/
NOGGF
RPTGRID
/
PROPS
==============================================================
-- Water Saturation Function
SWFN
0.22 0 7
0.3 0.07 4
0.4 0.15 3
0.5 0.24 2.5
0.6 0.33 2
0.8 0.65 1
0.9 0.83 0.5
1 1 0 /
-- Gas Saturation Function
SGFN
0 0
0
0.04 0
0.2
0.1 0.022 0.5
0.2 0.1 1
0.3 0.24 1.5
0.4 0.34 2
0.5 0.42 2.5
0.6 0.5 3
0.7 0.8125 3.5
0.78 1
3.9 /
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 144 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach -- Oil Saturation Function
SOF3
0
0
0
0.2
0
0
0.38 0.00432 0
0.4
0.0048 0.004
0.48 0.05288 0.02
0.5
0.0649 0.036
0.58 0.11298 0.1
0.6
0.125 0.146
0.68 0.345 0.33
0.7
0.4
0.42
0.74 0.7
0.6
0.78 1
1
/
-- Water PVT
PVTW
-- Press Density Compressibility Viscousity
-- psiea
psi-1
cp
3000 1.00341 3.0D-6 0.96 0 /
-- Rock pressure and compressibility
ROCK
3600 4.0D-6 /
-- Oil, Water and Gas density (API, field unit)
DENSITY
45 63.02 0.0702 /
-- Dry gas PVT
PVDG
400 5.9 0.013
800 2.95 0.0135
1200 1.96 0.014
1600 1.47 0.0145
2000 1.18 0.015
2400 0.98 0.0155
2800 0.84 0.016
3200 0.74 0.0165
3600 0.65 0.017
4000 0.59 0.0175
4400 0.54 0.018
4800 0.49 0.0185
5200 0.45 0.019
5600 0.42 0.0195 /
PVTO
0.165
0.335
0.500
0.665
0.828
400
800
1200
1600
2000
1.012
1.0255
1.038
1.051
1.063
1.17 /
1.14 /
1.11 /
1.08 /
1.06 /
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 145 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 0.985
1.130
1.270
1.390
1.500
1.600
1.676
1.750
1.810
2400 1.075 1.03 /
2800 1.087 1.00 /
3200 1.0985 0.98 /
3600 1.11 0.95 /
4000 1.12 0.94 /
4400 1.13 0.92 /
4800 1.14 0.91 /
5200 1.148 0.9 /
5600 1.155 0.89
6000 1.1504 0.89
6400 1.1458 0.89
6800 1.1412 0.89
7200 1.1367 0.89 /
/
RPTPROPS
/
SOLUTION
============================================================
-- Input Unified Restart file (RST-file name) with latest number of Report from previous runs
-- This renaming can be handle automatically by Maplinkz
RESTART
-- Unified Base or Restart filename format and latest number of report to be restarted
'RCSLAVE1-INIT-PSM' 1 /
SUMMARY
=============================================================
==============================================================
-------- THIS SECTION SPECIFIES DATA TO BE WRITTEN TO THE SUMMARY FILES
-------- AND WHICH MAY LATER BE USED WITH THE ECLIPSE GRAPHICS PACKAGE
------------------------------------------------------------------------------------------------------------------------------------- Pre-ECL process
-- ****************************
-- * PSM SUMMARY include file *
-- ****************************
INCLUDE
'RCSLAVE1-INIT-PSM.summary' /
FOPR
FWPR
FGPR
FLPR
FVPR
GOPR
'G-A1' 'G-A2' /
GWPR
'G-A1' 'G-A2' /
GGPR
'G-A1' 'G-A2' /
GWIR
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 146 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 'G-A1' 'G-A2' /
GGIR
'G-A1' 'G-A2' /
FWIR
FGIR
FVIR
GMCTP
'G-A1' 'G-A2' /
FMWPR
FMWIN
DATE
RUNSUM
SCHEDULE
=============================================================
DRSDT
1E20 /
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'RESTART=2' 'WELSPECS' /
WELSPECS
-- WELL GROUP LOCATION BHP PREF DRAIN BACK SHUT/
-- NAME NAME
I J DEPTH PHAS RAD PRES STOP
'PA1' 'G-A1'
3 2 1* 'OIL' -1.0 'NO' 'SH' /
'PA2' 'G-A1'
1 3 1* 'OIL' -1.0 'NO' 'SH' /
'PA3' 'G-A1'
2 4 1* 'OIL' -1.0 'NO' 'SH' /
'PA4' 'G-A2'
2 7 1* 'OIL' -1.0 'NO' 'SH' /
'PA5' 'G-A2'
1 6 1* 'OIL' -1.0 'NO' 'SH' /
'PA6' 'G-A2'
3 5 1* 'OIL' -1.0 'NO' 'SH' /
'IGA' 'G-A1'
1 1 1* 'GAS' -1.0 /
'IWA1' 'G-A2'
1 9 1* 'WAT' -1.0 /
'IWA2' 'G-A2'
2 9 1* 'WAT' -1.0 /
'IWA3' 'G-A2'
3 9 1* 'WAT' -1.0 /
/
COMPDAT
-- WELL -LOCATION- OPEN/ SAT CONN BORE
-- NAME I J K1-K2 SHUT TAB FACT DIAM
'PA1' 3 2 1 3 'OPEN' 0 0.0 0.333 /
'PA2' 1 3 1 3 'OPEN' 0 0.0 0.333 /
'PA3' 2 4 1 3 'OPEN' 0 0.0 0.333 /
'PA4' 2 7 1 3 'OPEN' 0 0.0 0.333 /
'PA5' 1 6 1 3 'OPEN' 0 0.0 0.333 /
'PA6' 3 5 1 3 'OPEN' 0 0.0 0.333 /
'IGA' 1 1 1 1 'OPEN' 0 0.0 0.333 /
'IWA1' 1 9 2 3 'OPEN' 0 0.0 0.333 /
'IWA2' 2 9 2 3 'OPEN' 0 0.0 0.333 /
'IWA3' 3 9 2 3 'OPEN' 0 0.0 0.333 /
/
WCONPROD
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 147 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach -- WELL OPEN/ CNTL OIL WATER GAS LIQU VOID BHP
-- NAME SHUT MODE RATE RATE RATE RATE RATE
'P*' 'SHUT' 'GRUP' 2*
3E4 2*
2000 /
/
WELOPEN
'PA1' /
'PA2' /
'PA4' /
/
WCONINJE
-- WELL INJ OPEN/ CNTL FLOW RESV BHP
-- NAME TYPE SHUT MODE RATE RATE
'IG*' 'GAS' 'OPEN' 'GRUP' 2*
5500 /
'IW*' 'WAT' 'OPEN' 'GRUP' 2*
5500 /
'IWA2' 'WAT' 'SHUT' 'GRUP' 2*
5500 /
/
-- Deactivated QDRILL after mentioning in initial runs
-- QDRILL
-- 'PA3' 'PA5' 'PA6' 'IWA2' /
WECON
-- WELL MIN MIN MAX MAX MAX WORK END
-- NAME OIL GAS WCT GOR WGR OVER RUN
'P*' 500 1* 0.7 10.0 1* 'CON' 'NO' /
/
-- Include file is attached after formulating with VBScript
INCLUDE
SCHEDULE1-R.INC /
END
==============================================================
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 148 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach ----------------------------------------------------------------------------------------------------------------------------
-- THIS CASE IS A SAVE/LOAD TYPE RESTART OF RCSLAVE2 DATASET.
-- N = NUMBER OF REPORT (TIMESTEP)
---------------------------------------------------------------------------------------------------------------------------RUNSPEC
TITLE
MULTI-LEVEL GROUP CONTROL IN COUPLED RESERVOIRS - SLAVE2
DIMENS
3 9 3 /
OIL
WATER
FIELD
TABDIMS
1 1 16 15
3 15 /
REGDIMS
3 1 0 0 /
WELLDIMS
10 3 4 6 /
-- The entering date has been written with separated file named TIMESLAVE2 in Pipe-It project
START
1 'JAN' 2010 /
-- Linear Solver Stack size
NSTACK
4/
UNIFOUT
UNIFIN
SAVE
/
GRID
==============================================================
EQUALS
'DX' 1000 /
'DY' 2000 /
'DZ' 20 /
'PERMX' 300 /
'PERMY' 300 /
'PERMZ' 30 /
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 149 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 'PORO'
'TOPS'
'TOPS'
'TOPS'
'TOPS'
'TOPS'
'TOPS'
'TOPS'
'TOPS'
'TOPS'
0.3 /
7000
1 3 1 1 1 1 /
7020
1 3 2 2 1 1 /
7040
1 3 3 3 1 1 /
7060
1 3 4 4 1 1 /
7080
1 3 5 5 1 1 /
7100
1 3 6 6 1 1 /
7120
1 3 7 7 1 1 /
7140
1 3 8 8 1 1 /
7160
1 3 9 9 1 1 /
/
NOGGF
RPTGRID
/
PROPS
==============================================================
SWFN
0.22 0 7
0.3 0.07 4
0.4 0.15 3
0.5 0.24 2.5
0.6 0.33 2
0.8 0.65 1
0.9 0.83 0.5
1 1 0 /
SOF2
0
0
0.2
0
0.38 0.00432
0.4
0.0048
0.48 0.05288
0.5
0.0649
0.58 0.11298
0.6
0.125
0.68 0.345
0.7
0.4
0.74 0.7
0.78 1
/
PVTW
3000 1.00341 3.0D-6 0.96 0 /
ROCK
3600 4.0D-6 /
DENSITY
45 63.02 0.0702 /
PVDO
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 150 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 1400
7200
1.05 1.0
1.01 1.0 /
RSCONST
1.2 3100 /
RPTPROPS
/
SOLUTION
==============================================================
-------- THE SOLUTION SECTION DEFINES THE INITIAL STATE OF THE SOLUTION
-------- VARIABLES (PHASE PRESSURES, SATURATIONS AND GAS-OIL RATIOS)
-----------------------------------------------------------------------------------------------------------------------------------RESTART
-- Unified Base or Restart filename format and latest number of report to be restarted
'RCSLAVE2-INIT-PSM' 1 /
SUMMARY
==============================================================
-------- THIS SECTION SPECIFIES DATA TO BE WRITTEN TO THE SUMMARY FILES
-------- AND WHICH MAY LATER BE USED WITH THE ECLIPSE GRAPHICS PACKAGE
------------------------------------------------------------------------------------------------------------------------------------- ****************************
-- * PSM SUMMARY include file *
-- ****************************
INCLUDE
'RCSLAVE2-INIT-PSM.summary' /
FOPR
FWPR
FLPR
FVPR
GOPR
'GR-B1' 'GR-B2' /
GWPR
'GR-B1' 'GR-B2' /
FWIR
FVIR
GMCTP
'GR-B1' 'GR-B2' /
GMCTW
'GR-B2' /
WMCTL
/
FMWPR
FMWIN
DATE
RUNSUM
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 151 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach SCHEDULE
=============================================================
--SKIPREST
DRSDT
1E20 /
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'RESTART=2' 'WELSPECS' /
WELSPECS
-- WELL GROUP LOCATION BHP PREF DRAIN BACK SHUT/
-- NAME NAME
I J DEPTH PHAS RAD PRES STOP
'PB1' 'GR-B1' 3 2 1* 'OIL' -1.0 'NO' 'SH' /
'PB2' 'GR-B1' 1 3 1* 'OIL' -1.0 'NO' 'SH' /
'PB3' 'GR-B1' 2 4 1* 'OIL' -1.0 'NO' 'SH' /
'PB4' 'GR-B2' 2 7 1* 'OIL' -1.0 'NO' 'SH' /
'PB5' 'GR-B2' 1 6 1* 'OIL' -1.0 'NO' 'SH' /
'PB6' 'GR-B2' 3 5 1* 'OIL' -1.0 'NO' 'SH' /
'IWB1' 'GR-B2' 1 9 1* 'WAT' -1.0 /
'IWB2' 'GR-B2' 2 9 1* 'WAT' -1.0 /
'IWB3' 'GR-B2' 3 9 1* 'WAT' -1.0 /
/
COMPDAT
-- WELL -LOCATION- OPEN/ SAT CONN BORE KH SKIN
-- NAME I J K1-K2 SHUT TAB FACT DIAM
'PB1' 3 2 1 3 'OPEN' 0 0.0 0.333 /
'PB2' 1 3 1 3 'OPEN' 0 0.0 0.333 /
'PB3' 2 4 1 3 'OPEN' 0 0.0 0.333 /
'PB4' 2 7 1 3 'OPEN' 0 0.0 0.333 /
'PB5' 1 6 1 3 'OPEN' 0 0.0 0.333 /
'PB6' 3 5 1 3 'OPEN' 0 0.0 0.333 /
'IWB1' 1 9 2 3 'OPEN' 0 0.0 0.333 1* -3 /
'IWB2' 2 9 2 3 'OPEN' 0 0.0 0.333 1* -3 /
'IWB3' 3 9 2 3 'OPEN' 0 0.0 0.333 1* -3 /
/
WCONPROD
-- WELL OPEN/ CNTL OIL WATER GAS LIQU VOID BHP
-- NAME SHUT MODE RATE RATE RATE RATE RATE
'P*' 'SHUT' 'GRUP' 3*
2*
2000 /
/
WELOPEN
'PB1' /
'PB2' /
'PB4' /
/
WCONINJE
-- WELL INJ OPEN/ CNTL FLOW RESV BHP
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 152 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach -- NAME TYPE SHUT MODE RATE RATE
'IW*' 'WAT' 'OPEN' 'GRUP' 2*
6000 /
'IWB2' 'WAT' 'SHUT' 'GRUP' 2*
6000 /
/
-- Deactivated QDRILL after mentioning in initial runs
--QDRILL
--'PB3' 'PB5' 'PB6' 'IWB2' /
WECON
-- WELL MIN MIN MAX MAX MAX WORK END
-- NAME OIL GAS WCT GOR WGR OVER RUN
'P*' 500 1* 0.7 10.0 1* 'CON' 'NO' /
/
INCLUDE
'SCHEDULE2-R.INC' /
END
==============================================================
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 153 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach ----------------------------------------------------------------------------------------------------------------------------
-- THIS CASE IS A SAVE/LOAD TYPE RESTART OF RCSLAVE3 DATASET.
-- N = NUMBER OF REPORT (TIMESTEP)
---------------------------------------------------------------------------------------------------------------------------RUNSPEC
TITLE
MULTI-LEVEL GROUP CONTROL IN COUPLED RESERVOIRS - SLAVE3
DIMENS
3 9 3 /
OIL
WATER
GAS
DISGAS
FIELD
TABDIMS
1 1 16 15
3 15 /
REGDIMS
3 1 0 0/
WELLDIMS
10 3 4 6 /
START
1 'JAN' 2010 /
NSTACK
4/
UNIFOUT
UNIFIN
SAVE
/
GRID
==============================================================
EQUALS
'DX' 1000 /
'DY' 1000 /
'DZ' 20 /
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 154 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 'PERMX' 300 /
'PERMY' 300 /
'PERMZ' 30 /
'PORO' 0.3 /
'TOPS' 7000
1 3 1 1 1 1 /
'TOPS' 7020
1 3 2 2 1 1 /
'TOPS' 7040
1 3 3 3 1 1 /
'TOPS' 7060
1 3 4 4 1 1 /
'TOPS' 7080
1 3 5 5 1 1 /
'TOPS' 7100
1 3 6 6 1 1 /
'TOPS' 7120
1 3 7 7 1 1 /
'TOPS' 7140
1 3 8 8 1 1 /
'TOPS' 7160
1 3 9 9 1 1 /
/
NOGGF
RPTGRID
/
PROPS
==============================================================
SWFN
0.22 0 7
0.3 0.07 4
0.4 0.15 3
0.5 0.24 2.5
0.6 0.33 2
0.8 0.65 1
0.9 0.83 0.5
1 1 0 /
SGFN
0 0
0
0.04 0
0.2
0.1 0.022 0.5
0.2 0.1 1
0.3 0.24 1.5
0.4 0.34 2
0.5 0.42 2.5
0.6 0.5 3
0.7 0.8125 3.5
0.78 1
3.9 /
SOF3
0
0
0
0.2
0
0
0.38 0.00432 0
0.4
0.0048 0.004
0.48 0.05288 0.02
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 155 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach 0.5
0.58
0.6
0.68
0.7
0.74
0.78
0.0649 0.036
0.11298 0.1
0.125 0.146
0.345 0.33
0.4
0.42
0.7
0.6
1
1
/
PVTW
3000 1.00341 3.0D-6 0.96 0 /
ROCK
3600 4.0D-6 /
DENSITY
45 63.02 0.0702 /
PVDG
400 5.9 0.013
800 2.95 0.0135
1200 1.96 0.014
1600 1.47 0.0145
2000 1.18 0.015
2400 0.98 0.0155
2800 0.84 0.016
3200 0.74 0.0165
3600 0.65 0.017
4000 0.59 0.0175
4400 0.54 0.018
4800 0.49 0.0185
5200 0.45 0.019
5600 0.42 0.0195 /
PVTO
0.165
0.335
0.500
0.665
0.828
0.985
1.130
1.270
1.390
1.500
1.600
1.676
1.750
1.810
400 1.012 1.17 /
800 1.0255 1.14 /
1200 1.038 1.11 /
1600 1.051 1.08 /
2000 1.063 1.06 /
2400 1.075 1.03 /
2800 1.087 1.00 /
3200 1.0985 0.98 /
3600 1.11 0.95 /
4000 1.12 0.94 /
4400 1.13 0.92 /
4800 1.14 0.91 /
5200 1.148 0.9 /
5600 1.155 0.89
6000 1.1504 0.89
6400 1.1458 0.89
6800 1.1412 0.89
7200 1.1367 0.89 /
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 156 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach RPTPROPS
/
SOLUTION
==============================================================
=
-------- THE SOLUTION SECTION DEFINES THE INITIAL STATE OF THE SOLUTION
-------- VARIABLES (PHASE PRESSURES, SATURATIONS AND GAS-OIL RATIOS)
---------------------------------------------------------------------------------------------------------------------------RESTART
-- Unified Base or Restart filename format and latest number of report to be restarted
'RCSLAVE3-INIT-PSM' 1 /
SUMMARY
==============================================================
-------- THIS SECTION SPECIFIES DATA TO BE WRITTEN TO THE SUMMARY FILES
-------- AND WHICH MAY LATER BE USED WITH THE ECLIPSE GRAPHICS PACKAGE
------------------------------------------------------------------------------------------------------------------------------------- ****************************
-- * PSM SUMMARY include file *
-- ****************************
INCLUDE
'RCSLAVE3-INIT-PSM.summary' /
FOPR
FWPR
FGPR
FLPR
FVPR
GOPR
'GR-C1' 'GR-C2' /
GWPR
'GR-C1' 'GR-C2' /
GGPR
'GR-C1' 'GR-C2' /
FWIR
FGIR
FVIR
FMWPR
FMWIN
DATE
RUNSUM
SCHEDULE
==============================================================
-------- THE SCHEDULE SECTION DEFINES THE OPERATIONS TO BE SIMULATED
-----------------------------------------------------------------------------------------------------------------------------------Luky Hendraningrat – M.Sc. Thesis, 2010 Page 157 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach DRSDT
1E20 /
RPTSCHED
'WELLS=2' 'SUMMARY=2' 'CPU=2' 'RESTART=2' 'WELSPECS' /
WELSPECS
-- WELL GROUP LOCATION BHP PREF DRAIN BACK SHUT/
-- NAME NAME
I J DEPTH PHAS RAD PRES STOP
'PC1' 'GR-C1'
3 2 1* 'OIL' -1.0 'NO' 'SH' /
'PC2' 'GR-C1'
1 3 1* 'OIL' -1.0 'NO' 'SH' /
'PC3' 'GR-C1'
2 4 1* 'OIL' -1.0 'NO' 'SH' /
'PC4' 'GR-C2'
2 7 1* 'OIL' -1.0 'NO' 'SH' /
'PC5' 'GR-C2'
1 6 1* 'OIL' -1.0 'NO' 'SH' /
'PC6' 'GR-C2'
3 5 1* 'OIL' -1.0 'NO' 'SH' /
'IGC' 'GR-C1'
1 1 1* 'GAS' -1.0 /
'IWC1' 'GR-C2'
1 9 1* 'WAT' -1.0 /
'IWC2' 'GR-C2'
2 9 1* 'WAT' -1.0 /
'IWC3' 'GR-C2'
3 9 1* 'WAT' -1.0 /
/
-- Deactivated keywords GRUPSLAV in stand-alone running
-- GRUPSLAV
-- 'GR-C1' /
-- 'GR-C2' /
-- /
COMPDAT
-- WELL -LOCATION- OPEN/ SAT CONN BORE
-- NAME I J K1-K2 SHUT TAB FACT DIAM
'PC1' 3 2 1 3 'OPEN' 0 0.0 0.333 /
'PC2' 1 3 1 3 'OPEN' 0 0.0 0.333 /
'PC3' 2 4 1 3 'OPEN' 0 0.0 0.333 /
'PC4' 2 7 1 3 'OPEN' 0 0.0 0.333 /
'PC5' 1 6 1 3 'OPEN' 0 0.0 0.333 /
'PC6' 3 5 1 3 'OPEN' 0 0.0 0.333 /
'IGC' 1 1 1 1 'OPEN' 0 0.0 0.333 /
'IWC1' 1 9 2 3 'OPEN' 0 0.0 0.333 /
'IWC2' 2 9 2 3 'OPEN' 0 0.0 0.333 /
'IWC3' 3 9 2 3 'OPEN' 0 0.0 0.333 /
/
WCONPROD
-- WELL OPEN/ CNTL OIL WATER GAS LIQU VOID BHP
-- NAME SHUT MODE RATE RATE RATE RATE RATE
'P*' 'SHUT' 'GRUP' 2*
3E4 2*
2000 /
/
WELOPEN
'PC1' /
'PC2' /
'PC4' /
/
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 158 of 165
Reservoir Coupling with Pipe­It – A Scripted Logic Controller Approach WCONINJE
-- WELL INJ OPEN/ CNTL FLOW RESV BHP
-- NAME TYPE SHUT MODE RATE RATE
'IG*' 'GAS' 'OPEN' 'GRUP' 2*
5500 /
'IW*' 'WAT' 'OPEN' 'GRUP' 2*
5500 /
'IWC2' 'WAT' 'SHUT' 'GRUP' 2*
5500 /
/
-- Deactivated QDRILL after mentioning in initial runs
-- QDRILL
--'PC3' 'PC5' 'PC6' 'IWC2' /
WECON
-- WELL MIN MIN MAX MAX MAX WORK END
-- NAME OIL GAS WCT GOR WGR OVER RUN
'P*' 500 1* 0.7 1* 1* 'CON' 'NO' /
/
INCLUDE
'SCHEDULE3-R.INC' /
END
==============================================================
Luky Hendraningrat – M.Sc. Thesis, 2010 Page 159 of 165
Download