Sie sind auf Seite 1von 104

Modeling SAGD in STARS

Tutorial

2012

Table of Contents

Exercise 0 Creation of Cyclic Steam Base Model Defining Reservoir Properties

 

4

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 Altering Model Volumes to Account for Element of Symmetry

19

19

Exercise 2 Defining Circulation Preheating 2A- Defining Circulation Heating using HEATER

24

24

2B- Defining Circulation Heating using Heater Wells (HTWELL)

30

2C- Extracting a 2D Submodel

 

31

Exercise 3 Dilation/Recompaction Adding Dilation/Recompaction Through Builder

 

34

34

Exercise 4 Dilation with Permeability Dependence Adding Permeability Dependence through Builder

37

37

Exercise 5 Dilation through Geomechanics Enabling Geomechanics in Builder

38

38

Exercise 6 Vertical Permeability Variation Altering Vertical Permeability

42

42

Exercise 7 Top Water Adding Top Water

 

43

43

Exercise 8 Bottom Water

45

8A-

Adding Bottom Water

45

8A-

Adding Bottom Water

50

 

2

|

P

a g e

Exercise 9 Mobile Water Adding Mobile Water

 

52

52

Exercise 10 Top Gas 10A & 10B- Adding Top Gas

54

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 Importing RESCUE Model

 

66

66

Defining Reservoir Properties

 

70

Exercise 13 Addition of a Semi-Analytical Wellbore Model 13A- Defining a SAM Model

 

79

79

13B- Adding a Pump to SAM

 

82

Exercise 14 SAGD Modeling with FlexWell Model Defining FlexWells for Circulation

 

83

83

Defining FlexWells for Circulation

 

92

Case 15- ES-SAGD

98

 

3

|

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 about the well-pair.

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

Single Porosity system  Start date 2009-01-01  Click OK , verify the settings and Click

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):

of gridblocks followed by the desired dimension in meters): 5. Open the Specify Properties window and

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.

5

|

P

a g e

6. After hitting OK twice you should now have a viable 3-D Grid. This model

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):

tab and insert the following data (make sure to check COMPLEX Thermal Conductivity Phase Mixing ):

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):

having the same thermal properties as the reservoir rock): 9. Save the dataset as EXERCISE_0_BaseCase.dat .

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.

Model . Find the WinProp file generated on Day 1 called Live_Oil2_PVT.str . Press OK to

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.

Components section and select Display Dataset for Section . 3. In the window that appears the

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.

numbers down somewhere and click OK to close the window. 4. Under the Reservoir section open

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.

5. Click OK . Save the dataset. Defining Rock-Fluid Properties 1. Go to the Rock-Fluid

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.

triangle and choose New Rock Type . 2. Click on Tools and select Generate Tables Using

3.

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

Relative Permeability Curves and click Apply and OK : 4. For Smoothing method for table end-points

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

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

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:

should be inserted as follows. Click Apply and OK : Defining Numerical Controls 1. Open the

Defining Numerical Controls

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

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

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%).

used is only taking into account half of the well, and thus the element of symmetry

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.

MIN of 3000 kPa . Select CONT REPEAT under Action. 4. After this is complete Click

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:

well in the same way with the name INJECTOR , Type: INJECTOR MOBWEIGHT IMPLICIT , and

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):

pressure MAX of 4000 kPa (both on Action: CONT REPEAT ): 7. Since this is an

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

8. The well perforations need to be defined before the Wells and Recurrent Section can

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.

9.

9. To define the perforations go to the Perforations tab. Click on the button and insert

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.

Injector . press Apply and OK after this is complete. 10. Dates need to be added
Injector . press Apply and OK after this is complete. 10. Dates need to be added

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.

to 2014-01-01 (5 years of run time) with an output Every Month . Set a STOP

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.

Section -> Simulation Results Output -> Grid. 2. Steam-Oil Ratio (SOR) is an important parameter in

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.

3.

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

by clicking on the green plus in the OUTSRF section. 4. Click on Select . In

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).

but choose the option to be CUM (cumulative SOR). 5. Also check the box to output

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).

not been transferred to the formation (i.e. not efficient). 6. Save and Run the dataset. 7.

6. Save and Run the dataset.

7. Analyze the operation of the base dataset in Results 3D and Graph.

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.

