Jump to content
Geochemist's Workbench Support Forum

Trying to calculate pH of solution at temp with gas addition


Recommended Posts


I'm brand new to geochemist workbench and I'm trying to figure out the best way to run this simulation. I'm trying to simulate the pH of a solution after I add a CO2 headspace at temperature.

The experimental setup is as follows: 

I mix 3 solutions, 10 mL of iron (ii) ph 8, 10 mL of sulfide pH 11, and 2.5 mL of nickel pH 8 in an argon hood. The iron, nickel and sulfide forms a ppt. I then add a some mL of CO2 headspace at room temp. Then the vials are stored in an 80 degree oven. 

What I'm struggling with is that each vial will have a different amount of CO2, but I want them to end up all at the same pH once at temp. I could adjust the pH at room temp after adding the CO2, but I expect the room temperature pH to be different than the pH at 80C. I was hoping to use geochemist workbench to model the pH of each vial at the final CO2 headspace and temp, and then figure out how much base to add to each vial to get it to pH 9.

Is this something that can be done in the program? I've been reading the tutorials, but I'm not quite sure how to best execute this. I'm also not sure the pH calculations in the program take into account temperature. 



Link to comment
Share on other sites


Before you dive in too deep with your own data, I think it would be a good idea to practice some of the skills you’ll need using examples from the User’s Guide. I think the most important parts of the problem are:

-defining the initial system (Sections 7.1 and 7.2 in the GWB Essentials Guide; Sections 2.1 and 2.3 in the GWB Reaction Modeling Guide)
-redox disequilibrium (Section 7.3 in the GWB Essentials Guide)
-sliding fugacity paths (Section 3.5 in the GWB Reaction Modeling Guide)
-picking up chemical systems (Section 3.9 in the GWB Reaction Modeling Guide)
-sliding temperature paths (Section 3.4 in the GWB Reaction Modeling Guide)

As a first step, I would define a fluid containing Fe++, HS-, Ni++, H+, and so on, with a negligible amount of HCO3-, then verify that you precipitate your desired mineral. Next, you can fold in your CO2 addition, pick up the results, and then use those as the starting point for a sliding temperature path (the GWB does indeed account for the effects of temperature on pH).

Hope this helps,

Brian Farrell
Aqueous Solutions LLC 

Link to comment
Share on other sites

Hi Brian,


Sorry to bother again. One thing I'm running into is not seeing all of my components that I need for the system listed when I try to input them into Spec8. I'm missing a sulfur species, specifically sulfide. Is there a way to add this? Or am I not supposed to add it if it's not available? 

Edit: I decoupled the sulfate/sulfide. That let me add it back in, sorry for the spam!

Link to comment
Share on other sites

Hi Brian, So I got the thing mostly working, and was wondering what the difference is for the iterations in the react output file. I've noticed that the calculated pH from the first iteration and the final iteration can be drastically different. Is the last iteration the most accurate? Or do I average the hundred iterations? Thanks

Link to comment
Share on other sites

Hi Ellie, 

There are two aspects to this question. First, in any run in which you have supersaturated minerals, React will report calculations for the metastable fluid (the first Xi = 0) block, as well as the "true" equilibrium state, in which supersaturated minerals have been allowed to precipitate (the second Xi = 0 block). Section 2.3 Initial system in the GWB Reaction Modeling Guide describes the differences between these two blocks of output, and suggests using input from a SpecE8 example (seawater.sp8) in React to compare the differences. In that example, the precipitation of dolomite and quartz from seawater alters the pH from its initial value. The scope of your modeling work will dictate which block of results is more appropriate.

Second, if you trace an actual reaction path of some sort, for example, by titrating mass as a simple reactants, sliding the temperature, or sliding gas fugacity, React will report in its text output file results from various steps in the calculation (Xi = .1, Xi = .2, ..., Xi = 1). If you slide temperature from 0 to 100 C, for example, Xi = 0 corresponds to the initial system, Xi = .1 corresponds to the system heated to 10 C, and Xi = 1 corresponds to the end of the simulation, the system at 100 C. Understanding the entire reaction path is of course important, but often people care only about the results at the end of the calculation. Averaging values from different steps would not be useful.

I assume these steps are what you're referring to, not the actual iterations within any single reaction step. Please let me know if you have any more questions.



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.

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.


  • Create New...