Anda di halaman 1dari 104

# Modeling SAGD in

STARS

Tutorial

2012

2 | P a g e

Exercise 0 Creation of Cyclic Steam Base Model ...............................................................................4
Defining Reservoir Properties ................................................................................................................... 4
Defining Component Properties ............................................................................................................... 7
Defining Rock-Fluid Properties ................................................................................................................. 9
Defining Initial Conditions ....................................................................................................................... 11
Defining Numerical Controls ................................................................................................................... 11
Defining Wells and Constraints ............................................................................................................... 12
Defining Simulation Results Outputs ...................................................................................................... 17
Exercise 1 Determining Appropriate Operating Constrains .............................................................. 19
Altering Model Volumes to Account for Element of Symmetry ............................................................. 19
Exercise 2 Defining Circulation Preheating ..................................................................................... 24
2A- Defining Circulation Heating using HEATER ..................................................................................... 24
2B- Defining Circulation Heating using Heater Wells (HTWELL) ............................................................. 30
2C- Extracting a 2D Submodel ................................................................................................................. 31
Exercise 3 Dilation/Recompaction .................................................................................................. 34
Adding Dilation/Recompaction Through Builder .................................................................................... 34
Exercise 4 Dilation with Permeability Dependence ......................................................................... 37
Adding Permeability Dependence through Builder ................................................................................ 37
Exercise 5 Dilation through Geomechanics ..................................................................................... 38
Enabling Geomechanics in Builder .......................................................................................................... 38
Exercise 6 Vertical Permeability Variation ...................................................................................... 42
Altering Vertical Permeability ................................................................................................................. 42
Exercise 7 Top Water ..................................................................................................................... 43
Exercise 8 Bottom Water ............................................................................................................... 45
8A- Adding Bottom Water ...................................................................................................................... 45
8A- Adding Bottom Water ...................................................................................................................... 50
3 | P a g e

Exercise 9 Mobile Water ................................................................................................................ 52
Exercise 10 Top Gas ....................................................................................................................... 54
10A & 10B- Adding Top Gas .................................................................................................................... 54
10C- Simulating No Gas in the Model (Dead-Oil System) ....................................................................... 56
10D- Simulating High Dissolved-Gas Content in the Model ................................................................... 57
10E- Simulating High Dissolved-Gas Content in the Model .................................................................... 60
Exercise 11 Temperature and Compositionally-Dependent Relative Permeability ....................... 61
11A- Adding Temperature Dependence ................................................................................................. 61
11B- Adding Compositional Dependence ............................................................................................... 63
Exercise 12 Importation of a Heterogeneous Geologic Model via RESCUE ....................................... 66
Importing RESCUE Model ........................................................................................................................ 66
Defining Reservoir Properties ................................................................................................................. 70
Exercise 13 Addition of a Semi-Analytical Wellbore Model ............................................................. 79
13A- Defining a SAM Model .................................................................................................................... 79
13B- Adding a Pump to SAM ................................................................................................................... 82
Exercise 14 SAGD Modeling with FlexWell Model ........................................................................... 83
Defining FlexWells for Circulation ........................................................................................................... 83
Defining FlexWells for Circulation ........................................................................................................... 92
Case 15- ES-SAGD ............................................................................................................................. 98

4 | P a g e

Exercise 0 Creation of Cyclic Steam Base Model
The purpose of this exercise is to utilize Builder to create a 3D Base Model that will be used in
evaluating the different capabilities of STARS in modeling SAGD operations. This Is done
through the tutorial exercises that follow.

The model has 1000 m long horizontal wells. The model size is 30 m thick and 50 m wide. This
model assumes that the well pair is located between two other well pairs defined by 100 m
spacing. Since there will be other steam chambers growing on each side of the modeled well
pair, it is assumed there is a no-flow boundary half-way between the well pairs.

Based on this no-flow boundary assumption the total flow length would be defined as 50 m on
each side of the well pair (100 m total). Due to the model being homogenous and uniform it
can be further assumed that the steam chamber development will be the same on each side,
allowing for just one side to be modeled (i.e. 50 m). This is defined by an element-of-symmetry

Defining Reservoir Properties
1. Double click on Launcher to activate the CMG interface GUI.

2. Open BUILDER by double clicking on the appropriate icon in the Launcher.

3. Choose:
STARS Simulator
SI Unit
Single Porosity system
Start date 2009-01-01
Click OK, verify the settings and Click OK again

5 | P a g e

4. Under the Reservoir Menu expand the Create Grid Section and choose Cartesian.
Enter the values as shown below (note the for the Dimensions the first number is the
number of gridblocks followed by the desired dimension in meters):

5. Open the Specify Properties window and input the following values:
Grid Top 500 m Layer 1
Grid Thickness 1 m Entire Grid
Porosity 0.3 Entire Grid
Permeability in I 1000 md Entire Grid
Permeability in J = Perm I Entire Grid
Permeability in K = Perm I Entire Grid
Temperature 12
o
C Entire Grid
For a shortcut to set Perm J and K = Perm I simply right-click on Entire Grid for Perm J and select
EQUALSI from the dropdown. Repeat for Perm K.
6 | P a g e

6. After hitting OK twice you should now have a viable 3-D Grid. This model currently has
20 grid blocks along the length of wells (each 50 m in thickness).

7. To define Thermal Rock Properties go to Thermal Rocktypes in the Reservoir Section.
Add a new Rocktype by clicking on the sideways triangle at the top of the window and
enter the following in the Rock Compressibility Tab:
Porosity Reference Pressure 3100 kPa
Formation Compressibility 1.0 e-06 1/kPa
Next go to the Thermal Properties tab and insert the following data (make sure to check
COMPLEX Thermal Conductivity Phase Mixing):

7 | P a g e

8. Lastly, go to the Overburden Heat Loss tab and enter the following values (the over and
under burden is being defined as having the same thermal properties as the reservoir
rock):

9. Save the dataset as EXERCISE_0_BaseCase.dat.

Defining Component Properties
1. The first step in doing this is to import proper fluid properties. To do this, go to the
Components section of Builder and select Import WinProp-generated Model. Find the
WinProp file generated on Day 1 called Live_Oil2_PVT.str. Press OK to import it.

8 | P a g e

2. The mole fractions of C
1
and Heavy Oil need to now be defined throughout the
reservoir. To find these values you can right click on the white space on the tree menu
(as shown below) in the Components section and select Display Dataset for Section.

3. In the window that appears the first two sets of data are the values that are required.
Jot down these numbers down somewhere and click OK to close the window.

4. Under the Reservoir section open the Specify Properties window. Find the Array
Properties for Oil Mole Fraction (C1) and (Heavy) and insert these numbers for the
Whole Grid.

9 | P a g e

5. Click OK. Save the dataset.

Defining Rock-Fluid Properties
1. Go to the Rock-Fluid Properties and click on Create/Edit Rock Types. In the window
that pops-up click the sideways triangle and choose New Rock Type.
2. Click on Tools and select Generate Tables Using Correlations.

10 | P a g e

3. In the Relative Permeability Correlations window input the following information to
define the Relative Permeability Curves and click Apply and OK:

4. For Smoothing method for table end-points choose Quadratic Smoothing for both the
Oil-Water Table and the Liquid-Gas table.

11 | P a g e

Defining Initial Conditions
1. Go to the Initial Conditions Section and open associated window. Use the default of
Depth-Average Capillary-Gravity Method for Vertical Equilibrium Calculations. The
remaining values should be inserted as follows. Click Apply and OK:

Defining Numerical Controls
1. Open the Numerical Controls window and insert a value of 0.01 day for DTWELL. Click
Apply and OK.

12 | P a g e

Defining Wells and Constraints
1. SAGD models use an Injector located above a Producer. Because of this we need to
define 2 wells in this model. To do this, go to the Wells and Recurrent Section and
select Well New.
2. First define the Production well. Name the well PRODUCER with Type: PRODUCER and
a Fraction of 0.5.
This fraction value dictates that only half the flow rates and well index will be applied to
the well. This is because the model being used is only taking into account half of the
well, and thus the element of symmetry is half (0.5 or 50%).

13 | P a g e

3. Under the Constraints tab insert two operating constraints, one for STL surface liquid
rate MAX of 600 m3/day and one for BHP bottom hole pressure MIN of 3000 kPa.
Select CONT REPEAT under Action.

4. After this is complete Click OK.
5. Add another well in the same way with the name INJECTOR, Type: INJECTOR
MOBWEIGHT IMPLICIT, and Fraction 0.5:

14 | P a g e

6. Under Constraints set the STW surface water rate MAX of 300 m3/day and BHP
bottom hole pressure MAX of 4000 kPa (both on Action: CONT REPEAT):

7. Since this is an injector details on the Injection Stream also need to be defined. Click on
the Injected Fluid tab and define the following:
Injected Fluid Water
Mole Fraction 1 (Water)
Temperature 250 C
Steam Quality 0.8

15 | P a g e

8. The well perforations need to be defined before the Wells and Recurrent Section can be
considered complete. Under the Wells and Recurrent Section open the Well
Completions (PERF) window. In this window under the General tab for the Injector well
change the Geometry Direction to J Axis. Select LAYERXYZ apply only with GEO and
GEOA for the Use layer IJK directions or XYZ geometric data. Click Apply and Repeat
for the Producer well.

16 | P a g e

9. To define the perforations go to the Perforations tab. Click on the button and
insert the number 50 1:20 30 for the Producer and 50 1:20 25 for the Injector. press
Apply and OK after this is complete.

10. Dates need to be added to the dataset. Go to the Dates section and insert a Range of
Dates from 2009-01-01 to 2014-01-01 (5 years of run time) with an output Every
Month. Set a STOP on the Last Day.

17 | P a g e

Defining Simulation Results Outputs
1. Oil Viscosity change is an important parameter. Output Viscosity (VISO) for the grid
under the Input/Output Section -> Simulation Results Output -> Grid.

2. Steam-Oil Ratio (SOR) is an important parameter in determining the feasibility of a SAGD
project. There are two outputs for SOR. One output will be automatically output on a
per-sector basis (so well pairs may be placed in individual sectors). Another method for
outputting SOR is not on a per-sector basis but by defining each well pair.

18 | P a g e

3. In the Simulation Results Output window create a new output for Special by clicking on
the green plus in the OUTSRF section.

4. Click on Select. In the window that appears, under the 3
rd
section there is an option for
SOR. Click this and select Well 1 to be the Injector and Well 2 to be the Producer. For
the option choose INST (for instantaneous SOR). Go up to Insert and choose the option
to Insert and copy a row. In the next row choose the same parameters but choose the
option to be CUM (cumulative SOR).

5. Also check the box to output PRODSTEAMR for Producer. This will give the live steam
that is entering the wellbore. In steam processes production of steam is typically bad.
This is because the enthalpy in the steam has not been transferred to the formation (i.e.
not efficient).

6. Save and Run the dataset.
7. Analyze the operation of the base dataset in Results 3D and Graph.
19 | P a g e

Exercise 1 Determining Appropriate Operating Constrains
The purpose of this exercise is to properly define the operating constraints relative to the model
pressure and volumes.
Altering Model Volumes to Account for Element of Symmetry
1. Open the dataset EXERCISE_0_BaseCase.dat. Save it under a new name of
EXERCISE_1_VAMOD.dat.

2. The volume needs to be modified to account for element of symmetry. As previously
noted in Exercise 0 when the wells were being defined, the model is only analyzing half
of the well. If you look at an IK-2D X-Sec view of the model then you can think of the
model as being 2 horizontal wellbores coming out of the screen towards you. We are in
essence cutting the wellbore in half vertically and taking the left half.

Since only half of the wellbore is being considered we limited the production and
injection to half of what it would normally be by the use of a Fraction of 0.5 in the Well
definitions. The grid blocks need to be altered as well though. Since the model was cut
vertically through the wellbores all of the blocks in this vertical column should have half
of the volume they normally would. There is also half of the original flowable area in
the J and K directions.

3. To change the proper areas and volumes for this column of blocks we first need to
define two different regions for the grid. To do this, go to Specify Properties under the
Reservoir Section and find the Block Volume/Area Modifier Type Property. Enter a
value of 1 for the Whole Grid. Click OK to exit the window.

4. We now need to edit the Block Modifier Type for the blocks along the right edge where
the wellbores are located. Making sure that the property currently being displayed is
Block Volume/Area Modifier Type and you are in IK-2D X-Sec view click the Edit
Reservoir Property button . Click and Drag along these grid blocks. When they are
all selected release the mouse button and a window will popup.

5. On this window we will be replacing the Current Value with the value of 2 for All layers
through grid.

20 | P a g e

6. To finish setting the values for the modification we need to define what the Block
Volume/Area Modifier Type of 2 means. This needs to be done in a text editor. Save
the dataset and close Builder.
7. Open the file in a text editor and find the Grid definition section (this should be near the
top). In here you will see the following:

What we are interested in is the portion in the Red Box.
21 | P a g e

8. Add a line that modifies the volume of the blocks defined as type 2 by half. To do this
add the following line after the VATYPE keyword's definition:
VAMOD 2 0.5 1 0.5 0.5
This keyword is stating that for Region 2 defined by VATYPE the Volume of the blocks
will be multiplied by 0.5. The Area in the I-direction will be multiplied by 1, J-direction
by 0.5, and K-direction by 0.5 (thus the numbers 2 0.5 1 0.5 0.5).
9. The resulting text file should look as follows:

10. Save the File and Run it. Open the .irf in Results 3D so that we can analyze the initial
pressure values.
11. If you scroll over the two perforated blocks (50, 1, 25 and 50, 1, 30) you should find the
pressure to be ~3240 and ~3290 kPa respectively.

22 | P a g e

12. Based on these initial pressures the operating constraints of the wells can be properly
defined. Open the dataset back up in Builder and go to the Wells and Recurrent
section. Open the Well Events window.
13. For the Injector well we found the initial pressure in the block to be 3240 kPa. We need
to inject the steam at a pressure higher than this. Injection pressure of 4000 kPa seems
to be reasonable.
Steam injection pressure can be anything above initial reservoir pressure. However, we
want to operate sufficiently below fracture pressure. We dont want steam to break
through the cap rock and come to surface. Both low and high pressures SAGD have their
14. Another aspect to remember is that TINJW should be set at saturation temperature of
steam. TINJW of 250 is saturation temperature of steam at 4000 kPa. So, this data is
correct.

15. Click Apply and select the Constraints tab for the Producer. The Pressure of the
producing block was 3290 kPa so we are going to set the Minimum Bottom Hole
Pressure to be 3000 kPa. This value allows for a drawdown of 290 kPa in the first time
step.
This is good for circulation period. However, it is not unusual to set MIN BHP of
producer higher than initial reservoir pressure during the SAGD phase. In fact, if BHP is
the only constraint on producer, this BHP is usually set only a few kPa below max BHP of
injector. This is done in order to avoid/minimize live steam production in the producer.
As previously noted, production of live steam in the producer is a waste of energy. In
SAGD, it is the aim that steam transfers all of its latent heat to the reservoir before being
produced as condensed water in the producer. However, there are other alternate
23 | P a g e

methods available for controlling live steam production (as will be observed in a later
exercise, both controls change the BHP of the producer to keep from producing steam):
Steam Trap (A Steam Trap is a value by how much the steam saturation
temperature [corresponding to well bottom hole pressure] exceeds the
temperature of grid block/produced fluid)
Steam Rate (Rate of live steam production allowed into the wellbore.
Commonly this will condense in the wellbore on its way to surface)
16. In this case define a constraint of Steam Rate for the SAGD phase (At 2009-04-01). This
timeframe is based on a 3 month circulation/preheating period. Define this by adding
an Operating Constraint for STEAM RATE of 5 m3/day and CONT REPEAT as the Action.

17. Click Apply and OK to close the window. Save the dataset and Run. Please refer to the
Slides for analysis of results from this run.

24 | P a g e

Exercise 2 Defining Circulation Preheating
The purpose of this exercise is to define preheating of the reservoir through the use of Heaters
to model the energy transfer that would occur during circulation (prior to SAGD startup).
In high viscous oil (Athabasca kind of Bitumen) it is not possible to inject steam without first
preheating the reservoir in the vicinity of well pair. In the field, this is achieved by circulating
steam for certain duration in both injector and producer. This can be done in many different
ways but simplest approach is injection of steam down tubing and production of condensed
water up annulus. This process can be modeled using FlexWell (recommended method) and
Discretized Well (not as many capabilities as in FlexWell). However there are simpler options
available in STARS to mimic this process. The next 2 exercises explain these available options.
Usually when oil viscosity has decreased to around 1000 cp between the wells it is a good time
to switch over to SAGD phase.

2A- Defining Circulation Heating using HEATER
1. Open the file EXERCISE_1_VAMOD.dat in Builder and rename it
EXERCISE_2A_Heaters.dat and Save.
Based on the analysis of results, the temperature of the grid blocks after 90 days is too
low to allow for large amounts of injection or production (This is also evident from the
log file). This issue is solved in the field through the circulating of steam down the
tubing and up the annulus for a period of time prior to injection (as a matter of fact
there are different kinds of configurations). There are various ways to model this
preheating/circulation period in STARS. One of the options to model this in STARS is
with Heaters.
2. The Heater keywords need to be applied to the grid block of the Injecting and Producing
wells to help raise the temperatures. These are grid blocks (50, 1:20, 25) and (50, 1:20,
30) respectively.
3. In the Reservoir Section under Specify Properties find Heat Transfer Rate and set it to 0
for the Whole Grid. Do the same thing for the Prop. Heat Transfer Coeff. The Temp.
Setpoint for Controller should be defined as 12
o
C for the Whole Grid. Click OK to close
the window.
4. Make sure that the property being displayed is the Heat Transfer Rate, then go into the
Edit Reservoir Property mode by pressing the button. Click on either of the wells
blocks. When you release the mouse button a window will popup. You need to choose
25 | P a g e

Property Modification Around Wells. Select both wells and replace the value with a
value of 2.9e9 and apply the changes to All perforated layers.

5. Repeat the process outlined in Step 4 for the Prop. Heat Transfer Coeff. property using
the same value of 2.9e9.
6. Repeat the same process for the Temp. Setpoint for Controller making the temperature
in the grid blocks 240
o
C (10
o
C lower than the Steam Temperature).
7. Save the dataset and Exit Builder. Open the Dataset in a Text Editor. Under the Wells
and Recurrent section (search for the keyword RUN) you will find an area defining Heat
Transfer Rates, Coefficients, etc. just before the DATE 2009 2 1. After these definitions
and just before the DATE 2009 2 1, insert the following lines:
AUTOHEATER ON 50:50 1:20 25:25
AUTOHEATER ON 50:50 1:20 30:30

26 | P a g e

8. Make sure to shut heaters at the end of preheating phase by setting HEATR and UHTR
to 0 and turning the AUTOHEATER OFF:

27 | P a g e

9. Save and Run the dataset. When it is opened in Results 3D you should see a clear
difference in Temperature from Exercise 1. When analyzing the results it can be clearly
observed if the temperature of 237
o
C is reached too quickly or not. If so, then it means
that the Heating Rate is too high and should be lowered, however decreasing this rate
by a factor of only 10 may results in not enough heating.
Different users tend to have different approaches for the wells during circulation period
when using heaters to mimic circulation/pre-heating. Sometimes both the wells are
kept shutin during this period whereas some users keep both wells open. You may also
come across cases where users define a pseudo injector at producer location or a
pseudo producer at the injector location.
10. If needed, the Heating Rate can be found and altered in Builder or text. Open the
dataset in Builder. Under the Tree View on the Left-Hand Side of the Screen click on
Reservoir Properties. Expand the list for Array Properties and find the Heat Transfer
Rate, *HEATR definition.

11. If you expand this keyword you will see a line that says Property Edited (*MOD
keywords). Double-Click on this line to bring up an excerpt of the text file where it is
being edited. You can modify the value here, and by clicking OK, apply the changes
directly in the dataset.

28 | P a g e

We can use trial and error to find appropriate values for the HEATR and UHTR. Another
method would be to use the excel spreadsheet provided or steam circulation using
FlexWells (done later in exercise 14). Modeling steam circulation will provide the most
accurate results of heat transfer to the reservoir. A common practice is to use FlexWell
to model the pre-heating phase and then use sink source for SAGD.
After using trial and error we found that appropriate values for HEATR and UHTR to be
1.0e9 and 1,0e8, respectively.
12. You may notice following warning at the end of log file when run is complete:

29 | P a g e

Remember, this dataset contains default numerical parameters. The best way to
eliminate this message is to increase ITERMAX and NORTH to a higher value (More
discussion of this on 4th day).

13. Save this dataset as EXERCISE_2A_Heaters_NUM.dat and Run it.
30 | P a g e

2B- Defining Circulation Heating using Heater Wells (HTWELL)
As mentioned earlier, there are multiple approaches to model circulation/preheating
period prior to SAGD. In previous exercise the Heaters approach was applied. This
exercise will use Heater Wells instead. These offer a greater flexibility, especially when
a well undulates through layers, following a real trajectory.
1. Open the file EXERCISE_1_VAMOD.dat in Builder and rename it
EXERCISE_2B_HTWELL.dat and Save.

2. Double click on Heater Well under the Wells and Recurrent Section

3. Select both injector and producer and input Wellbore Temperature as 240 for both
wells:

4. Switch off the Heater Wells on 2009-04-01 (end of circulation period) by unchecking
the box on this date.

5. Save and Run the dataset. Rerun the dataset with increased ITERMAX and NORTH
(150 each) if you get following message:

Compare results with Exercise 2A.

31 | P a g e

Notes on use of Heater methods:
HTWELL and other heater options (HEATR, UHTR, etc.) may be applied to the same
block, but this practice is not recommended.
There are other options available to define heating, such as Max. Tot. Heating Rate
Per Well Length and Max. Tot. Heating Rate. In this case we have defined HTWELLs
in its simplest form. If both Temperature and Heating Rate are specified then the
heating rate will decrease as well block temperature approaches 240 degC. Heating
rate at any point in time will be WI*(240 -T
WellBlock
) if only temperature is set and the
minimum value of the heating rate and this calculation if both temperature and rate
are specified.
When using HTWELL it is also common practice to manipulate the well index in order
to get the desired amount of heat transferred to the reservoir.

2C- Extracting a 2D Submodel
Since this model is homogenous the steam chamber growth will be the same in any J-
Plane cut. Because of this, it can be justified taking out a 2-D submodel which can be
used to estimate the steam chamber development for the entire well. This is primarily
done to save run time, as 2D models typically run much quicker than 3D models.
1. Open EXERCISE_2A_Heaters_NUM.dat in Builder and Save it as
EXERCISE_2C_Heaters_NUM_2D.dat. Enter the Edit Grid mode by clicking on the
Edit Grid icon on the Menu Bar.

Say OK to the message that pops up. To extract a submodel go to the Reservoir
Section -> Edit Grid -> Extract Submodel.

32 | P a g e

2. Select only 1 block in J direction (as follows) and click OK on the message that pops
up:

When you extract a 2D model, Layer XYZ doesnt mean anything and in fact will give
erroneous results of the perforation length of 1m.

So layer XYZ should be removed from perf card as follows:

33 | P a g e

Note on Changes from Extraction:
Since now we have only a 50m long well, rates on both producer and injector should
th
of original rates (as the original well length was 1000m, i.e. 50/1000 =
5%).

3. Maximum Steam Injection Rate for injector needs to be changed to 15 m3/day and
Maximum Liquid Production Rate for producer should be 30 m3/day and a
Maximum Steam Rate constraint of 0.25 m3/day on 2009-04-01.

4. Depending on the version of Builder being used, AUTOHEATER ranges may not be
adjusted automatically when we extract sub model because this keyword is not
supported in Builder. Save the dataset and open it in a Text Editor to fix the
AUTOHEATER range as follows:

5. Also while in text editor be sure to change the geometry of the two wells to J
direction. When there is only one perforation for a well, builder prevents you from
changing the direction from k axis.

Note on use of 2D Models:
As we noticed, the 3D case will take around 10 minutes to run. Since we dont want
to waste time, we will use this 2D case for most of the Exercises. However, we may
use 3D case for some exercises later. Another option here would have been to have
a shorter-well 3D model. A 250 m long well model has also been extracted and
placed in the SIZE COMPARISON folder, located in the REQUIRED DATA folder. Work
flow for extracting a 250 m long well in 3D is the same as in Exercise 2C except that
we choose 5 layers in the J-direction at following interface:
34 | P a g e

