Jump to content
Geochemist's Workbench Support Forum

problems in Kinetic precipitation of mineral


HUAN

Recommended Posts

Hi, everyone:

I am trying to use kinetic rate law for mineral dissolution and precipitation.

Here, I give a simple example.

 

Initial mineral: Albite

Secondary mineral: Kaolinite, Quartz, Calcite

 

If I do not use kinetic rate law for precipitation of kaolinite, quartz and calcite, they would precipitate. However, if I use kinetic rate law, they do not precipitate.

 

Can anyone give me some advice? The rate law, nucleus density are set. I cannot figure out what is wrong. Very confusing.

 

Thank you very much.

2042371885_usingkineticratelawforprecipitation.thumb.png.b0ad2b8983f3c53a972a6cc14f69ca54.png

Huan

 

 

  • Like 1
Link to comment
Share on other sites

Hello Huan,

I wasn’t able to run your simulation with your custom dataset but I  can offer some suggestions base on running your input file with thermo.tdat.

When I used the rate law script files provided for quartz and albite, the resulting precipitation rate for quartz precipitation is zero, you can see this if you plot "Dissolution Rate, Quartz" under Reactant properties  vs. "Time" in Gtplot. Similarly, the dissolution rate for Albite also drops to near zero at the start of your simulation as well. Since your reaction rates are so slow, nothing is really happening after your system initially equilibrated. This would explain why you do not see quartz accumulating in your simulation.

I also noticed that you have selected to write your rate law for quartz as a precipitation reaction instead of a dissolution reaction, please check that your basic scripts are written correctly for both minerals.

Can you explain a little bit about what you are trying to do with this simulation? I am a little confused by your model setup. I see that one of the variables in your custom rate law is the activity of H+ but in the basis pane, you set H+ as the charge balancing ion. If you would like someone to take a closer look, please attach your customized dataset so we can run your input file directly.

Best regards,
Jia Wang

Link to comment
Share on other sites

Hi, Jia Wang:

Thank you very much for your quick response.

1. Sorry for missing my thermo dataset. I am trying to simulate the influence of CO2 on sandstone diagenesis. So, I give a value for fugacity of CO2 and therefore use pH to balance charge. I attached my dataset.

2. Now, I am testing kinetic precipitation rate law to constrain mineral precipitation, like quartz. But it did not work. Therefore, I just use feldspar (primary) and quartz (secondary) to test the kinetic precipitation rate law.

3. The dissolution rate is set according to the three-mechanism-rate in Palandri and Kharaka (2004):

1358136659_36020200723131507537.jpg.1795315cddce302d38c0604e04d88a3b.jpg

 

The rate parameters are also derived from Palandri and Kharaka (2004):

 

 

4. I attached a React_output file. It shows that the quartz is supersaturated. The log (Q/K) is 1.0201. But it does not precipitate. So, I think maybe it is not related to dissolution rate of Albite.

5. I am thinking if the rate law is right or wrong. But I checked several times. I cannot think of any point is wrong. The rate law is

rate = surface * ((acid) + (neutral) + (base))

Return rate

6. The nucleus density is also tested. I improved the nucleus density to as high as 10000 cm2/cm3, but it still did not work.

7. Questions:

I think we write same rate law for both mineral precipitation and dissolution, is it right? GWB determine if it dissolve or precipitate according to Q/K, is it right?

If a primary mineral might precipitate, should we set a value for nuclues density? For example, the rock initially has 5% kaolinite, 50%K-feldspar, and with injection of CO2, K-feldspar might dissolve into kaolinite. In this case, do we need to set nucleus density for kaolinite?

 

Appreciation for your help.

Best wishes

Huan 

 

Link to comment
Share on other sites

Hello Huan,

Thank you for the additional files and information. 

I noticed that there is a minus sign in front of the surface area term in the screenshot of the equation but it is missing in your rate law scripts. Perhaps that Is intentional? I didn't check if all the other values are correct though.

I also believe that when you use a custom rate law, the nucleus density input is not used in your simulation unless you specify it in the script itself. Note that the nucleus density option prescribes a minimum value for a supersaturated mineral’s surface area over the calculation. The program calculates the actual surface area from the mineral’s current mass and specific surface area and uses this whenever it exceeds the nucleus density. I edited your quartz script by adding a few lines to allow the rate to be calculated from the nucleus density when the surface area is less than the nucleus density times the solution volume. Can you try this to see if it helps? 

IF surface < nucleus * soln_volume THEN 20 ELSE 40
20: rate = -nucleus * [rest of your equation here]
GOTO 60
40: rate = -surface*[rest of your equation here]
60: RETURN rate