EXERCISE_1_VAMOD.dat.

Save

it

under

a

new

name

of

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.

selected release the mouse button and a window will popup. 5. On this window we will

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

6. To finish setting the values for the modification we need to define what the

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:

should be near the top). In here you will see the following: What we are interested
should be near the top). In here you will see the following: What we are interested

What we are interested in is the portion in the Red Box.

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:

0.5). 9. The resulting text file should look as follows: 10. Save the File and Run

10. Save the File and Run it. pressure values.

Open the .irf in Results 3D so that we can analyze the initial

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.

blocks ( 50, 1, 25 and 50, 1, 30 ) you should find the pressure to

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 don’t want steam to break through the cap rock and come to surface. Both low and high pressures SAGD have their advantages and disadvantages (some of this is discussed in slides).

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.

of steam at 4000 kPa . So, this data is correct. 15. Click Apply and select

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

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.

STEAM RATE of 5 m3/day and CONT REPEAT as the Action. 17. Click Apply and OK

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.

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

displayed is the Heat Transfer Rate , then go into the button. Click on either of

button. Click on either of the wells

blocks. When you release the mouse button a window will popup. You need to choose

Edit Reservoir Property mode by pressing the

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.

of 2.9e9 and apply the changes to All perforated layers . 5. Repeat the process outlined

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

8. Make sure to shut heaters at the end of preheating phase by setting HEATR

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

at the end of preheating phase by setting HEATR and UHTR to 0 and turning the

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.

and find the Heat Transfer Rate, *HEATR definition. 11. If you expand this keyword you will

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.

We can use trial and error to find appropriate values for the HEATR and UHTR.

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:

and 1,0e8, respectively. 12. You may notice following warning at the end of log file when

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).

to a higher value (More discussion of this on 4th day). 13. Save this dataset as

13. Save this dataset as EXERCISE_2A_Heaters_NUM.dat and Run it.

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:

and input Wellbore Temperature as 240 for both wells: 4. Switch off the Heater Wells on

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

of circulation period) by unchecking the box on this date. 5. Save and Run the dataset.

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

ITERMAX and NORTH (150 each) if you get following message: Compare results with Exercise 2A .

Compare results with Exercise 2A.

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.

as

EXERCISE_2C_Heaters_NUM_2D.dat. Enter the Edit Grid mode by clicking on the Edit Grid icon on the Menu Bar.

Open

EXERCISE_2A_Heaters_NUM.dat

Grid icon on the Menu Bar. Open EXERCISE_2A_Heaters_NUM.dat in Builder and Save it Say OK to

in

Builder

and

Save

it

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

2.

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

(as follows) and click OK on the message that pops up: When you extract a 2D

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

give erroneous results of the perforation length of 1m. So layer XYZ should be removed from

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

erroneous results of the perforation length of 1m. So layer XYZ should be removed from perf

Note on Changes from Extraction:

Since now we have only a 50m long well, rates on both producer and injector should be made 1/20 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:

in a Text Editor to fix the AUTOHEATER range as follows: 5. Also while in text

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.

prevents you from changing the direction from k axis. Note on use of 2D Models: As

Note on use of 2D Models:

As we noticed, the 3D case will take around 10 minutes to run. Since we don’t 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:

It will be observed that rates have been made 1/4 t h of their original

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 lead to numerical instability).

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.

geomechanical effect caused by injection and production in typically unconsolidated or low-

cementation reservoirs.

Adding Dilation/Recompaction Through Builder

1. Open the file EXERCISE_2C_Heater_NUM_2D.dat in Builder and rename it EXERCISE_3_Dilation.dat and Save.

This is a

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:

4. In the Input/output Control section open the window for Simulation Results Output . Under

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.

7.

Also Re-run Exercise 2C with outputs of current porosity and permeability’s to compare with Exercise 3.

Open EXERCISE_2C_Heaters_NUM_2D.dat in Builder and Save it as EXERCISE_2_PORO.dat. Add additional outputs as described in Step 4, above. Also 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

(left) and case 2 (right) comparison should looks as follows 9. Try some different values for

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.

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.

Adding Permeability Dependence through Builder

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.

It can be observed that the permeability increases with the increase in porosity around the wellbores.

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 Young’s 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.

Recompaction . Press Apply and OK to close the window. 3. Under Reservoir in the main

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.

