Conceptual Models > Program coupling

Inhibiting Redox Reaction

<< < (2/3) > >>

GeeqC:
To respond to your question: the example of the Monod-kinetics, mentioned above, is compatible with the concept of thermodynamic equilibrium. The reverse reaction can be taken into account by an additional term for the thermodynamic driving force. The relation between thermodynamics and kinetics is very well explained in the paper by JIN, Q. & BETHKE, C.M. (2007) "The thermodynamics and kinetics of microbial metabolism". Am. J. Sci. 307, 643?677.
However, because the thermodynamic equilibrium often lies very strongly on the side of the product, the thermodynamic driving force is usually ignored.

The assumption that all redox reactions are at equilibrium may be valid for Earth-interior processes but is very unrealistic for near-Earth-surface conditions. Many redox reactions are efficiently inhibited by kinetic barriers. For example, methane does not react spontaneously with Fe(III) or even oxygen. N2 is not spontaneously oxidized to nitrate. Sulphate is not spontaneously reduced by any kind of organic substrate. I am really surprised that Phreeqc does not take this into account, given that it is supposed to be a software to simulate aqueous speciation under Earth surface conditions.

To prevent these reactions from being calculated, I tried to remove them in the database, but this only resulted in an error message. I did not quite understand, how redox partners can be uncoupled.

What I also still do not understand is that the model solution is correctly calculated in the input file, without redox change of the totals. Why can this not be done the same way during RunCells. Is there perhaps a way to modify the source code to prevent redox reactions?

dlparkhurst:
I perhaps oversimplified when I stated that PHREEQC assumes redox equilibrium. We have taken the approach that you can add kinetics as needed. There is a general kinetics capability, and you can add as many elementary kinetic reactions as you care to add using any of the rate expressions that are listed in Jin and Bethke. The way this is done is to split redox states into separate "elements", and then define RATES that transform one redox element into another. The database that I posted separates all redox states into separate elements as an example. In that case, you need KINETICS and RATES for each redox transformation. The rates can be based on affinity, Monod, or any other expression that you choose.

In the paper that you site, the examples they give consider two to a few kinetic transformations. This can be done by a few pools of reactants and KINETICS/RATES definitions that can be implemented in  PHREEQC.

If you want to define all redox reactions as kinetic processes, PHREEQC is probably not the tool, although I think it is possible, but not practical. There is no other way to keep redox disequilibrium that is allowed in initial solution calculations. Perhaps you should be using Geochemist's Workbench, but I am skeptical that it could handle all redox reactions kinetically, or that you could come up with appropriate rate and Monod constants for an entire system including trace and radioactive redox-active elements.

In most cases, we have found that it is sufficient to define one or two kinetic reactions and allow other redox active species to follow thermodynamics. So, you can simulate organic degradation by kinetic addition of CH2O. You can vary the rate of CH2O addition by the electron acceptor that is available. This approach nicely simulates the transitions from oxic to sulfidic to methanic environments that is seen in nature. Conversely, adding O2 will oxidize the electron donors in the sequence seen in nature. In spite of your examples, you do not find O2 or NO3- coexisting with H2S or CH4 except in rapidly mixing environments.

There are quite a few posts to the forum recently on how to handle storage of H2 using a pool of unreactive Hdg and kinetically converting Hdg to H2, which causes redox reactions. The nitrogen system often requires special handling to allow nitrification and denitrification, but maintaining N2 as an inert product. The approach is to keep the simulations tractable by adding only those kinetic and inhibited reactions that are deemed necessary. If that doesn't work for you, then I am afraid you have spent too much time learning PhreeqcRM.

GeeqC:
Thanks for the detailed information. I understand now how to switch off single redox reactions, by renaming the different redox states as different elements. This works for methane and sulphate, but for sulphide I keep receiving error messages:

SOLUTION_MASTER_SPECIES
#element    species            alk      gfw_formula     element_gfw

Sulphate     SulphateO4-2   0        SulphateO4      32.064
Sulphide     HSulphide-       1        Sulphide           32.064

-->
ERROR: Elements in species have not been tabulated, HSulphide-.
ERROR: Reaction for species has not been defined, HSulphide-.

Are there perhaps some specific nomenclature rules that would have to be considered?

dlparkhurst:
Maybe it is because you spell Sulfide funny.

It looks OK, but you need to define SOLUTION_SPECIES for the master species that you have chosen.


--- Code: ---SOLUTION_MASTER_SPECIES
#element    species            alk      gfw_formula     element_gfw

Sulphate     SulphateO4-2   0        SulphateO4      32.064
Sulphide     HSulphide-       1        Sulphide           32.064
SOLUTION_SPECIES
SulphateO4-2 = SulphateO4-2
log_k 0

HSulphide- = HSulphide-
log_k 0
END

--- End code ---

There are rules. You must use association reactions; it must be possible to rewrite the reactions to use the master species for all species (no circular definitions). But the tricky ones involve defining redox states, and you are not doing that.

GeeqC:
Yes, this is it. Thanks!

Just to conclude this session. It is now clear how individual elements can be prevented from undergoing redox reactions. But the overall philosophy of Phreeqc is still not clear. The software offers the option to define kinetic rate equations, but then the kinetics are superseded by equilibration at run time. This does not sound logical to me.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version