Jump to content
Geochemist's Workbench Support Forum

About kinetic pyrite oxidation


maki

Recommended Posts

Hi

 

I have been trying to calculate kinetic pyrite oxidation.

 

My question is as follows.

When I set the kinetic pyrite oxidation in Reactants pane, which should I use “Kinetic -->Mineral...” or “Kinetic --> Redox reaction”?

 

To begin with, I used “Kinetic Mineral... (Pyrite)” by inputting surface area and rate constant derived from some references. I think the eq.1 reaction was automatically used in the thermodynamic database of GWB.

Pyrite + H2O = Fe++ + 2*HS- + 0.5*O2(aq) -------------------------eq.1

No relevant results, however, were obtained (pH value increased, dissolution of pyrite didn’t happened so much, and etc), although high concentration of O2(aq) was provided.

 

Secondly, I tried to set eq.1 in “Kinetic redox” without surface area, and with the modified rate constant from mol/cm2 sec to kg/mol sec.

Pyrite + 3.5*O2(aq) + H2O = 2*H+ + 2*SO4-- + Fe++ --------------eq.2

The calculation worked out than anticipated.

If possible, I’d like to use eq.2, but I am afraid that the second procedure is irrelevant and incorrect.

 

Is the second procedure using “Kinetic Redox reaction” for pyrite oxidation correct?

It will be grateful if you could give me any better way to describe pyrite oxidation.

 

Best regards,

 

Maki

Link to comment
Share on other sites

Hi Brian,

 

I’m sorry for the delay in replying to you.

 

I have tried the further calculations.

I attached two scripts that used the thermo.com.V8.R6+.tdat.

 

The concept of my calculation is originally that O2(aq) flows into the rock containing pyrite.

While referring to sample script of ‘Infilter’, I carried out Pyrite_oxidation_1.

The calculation was not converged.

I have no idea how I should handle the calculation condition after the error message ‘N-R didn’t converge after 999 its.,’ appeared.

 

Secondly, I set Pyrite_oxidation_2, which has no mineral in Initial pane and has kinetic of pyrite with 40 volume% in Reactants pane.

The calculation proceeded, but I wonder that it was incorrect condition because it was different from my concept.

In addition, O2 consumption was not observed.

 

Then, I made new equation (eq.1) for representing pyrite oxidation instead of eq.1 in thermodynamic database (not attached).

When I set the mineral volume in Initial pane like Pyrite_oxidation_1, the calculation didn’t converged.

On the other hand, only in the case like Pyrite_oxidation_2, the calculation converged.

Even if the calculation went through, I’m worried whether the second procedure is incorrect.

 

Do you have any better idea about this problem?

 

Thank you for your consideration.

 

Best regards,

 

Maki

pyrite_oxidation_1.x1t

pyrite_oxidation_2.x1t

Infilter.x1t

Link to comment
Share on other sites

Hi Maki,

 

Thanks for sending the input files. I'm still working on your problem, but this is a little tricky to troubleshoot. I think part of the problem lies with the concentrations that you've assumed. In pyrite_oxidation.x1t, your initial system is set to be in equilibrium with Pyrite but it's incredibly dilute. Try using SpecE8 first to establish a fluid chemistry for the unreacted (still reduced) fluid in equilibrium with pyrite.

 

Your second model, in which you specify the mass of Pyrite in contact with the fluid as part of your kinetic mineral rate law, seems okay. It just depends on whether the initial fluid is in equilibrium with pyrite, or simply in contact with it (but not in equilibrium with it). I need to spend some more time looking at this.

 

Hope this helps,

Brian

Link to comment
Share on other sites

Hi Maki,

 

Are you sure the flow system in your domain is reasonable? 100 pore volumes flushing through the domain in a single day seems too high. With the rate law for pyrite dissolution you've specified, there is very little time for any reaction to occur.

 

