Lithofacies random fields in TOUGHREACT?

Hi, I am trying to apply random fields both in flow and rock chemistry.

I know I can do one for the flow field using permeability modifier (PMX) option equipped in TOUGH2 (flow.inp), but couldn't find one for the rock chemistry.

I know TOUGHREACT can handle this since there're some published papers already did this. One example is below,


they (including Tianfu Xu, one of the developer) generated Calcite random field (Fig. 5).

However, I couldn't find how they actually apply the statistical moments properties (mean and variance) into the TOUGHREACT input file (presumably chemical.inp?). All I can find was a classic reference (Robin, 1993) talking about theoretical basis. I would like to know how this can be applied to TOUGHREACT input file.

Any advice would be appreciated.
Thank you!

7replies Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular
  • Hi Jaeshik,

    In TOUGHREACT, the best way to add permeability heterogeneity (and porosity heterogeneity) is in the INCON block. The permeability modifiers added to the ELEME block as used in TOUGH2 is available, but not really adequate because the porosity & permeability are modified by mineral-water reactions and for restarts the prior porosities and permeabilities must be used. TOUGHREACT V3.0-OMP and V3.32-OMP keep track of all permeabilities and porosities at every grid block (rather than just the rock type as in TOUGH2) at the current time step, the previous time step, the beginning of the current simulation, and the very first simulation in a series of restarts.

    For reading in random fields of mineral abundances, then the following option is probably the best choice:

    MOPR(16)                 = 1       Reads heterogeneous mineral volume fractions from input file min_volf.inp

    Alternatively, one can create many different mineral zones or water compositional zones in chemical.inp and assign them to individual grid blocks in solute.inp. That may be easier, but more work to develop a truly random field. A new option in TOUGHREACT V3.32-OMP allows one to assign mineral or water zones to the rock types given in flow.inp, but one would have to create many rock types first to get a random field.

    As you can see, there are some different ways to accomplish this, and for some combinations of options, different regions of the model domain can have different options applied.



    Like 1
  • Thank you for the prompt reply Eric,

    However, I still have no idea about how to prepare separate input file, <min_volf.inp>.

    Is there any example or that I can refer to? All I can find on the web is very short description from TOUGHREACT manual (pp. 26).

    The other option you suggested (assigning different mineral zone) might take too much effort if I want to model a field scale..

    Thank you very much anyway :)

  • Hi Jaeshik,

    Yes, there are no sample problems for this option, so I just created one. This min_volf.inp file works with test problem 8 (P8-EOS1). Just add this file and set MOPR(16)=1. I made all the mineral abundances the same and equal to that in mineral zone 1, just to show that it gives exactly the same results as having a single zone. This option is fairly basic, since it only accepts mineral volume fractions and the surface areas will be derived from mineral zone 1, (but modified based on the mineral volume fraction and porosity).

    good luck,


  • Jaeshik,

    I guess the forum site automatically zips text files, so hopefully the file I attached will be ok. Let me know if it isn't. 


  • Thank you, it worked flawlessly and I can see the results are slightly different from the default one.

    For the last question, can I know the meaning of each column of your <min_volf.inp>? I see 13 columns first of which is an element index of course but have no idea on the next 12 columns (actually, each column has the same number in the vertical direction). Are these mean or variance for the random distribution that I can control?

    I appreciate so much for your valuable advice! 


    oh, I see that each column represents the 'dry initial fraction of each mineral'. Than, this seems to me that I need to type it one by one, which makes it difficult to apply to the field scale model either.

    is there any other way that I can distribute those like real random, using certain mean and variance?

    Thank you!

  • Jaeshik,

    There is a header line at the top. The first five characters are the element name, then followed by 2 blank spaces. Every column has a mineral volume fraction in the same order as the minerals in mineral zone 1 (see the chemical.inp file and you will see they are the same). The mineral volume fractions are free format, so regular spacing isn't required. However, it will read in just 200 characters, so all the mineral volume fractions must fit in that space. You must give values for all the minerals, and for all the grid blocks in the same order as the MESH file.


  • Jaeshik,

    Regarding how to create this file, since it is a simple text file of columns, you can use any statistical or mathematical program (Matlab, R, Octave, or write a unix, fortran, C, python, etc. program or script), to create the data from the list of elements in the MESH file. Should be able to do it in Excel, too. Just read or cut the list of element names and paste the columns of mineral abundances. No need to type anything. 


Like2 Follow
  • 4 yrs agoLast active
  • 7Replies
  • 485Views
  • 2 Following