Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
16 views139 pages

SPRSFINAL

Uploaded by

patelshubh240
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views139 pages

SPRSFINAL

Uploaded by

patelshubh240
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 139

1

Exercise 3: How to start working with Seismic Data


Objectives:
• Load seismic data taking into account the characteristics of the SEGY file
• Visualize the imported 3D seismic cube in 3D, 2D and in the Seismic tab
• Visualize the associated statistics
• Prepare your workspace for the interpretation

About SEG-Y files


The SEG-Y file format was developed by the Society of Exploration Geophysicists (SEG) for
storing geophysical data, and its development is under control of the SEG Technical Standards
Committee
A SEG-Y file contains a set of logically related data traces and the associated data such as the
coordinates of reflected seismic waves, surface elevation, and water depth. SEG-Y files also
contain metadata, including the date and time of the data acquisition, the projection zone and
method, the type of instrument used to acquire the data, and the sweep frequency and length
A SEG-Y file includes three types of headers:
• a text header
The text header is the human-readable part of the file. It contains all the information about the
type of data, the acquisition, processing, and positioning information
This text header can be encoded as EBCDIC or ASCII (ANSI) and can be displayed in
tNavigator
For this data, the text header is encoded as EBCDIC, so select the corresponding option in the
Encoding Type list
2

• a binary header
The Binary Header contains values that apply to the whole SEG-Y file. The most important
values are the sampling interval and the number of samples in each trace
The Binary Header is presented in table form
The SEGY format revision number is also indicated (3 revisions have been performed and 3
standards have been released by the SEG Technical Standards Committee, with different
positions for the parameters); for this file, the format revision number is 0.

• a header for each trace


Each seismic trace has its own trace header. The values change on a trace-bytrace basis,
covering details such as the CMP number and the geographic coordinates.
The information (values) in the trace header is stored in different “byte locations”.
A byte location is the position in the header where the non-seismic information (values) is
stored. The locations are numbered from 1 to 240. One location isn’t large enough to store
most values, so one piece of information can be spread across two or four locations.
3

Steps to follow:
1. Project creation and setup
Create a new project to which seismic data will be imported or use the existing one. Main
window. Geology Designer. Create.
Set up project units and Seismic Reference Datum (SRD) before loading the seismic data:
1. Settings. Units Manager. Set Current Units Configuration to FIELD. Apply. Also click
Apply in the dialog which pops up next
2. Settings. Seismic Settings. Set Seismic Reference Datum to -4300 ft. OK
4

2. Seismic data import


1. Go to Geometry Objects Seismic Seismic Surveys 3D Calculations Import

3. Seismic data import


1. Enter a name for the seismic data being imported, indicate the directory of your SEG-Y file.
Check the headers preview

4. Load seismic data


1. Open the Settings tab
On this tab the main seismic data import settings can be edited, as well as some byte positions
of the headers
5

By default, header byte positions are set according to the SEG-Y standard, however, it is
possible that in the source file the values will be located in uncommon positions that do not
meet the standard. In such cases, the user must set the appropriate positions; otherwise, it may
cause errors during seismic data import
The user can enter the correct byte numbers of the corresponding fields in the Settings tab or
change byte positions in the Trace Header. When making changes in one of these tabs, they are
automatically applied in the other. Positions different from the SEG-Y standard are highlighted
in yellow in the Trace Header tab. To set default values, click on the button.

5. Seismic data import


1. Switch to Manual Positions. Compare the values by default to the values in Text Header
6

6. Seismic data in 3D
1. 3D view. RMB on Seismic Survey. Create Slice. Inline. Perform the same step to add a
Crossline. In order to move the slices, click on the icon Move Seismic Slice (or M button) and
move it in the viewer using the left mouse button

7. Seismic data in 3D: visualize the statistics


1. Visualize the statistics of the imported seismic data. RMB on the Seismic Survey in
Geometry Objects. Object Statistics

8. Seismic data in 2D
1. Seismic tab. Select Inline, Crossline or Slice in Geometry Objects, displayed in the 3D tab
7

2. In Settings panel, click on Seismic Slices and choose the current line. Having selected the
3D tab, you can see that the displayed line is highlighted with a yellow frame
3. Use the arrows at the bottom of the Seismic tab or in the settings to switch the slices,
according to the step you set. Also left/right arrow keys can be used

1. To display the Palette, select the Show Palette option in the Settings or RMB on the section
in the Seismic tab Show Palette. Customize the palette to your preferences
2. To choose another palette for the data displayed, RMB on the current palette Create
Custom Palette Fast and then select the desired palette from the Predefined Palettes list
3. These options are detailed in the course COMMON1.1 How to Use Templates Palette

1. Switch between the different drawing modes: Variable Density and Wiggle (change the
Gain and the Trace Step)
8

2. Add colours for the positive and negative phases filling according to the convention you
prefer

9. Manage your workspace


1. Detach the tabs as you prefer in order to create your workspace. Close the unnecessary tabs
by clicking on the X
2. To add a new tab click on a plus button and choose the desired tab from a drop-down list
3. All the tabs created earlier and closed can be found in the Tabs manager: View Tabs
manager
9

10. Display the work zone


1. The area displayed in the Seismic tab is framed in yellow in the 3D tab and is underlined in
the 2D tab

1. The Seismic tab displays the intersection line of in lines, crosslines and slices. These
intersections are interactive, i.e. allow transition to the display in the Seismic tab of the
intersected object by pressing the left mouse button on the corresponding line
10

1. Use the Synchronizing Cursor on the 2D, 3D and Seismic tabs. When 2 or 3 tabs are open,
the cursor is synchronized between tabs and displays the specified location on all tabs. To use
this, enable and configure Synchronizing Cursor on all required tabs
11

How to Interpret Seismic Horizons


Objectives:
• Interpret seismic horizons using manual picking methods
• Use semi-automatic interpretation methods
• QC the interpretation by displaying the result in 2D
• Use the horizon flattening option and display the geometry of the reflectors during the
deposition of the layers corresponding to the interpreted reflector

Steps:
1. Project creation and setup
Create a new project or use the existing one. Main window. Geology Designer. Create or Open
Set up project units and Seismic Reference Datum (SRD) before loading the seismic data:
1. Settings. Units Manager. Set Current Units Configuration to FIELD. Apply. Also click
Apply in the dialog which pops up next
2. Settings. Seismic Settings. Set Seismic Reference Datum to -4300 ft. OK

2. Seismic data import


1. Import Seismic cube if it was not imported earlier. Go to Geometry Objects Seismic
Seismic Surveys 3D Calculations Import
2. Go to the Settings and set the parameters as shown on the slide. Apply

3. Horizon creation
1. The reflectors i.e. Top Frontier, Dakota and Tensleep fm:
- Frontier will be tracked manually
- Dakota will be tracked with semi-automatic methods
- Tensleep will be tracked using 3D autocorrelation algorithm
2. Create these 3 seismic horizons:
- Geometry objects. Seismic Surveys 3D. RMB on Seismic Horizons. Create. Type the
corresponding name.
3. Perform this step 2 times more in order to create the 3 horizons
12

4. Seismic Interpretation: the manual method


1. Switch to the Seismic tab
2. Select the seismic horizons you have created Geometry Objects Seismic Horizons
3. In Settings select Seismic Horizons. A signal feature will be set for each horizon. The first
one to be interpreted will be Top Frontier which has a negative phase (blue in default palette).
To set the palette and change the convention.
4. Select Troughs as Signal Feature

1. In the Horizon list make sure Frontier is selected. Select Manual Picking as the
interpretation method
2. The Frontier reflector is quite continuous and can be followed through the whole 3D cube,
in the interval between 800 and 700 ms. The picture gives the interpretation for Inline 104
13

3. Use the left mouse button to trace the horizon. Double-click to finish. You can delete the last
point by clicking the Undo button or CTRL+Z on the keyboard
4. Once you have interpreted the first line, you can go to the next one, according to the step
you have set (10 lines, for example), using the green arrows of Seismic Slider or left/right
arrow keys

1. Interpret the Frontier horizon through all Inlines with the given step
2. Since the amplitude of this reflection varies from strong to weak, do not hesitate to edit the
palette in order to amplify the contrast of the sections
14

1. When you have interpreted all the Inlines, switch to the Crosslines by ticking the
corresponding object in Geometry Objects
2. Interpret the Crosslines and QC your previous interpretation on Inlines

1. To observe the lines you have interpreted, go to 3D.


2. Settings. Seismic Horizons. Frontier. Show Palette.
3. Tick Frontier, Inline and Crosslines. The color corresponds to the depth in time.
15

5. Seismic Interpretation: semi-automatic methods


1. Go to Geometry Objects. Select the Seismic Horizon named Dakota. This time, you will use
semi-automatic methods of picking (this horizon is continuous enough to be followed
automatically) and go to Inline 104 (the reference section for the interpretation of this data)
2. Select the Seeded 2D autotracking tool. Dakota
3. Set Signal feature and Correlation Window and Correlation Coefficient Limits

1. You can use the Guided Autotracking method as well: go to Interpret Seismic Horizons.
Select Guided Autotracking
2. For this method, select several points along the reflector and double-click to finish. The
picking fits automatically to the reflector, according to the Signal Feature and the Correlation
Window you have set
16

6. Seismic Interpretation: 3D autotracking


1. The 3D autotracking method allows creation of a horizon based on 2D picking or seed
points. The algorithm tries to determine the horizon values for each trace of the seismic cube
according to the given autotracking parameters. Try this method for the 3rd seismic horizon
you have created (Tensleep)
2. As for 2D, set the Signal Feature parameters in Settings. Set Correlation Window to 14 ms
and Correlation Coefficient Limit to 90%
3. For preliminary control of the horizon tracking correctness and saving time, it is possible to
Apply Spatial Limitation, measured in the number of seismic traces. The horizon will only be
traced in a limited area. The area will be limited by a square with a side equal to the specified
number of traces. The seed point will be the center of this area.
4. High Definition. The horizon is created with increased time accuracy, i.e. if the sampling
interval is 2 ms, then by default the horizon is created with the same accuracy.
5. Multi Directional Correlation option activates a four-sided examination of each point of the
horizon and one best estimate is selected. If option is disabled, then the value generated in
random direction is selected. Disabling this option allows you to reduce the calculation time,
however it is recommended only for well traced reflections in the absence of discontinuities
17

1. Choose 3D Autotracking tool. Disable Apply spatial limitation option. Click on a reflector
which will be propagaeted in 3D by the algorithm. Calculation may take some time
2. Visualize the obtained horizon in the 3D tab

1. Visualize the Tensleep horizon in the 2D tab and show the Palette
2. Display the contour lines in order to QC the picking. Try to set different visualization
parameters

7. Seismic Interpretation: interpretation on the 3D tab


You can perform the interpretation directly on the 3D tab:
18

1. Switch to the 3D view. Click on Interpret Seismic Surfaces on the right toolbox or I on the
keyboard. Select the desired horizon
2. Set the Autotracking Parameters in the Settings (just like you did before)
3. Choose the method you would like to pick the horizon with and pick the reflector directly in
3D
4. The Restrict Mode can be used to visualize the horizon point only at the intersections with
the active sections