Secondly, I think you should stick with the pyrite dissolution (i.e., Kinetic -> mineral -> Pyrite) as the main piece of your model, at least for now. The rate law describes how quickly pyrite will dissolve into a fluid in which it is undersaturated. If you want to add more complexity, you might add a second kinetic rate law describing the oxidation of ferrous iron to ferric iron. Section 31.1 in the Geochemical and Biogeochemical Reaction Modeling text might be helpful for explaining this concept.

 

Regards,

Brian

Link to comment
Share on other sites

Hi Brian,

Thank you for your advice.

Even if discharge, ion concentrations, ion compositions, and numbers of chemicals are modified, the calculations of Pyrite_oxidation_1 aren’t converged with the messages of “N-R didn’t converge ... Largest residual(s): Cl- -2.324e-11 0.0007184 7.987e-6” and so on.
In comparison with Pyrite_oxidation_1 and Pyrite_oxidation_2, the only difference is whether the volume of pyrite is set in Initial pane or Reactants pane, simply. As you said, I tried to establish a fluid chemistry using SpecE8. Unfortunately, I couldn’t.
If Pyrite_oxidation_2 is correct conceptually in the calculation I posted previously (O2(aq) flows into the rock containing pyrite), I will adopt it in final calculation.
In that case, I expect that equilibrium status of chemical composition will be acquired by long time calculation.
If my thinking process is incorrect in this case, could you point out that?


Best regards,

Maki

Link to comment
Share on other sites

Hi Brian,

 

In addition to the previous question, I have the other important inquiry.

 

I have tried the calculation that was two dimensional analyses with same chemical composition of Pyrite_oxidation_2.

Heterogeneity function in the “importing flow field” didn’t seem to work correctly again.

I attached PO_2D.x2t.

The calculated flow field was carried out.

On the other hand, “node by node” setting and “table file” setting didn't work and the script was compulsorily shut down.

Could you check the function, please?

It would be great if you could also resolve this matter soon.

 

Best regards,

 

Maki

PO_2D.x2t

Link to comment
Share on other sites

Hi Maki,

 

The difference between Pyrite_oxidation_1 (putting pyrite in the Initial pane, plus a kinetic rate law for pyrite in the Reactants pane) and Pyrite_oxidation_2 (putting a kinetic rate law for pyrite in the Reactants pane) is not trivial. The first assumes that the Initial fluid is in equilibrium with pyrite at the start of your simulation, but if it becomes undersaturated or supersaturated it can dissolve or precipitate according to the kinetic rate law that you specify. The second only assumes that the fluid is in contact with pyrite, and the rate law lets pyrite dissolve or precipitate if it becomes undersaturated or precipitated. You need to decide which approach describes your system better.

 

The first model, as you've noticed, is more difficult to solve. That doesn't mean the entire approach is wrong. It only means that the fluid composition you've assumed is not in equilibrium with pyrite. You need to figure out the initial equilibrium composition, perhaps using SpecE8, before you can even think about tracing a reactive transport model. Do you have an actual water analysis from a fluid in equlibrium with pyrite you could use?

 

We're looking at the problem with imported flow fields. These were working with earlier releases.

 

Regards,

Brian

Link to comment
Share on other sites

Hi Brian,

 

Thank you very much for the detailed explanations.

 

I will try the calculations considering the initial equilibrium with pyrite and the fluid in the first model.

As I have other cases with actual water analyses, I will apply the advised thinking process to their simulations.

 

Does it seem to take a long time to fix the problem of imported flow fields in ver. 10?

In addition, not only in the flow fields, but the other inputs (chemicals in Initial pane, kinetic parameters in Reactants, porosity in Medium and so on) also have same problems.

I don’t have so much time to wait for the maintenance in my work.

If possible, could you provide the temporary license of ver.9 or the temporary downgrade exe file to ver. 9, please?

(I’m not sure if the latest release of ver.9 was 9.0.3 or not, but I am thankful for that you have fixed the same problem of ver.9 before.)

 

If I should send the e-mail about this problem, please let me know that.

 

Thank you for your kind consideration.

 

Best regards,

 

Maki

Link to comment
Share on other sites

Hi Brian,

 

I have been trying the calculations of kinetic pyrite oxidation under the various conditions according to your advice.

 

