Using TOUGHREACT with zero porosity boundary

Hey everyone,

I have recently tried to use a zero porosity boundary as I run a TOUGHREACT 2.0. In TOUGH2 manual, I have found out that this is allowable. But as I run this with TOUGHREACT, I find that all output values of aqueous concentration, mineral and gas in model domain have became to 'NaN'. But all boundary cells didn't have this problem.


VARIABLES =X,       Y,       Z,     T(C), Porosity,   Poros_Chg,   Permx(m^2),  Kx/Kx0, Permz(m^2),  Kz/Kz0 ,calcite    ,

 140000.000    500.000  -3911.000  133.396  0.30000  0.55511E-16  0.10000E-12  0.1000E+01  0.10000E-14  0.1000E+01  0.7000E+00
 144000.000    500.000  -4121.000  140.395  0.00000 -0.30000E+00  0.10000E-12  0.1000E+01  0.10000E-14  0.1000E+01         NaN
 148000.000    500.000  -4344.000  147.396  0.00000 -0.30000E+00  0.10000E-12  0.1000E+01  0.10000E-14  0.1000E+01         NaN


However, if I choose to set gases are not transported (NGAS1=0), the output gas values can be corrected displayed.

Therefore, I would like to ask why this is happening and whether TOUGHREACT could allow to use a  zero porosity boundary.

Thanks in advance for any reply and help!

6replies Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular
  • Wei,

    Do you mind if I ask you why you'd like to include this boundary?  Are there reasons more than preventing flow?


    - Mikey

    • Mikey Hannon Plz forgive me for my out of context reply

      I tried contacting you through your email

      but i am unable to send you email. 

      you sent me email, but i am unable to reply back.

      plz, contact me again. my email: telegramkik@gmail.com

  • Hi Wei,

    There are a lot more issues for the reactive-transport when using zero porosity, then in just using TOUGH2, so not all features may work, particularly in TOUGHREACT V2. So it will probably be trial and error whether zero porosity will work for all features. You probably could just use a very small porosity, like 1e-8, and a very small permeability, then make the minerals in the element unreactive. Also reduce the tortuosity to a very small number (not zero). There is also a flag sl1min in solute.inp, that skips reactions if the water saturation is below a set value. So if these grid blocks are gas saturated, and have very small porosities, no reaction should take place and transport through them should be negligible. If they are water-saturated, then just making the minerals unreactive should work (don't include any minerals in chemical.inp for those grid blocks). There are probably multiple ways to get around this problem. Many of these issues were resolved in later released versions of TOUGHREACT (V3omp and V3.32omp), since V2 is now over 8 years old.



  • Thanks for replying from Eric and Mikey.   

    In my models, I have included many time-dependent GENERATION items in every cell of model domain except the boundary cells.



    I have found that if I don't use a zero porosity, the fluid pressure of cells within model domain will increase significantly. But this is not the outcome that I wanted because the pressure in the modelling could exceed the maximum pressure limitation of fugacity coefficients of gases and cause the failure of running.


    Therefore, I am very curiosity whether using a very small porosity boundary (even as small as 0.1E-19 I used ) could cause the increase of fluid pressure and whether zero porosity boundary doesn't induce this problem.

    I also would like to ask whether TOUGHREACT 3 also have the same temperature and pressure ranges of fugacity coefficients as in V2, or it was extended in new released versions.

  • Hi Wei,

    If pressures are too large due to fluid injection, then your boundaries are most likely too close. Boundaries should usually be made far enough that they don't influence the results unnaturally. Once a steady-state initial flow field is run (usually with no-flux or fixed flow/pressure boundary conditions) then those cells can be often set to a large volume, fixing the boundaries to the natural system pressure. That will allow fluid pressure from injectors to decline naturally. No-flux boundaries can also be used but they must usually be set out even further. This can be done efficiently by increasing the grid block size as one goes out to the boundaries. Usually if the flow conditions are  physically reasonable, then the reactive-transport is more likely to succeed.



    • One more thing. Using "zero" porosity blocks should not be used for the purpose you are intending. This is really for engineered components that may actually have zero porosity (like steel in a casing). If you really want to "trick" the code into not increasing fluid pressure so much (which is probably not physically correct), then just increase the pore compressibility to a large number (the usual value is around 1e-9, but if you increase it by a few orders of magnitude, then the porosity will increase to reduce the pressure. This will likely cause some mass balance issues if the porosity increases too much., but increasing it t 1e-7 or 1e-8 may be enough to mitigate some of the pressure increase, without causing too much of a problem. Even with this change, the location and setting of the boundary conditions is very important to obtain a physically reasonable solution.

Like Follow
  • 2 yrs agoLast active
  • 6Replies
  • 78Views
  • 4 Following