07 cmost tutorial

36
 Com puter M odelling Group Ltd. TUTORIAL INTRODUCTION T O 2010

Upload: anonymous-wo8ug3ay

Post on 07-Jan-2016

119 views

Category:

Documents


23 download

DESCRIPTION

Tutorial de CMOST de CMG

TRANSCRIPT

Page 1: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 1/35

 

Computer Modelling Group Ltd.

TUTORIAL

INTRODUCTION

TO

2010

Page 2: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 2/35

 

07_CMOST Tutorial.docx 1 

TABLE OF CONTENTS

CMOST SENSITIVITY ANALYSIS TUTORIAL ............................................................................................ 2 

CMOST HISTORY MATCHING TUTORIAL............................................................................................... 13 

CMOST OPTIMIZATION TUTORIAL.......................................................................................................... 21 

Introduction 21 

Tutorial 21 

UNCERTAINTY ASSESSMENT (UA) ........................................................................................................ 29 

Creating the new UA CMM file: 30 

Running the CMOST Studio 33 

Page 3: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 3/35

 

07_CMOST Tutorial.docx 2 

CMOST Sensitivity Analysis Tutorial

 A Sensitivity Analysis (SA) Task is used for determining the overall variation of simulation results under different

parameter values and/or which parameters have the greatest effect on simulation results. SA determines how

sensitive results are to different adjustable parameters. The information can later be used in other tasks such as

History Matching, Optimization, or Uncertainty Assessment as it will help determine which parameters should be

varied and their approximate ranges. SA uses two values for each parameter (high and low) which means the

sensitivity relationship is linear, and the range of values is the expected range for the case being considered. On

completing a SA one can determine which parameters should be considered for the history matches and which can

be eliminated simply because they have litt le to no effect on the overall simulation results .

1. Open file "Engineer.dat", locate variables for SA, examine DATE/TIME controls and time step control.

2. Drug and drop file "Engineer.ses" into Results Graph to see how well the engineer did. You should see

something like in pictures below:

3. Open the files "CMOST_Engineer_SA.CMM" and "Engineer.dat" for comparison to observe how certain

variables have been replaced by CMOST variables.

For example, to create a CMOST variable such as permeability we need to replace line 75:  *PERMI

*KVAR 2000 1000 500 2000 in the "Engineer.dat" file by the new line:

*PERMI *KVAR <cmost>this[2000]=PERM1</cmost> <cmost>this[1000]=PERM2</cmost>

<cmost>this[500]=PERM3</cmost> <cmost>this[2000]=PERM4</cmost>

Page 4: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 4/35

 

07_CMOST Tutorial.docx 3 

4. To create the CMOST task file:

a. Open CMOST Studio

b. Select File; New

c. Select Sensitivity Analysis for the Task Type

d. Browse base IRF file "Engineer.irf". Press OK.

Page 5: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 5/35

 

07_CMOST Tutorial.docx 4 

e. You are going to see the following screen:

Now we need to fill out all the sections of the CMOST Studio.

5. In General Properties we need to browse for the files we are going to use. Your screen should look

something like this:

Page 6: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 6/35

 

07_CMOST Tutorial.docx 5 

6. Now go to the Parameters screen.

a. Click Import parameters.

b. Each parameter is given a range of values for CMOST to work with (high and low), therefore, in the

Sample Value window we need to input the following values for different parameters:

ParameterCandidate Value

Min Max

CRD1 5.00E-04 5.00E-02

FACTOR 1 4

FFI 1 al 4 1 20

PDILA_INCR 100 900

PERM1 250 4000

PERM2 250 4000

PERM3 250 4000

PERM4 250 4000

PERMUL1 0 6

POR1 0.1 0.35

PVMOD 0.3 1

RESPRESS 100 500

c. Click Save the File.

Page 7: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 7/35

 

07_CMOST Tutorial.docx 6 

7. In the Sampling Method Option choose “Fractional Factorial” design with 15 parameters and 128 runs to

calculate the experimental design. After that, do click the “Generate Patterns” button. 

8. Select Objective Function screen

a. Click on the Insert button to add a row (Raw Simulation Result) and over write the default name that

shows for the first Objective Function. As it can be seen from the picture below, the three objective

functions we are going to use: cumulative oil produced, cumulative water produced, and

cumulative steam injected.

b. Select the first Objective function row. A blank row will appear under Objective Function Terms:

c. Term name can be changed if needed; accept the origin types as WELLS, select the origin name as

Producer 1, and Cumulative Oil SC as the Property. The Simulation Date Time is automatically entered

from the “irf ” file from the base data set. All these objective functions will be referenced to the end of the

Page 8: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 8/35

 

07_CMOST Tutorial.docx 7 

pilot period, however we could also add additional values for different times (for example end of each

cycle or part of cycle). Browse for the field history file [FieldData.FHF], and enter a conversion Factor of 1.

d. Repeat this process for each Objective Function row, selecting the appropriate well name (Origin

Name) and Property for each Object ive Function. The same FHF file is used for each Objective

Function term, the Conversion Factors are all 1.

The next figure shows the Object ive Function Term row for the CumSteam Objective Function:

e. In the CMOST Formula Editor add Cmost Single Value Variables and press OK.

f. Save the file.

9. In Results Observers we include the objective function variables, as well as, BHP values. To do that:

a. Press Import button, you will see the following window:

Page 9: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 9/35

 

07_CMOST Tutorial.docx 8 

Use Shift key to highlight all the objective terms to be added. Press OK.

b. Add missing objective function variables (BHP_Producer and BHP_Injector).

c. Use Well Bottom-hole Pressure as the Property.

d. Change Display point for 100.

e. Also, we load the FHF file to compare each sensit ivity case with the field data.

Your screen should look as follows:

f. Save the file.

10. Browse Run Configurations

a. Select the correct simulator

b. Choose Local in the Scheduler configuration section (or ask the instructor to running in the network)

c. Select CMOST engine configuration

d. Save the file and start the task

Your screen should look like this:

Page 10: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 10/35

 

07_CMOST Tutorial.docx 9 

11. To submit the run:

a. Click on Start Task button

b. Assign a Run Tag

c. Click OK. Now you should be able to see a Run Status Monitor

12. Once the job is completed you will see the following screen which can be viewed by loading the CMR file

for this case:

13. In the Results Observers we can see the 128 runs and we can compare it with the historical data (Blue

points). In the following pictures you can see the results of BHP for a producer and injector well, also

cumulative steam injection and cumulative oil produce.

Page 11: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 11/35

 

07_CMOST Tutorial.docx 10 

Here we see that in some runs the oil production is one sided compared to the field data, as is the steam

injection (the other way).

Page 12: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 12/35

 

07_CMOST Tutorial.docx 11 

14. Select Effect Estimates;

a. Tornado Plots; From the plots below we can observe the average value for all the runs and the

sensitivity of each parameter.

b. Effect Estimate Table allows to view the results in table form.

15. By copying the table to Excel and calculating percentage for each parameter we can sort out which

parameters should be included in the history match. Since the results are quite insensitive to the dilation

compressibility value as it can be seen from the table below, we can ignore dilation itself but leave the effect

Page 13: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 13/35

 

07_CMOST Tutorial.docx 12 

of normal formation compressibility on permeability. Also, some parameters have an effect on certain

objective functions but not on others and they should be included in the history match.

Note that steam injected objective function is relatively insensitive to most parameters which suggests that this

objective function is not required.

Parameters C_OIL_P % C_STEAM_I % C_WATER_P   %

CRD1(5e-4, 5e-2) 183.42 1.0% -526.66 -1.8% -1943.1 -7.2%

FACTOR(1, 4) -57.739 -0.3% -367.69 -1.3% -311.27 -1.2%

FFI1(1, 20)   2309.4   12.2%   2977.4   10.3%   3401.4   12.6%