I found that the calculation was well converged by setting ‘1’ in ‘power(O2(aq))’ of Kinetic-pyrite in Reactant pane in many cases.

The GWB text book says that the exponential number in rate law of kinetic mineral is empirically decided.

Indeed, when I set the ‘power = 1’ as the exponent of the relating chemical concentration, reaction rate seems to be larger based on the rate law equation.

For example, in pyrite oxidation, O2(aq) is easily imaged as the promoting chemical, and the rule is easy to understand.

On the other hand, the calculations in Kinetic Quarts and Kinetic K-feldspar also got converged and got faster by setting “power = 1” of SiO2(aq) and K+, respectively.

Their chemicals and ions are put in the right side of their dissolution equations.

I think it is unlikely for the dissolution, but the calculations became to be converged.

 

As a technique of GWB calculation, should the ‘power’ be set ‘1’ in chemicals which constitute the mineral and relating chemicals as below when a kinetic-mineral is used?

e.g. Kinetic pyrite: O2(aq), Fe++, SO4-- (or only O2(aq)?) --> ‘power = 1’

Kinetic smectite: Al+++, Mg++, SiO2(aq), Fe++ --> ‘power = 1’

 

Thank you for your consideration.

 

Best regards,

 

Maki

Link to comment
Share on other sites

Hi Maki,

 

There is no general rule for how you should set up a kinetic rate law. Typically, rate laws are derived by matching models to experimental results. Adding promoting and inhibiting species to a rate law may be useful when the reaction rate is observed to vary with solution chemistry.

 

In a simple zero-order rate law, for example where r = k * (1 - Q/K), the rate would not depend on solution chemistry (except for the effect on Q, the ion activity product). But if you ran a number of different experiments in which the concentration of some ions A, B, and C varied, and found that the reaction rate depended on the concentration of A only, you might include A as a promoting or inhibiting species. In this case, r = k * Conc(A)^power * (1 - Q/K). As you (and the textbook) say, your experimental results would guide you on the exponent to use. A power of +1 would give you a first-order rate law.

 

Reactant species may commonly promote the rate of a reaction, but not necessarily. Similarly, product species may inhibit the rate of reaction, but not always. I don't think it's a good idea to add promoting species simply because you have convergence issues. Additionally, if you've taken a rate constant from the literature and simply added your own promoting species, you need to realize that this may be problematic. The new rate law may fail to reproduce the original data, let alone reliably describe reaction rate in a more complicated modeled system.

 

Regards,

Brian

Link to comment
Share on other sites

  • 2 weeks later...

Hi Brian,

 

It seems the reaction described by the eq.1 was not spontaneous, because of its logk<0 which could be directly got by Using Rxn, Thus, is there any sense using eq.1 to calculate pyrite oxidation?

 

 

Regards

 

Tianwei

Link to comment
Share on other sites

Hi Brian,

 

Thanks, I will contact with the sales department. In addition, I am a little confusing with this example discussed here. As we knew, when Logk>0, the reactions will occurs spontaneously, however, when Logk < 0, the reactions will not occurs at normal conditions. As for Eq.1 above, its logk <0 which can be directlly got using Rxn, then it seems that it doesn't make sense to use it here. Also, I think that Rxn is a very convenient tool by which we can get the Log k of a reactionand easily to determine if the reaction will be happened . Am I right ?

 

I will be very grateful if you could give me some advice on my above qustions.

 

Many thanks and best regards

 

Tianwei

Link to comment
Share on other sites

Hi Tianwei,

 

Unless the reaction only involves pure phases (like minerals, or water if the activity is 1) then you can't tell which way a reaction will proceed simply by looking at the log K value. You need to add constraints for the activity of each species in the reaction (or fugacity of gases) plus the temperature in order to do so. Try an example in Rxn. If you fully constrain the system, Rxn will report the free energy change of reaction as well as which side of the reaction is favored. Try taking a look at section 4.5 (Free Energy Change) in the GWB Essentials Guide.

 

Hope this helps,

Brian

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...