Defining a multi-layered aquifer in TOUGH2

Dear All,

I am trying to simulate a sandstone aquifer capped by two sealing layers (Shale and evaporite), so there are totally 3 layers in my model.

I think there are two blocks in the input file that can be used to define the system; ROCK and LAYER blocks. I used the following order to define the lithology of the system with corresponding hydraulic properties:

ROCKS----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8

EVAP

SHAL

SAND

WELL

But I am not sure how to define the thickness of each unit in the input file. The thickness of the units are as follows:

Evaporite: 100m (top)

Shale: 150m

Snadstone: 500m (bottom)

I wonder if the following format is correct.

LAYER----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8

    3

      500.      150.      100.

I would be so thankful if you could check the input format mentioned above and let me know if it's correct or not.

Thank you!


17replies Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular
  • Hi Ramin,

    The basic concept and workflow is as follows:

    Block ROCKS simply defines material properties; they can later be referred to either by their names (EVAP, SHALE, etc.) or their ordering number within block ROCKS. Next, you generate a mesh, either by hand, using MESHMaker, or an external program. If you use MESHMaker, the vertical discretization is provided through block LAYER; each discretization layer (or "row" of elements will have the specified thickness (in your case, 500, 150, and 100 m; see the comments about discretization and stratigraphic layer thicknesses below). Terminate the meshgeneration step with ENDFI; the resulting mesh can be found in file MESH, which contains blocks ELEME and CONNE. Edit that file, and assign the material name or number (variable MA1 and MA2 in columns 16-20) to each element, either by hand or using a utility program such as AssignRock (downloadable at http://esd.lbl.gov/research/projects/tough/licensing/free.html).

    Note that you need to distinguish between the discretization "layers" you define in block LAYER from the stratigraphic layering, i.e., groups of elements assigned to SHALE or SAND etc. The stratigraphic layer may be thicker  than an individual row of elements, i.e., you may want to vertically discretize a stratigraphic layer into more than one model layer. The thickness given in LAYER is the thickness of a row of elements; the thickness of a stratigraphic layer is the sum of the element thicknesses assigned to a given material. Having only a single row of elements for each stratigraphic layer may not be a good idea; just think about the issues related to interface weighting of properties (see MOP(11)); I recommend you subdivide a stratigraphic layer into multiple discretization layers in block LAYER (e.g., replace the first layer of thickness 500 m by 5 discretization layers each of thickness 100 m), all of which later to be assigned to material SAND for a total stratigraphic layer thickness of 500 m).

    Hope this helps.

    Stefan

    Reply Like 1
      • Ramin
      • Ramin.1
      • 2 mths ago
      • Reported - view

      Stefan Finsterle 

      Hi Stefan,

      I have a very basic question about AssignRock.exe. Does it work when we have a huge amount of elements? 

      In my case, it works when I have less than 50000 elements, but fails when I used it for 96000 elements! (it actually creates the layers up to 50000 elements and the rest are deleted including CONNE!)

       

      Regards,

      Ramin. 

      Reply Like
      • Stefan Finsterle
      • Finsterle GeoConsulting
      • Stefan_Finsterle
      • 2 mths ago
      • 1
      • Reported - view

      Ramin,

      Download the source code AssignRock.f from here:

      https://www.finsterle-geoconsulting.com/download

      This version is dimensioned for 1 million elements - you may adjust as needed. Then compile the source code on your computer.

      Cheers,

      Stefan

      Reply Like 1
      • Ramin
      • Ramin.1
      • 2 mths ago
      • Reported - view

      Stefan Finsterle 

      Thank you very much Stefan.

       

      Cheers,

      Ramin. 

      Reply Like
      • Stefan Finsterle
      • Finsterle GeoConsulting
      • Stefan_Finsterle
      • 2 mths ago
      • 1
      • Reported - view

      Ramin 

      Ramin,

      The source code does NOT have a syntax error, and compiles just fine (Line 191 has a valid continuation line, so no THEN is needed). Make sure your compiler settings are correct (not f90 style).

      Stefan

      Reply Like 1
      • Ramin
      • Ramin.1
      • 2 mths ago
      • Reported - view

      Stefan Finsterle 

      Stefan,

      Thanks, now it works fine!

      But, I have still some problems:

      I have the following ROCKS in my input (with its mesh modified, i.e. desired grids are assigned to each rock type).

      ROCKS----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8
      Sand     2  2645.e00       .25   73.e-14   73.e-14   13.e-14       3.3      870.
         4.5e-10                 1.8
         12            0.8       .61       0.2     0.333      0.24       0.0      0.95
           0.95        0.0      0.96
         12            0.3      0.03    1.51E3     1.0E6       1.0       0.3    1.51E3
           0.97        0.0   1.0e-06      0.02       0.0
      Well     2  2600.e00       .99   73.e-10   73.e-10   73.e-10       3.3      870.
         0.0e-10                 1.8
         12            0.8       .61       0.2     0.333      0.24       0.0      0.95
           0.95        0.0      0.96
          9 
      shale    2  2600.e00     .1025   10.e-19   10.e-19   10.e-19      2.51      920.
         0.0e-10
          7           0.40      0.20        1.      0.05
          7           0.40      0.20   1.61e-5      1.e7      .999
      Band     2  2645.e00       .25   73.e-14   73.e-14   13.e-14       3.3      870.
         4.5e-10                 1.8
         12            0.8       .61       0.2     0.333      0.24       0.0      0.95
           0.95        0.0      0.96
         12            0.3      0.03    1.51E3     1.0E6       1.0       0.3    1.51E3
           0.97        0.0   1.0e-06      0.02       0.0 

       

      Anyway, it works fine when I am running it on my PC, but I get this message when I try to run it on Unix:

       =========================================================================
       i T O U G H 2 _ eco2n  R U N  date: Mon Mar  4 15:28:21 CET 2019
       =========================================================================

      Command submitted: /home/raminmo/bin/itough2 -m MESH reli real eco2n

      cp: cannot stat ‘-’: No such file or directory
      At line 228 of file t2f.f (unit = 55, file = '/home/raminmo/it2_5083/real')
      Fortran runtime error: Bad value during integer read
      cp: cannot stat ‘*.csv’: No such file or directory
      cp: cannot stat ‘*.gnu’: No such file or directory
       FILE /tmp/parallel.info DOES NOT EXIST. ASSUME THIS IS A SERIAL RUN OR THIS IS THE PARENT PROCESS.
      cat: status: No such file or directory

       

      I tried it with only 2 domains, and it worked perfect, but as I add another domain it crashes with the above message! (considering that nothing is wrong with my mesh since I can run it on my PC). 

      Would you please give me some hints?

      Thanks,

      Ramin

      Reply Like
      • Stefan Finsterle
      • Finsterle GeoConsulting
      • Stefan_Finsterle
      • 2 mths ago
      • Reported - view

      Ramin 

      Go to t2f.f, line 228, and you know exactly where the formatting error in file real is (you also know it happens when trying to read an integer, probably NAD). Check for tab stops.

      Stefan 

      Reply Like
      • Stefan Finsterle
      • Finsterle GeoConsulting
      • Stefan_Finsterle
      • 2 mths ago
      • Reported - view

      Ramin 

      Also check whether you end the ROCKS block with an empty line...

      Reply Like
      • Ramin
      • Ramin.1
      • 2 mths ago
      • Reported - view

      Stefan Finsterle 

      Yes, that's OK, but still cannot figure out what's going wrong! The input format is OK since it runs on my own PC, but does not work on Unix. 

      Reply Like
      • Stefan Finsterle
      • Finsterle GeoConsulting
      • Stefan_Finsterle
      • 2 mths ago
      • Reported - view

      Ramin 

      Send me all the input files exactly how you used them on Unix, and I will show you the formatting error.

      Stefan

      Reply Like
      • Ramin
      • Ramin.1
      • 2 mths ago
      • Reported - view

      Stefan Finsterle 

      I have already sent you an email. As soon as I get my problem solved, I will put explanations here so that everyone can use.

      Many thanks,

      Ramin. 

      Reply Like
      • Stefan Finsterle
      • Finsterle GeoConsulting
      • Stefan_Finsterle
      • 2 mths ago
      • 1
      • Reported - view

      Ramin 

      There are tabulator stops throughout your input file. Tab stops mess up the column location. Replace them with spaces and it will run.

      Stefan

      Reply Like 1
      • Andri Arnaldsson
      • Senior Geothermal Scientist - Vatnaskil Consulting Engineers
      • Andri_Arnaldsson
      • 2 mths ago
      • 1
      • Reported - view

        Ramin , it is a good idea to run the dos2unix utility on any files that have been "contaminated" by windows - https://en.wikipedia.org/wiki/Unix2dos

      Reply Like 1
  • If you would like to get fancy and have access to GMS (Groundwater Modelling System) you can create your geologic model and grid in GMS and then translate all the files in tough2 format using TMT2; see http://tough.forumbee.com/media/q4kbx/download/borgia---tips-and-tricks.pdf. You can also try Petrasim, which for simple problems does it all for you...

    Reply Like
  • Thank you so much! It worked. 

    Reply Like
  • Hi Ramin,

    You could also have a look at PyTOUGH ( https://github.com/acroucher/PyTOUGH ): it is a set of entirely free open-source modules, written in Python. Several examples on usage are on the github page. Creating a mesh as the one you described above is really simple, but also more complex structures are easily possible. If you are interested, I can give you some help with getting started with it.

    Cheers,

    --- Florian ---

    Reply Like
  • Hello Florian,

    Thanks for your comment. I tried "PetraSim" and found it really easy to define the model. I will go through "PyTOUGH" that you mentioned. 

    Thank you very much!

    Reply Like
Like3 Follow
  • 3 Likes
  • 2 mths agoLast active
  • 17Replies
  • 2630Views
  • 5 Following