Skip to content

Glasses of slag, fly ash and silica fume dissolving at pH 13 ​

Before this page

Rate laws, and every parameter in them, for the transition-state rate laws and their inhibitors (RateModelInhibitor).

What reacts in a slag or a fly ash is a glass, an amorphous calcium aluminosilicate: the slag of the ternary pastes at three temperatures holds 35 % SiO₂, 42 % CaO and 11 % Al₂O₃ and is 95 % amorphous. Snellings (2013) synthesized six such glasses, from the composition of a slag (G1, G2) through those of fly ashes (G3, G4) and of a natural pozzolan (G5) to silica (G6), dissolved them in NaOH solutions at pH 13 and 20 °C, so dilute that nothing precipitated, and measured the initial rate of each per square meter of its BET surface. Measured in the same way on every glass, these rates compare the glasses with one another and show what the solution does to them.

The rate grows with the calcium of the glass, which breaks up its silicate network. Snellings (2013), Fig. 8 relates the logarithm of the rate to the molar ratio of the calcium to the network formers, a straight line, which snellings2013_glass returns as a rate constant:

julia
using ChemistryLab, DynamicQuantities, Printf
include(joinpath(pkgdir(ChemistryLab), "scripts", "snellings2013_glass.jl"))

g = literature_table(SN13, "glasses")
t = literature_table(SN13, "initial_rates")
println("glass   CaO  Al2O3  SiO2     x   log10 k (law)   measured")
for i in eachindex(g.glass)
    ox = Dict("CaO" => ustrip(g.CaO_percent[i]) / 100, "Al2O3" => ustrip(g.Al2O3_percent[i]) / 100,
              "SiO2" => ustrip(g.SiO2_percent[i]) / 100)
    x = ChemistryLab._snellings2013_abscissa(ox, ("CaO",))
    logk = log10(snellings2013_glass(ox; Ea = 0.0).k(; T = 293.15))   # at 20 °C, Ea plays no part
    j = findfirst(k -> t.glass[k] == g.glass[i] && iszero(ustrip(t.Al_initial[k])) &&
                       iszero(ustrip(t.Ca_initial[k])) && iszero(ustrip(t.Si_initial[k])), eachindex(t.glass))
    @printf("%-5s %5.1f %6.1f %5.1f %6.3f %10.2f %13.2f\n", g.glass[i], ustrip(g.CaO_percent[i]),
            ustrip(g.Al2O3_percent[i]), ustrip(g.SiO2_percent[i]), x, logk, ustrip(t.log_rate[j]))
end
glass   CaO  Al2O3  SiO2     x   log10 k (law)   measured
G1     43.0   19.0  38.0  0.557      -6.95         -6.87
G2     36.0   16.0  48.0  0.450      -7.24         -7.33
G3     20.0   37.0  43.0  0.165      -8.02         -7.97
G4     15.0   27.0  58.0  0.132      -8.11         -8.11
G5      6.5   11.5  82.0  0.064      -8.30         -8.31
G6      0.0    0.0 100.0  0.000      -8.47         -8.45

The rates are in mol of the glass's cations per m² and per second; the law meets every measurement within 0.1, inside the 0.15 Snellings (2013) gives as the error. The abscissas of the six points of the figure are   , computed from the compositions, aluminum counted twice; with that ratio the line drawn, of slope 2.74, passes through the rates (with Ca/(Al + Si), the ratio named on the axis, a line through the same rates would have a slope of 2.05), and the law uses it. It is measured on glasses holding nothing but CaO, Al₂O₃ and SiO₂, from silica to G1, at pH 13 and 20 °C; outside that range the function refuses unless told to extrapolate, and it takes no activation energy for granted.

Calcium and aluminum in solution ​

Added to the solution, calcium slows every glass, and aluminum the glasses in which calcium only balances aluminum (G3 to G6, the tectosilicate glasses); silicon up to 11 mM moves the rates by 0.27 at most, which Snellings (2013) finds not significant. The paper gives the rates, not a law. A factor  , the activity of Ca²⁺ or of aluminate (AlO₂⁻ in the database), is one where the ion is absent and falls as where it is plentiful; its is fitted here, one for calcium on all glasses and one for aluminum on the tectosilicate glasses, to the change of each rate against the same glass in NaOH alone. The activities are those of the 51 solutions, each computed at pH 13 with the sodium hydroxide that holds it (the paper does not give its concentration):

julia
rows = sn13_rows()
fit = sn13_fit(rows)
@printf("solutions certified: %d of %d; NaOH for pH 13: %.3f to %.3f mol/kg\n",
        count(r -> r.certified, rows), length(rows), extrema(r.NaOH for r in rows)...)
@printf("calcium,  all glasses:          K = %7.0f kg/mol, rms %.2f, worst %.2f (%d rates)\n",
        fit.ca.K, fit.ca.rms, fit.ca.worst, fit.ca.n)
@printf("aluminum, tectosilicate glasses: K = %7.0f kg/mol, rms %.2f, worst %.2f (%d rates)\n",
        fit.al.K, fit.al.rms, fit.al.worst, fit.al.n)
@printf("aluminum, G1 and G2 apart:       K = %7.0f kg/mol, rms %.2f, worst %.2f (%d rates)\n",
        fit.al_percalcic.K, fit.al_percalcic.rms, fit.al_percalcic.worst, fit.al_percalcic.n)
