Jump to content
Geochemist's Workbench Support Forum

About the Kaolinite sorption setting


zixuan
 Share

Recommended Posts

Hey, I'm a new one to learn use GWB to reproduce results of Michael Essington(2017), Adsorption of Antimonate by Kaolinite, especially the part of antimony and phosphate. 

There are several questions.

1) As for SiO2(aq), what should I deal with this entry? I have swapped Al3+ to kaolinite in 10g/L. But I don't know how to set a concentration for SiO2. I tried to set a ratio of 1 for SiO2:Al3+, is it right?

2) And when I run the program, such problems would occur. 

Solving for initial system.
 Swapping >AlOH2+ in for >AlOH
 Swapping >SiO- in for >SiOH
Newton-Raphson didn't converge after 999 iterations, max residual =           1, Xi = 0.0000
Largest residual(s):
                       Resid     Resid/Totmol   Cbasis
---------------------------------------------------------
 >SiO-                   215.3            1    3.539e-09

--------------------------------------------------------

3)So, I tried to delete the >AlO- or >SiO- from my sorbing surface dataset and ran it again, which could get a Gtplot, but it seemed to take K+ and NO3- as main sorbate. And the figure was totally different from one of ME.

 

I have attached my dataset and reaction data. I will appreciate if anyone could take a look. Thanks a lot.

P+0.01KNO3.rea Kaolinite-P.sdat

Link to comment
Share on other sites

Hello Zixuan,

I took a quick look at your input script and surface dataset and here are a couple of suggestions to help you get started. 

Check to make sure the log Ks in the dataset are in the correct format for reactions written in GWB. You might need to negate the log Ks from the paper if the reaction is written in the reversed direction. For more information on triple-layer model datasets, see section 2.5.2 in the GWB Essentials guide. For surface dataset formatting, see section 4 in the GWB reference guide. 

I think you would need to provide a SiO2(aq) concentration for your reaction. Does the author provide any information regarding the setup of the model? If you want to reproduce the same results, you should try to follow as closely as possible the author's set up. I would also suggest that you check that the log Ks for aqueous reactions in the thermo dataset match the ones provided in the paper as well. 

Hope this helps,
Jia Wang

Link to comment
Share on other sites

  • 2 weeks later...
On 4/16/2021 at 4:40 AM, Jia Wang said:

Hello Zixuan,

I took a quick look at your input script and surface dataset and here are a couple of suggestions to help you get started. 

Check to make sure the log Ks in the dataset are in the correct format for reactions written in GWB. You might need to negate the log Ks from the paper if the reaction is written in the reversed direction. For more information on triple-layer model datasets, see section 2.5.2 in the GWB Essentials guide. For surface dataset formatting, see section 4 in the GWB reference guide. 

I think you would need to provide a SiO2(aq) concentration for your reaction. Does the author provide any information regarding the setup of the model? If you want to reproduce the same results, you should try to follow as closely as possible the author's set up. I would also suggest that you check that the log Ks for aqueous reactions in the thermo dataset match the ones provided in the paper as well. 

Hope this helps,
Jia Wang

Dear Jia Wang,

Thanks for your reply. And sorry for my late reply.

I have successfully simulated the adsorption of antimony on Kaolinite after revising logKs.

Thanks for your suggestion.

Link to comment
Share on other sites

  • 1 month later...

Excuse me, I cannot get an ideal simulation result as for PO43- sorption.

In the paper, it took a TLM model to simulate this process with inner-sphere species(>AlOPO32-) and outer-sphere species (>AlOH2+:HPO42-).

But the result was still not optimum. I have attached my sdat, this was established on the base of thermo.dat. 

Meanwhile, the result, solution settings and paper also have been attached.

doi:10.2136/sssaj2016.12.0402

The reference result of paper is Fig.7.(b)

I would be appreciate if someone could help me. Thanks!

2.png

Kaolinite-p-original.sdat p.rea

Link to comment
Share on other sites

Hello Zixuan,

I think you're pretty close with your script. The software calculates the speciation of your fluid based on the component concentrations prescribed in the basis pane. I noticed that you had set the activity ratio of SiO2(aq)/Al3+ to 1. This is not a particularly robust way of performing these simulations as each component may speciate to different extents. Holding these ratios constant might not be particularly realistic and probably contributed to your convergence issue initially. Since the paper did not provide initial SiO2(aq) and Al3+ concentrations in the fluid, you can try setting a negligible concentration for both and set up Kaolinite as a kinetic mineral with a zero rate constant. This way, you are effectively setting up kaolinite as an inert surface, as it will not dissolve or precipitate with a reaction rate of 0 but available for surface complexation.

