# Tutorial 2 - CO2 Storage - Cross Section - Thermal effects¶

• set up a CO2 storage problem that models temperature effects

• create line plots

• analyse results of thermal CO2 storage studies

What do you need to run this tutorial:

Tutorial sections:

## Problem description¶

The CO2 storage problem you are going to model is the same cross section of Tutorial 1. It extends 5000 m in the horizontal direction and 400 m in the vertical direction, with the top located at a depth of 800 m.

Hydrostatic pressure and a geothermal gradient of 3 C/100m describes the unperturbed reservoir conditions before injection starts. The reservoir is initially saturated with brine and 1Mt per year of CO2 is injected at 1000 meters depth, in the middle of the domain, for 6.85 years, at a temperature of ~56 C, where it finds a reservoir temperature of 35 C.

A producer operating a constant pressure is completed in the bottom layer to emulate a deep aquifer underneath and avoid pressure build up.

## Setup of input file¶

As the problems of Tutorials 1 and 2 differ only for the temperature modelling option and the simulation time, only the sections that divert will be covered.

### Simulation¶

Select the GAS_WATER mode, and be sure the ISOTHERMAL card is removed, as the software runs with the temperature option switched on by default.

SIMULATION
SIMULATION_TYPE SUBSURFACE
PROCESS_MODELS
SUBSURFACE_FLOW Flow
MODE GAS_WATER
OPTIONS
RESERVOIR_DEFAULTS
/
/ ! end of subsurface_flow
/ ! end of process models
END  !! end simulation block


### Time¶

Specify the final time of the simulation, 2500 days, using FINAL_TIME:

TIME
FINAL_TIME 2500 d
INITIAL_TIMESTEP_SIZE 0.1 d
MAXIMUM_TIMESTEP_SIZE 50 d at 0 d
MAXIMUM_TIMESTEP_SIZE 250 d at 300 d
END


### Output¶

Add the statements to output the density and viscosity (WRITE_DENSITY, WRITE_VISCOSITY), as it will be interesting to observe how these two parameters change with temperature in the region around the injector.

OUTPUT
MASS_BALANCE_FILE
PERIODIC TIMESTEP 1
END
ECLIPSE_FILE
TIMES d 2500
PERIOD_SUM TIMESTEP 5
PERIOD_RST TIMESTEP 25
OUTFILE
WRITE_DENSITY
WRITE_VISCOSITY
END
LINEREPT
END


### Material Property¶

Enter the rock density(2350 kg/m3), the specific heat capacity (1000 J/(kg-K) ) and the thermal conductivities (1.54 W/(K-m) ) needed for this thermal run.

MATERIAL_PROPERTY formation
ID 1
ROCK_DENSITY 2.350d3
SPECIFIC_HEAT 1.0d3
THERMAL_CONDUCTIVITY_DRY 1.541d0
THERMAL_CONDUCTIVITY_WET 1.541d0
SOIL_COMPRESSIBILITY    4.35d-10 ! 1/Pa
SOIL_REFERENCE_PRESSURE 1.0D5
CHARACTERISTIC_CURVES ch1
/


Note that two thermal conductivities are given for the brine-saturated (WET) and brine-unsaturated (DRY) rock, taking a saturation-weighted average. Using the same values for both dry and wet rock will remove the saturation dependency.

### Thermal boundaries¶

To model the thermal inertia of the over- and under-burdens, fix the temperatures of the top and bottom layers for the entire simulated period, using TBC_DATA and the same temperature table used to initialise the study.

TBC_DATA tbctop
TEMPVD m
800  29
1000 35
1200 41
END TEMPVD
CONN_D 1 50 1 1 1 1 Z-     !top faces
END

TBC_DATA tbcbot
TEMPVD m
800  29
1000 35
1200 41
END TEMPVD
CONN_D 1 50 1 1 100 100 Z+ ! bottom faces
END


Using the same temperature-versus-depth table used in the study initialisation, the temperature values at the boundary depths will be interpolated. This is equivalent to fixing constant temperatures at the top and bottom if layers are flat. However, in case of irregular boundaries, the table approach fixes the temperature boundary values to their initial values, which can very with depth.

CONN_D defines the layers to which the thermal boundary is assigned. Inter-grid-block faces are skipped.

### Wells¶

Define a gas injector located in the middle of the cross section (block 25,1,50), with an injection target of 1 Mega tonne of CO2 per year (Mt/y).

You must specify the pressure and temperature of the CO2 being injected, in a point where these parameters are known, as the code need them to compute the energy (enthalpy) entering the reservoir.

From the point where pressure and temperature are specified to the bottom hole conditions of the injector, the code assumes an isenthalpic process, neglecting heat exchanges with the surroundings rock, as well as changes in potential and kinetic energies.

For this tutorial, the energy entering the system is specified assuming CO2 delivery conditions of 120 Bar and 45 C.

WELL_DATA injg
WELL_TYPE GAS_INJECTOR
INJECTION_ENTHALPY_P  120 Bar
INJECTION_ENTHALPY_T  45 C
BHPL     1000    Bar
TARG_GM 1.0 Mt/y
CIJK_D   25 1 50 50
TIME 2500 day
SHUT
END


## 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_TH.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.

## Run on the OGS WebApp¶

Upload the input deck CCS_TH.in, and the two external files, ccs_th.gerdecl and co2_dbase.dat. Link the input deck to the two external files.

Turn on a small test machine, with maximum duration of 1 hour.

Submit to the test machine with 4 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¶

### Summary file – Injector BHP and temperature plots¶

The software output the ECLIPSE summary files (CCS_TH.UNSMRY, CCS_TH.SMSPEC) and the mass files (CCS_TH-mas.dat), both containing information to generate line plots (field average pressure over time, BHP of a well vs time, etc.).

To open the ECLIPSE summary file launch ResInsight and open the CCS_TH.GRID file, then click on the graph icon on the top left corner:

The line plots editors will open:

To display the curves available for plotting, right click on “Compose Plot”, red box in the figure above, and click on “Edit Summary Plot”. The following pop-up windows will open:

To plot the injecotr bottom hole pressure (BHP), from left to right select, CCS_TH, Well, ING, WBHP. Then click Ok. This will generate the BHP vs time plot. Repeat the same steps to generate the injector temperature (WTEMP) vs time plot:

The BHP of the injector spikes above 480 Bar in the first few days of the injection, then rapidly drops to about 200 Bar. The injection fluid sees an initial compression of 360 Bars (form 120 at delivery condition to a BHP of 480 Bar), which rapidly declines to about 80 Bar (from 120 to 200 Bar). This compression causes a warm up of the CO2 being injected, which enters the reservoir at about 56 C when the BHP has stabilised to around 200 Bar.

### 2D contour plots of Temperature, Density and Viscosity¶

Now go back to the main window of ResInsight, where you previously loaded CCS_TH.GIRD. Click on the 2D view (N icon), select the temperature in the property editor, and select the last time step. Finally click with left-button of the mouse on the grid block completed by the injector to generate the plot of temperature vs time for the same block:

The CO2 injected warms up the region around the well, which was initially at a temperature of around 35 C. As a consequence, the CO2 around the injector has a lower density and viscosity than those predicted by the isothermal run.

You can visualise the contour plots of gas density and viscosity selecting DGAS and VGAS in the Property Editor of ResInsight: