Steady-state simulation of a low-type geothermal system
Dear TOUGH2 Users
Good morning/afternoon
This is my first post to this forum and I’d like to receive guidance and help to perform a steady-state natural simulation model of a low-type geothermal system.
Recently I am using TOUGH2 to simulate the steady-state condition of a low-type geothermal system by understanding the temperature and pressure distribution beneath the study area.
This study area contains in total five geological layers with different physical characteristics, plus “Air” layer plus a “heat source” layer and a “fault” layer. All these layers/materials have physical characteristics mentioned in this Table:
Materials |
Geology |
Density (kg/m3) |
Porosity (%) |
Permeability (m2) |
Wet Heat Conductivity (W/m K) |
Specific Heat (J/kg K) |
Material 1 |
Quaternary rocks |
1650 |
0.1 |
1.0E-15 |
2.5 |
500 |
Material 2 |
Upper Tertiary rocks |
2500 |
0.3 |
1.0E-13 |
3.44 |
500 |
Material 3 |
Lower Tertiary rocks |
2700 |
0.3 |
1.0E-13 |
3.44 |
500 |
Material 4 |
Upper Cretaceous rocks |
2600 |
0.3 |
1.0E-13 |
3.44 |
500 |
Material 5 |
Basement rocks |
2800 |
0.3 |
1.0E-13 |
3.60 |
500 |
Material 6 |
Fault |
2400 |
0.3 |
1.0E-13 |
3.50 |
500 |
Material 7 |
Heat source |
2800 |
0.3 |
1.0E-13 |
3.80 |
500 |
Material 8 |
Air |
1225 |
0.003 |
1.0E-13 |
2.50 |
500 |
Our questions are:
1) In this model, I want to create initial conditions using a hydrostatic pressure of 1.013 105 Pa and a geothermal gradient of 3 oC/100m for all the model except “Air” layer and an average air temperature of 28 oC. I have difficulties in including such information in the initial conditions (Function). The model is running from top to -8000m.
2) We included a fault in this model. We increased the vertical (Z) permeability to permit the vertical flow of hot waters. However we dont see any upflow in this model, may be due to initial conditions or other parameters.
3) We included a heat source at the bottom of the model, at some specific blocks.
4) We run the model for 1 million years but couldn’t get good results (the temperature is low at the botton and high at the top of the model). May be problem due to initial conditions, or boundary conditions.
I attach here the TOUGH2 input file.
Thank you,
Saibi
19 replies
-
Dear Saibi,
I downloaded your zip file and extracted what should be the input file, but when I tried to read it I found it is not an ASCII (i.e. plain text) file, which is what a TOUGH2 input file should be. Are you using TOUGH2 through an interface that helps you create the input file? If you can post the actual input file, I will look at it.
Christine
-
Dear Hakim,
I looked at your Excel file, and as far as I can tell, it all looks reasonable. However, to have a chance of helping you, I need to look at the actual TOUGH input file. I think Petrasim has an option for you to save your TOUGH input file as an ASCII file or possibly as several ASCII files. See if you can do this. Christine
-
There is something off with your initial pressure (see attached figure). Your initial temperature does not seem to follow the temperature gradient you wanted (28 - 0.03 * z which means 268 at the bottom of the model).
I never used Petrasim so I can't tell how to solve your issue in Petrasim.
-
Dear Hakim,
The file you attached T1.dat is the correct format for a TOUGH input file. However, since I haven't used Petrasim for a really long time, I cannot be sure this is the input file that Petrasim is using, but let's assume that it is. I see your model has 24 layers, with 900 grid blocks per layer. It is built from the bottom up, so the first elements shown in the ELEME block are the deepest and the last ones represent the air. I agree with Keurfon that there is something wrong with your initial conditions (INCON block). For a normal hydrostatic pressure gradient, I would expect the pressure at the bottom of the model (8000 m depth) to be about 800 bars, but yours is 97 bars. Actually, I am not sure TOUGH's normal equation of states go to pressures as high as 800 bars. What EOS are you using? Also, as Keurfon pointed out, your deep temperatures are far too low to represent 3C per 100 m. The properties in your ROCKS block do not correspond to those shown in the table you posted to the forum. In fact most permeabilities are so small (1E-18 to 1E-19 m2) that I can see why you might get no fluid flow. Please check the units that Petrasim expects for permeabilities, to see if a misunderstanding is causing your rock permeabilities to be so low. On the other hand, the air permeability is very big (1.25E-6 m2). When you specify an air boundary condition, you should realize that TOUGH is not set up to actually model what is going on in the air - you are just holding T and P fixed there. I don't think you should specify a permeability any bigger than 1E-12 m2 for air. Also, the volumes of your air grid blocks are not really big enough to act like a constant T, constant P boundary. They are only about 10 to 100 times bigger than other grid blocks in the problem, whereas they should be 1E20 to 1E30 times bigger.
One other thing, your input file (first line of the PARAM block) asks the code to take 9999 steps and create a complete printout of all gridblock conditions every step. This is probably not necessary and is making your output file way too big. I recommend asking for a printout every 9999 steps (so you will just get one if you run all 9999 steps) and using the TIMES block to get printouts at a few specified times. Also, set MOP(1)=1 and MOP(7)=1 to get more helpful information about your simulation.
I know TOUGH input parameters get set by Petrasim based on how you fill out a form, so it may not be easy for you to adjust them, but I think the Petrasim User's Guide does provide helpful information. Perhaps you could contact the folks at Petrasim to make sure the interface is working the way you expect it to. Or maybe there are forum readers who are experienced in Petrasim and are willing to help.
Christine
-
Dear Hakim,
I ran a sample problem injecting into a closed volume with EOS1 and the pressure was able to go way above 800 bars without any obvious problems, so your hydrostatic profile for 8000 m depth should be okay.
I glanced through the Petrasim User's Manual, and I think one way for you to create your initial conditions would be to specify them by layer. This will be kind of tedious as you have 24 layers, but if you are patient I think it will work. I recommend you use Excel or something similar to calculate columns of z, P(z), and T(z) according to the hydrostatic and geothermal gradients you want. Pick the z values for each row to correspond to the main part of your layer depths, ignoring the little region where the layers are not flat. You might want to have a column that gives the name of the layer for each row too, to make it easy keep track of where you are for entering them in Petrasim. Then have Excel open in one window and Petrasim open in another window, and in Petrasim go to Edit Properties and Specify by Layer and then copy the P and T values from Excel into Petrasim one layer at a time. (See Petrasim User's Manual, Ch. 9 Boundary and Initial Conditions, sub-section Layer and Regional Initial Conditions).
When you run TOUGH, if you have elements with a huge volume (like the top layer), the P and T values you entered will not change - they become a fixed boundary condition. You might want to hold the temperature at part of the bottom layer fixed also (at the locations where there is not a heat source). To keep temperature fixed while not keeping pressure fixed, have a normal volume and a huge rock density. Then it will be a closed boundary for fluid flow and a constant-temperature boundary. But remember to not do this for your heat source elements, they must have normal volume and normal rock density.
Does this sound reasonable? When I run TOUGH directly (without the Petrasim interface), I usually write a utility program to create initial conditions cell by cell, where I read the z value of each cell from the ELEME block, and calculate T=T0 + gradT*z and P=P0 + gradP*z, then write an INCON block. Since your grid layers are mostly flat, what I suggest you do by layer in Petrasim is essentially equivalent to this. And as TOUGH runs, it will adjust the temperatures for the non-flat part of the grid.
If any other Petrasim users have a better idea, I would be happy to hear it.
Christine
-
Dear Hakim,
I might be confused, but it looks like you are using the two-waters option for EOS1, since your MULTI block is 2 3 2 6. According to the User's Guide, INCON is expecting variables in the order (P, T, X2), where X2 is the mass fraction of the second water, but the INCON block you have is in the order (P, 0, T). Could you be using EOS3? If you really are using EOS1, I recommend getting started with the one-water version (MULTI 1 2 2 6), because there are things you need to be careful about with the two-water option.
Christine
P.S. Thanks Keurfon for the Python script and pointer on Dirichlet boundary conditions.
-
Dear Hakim, You should use the Command Line option in Petrasim, where you specify the name of the input file you want to use (in your case, the T1_modified file). Check "Chapter 14 Command Line Execution of TOUGH2" in the Petrasim Manual. Christine