8. Horizon Flattening
In order to visualize the reflectors as they were emplaced during the deposition of the chosen
horizon the flattening option can be applied. It can help to perform more accurate
interpretation:
1. In the Seismic tab, RMB on a seismic horizon, on which the current section will be
flattened. Flatten.
2. To return to the original view RMB on the same horizon UnFlatten
19

How to Do Time to Depth Conversion


Objectives:
• Create a Domain Conversion Model
• Convert seismic horizons from time to depth domain
• Convert seismic volume to depth

Steps:
1. Project creation and settings
1. Open the existing project or create new. Main window Geology designer New or Open
2. In this project the vertical axis measurements are in feet and the seismic data is above sea
level. In order to correctly convert seismic data to depth, it is necessary to change the
configuration of project units and adjust the seismic reference datum (SRD):
3. Settings. Units Manager. Set Current Units Configuration to FIELD. Apply. Also click
Apply in the dialog which pops up next
4. Settings. Seismic Settings. Set Seismic Reference Datum to -4300 ft. OK

2. Seismic data import


1. Import Seismic cube if it was not imported earlier. Go to Geometry Objects Seismic
Seismic Surveys 3D Calculations Import
2. Go to the Settings and set the parameters. Apply
20

3. Import the interval velocities


Import the interval velocities cube which will be used to perform the time-depth conversion.
Velocity cubes can be imported as standard SEG-Y files and the steps are the same as for
seismic survey import:
1. Go to Geometry Objects Seismic Surveys 3D Import. Select velocity.sgy as the file and
set the same parameters as the ones indicated on the previous slide. Then check the Length
Units checkbox and indicate meters as the XY length units
2. Change the template of the uploaded object to Seismic Velocity: RMB on Velocity in
geometry objects Object Settings Template Seismic Velocity
3. Visualize the model in the 3D and or the Seismic tab. You will get a “layer-cake” velocity
model with 3 constant velocity values

4. Domain Conversion Model construction


Interval velocities describe the values in the interval but not at each point. In order to conduct
an accurate conversion, a Domain Conversion Model at each point of which the values of the
depth and time are determined must be constructed. Average or interval velocities can be used
as a model input. Build model based on the loaded interval velocities:
1. Seismic Surveys 3D Calculations Domain Conversion Domain Conversion Model
2. Select Velocity to Domain Conversion Model. In the Velocity field, select the interval
velocity model you have loaded, select Velocity Type, enter a name for the output velocity
model and select TWT as Time/Depth Relation Type
3. Visualize the obtained model in the 3D or Seismic tab. Now you can use this model to
convert objects from time to depth domain
21

5. Seismic horizon interpretation


1. Next, we will convert the seismic horizon from the time to the depth domain using the
created model
2. Interpret the horizon using the methods or use the existing one

1. Now you can use the 3D correlation of the picked horizon


2. Geometry Objects Seismic Seismic horizons Calculations
3. 3D Correlation. Choose the horizon you have picked as Input Horizon and enter a name for
the Output Horizon
22

4. Set the Correlation Setting. For the Top Frontier horizon use the following parameters:
Correlation Coefficient Limit – 50, Signal Feature – Trough, Correlation Window – 8 ms.
Apply.

6. Time-Depth conversion
Convert the obtained horizon from time to depth using the Domain Conversion Model created
earlier :
1. Go to Geometry Objects Horizons Calculations Create Create Horizon by Seismic
Horizon (Domain Conversion Model)
2. Enter the name of the horizon, select the 3D-correlated seismic horizon, the Seismic Survey
and the Domain Conversion model. Apply
3. The resulting surface is stored in Horizons folder in Geometry Objects

1. In order to create a continuous surface, you need to interpolate this resulting horizon. Go to
Horizons Calculations Create Universal Interpolation
2. Use the horizon you have created as the input surface. Set the same parameters as in the
picture and click Apply
23

1. Display the horizon in the 2D tab


2. In the Settings panel, go to Frontier Interpolated. Contour Lines. Tick Show Contour Lines
and set the visualization parameters

1. Now use Domain Conversion Model to transfer the whole seismic cube to depth: Geometry
Objects Seismic Surveys 3D Domain Conversion Depth Conversion
2. Set the seismic survey you want to convert, the conversion model and enter the output name.
Apply
3. Display the converted cube and the previously created horizon on the Seimic or 3D tab. You
can now work with seismic data in the depth domain
24
25

EXERCISE 4: Assisted History Matching Using CMG


AIM:
This exercise aims to create a simulation that models a linear core flood done in a lab. Core floods are often used for
determining interactions between fluids and rock samples. In particular, relative permeabilities are usually obtained,
and displacement mechanisms (such as the addition of miscibility).

Table 1: General Properties

Table 2: End Point Values


26

Table 3: Values for a simulation run

Table 4: Parameter values for a simulation run

PROCEDURE:
Creating Model:

1. Open Builder v2020.10 by double clicking its icon in CMG Launcher.


2. Go to File menu and select New. In Builder Reservoir Simulator Settings window define the type of Simulator as GEM, the
Working Units as Field, a Single Porosity system, and the Simulation Start Date as 1990 1 1:
27

3. Click OK on this window and the next.


4. Cores are radial in dimension but linear simulation models are often built in Cartesian grids. This implies that the dimensions
of the core will need to be converted while conserving volume.

Reservoir Section:
5. Go to Reservoir menu and then select Create grid Cartesian option. On Create Cartesian Grid windows use the above-
described dimensions to create a Cartesian grid in Builder:

6. Press OK
28

7. On Modes Tools Bar, select Probe Mode option. Open Specify property and define parameters given in General Property
Specification windows. After entering values press OK.

8. Navigate to the Rock Compressibility window under the Reservoir Section and input the values as given. Press OK.
29

9. Save the model as Simulation exercise 1.dat.


Components Section:
1. Load the fluid model by navigating to the Components section and selecting Import WinProp-Generated Model. Find and
select the GEM output file called WINPROP_EXERCISE_2_SIMULATOR_OUTPUT.gem.
2. Window pops up asking to import the COMPOSITION PRIMARY data in to the dataset using ZGLOBAL keywords. Select
No.

3. In the Components Section menu select Water Properties to open the associated window. Change the Viscosity to
0.45 cp. Click Apply and OK.
30

4. The Solubility of components may be altered through Builder also. In the Components Section menu select Solubility to
open the associated window. Set the Henry’s Constant and Vifinity’s for every component except CO2 to 0. This will turn
solubility off for these components. Press Apply and OK.

Rock - Fluid Section:


1. Navigate to the Rock-Fluid section and open the Rock Types window.
2. Start by adding a New Rock Type by clicking on. Then select Tools Generate Tables using Correlations. In the window which
appears input the following values followed by pressing Apply and OK:

3. Click Apply and OK on the Rock Types window.


31

Initial Conditions Section:


1. Open the Initial Conditions window under its associated section. On the Calculation Methods tab choose VERTICAL
DEPTH_AVE Equilibrium (rather than the default of VERTICAL BLOCK_CENTER). After selecting this option choose the
WATER, OIL (WATER_OIL)- No Free Gas sub-option:

2. Navigate to Init. Region Parameters and enter given value of REFPRES, REFDEPTH, DWOC.
3. Also input the initial Mole fractions of oil composition.
4. Press Apply and OK. The Initial Conditions section should now be properly validated. The Reservoir Section should now also
have a green validation checkmark.
32

Numerical Section:
1. Enter the values of DTMAX, DTMIN, DTWELL, MAXRES in Dataset Value.

2. Press Apply and OK.

Well and Recurrent Section:


1. In the Wells and Recurrent menu select the option Well New. Begin by creating an Injector well with the following attributes:

2. Name ‘Injector’; Type ‘INJECTOR’. Click OK.


33

3. Repeat the previous steps to Add another New Well.


4. Name ‘Producer’; Type ‘PRODUCER’.

5. Define Constraints for Injector Well.

6. Define Constraints for Producer Well.

7. Define Perforations. In the Wells & Recurrent Menu open the Well Completions (PERF) window. For the Injector well on the
General tab change the Well Index Type to SLIMTUBE Slim Tube Simulation. Also change the Radius to 0.01 ft and the
Direction to I Axis. Press Apply.
8. On the Perforations tab add a new Perforation by clicking the button to Insert after selected node. Type in the user block
address 1 1 1. Also input a value of 1 in the Well index WI column. Press Apply.
34

9. Repeat Step – 8 for Producer well. In Perforations type User Block Address as 50 1 1. Press Apply and OK.

10. Click on Dates. On the Simulation Dates window, Add a new date. In CMG Calendar window, enter 2.932 Days. Then click
OK.
11. Repeat the previous steps to add two new dates, 3.03 days and 4.906 days. Click OK.

12. Navigate straight to the Constraints tab of Injector Well and change BHW Reservoir Water Rate constraint to BHG Reservoir
Gas Rate for the period of solvent injection (2.932 days). Set the MAX for this at 0.00847552 ft3/day (10cm3/hr) on CONT
REPEAT. Press Apply.

13. Navigate to the Injected Fluid tab at the same date and change the Injected Fluid to Solvent. Input 1 for the Mole Fraction of
the CO2 Component. Press Apply.
35

14. For the date 3.030 change the Constraint from BHG Reservoir Gas Rate back to BHW Reservoir Water Rate (with a MAX
value of 0.00150956 bbl/day) click on Apply and change the Injected Fluid back to Water.
15. Press Apply and OK.

16. Under the Well & Recurrent Section open Separators. Select the Short Form option under the Separator Format. Enter a Stage
Pressure of 14.7 psi and a Stage Temperature of 60 F.

I/O Control Section:


1. Open the Simulation Results Output window. Select SR3 as Output Type.
2. Change WSRF to a Specified Frequency of 1.
36

3. Under the What to Write (OUTSRF) section click the Green Plus Sign to add a new output. Select for the output to be for the
Well. Under Variable Selection choose Well values for all layers at reservoir and surface conditions (LAYER ALL
DOWNHOLE). Repeat this process to add another Well output for the Production split information with compositions (PSPLIT).
4. Click Select button related to Grid Outputs. Select following outputs:

5. Click OK.
37

6. add another Well Output. Choose Select Well/Special Variables under the Variables Selection column. Press the Select button
associated with this output. Scroll down the list under the XWEL output is found. Select this output for the Producer Well and CO2
as a component.
7. Also select the same for the ZWEL output.

8. Press OK on this window and the Simulation Results File Writing window.
9. Now, all sections are green checked and validated.

10. Save the dataset. Click on Validate with GEM and Run it in GEM using 1 cpu.
38

Viewing Simulation Results:


1. Open the simulation results in Results by dragging and dropping the Simulation exercise 1.sr3 file onto the associated icon in
Launcher.
2. In Results navigate to the Data Sources under Input and select Add Files. In the Required Data folder select the Field History
Files (FHF) named:
EXERCISE_1_LABDATA_RATES_PRESSURES.fhf EXERCISE_1_LABDATA_COMPOSITION.fhf
3. Click on Time Series in Plots and select from Curve Selector, DATA TYPE – Wells, DATA SOURCE – Simulation exercise