Hope this helps,
Jia Wang

Link to comment
Share on other sites

On 6/3/2021 at 6:02 AM, Jia Wang said:

I think you're pretty close with your script. The software calculates the speciation of your fluid based on the component concentrations prescribed in the basis pane. I noticed that you had set the activity ratio of SiO2(aq)/Al3+ to 1. This is not a particularly robust way of performing these simulations as each component may speciate to different extents. Holding these ratios constant might not be particularly realistic and probably contributed to your convergence issue initially. Since the paper did not provide initial SiO2(aq) and Al3+ concentrations in the fluid, you can try setting a negligible concentration for both and set up Kaolinite as a kinetic mineral with a zero rate constant. This way, you are effectively setting up kaolinite as an inert surface, as it will not dissolve or precipitate with a reaction rate of 0 but available for surface complexation.

Thanks for your help!

I edited the data and simulated again, though the convergence in my last graph disappeared and the tendency was very close to that on paper, the total sorbed fraction was still incorrect.

In 0.01KNO3 it should begin with 90% and in 0.1KNO3 it should begin with about 70%. I had no idea about these differences.

 

p.rea

Link to comment
Share on other sites

Hello Zixuan,

Thanks for providing your updated script. By setting up kaolinite as a kinetic mineral with a zero dissolution rate, you have prescribed a surface available for surface complexation for your experiment without precipitation or dissolution of kaolinite to maintain equilibrium with the fluid. Also, the initial method of setting a Al+++/SiO2(aq) activity ratio to a constant value was causing a large amount of dissolved Al and P species to form aqueous complexes that were not considered as a part of the complexation reaction. 

Here are a few suggestions for you after looking at the paper. If you are using the default thermo.tdat for your run, you would want to double check that the thermodynamic data is consistent. For example, the default dataset doesn't include the reaction for KPO3-- or KH2PO4-. You should also check that the log K data is consistent with those provided in the paper. You will also notice that species not included in the reactions listed in the paper may form because the GWB considers all the reactions possible in the dataset unless it is suppressed. You may find it helpful to either suppress all the species other than the one considered in the paper or can create a new thermo dataset by extracting a subset of the relevant reactions from thermo.tdat.  

The paper did not provide the activity model used in its modeling with FITEQL. thermo.tdat uses the B-dot activity model, an extended version of the Debye-Huckel equation, to calculate the activity of species. You can find this information in the Headers pane when you open the dataset in TEdit or the activity model line if you open the file in a text editor. If a different activity model was used in the paper, then it may explain some of the differences observed. 

Other details include whether or not charge balancing was utilized in the original calculation and if so, was the simulation charge balanced with an anion or cation. The GWB uses a molal or mole fraction (for polydentate complexes) standard state in surface complexation reactions. Some programs may use a molar standard state instead, which may result in a small difference when comparing simulation results across software. 

I would recommend communicating with the corresponding author(s) to see if you are able to obtain more details regarding their model if you would like to improve your results. 

Hope this helps,
Jia Wang

Link to comment
Share on other sites

10 hours ago, Jia Wang said:

Hello Zixuan,

Thanks for providing your updated script. By setting up kaolinite as a kinetic mineral with a zero dissolution rate, you have prescribed a surface available for surface complexation for your experiment without precipitation or dissolution of kaolinite to maintain equilibrium with the fluid. Also, the initial method of setting a Al+++/SiO2(aq) activity ratio to a constant value was causing a large amount of dissolved Al and P species to form aqueous complexes that were not considered as a part of the complexation reaction. 

Here are a few suggestions for you after looking at the paper. If you are using the default thermo.tdat for your run, you would want to double check that the thermodynamic data is consistent. For example, the default dataset doesn't include the reaction for KPO3-- or KH2PO4-. You should also check that the log K data is consistent with those provided in the paper. You will also notice that species not included in the reactions listed in the paper may form because the GWB considers all the reactions possible in the dataset unless it is suppressed. You may find it helpful to either suppress all the species other than the one considered in the paper or can create a new thermo dataset by extracting a subset of the relevant reactions from thermo.tdat.  