FFI2(1, 20)   4788   25.4%   3445.8   11.9%   4223.9   15.7%

FFI3(1, 20)   925.99 4.9% 3227   11.1%   2587.7 9.6%

FFI4(1, 20)   668.18 3.5% 2634.3 9.1% 2271.1 8.4%

PDILA_INCR(100, 900)   2423.2   12.8%   775.44 2.7% 2421.9 9.0%

PERM1(250, 4000)   11906   63.1%   2399.5 8.3% 7728.2   28.7%

PERM2(250, 4000)   11221   59.5%   1563.4 5.4% 6622.9   24.6%

PERM3(250, 4000)   11843   62.8%   1756.6 6.0% 6291.7   23.3%

PERM4(250, 4000)   3825.8   20.3%   1558.2 5.4% 2846.8   10.6%

PERMUL1(0, 6) -1304.1 -6.9% 787.87 2.7% -310.42 -1.2%

POR1(0.1, 0.35)   27828   147.5%   -791.38 -2.7% 3603.9   13.4%

PVMOD(0.3, 1)   26317   139.5%   -3238.8   -11.2%   867.65 3.2%

RESPRESS(100, 500)   57325   303.9%   -1579.4   -5.4%   25843   95.9%

Page 14: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 14/35

 

07_CMOST Tutorial.docx 13 

CMOST History Matching Tutorial

1. Open CMOST Studio

a. Select New

b. Select History Matching and the Engineer.irf file. OK

c. Save as Tutorial_HM.cmt

2. Unit system can be changed to Field to be consistent with the Input units

3. Add a description; browse for the CMM file [CMOST_Engineer_SA.CMM]; add the base data set

[Engineer.dat] and the session file [Engineer.ses]. Save.

4. Select Parameters

5. Import parameters; turn off FACTOR, PERMUL1 and CRD1; check that the default values for these two

parameters are as shown. Also check the defaults for the active parameters.

Page 15: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 15/35

 

07_CMOST Tutorial.docx 14 

6. Add parameter values for the active parameters.

a. Select Parameter row POR1 and Candidate Value row 1.

b. Enter 0.2 as the first Candidate value. Cursor down to the next row.

c. Enter 0.25 as the second Candidate Value and repeat the process to add the values 0.3 and 0.35 per

the next figure

d. Follow the same procedure to add Candidate Values for each of the rows. Select the Parameter row

first, then the first Candidate Value row to enter the first value. The next figure shows the values forParameter PERM1:

e. PERM2 and PERM4 have the same Candidate Values as PERM1.

Page 16: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 16/35

 

07_CMOST Tutorial.docx 15 

Once PERM1 values were entered, left click on the row corresponding to PERM1 and choose copy candidate

values to other parameters.

On the newly opened screen, select PERM2 and PERM4 cells, hit OK and then confirm the replacement of values.

f. PERM3 has the following set of values:

Page 17: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 17/35

 

07_CMOST Tutorial.docx 16 

g. Select FFI1 row and click on the generate button. On the following menu, choose Arithmetic sequence

as the method. Set the Min value to 1, Max value to 19 and number of values also 10. Click OK.

the final set of values looks like:

h. Copy the candidate values from FFI1 to FFI2, FFI3 and FFI4.

i. For the reservoir pressure we should use a low value of 100 psi and a high value of 500 psi. An increment

of 100 psi can be used

Page 18: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 18/35

 

07_CMOST Tutorial.docx 17 

 j. The pore volume modifier should span a range from 0.3 to 1 with an increment of 0.1. There is nothing

magic about this range except that you want the answer to fall within it. The Sensitivity Analysis would

help to validate whether this was an appropriate range

k. The dilation incremental pressure must start with a value > 0 and in the example we have used 100 psi.

The upper value of the increment is determined by looking at the lowest reservoir pressure selected (100

psi) and the steam inject ion pressure (1000 psi). The difference (900 psi) is the largest increment we needsince any larger value would eliminate dilation onset. Therefore, in total we need to set 9 values for

PDILA_INCR with minimum value of 100, maximum of 900

7. Select the Objective Functions screen. We wish to add five Objective Functions:  

a. Click on the Insert button to add a row and overwrite the default name that shows for the first Objective

Function. Add % as the Display Unit. The other columns are defaulted.

b. Add the other four Objective Funct ion rows in the same way.

c. Select the first Objective funct ion row. A blank row will appear under Objective Function Terms:

d. Highlight the row, change the term name if you wish, accept the origin type as WELLS, select Producer1

as the Origin Name, and Cumulative Oil as the Property. The Start Date Time and End Date Time are

automatically entered from the irf file from the base data set (if it exists). Usually this can be left as is

unless you are trying to match a different time period for a particular Objective Function. Browse for the

field history file [FieldData.FHF], enter a Measurement Error of 0, and a Term Weight of 1.

e. Repeat this process for each Objective Function row, selecting the appropriate well name (Origin

Name) and Property for each Objective Function. The same FHF file is used for each Objective

Function term, the Measurement Errors are all zero, and the Term Weights are all 1. The next figureshows the Objective Function Term row for the BHP_I Object ive Function:

Page 19: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 19/35

 

07_CMOST Tutorial.docx 18 

f. Save the file.

8. The Influence Matrix allows you to specify what level of influence a given active Parameter has on a Given

Object ive function. In this case we will leave these levels at 1. Note that we have removed the Parameters

which have no influence on any Objective Function as determined by the Sensitivity Analys is (see

sensitivity tutorial). Note also that the Parameter Effect table created in Excel after the Sensitivity Analysis

indicates that some other Parameters have little effect on some Objective Functions, so those IM cells

could be set to zero or 0.2. You can try this as an exercise to see the effect on the History Matching. 

9. For the Time Series Results Observers click the Import button and select all the time series quantities:

Parameters C_OIL_P % C_STEAM_I % C_WATER_P   %

CRD1(5e-4, 5e-2) 183.42 1.0% -526.66 -1.8% -1943.1 -7.2%

FACTOR(1, 4) -57.739 -0.3% -367.69 -1.3% -311.27 -1.2%

FFI1(1, 20)   2309.4   12.2%   2977.4   10.3%   3401.4   12.6%

FFI2(1, 20)   4788   25.4%   3445.8   11.9%   4223.9   15.7%

FFI3(1, 20)   925.99 4.9% 3227   11.1%   2587.7 9.6%

FFI4(1, 20)   668.18 3.5% 2634.3 9.1% 2271.1 8.4%

PDILA_INCR(100, 900)   2423.2   12.8%   775.44 2.7% 2421.9 9.0%

PERM1(250, 4000)   11906   63.1%   2399.5 8.3% 7728.2   28.7%

PERM2(250, 4000)   11221   59.5%   1563.4 5.4% 6622.9   24.6%

PERM3(250, 4000)   11843   62.8%   1756.6 6.0% 6291.7   23.3%

PERM4(250, 4000)   3825.8   20.3%   1558.2 5.4% 2846.8   10.6%

PERMUL1(0, 6) -1304.1 -6.9% 787.87 2.7% -310.42 -1.2%

POR1(0.1, 0.35)   27828   147.5%   -791.38 -2.7% 3603.9   13.4%

PVMOD(0.3, 1)   26317   139.5%   -3238.8   -11.2%   867.65 3.2%

RESPRESS(100, 500)   57325   303.9%   -1579.4   -5.4%   25843   95.9%

Page 20: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 20/35

 

07_CMOST Tutorial.docx 19 

10. Change the number of Display Points to 100 and save the file:  

11. The final screen is the Run Configuration.

a. Select Refresh Schedulers to update the list of available schedulers.

b. Select the schedulers to be used.

c. Select the simulator and version. This will be one of those on the local machine. Select Find Closest

Version so that CMOST uses the most appropriate version available on the machines on which the

simulations will be run. Note that all jobs should be run on the same version with the same number of

CPU’s as otherwise the results may be affected by  version and parallelization issues.

d. Select the other parameters according to the figure: 

The max job time, in hours, should be set to a suitable number. In this case, each job should take no longer

than 15 seconds to complete. Therefore it is recommended to set the Maximum Job Run Time  to 0.1 hour

(6 mins) so that in case a job runs for more than 6 mins, the simulator kills the job and continues with the

next one in queue.

e. Save the file and click Start Task.

12. The next slide shows the parameter status chart from the second CMOST history match, and identifies the

range of all the parameters:

Page 21: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 21/35

 

07_CMOST Tutorial.docx 20 

13. After running the History Matching you should get a screen similar to:  

The GOF should have a value around 1%:  

14. Review the PowerPoint slides for a discussion of re-running the History Matching using PSO ratherthan DECE. In this case you need to specify a maximum number of jobs to be run since the PSO

approach does not reduce the search space. A value of 1000 is appropriate.

15. The slides also discuss how to stop and restart a CMOST run.

Page 22: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 22/35

 

07_CMOST Tutorial.docx 21 

CMOST Optimization Tutorial

Introduction

Optimization will be applied to the forecast, i.e. the future operation of this well.

To avoid re-running the history match stage for each forecast case we will create a restart file based on the history

match (or matches).

To make the optimization of the future cycles as simple as possible we will make use of the cycling constraints

available in Builder and the simulators. This will allow us to specify cycle components as CMOST parameters for

optimization.

Tutorial

1. Copy one of the history match data sets from the ‘jobs’ directory into the main project directory. All work

must be done in the project directory (you may create a new one for optimization if you wish, but make sure

that all necessary fhf   files are copied to this directory) to avoid confusion. In the example we shall use the

DECE history match file numbered 743.

2. The first step is to add the cyclic groups definition at DATE 1973 9 25. A comparison of the original data

set at this date, and the revised data set at this date, is shown in:

Figure 1

3. Note that we have defined a Group ‘Cycling’ which is attached to the upper group ‘Master’. This ‘Cycling’

group has both wells attached to it.

4. We also need to write a restart record at the last t ime in the historical period so we add a line WRST

TNEXT after TIME 1094:

Figure 2

Page 23: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 23/35

 

07_CMOST Tutorial.docx 22 

5. Save the data set and run it. Note that we have not made any material changes to this data set as far as

the history match is concerned. All that we have done is to enable the cyc lic group definition in the restart

record, and to write this restart record.

6. Next we need to create the base data set for optimization. This will also be the 743 data set, but it will be

designed to restart from the restart record previously given. It will also have additional TIME lines covering

the forecast period and, at the restart point of DATE 1976 09 24 we will have instructions as to how tooperate the two wells under cyclic group control.

7. Open the selected history match data set (00743 in our case) in Builder and save it with the same name but

with _OPT attached. Go to I/O Control and select Restart. Into Restart and Writing Restart windows, select

"Restart from previous simulation run..." as shown in the following picture:

Figure 3

8. Note that it is important that the restart time step number be identified correctly to ensure that the restart

happens at the correct date.

9. Using the cyclic control interface in Builder, define the cyclic controls for the two wells at the 1976 09 24

DATE:

Figure 4

Page 24: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 24/35

 

07_CMOST Tutorial.docx 23 

10. Note that we start with well ‘Injector 1’ explicit ly open to start the cycle. Well ‘Producer 1’ is implicitly

closed. It is assumed that the user is familiar with the use and construction of cyclic controls. Refer to the

figure to determine the constraints to use for the cyclic controls.

11. Extend the dates to 1984 12 31 in 1-day intervals in Builder and remove the STOP. We use 1-day intervals

to give good definition of the stages of the cycles, but also to ensure consistency in results during

optimization. This limits the time step size to 1 day and ensures that results are not biased by some casesrunning with significantly larger time steps than others. For the same reason e need to ensure that we

always use the same number of CPU’s for running cases to avoid different degrees of drift in the results.  

12. Save, exit Builder and run it. Open the file in the text editor. Save the file with the extension of .CMM.

13. We will replace the cycle times for the three parts of the cycle (injection, soak, and production) with CMOST

parameters. We will also replace the minimum produced oil rate switching constraint with a CMOST parameter:

Figure 5

14. Note that once we input CMOST variables in the text file, we cannot make any changes to it in Builder

anymore because Builder is unable to read the <cmost> strings.

15. Remove the line specifying STOP just before the DATE 1976 09 24 if it exists, and save the file.

16. Open CMOST and select Optimization as the task type. Identify the correct project directory containing the

files just created.

17. Complete the General Properties screen by importing the files as shown below and adding a descriptive

comment:

Page 25: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 25/35

 

07_CMOST Tutorial.docx 24 

Figure 6

18. Move to the Parameters screen

19. Import the Parameters  – the three time periods:

Figure 7

20. The range of times for the injection period is shown above. For the soak period use three times of 7, 14,

and 21 days; for the production period use eight times starting at 90 days and going to 720 days .

21. Move to the Objective Function screen.

22. In this case we only have one Global Objective Function  – the NPV of the forecast period:

Page 26: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 26/35

 

07_CMOST Tutorial.docx 25 

Figure 8

a. Click ‘Insert’ in the upper right and select ‘Discounted Value’.  

b. There will be only one local object ive function so you can select any of the Methods. However, if you

choose anything other than ‘Sum’ you will get a warning message that ‘Sum’ is preferred.  

c. The Formula is the Sum of Objective Terms

d. The Display Unit is M$ for thousands of dollars. This string is used purely for display purposes. It is the

user’s responsibility to ensure that the calculation result (NPV) matches the display unit. The

Conversion Factor (see below) is used for this purpose.

e. The NPV will be made up of two terms:

i. The Value of the bitumen stream

ii. The Cost of the steam

f. Add these two terms in the lower box:

i. Note that the Start Date Time is the beginning of the optimization (forecast) period as we do not

wish to include the historical data in the calculation

ii. The End Date Time is the last date in the forecast

iii. The Yearly Interest Rate (Discount Rate) is the fractional annual discount rate, in this case 10%, for

calculating the discounted NPV of the term

iv. The Unit Value is the value of one base unit using the unit system defined in CMOST in the

General Properties screen. In this case the base unit is bbl/day (because the defined unit system

in CMOST is Field) so the Unit Value is $/bbl.

v. For quantities that are a cost, use negative value numbers. In this case we are us ing a value of

$30/bbl for bitumen and -$3/bbl for steam.

vi. Refer to the CMOST manual for details as to how the NPV calculation is performed.

vii. The Conversion Factor is used to convert the base units used in the s imulator to the displayed units

for a given quantity. In this case the base units are bbl and we wish to display the NPV in

thousands of dollars (M$). Thus we use a Conversion Factor of 0.001.

viii. NOTE THAT THE CONVERSION FACTOR IS APPLIED AFTER THE NPV CALCULATION.

Page 27: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 27/35

 

07_CMOST Tutorial.docx 26 

24. Move to the Influence Matrix screen. Since we have no idea how the different parameters affect the NPV

we will leave the IM at its default values of 1. If we knew, perhaps by running a SA on the forecast, how the

different parameters affected the NPV, we could include this influence here by using a value between 1 and

0 for each parameter.

In practice, it is usually faster to conduct the optimization with IM values of 1 rather than to conduct several

SA’s to obtain IM value estimates.  25. Move to the Result Observers screen:

Figure 9

26. The result observers can be imported from the Objective Function screen by clicking the ‘Import’ button.

 Additional result observers can be added by hand. The top section of the screen is for Time Series result

observers: the bottom section of the screen is for Fixed date result observers. A field history file can be

entered here but since optimization is usually done for a forecast about the only time you might use this