In GWB, mineral reactions are written as dissociation reactions, which means that mineral is on the left hand side of the reaction and the aqueous species are on the right. In React, a rate law is commonly set describing the forward proceeding reaction. So in this case, a positive rate, indicates a mineral is dissolving and a negative rate indicates the mineral is precipitation. You alternatively, can also specify for GWB to evaluate the rate law to give you a positive result for the reverse reaction instead, which is the precipitation of the mineral. In this case, a positive rate would indicate mineral precipitation and a negative rate would indicate mineral dissolution. By default, the GWB evaluates the You can find a detailed example for this in section 4.3 Forward and reverse reactions of the GWB Reaction Modeling Guide. I noticed on the Reactants pane, that you have chosen the precipitation as the positive rate for kinetic quartz reaction but the the dissolution rate as the positive rate for kinetic albite, which is why I suggest double checking to make sure that they are consistent. 

Hope this helps,
Jia Wang

Link to comment
Share on other sites

Dear Jia Wang:

Deep appreciation. It works after adding the nucleus to the script. It is very useful.

What can I say? Maybe just thanks. But you solved a big problem for me. It has confused me for some time.

Best wishes for you.

Huan

Link to comment
Share on other sites

  • 2 years later...
On 7/30/2020 at 6:17 AM, Jia Wang said:

Hello Huan,

You're welcome. I am glad that was helpful. 

Best,
Jia Wang

Hi, Jia.

would you like to share with me the code about how to combine the neutral mechanism, acid mechanism, and base mechanism when I use kinetic parameters? 

image.thumb.png.5c50b2cb4d0bdf5e7148a9537af713ac.png

 

Link to comment
Share on other sites

Hello Liheng,

 Huan had initially posted his custom rate law script for troubleshooting. Perhaps he would be willing to share with you. If you like though, you can write your own custom rate law with a bit of effort. The software allows you to provide a custom rate law in several ways, you can provide an equation, a basic script using a built-in editor, a basic script file, or a rate law function. I think for your purpose, you might want to start with an equation or a basic script. For details and examples on how to write your own custom rate law, please see chapter 5 in the GWB Reaction Modeling User's Guide. If you need help troubleshooting your custom rate law, please post your input file and scripts so someone can take a closer look.

Best regards,
Jia Wang

Link to comment
Share on other sites

Hello Liheng,

I would also like to let you know about another option. Since your expression is for the rate constant alone, you might also consider using the built-in rate law, but just set the rate constant as a transient field variable. The mechanics are very similar to a custom rate law (you can set a simple equation, a basic script, etc.), but you don’t have to worry about all the other parts of the rate law, assuming those follow the built-in law. The built-in rate law for each type of kinetic reaction is detailed in Chapter 4 of the GWB Reaction Modeling User's Guide. For more information regarding transient variables, please see the Heterogeneity Appendix in the RTM Guide and 1.2 Field variables in the Command Reference for more information. 

Best,
Jia Wang

Link to comment
Share on other sites

Hi, Jia.

I am trying to the built-in in the React.

However, as you know, when I consider the acidic mechanism, we need to give the hydrogen ion a power, which has the corresponding activation energy and reaction rate constant. However, in the React interface, only hydrogen ions can be selected, but the corresponding activation energy and reaction rate constant cannot be specified. Is it right?

image.thumb.png.25c3b8d5a0f747092d791d16f854c252.png

I can only do it by scripting it myself, right?

 

Link to comment
Share on other sites

Hello Liheng,

I think your case will require you to provide your own equation or script for the variable "rate constant". When you are setting up a kinetic mineral reaction, the software by defaults ask you to provide a kinetic rate constant or you can toggle to the option below to provide an activation energy (Ea) and a pre-exponential factor (A) for the Arrhenius equation, from which the software can calculate k+. Since you are using a custom equation for calculating your rate constant, you will need to specify your own input for rate constant using one of the custom options. If you click on the "+" button next to "rate constant", you will see the option for constant, equation, script, function, and script file. You can select any of the options that's not "constant" and provide the appropriate equation, script, or function to define your rate constant. For example, if you choose equation, you will need to input the equation from your screenshot, including activity or molality of your promoting or inhibiting species (i.e. H+, OH-). If you specify the promoting or inhibiting species in the "powers" section, your entire rate law will be multiplied by it and not just the acidic mechanism expression in your equation.

In general, specifying an equation or script for a rate constant is very similar to how you will specify a custom rate law. You can see the format for setting these up in section 5 of the GWB Reaction Modeling User's Guide. You can use the internal parameters and helper function provided in table 5.1 and 5.3 of the GWB Reaction Modeling User's Guide to help write your equation.

Best regards,
Jia

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...