The paper did not provide the activity model used in its modeling with FITEQL. thermo.tdat uses the B-dot activity model, an extended version of the Debye-Huckel equation, to calculate the activity of species. You can find this information in the Headers pane when you open the dataset in TEdit or the activity model line if you open the file in a text editor. If a different activity model was used in the paper, then it may explain some of the differences observed. 

Other details include whether or not charge balancing was utilized in the original calculation and if so, was the simulation charge balanced with an anion or cation. The GWB uses a molal or mole fraction (for polydentate complexes) standard state in surface complexation reactions. Some programs may use a molar standard state instead, which may result in a small difference when comparing simulation results across software. 

I would recommend communicating with the corresponding author(s) to see if you are able to obtain more details regarding their model if you would like to improve your results. 

Hope this helps,
Jia Wang

Dear Jia Wang,

Thanks for your patient explanation and checking.

But I don't think it should be ascribed to the lack of constants of KH2PO4 and KPO42-. Actually, I had added these 2 constants before I posted to you, but there was no change in the result.

Perhaps, like what you said, it's better to consult with the corresponding author concerning the activity model, charge balance and molal units.

It's really helpful, thank you!

Link to comment
Share on other sites

  • 2 months later...

Hello Zixuan, 

GWB does not fit surface data to calculate surface reaction equilibrium constants. However, you may be able to use the Alter Log K dialog to manually alter the log k values for your surface reactions to and find the value that best reproduces your data by trial and error. Overlaying your data on your plot may help to visually assess this. For more information on Altering Log Ks, please refer to the alter command in the GWB Command Reference. In GWB applications (except GSS, TEdit, and the plotting apps), you can find the Alter Log K under Config -> Alter Log Ks... For examples of scatter data, please refer to section 6.5 in the GWB Reaction Modeling Guide.
 
Alternatively, you can also write your own scripts and use React's plugin feature to run the models and retrieve the data, assess the fit quality, update your Log K with a better estimate and rerun the model. Please refer to section 7 of the Command Reference for details regarding the Plugin feature. 
 
Best regards,
Jia
Link to comment
Share on other sites

5 hours ago, Jia Wang said:

Hello Zixuan, 

GWB does not fit surface data to calculate surface reaction equilibrium constants. However, you may be able to use the Alter Log K dialog to manually alter the log k values for your surface reactions to and find the value that best reproduces your data by trial and error. Overlaying your data on your plot may help to visually assess this. For more information on Altering Log Ks, please refer to the alter command in the GWB Command Reference. In GWB applications (except GSS, TEdit, and the plotting apps), you can find the Alter Log K under Config -> Alter Log Ks... For examples of scatter data, please refer to section 6.5 in the GWB Reaction Modeling Guide.
 
Alternatively, you can also write your own scripts and use React's plugin feature to run the models and retrieve the data, assess the fit quality, update your Log K with a better estimate and rerun the model. Please refer to section 7 of the Command Reference for details regarding the Plugin feature. 
 
Best regards,
Jia

Thanks for your answering! It's quite helpful!

Link to comment
Share on other sites

  • 1 month later...

I have a new question. Because I want to explore contaminants adsorption on 2 kinds of minerals. I have gotten the triple layer models of respective minerals for contaminants. However, How can I select 2 sorbing surface files in REACT? It seems like surface files with different kinds of models can be applied simultaneously. Although I could place minerals in one surface file, but the inner capacitances are not same.

Link to comment
Share on other sites

Thanks for your answering!

But, sorry, I mean for example, I want to research chromium adsorption on kaolinite and goethite at same time. But the Cr models for each mineral are in type of TLM with different inner capacitance. I cannot add them in one react program simultaneously. I have tried the way you said, but it still cannot apply the 2 models at same time. I wonder if there is any way to solve?

Link to comment
Share on other sites

Hello Zixuan, 

You're welcome. I think the issue here may be that your two sorbing surface datasets doesn't have a Type identifier. When you create a new three-layer sorbing surface dataset, TEdit by default uses '3Layer' for a three-layer sorbing surface model as the 'Type'. This field has a couple of uses. The first is that it is used for defining properties of the surface, such as mobility_HFO, surface_potential, etc in the simulation. It is also used to prevent redundant surfaces, so each surface loaded requires a unique surface type. If both datasets have the Type field set to "3Layer", as you have in Kaolinite_P.sdat, then the program will load latest new dataset replace the current one. You can view and change the "Type" in the Headers pane if you open your dataset in TEdit or view it at the top of the text file if you open it in a text editor. 

