Tutorial 2 - CO2 Storage - Cross Section - Thermal effects¶
You will learn about:
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:
having run Tutorial 1
Three input files, which can be downloaded from the following links:
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.
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.
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
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
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
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_FUNCTION QUADRATIC 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.
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.
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
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.
Login into your OGS account.
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.
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.
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: