Introduction to CMOST
By Bagus Surya Bahari
Outline
Sensitivity Analysis
History Matching
Field Optimization
Sensitivity Analysis
Objectives: to determine the overall variation of simulation results
under different parameter values and/or which parameters have
the greatest effect on simulation results.
The information can later be used in other tasks such as history
matching, field optimization, or uncertainty assessment. It can help
in reducing the scope of reservoir analysis.
Sensitivity Analysis
Sensitivity analysis uses two values for each parameter (high and
low) which means the sensitivity relationship is linier, and the range
of value is the expected range for the case being considered.
For example: oil reservoir with consolidated sandstone may has such
rock properties:
Ф = 0.10 (low) – 0.254 (high)
k = 10 mD (low) – 500 mD (high)
Result accuracy can be increased by adjusting a “most-likely” data.
Sensitivity Analysis
File Preparation:
1. Make a 2D plot template of your simulation result. Save the template as a XXX.ses file
name
2. Open your XXX.dat file and edit several parameters which are going to be analyzed
by CMOST following this rule:
variable_keyword <cmost>this[base value]=variable name</cmost>
For example:
**$ Property: Permeability I (md) Max: 1000 Min: 1000
Base file
PERMI CON 1000
**$ Property: Permeability I (md) Max: 1000 Min: 1000
CMOST master file
PERMI CON <cmost>this[1000]=PERMX</cmost>
3. Save your edited file as XXX.cmm
Sensitivity Analysis
4. Same way to edit the production constraint:
OPERATE MAX STO 800. CONT base file
OPERATE MAX STO <cmost>this[800.]=Qo</cmost> CONT CMOST master file
5. CMOST can only edit a single data value
Sensitivity Analysis
To create a CMOST task file:
1. Open a CMOST Studio
2. Select File: New
3. Select Sensitivity Analysis for the Task Type
4. Browse base IRF file “XXX.irf”. Press OK
Sensitivity Analysis
Sensitivity Analysis
In general properties section, you will find several important inputs:
1. CMOST unit system (it can be different with your base file data unit)
2. Master dataset: XXX.cmm
3. Base dataset: XXX.dat
4. Base session file: XXX.ses
Those 3 data files must be in the same simulation case. One or more changes in your
XXX.dat file must be rerun and make new master dataset and base session file to prevent
errors.
Inserting those 3 data files correctly will change the into for general properties
section.
Sensitivity Analysis
Sensitivity Analysis
In parameters section you will find several keywords:
Parameters
1. Builder : used to load CMT task file
2. Edit : used to edit master dataset in editor
3. Import : import parameters from XXX.cmm file
If you have edited the CMOST variable data keywords in the master dataset file
correctly, then those parameters will appear in parameters table section after you
click the “import” button.
You can check or uncheck the active parameters which are going to be simulated
by CMOST.
Sample values
You must input at least 2 values for each parameter. Geological and engineering
senses should be used to improve the accuracy.
Sensitivity Analysis
Sensitivity Analysis
Sampling Method section is used to select the sampling technique and thus
generating the patterns of simulation cases. There are 5 sampling techniques
provided in the CMOST 2009:
1. One parameter at a Time
2. Latin Hypercube
3. Full Factorial
4. Fractional Factorial
5. Plackett-Burman
Latin Hypercube and Full Factorial can give the highest number of simulation case. Use
the maximum number of simulation cases to improve the accuracy.
Sensitivity Analysis
Sensitivity Analysis
Objective functions are what CMOST uses to analyze the data that is retrieved from the
simulation output files. For a History Matching or Optimization task, a global objective
function is required. For all task types, at least one local objective function is required.
Each local objective function must contain at least one objective function term.
For History Matching and Optimization, both global objective function and local
objective functions are used to rank results of simulation jobs and determine how to
modify parameter values to improve simulation results.
For Sensitivity Analysis and Uncertainty Assessment, local objective functions are the
responses you want to investigate for a simulation model by changing parameter
values.
Sensitivity Analysis
Select objective function screen
1. Click on the insert button to add a raw and over write the default name
that shows for the first Objective Function.
2. Choose discounted value to discount the simulation result yearly for a
certain given interest. The default value is 0.1 (10%). Choose raw simulation
result to simulate the every case without discounting the result. For this case,
we are going to use raw simulation result .
Sensitivity Analysis
Defining the objective function terms is a critical point in using CMOST. There are:
1. Name: to inform and remind the user about the objective function definition
2. Origin type: the type of data that will be retrieved for the objection function term. They
are wells, groups, specials, sectors, layers, leases, parameters, numerical
3. Origin name: a specific item of the origin type. If the origin type is well, then the origin
name would contain a list of all the wells that are present in the dataset.
4. Property:
The Property is a specific item for the Origin Name. No information needs to be
entered into this column if the Origin Type is SPECIALS or PARAMETERS. Information is
required for all other types.
For example, if the Origin Type is WELLS, the Property cell would have a list of well
properties such as Cumulative Oil SC or Gas Rate SC.
If Discounted Value is selected for the Local Objective Function, select property rates,
not cumulative property amounts.
Sensitivity Analysis
5. Time series
If many dates from an objective function term are needed in the objective function
formula, the term can be set to be a Time Series.
6. Simulation Date Time
The Simulation Date Time is only available for Raw Simulation Result Local Objective
Functions and will be automatically referred to the master dataset. This date is the time
that the data for the Objective Function Term will be taken at.
7. Conversion factor
Used to convert from one unit to another.
Sensitivity Analysis
8. Target FHF (Field History File)
This option is only available for Sensitivity Analysis tasks. This can be used in sensitivity
analysis prior to history matching. For example, if one of the purposes of history
matching is to match cumulative oil production of the entire field, a sensitivity
analysis task can be created to investigate the effects of possible history match
parameters on cumulative oil production. By specifying the target FHF for cumulative
oil, CMOST will display the historical data of cumulative oil production in the Tornado
plots. In this way, the Tornado plots can help users to understand how far/close the
predicted cumulative oil production is to the historical data.
Sensitivity Analysis
Sensitivity Analysis
Result Observers are simulation outputs that CMOST will cache in its results file. Specific
data that should be tracked should be defined in the Result Observers Table. There are
two types of Result Observers that can be added to a task file:
· Time Series Simulation Result Observers
· Fixed Date Simulation Result Observers
Times Series Simulation Results Observers collect data for all times during the simulation
runs. Fixed Date Simulation Result Observers only collect data at one point for each
simulation. Fixed Date Simulation Result Observers are only available for History
Matching or Optimization Tasks.
Sensitivity Analysis
Number of data points from simulation
result which are going to be displayed
Increasing the display points will increase the simulation processing time
Sensitivity Analysis
Restart Configuration
A CMOST Task can be restarted from a previously run if certain information
in the task files is the same. This can be useful if a task is stopped or fails, and
the user wishes to continue the task from where it was stopped.
It also useful to rerun either the abnormal simulation results or the normal
simulation results
Sensitivity Analysis
The Scheduler Configuration Table allows the user to adjust settings for each
scheduler separately. It also lists some basic information about the schedulers.
Set the scheduler name and type as ‘local’ for a normal simulation case.
Set max concurrent job and Max failed jobs as a default number: 1 and 25,
respectively.
Set work plan to be “All Time” which means there is no time limit to run the
cases.
Job priority can be set either low, normal, and high. It should considers the other
computational operation running in a same computer.
Sensitivity Analysis
Simulator configuration specifies which simulator version to use and options on
how jobs will be run.
The master dataset file should has a compatibility keywords with a chosen
simulator. You can not run CMOST master dataset file by STARS, unless the base
file has already run by STARS. Prevent to use a different version in the running a
simulation case.
You can run a job by more than 1 processor as much as the number of
processors installed in your computer. It can reduce the simulation running time.
Finally, do not forget to save your CMOST file before start running the simulation
Sensitivity Analysis
Sensitivity Analysis
Sensitivity Analysis
Green color : running job
Dark green color : normal termination
Red color : abnormal termination. It may be caused by
numerical errors, data errors, incompatibility,
and software errors.
Sensitivity Analysis
DO NOT CLOSE CMG LAUNCHER AND CMOST STUDIO WHILE
RUNNING SIMULATION
IF THE COMPUTER SHUT DOWN ACCIDENTLY, CMOST WILL
AUTOMATICALLY SAVE THE LAST RUNNING JOB AND YOU CAN
RERUN YOUR SIMULATION BY USING RESTART SIMULATION OPTION
Sensitivity Analysis
After all the simulation jobs have finished, then you can check the result in the
Job Summary.
Result observes will give you the plots of every job. If there is a history file data,
then we can also observe the quality of match of every case.
Tornado plot will show you the effect of every parameter to the objective
function.
Effect Estimate Table allows to see the effect in the table view. Therefore, we
can observe the most sensitive parameters in our simulation model.
Sensitivity Analysis
EXERCISE:
By using your base file data, please run a sensitivity analysis using CMOST:
1. Determine at least 10 parameters and 3 objective functions to be
observed and give your reasons?
2. Determine the most sensitive parameter and give your
explanation?
Sensitivity Analysis
Sensitivity Analysis
Sensitivity Analysis
Sensitivity Analysis
History Matching
History matching is a process to validate the reservoir model with
the actual condition.
Matching criteria:
Pressure
Flowrate
History Matching
A universally accepted strategy for performing a history match does not exist. History
matching is as much art as science because of the complexity of the problem.
However, there is one of the best approach to do history match:
Step 1
Match volumetric with material balance and identify the driving mechanism
Step 2
Match the average reservoir pressure. It may be matched both globally and locally.
The match of average reservoir pressure establishes the global quality of the model
as an overall material balance.
Step 3
Match the saturation dependent variables: water oil ratio (WOR) and gas oil ratio
(GOR).
Step 4
Match the well flowing pressure.
History Matching
A fundamental concept of history matching is the concept of hierarchy of
uncertainty. The hierarchy of uncertainty is a ranking of model input data quality
that lets the engineer determine which data is the most and least reliable.
Review your Data
History Matching
Relative permeability data are typically placed at the top of hierarchy of
uncertainty because they are modified more often than other data (Fanchi,
2001).
There are some parameters which have a high degree of uncertainty:
a) Aquifer volume
b) Aquifer permeability
c) Water encroachment
d) Vertical permeability
e) Permeability multiplier
f) Skin
g) Non-Darcy Flow Constant
History Matching
Be careful, changing formation porosity will change the volumetric size
and another rock properties, such as permeability which is generated
from porosity-permeability distribution.
Changing Swc will also change the volumetric of fluid in place.
Try to discuss with the geologist and geophysics in determining the new
value of Swc, porosity distribution, and the fluid contacts.
History Matching
Matching well data may require changing the producing interval or
productivity index of a perforation interval. If it is difficult to match well
performance in a zone or set of zones, the engineer needs to look at a variety
of possibilities, including unexpected completion and wellbore problems.
example: unexpected high GOR from a perforation interval that was known to
be below GOC was due to a gas flow thru a casing leaks (channeling) in the
gas zone. Therefore, sometimes, it really needed to investigate every
unexpected well problem before doing history match.
History Matching
Map adjustments may also be necessary and it must be the last option in the
history match because map changes required a substantial effort to re-digitize
the modified maps and prepare a revised grid.
Be aware with the capillary curves. This curve affects the vertical saturation
distribution.
History matching must not be achieved by making incorrect parameter
modifications. In general, modification of every parameter values must be
physically meaningful.
History Matching
Generally, the term match is associated with the ± 10 % tolerance.
Sometimes, to obtain a full field match should be begun by a regional
match.
One of the example way to do history match is by dividing a field into 3
regions: high, medium, and low oil rate. Another way to do it can be done
by dividing the field into several development areas.
History Matching
CMOST file preparation:
1. Field History File (FHF) Data: XXX.FHF
2. CMOST master dataset: XXX.cmm
3. Base dataset: XXX.dat
4. IRF File: XXX.irf
History Matching
1. Open CMOST Studio
a) Select New
b) Select history Matching
c) Insert your IRF File
d) Save as XXX.cmt
2. Set the unit system
3. Input your file data
4. Import parameters from XXX.cmm file
History Matching
INPUT FILE
History Matching
5. Input the candidate values for each parameter
It should considers the actual field performance. The best way to do it by
understanding the field behavior, does the simulation result gives a result
bigger or smaller than the real data. Don’t use a random value as a
candidate value. Use your engineering senses and organize by using a
multiplier value to modify each parameter value.
Example: Actual average reservoir pressure is bigger than the simulation
pressure result. It may indicates that the current water influx value is smaller
than the actual, therefore we should try to modify the water influx value by a
certain value such as 1.5, 2, or 3 times bigger.
History Matching
Import from .cmm file
History Matching
Optimization method
History Matching
6. Select the objective functions
The number of objective functions depends on how many field data that are going to
be history matched. Commonly, there should be at least 4 objective functions:
1. Average reservoir pressure (FPR)
2. Water oil ratio (WOR)
3. Gas oil ratio (GOR)
4. Well bottom hole flowing pressure (WBHP)
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.
After that, fill the objective function terms table corresponds to your local objective
function. Browse for the field history file (XXX.FHF), enter a Measurement Error of 0, and
Term Weight of 1.
History Matching
History Matching
7. Set the influence matrix value by considering the result from sensitivity
analysis (0 – 1)
Removed parameters which have no influence on any Objective
Functions as determined by the Sensitivity Analysis will not exist in this table
again. Set the influence matrix 1 if the parameter has a very high effect to
the objective function and set it 0 if there is no effect at all.
History Matching
History Matching
1. For the time series result observes, click the import button and select al the time
series quantities
History Matching
8. Change the number of display points to as much as your history file data
9. Run configuration
History Matching
Total HM error
History Matching
Cases with a very low
HM errors value
History Matching
Red blocks shows the sample value data
which have been run
History Matching
Field History Data
Optimum Cases
History Matching
Exercise:
Please do a history matching process by using the sensitive parameters
which are obtained from previous sensitivity analysis. Use only 3 sample
data values for each parameter.
Specify your objective functions and choose the best case of history
match. Explain the result in detail !
Field Optimization
This feature is used to predict the optimum scenario to develop a field
under economical and technical consideration.
You can work for history matched file data or for a new development
field data.
All of production constraints/limits must be defined clearly.
Determine the capital and operational cost based on several reliable
information.
Field Optimization
If you work with a history matched file, you must build a restart file by
following steps:
1. Make a new XXX.dat file with a different name, and then open the new DATA
file using BUILDER.
2. Click on the I/O control button, then double click on Restart in the tree control
3. Click the option “enable restart writing” and insert the date to be recorded.
4. Run the bas file .dat to construct a restart file inside the IRF File
Field Optimization
Field Optimization
5. Open your new DATA file in BUILDER.
6. Click on the I/O control button again, then double click on Restart in the tree
control
7. Click the option “restart from previous simulation run (RESTART)” and browse your
IRF file.
8. Select the date of simulation run to be recorded in the new DATA file.
Field Optimization
Field Optimization
As usual, to initiate the CMOST simulation run, we must prepare all of the
required files.
1. Insert master dataset, base data file, IRF file and SES file
2. Specify your simulation unit data value
Field Optimization
Field Optimization
3. Import your optimization parameters from the master dataset file
Field Optimization
4. Choose your optimization method. It is recommended to use CMG DECE
Optimization.
5. Define your local objective function (e.g. : NPV) as a discounted value and
specify the display unit
6. Define your objective function terms and specify all of the economic
constraints.
7. Set all of the parameters in the influence matrix to be 1.
Field Optimization
Field Optimization
8. Define your time series and fixed date result observers
Field Optimization
8. If you have no additional constraint, so you can skip the constraint option and
go to run configuration section.
Field Optimization
Highest NPV
Field Optimization
Exercise:
Optimize your history matched simulation data file for 10 years. Explain your
result !!!