It will be observed that rates have been made 1/4
th
of their original for the shorter
length wells, and the AUTOHEATER location has also been adjusted.
In homogeneous cases like this, we can extrapolate (approximate) full well
performance in multiple ways. One of the approaches is to multiply rates obtained
from the 2D mode by a factor that is the ratio of full well length to the well length in
2D model (1000/50 = 20 in this case).
Another approach could be increasing the length of the gridblock in the 2D model to
the full well length (we need to be careful with this approach as sometime this may
We may also have a shorter 3D model and then use the multiplication factor on rates
same as explained above to predict performance of full well. However, it should be
noted that this approach is not taking into account differences in friction and heat
losses along the length of well. Results from the 3D Model, 2D model rates
multiplied by ratio, 1000m 2D model, and shorter 3D model rates multiplied by ratio
can be seen in comparison_fullwell_prediction from_different_runs.ses file located
in the SIZE COMPARISON folder, located in the REQUIRED DATA folder
Exercise 3 Dilation/Recompaction
The purpose of this exercise is to define dilation and recompaction in the model. This is a
geomechanical effect caused by injection and production in typically unconsolidated or low-
cementation reservoirs.
1. Open the file EXERCISE_2C_Heater_NUM_2D.dat in Builder and rename it
EXERCISE_3_Dilation.dat and Save.
2. In Builder under the Reservoir Section open the Thermal Rocktypes window and go to
the Dilation-Recompaction tab.
3. Input the following information and click Apply and OK when complete:
35 | P a g e

4. In the Input/output Control section open the window for Simulation Results Output.
Under the section labeled Items in Simulation Results File- What to write (OUTSRF)
there is a line for Grid output with a box next to it titled Select for values. Click on this
and in the popup select the following then click OK to close both windows:
Fluid Porosity (FPOROS)
I direction absolute permeability (PERMI)
J direction absolute permeability (PERMJ)
K direction absolute permeability (PERMK)
In field operations, operators may have limited steam generation capacity and thus
injectors may be limited by rate constraints. However in this training we want to
compare the effect of different variations and thus need to include higher rates.
Increase the maximum injection rate to 150 m3/day for injector and maximum liquid
production rate of 300 m3/day and maximum steam rate of 5 m3/day for producer.
5. Go the Numerical tab and set a convergence tolerance of tighter.
6. Save the dataset and Run.
36 | P a g e

7. Also Re-run Exercise 2C with outputs of current porosity and permeabilitys to compare
with Exercise 3.
Open EXERCISE_2C_Heaters_NUM_2D.dat in Builder and Save it as
increase injection and production rates 10 times as done to Exercise 3 above (so a
comparison between dataset may be made). Run the dataset.
8. Porosity change for case 3 (left) and case 2 (right) comparison should looks as follows

9. Try some different values for the Pressure at which Dilation/Recompaction occurs and
compare the results. Make sure that dilation onset pressure is higher than initial max
pressure anywhere in reservoir.
37 | P a g e

Exercise 4 Dilation with Permeability Dependence
The purpose of this exercise is to define permeability dependence due to dilation. As porosity
changes there is generally an associated change in permeability. This can be non-linear when
entering into a dilation-type circumstance.
1. Open the EXERCISE_3_Dilation.dat dataset in Builder. Under the Reservoir Section
Open the Specify Properties window. Navigate to the property Permeability Multiplier
and set the value for the Whole Grid to 3 for the I, J and K directions.
2. Save the dataset as EXERCISE_4_Dilation_Perm.dat and Run it.
3. Compare the results (temperature, porosity, etc.) but also look at the Permeability
values. It can be observed that the permeability increases with the increase in porosity
around the wellbores.

38 | P a g e

Exercise 5 Dilation through Geomechanics
The purpose of this exercise is to define Dilation/Recompaction through the use of an actual
Geomechanical model. In this the stress and strains will be calculated and increases in porosity
will be a function of different Youngs Moduli (Elastic Modulus or Stiffness Factor) for the rock.
Enabling Geomechanics in Builder
1. Open the EXERCISE_4_Dilation_Perm.dat dataset in Builder.
2. Under the Reservoir Section Open the Dilation Recompaction window for Rock Type 1.
Uncheck the box that Enables Dilation Recompaction. Press Apply and OK to close the
window.

3. Under Reservoir in the main menu bar open the window to Delete Properties. Find the
Permeability Multiplier for the I, J, and K directions and delete them.

4. Save the dataset as EXERCISE_5_Geomech.dat.
39 | P a g e

5. Go to the Input/Output Controls section and open the window for Simulation Results
File Writing. In the top section (WSRF) click the green plus sign to add a new
property to be written. In the popup window select the Grid Deform property for the
initial date and click OK. Click OK again to close the window.

6. Under the Geomechanics section open the window for Geomechanical Rock Types.
Add a new Rocktype by clicking on the sideways triangle at the top. Say OK at following
message:

40 | P a g e

7. Under Rock Type Model select Pseudo Dilation Model and enter the following data.
Finish by pressing Apply and OK.

8. Under the Geomechanics section open the window for Calculation and Numerical
Options. Select the values and options shown below then press Apply and OK to close.

41 | P a g e

9. Save the dataset, Close Builder and open it in a Text Editor. Add the following keywords
just before the RUN keyword:
STRESS3D 2000 2000 2000 0 0 0
GPERMLC 3

Note: First line is providing Initial Stress Distribution and second one is to define
exponent in Li Chalatrunyk empirical formula to link permeability to strain change (there
are other options available to link permeability to strain change). These keywords are
not available in Builder yet.

10. Save the dataset and Run the dataset. Compare the results for permeability, porosity,
and temperature. You can also note that a visual deformation occurs over time.
Compare results with Exercise 4 without geomechanics.

42 | P a g e

Exercise 6 Vertical Permeability Variation
The purpose of this exercise is to alter the vertical permeability of the model in order to
quantify the sensitivity on this parameter for a SAGD process.
Altering Vertical Permeability
1. Open the EXERCISE_4_Dilation_Perm.dat dataset in Builder. Under the Reservoir
Section Open the Specify Properties window. Change the Permeability in the K
direction to 100 md. Press OK to close the window.
2. Save the dataset as EXERCISE_6_VertPerm.dat and Run the dataset.
3. When the results are analyzed, for temperature in particular, it can be noted the large
difference in heat transfer vertically between the 1000 md and 100 md cases (i.e.
Exercises 4 and 6, respectively). What should be concluded from this is that: Good
Vertical Permeability is Very Important in SAGD Operations.

43 | P a g e

Exercise 7 Top Water
The purpose of this exercise is to add top water to the model. Top water can either be
detrimental or helpful to a SAGD process based on the continuity of the water zone. Water has
a very high thermal conductivity and heat capacity and therefore will act as an enthalpy sink
once the steam chamber encounters it.
1. Open the EXERCISE_4_Dilation_Perm.dat dataset in Builder. Specify a Water
Saturation of 0.13 for the whole reservoir. This water saturation is the same as connate
water saturation. So, defining this value of water saturation will not change anything as
the model will initialize with a water saturation of 0.13 with or without this definition.
2. Go to IK-2D section and select Water Saturation as displayed property in drop down list.
Modify water saturation in top 5 layers to 0.999 to create a top water case.
It is recommended to use 0.999 instead of 1.0 as this will be more numerically stable
case. Save dataset as EXERCISE_7_TopWater.dat and Run it.

44 | P a g e

3. The results should demonstrate the following Thermal gradients. This plume is due to
the water on the top of the reservoir having a higher conductivity to heat, allowing for a
larger heat transfer.

45 | P a g e

Exercise 8 Bottom Water
The purpose of this exercise is to add bottom water to the model. Bottom water is generally
detrimental to a SAGD process due to acting as a thermal thief zone if the injector well is
sufficiently close to it.
1. Open the EXERCISE_7_TopWater.dat dataset in Builder. Modify location of 0.999 water
saturation layers to bottom of reservoir by editing mod location in Builder as follows
(dont forget to hit apply):

Water saturation should look as follows:

46 | P a g e

2. You will notice that both producer and injector are now located in water zone. So, lets
move wells above water zone Injector to 50 1 19 and Producer to 50 1 24.

3. We also need to move heaters to new locations
47 | P a g e

48 | P a g e

Change the AUTOHEATER location in text editor as this keyword is not available in
Builder.

4. Save the dataset as EXERCISE _8A_BottomWater.dat and Run the dataset.

49 | P a g e

5. In this case we have moved injector away from bottom water. If injector is close to
water zone, there will be quite a bit of steam energy which will get wasted in this water
zone. Below is the plot of cumulative SOR comparison of top and bottom water with the
base case where there is no top or bottom water present:

It can be noticed that cum SOR in both top and bottom water case is higher than the no top
or bottom water case.

50 | P a g e

8B- Adding Both Top and Bottom Water
1. Open the EXERCISE_8A_BottomWater.dat dataset in Builder. Modify location of 0.999
water saturation layers to both top and bottom of reservoir by editing mod location in
Builder as follows (dont forget to hit apply):

Water saturation should look as follows:

51 | P a g e

2. Save dataset as EXERCISE_8B_TopWater_BottomWater.dat and Run it. If model
crashes, make following changes in numerical section (increase ITERMAX and NORTH to

3. Save it as EXERCISE_8B_TopWater_BottomWater_NUM.dat and Re-Run.
4. Below is the plot of cumulative SOR comparison of both top & bottom water, top water
and bottom water with the base case where there is no top or bottom water present:

Note: In above cases, we have limited amount of top and/or bottom water. In many real
situations, extent of these water bodies may be much bigger than the reservoir. In that
case amount of steam energy lost to these water bodies will be huge and process will
become less thermally efficient i.e., SOR will go up. In some cases process may become
un-economical.
52 | P a g e

Exercise 9 Mobile Water
The purpose of this exercise is to add mobile water to the model in order to observe how
mobile formation water can have an impact in steam chamber development and SOR.
1. Open the EXERCISE_4_Dilation_Perm.dat dataset in Builder. Under the Reservoir
Section Open the Specify Properties window. Change the Water Saturation to 0.25.
Press OK to close the window.
In this case 0.25-0.13 = 0.12 (12%) is mobile water in entire reservoir. Please note that
here we are working with constant values for properties as it is a simple, homogeneous
case. In a heterogeneous case different parts of the reservoir (theoretically each grid)
can have a different amount of mobile water (That is achieved by array values for
connate or critical water saturation and a water saturation array). Save the dataset as
EXERCISE_9_MobileWater.dat and Run the dataset.
2. Compare the results with Exercise 4 where there is no mobile water. It can be noticed
that steam chamber grows a bit bigger (left side picture) because mobile water helps in
steam injection but when you look at SOR, mobile water case SOR is not as good as the
base case.

53 | P a g e

54 | P a g e

Exercise 10 Top Gas
The purpose of this exercise is to introduce top gas to the model. Due to the high
compressibility associated with gas if the steam chamber comes in contact with it tends to act
as a sink for the steam chamber growth (if the gas zone in continuous). In non-continuous,
discreet gas zones these zones can sometimes be observed helping steam chamber growth.
10A & 10B- Adding Top Gas
1. Open the EXERCISE_4_Dilation_Perm.dat dataset in Builder. In the Initial Conditions
section, set Gas Oil Contact (DGOC) to 505 m. Also change the Reference Pressure to
3050 kPa (done to keep almost same pressure at well locations for comparison
purpose). Save dataset as EXERCISE_10A_TopGas.dat and Run it.
2. Change the Gas-Oil-Contact to 510 m and reference pressure to 3100 kPa.
3. Save the case as EXERCISE_10B_TopGas.dat and Run it again.
4. Compare the results of the two runs with Exercise 4 in terms of saturations,
temperature, and pressure.
Ternary:

55 | P a g e

Temperature:

Pressure:

56 | P a g e

10C- Simulating No Gas in the Model (Dead-Oil System)
1. Open the EXERCISE_4_Dilation_Perm.dat dataset in Builder once more. Under the
Reservoir Section in Specify Properties find the Oil Mole Fraction (C1), *MFRAC_OIL
and change it to 0 for the Entire Grid. Also, change the Oil Mole Fraction (Heavy),
*MFRAC_OIL to 1 for the Entire Grid.

2. Save the case as EXERCISE_10C_NoGasContent.dat and Run it. If model crashes, make
following changes in numerical section (Increase ITERMAX and NORTH to 300 and add
UPSTREAM KLEVEL), Save it as EXERCISE_10C_NoGasContent_NUM.dat and Re-Run it.

3. Compare the results to those of Exercise 4.

57 | P a g e

10D- Simulating High Dissolved-Gas Content in the Model
1. Open Live_Oil_PVT.dat in WinProp.
2. Open the CMG STARS PVT Data form and under the Basic PVT tab, increase the
pressure to 14000 KPa.

3. Open the other CMG STARS PVT Data form and under the K-Value tab, change the
Pressure Step and No. of pressure steps to 750 and 20 respectively.

4. Save the dataset as Live_Oil_PVT_EXERCISE_10D.dat and Run it.

5. Open the EXERCISE_4_Dilation_Perm.dat dataset in Builder. Import the above fluid
model by clicking on Components -> Import winprop generated model. Click Yes to the
warning message.

6. Under the Reservoir Section in Specify Properties find the Bubble Point Pres (C1), *PBC
and change it to 0 for the Entire Grid. This sets the bubble point equal to that of the
initial grid pressure.
58 | P a g e

7. Since you cannot specify MFRAC_OIL and PBC for the same component, you need to
delete MFRAC_OIL for the C1 component. To do that, go to Reservoir -> delete
properties and select Oil Mole Fraction (C1).

8. In the Initial Conditions section change the Initial Pressure to 10,000 kPa.
9. Since the Initial Pressure is changing we need to alter the other properties accordingly.
Under the Well Events window Change the Producing well constraint for Minimum BHP
to be 9750 kPa and the Injector well constraint for Maximum BHP to 11000 kPa.
10. Since the Injection pressure is being altered the Steam Temperature must be found for
that pressure and Steam Quality of 0.8. This leads to a Temperature of 318.8
o
C which
needs to replace the previous value of 250
o
C in the Injected Fluids tab.
11. Dilation Parameters for the model need to be increased accordingly as well. Under the
Reservoir Section in the Thermal Rocktypes Window go to the Dilation-Recompaction
tab and change the data as follows:

59 | P a g e

12. Also output Component composition in oil phase to check what mole fraction of C1 in
oil phase will exist at initialization.

You will notice that model initializes with 19.71% C1 in oil phase as opposed to 7.8% in
original model.
13. Due to the higher gas saturations and pressures, the HEATER definition may need to be
altered. Increase the HEATR and UHTR to 1.0e9 and 2.9e9, respectively and the
TMPSET to a value of 308 (since the injector now is injecting at a temperature of 318
Deg C).

14. Save the case as EXERCISE_10D_HighGasContent.dat and Run it. If model crashes, make
following changes in numerical section (Increase ITERMAX and NORTH to 300 and add
UPSTREAM KLEVEL). Save dataset as EXERCISE_10D_HighGasContent_NUM.dat and
Re-Run it.

60 | P a g e

10E- Simulating No Gas Content in the Model (Dead Oil)
1. Open EXERCISE_10D_HighGasContent_NUM.dat in Builder and Delete Bubble Point
Pres (C1).
2. Next, Under the Reservoir Section in Specify Properties find the Oil Mole Fraction (C1),
*MFRAC_OIL and change it to 0 for the Entire Grid. Conversely, change the Oil Mole
Fraction (Heavy), *MFRAC_OIL to 1 for the Entire Grid.
3. Save this dataset as EXERCISE_10E_NoGasContent10MPA_NUM.dat and Run it. (Note
that it may be required to increase the HEATER parameters further to introduce the
necessary energy to allow for injection).
4. Below is a comparison of temperature between Exercise 10D with a high amount of
dissolved gas (Rs) , and Exercise 10E with no gas:

61 | P a g e

Exercise 11 Temperature and Compositionally-Dependent
Relative Permeability
The purpose of this exercise is to add Temperature-Dependent and Compositionally Dependent
Relative Permeability to the dataset. It has been found that when temperature increases in a
reservoir, there is an observed increase in the amount of trapped water and a decrease in the
trapped oil saturation.
Compositional dependency comes into the picture in relation to the fact that there may be both
Steam and Solution Gas in the Gaseous phase. These two components may have different
relative permeabilitys associated to their interaction with oil/liquid. Because of this, a
compositional dependency can be created which alters the relative permeability curves based
on if the gas phase is dominated by steam or solution gas.
1. Open the EXERCISE_4_Dilation_Perm.dat dataset in Builder.
2. In the Rock-Fluid Section open the window for RockType 1. Make sure you are in the
Relative Permeability EndPoints tab.
3. Select the SWR, SORW, and SORG from the list and make these end points temperature
dependent. Input the values as shown in the following picture:

62 | P a g e

4. Save data file as EXERCISE_11A_TEMP_DEPEN.dat, and Run it.
5. Compare results with Exercise 4. Comparison of the ternary plots for the two runs looks
as follows (please note lower oil saturation in the steam chamber of Exercise 11`s
results):

63 | P a g e

1. Open file EXERCISE_11A_TEMP_DEPEN.dat in Builder.

2. To add Compositional Dependency different curve Interpolation Sets will need to be
created. Open the Rock Types window again and check the box at the top to Use
Interpolation Sets.

3. Go to the Rocktype Properties Tab and Check the box to enable Interpolation
Components (INTCOMP). In doing so the options will become available to select the
component and phase that will be tracked for switching.

In this case choose for the Rock-Fluid Interpolation Will Depend on Component: to be
Water and the Phase from which component`s composition will be taken: to be gas
mole fraction.

4. Click Apply then go to the Interpolation Set Parameters Tab. Input a value of 0.2 for
the DTRAPW and DTRAPN. This relates to the water mole fraction in the gas phase
(steam) associated with this relative permeability set. Click Apply.

64 | P a g e

5. At the top of the window is a dropdown for Interpolation Sets. Next to this is a
triangular button. Click on this and choose the option to Copy Current Interpolation
Set. A second Interpolation set will be created that is identical to the first. Values now
need to be altered to differentiate the relative permeability in this set from the first
based on the presence of steam.

6. In the Interpolation Set Parameters tab for the Interpolation Set 2 input values of 0.8 in
place of 0.2 for both the DTRAPW and DTRAPN values.

7. In the Relative Permeability End Points tab find the Relative permeability to gas at
connate liquid (KRGCW) and choose to Overwrite Table Value with the value of 0.6 (the
original value was 0.3 for solution gas). Press Apply.

8. Apply and press OK to exit the window. Once again, examine the diagnostic plots to
observe how the compositional dependency and temperature dependency are taken
into account at the same time. Save the Dataset as
EXERCISE_11B_TEMP_DEPEN_COMP_DEPEN.dat and Run it.

65 | P a g e

9. To Summarize:
Below a water mole fraction of 0.2 in the gas phase the Set 1 Interpolation will be used.
Above a water mole fraction of 0.8 in the gas phase the Set 2 Interpolation will be used.
Any values in-between will have an interpolation made between the two sets.

66 | P a g e

Exercise 12 Importation of a Heterogeneous Geologic Model
via RESCUE
The purpose of this exercise is to import a heterogeneous 3D geologic model for use in SAGD
modeling. This exercise walks through the steps commonly taken in importing RESCUE models
and building a dataset for use in SAGD. This model will also examine the effects of
Heterogeneity on the growth of a steam chamber and its associated production.
Importing RESCUE Model
1. Open a new Builder and make following selections and click OK on this and next screen:

2. Under the Reservoir Section menu choose Open Rescue File.

67 | P a g e

3. Find the file hetrogeneous_model.bin located in the REQUIRED DATA -> SAGD Tutorial
-> EXERCISE_12_HETEROGENEOUS folder and click Open.
4. The message that pops-up is a description of the Rescue File. Click OK to close it.
Choose the option shown below on next screen and click OK.

5. This last window is where the user defines what the values in the dataset the values in
the Rescue Files should be imported into. Select the NULL Blocks property on the Left
side (Rescue File Values), find the NULL Blocks property on the Right side (Dataset
Values) and click Add to Selected List.
6. Repeat this for the other parameters (Perm_I, Perm_J Perm_K, Pinchout array and
Porosity) on the until the RESCUE values on the Left are all matched to values on the
Right.
Another common method for importing these properties is to create a Custom Property
on the dataset side to import each of the RESCUE properties into. Then a formula can
be applied to move the imported property into the associated property. Doing this gives
added flexibility by giving the user an intermediate step where the property may be
modified before final defining under the array property.
68 | P a g e

7. Now we will import well trajectories. Click Next on following 2 screens and Finish on 3
rd

screen.

69 | P a g e

70 | P a g e

8. Save the Dataset as EXERCISE_12_HETEROGENEOUS.dat.

Defining Reservoir Properties
1. Give the same thermal properties to this model as given in previous cases:

71 | P a g e

2. Import WinProp generated fluid model.

3. Specify oil mole fraction (C1 0.082312 Heavy 0.91769):

72 | P a g e

4. Import relative permeability table from another dataset:

5. Click finish on the following interface and OK on next two messages.

73 | P a g e

6. Specify the following under the Initial Conditions:

74 | P a g e

7. Give a DTWELL of 0.001 in Numerical section.

8. We will read in the perforation information from Perforation.perf file. This file can be
defined as follows:

75 | P a g e

76 | P a g e

9. We can use similar operating constraints as we used in the 3D model we built in the
beginning of the SAGD exercises. Set the Injector well to Injector Mobility weighted
Implicit and set STW to 300 m3/day and BHP to 4000 kPa. On injected fluid tab set
water mole fraction to 1, Temperature to 250 and Steam Quality to 0.8. Apply and OK.

77 | P a g e

10. Set the Producer well to Producer and set STL to 600 m3/day and BHP to 3000 kPa.
Press Apply and OK.

78 | P a g e

11. Set a range of dates for 5 years and place a STOP at last date.

12. Add a Steam Trap constraint at 2009-4-1 for Producer.

Note: You might have noticed that in this case we are not using FRAC of 0.5 and VAMOD
because in this case wells are located in the middle of model and we are NOT modeling
element of symmetry
13. Use HTWELLs (as used in Exercise 2) to represent preheating/circulation period. These
heater wells should be shut after the circulation period (three months).

14. Output VISO (Oil Viscosity) for the Grid. Save and Run the dataset.

79 | P a g e

Exercise 13 Addition of a Semi-Analytical Wellbore Model
The purpose of this exercise is to implement a Semi-Analytical Wellbore Model (SAM) which
can be used to estimate the thermal and frictional losses in the vertical section of a well.
Commonly sink/source wells are used which makes that assumption that fluid is flashed
to/from the first perforation in regards to surface conditions. By implementing SAM the heat
and frictional losses are taken into account and allow the user to properly calculate what the
temperature and pressure will be of fluids either being injected or produced.
13A- Defining a SAM Model
1. Open EXERCISE_2A_Heaters_NUM.dat in Builder and Save it as
EXERCISE_13A_SAM.dat. Add SAM to both Injector and Producer wells by defining the
parameters are shown in the following images (Depth 525m for injector and 530m for
producer, Inner Tubing Radius 0.086m for both):

80 | P a g e

2. Remember to redefine SAM for producer on 2009-4-1. We need to do this since we
have redefined well constraints for producer at this date (added steam trap). Use the
same information as previously defined for this date.
3. Save the file and open in text editor. We want detailed information about SAM
calculations in *.out file. This can be obtained by inserting SAMINFO ON TIME keyword
in data file as shown below (this option is NOT available in BUILDER):

Notes:
There are many more options available for SAM. What we have done above is
the basic minimum needed for SAM. More details are discussed in the course
Wellbore Modelling offered by CMG.
When SAM is used, you get information about temperature, pressure and phase
changes in the output file. Variation of these properties with depth is not
available for plotting in Result Graph. However, when you use SAM you can get
some additional outputs such as temperature, pressure, and steam quality at
surface and bottom-hole conditions with the implementation of the following
keywords in the I/O Section of the dataset while open in Text Editor:
OUTSRF SPECIAL
PHWELL 'Injector' TEMP SURFACE
PHWELL 'Injector' TEMP DOWNHOLE
PHWELL 'Injector' PRES SURFACE
PHWELL 'Injector' PRES DOWNHOLE
PHWELL 'Injector' STQUAL SURFACE
PHWELL 'Injector' STQUAL DOWNHOLE
81 | P a g e

Additionally, you can get these outputs at the Pump location (if a pump is used).
You can insert these keywords in Builder in the Special Variable Output:

A dataset with the name EXERCISE_13A_SAM_AdditionalOutput.dat has been created
and saved in the Required Data -> SAGD Tutorial folder. A more detailed discussion of
these results is done in the Wellbore Modelling course.

4. When you run this model, you will notice many Experiencing problems with lifting
fluids in well Producer messages in the .log file. This indicates that some type of
artificial lift is required to lift the production fluids to surface (i.e. the reservoir energy is
not enough to overcome the frictional and gravitational forces in the well).

82 | P a g e

13B- Adding a Pump to SAM
1. Open EXERCISE_13A_SAM.dat in Builder and Save it as EXERCISE_13B_SAM_Pump.dat.
Add a Pump to the SAM definition of the Producer. Please remember to do that for
both instances (i.e., at 2009-1-1 and 2009-4-1). Pump location is 520m, Pump power is
10000 W and Pump maximum pressure increase is 15000 kPa.

2. Save and Run EXERCISE_13B_SAM_Pump.dat. Look in the output file (.OUT) of both
this and previous run for SAMINFO details. Also compare results of run with SAM model
with the Exercise 2A model.

83 | P a g e

Exercise 14 SAGD Modeling with FlexWell Model
The purpose of this exercise is to implement the FlexWell tool for more accurately calculating
the wellbore dynamics associated with a SAGD operation. In particular, the circulation stage
can only be explicitly modeled through the use of a wellbore modeling tool such as FlexWell.
This is due to injecting steam down a tubing and producing it back up an annulus in order to
heat the surrounding formation via conductive thermal transfer.
The use of a FlexWell can also help more accurately model the SAGD stage as often times there
may be tubing strings of different lengths in the injection and production wells which can be
optimized in placement to develop the most uniform steam chamber possible, optimizing
recovery in the process.
Defining FlexWells for Circulation
1. Open EXERCISE_2A_Heaters_NUM.dat in text editor, remove all heater keyword and
Save it as EXERCISE_14_FlexWell.dat.

84 | P a g e

2. Delete Special output from I/O section as well names will be changed later and this will
produce an error when we will go to run this file. Save and dataset.

3. Open EXERCISE_14_FlexWell.dat in Builder. Rename Well Injector as
Injector_CIRCULATION_TUBING and Rename Producer as
Producer_CIRCULATION_ANNULUS.

4. For circulation purposes we need to define Annulus and Tubing wells at both Injector
and Producer locations. We will be injecting down the tubing and producing up the
annulus (thus the naming convention applied above). As such, an Annulus Producer
(named Injector_CIRCULATION_ANNULUS) for the Injection well will need to created
along with a Tubing Injector (named Prodcuer_CIRCULATION_TUBING) for the Producer
well. The below steps show how to add the well Injector_CIRCULATION_ANNULUS but
the general steps are the same for adding the Producer Tubing:

85 | P a g e

86 | P a g e

87 | P a g e

NOTE:
When you copy well, FRAC is NOT copied. So, make sure to change FRAC to 0.5 in all
wells created by copying previously existing wells.

5. Now we need to assign constraints to these new wells which we have created in the
previous step. The easiest way to do this will be to copy constraints from existing wells
using Copy Event Using Filter feature in Builder and then modifying them if needed.
Steps are shown below to copy Injector constraints from
Injector_CIRCULATION_TUBING to Prodcuer_CIRCULATION_TUBING.

88 | P a g e

Note:
When you repeat this procedure to copy constraints
from Producer_CIRCULATION_ANNULUS to
Injector_CIRCULATION_ANNULUS do not forget to
clear previous the previous copy results by clicking
the Clear List button in the Search & Add results
window. Also, only copy the data from 2009-01-01
for these wells (not the 2009-04-01).
Add a new operating constraint to the Circulation
Annulus of both the Injector and Producer well.
The constraint will be MAX STEAM Rate Constraint
of 10 m3/day. This is done to ensure that live
steam is not produced back and energy is being
transferred to the formation.

89 | P a g e

6. Your wells should like as follows:

7. The Injector_CIRCULATION_ANNULUS will only be used in the Circulation stage for
Production back of the injected steam. During SAGD typically the annulus will be shut-in
and filled with gas in order to help with reducing heat-losses while injecting steam down
the tubing. Shut-in this well on 2009-04-01.

8. Also shut-in the Producer_CIRCULATION_TUBING on this date for a similar reason (we
will be producing up the tubing, not injecting, during SAGD).
After shutting these two wells the well events should look as follows:

90 | P a g e

9. Double-Click on FlexWells to open the associated window. Add a New FlexWell and
name it INJECTOR_CIRCULATION. Define the Well Annulus to be
Injector_CIRCULATION_ANNULUS and set the Wall OD to 0.31 m.

10. Click the button to Add Tubing and select the Injector_CIRCULATION_TUBING as the
well. Change the Wall ID to be 0.173 m and the Wall OD to be 0.183 m. By default the
tubing will extend to the end of the well.

91 | P a g e

11. Repeat the previous Steps to define a FlexWell for the Producer. Use the same
diameters for the Annulus and Tubing.

12. In the Events section of the FlexWell window Deactivate the Producers FlexWell at the
date 2009-04-01. This is because the producer will be requiring a new setup for the
SAGD phase while the Injector well will just require the Annulus to be Shut-in so that the
steam injected down the tubing goes into the reservoir, rather than being produced.
92 | P a g e

13. In the SAGD phase a new FlexWell may be defined for the Injector and Producer so that
you can properly operate the wells. Another method for doing this is to use the
REPLACE keyword in text to replace wells in a FlexWell without needing to define new
FlexWells.

Defining FlexWells for SAGD
1. To add FlexWells for the SAGD phase we need to make sure that the wells required have
been defined. In this case the Injector is going to inject down its tubing still but the
annulus will be shut-in at the surface.

The producer, however, needs to be altered so that the tubing is used for production,
rather than injection.

Copy one of the Producers wells again and name the new well
Producer_SAGD_TUBING and make sure it is created on the date 2009-04-01. Copy the
operating constraints from the Producer_CIRCULATION_ANNULUS at the date 2009-
04-01 to this new well at the date 2009-04-01.
2. Following are the snapshots for Flexwell Producer_SAGD. Make sure to change date to
2009-04-01

93 | P a g e

94 | P a g e

95 | P a g e

3. Make sure to also Shut-in the Producer_CIRCULATION_ANNULUS so that you are only
producing up the Tubing during SAGD at 2009-04-01.
4. Output some FlexWell-related outputs as displayed in following snapshots:

96 | P a g e

5. With FlexWell it is recommended to use Two numerical sets; one for FlexWell and other
for reservoir. This can be done by copying the current numerical set to make two sets
and then modifying Set One for FlexWell (note that Set 1 will always be used for
FlexWell by default).
6. It is recommended to have smaller NORMS and tighter tolerances for numerical set 1
which will be used by FlexWell. Use following numerical parameters for NUMSET 1:

97 | P a g e

7. Once we have defined 2 NUMSETS, we need to specify that Set 2 be used by the
Reservoir. This can be done as follows (If this is not done then Numerical Set 1 will be
used by both FlexWell and the Reservoir even when two numerical sets are defined):

8. WPRN FLEXWELL ITER ON generates lot of information in *.out file. So it is advisable to
turn it OFF after some time. This can be done in text editor as follows (currently this
cant be done in Builder):

Notes:
In this design, during the circulation period, we are injecting through the tubing
and producing through the annulus in both Injector and Producer. There are
many other configurations possible such as having a short and long tubing in
annulus and injecting through long tubing and producing through short tubing.
These configurations are examined in the Wellbore Modeling Course.

There are lot of additional output we have outputted in both the *.out and SR2
files. However, we dont have time to analyze this in this training. That is done in
the Wellbore Modeling Course.

98 | P a g e

Exercise 15 Modeling ES-SAGD in STARS
The purpose of this exercise is to implement and model an ES-SAGD Operation. ES-SAGD
(Expanding-Solvent Steam Assisted Gravity Drainage) adds a solvent to the injection of steam in
order to help further reduce viscosity at the steam chamber boundary, improving mobility and
thus production. Due to the increased costs associated with adding a solvent to injection, many
solvents are typically not pure components (i.e. Pentane, Hexane, etc.) but rather blends of
various light hydrocarbon components.
Importing Solvent PVT
1. Open EXERCISE_4_Dilation_Perm.dat in Builder and Save it as
EXERCISE_15_ES_SAGD.dat. Import the Live_oil_solvent_PVT*.str fluid model. This
fluid model contains components representing solvent.

99 | P a g e

2. You will notice that now you have more components in your fluid model:

3. Output some additional information which is relevant for ES-SAGD. One such output is
the values for components in the produced/injected streams. Also remove Special
output.

100 | P a g e

Note:
It is important to distinguish between the oil produced from the reservoir and the
produced solvent. If produced solvent is in liquid state at surface conditions then it will
be reported as oil. If we dont account for this solvent, oil recovery in an ES-SAGD case
will be overestimated. The solvent must also be taken into account in the calculation of
SORs.
4. Also output component mole fractions in oil and gas phase (X and Y, respectively). We
will need all this information for calculation of volume fractions in injected fluids:

101 | P a g e

5. In ESSAGD we inject solvent along with steam. So, next thing we need to do is change
INCOMP of injector. Go to injector and change Injected fluid to WATER-GAS-OIL as
follows:

Note:
If injected solvent is gas at surface conditions the WATER-GAS option should be
selected. If it is liquid at surface conditions then WATER-OIL option should be selected. If
solvent can exist as both liquid and gas at surface conditions then WATER-OIL-GAS
option should be selected.
6. Save the dataset (Very important to save at this spot).
Determining Injection Composition (Volume Fractions)
We need to provide volume fractions of injected fluid. Lets say we are injecting 10
weight % solvent and 90 weight % steam. Since our input is in volume fraction, we
need to calculate volume fractions for injected fluid. We have an excel sheet set up to
do this conversion. Open the Excel file named Esagd vol frac conversion10wt.xlsx, copy
injected fluid volume fractions and paste in injected fluid INCOMP.
1. In order to do get input to the Excel file, create a hypothetical STARS dataset which
initialize with only the solvent fluid. Set oil mole fractions as follows (same
composition as solvent you can take it from secondary component composition of
WinProp Exercise 4):
102 | P a g e

2. Set reservoir temperature as 15.556 (surface temp)
3. Also, set some initial irreducible oil saturation in gas zone (Irreducible Oil Sat G-O ST)
of 0.1. This is done for proper flash calculation in gas zone for calculation of
components mole fractions in gas phase.

4. In Initial Conditions section set the Reference Pressure to 101.325 and DGOC at 501m.
We have provided 1 m of top gas. This is done so that the model is able to initialize with
some gas. The flash calculation which is performed will determine what the
composition of this gas is for input into the Excel file.

103 | P a g e

5. Delete the Injector and Remove the BHP constraint from the Producer. Also Delete the
Special Output in the Simulation Results Output (since Injector was removed).
6. Save the dataset as EXERCISE_15_ES_SAGD_CALIB.dat and Run this dataset one time
step. Look for produced GOR in the *.Log file. Plug in this value of GOR in Box G3 of
Excel file Esagd vol frac conversion10wt.xlsx.

7. Open EXERCISE_15_ES_SAGD_CALIB.dat in Result 3D and display following properties:

8. In excel file, plug in oil mole fraction of component in IC4-IC5 in cell C14, component in
C6-C8 in cell C15, component in C9-C11 in cell C16. Plug in gas mole fraction of
component in IC4-IC5 in cell J14, and component in C6-C8 in cell J15.
104 | P a g e

9. Open EXERCISE_15_ES_SAGD_CALIB.out in text editor and search for Fluid Surface.
Plug in oil phase mole densities of components in columns D14-D16 in the Excel file

10. The Volume Fractions of the Solvent should now have been calculated. Input
appropriate volume fractions of injected fluid (INCOMP) in injector in the
EXERCISE_15_ES_SAGD.dat dataset, Save the dataset and Run it.

Analyze the results and compare recoveries with the Exercise 4 results.