CO2 Sequestration Tutorial
CO2 Sequestration Tutorial
Tutorial
EXERCISE 1: Base Model with Structural Trapping
The purpose of this exercise is to build the base model which will be used for the subsequent
exercises. In this exercise WinProp will be used to create a basic Compositional Fluid Model for
input in GEM. Builder will also be utilized in the building of a 2-Dimensional reservoir model.
This first exercise focuses on structural trapping of injected CO2. As such, it does not include
Hysteresis, Cap rock Leakage, Mineralization, or Water Vaporization. Each of these concepts
are applied in subsequent exercises where they are enables one at a time.
7. Click on the icon to change to "Probe mode" from "Create grid mode".
8. Click on the Specify Property button and specify the following reservoir properties:
Property Value for “Whole Grid”
Grid Top 1200 m (only for layer 1)
Grid Thickness 5
Porosity 0.18
Permeability I 100 md
Permeability J EQUALSI
Fluid Definition:
The model needs an EOS fluid definition. For creating a compositional fluid model for the dataset,
we’ll use WinProp 2020.10.
12. From Launcher, double click on WINPROP 2020.10 to open WinProp GUI.
13. Click on Titles/EOS/units. Enter comments as EXERCISE_1: CO2 2D BASE CASE.
Select units Kpa & deg C.
Initialization Settings
27. Next, open the Initial Conditions Section in the tree view.
28. Select Vertical Depth_Ave and Water_Gas system.
29. Under the Init. Region Parameters tab input the following as shown in the figure below
and click OK.
30. Use the following numerical controls. This may not be needed for this case but will be
required for more complex cases in subsequent exercises. This will help in avoiding
numerical non-convergence.
32. Click on to Add a range of dates. Choose From: 2000-01-01; To: 2200-01-01, by
Year. Click OK and click OK again to the message that appears.
33. In the set STOP column, check on 2200-01-01 so the simulator knows to stop at this date.
Click on Close.
34. Right click on Wells and choose New.
35. Name the well CO2_INJECTOR and be sure to choose INJECTOR as the well type. The
well should be defined at 2000-01-01.
36. Click on the Constraints tab and check the box for Constraint Definition.
37. Under select new (in the Constraint column of the table), select OPERATE. Then select
STG surface gas rate, MAX, 10,000 m3/d, CONT REPEAT.
38. Add another Operating constraint for BHP bottom hole pressure, MAX, 4.45E+04 kPa,
CONT REPEAT.
39. Under the Injected Fluid tab, select SOLVENT as the injected fluid, then specify the mole
fraction of CO2 as 1.0. Click OK.
Over the next few exercises, there are a number of concepts to be investigated and understood.
For this, some extra properties need to be looked at in Results and output recording for these
extra outputs should be turned on.
44. Lastly, go to I/O Control in the tree view and double click on Simulation Results Output.
45. Click on the button under the OUTSRF table and for Grid Information.
51. Open the dataset in Text editor and insert the keyword INVENTORY-CO2 in the I/O
section of the dataset.
52. Also, Add the following to the end of the Fluid Model section (defined with the keyword
MODEL):
From the 2016 release onwards, users will have the option to generate two different format
outputs – the old SR2 format (which contains .IRF and .MRF files) or the new SR3 format (which
contains a single .sr3 file). The new format is compatible with the new results.
53. Go to Launcher and drag & drop EXERCISE_1_BASECASE.dat onto the GEM icon
(version 2013.11 if available). A new window will pop up. Press the Submit Job button.
54. You can visualize the log file while the run is going.
55. When the job is finished, five files will be created; namely:
Results Interpretation
The results can be visualized in Results by dragging and dropping the EXERCISE_1_BASECASE.sr3
into RESULTS icon in Launcher.
The injected gas moves in the reservoir and the forms a free gas cap because there is no trapping
mechanism modeled in this case. Because of this, a need to investigate the Cap rock integrity
arises (This is covered in Exercise 4). You can also visualize how the reservoir pressure changes
with time.
1. Open EXERCISE_1_BASECASE.dat in Builder. Under the I/O Control Section open the
Titles and Case ID window and change the Case Title to CASE_2A:CO2 2D BASE
CASE + HYSTERESIS.
Hysteresis can be added to the dataset by invoking the option in Builder. Hysteresis can be
modelled for capillary pressure curves (for oil-water or for oil-gas) or for relative permeability
curves (for gas or for oil relative permeability).
2. Under Rock-Fluid Section, Double click on Rocktype 1 to open the Rock Types window.
3. Select the Hysteresis Modelling tab and Enter 0.4 for Maximum Residual Gas
Saturation option.
Results Interpretation
Compare the results with those from Exercise 1. It will be observed that more gas is trapped in
the reservoir as Residual Gas Saturation (due to hysteresis). Because of this there is less gas
migration to the top of the reservoir.
In this exercise, we’ll increase the volume of aquifer by using volume modifiers such that the
aquifer will act like an infinite acting reservoir.
2. Under the I/O Control Section open the Titles and Case ID window and change the Case
Title to CASE_2B: 2D BASE CASE + HYS + INF.
3. Under Specify Properties find Volume Modifiers and set the Whole Grid to 1. Click OK
twice to exit.
4. Enter into the Edit Reservoir Property mode and select the last column of blocks on the
right. Modify the value to be 1e5 for All layers through grid.
Results Interpretation
Compare the results with those from Exercise 2A. Compare the gas saturation and reservoir
pressures from the two cases. The reservoir pressure doesn’t increase as much in case of infinite
acting reservoir, and as a result, more CO2 is injected. Also, because of the lower pressure in the
reservoir, the CO2 has a lower mass density – which will lead to more upward movement of CO2
by virtue of lower density and more accumulation at the top.
2. Under the I/O Control Section open the Titles and Case ID window and change the Case
Title to CASE_2C: 2D BASE CASE + HYS + INF + WINJ.
3. Add a New Well named WATER_INJECTOR with a Maximum Water Injection Rate
(STW) of 25 m3/day.
Additional Suggestions
Results Interpretation
Water can be injected at a shallower location than CO2 injection. This way, water will move
downwards and CO2 will move upwards by virtue of gravity. As a result of this movement and
resulting saturation changes, more CO2 can be trapped in the aquifer.
3. Open the Titles/EOS/Units form and change the title to EXERCISE_3: CO2 2D BASE
CASE + SOLUBILITY.
4. Open the Component Selection/properties form and under Aqueous Phase tab select
the Li-Nghiem's method for Henry's law correlation method.
6. Check the option of aqueous solubility parameter output and enter the reservoir
temperature and pressure as shown below and click OK.
8. Exit WinProp.
10. Open the GEM dataset EXERCISE_2A_HYSTERESIS.dat in Text Editor and insert the
following keywords in the end of the fluid model section:
*SOLUBILITY
** HENRYC calculated at 50.00 deg C
The Henry's coefficient for C1 is entered as zero so that the simulator will skip the
solubility calculation for C1.
11. You can also change the title of the case to CASE_3A:CO2 2D BASE CASE + HYS +
SOL.
Results Interpretation
Analyze how the mole fraction of CO2 in water changes with time (you may have to change the
scale). Also, analyze the change in water density because of CO2 solubility in water.
3. Opening the file WINPROP_CASE_3B.gem in text will reveal that the Solubility keywords
have been replaced by:
*SOLUBILITY
*HENRY-CORR-CO2
Results Interpretation
It can be observed that the results from the two solubility methods are quite similar. Harvey’s
method uses a correlation to estimate Henry’s constant, which is more suitable to cases where
there are thermal effects in the model. Since that’s not the case here, the results don’t vary vastly
between the two methods.
*SOLUBILITY
*HENRY-CORR-CO2
Results Interpretation
Compare this to Exercise 3B and notice how convection currents are created with CO2 becoming
soluble.
Once the Effective Normal Stress decreases enough, Tensile failure will occur in which the rock
is in-effect being separated on a grain-level, creating channels and increasing permeability. Since
Pore Pressure needs to increase in order for this effect to be observed the model is commonly
placed in datasets in which injection will occur over datasets with only production.
3. Split the K Plane of the first layer across the whole model into 13 layers.
Layers 6 and 12 are sealing shale cap rocks. These are the layers which will have the
Barton/Bandis model applied in order to model the failure.
Layers 1-5 and 7-11 represent two separate overburden zones. In this way the effect of
cap rock breakage on the upper shale can be observed after the first cap rock has failed,
allowing fluids and pressure to move into the bottom overburden. The runtime can be
reduced if the second cap rock breakage is not necessary to model.
5. Next the fracture system needs to be defined in the proper place:
Currently these fractures are defined everywhere. However, since there is no natural
fracture network in this model the fractures should not exist anywhere except where
leakage can occur.
8. Add a Second Rock Type with the following Values (Note the change to Drucker-Prager):
11. Next, in Builder navigate to the Reservoir Section and open the Compaction/Dilation
Regions window. Add a New Region and input the following values:
14. The two types now need to be assigned to their respective blocks. To do this, open
Specify Properties and find the Rock Compaction Set Num CTYPE and Rock
Compaction Set Num - Fracture CTYPE.
Define the following values for these, then press OK and OK on the calculation window:
18. Place a STOP at 2005-06-01 then Save this dataset and exit Builder.
19. Due to a known issue with Builder, you may need to make the following corrections in text
editor before running the model with GEM 2020.10:
A) Look for keyword PERMK FRACTURE and make sure it appears after keyword PERMI
FRACTURE (Builder may have placed PERMK above PERMI, which would lead to a
simulator fatal error):
In Results, change to the IK Cross-sectional view and examine the Effective Normal Stress.
It should be observed that this value decreases above the injector due to the increase in Pore
Pressure from injection. When the Normal Stress drops below a set value in the fracture (in this
case 2000 kPa) then the fracture will open and the permeability of the fracture should be seen to
increase, allowing gas to pass into the overburden. After a few years of injection, the gas will also
lead to the cracking of the top cap rock, leading to CO2 escaping into the top overburden as well.
The Numerical Method is used for calculating the Chemical Equilibrium Equation
derivatives and Mineral Precipitation/ Dissolution rate equation derivatives.
4. Select the button Mineral Species Reactions and search/ add the following
mineralization reactions:
6. Go to the Aqueous Phase Property Models tab and select the B-Dot Model for
Aqueous Phase Activity Model.
7. Navigate to the ‘Component Selection Properties’ node and choose the ‘Aqueous Phase’
tab and specify NaCl concentration as shown below, in mol NaCl/kg H2O:
8. Go back to CMG GEM EOS Model form and navigate to the Aqueous Phase
Models/Data section. Enter the following parameters and press OK to close the window:
9. Click OK to close the form. Save the file as WINPROP_CASE_5.dat and Run it.
11. Open this model in Builder 2020.10, select the option ‘Import Winprop-generated Model’
and load the file WINPROP_CASE_5.gem to import the newly generated PVT with
geochemical reactions defined. Save the model and close it.
12. Open the model in cEdit and delete the HENRY-CORR-C1 keyword, because C1 should
not be modeled as soluble in water.
13. Add the following keywords at the end of the Model Section:
*OGW_FLASH *NO_H2OVAP
*DERIVATIVEMETHOD *NUMERALL
*CO2-AQU-FACT **This is for the total accounting of the carbon.
0. 0. 0. 0. 1. 1. 0.
*CO2-MNR-FACT
0. 1. 0.
*VOLUMEFRACTION-MINERAL
**'Anorthit' 'Calcite' 'Kaolinit'
0.0088 0.0088 0.0176
15. In the Input/Output section, print out mineral and aqueous phase related outputs for
visualization in Results (non-mineral related outputs will already be present) by adding the
following keywords:
*OUTSRF *GRID *MOLALITY 'CO2' *MOLALITY 'H+' *MOLALITY 'Ca++'
*MOLALITY 'SiO2(aq)' *MOLALITY 'Al+++' *MOLALITY 'OH-'
*MOLALITY 'CO3--' *MOLALITY 'HCO3-' *MINERAL 'Calcite'
*MINERAL 'Kaolini*' *MINERAL 'Anorthi*'
Results Interpretation
Analyze the mineral changes with the field by plotting the "Mineral Moles Changes" for ‘Anorthite’,
‘Calcite’ and ‘Kaolinite’. You can plot these curves under the date type "Sector" as shown below:
5. Also enter a mole fraction of zero for H2O for the Aqueous Phase Threshold Value, then
Click OK.
Results Interpretation
The reservoir model should now be imported with the associated properties.
5. Save the dataset as EXERCISE_7_3D_MODEL.dat.
Defining Reservoir Properties
6. In the I/O Control Section open the Titles and Case ID window and input the title
EXERCISE_7: 3D GHG MODEL FROM RESCUE IMP.
7. Open the Specify Properties window and set Permeability J and Permeability K to
Equal I for the Whole Grid.
12. Add a CO2 Injector well in the center of the Reservoir with the constraints as shown below.
Change the injected fluid to ‘SOLVENT’ and the injected mole fraction of CO2 to 1.
The rate constraint is coded with pink colour to denote that the injected fluid definition is missing.
Click OK.
14. Open the Well Events window and SHUTIN the well after 25 years of injection in the
Options tab for the well and click OK:
16. Save the file and Exit Builder. Open the file in a Text Editor.
Results Interpretation
Open the results of the file EXERCISE_7_3D_MODEL.sr3 in Results and observe the mineral
precipitation and dissolution that occurs over the run.
6. Define the initial stress distribution in the model by selecting ‘Initial Stress Distribution’ as
shown below.
11. Click on the Select button for the Grid Output Selection. In the window which appears
enable outputs for the following list:
BIOT Biot’s constant
BULKVOL Bulk Volume
GCOHESION Cohesion Value
GEORTYPE Rock type number for geomechanical material
PERM Permeability in each direction
POISSON Poisson’s ratio
PORDIFF Difference in geomechanics porosity and reservoir porosity
POROS Current porosity
PRES Pressure
SAFACTOR Safety Factor
SG Gas Saturation
STRAINVOL Volumetric Strain
STRESEFF Mean Effective Stress
STRESMNP Mean Principle Stress
15. We want to add 10 layers above and below the reservoir grid. We want the overburden
to extend to zero surface depth. We can also make the extended grid follow the varying
depth of the top and bottom of the reservoir grid. Fill in data as follows, click OK, and
save the model.
17. Type the following keyword and value at the bottom of the geomechanic rock type (just
under COHESION keyword), to model geomechanical impact on reservoir permeability:
GPERMLC 5
18. Type the following keyword and values at the bottom of the Geomechanics Section. This
is to magnify the displacements (for visualization only):
MAGNIFYDI 1e4
MAGNIFYDJ 1e4
MAGNIFYDK 1e4
19. Add the following keyword to the geomechanics section. This keyword improves the
accuracy of the porosity computed by the default coupling method (GCOUPLING 2)
between the fluid flow and deformation calculations.
CALIB_POR
20. The Geomechanics section should look as follows:
Also add:
EQUIL-REACT-RATE ON
CHEM-EQUIL-SET ON
in the geochemistry section, before ROCKFLUID.
NUMERICAL
*DTMAX 365.
*DTMIN 1e-9
*NORM *SATUR 0.2
*NORM *GMOLAR 0.005
*NORM *AQUEOUS 0.65
*MAXCHANGE SATUR 1
*MAXCHANGE GMOLAR 1
*MAXCHANGE PRESS 100000
*MAXCHANGE MINERAL-VFR 0.5
*CONVERGE *PRESS 1.E-05
*CONVERGE *WATER 1.E-04
*CONVERGE *HC 1.E-04
*CONVERGE *MAXRES 1.E-04
*NORTH 180
*ITERMAX 200
*PRECC 1e-08
*ITERCER 5
Results Interpretation
Given that we added a geogrid, the output consists of two SR3 files:
Open the second file in Results and observe the changes in geomechanical properties like
stresses and strain. Also notice the deformation in the actual grid. Plot the property Vertical
Displacement from Geomechanics. Also notice that the grid deformation is presented on a
magnified scale to improve resolution for interpreting results.
The property variation in a specific block (for example the block lying above the well at surface
level) can be checked by using the Quick Plot Block Property tool in Results. Position the mouse
on the block of interest, right click and click on Quick Plot Block Property: