Mass Balance for trace gases in TOUGHREACT V3-OMP

Dear colleagues,

I stumbled about a little problem concerning the mass balance for trace gases using the new TOUGHREACT V3-OMP version. I am simulating the injection of CO2 containing trace gases such as NO2. I am using the ECO2N module.

For instance, I simulated the injection of CO2 at a rate of 9 kg/s = 204 mol/s for 10 years, yielding a total amount of injected CO2 of 6.44E10 mol. If I apply a mole fraction of 0.002 for NO2, I should have injected 1.29E8 mol of NO2. However, the mass balance of TOUGHREACT tells me, that the total amount of HNO3(aq) (which is my primary aqueous NOx species) sums up to 9.03E7 mol including aqueous, solid and gaseoues species. This is a mismatch of 30%.

If I apply 0.0004 as an initial mole fraction of NO2, it ends up with 1.11E6 mol in the mass Balance versus 2.58E7 mol from the total amount estimation, which corresponds to a mismatch of 95%.

Does anybody has an idea, where I can look for mistakes in my input data? For instance, I already used a relatively tight TOLCH tolerance of 1E-7 for minimizing accumulated mass imbalances. Or how is the mass balance for the trace gases implemented in the new TOUGHREACT Version?

Greetings, Lennard

4replies Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular
  • Hi Lennard,

    There should not be a problem in the actual mass injected of trace gases. However, if you use the mass balance output file to check for mass balance, then maybe something was not updated there. I will check into it. The tolerance is probably less of an issue than the timestep. Make sure you use a Courant number of about 0.5, and then check your results.


  • Hi Eric,

    thanks for your response! I will check the courant number, although I already limited the timesteps to 100s.

    One additional thing I was wondering about in the mass balance file is the missing representation of the injected mass of the trace gas component in terms of its associated primary aqueous species (in my case HNO3(aq) for NO2). It simply looks as follows (I removed the other primary species for clarity. The upper data blocks belong to the 0.04% case an the lower block to the 0.2% case):


    For explanation: These simulations were run as a restart at t=1 year, thus already a relatively high initial amount of hno3(aq) is already listed, but belongs to the first year injection.


  • Lennard,

    I checked the mass balance routine, and it does not include the trace gases. Actually, I never thought of updating this routine when I put in the trace gases option because I haven't looked at that mass balance file for several years! But now that I know someone actually looks at this file I will make the fix. I am planning to release a free V3.1-OMP update to V3.0-OMP users sometime in the next several months, so I should be able to include this.


  • Dear all,

    I believe, I have found the reason for my mismatch observation. Obviously, it is connected with the formation of the dry-out zone.

    During the desiccation of a grid cell, a (small) fraction of dissolved HNO3(aq) is transported by advective transport to the next cell. However, a (large) fraction of the remaining water evaporates into the CO2 phase. Thereby the concentration of HNO3 rises, but once complete desiccation is achieved, the HNO3(aq) value is set to 0 and the corresponding mass is lost.

    This becomes apparent by comparing the mismatch ratio of NO2 mass balance with the ratio of the volume of the dry out zone (respectively the volume of pore space formerly occupied by liquid phase).

    In case of other trace gas components, such as SO2, the problem does not occur to this extent, because some fractions of the dissolved SO2 may fast enough precipitate as anhydrite (of pyrite), but no NO2 (NO3-) minerals exist. For example, in a particular simulation using SO2 and NO2, I observed a mismatch of -12.5% for NO2, but only -4.0% for SO2.

    Just for whom it may concern.

Like Follow
  • 5 yrs agoLast active
  • 4Replies
  • 895Views
  • 2 Following