1.sr3, DATA – Producer and PARAMETER – Cumulative Oil SC. Add to this plot the Field History Cumulative Oil Production.
39

4. Repeat Step 3 to add a plot for Injector Bottom Hole Pressure for the Simulation Model and the Laboratory History.

5. Repeat Step 2 to add a plot for the Separator oil mole frac Component CO2 Well Producer (2) produced in the
simulation model. Output is found at Special History in Data Type Menu. On the same plot add the parameter Separator oil mole
frac Component CO2 Well 2 plot from the EXERCISE_1_LABDATA_COMPOSITION.fhf file
40

CMOST Master File (CMM):


1. Open CMOST and click New Project.
2. Name the project Core Flood Analysis and select Simulation exercise 1.dat from the folder.
3. Set the project location to be the EXERCISE 2 & 3 folder then click OK.

4. Click on the New Study button to create a new study.


5. Name the study Coreflood_SA. Define Simulation exercise 1.dat as the base dataset. Select Sensitivity Analysis as the task type
then click OK.

6. Navigate on the Coreflood_SA tab and select Input and in that General Properties.
7. Click on Import FHF button and select the files EXERCISE_1_LABDATA_COMPOSITION.fhf and
EXERCISE_1_LABDATA_RATES_PRESSURES.fhf from the REQUIRED DATA folder then click Open.
41

8. Select Input Fundamental Data in that Original Time Series.


9. Click the Insert button and enter Origin Type – WELLS, Origin Name – Producer, Property – Cumulative Oil SC.

9. Click the Insert button and enter Origin Type – WELLS, Origin Name – Injector, Property – Well Bottom-Hole Pressure.
42

11. Using the CMG Launcher copy from the DATA REQUIRED folder the file RelPermMatch_InsertToDataset.cms into the Core
Flood Analysis.cmpd folder that was created under STUDENT SOLUTIONS/SIMULATION/ EXERCISE 2 and 3 folder.
12. Go back to CMOST and navigate in the main menu of CMOST and click Add Existing and select the file
(RelPermMatch_InsertToDataset.cms) previously copied.
13. On the Study Manager, select the Coreflood_SA study icon and click on the Import button.
14. In new window select Import Parameterization option and click OK.

16. Navigate into the Coreflood_SA tab General Properties and click on the cEDIT button to open the *cmm file
.
43

16. Navigate to the Rock-Fluid section. Begin by selecting and deleting all of the values beneath the SWT keyword.
17. Repeat this same process with the values in the SLT (Liquid-Gas) Relative Permeability Table.

17. Repeat this same process with the values in the SLT (Liquid-Gas) Relative Permeability Table.
44

18. In space under SWT Keyword enter <cmost>OilWaterTable</cmost>.


19. Similar for SLT Table enter <cmost>LiquidGasTable</cmost>.

/20. Click on the save icon to save the changes in .cmm file and then close cEDIT.
21. In CMOST Navigate into the Coreflood_SA study and select Input, go to Parameterization in that Parameters and a list of
parameters has been copied from the J-script file.
22. In this Section, remove five samples and enter only two sample for each parameter value.
• Swcon: 0.01, 0.1 (Default Value of 0.2)
• I_Swcrit: 0.05, 0.15 (Default Value of 0.0)
• Swcrit: Formula, No Values (Default Value of 0.2)
• Soirw: 0.25, 0.3 (Default Value of 0.2993)
• I_Sorw: 0.0, 0.1 (Default Value of 0.0)
45

• Sorw: Formula, No Values (Default Value of 0.2993)


• Krocw: 0.3, 0.6 (Default Value of 0.3)
• Krwiro: 0.2, 0.25 (Default Value of 0.2)
• Nw: 3.0, 4.0 (Default Value of 3.0)
• No: 3.0, 4.0 (Default Value of 3.0)
• Soirg: 0.01, 0.1 (Default Value of 0.3702)
• I_Sorg: 0.0 (Default Value of 0.0)
• Sorg: Formula, No Values (Default Value of 0.4361)
• Sgcrit: 0.03 (Default Value of 0.03)
• Sgcon: Formula, No Values (Default Value of 0.0)
• Krgcl: 0.25 (Default Value of 0.25)
• Krogcg: Formula, No values (Default Value of 0.3)
• Nog: 3.0 (Default Value of 3.0)
• Ng: 3.0 (Default Value of 3.0)

23. Uncheck the boxes of I_Sorg, Sgcrit, Krgcl,Nog,Ng. Save the study by clicking on “Save Current Study”.

24. Click on Objective Functions in that Basic Simulation Results page.


25. Click on the Insert button.
46

26. Rename the objective function to Cumulative_Oil_Prod. Set the Origin Type to Wells and Producer for Origin Name and set
property to Cumulative Oil SC.
27. Add 1 more objective function for Origin name as Injector and set property to Well Bottom Hole Pressure.
47

History Match:
1. Click on Study Manager tab and right click on Coreflood_SA icon and select Copy to New Study. Name the new Study as
Coreflood_HM and check box for Copy and rename cmm then click OK.

2. Navigate to Objective Function in Input and click on History Match Quality.


3. Click Insert button to add a new objective function and name it as Cumulative_Oil_Error.
4. In below Original Time Series Terms Tab click Insert button to objective function in which Origin Name is Producer and
Property Cumulative Oil SC.
5. Repeat step 3 and 4 for objective function name Cumulative_BHP_Error and Origin Name as Injector and Property Well
Bottom Hole Pressure.
6. Navigate to Parameters in Parameterization.
7. Change Values of following parameters as below:
• Swcon: 0.01, 0.03, 0.05, 0.06, 0.08, 0.1
• I_Swcrit: 0.05, 0.075, 0.1, 0.125, 0.15
• Soirw: 0.25, 0.26, 0.27, 0.28, 0.29, 0.30
• I_Sorw: 0.0, 0.02, 0.04, 0.06, 0.08, 0.10
• Krocw: 0.3, 0.35, 0.40, 0.45, 0.50, 0.55, 0.60
• Krwiro: 0.2, 0.21, 0.22, 0.23, 0.24, 0.25
• Nw: 3, 3.2, 3.4, 3.6, 3.8, 4
• No: 3, 3.2, 3.4, 3.6, 3.8, 4
48

8. Navigate to Engine Settings in Control Centre.


49

9. Change Study Type to History Matching and Set Engine Name to CMG DECE.
10. Change Number of experiments to 50, define Global Objective Function Name to GlobalHMErrror and other as default.
11. Navigate to Objective Function in Results and Analyses and in that Run Progress in that GlobalHMError to see History
Match Progress.

Result:
50
51
52

Exercise 5: Laboratory Core Flood Simulation


Aim: The purpose of this exercise is to create a simulation which models a linear core flood done in
a lab. Core floods are often used for determining interactions between fluids in rock samples. In
particular, relative permeabilities are often obtained as well as displacement mechanisms (such as
the addition of miscibility).

Step1:Creation of Initial Core Model


1. Open Builder v2020.10 by double-
2. Go to File menu and select New. In Builder Reservoir Simulator Settings window define thetype
of Simulator as GEM, the Working Units as Field, a Single Porosity system, and the Simulation
Start Date as 1990 1 1:

3. Click OK on this window and the next.


4. Cores are radial in dimension but linear simulation models are often built in Cartesian grids. This implies
that the dimensions of the core will need to be converted while conserving volume.
53

The simulation model is to be a linear model (1-dimension of flow). The direction of flow is this example is assumed to
be in the I-Direction.

Based on the diagram of the laboratory core (shown above) it can be calculated what the Cross-Sectional flow area
would be through the core:

= 3.1415 * (0.122867454 / 2)2 = 0.01185669367 ft2

Cross-Sectional Area of Simulation Model = DJ * DK

Assume DJ and DK are the same = DJ2

0.01185669367 ft2 = DJ2 DJ

= DK = 0.108888446 ft.L =

2.86614 ft.

The linear simulation model is to be divided into 50 sub-divisions in the flow direction (I-direction).

Per block Dimension in the I-Direction = 2.86614 ft / 50 = 0.0573228 ft.

Go to Reservoir menu and then select Create grid Cartesian option. On Create Cartesian Grid
windows use the above described dimensions to create a Cartesian grid in Builder:

5. Press OK.
6. On Modes Tools Bar, select Probe Mode option. Then use Specify Property button to define
the following parameters on the General Property Specification windows:
Grid Top (Depth)- 6200 ft (Layer 1)
Grid Thickness- 0.108888446 (Whole Grid)
Porosity- 0.2439 (Whole Grid)
Permeability I- 11.43 md (Whole Grid)
Permeability J- 11.43 md (Whole Grid)
Permeability K- 11.43 md (Whole Grid)
54

Press OK on this window and the following Property Calculation window.

7. Navigate to the Rock Compressibility window under the Reservoir Section and input the
following:
Rock Compressibility (CPOR)- 4e-6 1/psi Reference
Pressure for Porosity (PRPOR)- 14.6923 psi (Default)

8. Press OK.
9. Save the model as SIMULATION_EXERCISE_1_BASE.dat.

Fluid Model, Rock-Fluid, Initial Conditions, and Numerical Definitions


1. Load the fluid model by navigating to the Components section and selecting Import WinProp- Generated
Model. Find and select the GEM output file called
WINPROP_EXERCISE_2_SIMULATOR_OUTPUT.gem.
2. Window pops up asking to import the COMPOSITION PRIMARY data in to the dataset using
ZGLOBAL keywords. Select No .
55

There will now be an error on the Reservoir Section. This is due to the requirement of defining the initial
components in the model. Defining the initial mole fractions will be done at a future step.

3. Since the PVT was already matched and created previously in WinProp, no further work is required on it at
this time. However, GEM will include a water component by default (which was not included in the WinProp
match). The water needs to have its viscosity slightly altered in order to properly match the temperature and
conditions of the laboratory.

In the Components Section menu select Water Properties to open the associated window. Change the
Viscosity to 0.45 cp. Click Apply and OK.

4. The Solubility of components may be altered through Builder also. In the Components Section menu
select Solubility to open the associated window. Set the and
for every component except CO2 to 0. This will turn solubility off for these
components. Press Apply and OK.
56

5. Navigate to the Rock-Fluid section and open the Rock Types window. In this example, Relative Permeability
curves will be created from analytical Corey Equations based on laboratory- determined end-points.

Start by adding a New Rock Type by clicking on . Then select Tools Generate Tables
using Correlations. In the window which appears input the following values followed by pressing
Apply and OK:

Click Apply and OK on the Rock Types window. The Rock-Fluid section should now be validated with a
green checkmark.

6. Open the Initial Conditions window under its associated section. On the Calculation Methods tab choose
VERTICAL DEPTH_AVE Equilibrium (rather than the default of VERTICAL BLOCK_CENTER). After
selecting this option choose the WATER, OIL (WATER_OIL)- No Free Gas sub-option:

7. Navigate to the Init. Region Parameters tab and input the following values:
Pressure (REFPRES)- 2515 psi
Depth (REFDEPTH)- 6200 ft
Water-Oil Contact (DWOC)- 6300 ft (core is in the oil zone)
57

8. Also input the initial Mole Fractions of the oil composition. These values should be the same as those
previously observed in the WinProp exercises (these values may be found in the GEM output file from
WinProp, WINPROP_EXERCISE_2_SIMULATOR_OUTPUT.gem:

Press Apply and OK. The Initial Conditions section should now be properly validated. The Reservoir
Section should now also have a green validation checkmark.

9. In the Numerical Controls section open the associated window and input the following values:
Maximum Time Step Size (DTMAX)- 0.005 day
Minimum Time Step Size (DTMIN)- 1e-005 day
First Time Step Size after Well Change (DTWELL)- 1e-005 day
Maximum Tolerance for Any Equation (MAXRES)- TIGHT
58

Press Apply and OK.

Wells and Recurrent and Input/Output Definition


1. Injector and Producer wells need to now be defined. In the Wells and Recurrent menu select the option
Well New. Begin by creating an Injector well with the following attributes:
Name- Injector
Type- INJECTOR

On the Constraints tab Constraint definition define the following Operating


Constraints:

OPERATE BHW reservoir Water Rate MAX 0.00150956 bbl/day (10 cm3/hr)

OPERATE BHP Bottom Hole Pressure MAX 4000 psi

Set both to CONT REPEAT also.


59

Click on OK and repeat the previous steps to Add another New Well.Create a

Producer well with the following attributes:

Name- Producer
Type- PRODUCER

On the Constraints tab also define the following Operating Constraints:

OPERATE BHP Bottom Hole Pressure MIN 2515 psi CONT REPEAT

Press OK to close the window.

2. Perforations still need to be defined for the wells. In the Wells & Recurrent Menu open the Well
Completions (PERF) window. For the Injector well on the General tab change the Well Index Type to
SLIMTUBE Slim Tube Simulation. Also change the Radius to 0.01 ft and the Direction to I Axis. Press
Apply.

On the Perforations tab add a new Perforation by clicking the button to Insert after selected node. Type in
the user block address 1 1 1 to place the perforation in the first gridblock. Also input a value of 1 in the Well
index WI column. Press Apply.
60

3. Repeat Step 2 but for the Producer well. The Perforation should be placed at the other end of the core (UBA
50 1 1). Press Apply and OK to close the window. All section should now be properly validated.

4. The approach taken in the lab now needs to be applied in the simulation model. This approach was based on
the following scheme:
Water Injection for 3.00 Pore Volumes

(2.932 days at 10 cm3/hr), Total time is 2.932 days

Solvent Injection for 0.1 Pore Volumes

(0.098 days at 10 cm3/hr), Total time is 3.030 days

Chase Water Injection for 1.92 Pore Volumes

(1.876 days at 10 cm3/hr), Total time is 4.906 days

5. On the tree view, double click on Dates . Add a new date


2.932 in the Days. Then click OK.

6. Repeat the previous steps to add two new dates, 3.03 days and 4.906 days. Close the window.
61

7. Navigate straight to the Constraints BHW Reservoir


Water Rate constraint to BHG Reservoir Gas Rate for the period of solvent injection (2.932 days). Set the
MAX for this at 0.00847552 ft3/day (10cm3/hr) on CONT REPEAT. Press Apply.

Navigate to the Injected Fluid tab at the same date and change the Injected Fluid to Solvent. Input 1 for
the Mole Fraction of the CO2 Component. Press Apply.

8. For the date 3.030 change the Constraint from BHG Reservoir Gas Rate back to BHW Reservoir Water
Rate (with a MAX value of 0.00150956 bbl/day) click on Apply and change the Injected Fluid back to
Water.

9. Press Apply and OK.


62

10. Under the Well & Recurrent Section open Separators. This allows the user to input a separation process
for fluid movement from the Reservoir to Surface Conditions for output purposes.

Select the Short Form option under the Separator Format. Enter a Stage Pressure of 14.7 psi and a
Stage Temperature of 60 F.

Click on the button to Edit Wells and select the Producer well. Press OK (this relates the defined Separator to
the Producer). Click Apply and OK on the Separator window.

The Default condition for surface streams is the aforementioned Pressure and Temperature. As such, in this
exercise if the Separator is neglected the result will be the same. However, in some situations a separator may
be required for properly determining the surface mole fractions.

11. Lastly, navigate to the I/O Control Section. While there are a number of default outputs they will
generally not include specific data which may be necessary in certain cases.

Open the Simulation Results Output window (this controls information being output for Results IMRF, SR3
or IMRF and SR3 files). Select SR3 as Output Type.

Begin by changing the output frequency When to Write (WSRF) for the Grid to a Specified
Frequency of 1 (implying values will be output every timestep).

Under the What to Write (OUTSRF) section click the Green Plus Sign to add a new output. Selectfor the
output to be for the Well. Under Variable Selection choose Well values for all layers at
63

reservoir and surface conditions (LAYER ALL DOWNHOLE). Repeat this process to add another Well
output for the Production split information with compositions (PSPLIT).

Click the Select button related to the Grid Outputs (top line of the OUTSRF section). This will open a
window which can be sorted by Keyword or Variable Description. Sort by Keyword and select the following
outputs:

Variable Description

Oil mass density

SALIN Aqueous phase salinity (molality)


Saturation pressure

Interfacial tension between oil and gas

Water saturation

Gas viscosity

Water viscosity

X 'C08toC12' Mole fraction of 'C08toC12' in oil phase

X 'C20toC30' Mole fraction of 'C21toC30' in oil phase


X 'C2HtoNC4' Mole fraction of 'C2HtoNC4' in oil phase

Y 'C13toC20' Mole fraction of 'C13toC20' in gas phase

Mole fraction of 'C2HtoNC4' in gas phase

Z 'C08toC12'

Z 'C21toC30'

Global Mole fraction of 'CO2'

12. Click OK. Finally add another Well Output. Choose Select Well/Special Variables under the
Variables Selection column. Press the Select button associated with this output. Scroll down the
64

list under the XWEL output is found. Select this output for the Producer Well and CO2 as a
component. Also select the same for the ZWEL output.

This output may be copied for the other components if desired by choosing Insert and Copy a Row under the
Insert button at the top of the window.

13. Press OK on this window and the Simulation Results File Writing window. Save the dataset and
Run it in GEM using 1 cpu.

Viewing Simulation Results


Open the simulation results in Results by dragging and dropping the .sr3 file onto the associated icon in Launcher.

1. In Results navigate to the Data Sources under Input and select Add Files. In the Required Data
folder select the Field History Files (FHF) named: EXERCISE_1_LABDATA_RATES_PRESSURES.fhf
EXERCISE_1_LABDATA_COMPOSITION.fhf

(both may be selected at the same time by holding Shift or Control when selecting).
65

2. Proceed to make a graph for the Cumulative Oil Production (at Standard Conditions, SC) for the simulation
model under Plots by clicking on Time Series and select from Curve Selector, DATA TYPE Wells, DATA
SOURCE SIMULATION_EXERCISE_1_BASE.sr3, DATA Producer and PARAMETER Cumulative Oil
SC. Add to this plot the Field History Cumulative Oil Production.

3. Repeat Step 2 to add a plot for Injector Bottom-Hole Pressure for the Simulation Model and the
Laboratory History.

4. Repeat Step 2 to add a plot for the Separator oil mole frac Component CO2 Well Producer (2) produced in
the simulation model. This output can be found under Special History in the Data Type menu.
On the same plot add the parameter Separator oil mole frac Component CO2 Well 2 plot from the
EXERCISE_1_LABDATA_COMPOSITION.fhf file.
66

As can be observed by these comparisons, the simulation model does not match the laboratory experiment with regards
to cumulative oil, pressure, or CO2 breakthrough. Parameters in the Simulation model will therefore need to be altered
in order to match the behavior observed in the laboratory.

Before History Matching an important question, which should first be asked is:

The answer to this is a function of Numerical Dispersion (error caused by the numerical solution). The finer the
grids are then the lower the numerical dispersion may be but the longer the run time will become. In a purely
mathematical approach, extremely small grid blocks would be used to obtain the most accurate solution. However,
this approach would lead to unacceptable runtimes. Generally, a sensitivity analysis will need to be done in order to
determine the optimum grid size to reduce dispersion while allowing for an appropriate runtime. A fine grid is ran
which is considered
sizes compared to it. The grid which offers similar results within an acceptable amount of error while reducing
runtime is the grid which is used.

This work has been previously done to save time. The following plot shows the results of this work. As can be
observed, the dataset with 50 grid blocks in the I-Direction gave results which were of minimal error compared to
the 80 grid block model while taking 37% less time to run.
67
68

Exercise 6 Fluid Property (PVT) Modelling


The purpose of this exercise is to use laboratory data to characterize a reservoir data using CMG’s WinProp program.
WinProp is an Equation‐of‐State (EOS)‐based fluid behavior and PVT modelling package. In WinProp laboratory
data for fluids can be imported and an EOS can be tuned to match its physical behavior. Fluid interactions can then be
predicted and a fluid model can then be created for use in CMG software.

The supplied data for reservoir oil contains a description of associated single carbon numbers and their fractions,
saturation pressure test results, separator results, constant composition expansion test results, differential liberation
test results, and swelling test results. All of these can be used for tuning the EOS to match the fluid behavior.

Defining Reservoir Composition

1. Open WinProp v2020.10 by double‐clicking its icon in CMG’s Launcher


2. Navigate to the Titles/EOS/Units form and choose the following options:

3. Navigate to the Component Selection/Properties form and input 186 as Default Reservoir

Temperature (deg F). Click the button to Insert Library Components:

4. Open the Excel file named FLUID_CHARACTERIZATION.xlsx. This file contains all relevant
information necessary for characterizing the reservoir fluid. Navigate to the first Tab in this file called
Oil Composition.

In here will be a list of all components which make up the reservoir fluid. The lighter components can be
added directly into the fluid model in WinProp via Library components. These are represented in the top‐
right box (see figure below).
69

CO2 0.0118299
N2 0.001609
C1 0.1154103
C2 0.0600579
C3 0.0647635
i-C4 0.0221657
n-C4 0.0475510
i-C5 0.0328151
n-C5 0.0370254
C6 0.0651350

5. On the Library Components window in WinProp select the components displayed in this tab in the
upper‐right box (labeled as the input for Step 6). Use of the Shift or Ctrl keys can assist in selecting
multiple components at once.

While the ordering of these components may not matter at the moment it is highly recommended that the
order shown in the Excel file be the order of selection. This will allow direct copying of Mole Fractions in
future steps.

Click OK to exit back to the Component Selection form. The components should now be displayed with
their associated properties. Click the button to Apply Change (located at the bottom of the form)
and click OK.

6. Navigate to the Composition form and copy the Mole Fractions from the Excel file into the Primary
column (Primary typically represents the native reservoir fluid while Secondary will typically
represent an injected fluid):
70

Heavy fraction is a mixture of several components. In this exercise an extended composition is available for the
heavy fraction (from C7 until C30+) with their molecular weight and specific gravity. Given that the limited
information is available, internal WinProp correlations will be used to calculate component properties such as
critical temperature, critical pressure, etc.

Therefore, to add the remaining components the Plus Fraction Splitting option will be used. This is a quick way
of adding all of the remaining components without needing to add a custom component one at a time for each.

7. Click on the Composition Form in the Tree View. Right‐Click on this and choose the option to Add
After Characterization Plus Fraction Splitting (or use the menu bar at the top of WinProp to add
it).
71

8. In the Plus Fraction Splitting form on the General Tab change the following options:
• Distribution Function Type: Gamma
• First Single Carbon Number in Plus Fraction: 7
• Number of Pseudocomponents: No Lumping

(Will be done at a later step)

• Leave all other options as Defaults


72

9. Navigate to the Sample 1 Tab. Copy the Mole Fraction, Molecular Weight and Specific Gravity
for C7‐C30+ from the Excel file and Paste into this table.
10. Save the model as WINPROP_EXERCISE_1_PLUSFRACTION.dat. After saving Run the model by

pressing the Play button.

Running the model will use the Plus Fraction Splitting to determine the components of the extended analysis
and their associated properties from correlations. These can be viewed in the Simulation Results section of
the Tree View in the Simulation Output file.
73

Once satisfied, under the File Menu dropdown choose the option to Update Component Properties. This will add
the results of the previous simulation run (in this case all of the newly defined components) into the model. Click Yes
on the popup to overwrite the information in the Component Properties and Composition windows. The new
components should now be added (from C07 – C30+).

Matching Saturation Pressure for Non‐Lumped Fluid


It is sometimes beneficial to match a non‐lumped fluid. In particular the values associated with the heaviest
component (C30+) may be uncertain to a large extent. As such, future tuning of the EOS may be easier if an initial
match is obtained before combining components and their properties together into pseudo‐components.
74

1. Start by saving the updated model as:


WINPROP_EXERCISE_1_PLUSFRACTION_UPDATED.dat.

2. Delete the Plus Fraction Splitting form by Right‐Clicking on it in the tree view and selecting
Cut/Delete (if you do not follow this action by pasting it back in then it will be considered deleted).
3. Navigate to the Component Selection/Properties form and change the volume shift option to Linear
Temperature Dependent Volume Shift. Since the V Shift Coef1 column has been filled out after the plus
fraction splitting, the option should be changed to allow the temperature dependence.

4. Right‐Click on the Composition form and choose the option to Add After Calculations Two‐Phase
Envelope. This will allow visualization of the phase behavior of the reservoir fluid before being matched
to laboratory data. Nothing needs to be altered in this form; the defaults will generally cover the necessary
ranges of pressures and temperatures.

5. Right‐Click on the Two‐Phase Envelope form and select Add After ‐> Calculations ‐>
Saturation Pressure. In this form input the following information:
• Temperature (Deg F): 186
• Saturation Pressure Estimate (psia) *: 500
• Experimental Saturation Pressure (psia): 740
75

*Note‐ As long as the box is checked to Improve Saturation Pressure Estimate, then WinProp will
internally iterate to what it believes is the Saturation Pressure using the 500 psia as a starting point.

6. Save the model as WINPROP_EXERCISE_1_NOLUMP_2PHASE_SATPRESS.dat. After saving


Run the model by pressing the Play button.
7. Navigate to the Results section in the Tree View and take time in viewing the Pressure‐
Temperature 2‐Phase Envelope.

8. In the Results Section navigate to the Simulation Output. This file contains the results of any calculations
done by WinProp. In this case, the majority of the file consists of Flash Calculations which are done to
construct the aforementioned 2‐Phase Envelope. This file is typically arranged in the order that the
calculations are defined in the Tree View. As such, scroll to the bottom of the file to view the results of the
Saturation Pressure Calculation:
76

It can be observed that the calculated Saturation Pressure is 732.711 psia. This is close to the 740 psia;
however, for a property such as Saturation Pressure there should be a near‐exact match.

Explanation on EOS Tuning:


To obtain a better match certain EOS parameters can be altered. This will slightly alter the behavior of the fluid and
allow a match to be found. Currently the fluid consists of Single‐ Carbon‐Number (SCN) components with one
exception, C30+. The C30+ term is a pseudo‐ component comprising of all components greater than C30. Because of
this there is an inherent uncertainty as to the exact composition and behavior of this (and other) pseudo‐ components.

Depending on the Experimental data that is attempting to be matched, different EOS parameters may have an effect on
the behavior while others may not. For example, in order to match Density measurements it is commonly practiced
that Volume Shift of a component be altered. The Volume Shift changes density without changing the multi‐ phase
behavior of the fluid.

In this situation, in order to match the Saturation Pressure (otherwise referred to as Bubble Point, Pb) then the
Critical Pressure and Critical Temperature as well as Interaction Coefficients can be altered. Specifically, the values
with the most uncertainty should be the ones that are changed. In this case, those belonging to the C30+ component
fit this description (these properties are known for pure components, such as CO2 or Methane, and as such should be
avoided being changed if possible).

9. Add a Regression Form to the dataset by Right‐Clicking on Saturation Pressure and choosing Add After
Characterization Start Regression. Follow this by Cutting the Saturation Pressure form. Right‐
Click on the Regression Parameters form and choose the option to Paste into Reg‐Block. The Tree View
should appear as follows:
77

10. Since the Saturation Pressure form has already been defined and the experimental data added this form can
be assumed complete. In the Regression Parameters form the parameters which are going to be regressed
on need to be selected. In this instance select the following parameters by clicking on their respective boxes
in the Component Properties Tab:
• C30+: Pc (atm)
• C30+: Tc (K)

11. Navigate to the Interaction Coefficients tab. Make sure the radial button is set to Select from list then
click on the Interaction Coefficient Exponent, HcIntCoefExp – 1 (1.2).

12. Since component properties may be altered the two‐phase relationship might change. As such, add another
2‐Phase Envelope form after the Regression (not in it) to view the Envelope after regressing. Do this by
Right‐Clicking on Regression Parameters in the tree view and selecting Add After Calculations 2‐
Phase Envelope
13. Save the model as WINPROP_EXERCISE_1_NOLUMP_2PHASE_SATPRESS_REGRESS.dat.
78

After saving Run the model by pressing the Play button.

Viewing the 2‐Phase Envelope results from before and after the regression will show that there was no alteration. To
investigate why this may be the results of the regression need to be further examined.

14. Navigate to the Simulation Output under the Simulation Results section of the tree view. Use the search
feature at the top to search for “Regression Results”. This is done due to the large number of calculation
for the 2‐phase envelopes on each side of the regression making it difficult to find it.
15. Regression results are broken into 2‐pieces. The top part shows the parameters which were being altered.
In this section each parameter is displayed followed by its bounds of investigation (bounds are required to
aid in narrowing to a possible solution), followed by the initial value being used and the final value after
regression. In some situations it may be observed that the Final Value equals that of the Lower or Upper
Bounds. In these cases, if the match is not sufficient then it may be necessary to move the bounds to allow
for a larger range of possible values to be explored.

In this case, the Pc and Tc values were not changed. Instead, the Interaction Coefficient (denoted by the
variable name PVC3) was all that was required to find a suitable solution.

16. The lower section displays any experimental data which is being matched. A Before Regression, After
Regression, overall Error Reduction and Final Error are shown for each experimental data point.

Please note that the Error After column is in decimal form. This means that if a value of 3E‐05 is shown
this refers to an error of 3E‐03% (or 0.003% error).
79

In this example, the Final Error after regression was 0.0032%. This is an acceptable error for this
parameter. Being of an acceptable error coupled with the final values for the regression parameters not hitting
their bounds implies that this can be considered a valid match.

17. After a valid match has been identified the model must be updated in order to apply the changes to the
parameters which were regressed. In this instance, the only parameter which was altered for the match
was the Interaction Coefficient.

To update, after running navigate to File Update Component Properties. After Updating, the
Interaction Coefficient will now be show the regressed value. Save the model as
WINPROP_EXERCISE_1_NOLUMP_2PHASE_SATPRESS_MATCHED.dat.

Note on Updating After Regression:

Please note that the model cannot be saved prior to updating, as in order to update WinProp looks for the
output with the same name as the dataset. If the model has been renamed after running WinProp will not be
able to update it without running it again.

Lumping the Fluid into Pseudo‐Components


Due to the complexities of numerical simulation methods it is not feasible to run models with 30 components. As such,
a method for combating long run times is to lump similar components together into pseudo‐ components. Pseudo‐
components consist of properties from the components which they are defined from. These components, however,
have internal interactions which would no longer be accounted for once lumped together. As such, regression is
usually done after lumping components to tune the EOS to laboratory data.

Lumping schemes should be based on the process. For example, in a heavy bitumen reservoir only 2 pseudo‐
components may be required (a dead oil and a solution gas) since distillation is not typically necessary to be
modeled. In lighter reservoirs, though (especially with coupled EOR processes), it is likely that more components
may be necessary for modelling the intermediate phase transitions which occur. This is especially true with processes
containing CO2 injection as the CO2 may vaporize some of the lighter ends while becoming miscible with heavier
components.

1. Start by saving the updated model as: WINPROP_EXERCISE_1_LUMPING.dat.


2. Disable the Regression by Right‐Clicking on the Regression Parameters form and selecting Disable
Regression. Also Right‐Click on the Saturation Pressure form and select Exclude to temporarily
remove it as well.
3. After the first Two‐Phase Envelope form add a Characterization form for Component Lumping. In this
form there are two methods for lumping. The first method allows WinProp to generate an appropriate
lumping scheme. The second method allows the user to control the lumping. Start by selecting the
Program Generated Lumping (default).
4. Save the model and Run it. Navigate to the Simulation Output and search for Component Lumping to
find the lumping scheme chosen. As can be observed WinProp lumped the components into 12 Pseudo‐
Components. This has too many components for the desired run. Another issue with this is it has lumped
CO2 with other components. As CO2 will be injected by itself it needs to remain a separate component.

As such, navigate back to the Component Lumping form and choose the second option to manually define
the lumping scheme.
80

5. Manual Component Lumping works by grouping all of the components with similar “Scheme” numbers in
the list. The numbering is ordered from smallest to largest; therefore, it is important to organize
components such that one’s which should be lumped are next to each other. If components need to be
reorganized this can be done in the Component Selection/Properties form.

For this exercise there is no need to re‐organize the components. Instead define the lumped components by
creating the following scheme:

• 1st Component: CO2 (Click on CO2)


• 2nd Component: N2 – CH4 (Click on CH4)
• 3rd Component: C2H6 – NC4 (Click on NC4)
• 4th Component: IC5 – C07 (Click on C07)
• 5th Component: C08 – C12 (Click on C12)
• 6th Component: C13 – C19 (Click on C19)
• 7th Component: C20 – C30+ (Click on C30+)

The full lumping scheme is defined with a total of 7 post‐lumping components.


81

6. Save the model and Run it again. It can now be observed in the Simulation Output the new lumping
scheme. Double‐check the correct scheme has been applied. Also observe the before and after lumping 2‐
Phase Envelopes in the Results section.

New lumping scheme

Pre‐Lumping 2‐Phase Envelope


82

Post‐Lumping 2‐Phase Envelope

As can be observed, the 2‐Phase Envelope has shifted after lumping. Generally, in order to preserve phase
behavior during lumping the lumping scheme can be re‐done with more pseudo‐ components. In this case 7
components (proposed grouping) will be used but it is necessary to re‐tune the EOS for the lumped
components.

7. Update the Component Properties then Save the model as

WINPROP_EXERCISE_1_LUMPED.dat. Delete the Component Lumping form.

8. Include the Saturation Pressure form again (leave the Regression Parameters still Deactivated). Save and
Run the Model. Compare the calculated Saturation Pressure in the Post‐ Lumped scheme to the
Experimental value of 740 psi.

Matching Saturation Pressure for Lumped Fluid


It is necessary to re‐match the Saturation Pressure due to the lumping which has occurred. Lumped component
properties are a function of the properties of the components which comprise them. Internal interactions between
these components in the lumped component create a possibility that the lumped component does not directly
represent the behavior of these components. As such, it is often accepted that the properties of pseudo‐components be
tuned to achieve appropriate matches to laboratory data.
83

1. Start by saving the updated model as:


WINPROP_EXERCISE_1_LUMPED_SATPRESS_REGRESS.dat.
2. Enable the Regression Parameters form. As with the previous match for Saturation Pressure, select the
Critical Pressure and Temperature of the heaviest component (C20toC30) and the Interaction
Coefficient Exponent (Reference Matching Saturation Pressure for Non‐Lumped Fluid Section).

3. Save the model and Run it.

Analysis of the results will show that an acceptable match was found without the need for further changes.

Comparison of the 2‐Phase Envelopes before and after Regression will show that the envelope has again been
shifted. Comparison of the last envelope to the one prior to lumping will show an acceptable match (in particular
note the location of the critical point on each). Further regression with other data may improve this match.
84

2‐Phase Envelope After Regression

4. Update the Component Properties then Save the model as

WINPROP_EXERCISE_1_LUMPED_SATPRESS_MATCHED.dat.

Predicting Laboratory Experiments


If other laboratory experiments have been ran it may be of great benefit to add these into WinProp and observe how
close the EOS is to the actual laboratory results. In this example experiments were conducted for Saturation Pressure,
a Separator Test, a Constant Composition Expansion (CCE) Test, a Differential Liberation (Diff Lib) Test, and a
Swelling test. These experiments will be added to the WinProp model in order to obtain an idea of how close the
current EOS is to modelling the observed behavior.

1. After the second Two‐Phase Envelope form add a Separator Test (using the technique previously described
for “Add after…,” it will be located under Lab).

2. In the Excel file (FLUID_CHARACTERIZATION.xlsx) navigate to the “OIL CHARAC LAB


EXPERIMENT DATA” tab. This tab contains the laboratory experiments which were done for this
sample. The section labeled First Regression was completed in the previous section (Matching
Saturation Pressure for Lumped Fluid). The information under the Second Regression contains the
Separator Test information. Open the Separator Test form in WinProp and input the information given in
this section of the Excel file:
85

3. Save the model as WINPROP_EXERCISE_1_LUMPED_SEP_INITIAL.dat. After saving Run the


model by pressing the Play button.
4. Navigate to the Simulation Output after running and scroll to the very bottom of the file. At the bottom
will be the results of the Separator Calculation. Compare the Total Gas‐Oil Ratio (GOR), Oil Formation
Volume Factor (FVF), and API Gravity of this output to those in the Excel file (containing the results
from the lab). These values may appear similar to the following:

• GOR From Lab: 247


• GOR From WinProp: 314.34

• FVF From Lab: 1.18


• FVF From WinProp: 1.254

• API Gravity From Lab: 40.0


• API Gravity From WinProp: 40.36
86

As can be observed, work needs to be done in matching the GOR and FVF. The API Gravity may be able to
become a little better also.

5. To improve on this match the Separator Test will be regressed just like the Saturation Pressure was.
Right‐Click on Separator and select Cut/Delete. Right‐Click on the Saturation Pressure form within
the Regression block and select Paste After. The Separator should now be in the Regression. The
experimental data has already been added in Step 2.

6. Since some of the parameters chosen to match the Separator test may also affect the Saturation Pressure,
both forms must be included in the regression. As such, to preserve the match to the Saturation Pressure
change the Weight for the Saturation Pressure to 500 (12.5 times greater weighting that the GOR) and
change the Weight for Separator as following:

7. In the Component Properties tab (under Regression Parameters), select the following
parameters:
• Pc for the bottom 5 pseudo‐components (i.e. from C2HtoNC4 to C20toC30).
• Tc for the bottom 5 pseudo‐components (i.e. from C2HtoNC4 to C20toC30)
• Volume Shift for all of the components except CO2
• Molecular Weight for the heaviest component (C20toC30) (This is done since this pseudo‐
component includes the C30+ pseudo‐component and as such may contain some intrinsic
uncertainty as to the overall molecular weight and proportionality of the heaviest hydrocarbons.)

A total of 17 Parameters should be selected (make sure interaction coefficient parameter is not selected,
HcIntCoefExp-1).
87

8. To make it easier to find the Regression results remove the last Two‐Phase Envelope. This can be done by
Right‐Clicking on the Two‐Phase Envelope form after the Regression block and selecting Exclude.
This will gray‐out the form.

9. Save the model as WINPROP_EXERCISE_1_LUMPED_SEP_REGRESS.dat. After saving Run

the model by pressing the Play button.


10. Navigate to the Simulation Output Section and scroll to the bottom (since the second Two‐Phase Envelope
was excluded the Regression results are the last entry in the output).
88

Results from changing these will show a good improvement and are acceptable.

11. Navigate to File Update Component Properties in order to update the parameters with the values
determined through the Regression.

12. Save the model as WINPROP_EXERCISE_1_LUMPED_SEP_MATCHED.dat.

With the Saturation Pressure and Separator Test Experiments considered matched the other experimental
data can now be added. It is generally recommended to match in this described step‐ wise process, as a
previous match may be able to predict another experiment, such as Diff Lib or CCE in this example.

13. Begin by adding a CCE Experiment into the Regression after the Separator.

Fill in the form by copying/pasting the data columns from the previously mentioned Excel file tab and
specify temperature and pressure as shown below.
89

14. In a similar fashion add a Diff Lib Experiment after the CCE Experiment in the Regression, specify
temperature and fill‐in its data from the Excel file (note that in this form there are 2 tabs that require
data):
90

The box labeled Copy Main Table Contents may be used to fill‐in the top portion of this table but should
be verified by comparison to the Excel file. The bottom value for the Residual Oil Specific Gravity at std
Conditions will still need to be added.

15. As with the previous two experiments, also add a Swelling Experiment after the Dif Lib and fill‐in its data
as per the Excel file:
91

16. Swelling Experiments require the definition of an injected gas that is used to swell the oil. To define this
injection gas, navigate to the Composition form and Copy/Paste the Composition displayed in the Excel
File in the Swelling Gas Composition tab into the Secondary column (the Secondary column is used for a
stream being added to the native fluid, e.g. a gas being injected into a reservoir).

17. Keep the same parameters checked for the regression.


18. Save the model as:

WINPROP_EXERCISE_1_LUMPED_SEP_CCE_DIFFLIB_SWELL_REGRESS.dat and Run it.


Navigate to the results and analyze the new match (note: when matching large amounts of data, it may be
of more benefit to analyze the graphical comparison as well as the quantitative values in the Simulation
Output).
92

The slope difference in the relative volume curve makes the compressibility values different. This creates problems
matching the production and pressure history of the single-phase expansion stage. In the case of this example there
are 1775 psi between the initial pressure and the bubble point pressure therefore it is essential to keep the relative
volume curve match at pressures above bubble point as seen above.

Most of the values of the PVT studies are calculated through the EOS so very often it is not possible to obtain a
good match simultaneously for all the variables. Hence, according to the type of study for which the tuned PVT will
be used for it must be decided which experimental values will be prioritized in the matching process. In this case, we
will prioritize a better match of the relative volume curve from the CCE and the results of the GOR from separator
and Swelling test will be analyzed.

The results will show overall acceptable correlation to all of the laboratory data being matched. In particular, the
Saturation Pressure, Swelling Test, Relative Oil Volume, and GOR (Separator) which are the most important to
match in characterizing of an oil which is to be evaluated for CO2 EOR. Matching of the viscosity vs. pressure curve
will be made next.
93

19. Update the Component Properties and Save the model as:

WINPROP_EXERCISE_1_ALLEXPERIMENTAL_MATCHED.dat

Matching Viscosity Data


Viscosity data for non‐thermal applications is typically obtained through Differential Liberation Experiments.
Viscosity is a function of the other EOS parameters; however, the EOS is independent of viscosity (meaning regression
on viscosity will not alter the EOS match). This is because viscosity is found via a separate correlation.

1. Navigate to the Differential Liberation form. Under Pressure Levels tab make the Weights for
every column 0 except for Oil Viscosity. Increase the value to 10.

2. Copy and Paste the Viscosity found in the Excel file (under the OIL CHARAC
VISCOSITY tab) into these columns.

3. Navigate to the Regression Parameters window and Uncheck all of the Regression Parameters. To
verify everything is unchecked make sure the Number of regression parameters is shown as 0.
94

4. In the Viscosity Parameters tab check all of the parameters for the Jossi‐Stiel‐ Thodos (JST) Viscosity
Correlation. This correlation is a function of Critical Volume. As such it may be necessary to regress the
Critical Volume through this tab to achieve a match. If necessary, this will be done at a future step.

5. Save the model as WINPROP_EXERCISE_1_VISCOSITY_REGRESS.dat. Run the model and


observe the match to viscosity in the output.

If a match is determined to be suboptimal then the Critical Volumes of the components may be added to the
regression. In this particular case, adding the critical volumes into the regression slightly improves the viscosity
match.

6. In the Viscosity Parameters form check the boxes to enable Critical Volume Regression for the
following parameters:
95

7. Once an acceptable match is found in Step 5, Update the Component Properties and Save the model as
WINPROP_EXERCISE_1_VISCOSITY_MATCHED.dat
96

Exercise 7: Petrophysical Investigation Using Well Log Analysis

AIM: To understand the workflow of Geolog software and carry out Geolog Deterministic (Determin) and GeologProbabilistic
(Multimin) Analyses.

I. Deterministic Method

Pre Calc
• Borehole temperature and pressure profiles

• Temperature (FTEMP): TLI/BLI, SONDE, GRADIENT

• Pressure (FPRESS): MUD_DENS, GRADIENT


97

• Downhole mud properties from sample measurements

• Resistivities (RM, RMF, RMC)

R R Tsample 21.5 0
fluidT2 fluidSample
C
T2 21.5
3.562 log R75 0.0123
x
0.955
Salinity ppm @75 10x

Archie’s Equation n
Sw

II. Probabilistic Method


Interpretation Model
98

t = P*v
find v, knowing t, P - “Multimin”
PROCEDURE:
1. Open the GEOLOG software.

2. Give a name of the project


99

3. Select and open project option

4. Import the LAS file by clicking FILE CATALOG OPTION.


5. Now select and open the well option to do petrophysical interpretion
100

6. Now select the well by click right arrow

7. Click on LAYOUT OPTION TO CREATE LOG GRAPH PAPER


101

Note-:First depth track will come then by right click select this chronology to get log graph paper Right click—insert-
insert wireline

8. To get value of log in this graph paper do double right click on upper blank page of graph paper

Note: By doing this right side(below) of option will open and by providing the detail gamma ray value wiil come inlog
paper(left side below)
102

9. By following same 7 number procedure import other log details such as density,newtron,caliper,resistivity log.

10. Now using histogram find the value of gr max(shale)and gr min(sand) value.

11. Put above value In below table opened by selecting determin option and then below right side result will comewhich is
shale volume.
103

12. Again from deterministic option,open the below table to calculate porosity using density log
104

13. Again from deterministic option,open the below table to calculate water saturation using resistivity log
105

14. From pay summary select pay sensitivity and pay summary option to get a reservior zone
106

Exercise 8: Polymer EOR


AIM:

In this exercise, polymer injection will be performed using the black oil simulator, IMEX, and the options available for polymer
injection will be explained. As a final point, an optimization of the polymer injection strategy will be carried out using CMOST.

PROCEDURE:

1. Go to the Required Data / IMEX folder and open the Base Model_Prediction.dat model in BUILDER
version 2019.23 onwards and familiarize yourself with the model.
2. Go to the Components section and click on Process Wizard…
3. In step 1, select Polymer Injection and click Next.

4. In step 2 disable all available options. Click on Next.

5. In step 3, the information related to the viscosity of the polymer based on its concentration or its shear rate
/velocity is required. Initially, in this exercise we will not include the effects of the shear rate or velocity andwe will
leave the viscosity data as a function of polymer concentration as suggested by the program. Be

161
107

careful to leave the Create New PVT structure for polymer option enabled to allow fluid model creation inIMEX.
Click on Next.

6. In step 4 click Finish.

Flux Sector Creation


The objective of this section is to build a sector model where polymer injection will be carried out to reduce run times. The
flux sectors option will be used where the information related to the input / output flux of a sector will be recorded during
the full field run, and will be used to reproduce on the edges of a sector model. The creationof the flux sector model is not
yet compatible with Builder, which is why it will be done in cEdit. However, as a visual aid, a report sector will be
generated to associate it with the flow sector.

7. Go to Tools / Polygon Manager, you will notice that there is an existing polygon called Submodelo.
108

8. Notice that there is a Sector defined with the name Submodelo as well. Save the file as FullField.dat and close
Builder.
9. Open the model in cEdit. Search the keyword ‘MODEL POLY’, copy and paste the below flux boundary keywords
right before it.

10. Save the data file and run the model, it should generate “FullField.flxb” file. To save time this file is provided in
Required data folder.
11. Open ‘FullField.dat’ in cEdit and make the below modifications to the flux boundary keywords, save the file as
Submodel.dat and run the model.

12. Open the files FullField.sr3 and submodel.sr3 in RESULTS and compare the results for the sub model sector, in the
lower graph you can see the cumulative oil production for the sub model sector for both files and the pressure of the
sector, note that the results are identical, therefore, the sub model can be used to make production forecasts without
the need for further match.
109

13. 3D view of the model shows that the rest of the model no longer appears in submodel.sr3 and only thesector used
is visible.

Exercise 8.1. Water injection

In this section, the sub model will be used to make a water injection forecast strategy that will be compared topolymer
injection in later steps.

14. Define the new well with the name Injector, of type INJECTOR UNWEIGHT, on the date 2021/01/01, asshown
below:
110

15. On the Constraints tab, check the Constraint definition box and add an operational control of type OPERATEMAX
STW 1000 bbl / day.

16. On the Injected Fluid tab, make sure you are injecting the WATER phase.
111

17. Go to Well / Well events and using the filter at the top, select the injection wells. Select the event created ondate 2021-
01-01 from the Injector well (Constraints and injected fluid) and go to Tools / Copy events using filter.

18. In the Wells tab select the injection wells.


112

19. In the Dates tab find the date 2021-01-01 and enable the “Create new dates for selected wells if they do notexist”
option. Click the Search & Add button and if everything is correct click OK.

20. To include perforations, go to Well / Well Completions (PERF). You must add a drilling event date by clicking the
arrow button at the top. Selecting the option Completion - Add New. Select the starting date of the well (01/01/2021).
113

In the Perforations tab add a new row with the button. Enter the location of the well in cells 31 98 1:23 and
press ENTER. Click Apply and OK.

21. Save the model as WaterInjection.dat. Run it with IMEX.


22. Open RESULTS and plot oil production from the field:

Note that with the injection of water additional oil is recovered.

Exercise 8.2. Polymer injection


In this section the same model of water injection will be used, but this time it will be alternated with slugs of polymer
solution to improve the volumetric sweep efficiency.
24. Open WaterInjection.dat in Builder, go to Components / Process Wizard and click Next until you get to step 4,
organize the events by date and select all the wells at 2021-01-01 and assign a polymer concentration of0.075% wt for
the indicated wells. Click Finish
114

Normally, polymer injection is done in slugs, alternated with water injection. In this case, we will use the Triggersoption,
which executes an action if a specified condition is met. We will use the time from the start of the trigger definition as a
condition to alter the polymer and water injection periods through the concentration of the injectedfluid. Go to Wells &
Recurrent / Trigger New, the trigger name is Polymer_ Batch1, the definition date is 2021- 01-01 and it will be applied
when the Elapsed (time) reaches a TRELTD: Time since the trigger definition (time from the start of the trigger) of 30
days. Once this condition is met, the polymer concentration is changed to zeroto inject 100% water, this is done by adding
the following keywords under Action:

INJECTOR UNWEIGHT 'Injector'

INCOMP WATER 0.0


115

25. Click apply and Ok. Now expand the trigger then right click and select New Child.

26. The name of the trigger is Water-Batch, it will be applied when the time since the activation of the trigger reaches to
365 days. Once this condition is met, the action will be taken to change the polymer concentration to 0.264799 lb / bbl to
start the injection of the second polymer slug, this is done by adding the following keywords:
116

27. Repeat steps 9 and 10 to start the second injection of 100% water within 30 days.
117

28. Add all the injectors into trigger block via Builder by adding new child or via text.

TRIGGER 'Polymer_Batch1' ON_ELAPSED 'TIME' TRELTD > 30


INJECTOR UNWEIGHT 'Injector'
INCOMP WATER 0.0
INJECTOR MOBWEIGHT Pozo-Iny001'
INCOMP WATER 0
INJECTOR MOBWEIGHT Pozo-Iny002'
INCOMP WATER 0
INJECTOR MOBWEIGHT 'Pozo-8_Iny'
INCOMP WATER 0

TRIGGER 'Water-Batch' ON_ELAPSED 'TIME' TRELTD > 365


INJECTOR UNWEIGHT 'Injector'
INCOMP WATER 0.264799
INJECTOR MOBWEIGHT 'Pozo-Iny001'
INCOMP WATER 0.264799
INJECTOR MOBWEIGHT 'Pozo-Iny002'
INCOMP WATER 0.264799
INJECTOR MOBWEIGHT 'Pozo-8_Iny'
INCOMP WATER 0.264799

TRIGGER 'Polymer_Batch2' ON_ELAPSED 'TIME' TRELTD > 30


INJECTOR UNWEIGHT 'Injector'
INCOMP WATER 0
INJECTOR MOBWEIGHT 'Pozo-Iny001'
INCOMP WATER 0
INJECTOR MOBWEIGHT 'Pozo-Iny002 '
INCOMP WATER 0
INJECTOR MOBWEIGHT 'Pozo-8_Iny'
INCOMP WATER 0

END_TRIGGER
END_TRIGGER
END_TRIGGER

30. Save the model as Polymer_Injection.dat and run the model in IMEX.
31. Open RESULTS and compare the case of water injection Vs polymer injection.

Note that injection of 2 polymer slugs increases oil production compared to continuous injection of water.
118

Exercise 8.3. Polymer Injection Including Adsorption


This exercise will include the effect of the adsorption of the polymer on the rock surface, the pore volumeaccessible
by the polymer and the residual resistance factor.

32. Open the case Polymer_Injection.dat in Builder. Go to Components / Process Wizard and in step 2 enablepolymer
adsorption on rock. Click on Next.

33. In step 3 enable Create new PVT structure for polymer to rewrite the information related to the polymer.

34. Step 4 is related to the adsorption of the polymer on the rock. Copy the data shown in the following image:

35. Click Next and Finish.


36. Save the model as Polymer_Injection_Adsorption.dat and run the model in IMEX.
37. Open RESULTS and compare with the previous cases. Note that oil production is affected because thepolymer is
being adsorbed on the rock.
119

Exercise 8.4. Polymer Injection Including Polymer Degradation

IMEX 2019.23 and higher provides a simplified method for modeling polymer degradation based on a pseudo-reaction and
assuming that water is the only product of this reaction.

38. Open Polymer_Injection_Adsorption.dat case in Builder and go to Components / Process Wizard, in step2 select
Polymer quantity decreases with time and assign a half-life time of 45 days. Click Next and Finish.

39. Save the model as Polymer_Injection_Degradation.dat and run the model in IMEX.
40. Open RESULTS and compare with the previous cases.
120

Exercise 8.5. Polymer Injection Including Speed / Shear Stress effect


In this exercise we will add the dependency of the polymer viscosity on the shear rate or velocity and we willanalyze the
available options.

41. Open the model Polymer_Injection_Adsorption.dat in Builder and go to Components / Process Wizard. Go to step 3
and check “Create new PVT structure polymer” box, on the Select option for velocity / shear effects on polymer
viscosity tab select Function of shear rate. Click Next and then Finish.

42. Save the model as Polymer_Injection_Shear.dat and run the model in IMEX.
43. Open RESULTS and compare the case with the previous models.
121

Exercise 8.6. Polymer Injection Including shear rate/ velocity dependence and Sor
reduction

Some sources suggest that polymer injection can alter the capillary number enough to have a reduction in residual oil. Sor
reduction is performed through interpolation of relative permeability curves, in which the interpolation is based on the
concentration of the polymer in lb / bbl.

44. Open the model Polymer_Injection_Shear.dat in Builder and go to Components / Process Wizard. In step2 check
the SOR reduction due to polymer box. Click on Next.

47. In step 3 select the three rock types in the model and click Next. Until you reach the Finish button.

45. Go to Rock-Fluid / Diagnostic Plots and view the created interpolation curves.
122

46. Save the model as Polymer_Injection_Shear_SOR.dat and run the model in IMEX.
47. Open RESULTS and compare the case with the previous models.
123

Exercise 1.7. Polymer Injection Including effect of shear rate / velocity and salinityeffect on
polymer viscosity

The purpose of this section is to include the effect of the shear rate or velocity and salinity in the viscosity of thepolymer
solution.

48. Open the Polymer_Injection.dat model in Builder and go to Components / Process Wizard and check the box
Polymer viscosity is a function of Salinity and assign an initial salt concentration in the reservoir of 10000ppm. Click
on Next.

49. In step 6 sort the events by date and select the ones belonging to 2020 -01-01
124

50. Save the model and close Builder. Open the data file in CEdit and search for TRIGGER. Replace INCOMPWATER
0.0 with INCOMP WATER 0.0 1.0.

51. It is not possible to run the effect of salinity with the flow sector because the full field model does not containsalinity
information at initial condition. Disable flux boundary input in cEdit.
52. Save the model as Polymer_Injection_Salinity.dat and run the model in IMEX.
53. Open RESULTS and compare the case with the previous models.
125

Exercise 1.8 Optimization of Polymer injection strategy.


CMOST
CMOST AI is a state-of-the-art reservoir engineering tool that uses artificial intelligence (AI) and a
learning machine to identify the best solution for your reservoir, combining advanced
statistical analysis and unbiased data interpretation along with its engineering expertise.

CMOST AI works in conjunction with CMG -IMEX, GEM, and STARS reservoir simulators to
perform tasks such as sensitivity analysis, history match, optimization, and uncertainty analysis.

Creating a Project
126

A CMOST project consists of a group of studies, for example, sensitivity analysis, history
match, optimization, uncertainty analysis, or a user-defined study, that are performed for a
simulation model or models.
In this section

➢ We will create a CMOST project


➢ We will identify the files that make up a CMOST project

54. Open Launcher and to start CMOST, double-click the icon . A CMOST opening screen will appear
while the application loads, then the initial Start Page will be displayed.
127
128

58. Click OK to create the project.


59. In the new window that will appear you will be able to observe and edit the project you have just created.

Creating a Study
A study contains all the information as well as the results of a particular task. A study is defined bythe
configuration of:

• Type of input data required for the study


• CMOST engine used to process input data
• Types of output data produced by the study

Configurations can be copied from one study to another, as long as they are within the sameproject. A
study is made up of experiments. Each experiment is defined by the set of input parameters and the
target output functions.

Adding an Optimization Study


In this section of the course, the optimization of the polymer injection strategy will be implemented, using theCMOST
optimization module, based on the maximization of the net present value, which is a function of the costs and the
volume of hydrocarbons recovered. The operator is interested in finding the location of a new injector well, polymer
concentration, duration of the water injection and polymer that is economically viable.

62. Click on New Study


63. Create a new study using File / New / Study. Specify Optimization as the name of the study. Brows for
Polymer_Injection.dat, and select Optimization as a Type and press OK.
129

Fundamental Data

The graphs that the user would like to visualize based on the simulation results are
defined in the fundamental data section. Frequently, most of the simulation results files
are removed after being analyzed by CMOST. Fundamental data stores some of the
information from the simulation results so that they can be reviewed, even after the
original files have been removed.

The fundamental data can be of three types:

Original Time Series: Information obtained directly from the simulator's SR3 files.

User-Defined Time Series: Information estimated by the user from the data available
in the simulator's SR3 files.

Property vs. Distance Series: Data obtained from SR3 file and compared with data
from a well log file.

In this section

We will define the original time series that we want to visualize in the study

We will save the studio

In this particular case, we are interested in observing the cumulative oil production, water and gas in the sectorcalled
Submodel, as well as the cumulative injection of water and mass of injected polymer.

64. Go to the Fundamental Data - Original Time Series section and add the following output vectors to store usingthe Insert
button located in the upper right:

• SECTORS - Submodel - Oil Prod Rate SCTR


• SECTORS - Submodel - Oil Prod Cum SCTR
• SECTORS - Submodel - Water Prod cum SCTR
• SECTORS - Submodel - Polymer mass SC SCTR
• SECTORS - Submodel - Polymer Inje Cum SCTR
• SECTORS - Submodel - Polymer Prod Cum SCTR
• SECTORS - Submodel - Water Inje Cum SCTR
130

Parameterization

In the parameterization section we can define the parameters of the simulation model
that we want to be evaluated, in addition to defining strong constraints and pre -
simulation commands, when necessary.

To evaluate the parameters, they must have been previously defined in the master or
CMOST file. The master file is aversion of the base file (.dat), which is modified to enter
the instructions that tell CMOST where to replace the input parameter values.
CMOST instructions can be entered in the master file
Using cEdit
Using Builder
Manually, using a text editor

In this section

➢ We will create parameters using cEDIT


➢ We will create parameters using Builder
➢ We will define the range of values in which the parameters will be evaluated

Creating parameters using cEDIT

cEDIT is a tool for viewing and editing data files (.dat), CMOST master files (.cmm), as well as other
compatible formats (i.e. .inc, .out, .log). The main advantage of cEDIT over other text editors is the
automatic processing of the data as it is loaded. With this functionality,
131

cEDIT automatically hides large sections of data and presents them in a single line that shows a
preview of the hidden content. This facilitates navigation in the file and improves access to the
required information, in addition to allowing easier and more convenient editing.

cEDIT can be used to:


➢ Quickly modify and browse the files in the dataset.
➢ Create, edit and extract include files
➢ Find, create and delete CMOST parameters
➢ Insert comments in .dat and .cmm files
➢ Comment / uncomment multiple lines in one file
➢ Toggle highlighting and syntax highlighting in data sets
➢ Find and replace text
➢ Select data blocks within a larger table
➢ Edit multiple dataset lines at the same time with block selection
➢ Open different views of the same file in split horizontal and vertical views
➢ Edit WinProp PVT files
➢ Compare the content of large files
➢ Marker lines
➢ Find simulator errors in the dataset
➢ Delete data from a large array from the dataset
➢ Review changes in the dataset
➢ View content from read-only files
➢ See simulator keyword descriptions
➢ Navigate to different sections of the dataset.
➢ Find the type of simulator
➢ Open the Windows folder where the data set files are located
➢ Set the desired user preferences for the program

Of the parameters selected to evaluate in the optimization, the following lists will be defined with the help ofcEDIT:

➢ Polymer cycle time


➢ Water cycle duration
➢ Polymer concentration
➢ Injector well location
65. In the Parameterization section, the parameters associated with the polymer injection strategy will be defined as
variables to be optimized. Go to Parameterization / Parameters and click on the cEdit icon. This will open the *
.cmm file

66. Search for the keyword TRIGGER and select the number 30 corresponding to the duration of the polymer slugs.
Right click and select Create Parameter, name it polymer_slug_time. Click on OK. This will make the polymer slug
duration a CMOST variable.
132

67. Now select 365 corresponding to the water injection time. And add a CMOST variable name it
water_bache_time. Copy and paste the CMOST statement into the second trigger.
68. Select the polymer concentration 0.264799 and add a CMOST
variable, name it Polymer_Concentration

69. Go to the “Injector” well perforations and select the location at I ( 31) and add a CMOST variable, name it
Location_I.
70. Select the location in J (98) and add a CMST variable, name it Location_J.
133

71. Delete the LAYERXYZ keyword because it will not be valid when the location of the well is changed.

72. Save and close cEdit.

Creating parameters using Builder


Of the selected parameters to evaluate in the optimization, Water injection rate will be defined via Builder:

73. On the Parameters window, click on the Builder button.


134

74. In the pop-up window look for the path Root Wells & Recurrent / Wells / Events / Constraints and lookfor the
event Injector: Injector: 2021-01-01, and select the water injection rate (1000) and click on the Add button. In the
upper part, name it Water_Rate.

75. Go to the event Injector: Well-Iny001: 2021-01-01 and in the box STW 1000, from the drop-down list select
Water_Rate. Repeat this step other two injectors, Iny001 and Iny002 at 2021-01-01
135

76. To save the changes made to the master file, click the Save Changes button located at the bottom of thewindow.
Accept the overwrite message that will appear by clicking Yes.
77. Click OK in the two windows that will appear.
78. To view the parameters defined using Builder and cEdit, you need to import them. For that click on theImport ...
button . Now the 6 parameters that will be used in the sensitivity analysis will appear.

79. The parameters are added and next step is to specify source (type) and define the minimum and maximum values
that will be used for each of them. Select Polymer_Concentration and change the Sourceto Continuous Real. In the
Data Range Settings section set Lower Limit to 0 and Upper Limit to 0.264799. Repeat the procedure for each
parameter individually and insert the variable types and limit values accordingto the values shown below:

Property Parameter Variable Minimum Maximum


Polymer Concentration Polymer_Concentration Continuous 0 0.264799
Location of Injector well in I Location_I Discrete Integer 29 57
Location of Well injector in J Location_J Discrete Integer 76 102
Time water slug water_bache_time Discrete Real 30 720
136

Time Polymer Slug polymer_slug_time Discrete Real 15 120


Water Injection Rate Water_Rate Discrete Real 0 2500

In CMOST, the same parameter name can be used at various locations in the same
master file. When CMOST is run, it will give the same value at each of those locations.
CMOST parameters are csaesnesitive. No spaces should be inserted between the
CMOST commands. When the parameters are part of a formula, they do not require
the definition of a default value (Example: <cmost> Par1 + Par2 </cmost>).

Adding New Objective Functions


In this section we will see how to add a global function as an objective function for the optimizationstudy.

For the optimization study we are going to us Field NPV that is consists of: Cost of water injection, cost of polymer,cost of
water treatment and crude oil price.
137

80. Go to the Objective Functions / Characteristics, Date Times section and insert a Fixed Date times. Nameit V2021-
01-01 and select 2021-01-01 as a Date Time Value.

81. In the Objective Functions section go to Net Present Values. Insert a new local net present value function,using the
Insert button, name it Cost_Polymer. This variable is associated with the costs related to the purchase of polymer for
injection. Assign MMUSD units to it. The date to bring the net present value is the date v2021-01-01. In the Property
Filter box change to All Properties.

82. Insert a Continuous Cash Flow Terms, using the Insert button located at the bottom. Map them to SECTORS
source type, Submodel source name, Polymer mass SC SCTR property, start time is V2021-01-01, unit value is -
0.75 USD / lb polymer and use 1e-6 as conversion factor, in order to have the NPV in MMUSD.

83. Generate three new local NPV functions with the information shown in the table below.
138

Local VPN Source Source Unit


Property
Function Type Name Value
Cost_Water_Inj SECTORS Submodelo Water Inj Rate SCTR -0.5
Cost_Water_Prd SECTORS Submodelo Water Prod Rate SCTR -0.2
Oil_Price SECTORS Submodelo Oil Prod Rate SCTR 60

84. Click on Engine Settings and select FieldNPV as a Global Objective Function and set the direction to
Maximize.

85. Go to Simulation Settings and select the scheduler. Enable run on your local computer. Depending on the
computational capacity of your equipment, select the number of simultaneous runs allowed (Max Concurrent Jobs) and the
number of processors to use for each run (Number of CPUs per job). The IMEX version to use could be 2019.10
onwards.
139

Note: Before running CMOST, copy the file “FullField.flxb” into CMOST directory “Optimization.cmsd”

You might also like