for the I, J, and K directions and delete them. 4. Save the dataset as EXERCISE_5_Geomech.dat

4. Save the dataset as EXERCISE_5_Geomech.dat.

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.

date and click OK . Click OK again to close the window. 6. Under the Geomechanics
date and click OK . Click OK again to close the window. 6. Under the Geomechanics

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:

. Add a new Rocktype by clicking on the sideways triangle at the top. Say OK

7.

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

the following data. Finish by pressing Apply and OK . 8. Under the Geomechanics section open

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.

and Numerical Options . Select the values and options shown below then press Apply and OK

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

the RUN keyword : STRESS3D 2000 2000 2000 0 0 0 GPERMLC 3 Note: First line

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.

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.

should be concluded from this is that: Good Vertical Permeability is Very Important in SAGD Operations.

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.

Adding Top Water

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.

1.0 as this will be more numerically stable case. Save dataset as EXERCISE_7_TopWater.dat and Run it.

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.

water on the top of the reservoir having a higher conductivity to heat, allowing for a
water on the top of the reservoir having a higher conductivity to heat, allowing for a

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.

8A- Adding Bottom Water

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 (don’t forget to hit apply):

mod location in Builder as follows (don’t forget to hit apply): Water saturation should look as

Water saturation should look as follows:

mod location in Builder as follows (don’t forget to hit apply): Water saturation should look as

45 | P a g e

2.

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

– Injector to 50 1 19 and Producer to 50 1 24 . 3. We also
– Injector to 50 1 19 and Producer to 50 1 24 . 3. We also

3. We also need to move heaters to new locations

47 | P a g e
47 | P a g e
Change the AUTOHEATER location in text editor as this keyword is not available in Builder.

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

text editor as this keyword is not available in Builder. 4. Save the dataset as EXERCISE

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

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:

the base case where there is no top or bottom water present: It can be noticed

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

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 (don’t forget to hit apply):

mod location in Builder as follows (don’t forget to hit apply): Water saturation should look as

Water saturation should look as follows:

mod location in Builder as follows (don’t forget to hit apply): Water saturation should look as

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 300 and add UPSTREAM KLEVEL).

(increase ITERMAX and NORTH to 300 and add UPSTREAM KLEVEL). 3. Save it as EXERCISE_8B_TopWater_BottomWater_NUM.dat

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:

the base case where there is no top or bottom water present: Note: In above cases,

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.

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.

Adding Mobile Water

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.

helps in steam injection but when you look at SOR, mobile water case SOR is not
53 | P a g e
53 | 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:

results of the two runs with Exercise 4 in terms of saturations , temperature , and

54 | P a g e

Temperature: Pressure:
Temperature:
Pressure:

55 | 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.

Fraction (Heavy), *MFRAC_OIL to 1 for the Entire Grid . 2. Save the case as EXERCISE_10C_NoGasContent.dat

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.

it as EXERCISE_10C_NoGasContent_NUM.dat and Re-Run it. 3. Compare the results to those of Exercise 4 .

3. Compare the results to those of Exercise 4.

it as EXERCISE_10C_NoGasContent_NUM.dat and Re-Run it. 3. Compare the results to those of Exercise 4 .

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.

the Basic PVT tab, increase the pressure to 14000 KPa . 3. Open the other CMG

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.

and No. of pressure steps to 750 and 20 respectively. 4. Save the dataset as Live_Oil_PVT_EXERCISE_10D.dat

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.

generated model . Click Yes to the warning message. 6. Under the Reservoir Section in Specify

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.

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).

delete properties and select Oil Mole Fraction (C1). 8. In the Initial Conditions section change the

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:

in the Thermal Rocktypes Window go to the Dilation-Recompaction tab and change the data as follows:

12.

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

fraction of C1 in oil phase will exist at initialization. You will notice that model initializes

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).

injector now is injecting at a temperature of 318 Deg C). 14. Save the case as

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.

300 and add UPSTREAM KLEVEL ). Save dataset as EXERCISE_10D_HighGasContent_NUM.dat and Re-Run it . 59 |

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:

between Exercise 10D with a high amount of dissolved gas (Rs) , and Exercise 10E with
between Exercise 10D with a high amount of dissolved gas (Rs) , and Exercise 10E with

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 permeability’s 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.

