Jump to content
Geochemist's Workbench Support Forum

Surface complexation


padhi

Recommended Posts

Dear Dr. Farrel or others,

 

I am a new user of GWB. I will use React program of GWB 9.0 to simulate surface complexation of Fluoride (F) on different minerals. Before using my experimental results and surface data, I want to reproduce the modeling results of Dixit and Hering (2003) (Dixit and Hering, 2003, Env.Sci.Technol.,37,4182-4189). They modeled As (V) and As(III) sorption to HFO, Goethite and Magnetite, using MINEQL+.

 

Here I will show the simulation results that I got for As (V) sorption on to HFO (Fig. 1, Dixit and Hering, 2003) using both Visual MINTEQ and GWB 9.0 (react).

I attach the surface file, the figures from Visual MINTEQ, GWB and the GWB input file.

The results from Visual MINTEQ explains well the results of Dixit and Hering (2003), where as the results are not reproduced well using GWB (e.g., the maximum sorption is same to that of Dixit and Hering, 2003, where as the pH dependence is not correlated).

 

I used the Thermo_minteq.dat thermodynamic database. To get better result, I changed the log K values to match to that of thermo.dat file of Visual Minteq at 25 degree C. However, the results did not improve.

 

I would appreciate if you kindly help me to understand the problem.

 

 

Best regards,

Sakambari Padhi

input_results.pdf

modified_feoh_minteq.dat

Link to comment
Share on other sites

Hi Sakambari,

 

In taking a look at your surface dataset, it looks like there are mistakes in how a few of the surface reactions are written. >(s)FeH2AsO4 and >(s)FeHAsO4- are balanced in terms of >(w)FeOH instead of >(s)FeOH, and the opposite is true for >(w)FeAsO4--. When I fix these I get results much closer to the original paper and the Visual Minteq runs. Hope that takes care of it.

 

Regards,

 

Brian Farrell

Aqueous Solutions

Link to comment
Share on other sites

  • 5 months later...

Hi,

 

I am using GWB9.0 (React) to simulate surface complexation of fluoride on calcite.

My experimental system contains a calcite saturated solution (Ca2+ = 0.005M and CO3 = 0.0075M (I considered total alkalinity)).

I added 0.5M of calcite to the solution and maintained ionic strength to 0.1M (by adding KNO3). The F- conc. is 0.3937mM (in

terms of NaF).

 

For surface complexation modeling, I am using diffuse double layer model. Calcite surface properties and surface reactions considered are as mentioned in the surface data file.

 

I have the following querries:

1.How to add calcite to the system (I need Ca2+, CO3 2- and H+ as basis species)?

Now I swapped Ca2+ for calcite and balanced on CO3 2-. By this, the Ca2+ and CO3 2- conc. are different, as the system

maintains equilibrium.

 

2.When I use the surface data; it shows the error:

Warning: reaction mass balance for >CO3Ca+ =

Reaction = >CO3Ca+ + H+ = >CO3H = Ca++

Exit:React stop:couple_rxns: bad rxn

 

3.If I exclude this reaction and try to run, the error that I receive is:

Exit: React stop: set-basis: bad charge

React is ending

 

I attach the script and surface data for reference.

Any help is kindly appreciated.

 

Padhi

calcite_fluoride_script.txt

calcite_fluoride_surface.dat

Link to comment
Share on other sites

Hello Padhi,

 

I noticed a couple problems with your surface dataset. It looks like the molecular weight for the surface species >CO3Ca+ is incorrect. The mass balance warning you mentioned is the program alerting you that there is a problem with the overall mass balance of the reaction >CO3Ca+ + H+ = >CO3H + Ca++. When you get that error, you should make sure you have added all the necessary basis species with the correct coefficients, and that the molecular weights are correct.

 

The second warning (Exit: React stop: set-basis: bad charge) arises because you have added a negatively charged surface basis species in <CaCO3-. You need to choose an uncharged species to be the surface basis species. In testing your dataset, I chose >CaHCO3 instead of >CaCO3-. I then had to rebalance the surface reactions in terms of >CaHCO3. Because Rxn will read your original dataset without a problem (once you fix the molecular weight of >CO3Ca+), you can rebalance the reaction in Rxn (and calculate the correct log K for that new reaction) then enter this information in the surface dataset. As an example, I changed the original dataset:

 

2 basis species

 

>CaCO3-

charge= -1.0 mole wt.= 100.0892

3 elements in species

1.000 Ca 1.000 C 3.000 O

 

>CO3H

charge= 0.0 mole wt.= 61.0171

3 elements in species

1.000 C 3.000 O 1.000 H

 

-end-

 

1 sorbing minerals

 

Calcite

surface area= 0.277 m2/g

2 sorption sites

>CaCO3- site density= 0.0002279 mol/mol mineral

