Jump to content
Geochemist's Workbench Support Forum

CO2 in high pH solutions

Tom Meuzelaar

Recommended Posts

[admin notice: the below is from the former GWB users group email distribution list. This message was originally posted 12/12/2005]


Posted by: Sherry Samson


My question concerns carbonate in high pH solutions.

The example solution is from a flow-through mineral

dissolution experiment and model input consists of the

pH measured at 25C, the measured cations, and the

estimated concentrations of F (from the mineral

stoichiometry) and Na (estimated from titration of the

experiment inlet solution: approximately 1 mL of 10 N

NaOH in 1 L of DI water). The only available anion

other than F is OH. My objectives are to calculate pH

at the experimental temperature (70C) and determine

saturation indices. I am using GWB version 4.0.3 of

React with Windows XP Professional and the thermo.dat



In the initial run (scripts for each scenario

attached), I fixed pH at 25C and attempted to charge

balance on Na (the species with the largest

concentration and uncertainty). The system will not

converge (“Residuals too large”). The same result is

obtained when attempting to balance on any other



I then ran a script with the charge balance off.

Convergence was achieved with a final pH at 70C of

10.741, but there was a charge imbalance of -2.52E-05



I then tried balancing on H. The system converged

with charge balanced and similar results for pH

(11.949 at 25C and 10.740 at 70C).


The problem arises in attempting to introduce CO2 into

the system. The carbonate content of the samples was

not analyzed, but the solutions are in equilibrium

with the atmosphere so CO2 should be included. I ran

two scripts with CO2(g) added: one with the initial

log fugacity at -3.5, and another with the log

fugacity fixed at -3.5. The only constraint on pH is

I know the measured pH at 25C is 11.95 and here in

each case the 25C pH was computed as 9.193 so we know

this isn’t correct (final pH was 8.943 or 9.404,



If my only objective was to calculate pH, it would

appear that simply balancing on H (and omitting CO2)

gives reasonable results, but CO2 also affects the

calculation of the saturation indices. In this

particular example, all the secondary phases of most

interest (amorphous Si, gibbsite, Fe(OH)3, and

brucite) are undersaturated in all scenarios, but the

saturation index varies from 1 to 3 orders of

magnitude so this may not hold true in other



Although the initial solutions when prepared are in

equilibrium with the atmosphere at 25C, both the inlet

solutions and the water bath containing the

dissolution reactors are heated to 70C so the scenario

fixing fugacity was not appropriate. Just setting the

initial fugacity, however, also doesn’t give logical

results as the measured 25C pH cannot be duplicated

and I am quite confident in that measurement. The

samples are allowed to cool (in capped test tubes) to

room temperature before pH is measured and some CO2(g)

is absorbed by the solutions during the course of the

pH measurement as evidenced by a continual downward

drift in pH for samples from experiments at lower pH

(e.g., < 9), but no drift is observed with samples

this high in pH.


The fact that this experiment was done at 70C

introduces some complications, but the same problems

are encountered in attempting to model experiments

that were done at 25C (example of pH 12 at 25C

attached), so high pH is the common factor, not the



Any suggestions anyone may have about handling this

CO2 problem will be appreciated. I’m also wondering

why charge balancing on Na was unsuccessful.


Sherry D. Samson



Posted by: Craig Bethke


Hi Sherry,


If your fluid is of pH 12, you can be sure it is not in equilibrium with CO2 in the atmosphere. Whatever CO2 has dissolved into the fluid has reacted to form CO3--.


The reason you can't change balance on Na+ is that you have complete information about the cations in solution, but not the anions. To attempt a charge balance on the fluid, which is overbalanced with positive ions, the program drove the Na+ concentration negative, preventing it from converging.


Theoretically, you can solve this problem by constraining the concentration of CO3-- by charge balance. In doing so, however, you should make sure you the charge balancing reflects reality and not simply the sum of errors in analyzing for the other components.


Hope this helps,



Posted by: Sherry Samson


Dear Craig:


Thank you for your reply. Although it’s the carbonate

anion we lack information on, because of speciation at

this pH the charge imbalance is -2.21E-5 faradays

which means there was actually an excess of negative

charge, correct? If so, why would the system reduce

the Na concentration to a negative value? Wouldn’t it

increase it? And since the imbalance represents only

0.2% of the Na concentration, wouldn’t this adjustment

be within the tolerances of the system (i.e., not

grossly unbalanced)?


I couldn’t get the system to charge balance on

carbonate. Were you able to achieve this with the

script that I sent?


I tried another approach which appears to give

reasonable results. I used just a pure water system

and specified the CO2(g) log fugacity as -3.5 and temp

as 70C. This gave me a total carbonate concentration

of 6.4E-6 molal. I ran my original script with the

initial CO3 concentration set to this value and

balanced on Na. The system converged and the charge

balance was successful (Na concentration adjusted from

0.01 to 0.01004). The pH went from 11.95 at 25C to

10.741 at 70C. Initially I had tried setting the CO3

concentration to the equilibrium value at 25C, but

because it’s treated as a closed system, CO2 isn’t

allowed to exsolve and the total carbonate

concentration remained the same at 70C. Is there

another way to handle this that allows for exsolution?


Thank you for your help.




Posted by: Craig Bethke


Hi Sherry,


I looked at you input files a little more and you are correct that your run is not overbalanced with respect to cations. Sorry for the false lead.


Your run is unusual in that it contains no significant anions in the basis (OH- is in the system, but represented in the basis by H+). This makes it hard for the program to converge. There are two ways to help it along, both of which solve the problem:


(1) Swap OH- into the basis in the place of H+, and instead of setting pH to 12, set the log activity of OH- to -2. This helps convergence because H+, a weak basis entry due to its very low concentration (~10^-12 molal), is replaced by OH-, the dominant anion and hence a strong entry.


(2) Constrain water in terms of free kg, rather than total kg. This eliminates an unknown value from the numerical solution and lets the program converge. There is a flaw we just noticed in Releases 4.0 to 6.0 of the routine that saves the model configuration: the program saves the water constraint in total kg, even if it has not been set and should default to free kg. This issue is pretty much a formality, since the two values are nearly identical. The calculation results aren't affected, but in your case it did make it a little harder for the program to converge; the routine will be corrected in the next maintenance release of the software.


Hope this helps,


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