11A- Adding Temperature Dependence

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:

list and make these end points temperature dependent . Input the values as shown in the

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):

runs looks as follows (please note lower oil saturation in the steam chamber of Exercise 11
runs looks as follows (please note lower oil saturation in the steam chamber of Exercise 11

62 | P a g e

11B- Adding Compositional Dependence

1. Open file EXERCISE_11A_TEMP_DEPEN.dat in Builder.

2. To add Compositional Dependency different curve Interpolation Sets will need to be

Open the Rock Types window again and check the box at the top to Use

created.

Interpolation Sets.

the box at the top to Use created. Interpolation Sets . 3. Go to the Rocktype

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.

composition will be taken: to be gas mole fraction. 4. Click Apply then go to the

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.

water mole fraction in the gas phase (steam) associated with this relative permeability set. Click Apply

63 | 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.

in place of 0.2 for both the DTRAPW and DTRAPN values. 7. In the Relative Permeability

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.

original value was 0.3 for solution gas). Press Apply . 8. Apply and press OK to

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

Save the Dataset as

into account at the same time.

EXERCISE_11B_TEMP_DEPEN_COMP_DEPEN.dat and Run it.

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.

Interpolation will be used.  Any values in-between will have an interpolation made between the two

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:

following selections and click OK on this and next screen: 2. Under the Reservoir Section menu

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

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.

Choose the option shown below on next screen and click OK . 5. This last window

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.

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

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

69 | P a g e
69 | P a g e
69 | 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:

Defining Reservoir Properties 1. Give the same thermal properties to this model as given in previous
Defining Reservoir Properties 1. Give the same thermal properties to this model as given in previous
2. Import WinProp generated fluid model . 3. Specify oil mole fraction ( C1 0.082312

2. Import WinProp generated fluid model.

2. Import WinProp generated fluid model . 3. Specify oil mole fraction ( C1 0.082312 Heavy

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

2. Import WinProp generated fluid model . 3. Specify oil mole fraction ( C1 0.082312 Heavy

4. Import relative permeability table from another dataset:

4. Import relative permeability table from another dataset: 5. Click finish on the following interface and
4. Import relative permeability table from another dataset: 5. Click finish on the following interface and
4. Import relative permeability table from another dataset: 5. Click finish on the following interface and

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

6. Specify the following under the Initial Conditions : 73 | P a g e

6. Specify the following under the Initial Conditions:

6. Specify the following under the Initial Conditions : 73 | P a g e

7.

Give a DTWELL of 0.001 in Numerical section.

7. Give a DTWELL of 0.001 in Numerical section. 8. We will read in the perforation

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

will read in the perforation information from Perforation.perf file. This file can be defined as follows:
75 | P a g e
75 | P a g e
9. We can use similar operating constraints as we used in the 3D model we

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.

tab set water mole fraction to 1 , Temperature to 250 and Steam Quality to 0.8
10. Set the Producer well to Producer and set STL to 600 m3/day and BHP

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

Producer well to Producer and set STL to 600 m3/day and BHP to 3000 kPa .
Producer well to Producer and set STL to 600 m3/day and BHP to 3000 kPa .

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

of dates for 5 years and place a STOP at last date. 12. Add a Steam

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

Add a Steam Trap constraint at 2009-4-1 for Producer . Note: You might have noticed that

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).

be shut after the circulation period (three months). 14. Output VISO (Oil Viscosity) for the Grid
be shut after the circulation period (three months). 14. Output VISO (Oil Viscosity) for the Grid

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

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):

following images ( Depth 525m for injector and 530m for producer , Inner Tubing Radius 0.086m
following images ( Depth 525m for injector and 530m for producer , Inner Tubing Radius 0.086m

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):

as shown below (this option is NOT available in BUILDER): Notes:  There are many more

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

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:

these keywords in Builder in the Special Variable Output : A dataset with the name

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).

(i.e. the reservoir energy is not enough to overcome the frictional and gravitational forces in the

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.

W and Pump maximum pressure increase is 15000 kPa . 2. Save and Run EXERCISE_13B_SAM_Pump.dat .

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.

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.

in text editor , remove all heater keyword and Save it as EXERCISE_14_FlexWell.dat . 83 |

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.

error when we will go to run this file. Save and dataset. 3. Open EXERCISE_14_FlexWell.dat in

3.

Open

EXERCISE_14_FlexWell.dat

in

Builder.

Rename

Well

Injector

as

Injector_CIRCULATION_TUBING

and

Rename

Producer

as

Producer_CIRCULATION_ANNULUS.

Rename Producer as Producer_CIRCULATION_ANNULUS . 4. For circulation purposes we need to define Annulus and
Rename Producer as Producer_CIRCULATION_ANNULUS . 4. For circulation purposes we need to define Annulus and

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
85 | P a g e
85 | P a g e
86 | P a g e
86 | P a g e
86 | P a g e
NOTE: When you copy well, FRAC is NOT copied. So, make sure to change FRAC

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.

in all wells created by copying previously existing wells. 5. Now we need to assign constraints

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.

below to copy Injector constraints from Injector_CIRCULATION_TUBING to Prodcuer_CIRCULATION_TUBING . 87 | P a g e
Note: When you repeat this procedure to copy constraints from Producer_CIRCULATION_ANNULUS to
Note: When you repeat this procedure to copy constraints from Producer_CIRCULATION_ANNULUS to
Note: When you repeat this procedure to copy constraints from Producer_CIRCULATION_ANNULUS to

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.

6.

Your wells should like as follows:

6. Your wells should like as follows: 7. The Injector_CIRCULATION_ANNULUS will only be used in the

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:

tubing, not injecting, during SAGD). After shutting these two wells the well events should look as

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.

and set the Wall OD to 0.31 m . 10. Click the button to Add Tubing

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.

11. Repeat the previous Steps to define a FlexWell for the Producer. diameters for the

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

for the Producer. diameters for the Annulus and Tubing. Use the same 12. In the Events

Use the same

12. In the Events section of the FlexWell window Deactivate the Producer’s 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.

13. In the SAGD phase a new FlexWell may be defined for the Injector and

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 Producer’s 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
93 | P a g e
93 | P a g e
94 | P a g e
94 | 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:

SAGD at 2009-04-01 . 4. Output some FlexWell-related outputs as displayed in following snapshots: 95 |
SAGD at 2009-04-01 . 4. Output some FlexWell-related outputs as displayed in following snapshots: 95 |
5. With FlexWell it is recommended to use Two numerical sets ; one for FlexWell

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:

for numerical set 1 which will be used by FlexWell. Use following numerical parameters for NUMSET

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):

and the Reservoir even when two numerical sets are defined): 8. WPRN FLEXWELL ITER ON generates

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 can’t be done in Builder):