entry is if you have a ‘base case’ forecast. We shall leave it blank.

27. We can skip the Constraints and restart Configuration screens and move to the Run Configuration screen.

28. On this screen, click the Refresh Schedulers button:

Figure 10

and check that the schedulers are configured as you wish.

a. The number of pending jobs should be no more than 10. Since in this case we only have 4 CPU’s

available we use a number of 5 so there is always one job waiting to run.

Page 28: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 28/35

 

07_CMOST Tutorial.docx 27 

b. The simulator executable on the local machine is 32-bit but the Find Closest Version will result in the

cluster using its 64-bit version, with 1 CPU allocated to each job.

c. The CMG DECE optimization method is chosen and a short refresh time is used. The refresh time is

automatically adjusted based on job run time.

d. A maximum job run time of 0.05 hours (3 minutes) is selected since the normal run time is shorter than

this. If this time is too short – lots of jobs being killed because they run longer than 3 minutes and the jobsare otherwise OK – the time can be increased accordingly. The purpose of this number is to prevent a job

that has hung, or is taking much longer than it should, from blocking the execution of the case.

e. Finally we specify a maximum number of jobs to be run (1000). This is also a safety net in case

something goes wrong. Normally you should reach convergence with DECE before running 1000 jobs,

especially with this particular case.

29. Save the data set and click the Start button.

30. After CMOST finish, examining the best five jobs shows:

Job ID GlobalObj MAXINJTIME MAXPRODTIME MAXSOAKTIME

64 1033.8 120 540 14

13 1030.8 120 540 7

61 1028.4 120 540 21

10 1020.7 180 450 14

55 1015.3 180 450 7

Figure 11

a. The injection time seems to have settled at 120 days.

b. Note that of the best three solutions the only differentiator is the soak time. The soak time seems

that don't have a big impact in the NPV.

c. The production time is between 450 and 540 days.

36. The Parameter Map below confirms these conclusions:

Figure 12

37. From the point of view of doing forecast optimization using CMOST we could consider the job to be

complete at this point. It is possible to perform further refinement of the optimization.

38. Another extra exercises could be remove the MAXPRODTIME parameter and use instead of a Minimum Oil

Rate for Cycle Switching. Do the necessary modifications in the OP_00743_OPT.CMM

39. Compare the two optimization cases.

Figure 133

Page 29: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 29/35

 

07_CMOST Tutorial.docx 28 

42. Use Results Graph in order to compare the best NPV cases in both optimization cases.

Figure 14441.This concludes the tutorial on CMOST Optimization.

Page 30: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 30/35

 

07_CMOST Tutorial.docx 29 

Uncertainty Assessment (UA)

Once the optimization stage is over, the impact of uncertainties of HM variables on a number of objective functions

(i.e. NPV, CSOR, cumulative oil production, etc.) of the optimum case(s) will be analyzed. This is done by

simulation to develop a Response Surface (a surface where the 3D solutions are positioned on) for each objective

function of interest, considering heterogeneity of numerous reservoir variables such as porosity, permeability,

endpoint saturations, oil viscosity, etc. It then conducts a Monte Carlo simulation by selecting each and everyreasonable combination of variables, and determines the value of the objective function for each combination. The

results are then represented as probability density function (PDF) and cumulative density function (CDF) plots for

the objective function.

The main advantage of UA is that it uses three variable values, as oppose to two required by SA, which that in turn

results in generation of the Response Surfaces (RS). These RS's map changes in the objective functions invoked by

changes in reservoir variables, in a 3d fashion (see Figure-1 below). It also allows for some optimization of variables

which can not be carried out by SA, requiring a lot less simulation cases to be run than does Optimization. However, as a

trade off, this reduction in number of runs y ields a less precise optimum solution than those obtained by full Optimization.

This discrepancy is mainly due to utilization of interpolation rather than extrapolation among the variable values. In

addition, the number assessed variable is more limited than would be the case with full Optimization and SA.

Figure 1  - 3D Representation of a RS

