Timestep problems while including O2(g) in calculations (V3-OMP / ECO2N)

Hello everybody,

I have found the next problem for you to resolve :-). I am using Toughreact V3.0-OMP, but the problem would appear with V2, too, I assume.

I am still simulating the injection of CO2 into a saline aquifer, but this time I wanted to include O2(g) in my calculations, so I added it in the chemical.inp file as an allowed gas (not [yet] as a trace gas for injection). If I do so, the simulation runs mostly with the minimal timestep length of dt=0.01s. The runlog file is full of

x  and the iter.out file looks like this (I already increased the iterations to solve chemistry to 400):


I assume, that it comes from the comparatively large amount of reactions where O2(aq) [not O2(g)] is involved, as the redox couple in the database rests on O2/H2O. If I leave out the CO2 injection (i.e. if I do not force the system to calculate large chemical changes), the simulation runs pretty well, hence the problem does not only rely on the pure allowance of O2(g).


Does anybody have an idea how to implement O2(g) in such simulations with more acceptable timestep lengths or which parameter might be chosen wrong? Or does it simply not work due to the redox couple? Please let me know, if you need any further information on the simulation system. Many thanks in advance!

4replies Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular
  • In the initial gas zones in chemical.inp, make sure you enter the O2 amount as a mole fraction (same as volume fraction).  In the gas zones, the initial main gas (CO2) amount is entered as a partial pressure, but other (trace) gases need to be entered as mole fractions.  We will revise the manual and input file examples to make this clear. 

  • Hi Nic,

    thank you for your response, but I believe that the notations in the chemical.inp file are correct:



    hence it is not yet the presence of O2(g), but simply the including in the calculations which totally slows down the simulation. The data in the database is from the tk1-ympR5.dat file, so I assume this to be correct, too.

  • In your gas input block above, you are specifying a system with O2 initially at equilibrium with the water.  Because O2(aq) is used as a primary redox species in the database, if the initial system is reduced, the computed activity of O2(aq) will be extremely small (thermodynamically significant but un-physically small), and this could make your simulations difficult to run.  Maybe try with a database with redox specified in terms of HS/SO4 instead of O2/H2O.  You can use the utility KSWITCH to "switch" O2(aq) with HS- in your database, or use one of the other provided databases with redox already in terms of HS/SO4.  Hopefully this will help.  If you have both fully reduced and fully oxidized zones in your model (thus with a sharp redox gradient between them), the time step may need to be quite small regardless of the database.  Also, always run long-term simulations without injection first, and check that the geochemical system remains nearly steady for 100's to 1000's of years, with good convergence.  If this is not the case, it will indicate that a problem exists with the initial conceptualization of the modeled system, and that inputs need to be revised to achieve a (pseudo) steady geochemical state.  This first (ambient, no-injection) simulation step is typically always the most difficult to achieve, and the most important.   

  • Hello Nic,

    thank you for your comments! It seems, as if there is a real limitation with this very small oxygen activities and the equilibrium between O2(aq) and O2(g).

    I tried a different database including the redox couple based on HS-/SO4-2 (tk-ddem25aug09-HS-SO4.dat) and even simplified the system a little bit, but it did not help. Additionally, I changed the secondary species involving O2(aq) consumption or production and this revealed, that if reactions / species are allowed, which are produced by oxidation, the system breaks down (any Fe3+ species, any SO4-2 species, any minerals incorporating these species such as goethite, hematite, anhydrite). If I only add species, which refer to reduction such as H2(aq), HS-, H2S or pyrite, the simulation still runs. Thus there seem to appear such a strong redox gradient, although the geochemical system does not exhibit a highly reduced (or oxidized) state from my point of view.

    I let the system run for 100 years without any injection and it smoothly reached equilibrium within the first 10-20 years with only little changes in mineral (and brine) composition. Hence I feel quite confident, that the geochemical system itself is simple enough and does not hide any unrealistic, unwanted complications.

    Finally, I will stick to a very short simulation as a "proof of principle" demonstration and let oxygen be oxygen.

    Anyway, thank you for your support once again!

Like1 Follow
  • 8 yrs agoLast active
  • 4Replies
  • 1226Views
  • 2 Following