Hope this helps,
Jia

 

Link to comment
Share on other sites

Thanks again. So if I want to investigate such an adsorption process, I can either adjust constants and place kaolinite and goethite in one TLM sorbing surface with same capacitance, or set different types of models for each mineral? I hope I did not misunderstanding the solutions. 

Link to comment
Share on other sites

Hello Zixuan, 

You do not need to refit your Log Ks after changing the capacitance values. You can set independent capacitances for each sorbing surface and load both into your React simulation. They do not need to be different surface models. 

In order to load both triple layer surface datasets, they must have a unique "Type" set. This is different from the "Surface Model" setting. I noticed in Kaolinite_P.sdat, the "Type" is set as 3Layer (find this in the header lines in a text file or Headers pane when opened in TEdit), which is the default setting in TEdit when you create a new surface dataset. If you had created a new surface dataset for Goethite as well and didn't change "Type" from its default setting, then React will only be able to load one of these datasets at a time. Please check that "Type" is unique between different surface datasets. I have included example dataset headers that can be loaded simultaneously:

Dataset of surface reactions for gwb programs
Dataset format: may20
Surface type: Kao
Model type: three-layer
Surface potential: n/a
Surface capacitance: 0.70  0.20

Dataset of surface reactions for gwb programs
Dataset format: may20
Surface type: Goe
Model type: three-layer
Surface potential: n/a
Surface capacitance: 1.10  0.50

Hope this helps,
Jia

Link to comment
Share on other sites

  • 3 weeks later...

Hello,

Simulation results in React are rendered in Gtplot. You can find ionic strength in Gtplot under the Variable type Chemical parameters. You can choose to plot ionic strength on the X or Y axis and then the sorbed fractions of various species on the other axis. For more details regarding Gtplot, please refer to section 6 in the GWB Reaction Modeling User Guide. 

Gtplot only renders result from one React simulation at a time. If you would like to plot results from multiple simulations on the same plot, you can export the numerical data from each and then generate the plot in Excel. Alternatively, you can create separate Gtplots and then overlay them in a graphics editing program. In the latter case, you would need to format the axes with the same range and intervals. 

Hope this helps,
Jia

Link to comment
Share on other sites

  • 1 month later...

I'm sorry to reply so late. That's really helpful.

I have a new question. In general, I often simulated simultaneous adsorption, but if I want to investigate the adsorption of A after adsorption of B on minerals, how can I set? (A/B: ions)

 

Link to comment
Share on other sites

Hi Zixuan,

I am not sure of the type of experiment you have in mind but here are a couple of suggestions that may be helpful.

In React, you can chain simulations using the pick up command by setting the ending point of a simulation and an initial state of another. You may be able to set up an initial simulation for the adsorption of B and then pick up the result as a starting point for the adsorption of A. For more information on chaining simulations, please see section 3.1 Picking up the results of a run and 4.8 Changing together kinetic reaction paths in the GWB Reaction Modeling User Guide. 

If you are simulating a kinetic surface reaction, you can also set a customized rate law script that allows you to specify certain conditions (e.g. time, activity of certain species, etc) are met before adsorption of A begins. For more information on custom rate law scripts, please see section 5.2 in the GWB Reaction Modeling User Guide.

Best regards,
Jia 

 

Link to comment
Share on other sites

  • 2 weeks later...

I'm really grateful for your help. I want to investigate the pH influence, so perhaps before it, I need to do a simulation of kinetics to confirm the possibility of adsorption B.

I think your suggestions are really helpful.

 

Thanks!

 

 

 

On 1/12/2022 at 8:00 AM, Jia Wang said:

Hi Zixuan,

I am not sure of the type of experiment you have in mind but here are a couple of suggestions that may be helpful.

In React, you can chain simulations using the pick up command by setting the ending point of a simulation and an initial state of another. You may be able to set up an initial simulation for the adsorption of B and then pick up the result as a starting point for the adsorption of A. For more information on chaining simulations, please see section 3.1 Picking up the results of a run and 4.8 Changing together kinetic reaction paths in the GWB Reaction Modeling User Guide. 

If you are simulating a kinetic surface reaction, you can also set a customized rate law script that allows you to specify certain conditions (e.g. time, activity of certain species, etc) are met before adsorption of A begins. For more information on custom rate law scripts, please see section 5.2 in the GWB Reaction Modeling User Guide.

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

×
×
  • Create New...