# Tutorial 3 – CO2 Storage site connected to a nearby hydrocarbon field¶

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

Tutorial sections:

## Problem description¶

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.

## Setup of the input file¶

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.

### Grid¶

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.

### Time¶

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


### Output¶

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.

### Wells¶

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:

## Run on your Ubuntu Desktop¶

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.

## Run on the OGS WebApp¶

• ccs_3df.grdecl

• ccs_3df_geom.grdecl

• ccs_3df_prop.grdecl

• co2_dbase.dat

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.

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