@printf("silicon, no factor:              rms %.2f, worst %.2f\n", fit.si_rms, fit.si_worst)
solutions certified: 51 of 51; NaOH for pH 13: 0.085 to 0.111 mol/kg
calcium,  all glasses:          K =    8618 kg/mol, rms 0.14, worst 0.23 (12 rates)
aluminum, tectosilicate glasses: K =    1311 kg/mol, rms 0.25, worst 0.37 (12 rates)
aluminum, G1 and G2 apart:       K =     462 kg/mol, rms 0.17, worst 0.28 (6 rates)
silicon, no factor:              rms 0.17, worst 0.27

Calcium is described within the error of the measurements: a Ca²⁺ activity of , about , halves the rate of any of these glasses. Aluminum is not: one factor cannot follow both G3, slowed by 0.4 from the smallest addition on and no further, and G6, slowed by 0.4, 0.6 and 1.1 as the aluminum grows. On the slag-like glasses aluminum moves the rate by 0.26 to 0.40, which Snellings (2013) reads as largely within its error; the law leaves them without that factor.

julia
using Plots
default(framestyle = :box, grid = false)
law(r) = r.log_base - log10(1 + fit.ca.K * r.a_Ca) -
         (r.glass in SN13_TECTOSILICATE ? log10(1 + fit.al.K * r.a_Al) : 0.0)
series = (("NaOH alone", r -> r.al == r.ca == r.si == 0, :circle), ("Al added", r -> r.al > 0, :utriangle),
          ("Ca added", r -> r.ca > 0, :square), ("Si added", r -> r.si > 0, :diamond))
fig = plot([-9.8, -6.4], [-9.8, -6.4]; color = :black, label = "", xlabel = "log₁₀ r measured (mol m⁻² s⁻¹)",
           ylabel = "log₁₀ r computed", size = (560, 480), legend = :topleft)
plot!(fig, [-9.8, -6.4], [-9.8, -6.4] .+ 0.15; color = :gray, ls = :dash, label = "± 0.15, the error of the paper")
plot!(fig, [-9.8, -6.4], [-9.8, -6.4] .- 0.15; color = :gray, ls = :dash, label = "")
for (lab, keep, m) in series
    s = filter(keep, rows)
    scatter!(fig, [r.log_rate for r in s], law.(s); marker = m, label = lab)
end

These are initial rates far from equilibrium, at pH 13, 20 °C and calcium and aluminum below 2.5 and 5 mM. A glass in a paste meets a pore solution at a pH of 13 to 13.8, with calcium and aluminum set by the hydrates around it, for months: whether this law, fitted on dilute solutions, follows the slag of a paste is a question for the measurements of a paste, not one it answers.

The measurements of Newlands et al. (2017), on two glasses of slag-like and fly-ash-like composition, are not used to test this law, and not for want of quality: they answer another question. The glasses dissolve at 25 °C in a closed, stirred reactor for three hours; the pH is read once, at the end, when the reactor is opened; and the paper reports the amount released per unit area divided by the time elapsed, an average since the start, while calcium returns onto the surface of the glass. An initial rate at 20 °C would have to be drawn from their figures, through a choice of the early window and an activation energy this law does not give, and the comparison would test those choices as much as the law.

The slag of a paste under this law ​

The ternary paste of the pages on curing temperature, 50 % CEM I 52.5 R, 40 % slag and 10 % limestone at w/b 0.5 and 20 °C, is integrated here with its slag dissolved by this law instead of the law fitted there on its degree of reaction: the rate of the composition of its glass, slowed by the calcium of the pore solution with the factor above, over the surface of the slag shrinking as spheres. Nothing is fitted on the paste. The glass lies beyond the most calcic glass measured ( ), its MgO is left out of the law, and the activation energy is the authors' for the slag of these pastes (Snellings et al. (2022), Table 2), the dilute solutions being at 20 °C only. Which area the rates apply to is the open question: Snellings (2013) normalized them by the BET surface of smooth grains of 50 to 125 µm, and the BET surface of a ground slag, 2.61 m²/g, holds a roughness its Blaine surface, 0.50 m²/g, does not. Both are run:

julia
include(joinpath(pkgdir(ChemistryLab), "scripts", "snellings2022_glass_law.jl"))
setup = sn22g_setup()
days = [1, 2, 7, 28, 90, 180]
runs = Dict{Symbol, Any}(a => sn22g_run(setup, fit, 20.0; area = a) for a in (:bet, :blaine))
measured = literature_table(SN22, "degree_of_reaction"; constituent = "slag", temperature_C = 20, w_b = 0.5)
println("degree of reaction of the slag (%)      ", join((lpad("$d d", 7) for d in days)))
for (a, label) in ((:bet, "this law, BET area"), (:blaine, "this law, Blaine area"))
    println(rpad(label, 40), join((@sprintf("%7.1f", x) for x in sn22g_slag_degree(runs[a], days))))
end
println(rpad("measured, Snellings et al. (2022)", 40), join((@sprintf("%7.1f", ustrip(x)) for x in measured.degree_percent)))
degree of reaction of the slag (%)          1 d    2 d    7 d   28 d   90 d  180 d
this law, BET area                         77.2  100.0  100.0  100.0  100.0  100.0
this law, Blaine area                      16.0   34.2   87.6  100.0  100.0  100.0
measured, Snellings et al. (2022)          20.7   23.3   41.5   51.2   57.2   62.1

Over the BET surface the slag is gone in two days. Over the smaller surface the first day falls within the measurement, and then the dissolution does not slow down: the paste holds its slag at 41 to 62 % from the first week to the sixth month, where this law has dissolved it within the month. Snellings (2013), Section IV(3) sets out the use of these rates for cements under an assumption, "that dissolution rates control the consumption of SCMs in cement"; for this slag, the paste measures it holding for a day and no longer. What slows a slag in a paste after its first days is not in a law measured on its glass in a dilute solution.