Acidity and alkalinity

Acidity and Alkalinity is part of a free web series, GWB Online Academy, by Aqueous Solutions LLC.

What you need:

Download this unit to use in your courses:

Click on a file or right-click and select “Save link as…” to download.


Acidity is defined as the ability of a fluid to neutralize strong base. It is measured by titrating a fluid to an endpoint pH of ~8.3.

The acidity of a fluid is NOT the same as its pH.

Task 1: Water and carbonate acidity

Let's simulate an acidity titration. Locate file “Acidity.rea” and double-click on it. When React opens, look at the Basis pane

The pane contains the unreacted water, a Ca-HCO3 + Na-Cl water at pH 4.

Move to the Reactants pane

Here we've defined a reaction path in which we'll titrate 3 mmol of NaOH into the initial fluid.

On the Config → Options… dialog, the check box for mineral precipitation has been deselected

This will prevent minerals from forming as we trace the reaction path. To account for precipitation, we would select this option, or click Reset.

On Config → Output… set a suffix “_Ac”

The string will be appended to the names of your output datasets, so you can go back to examine the results without rerunning the model. Click OK.

Trace the simulation by selecting Run→ Go

Click to launch Gtplot and configure a diagram as indicated below

Your diagram should look like this

From your plot, what is the approximate acidity of the fluid? Take a titration endpoint pH of 8.3, and remember a mmol of NaOH is the same as a meq of base.

The figure below shows that the fluid reached an endpoint pH of 8.3 after the addition of 2.1 mmoles of NaOH. The fluid's acidity, then, is 2.1 meq kg−1 of base

Now plot the concentrations of aqueous species in the fluid versus the amount of NaOH that's been added. On the XY Plot dialog, go to the Y Axis pane and select variable type “Species concentrations”. You can simplify the plot by right-clicking on a line and choosing “Hide This Line”.

After excluding certain species (H2O, Na+, Cl, NaCl) we arrive at the figure below, which indicates the species that contribute to the fluid's acidity

Which aqueous species in the fluid account for its acidity?

There are two main contributors to the fluid's acidity. The water acidity results from reaction of the hydrogen ions with the added hydroxyl to form water

The second, and larger contribution to the fluid's acidity, is the carbonate acidity, which results from reaction of CO2(aq) in the fluid with added hydroxyl to form bicarbonate

The chart below shows the concentrations of H+ and CO2(aq) in the fluid. Each species neutralized one mole of base added, so their contributions to the acidity in meq base kg−1 fluid equals their concentration in mmoles kg−1

Task 2: Mineral acidity

Return to React, or if you closed it, double-click on “Acidity.rea” once again. On the Basis pane, click , then choose “Al+++” from the dropdown. Set the Al3+ concentration to 2 mmol kg−1. The pane should look like this

Go to the Reactants pane and change the mass of the NaOH titrant to 12 mmol

On Config → Output… set a suffix “_Ac+Al” and click OK

Now rerun the model, and when React finishes, launch Gtplot to render the results.

Compared to the first model, how has the acidity titration changed? If you like, you can compare instances of Gtplot side-by-side: Double-click on “React_plot_Ac.gtp” to render your earlier results.

The figure below shows the titration curve of the Ca-HCO3 + Na-Cl + Al water

Significantly more NaOH is required to reach the pH 8.3 endpoint in the fluid containing dissolved alumina. The acidity, then, is higher: about 10 meq base kg−1. There are also more “plateaus” in the plot of pH vs. the amount of added NaOH. The plot of species concentrations below helps to explain the reactions

In addition to the H+ and CO2 which can neutralized the hydroxyl ions, the second fluid contains mineral acidity in the form of dissolved alumina. Each mole of Al3+ can neutralize 4 moles of hydroxyl to form Al(OH)4

Like before, we can set up a table with the concentration of our species contributing to acidity. We'll additionally include the number of hydroxyls that each can neutralize: 1 each for the H+ and CO2, and 4 for the Al+++

Adding up all of the contributors, we arrive at a total acidity of 10.1 meq base kg−1. In fact, the acidity is a little less, because not all of the aluminium in the initial system is present as Al+++.

Task 3: Water and carbonate alkalinity

Alkalinity is the ability of a fluid to neutralize strong acid. It is measured by titrating a fluid to an endpoint pH of ~4.5. It is expressed as meq acid kg−1, or as equivalent mg of CaCO3. To convert, 1 meq acid is equal to 50.05 mg CaCO3.

Open React and read in “Alkalinity.rea”. The Basis pane

contains the starting water, this time at pH 11. On the Reactants pane

we set up reaction with 6 mmol of strong acid, HCl.

On the Config → Options… dialog, the check box for mineral precipitation has been deselected

On Config → Output… set a suffix “_Alk” and click OK

Trace the simulation by selecting Run → Go. Launch Gtplot to diagram pH, carbonate alkalinity, and species' concentrations over the course of the titration. What is the alkalinity of this fluid? What reactions give rise to the alkalinity? How does alkalinity change as HCl is added?

The figure below shows the fluid's pH as hydrochloric acid is added. There are several plateaus arising from the buffering reactions occurring as the titration proceeds. About 5 mmoles of HCl were required to reach the endpoint, so the alkalinity of the fluid is 5 meq acid kg−1

The figure below shows the concentrations of various species that contribute to the fluid's alkalinity

In this case, there are two contributors to the fluid's alkalinity. The water alkalinity results from reaction of the hydroxyl ions in the water with added hydrogen to form water

The second contributor is the carbonate alkalinity, which results from reaction of carbonate ions in the fluid with added hydrogen ions to form bicarbonate

which in turn reacts to form carbon dioxide

as pH decreases. Each mole of bicarbonate in the fluid, then, can neutralize one mole of acid, while each mole of carbonate initially present can neutralize two moles of acid.

Using our familiar table

we can we can calculate each contribution to the fluid's total alkalinity. Ours is a rough estimate, because we've assumed that all 2 moles of the carbon is initially present as carbonate ion, but a small amount is actually present as bicarbonate, which as mentioned can only neutralize a single mole of acid.

The figure below shows a plot of carbonate alkalinity vs. the amount of reacted acid

Total alkalinity is larger than carbonate alkalinity, since it additionally includes the water alkalinity. The carbonate alkalinity decreases as acid is added to the fluid, reflecting the protonation of first the carbonate then bicarbonate species.


Craig M. Bethke and Brian Farrell. © Copyright 2016–2023 Aqueous Solutions LLC. This lesson may be reproduced and modified freely to support any licensed use of The Geochemist's Workbench® software, provided that any derived materials acknowledge original authorship.


Bethke, C.M., 2022, Geochemical and Biogeochemical Reaction Modeling, 3rd ed. Cambridge University Press, New York, 520 pp.

Bethke, C.M., B. Farrell, and M. Sharifi, 2023, The Geochemist's Workbench®, Release 17: GWB Reaction Modeling Guide. Aqueous Solutions LLC, Champaign, IL, 219 pp.

Comfortable with acidity and alkalinity?

Move on to the next topic, Geothermometry, or return to the GWB Online Academy home.