>CO3H site density= 0.0002279 mol/mol mineral

 

-end-

 

6 surface species

 

>CaOH2+

charge= 1.0 mole wt.= 58.0873

3 species in reaction

1.000 >CaCO3- -1.000 CO3-- 1.000 H2O

log K= 5.2500 dlogK/dT= 0.0000

 

 

to this new version with >CaHCO3 as the surface basis species:

 

 

2 basis species

 

>CaHCO3

charge= 0 mole wt.= 101.0971

4 elements in species

1.000 Ca 1.000 H 1.000 C

3.000 O

 

>CO3H

charge= 0.0 mole wt.= 61.0171

3 elements in species

1.000 C 3.000 O 1.000 H

 

-end-

 

1 sorbing minerals

 

Calcite

surface area= 0.277 m2/g

2 sorption sites

>CaHCO3 site density= 0.0002279 mol/mol mineral

>CO3H site density= 0.0002279 mol/mol mineral

 

-end-

 

6 surface species

 

>CaOH2+

charge= 1.0 mole wt.= 58.0873

4 species in reaction

1.000 >CaHCO3 -1.000 CO3-- 1.000 H2O

-1.000 H+

log K= 11.6500 dlogK/dT= 0.0000

 

As for your first question, I don't really know enough about your example to offer anything but a few ideas. Is Calcite at equilibrium with the fluid at each pH, or is it supersaturated? Since you know the concentration of CO3-- in your sytem, and because CO3-- is both a sorbing ion and important to Calcite saturation, I would probably not use it as the charge balancing ion. Use K+ or NO3-, which are much more abundant and less important to the system's chemistry. Also, you should verify whether you want to use the "sorbate exclude" or "sorbate include" option. You can search the GWB Reference Manual for this command, or read this forum post.

 

Hope this helps,

Brian

Link to comment
Share on other sites

  • 2 weeks later...

Hello Dr. Brian,

 

Thank you for your reply and suggestions. I changed the surface dataset to include neutral species as the basis species. I attach the surface data.

Although I am able to work with other surface reactions, I get error when I include the surface reactions >CaHCO3 = >CaOH + CO3-- + 2H+ - H2O, >CaCO3- = >CaOH + CO3-- + H+ - H2O and >CaF = >CaOH + H+ F- - H2O (reactions 3,4 and 8 in my surface dataset).

In the script, now NO3- is balanced for charge instead of CO3-- (script is almost same as the previous one with small modification on charge balance).

In my system, I use calcite equilibrated solution with a specific Ca2+ and CO3-- concentration; to which, I add calcite and NaF solution (this is to prevent calcite dissolution during the experiment). Hence, for pH 6 and pH 7, calcite might be in equilibrium. For other pH, Ca2+ in initial solution is lower than that at pH 6 and 7 (since I added NaOH to increase pH of the solution and by that, I removed Ca2+ as Ca(OH)2 precipitate).

 

Would you suggest (1)how to model and include both calcite and Ca2+ in the system and (2) about the surface data set?

 

With best regards,

Sakambari Padhi

 

Hello Padhi,

 

I noticed a couple problems with your surface dataset. It looks like the molecular weight for the surface species >CO3Ca+ is incorrect. The mass balance warning you mentioned is the program alerting you that there is a problem with the overall mass balance of the reaction >CO3Ca+ + H+ = >CO3H + Ca++. When you get that error, you should make sure you have added all the necessary basis species with the correct coefficients, and that the molecular weights are correct.

 

The second warning (Exit: React stop: set-basis: bad charge) arises because you have added a negatively charged surface basis species in <CaCO3-. You need to choose an uncharged species to be the surface basis species. In testing your dataset, I chose >CaHCO3 instead of >CaCO3-. I then had to rebalance the surface reactions in terms of >CaHCO3. Because Rxn will read your original dataset without a problem (once you fix the molecular weight of >CO3Ca+), you can rebalance the reaction in Rxn (and calculate the correct log K for that new reaction) then enter this information in the surface dataset. As an example, I changed the original dataset:

 

2 basis species

 

>CaCO3-

charge= -1.0 mole wt.= 100.0892

3 elements in species

1.000 Ca 1.000 C 3.000 O

 

>CO3H

charge= 0.0 mole wt.= 61.0171

3 elements in species

1.000 C 3.000 O 1.000 H

 

-end-

 

1 sorbing minerals

 

Calcite

surface area= 0.277 m2/g

2 sorption sites

>CaCO3- site density= 0.0002279 mol/mol mineral

>CO3H site density= 0.0002279 mol/mol mineral

 

-end-

 

6 surface species

 

>CaOH2+

charge= 1.0 mole wt.= 58.0873

3 species in reaction

1.000 >CaCO3- -1.000 CO3-- 1.000 H2O

log K= 5.2500 dlogK/dT= 0.0000

 

 

to this new version with >CaHCO3 as the surface basis species:

 

 

2 basis species

 

>CaHCO3

charge= 0 mole wt.= 101.0971

4 elements in species

1.000 Ca 1.000 H 1.000 C

3.000 O

 

>CO3H

charge= 0.0 mole wt.= 61.0171

3 elements in species

1.000 C 3.000 O 1.000 H

 

-end-

 

1 sorbing minerals

 

Calcite

surface area= 0.277 m2/g

2 sorption sites

>CaHCO3 site density= 0.0002279 mol/mol mineral

>CO3H site density= 0.0002279 mol/mol mineral

 

-end-

 

6 surface species

 

>CaOH2+

charge= 1.0 mole wt.= 58.0873

4 species in reaction

1.000 >CaHCO3 -1.000 CO3-- 1.000 H2O

-1.000 H+

log K= 11.6500 dlogK/dT= 0.0000

 

As for your first question, I don't really know enough about your example to offer anything but a few ideas. Is Calcite at equilibrium with the fluid at each pH, or is it supersaturated? Since you know the concentration of CO3-- in your sytem, and because CO3-- is both a sorbing ion and important to Calcite saturation, I would probably not use it as the charge balancing ion. Use K+ or NO3-, which are much more abundant and less important to the system's chemistry. Also, you should verify whether you want to use the "sorbate exclude" or "sorbate include" option. You can search the GWB Reference Manual for this command, or read this forum post.

 

Hope this helps,

Brian

calcite_fluoride_surface2.txt

Link to comment
Share on other sites

Hello Sakambari,

 

The three dataset entries you are having trouble with are all written in terms of 4 basis species. This is fine, but the dataset must be formatted so that only a maximum of 3 species appear on one line - the fourth entry must go on a separate line. To see an example, take a look at the entry for (O-phth)-- in thermo.dat.

 

This isn't a huge problem, but I noticed your entry for >CO3FCa is written in terms of the aqueous species CaF+, rather than the basis species Ca++ and F-. Typically it's good practice to balance reactions in thermo and surface datasets in terms of the basis species. You can use Rxn to read in that dataset and rebalance the reaction in terms of Ca++ and F-, then use the resulting log K in your surface dataset.

 

There are a few strategies for dealing with Calcite in your system. One is to set pH, Ca++, and HCO3- such that the solution is in equilibrium with Calcite. Another strategy is to swap Calcite in for one of those species In this case, the mass of Calcite would replace the concentration for one of those species as a constraint in your sytem. Finally, you can specify the pH, Ca++, and HCO3- content of a fluid not in equilibrium with Calcite (either supersaturated or undersaturated), then add Calcite as a kinetic mineral. In the short timescales considered in laboratory sorption experiments, it is possible that the sorption reactions reach equilibrium much faster than the dissolution or precipitation of calcite. Assuming this is what you want, I would make sure your rate law is slow enough so that Calcite dissolution or precipitation doesn't change your fluid chemistry.

 

Hope this helps,

Brian

Link to comment
Share on other sites

  • 2 weeks later...

Hello Dr. Brian,

 

Thank you for your help.

Adding calcite as kinetic mineral may explain my system.

Is it possible to slide pH, if I add calcite as kinetic mineral?

The output shows only the results for initial pH.

 

With best regards,

Sakambari

 

 

 

Hello Sakambari,

 

The three dataset entries you are having trouble with are all written in terms of 4 basis species. This is fine, but the dataset must be formatted so that only a maximum of 3 species appear on one line - the fourth entry must go on a separate line. To see an example, take a look at the entry for (O-phth)-- in thermo.dat.

 

This isn't a huge problem, but I noticed your entry for >CO3FCa is written in terms of the aqueous species CaF+, rather than the basis species Ca++ and F-. Typically it's good practice to balance reactions in thermo and surface datasets in terms of the basis species. You can use Rxn to read in that dataset and rebalance the reaction in terms of Ca++ and F-, then use the resulting log K in your surface dataset.

 

There are a few strategies for dealing with Calcite in your system. One is to set pH, Ca++, and HCO3- such that the solution is in equilibrium with Calcite. Another strategy is to swap Calcite in for one of those species In this case, the mass of Calcite would replace the concentration for one of those species as a constraint in your sytem. Finally, you can specify the pH, Ca++, and HCO3- content of a fluid not in equilibrium with Calcite (either supersaturated or undersaturated), then add Calcite as a kinetic mineral. In the short timescales considered in laboratory sorption experiments, it is possible that the sorption reactions reach equilibrium much faster than the dissolution or precipitation of calcite. Assuming this is what you want, I would make sure your rate law is slow enough so that Calcite dissolution or precipitation doesn't change your fluid chemistry.

 

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