as follows (currently this can’t be done in Builder) : Notes:  In this design, during

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 don’t have time to analyze this in this training. That is done in the Wellbore Modeling Course.

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.

as

EXERCISE_15_ES_SAGD.dat. Import the Live_oil_solvent_PVT*.str fluid model. This

fluid model contains components representing solvent.

Open

EXERCISE_4_Dilation_Perm.dat

in

Builder

and

Save

it

model contains components representing solvent. Open EXERCISE_4_Dilation_Perm.dat in Builder and Save it 98 | P a
model contains components representing solvent. Open EXERCISE_4_Dilation_Perm.dat in Builder and Save it 98 | P a

2.

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

that now you have more components in your fluid model: 3. Output some additional information which

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.

One such output is the values for components in the produced/injected streams. Also remove Special output.

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 don’t 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:

respectively). We will need all this information for calculation of volume fractions in injected fluids: 100

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:

and change Injected fluid to WATER-GAS-OIL as follows: Note: If injected solvent is gas at surface

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. Let’s 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):

2. Set reservoir temperature as 15.556 (surface temp) 3. Also, set some initial irreducible oil

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.

for calculation of components mole fractions in gas phase. 4. In Initial Conditions section set the

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.

which is performed will determine what the composition of this gas is for input into the

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.

Box G3 of Excel file Esagd vol frac conversion10wt.xlsx . 7. Open EXERCISE_15_ES_SAGD_CALIB.dat in Result 3D

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

in Result 3D and display following properties: 8. In excel file, plug in oil mole fraction

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.

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

of components in columns D14-D16 in the Excel file 10. The Volume Fractions of the Solvent

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.

dataset, Save the dataset and Run it. Analyze the results and compare recoveries with the

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