Run the calculation to see the distributions.
Run the calculation with the equilibrium constants sampled to see which of them, and which properties of the water, the solubility follows.
Open a file of reference solubilities — a MATLAB CSOL file of SR-Site or the PSAR, an HDF5 file with one dataset per element, or a table with one column per element — and run the calculation, to compare the two element by element.
Run the calculation to see the realisations.
Radionuclide solubility by the Simple Functions
When a canister has failed and water has come in, the concentration of a radionuclide in the water inside is limited by the solubility of the least soluble solid it can form. The Simple Functions of Grivé et al. (SKB TR-10-61) turn a groundwater composition into that limit for 20 elements — Sr, Ra, Zr, Nb, Tc, Ni, Pd, Ag, Sn, Se, Th, Pa, U, Np, Pu, Am, Cm, Sm, Ho and Pb — from a small, fixed speciation scheme per element and a few candidate solids chosen by expert judgement. SKB used them in SR-Site, as an Excel workbook sampled with @Risk (SKBdoc 1282962), and in the PSAR: the equilibrium constants are sampled within their uncertainties and the groundwater is drawn from a table of compositions, which gives a distribution of solubilities per element for the transport calculations. This page is that calculation. Nothing is uploaded: the files you open stay in the browser.
How a solubility is calculated
1. Activity corrections
Every constant is corrected from I = 0 to the ionic strength of the water with the Oelkers & Helgeson form of the Davies equation (TR-10-61, equation 2), for a species of charge z:
log γz = −z²·0.5091√I / (1 + 1.5√I) − log(1 + 0.0180153 I) + 0.064 I
log K′ = log K° + Σreactants ν log γ − Σproducts ν log γ
Water and O2(g) count as neutral species in the sums, as they do in the workbooks, and the pH is taken as −log[H+], with the H+ activity coefficient carried in K′. The correction is written here from each reaction as it stands (the Data tab shows it); the SR-Site workbooks wrote it by hand, and where the two differ the workbook's is used unless you tick every term from the reactions (see below).
2. The water: free ligands and the redox state
The input is the total Ca (Ca + Mg), Cl, Na, SO4 and Si, the ionic strength and the free HCO3−. Carbonate follows from the bicarbonate, [CO32−] = [HCO3−] / (K′HCO3[H+]); free sulphate, calcium and sodium are solved together from their mass balances over CaOH+, CaCO3, CaHCO3+, CaSO4, NaCO3−, NaHCO3, NaSO4−, HSO4−, FeSO4 and FeHSO4+; chloride is corrected for FeCl+. No carbonate is reduced to methane and no sulphate to sulphide, and calcite is not allowed to precipitate: when the water is oversaturated the Summary says so, as the workbook's warning did.
Version B (SR-Site, the PSAR): the water inside the canister is taken to be in equilibrium with the corrosion products of the cast-iron insert. The redox state is the magnetite/goethite boundary at the pH of the water,
Eh = (0.059/4)·(−4(−logKmag − 3(−logKgoe)) + 83.1 − 4 pH)·1000 mV, pe = Eh/59.16, pO2 = 10−83.1 + 4 pH + 4 pe
with log K = 5.49 for 3Fe2+ + 3H2O + ½O2 = Fe3O4 + 6H+ and 8.75 for Fe2+ + 1.5H2O + ¼O2 = FeOOH + 2H+ (TR-10-61, equations 14–17), and [Fe2+] follows from goethite at that pO2. The constants in the Eh are those at I = 0 and the one in [Fe2+] is corrected to the ionic strength, as in the workbooks; the 0.059 is theirs too (RT ln10/F is 0.05916 V, an option).
Version A (TR-10-61, section 3.1): the Eh and the total iron of the water are inputs, pO2 follows from the Eh, and [Fe2+] from the iron mass balance over FeOH+, Fe(OH)3, Fe(OH)4−, FeCO3, FeHCO3+, FeSO4, FeHSO4+ and FeCl+, solved together with the sulphate balance. The table needs columns for Eh (mV) and [Fe]tot.
3. One element
Each aqueous species j of the element is a complex of nj atoms of its master species M (UO22+, Np4+, SeO42−, …) with the ligands, so its concentration is K′j[M]njΠ[L]ν. Summing by nuclearity gives Eq1 = 1 + Σmonomers, Eq2, Eq3. Each candidate solid fixes the free master species: for a solid that releases m atoms of M,
P = [M] = (K′s Π[L]ν)1/m, S = P·Eq1 + P²·Eq2 + P³·Eq3
and the solubility of the element is the lowest S over its candidate solids. The candidate that gives it is the controlling solid. Above 0.01 mol/kg the workbooks labelled the element “not solubility limited” (the concentration would then be set by the inventory, not by a solid); the value itself went into the results all the same, and it does here, with the count of such realisations reported.
Uncertainty
Every constant with an uncertainty ΔlogK is sampled from a normal distribution with mean logK° and standard deviation ΔlogK/2 (so ΔlogK is about a 95 % range), independently of the others, with a Latin hypercube per constant when that box is ticked — as @Risk does. The groundwater of each realisation is drawn from the table: at random with replacement, as SR-Site's RiskIntUniform, or without replacement, or in order, or one water throughout. Unticking sample the equilibrium constants gives the variability from the groundwater alone; choosing one water only gives that from the constants alone. Every constant has its own random stream, keyed on its name, so changing one constant or adding a species does not change the draws of the others, and the same seed gives the same numbers.
One water. The tab gives the solubility of each element at the nominal constants, the solubility of every candidate solid, the aqueous speciation at the controlling solid, and a linearised uncertainty: σlog S² = Σ (∂logS/∂logKi·σi)² with σi = ΔlogKi/2, the derivatives taken by central differences through the whole calculation (the major-ion mass balances included), and the share fZ of each constant (TR-10-61, equations 5–13). The ± shown is 2σlog S, the same confidence as the ΔlogK. TR-10-61's tables quote a ± 2.3 times smaller: its workbooks take ΔK = K·ΔlogK where the propagation of a logarithmic range needs K·ln10·ΔlogK, and report 0.434·ΔS/S. For the example of its table 3-2 this page gives the report's solubilities and controlling solids exactly, and its ± after division by ln 10, except for Nb, Pa and Pd, whose workbook derivatives have slips of their own.
The thermodynamic data
The dataset is the one of the SR-Site calculations: the reactions and constants of the SR-Site data report
(TR-10-52, tables 3-29 to 3-32) with the digits of the workbooks, and the plutonium correction of February 2011
(Pu(CO3)33− has ΔlogK = 1.4; the first workbooks had 10.6, which put the upper tail of
the plutonium solubility above 1 mol/kg). The Data tab lists every reaction with its constant, its uncertainty,
the activity term and the ligand dependence derived from it, and a check that it balances. Any of them can be
edited, species and solids added or removed, and a solid left out of the minimum; Save data writes
the dataset as JSON for Open data… to read back. A reaction is written with the master species of the
element, the solid (for a solid) and the basis species H+, H2O, O2(g),
CO32−, SO42−, Cl−, Ca2+, Na+, Fe2+ and
H4SiO4, charges sign first (Th+4, SO4-2, Fe(OH)4-), and terms
separated by “ + ” with spaces.
Where the SR-Site workbooks differ from their own reactions
Writing every term out from the reactions and comparing with the workbooks cell by cell turned up these. They are kept by default, so that the SR-Site and PSAR numbers come out; each has an option.
| SmOHCO3(s) | The activity term leaves out the H+ of the reaction: (−1, 0, −1, −1) for (−1, 1, −1, −1). At I = 0.1 the solubility of the solid that controls samarium in most waters is 0.10 log units high, 0.12 at I = 0.19. | every term from the reactions |
| NiCO3·5.5H2O(s) | The activity term leaves out the 5.5 H2O (0.03 log units at I = 0.1). | every term from the reactions |
| PaO2OH(aq) | +2 q0 in the activity term where the reaction gives 0 (0.01 log units). | every term from the reactions |
| (UO2)2CO3(OH)3− | The dimer is multiplied by [CO32−]³ for its one carbonate. Negligible under the reducing conditions of Version B either way. | every term from the reactions |
| Dimers and trimers | (UO2)2… and (UO2)3… enter the total uranium once, not two and three times over. | count a polynuclear complex by its metal atoms |
| Ra(OH)+ | Sampled as three nested normals, RiskNormal(RiskNormal(RiskNormal(…))), which is one normal with √3 times the spread. Ra(OH)+ never matters. | sample Ra(OH)+ once |
| Eh | 0.059 V for RT ln10/F in the magnetite/goethite Eh, then 59.16 mV to go back to pe; pO2 comes out 0.08 log units off. | Eh with 0.05916 V |
| Cm and Am | The curium constants are the americium constants by analogy, but are sampled independently: for one uncertain number the two elements get unrelated draws. Their own distributions are right; how they go together is not. | Cm drawn with the Am numbers |
| Fe(OH)4− | Written with 2.5 H2O, which does not balance; here with 3.5 H2O and the workbook's activity term. Only Version A uses it. |
Ticking the first four changes the SR-Site distributions by less than 0.03 log units for every element but Sm (about 0.09 lower); the fifth changes no distribution, only how Am and Cm go together.
Groundwater tables
One row per water, with a header row naming the columns. The names are recognised loosely: pH,
[Ca]tot (m) or Ca, [Cl]tot (m), [Na]tot (m),
[SO4-2]tot (m), [Si]tot (m), IS (mol/kg) or I,
[HCO3-] (m), and for Version A Eh (mV) and [Fe]tot (m); a column
Mg is added to Ca when that box is ticked. CSV, semicolon- or tab-separated text and Excel
workbooks are read; from a workbook the sheet called Groundwater is taken if there is one, otherwise
the first sheet with such a header, so the parameter workbook of the PSAR can be dropped as it is. Rows with
a missing value are left out and counted. Concentrations are mol/kg water; where one is not known the
workbooks asked for a very small number rather than zero (10−20).
The built-in examples are the reference waters of TR-10-61, table A-1 (from TR-06-09), with Mg apart, the more reducing Eh where two are given, and 10−20 for silicon, which the table does not give; and the example water of its table 3-1. The Simple Functions were built for I ≤ 0.2 mol/kg, 25 °C, 6 < pH < 11 and −8 < pe < 14; waters outside are calculated and flagged.
What comes out
| Summary | Per element the percentiles of log10 of the solubility, the share of each controlling solid, and the share above the “not solubility limited” threshold; a box plot of all 20; the warnings of the workbooks (ionic strength above 0.2 m, calcite oversaturated) counted over the realisations. Split the variability runs the calculation twice more — the groundwater alone with the constants nominal, and the constants alone for the water of the One water tab — and sets the three spreads side by side, with the ratio of the groundwater's P95 − P5 to the constants'. |
|---|---|
| One water | A single composition at the nominal constants: the free ligands, Eh, pO2 and [Fe2+]; per element every candidate solid, the speciation and the linearised uncertainty with the constants that carry it. |
| Distributions | Histogram, CDF or exceedance curve of one element or all, split by controlling solid if you like, with a fitted normal or skew-normal distribution of log10 S (the Akaike criterion decides, as for fits to transport input) and the reference file overlaid. |
| Sensitivity | Spearman rank correlation of log S with every sampled constant and with the properties of the water drawn. A constant near ±1 carries the uncertainty; the water's pH, carbonate or sulphate near ±1 means the spread comes from the groundwater. |
| Sweep | The solubility of every candidate solid of an element, and their minimum, against one property of the water held at the composition of the One water tab — where the controlling solid changes, and how steeply. |
| Compare | A run against reference solubilities: percentiles side by side and the two-sample Kolmogorov–Smirnov distance per element, and the CDFs overlaid. |
| Samples | Every realisation: the water drawn and every element's solubility and controlling solid, as CSV, Excel, JSON or a MATLAB file holding the struct array CSOL(1×N) with one field per element, the layout the SR-Site and PSAR transport calculations read; and the sampled constants as CSV. |
What the method leaves out
- The radionuclide does not act back on the water: pH and ligand concentrations are those of the groundwater whatever dissolves. For elements that reach 10−3–10−2 mol/kg (Ni, Sr in some waters) a full equilibrium calculation would let the dissolution shift the pH and use up ligands.
- In Version B, [Fe2+] is what goethite allows at the fixed pH and pO2. It goes as 1012−2pH roughly: 10−2 mol/kg at pH 7, 10−1 at pH 6.5. Such a water would precipitate siderite, and its ionic strength is not updated for the iron; iron sulphate complexes then lower the free sulphate (raising the Sr and Ra solubilities), and the Se solids, whose solubility falls with [Fe2+], come out lower. The One water tab shows [Fe2+] and the Summary its range.
- Temperature is 25 °C throughout; TR-10-61 found up to two log units of difference at 0 and 100 °C.
- Activity corrections are of the Davies type, meant for I ≤ 0.2 mol/kg; TR-10-61 found no significant difference from SIT up to 1.9 mol/kg for U, Th, Se, Np and Ni.
- Only the species that make up at least 10 % of an element in the range the scheme was built for are present, and only the candidate solids chosen by expert judgement can form.
Checking it
The arithmetic reproduces the cached results of the SR-Site workbooks (SKBdoc 1282962) for two groundwaters to
13 significant digits in every element, solid, ligand and activity coefficient; its distributions over the PSAR groundwater set are indistinguishable from the PSAR solubility data
by the two-sample Kolmogorov–Smirnov test for all 20 elements; and in Version A it reproduces the example of
TR-10-61 (table 3-2) — every solubility, every controlling solid and the ranking of the constants.
node resources/tests/simplefunctions/test-model.js runs the checks that need only public
data.
References
| TR-10-61 | Grivé M, Domènech C, Montoya V, Garcia D, Duro L, 2010. Simple Functions Spreadsheet tool presentation. SKB TR-10-61, Svensk Kärnbränslehantering AB. The method, Versions A and B, the validation against PHREEQC and HYDRA-MEDUSA, the reference waters. |
| TR-10-52 | SKB, 2010. Data report for the safety assessment SR-Site. SKB TR-10-52. Tables 3-29 to 3-32: the reactions and constants. |
| TR-10-50 | SKB, 2010. Radionuclide transport report for the safety assessment SR-Site. SKB TR-10-50. Appendix F: the solubilities used. |
| R-10-50 | Grivé M et al., 2010. Determination and assessment of the concentration limits to be used in SR-Can. Supplement to TR-06-32. The choice of solids. |
| TR-06-32 | Duro L et al., 2006. Determination and assessment of the concentration limits to be used in SR-Can. |
| SKBdoc 1282962 | The SR-Site Simple Functions calculations: workbooks, @Risk results and CSOL files per climate domain. |
| Oelkers & Helgeson 1990 | Triple-ion anions and polynuclear complexing in supercritical electrolyte solutions. Geochimica et Cosmochimica Acta 54, 727–738. |