Creating the new UA CMM file:

1. Go to the History Match job folder and copy the master data file (CMOST_Engineer_SA.CMM). Copy this

file in the current job folder (UA) and change the name for CMOST_Engineer_UA.CMM.

2. Open the new master data file in a text editor and change the currents default values in the CMOST

sentences by the parameters values obtained from the history match file 743, i.e.,

Figure 2

Page 31: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 31/35

 

07_CMOST Tutorial.docx 30 

3. Do not forget create the keywords for the Group.

Figure 3

4. Save the changes done in the master data file.

5. Now, go to the Optimization job folder and open the master data file in a text editor. Copy the prediction part

of the file (from TIME 1094 to the STOP keyword), and paste in the file that we want to create for the UA

activity (CMOST_Engineer_UA.CMM).

6. Change the defaults values in the cyclic option by those obtained in the optimization. Save the file.

7. Open CMOST Studio and select Uncertainty Assessment task type. Identify the correct project directory

containing the files just created.

Figure 4

8. Complete the General Properties screen by importing the files as shown below and adding a descriptive

comment:

Page 32: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 32/35

 

07_CMOST Tutorial.docx 31 

Figure 5

9. Go to parameters and do click in the import button to get the CMOST parameters from the cmm file.

10. Uncheck all the parameters except (FFI2, FFI3, FFI4, PDILA_INCR, MAXPRODTIME, and

MAXSOAKTIME).

11. Add parameter values for the active parameters. For that, we will be using the range of values that were notblocked in the history match and the optimization. This procedure will permit calculate the uncertainty in the

combinations.

Figure 6

Page 33: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 33/35

 

07_CMOST Tutorial.docx 32 

Figure 7

12. Select Parameter row FFI2. Select a "Uniform Probability Distribution" and use 7 and 15 as lower and upper

value.

13. Do click in the “Suggest Samples” button. Leave the default options and do click in OK.

Figure 8

14. Repeat the steps 11 to 12 for the parameters FFI3, FFI4, MAXPRODTIME, and MAXSOAKTIME and select

the range unblocked for those parameters.

15. Select Parameter row PDILA_INCR. Select a "Triangle Distribution" and use 400, 600 and 700 as Lower,

Peak and Upper value.

Figure 9

16. Save the task file (UA.CMT)

Page 34: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 34/35

 

07_CMOST Tutorial.docx 33 

17. Move to the Objective Function screen. Insert the NPV as “Global Objective Function” as in the optimization

case.

Figure 10

a. Click ‘Insert’ in the upper right and select ‘Discounted Value’.  

b. The Formula is the Sum of Object ive Terms

c. The Display Unit is M$ for thousands of dollars

d. The NPV will be made up of two terms:

i. The Value of the bitumen stream ($30/bbl)

ii. The Cost of the steam (-$3/bbl)

e. Add these two terms in the lower box:

i. Note that the Start Date Time is the beginning of the optimization (forecast) period as we do not

wish to include the historical data in the calculation.

ii. The End Date Time is the last date in the forecast

iii. The Yearly Interest Rate (Discount Rate) is the fractional annual discount rate, in this case 10%, for

calculating the discounted NPV of the term

iv. The Conversion Factor is used to convert the base units used in the simulator to the displayed units

for a given quantity . In this case the base units are bbl and we wish to display the NPV in

thousands of dollars (M$). Thus we use a Conversion Factor of 0.001.

18. Go to “Sampling Method” and select “Box-Behnken”. Do click in the “Generate Patterns” button.  

19. Move to the Result Observers screen, and create variables for Oil rate, Steam rate and Cumulative oil as

showed below.

Figure 11

Page 35: 07 CMOST Tutorial

7/17/2019 07 CMOST Tutorial

http://slidepdf.com/reader/full/07-cmost-tutorial 35/35

 

20. Move to Run Configurations screen, and complete this section as before.

21. Save the task file and run.

22. When CMOST finish, the results will be similar to:

Figure 12