Tutorial 3 – CO2 Storage site connected to a nearby hydrocarbon field¶
You will learn about :
set up a model using a reservoir geometry and geology given in ECLIPSE format
use calendar dates to define simulation events
set up horizontal wells
What do you need to run this tutorial:
having run Tutorial 1
Five input files that can be downloaded using the following links:
This tutorial describes a CO2 storage problem into a saline aquifer in proximity of a hydrocarbon field. As the two are pressure-connected, the depletion of the hydrocarbon field causes a pressure gradient that drives the CO2 plume migration. The depletion of the hydrocarbon field is modelled using a dummy well producing brine. The storage layer is split in two compartments by a fault, which is crossed by the CO2 plume during the post-injection migration phase.
The target layer extends 3 km x 3 km in the horizontal directions, and has a thickness of about 100 meters.
With a text editor open the input deck provided for this tutorial, ccs_3df.in. The explanation below discuss only sections with instructions not covered in Tutorial 1.
You must define the simulation grid and its static properties (permeabilities, porosities, etc.) by an include file in the grid block:
GRID TYPE grdecl ccs_3df.grdecl END
This the ccs_3df.grdecl file provided with this tutorial, which you can open with a text editor:
DIMENS 30 30 12 / external_file ccs_3df_geom.grdecl external_file ccs_3df_prop.grdecl EQUALS ACTNUM 0 7 7 15 15 1 1 ACTNUM 0 30 30 29 29 12 12 /
The instructions describe a grid of 10800 blocks, with their locations defined by the coordinates of their corner points, listed in the include file “ccs_3df_geom.grdecl”, and their static properties (porosity and permeability) given in the other include file “ccs_3df_prop.grdecl”. These two files follow the format of a GRDECL Grid, as any other input card defined in ccs_3df.grdecl.
This tutorial shows also an example of deactivating cells using the ACTNUM keyword.
In the time block you can use calendar dates to define the start and end of the simulation. In this tutorial a 200 years simulation is set up, starting from 1 JAN 2025:
TIME START_DATE 1 JAN 2025 FINAL_DATE 1 JAN 2225 ! 200 years simulation INITIAL_TIMESTEP_SIZE 1 d MAXIMUM_TIMESTEP_SIZE 30 d at 0. d MAXIMUM_TIMESTEP_SIZE 1 y at 10 y END
You can ask for a solution report every 20 time steps and for key events such as the start and stop of CO2 injection, the stop of hydrocarbon production and the simulation end. You can include the reporting of these key events by specifying the number of days since the simulation START_DATE:
OUTPUT MASS_BALANCE_FILE PERIODIC TIMESTEP 1 END ECLIPSE_FILE PERIOD_SUM TIMESTEP 5 PERIOD_RST TIMESTEP 20 WRITE_DENSITY ! 1 JAN 2027 = 730 days - no leap years between 2025 and 2027 - CO2 injection starts ! 1 JAN 2031 = 2191 days - 1 leap years between 2025 and 2031 - CO2 injection stops ! 1 JAN 2033 = 2922 days - 2 leap years between 2025 and 2033 - Production stops ! 1 JAN 2025 = 73048 days - 48 leap years between 2025 and 2225 - Simulation ends TIMES d 730 2191 2922 73048 OUTFILE END LINEREPT END
As the simulator does not support reporting dates, when converting to the number of days you must account explicitly for leap years. Although this is an inconvenient, it helps to identify events when monitoring the simulation screen output or log files, where the physical time progress is given in days.
You can define an horizontal CO2 injector by including completed grid blocks one by one, specifying the X or Y drilling direction.
In this tutorial, the horizontal injector is defined by 8 completions, all in the layer above the bottom one. The injector is shut during the first 2 years, it then opens on 1 JAN 2027 with a target mass rate of 0.682 Mt/year, and it shuts on 1 JAN 2031.
WELL_DATA injg CIJK_D 21 21 11 11 CIJK_D 22 22 11 11 CIJK_D 23 23 11 11 CIJK_D 24 24 11 11 CIJK_D 24 25 11 11 CIJK_D 25 25 11 11 CIJK_D 25 26 11 11 CIJK_D 26 26 11 11 CONST_DRILL_DIR DIR_X DIAMETER 0.1524 m WELL_TYPE GAS_INJECTOR BHPL 400 Bar SHUT DATE 1 JAN 2027 ! Open injector 2 years after simulation starts OPEN TARG_GM 0.682 Mt/y DATE 1 JAN 2031 ! Shut well 4 years after injection started SHUT END
The brine producer that models the pressure depletion caused by the nearby hydrocarbon field, is vertical and located at the opposite corner of the injector, in the other side of the fault.
Production occurs since the start of the simulation and lasts 8 years until 1 JAN 2033.
WELL_DATA prod CIJK_D 1 1 1 12 DIAMETER 0.1524 m WELL_TYPE PRODUCER BHPL 150 Bar TARG_WSV 1000 m^3/day DATE 1 JAN 2033 ! Close producer 8 years after simulation starts SHUT END
After the simulation has completed the first time step and produced an output for the initial solution, you can open the CCS_3DF.GRID output file with ResInsight and display the well location. To do this click on the icon “Show Well Cells”:
You will see a display like the one below:
Open a terminal window, navigate to the folder where you have downloaded the input files for this tutorial and launch a simulation.
You can use file
pft.sh script to run the simulation using the following command:
./pft.sh CCS_3DF.in 4
This will run the case on 4 cores. As the simulation progresses the screen output shows you the physical time progress, the time step size, and at the end of each time step the values of the field gas injection rate and total (fgir, fgit), the field average pressure (fpav), etc.
If you want to run the case in the background, and write the screen output on a log file, use the following command:
nohup ./pft.sh DS_3DF.in 4 > CCS_3DF.log &
The screen output will be saved to CCS_3DF.log.
Login into your OGS account.
Upload the input deck CCS_3DF.in, and upload and link the following external files:
Turn on a small test machine, with maximum duration of 1 hour.
Submit to the test machine with 8 cores.
Once the run is complete, download all the output files into a folder you can access later to analyse the results.
Launch ResInsight, and open the “CCS_3DF.GRID” file. In the dynamic property select Pressure. Then expand “Cell Result” in the left-side menu, and in the bottom left, under “Mapping”, “Range Type”, select “Min and Max for the Current Time Step”.
Then on the top bar select the report date at the start of the injection, 1 JAN 2027:
When the injection starts, the production has already been going for two years, creating a low pressure region around the injector, in a shallower layer already at lower pressure due to hydrostatic pressure.
Now click again on “Cell Result” on the left-side menu, and select gas saturation (SGAS) in the property editor. Select two times to analyse, the end of the injection (1 JAN 2031) and the end of the simulation (1 JAN 2225):