Jump to content
Geochemist's Workbench Support Forum

pH buffer calculation


Recommended Posts


I would like to calculate pH value of an acetate buffer at 200 C. I prepared the pH 4.0 acetate pH buffer at room temperature based on the recipe 0.1658 mol/kg acetic acid and 0.0358 mol/kg sodium acetate using MilliQ water. The measured pH is 3.90 which is very close to 4.0. Now I would like to use SpecE8 to estimate the pH at 200 C. There are two problems:

1. The outcome is charge imbalanced. The input represents the actual recipe so I am reluctant to add other ions (e.g., Cl-) for charge balance. Why it is not balanced?

2. The results showed that acetate and acetic acid were decomposed to other hydrocarbon species (e.g., Methane(aq) CO2(aq)  Formate NaHCO3(aq) Ethane(aq)), and hence the pH buffer was not a buffer anymore and the calculated pH is 6.39. Even I set the temperature to 25 C, the result is the same and the calculated pH is 5.57, very different to the measured value 3.90. This is not correct. The acetic acid and sodium acetate are very stable in the temperature range and I would like to enforce these two species as stable species so they do not decompose during calculation in GWB. What I want is the pH value of this buffer recipe at different temperatures. How this can be done? I know I can suppress the hydrocarbon species, but there are so many to suppress. Every time I suppressed the major hydrocarbon species, and run again, other hydrocarbon species showed up. Is there a command to make specific species (in this case acetate and acetic acid) stable in calculation? 

The script is attached.

By the way, I have the same problem for citric pH buffer.

Many thanks.


Acetic pH 4 buffer.sp8

Link to comment
Share on other sites

Hi Fang,

You’ll want to disable the redox coupling reaction between acetic acid and HCO3-. When you decouple acetic acid, it acts just like a basis species, so you can add it to SpecE8’s basis directly. You won’t be required to add O2(aq) to your basis, but if you do, the acetic acid won’t break down to other types of carbon species. If you need both O2(aq) and HCO3- in your basis (perhaps O2(g) and CO2(g) are in contact with your solution), you’ll probably want to disable all redox coupling reactions involving carbon. For more information, please see 2.4 Redox couples and 7.3 Redox disequilibrium in the GWB Essentials Guide.

By the way, a dissolved oxygen measurement is almost always set as a “free constraint” (8 free mg/kg, referring to the O2(aq) species only, rather than 8 mg/kg, which would constrain the entire O2(aq) component). For more information, please see 7.1 Example calculation in the GWB Essentials Guide and 5.1 <unit> in the GWB Command Reference (or look for the same SpecE8 command in the GWB Reference Manual for older releases of the software).

Regarding the charge imbalance, I think you’ll find the value is pretty miniscule. 

Sometimes it’s possible to calculate the equilibrium pH of a fluid at a specified temperature using SpecE8. Other times you might know the pH at room temperature, so you can use it to constrain the initial condition of a sliding temperature path in React. It’s a really convenient option. For more information, please see section 3.4 Polythermal reaction paths in the GWB Reaction Modeling Guide.

Hope this helps,

Brian Farrell
Aqueous Solutions LLC

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