PhreeqcUsers Discussion Forum

Redox Equilibria => Oxidation and Reduction => Topic started by: grundl on May 06, 2018, 05:59:17 PM

Title: adding acetate as an electron donor
Post by: grundl on May 06, 2018, 05:59:17 PM
I am trying to add acetate into the database so I can use it as a specific electron donor. I am using WATEQ4F. I have defined acetate under SOLUTION_MASTER_SPECIES and have built it from reduction of CO3-2 in SOLUTION_SPECIES. I have written acetate oxidation reactions using several nitrogen electron acceptors and everything thing seems fine.

However when I try to oxidize acetate using sulfate the speciation output puts reduced sulfur [HS- and S(-2)] into the carbonate category [C(4)] and the sulfate category [S(6)]! Can anyone tell me what I am doing wrong?

Attached is a short input file that works fine with nitrogen as electron acceptor. By removing the "#" symbol in front of the sulfate reaction (last two lines) you can get the peculiar sulfide answer.
Title: Re: adding acetate as an electron donor
Post by: dlparkhurst on May 06, 2018, 09:46:16 PM
First, you should not define the reactions with nitrogen and sulfur electron acceptors in SOLUTION_SPECIES. The first species to the right of the equal sign is defined in each SOLUTION_SPECIES reaction. If the same species is defined in two reactions, then the second reaction is used. In general, only the elements in the species are used in the defining reaction.

Secondly, I don't think the approach of defining acetate as a "C" species will work.  Acetate will be thermodynamically unstable relative to methane and CO2 species, so it cannot persist in solution. The following defines a solution with acetate and then runs a reaction to obtain redox equilibrium; virtually no acetate exists in the equilibrated solution.

Code: [Select]
SOLUTION_MASTER_SPECIES
    C(0)          CH3CO2-          0     CH3CO2
SOLUTION_SPECIES
CH3CO2- + H+ = CH3CO2H
    log_k     4.76
    delta_h   115 kcal #an initial guess for testing
2CO3-2 + 11H+ + 8e- = CH3CO2- + 4H2O
     log_k   45.95
SOLUTION 1 #a sample water for testing with C,S,N redox couples unspecified
    temp      25
    pH        7
    units     ppm
    C(0)         166
END
MIX
1 1.0
END

I think you will need to define acetate as a separate "element", as in llnl.dat. Here is one way to use REACTION to react acetate. Basically, AcetateH is converted to CH3COOH. The difference is that "Acetate" cannot oxidize or reduce; it can only exist as Acetate species. Adding CH3COOH will react to equilibrium among the C and other redox elements in solution.

Here is an example that starts with nitrate and sulfate in solution. I have reacted just 1 micromole of Acetate, with the result that nitrate is reduced to N2(aq). If you add more of the reaction, then ultimately, N will end up as ammonia and sulfate will end up as sulfide. You can argue about how you want to handle the N system to avoid reduction past N2 (Amm.dat assumes that ammonia is not connected to the rest of the N system). 

Code: [Select]
SOLUTION_MASTER_SPECIES
Acetate  Acetate-       1.0     Acetate        59.
SOLUTION_SPECIES
Acetate- = Acetate-
     log_k  0.0
Acetate- + H+ = AcetateH
    log_k     4.76
END
SOLUTION 1 #a sample water for testing with C,S,N redox couples unspecified
    temp      25
    pH        7
    redox     pe
    units     ppm
    density   1
    Ca        38.3
    Mg        34.4
    Acetate      166
    Na        39.5
    K         1.3
    Cl        3.2
    S(6)         4
    N(5)        10
    -water    1 # kg
END
MIX
1 1.0
END
USE solution 1
REACTION
AcetateH -1
CH3COOH  1
1e-6 moles
END

You can use KINETICS instead of REACTION to make the reaction kinetic.

If you want complete control, then you might split out every redox state of every redox element into separate "elements" and then use kinetics for every reaction that you want to occur. I prefer the way outlined in the example here because it is simpler, and it implicitly maintains thermodynamic feasibility; in general, O2 will react first, followed by N(5), etc.