@@ -11,101 +11,104 @@ namespace geochemistry
1111namespace forge
1212{
1313
14- // Stoichiometric matrix [13 reactions × 23 species]
15- // Columns 0–12: secondary species (must be -1 on diagonal)
16- // Columns 13–22: primary species
17- constexpr CArrayWrapper< double , 19 , 26 > soichMatrix =
18- {// CaCO₃ CaHCO₃⁺ CaSO₄ CaCl⁺ CaCl₂ MgHCO₃⁺ MgCO₃ MgCl⁺ CO₂(aq) HSO₄⁻ KHSO₄ HSiO₃⁻ NaHSilO₃ NaCl KCl KSO₄⁻ | H⁺ Ca²⁺ Mg²⁺ Na⁺ K⁺ Al³⁺ HCO₃⁻ SO₄²⁻ Cl⁻ SiO₂(aq)
19- { -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 }, // CaCO₃(aq) + H⁺ ⇌ Ca²⁺ + HCO₃⁻
20- { 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 }, // CaHCO₃⁺ ⇌ Ca²⁺ + HCO₃⁻
21- { 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 }, // CaSO₄ ⇌ Ca²⁺ + SO₄²⁻
22- { 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 }, // CaCl⁺ ⇌ Ca²⁺ + Cl⁻
23- { 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 0 }, // CaCl₂ ⇌ Ca²⁺ + 2Cl⁻
24- { 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 }, // MgHCO₃⁺ ⇌ Mg²⁺ + HCO₃⁻
25- { 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 }, // MgCO₃(aq) + H⁺⇌ Mg²⁺ + HCO₃⁻
26- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 }, // MgCl⁺ ⇌ Mg²⁺ + Cl⁻
27- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 }, // CO₂(aq) + H₂O ⇌ H⁺ + HCO₃⁻
28- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 }, // HSO₄⁻ ⇌ H⁺ + SO₄²⁻
29- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0 , 0 }, // KHSO₄ ⇌ H⁺ + K⁺ + SO₄²⁻
30- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 }, // HSiO₃⁻ ⇌ H⁺ + SiO₂(aq)
31- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 1 }, // NaHSilO₃ ⇌ H⁺ + Na⁺ + SiO₂(aq)
32- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 }, // NaCl ⇌ Na⁺ + Cl⁻
33- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 }, // KCl ⇌ K⁺ + Cl⁻
34- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0 , 0 }, // KSO₄⁻ ⇌ K⁺ + SO₄²⁻
35- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -2 , 1 , 1 , 0 , 0 , 0 , 2 , 0 , 0 , 0 }, // Dolomite: CaMg(CO₃)₂(s) + 2H⁺ ⇌ Ca²⁺ + Mg²⁺ + 2HCO₃⁻
36- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -4 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 3 }, // Microcline: KAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + K⁺ + 3SiO₂(aq)
37- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -4 , 0 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 3 } // Albite: NaAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + Na⁺ + 3SiO₂(aq)
14+ // Stoichiometric matrix [13 reactions × 23 species]
15+ // Columns 0–12: secondary species (must be -1 on diagonal)
16+ // Columns 13–22: primary species
17+ constexpr CArrayWrapper< double , 19 , 26 > soichMatrix =
18+ { // CaCO₃ CaHCO₃⁺ CaSO₄ CaCl⁺ CaCl₂ MgHCO₃⁺ MgCO₃ MgCl⁺ CO₂(aq) HSO₄⁻ KHSO₄ HSiO₃⁻ NaHSilO₃ NaCl KCl KSO₄⁻ | H⁺ Ca²⁺ Mg²⁺ Na⁺ K⁺
19+ // Al³⁺ HCO₃⁻ SO₄²⁻ Cl⁻ SiO₂(aq)
20+ { -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 }, // CaCO₃(aq) + H⁺ ⇌ Ca²⁺ + HCO₃⁻
21+ { 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 }, // CaHCO₃⁺ ⇌ Ca²⁺ + HCO₃⁻
22+ { 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 }, // CaSO₄ ⇌ Ca²⁺ + SO₄²⁻
23+ { 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 }, // CaCl⁺ ⇌ Ca²⁺ + Cl⁻
24+ { 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 0 }, // CaCl₂ ⇌ Ca²⁺ + 2Cl⁻
25+ { 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 }, // MgHCO₃⁺ ⇌ Mg²⁺ + HCO₃⁻
26+ { 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 }, // MgCO₃(aq) + H⁺⇌ Mg²⁺ + HCO₃⁻
27+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 }, // MgCl⁺ ⇌ Mg²⁺ + Cl⁻
28+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 }, // CO₂(aq) + H₂O ⇌ H⁺ + HCO₃⁻
29+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 }, // HSO₄⁻ ⇌ H⁺ + SO₄²⁻
30+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0 , 0 }, // KHSO₄ ⇌ H⁺ + K⁺ + SO₄²⁻
31+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 }, // HSiO₃⁻ ⇌ H⁺ + SiO₂(aq)
32+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 1 }, // NaHSilO₃ ⇌ H⁺ + Na⁺ + SiO₂(aq)
33+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 }, // NaCl ⇌ Na⁺ + Cl⁻
34+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 }, // KCl ⇌ K⁺ + Cl⁻
35+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0 , 0 }, // KSO₄⁻ ⇌ K⁺ + SO₄²⁻
36+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -2 , 1 , 1 , 0 , 0 , 0 , 2 , 0 , 0 , 0 }, // Dolomite: CaMg(CO₃)₂(s) + 2H⁺ ⇌ Ca²⁺ + Mg²⁺ +
37+ // 2HCO₃⁻
38+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -4 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 3 }, // Microcline: KAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + K⁺ +
39+ // 3SiO₂(aq)
40+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -4 , 0 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 3 } // Albite: NaAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + Na⁺ + 3SiO₂(aq)
3841};
3942
4043// Must convert these. They should not be the log.
4144constexpr CArrayWrapper< double , 19 > equilibriumConstants =
4245{
43- 5.9636 , // CaCO₃(aq) + H⁺ ⇌ Ca²⁺ + HCO₃⁻
44- -1.4181 , // CaHCO₃⁺ ⇌ Ca²⁺ + HCO₃⁻
45- -2.5111 , // CaSO₄ ⇌ Ca²⁺ + SO₄²⁻
46- 0.3811 , // CaCl⁺ ⇌ Ca²⁺ + Cl⁻
47- 0.3811 , // CaCl₂ ⇌ Ca²⁺ + 2Cl⁻ (approximate, same source)
48- -1.4355 , // MgHCO₃⁺ ⇌ Mg²⁺ + HCO₃⁻
49- -6.5632 , // MgCO₃(aq) + H⁺ ⇌ Mg²⁺ + HCO₃⁻
50- -0.1820 , // MgCl⁺ ⇌ Mg²⁺ + Cl⁻
51- -6.3882 , // CO₂(aq) + H₂O ⇌ H⁺ + HCO₃⁻
52- -3.0020 , // HSO₄⁻ ⇌ H⁺ + SO₄²⁻
53- -2.2935 , // KHSO₄ ⇌ H⁺ + K⁺ + SO₄²⁻
54- -9.0844 , // HSiO₃⁻ ⇌ H⁺ + SiO₂(aq)
55- -7.8291 , // NaHSilO₃ ⇌ H⁺ + Na⁺ + SiO₂(aq)
56- 0.4730 , // NaCl ⇌ Na⁺ + Cl⁻
57- 0.9240 , // KCl ⇌ K⁺ + Cl⁻
58- -1.1946 , // KSO₄⁻ ⇌ K⁺ + SO₄²⁻
59- 0.0944 , // Dolomite: CaMg(CO₃)₂(s) + 2H⁺ ⇌ Ca²⁺ + Mg²⁺ + 2HCO₃⁻
60- -1.8683 , // Microcline: KAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + K⁺ + 3SiO₂(aq)
61- 0.2236 // Albite: NaAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + Na⁺ + 3SiO₂(aq)
46+ 5.9636 , // CaCO₃(aq) + H⁺ ⇌ Ca²⁺ + HCO₃⁻
47+ -1.4181 , // CaHCO₃⁺ ⇌ Ca²⁺ + HCO₃⁻
48+ -2.5111 , // CaSO₄ ⇌ Ca²⁺ + SO₄²⁻
49+ 0.3811 , // CaCl⁺ ⇌ Ca²⁺ + Cl⁻
50+ 0.3811 , // CaCl₂ ⇌ Ca²⁺ + 2Cl⁻ (approximate, same source)
51+ -1.4355 , // MgHCO₃⁺ ⇌ Mg²⁺ + HCO₃⁻
52+ -6.5632 , // MgCO₃(aq) + H⁺ ⇌ Mg²⁺ + HCO₃⁻
53+ -0.1820 , // MgCl⁺ ⇌ Mg²⁺ + Cl⁻
54+ -6.3882 , // CO₂(aq) + H₂O ⇌ H⁺ + HCO₃⁻
55+ -3.0020 , // HSO₄⁻ ⇌ H⁺ + SO₄²⁻
56+ -2.2935 , // KHSO₄ ⇌ H⁺ + K⁺ + SO₄²⁻
57+ -9.0844 , // HSiO₃⁻ ⇌ H⁺ + SiO₂(aq)
58+ -7.8291 , // NaHSilO₃ ⇌ H⁺ + Na⁺ + SiO₂(aq)
59+ 0.4730 , // NaCl ⇌ Na⁺ + Cl⁻
60+ 0.9240 , // KCl ⇌ K⁺ + Cl⁻
61+ -1.1946 , // KSO₄⁻ ⇌ K⁺ + SO₄²⁻
62+ 0.0944 , // Dolomite: CaMg(CO₃)₂(s) + 2H⁺ ⇌ Ca²⁺ + Mg²⁺ + 2HCO₃⁻
63+ -1.8683 , // Microcline: KAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + K⁺ + 3SiO₂(aq)
64+ 0.2236 // Albite: NaAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + Na⁺ + 3SiO₂(aq)
6265};
6366
6467constexpr CArrayWrapper< double , 19 > fwRateConstant =
6568{
66- 0.0 , // CaCO₃(aq) + H⁺ ⇌ Ca²⁺ + HCO₃⁻
67- 0.0 , // CaHCO₃⁺ ⇌ Ca²⁺ + HCO₃⁻
68- 0.0 , // CaSO₄ ⇌ Ca²⁺ + SO₄²⁻
69- 0.0 , // CaCl⁺ ⇌ Ca²⁺ + Cl⁻
70- 0.0 , // CaCl₂ ⇌ Ca²⁺ + 2Cl⁻ (approximate, same source)
71- 0.0 , // MgHCO₃⁺ ⇌ Mg²⁺ + HCO₃⁻
72- 0.0 , // MgCO₃(aq) + H⁺ ⇌ Mg²⁺ + HCO₃⁻
73- 0.0 , // MgCl⁺ ⇌ Mg²⁺ + Cl⁻
74- 0.0 , // CO₂(aq) + H₂O ⇌ H⁺ + HCO₃⁻
75- 0.0 , // HSO₄⁻ ⇌ H⁺ + SO₄²⁻
76- 0.0 , // KHSO₄ ⇌ H⁺ + K⁺ + SO₄²⁻
77- 0.0 , // HSiO₃⁻ ⇌ H⁺ + SiO₂(aq)
78- 0.0 , // NaHSilO₃ ⇌ H⁺ + Na⁺ + SiO₂(aq)
79- 0.0 , // NaCl ⇌ Na⁺ + Cl⁻
80- 0.0 , // KCl ⇌ K⁺ + Cl⁻
81- 0.0 , // KSO₄⁻ ⇌ K⁺ + SO₄²⁻
82- 1.0 , // Dolomite: CaMg(CO₃)₂(s) + 2H⁺ ⇌ Ca²⁺ + Mg²⁺ + 2HCO₃⁻
83- 1.0 , // Microcline: KAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + K⁺ + 3SiO₂(aq)
84- 1.0 // Albite: NaAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + Na⁺ + 3SiO₂(aq)
69+ 0.0 , // CaCO₃(aq) + H⁺ ⇌ Ca²⁺ + HCO₃⁻
70+ 0.0 , // CaHCO₃⁺ ⇌ Ca²⁺ + HCO₃⁻
71+ 0.0 , // CaSO₄ ⇌ Ca²⁺ + SO₄²⁻
72+ 0.0 , // CaCl⁺ ⇌ Ca²⁺ + Cl⁻
73+ 0.0 , // CaCl₂ ⇌ Ca²⁺ + 2Cl⁻ (approximate, same source)
74+ 0.0 , // MgHCO₃⁺ ⇌ Mg²⁺ + HCO₃⁻
75+ 0.0 , // MgCO₃(aq) + H⁺ ⇌ Mg²⁺ + HCO₃⁻
76+ 0.0 , // MgCl⁺ ⇌ Mg²⁺ + Cl⁻
77+ 0.0 , // CO₂(aq) + H₂O ⇌ H⁺ + HCO₃⁻
78+ 0.0 , // HSO₄⁻ ⇌ H⁺ + SO₄²⁻
79+ 0.0 , // KHSO₄ ⇌ H⁺ + K⁺ + SO₄²⁻
80+ 0.0 , // HSiO₃⁻ ⇌ H⁺ + SiO₂(aq)
81+ 0.0 , // NaHSilO₃ ⇌ H⁺ + Na⁺ + SiO₂(aq)
82+ 0.0 , // NaCl ⇌ Na⁺ + Cl⁻
83+ 0.0 , // KCl ⇌ K⁺ + Cl⁻
84+ 0.0 , // KSO₄⁻ ⇌ K⁺ + SO₄²⁻
85+ 1.0 , // Dolomite: CaMg(CO₃)₂(s) + 2H⁺ ⇌ Ca²⁺ + Mg²⁺ + 2HCO₃⁻
86+ 1.0 , // Microcline: KAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + K⁺ + 3SiO₂(aq)
87+ 1.0 // Albite: NaAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + Na⁺ + 3SiO₂(aq)
8588};
8689
8790
8891constexpr CArrayWrapper< double , 19 > reverseRateConstant =
8992{
90- 0.0 , // CaCO₃(aq) + H⁺ ⇌ Ca²⁺ + HCO₃⁻
91- 0.0 , // CaHCO₃⁺ ⇌ Ca²⁺ + HCO₃⁻
92- 0.0 , // CaSO₄ ⇌ Ca²⁺ + SO₄²⁻
93- 0.0 , // CaCl⁺ ⇌ Ca²⁺ + Cl⁻
94- 0.0 , // CaCl₂ ⇌ Ca²⁺ + 2Cl⁻ (approximate, same source)
95- 0.0 , // MgHCO₃⁺ ⇌ Mg²⁺ + HCO₃⁻
96- 0.0 , // MgCO₃(aq) + H⁺ ⇌ Mg²⁺ + HCO₃⁻
97- 0.0 , // MgCl⁺ ⇌ Mg²⁺ + Cl⁻
98- 0.0 , // CO₂(aq) + H₂O ⇌ H⁺ + HCO₃⁻
99- 0.0 , // HSO₄⁻ ⇌ H⁺ + SO₄²⁻
100- 0.0 , // KHSO₄ ⇌ H⁺ + K⁺ + SO₄²⁻
101- 0.0 , // HSiO₃⁻ ⇌ H⁺ + SiO₂(aq)
102- 0.0 , // NaHSilO₃ ⇌ H⁺ + Na⁺ + SiO₂(aq)
103- 0.0 , // NaCl ⇌ Na⁺ + Cl⁻
104- 0.0 , // KCl ⇌ K⁺ + Cl⁻
105- 0.0 , // KSO₄⁻ ⇌ K⁺ + SO₄²⁻
106- 1.0 , // Dolomite: CaMg(CO₃)₂(s) + 2H⁺ ⇌ Ca²⁺ + Mg²⁺ + 2HCO₃⁻
107- 1.0 , // Microcline: KAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + K⁺ + 3SiO₂(aq)
108- 1.0 // Albite: NaAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + Na⁺ + 3SiO₂(aq)
93+ 0.0 , // CaCO₃(aq) + H⁺ ⇌ Ca²⁺ + HCO₃⁻
94+ 0.0 , // CaHCO₃⁺ ⇌ Ca²⁺ + HCO₃⁻
95+ 0.0 , // CaSO₄ ⇌ Ca²⁺ + SO₄²⁻
96+ 0.0 , // CaCl⁺ ⇌ Ca²⁺ + Cl⁻
97+ 0.0 , // CaCl₂ ⇌ Ca²⁺ + 2Cl⁻ (approximate, same source)
98+ 0.0 , // MgHCO₃⁺ ⇌ Mg²⁺ + HCO₃⁻
99+ 0.0 , // MgCO₃(aq) + H⁺ ⇌ Mg²⁺ + HCO₃⁻
100+ 0.0 , // MgCl⁺ ⇌ Mg²⁺ + Cl⁻
101+ 0.0 , // CO₂(aq) + H₂O ⇌ H⁺ + HCO₃⁻
102+ 0.0 , // HSO₄⁻ ⇌ H⁺ + SO₄²⁻
103+ 0.0 , // KHSO₄ ⇌ H⁺ + K⁺ + SO₄²⁻
104+ 0.0 , // HSiO₃⁻ ⇌ H⁺ + SiO₂(aq)
105+ 0.0 , // NaHSilO₃ ⇌ H⁺ + Na⁺ + SiO₂(aq)
106+ 0.0 , // NaCl ⇌ Na⁺ + Cl⁻
107+ 0.0 , // KCl ⇌ K⁺ + Cl⁻
108+ 0.0 , // KSO₄⁻ ⇌ K⁺ + SO₄²⁻
109+ 1.0 , // Dolomite: CaMg(CO₃)₂(s) + 2H⁺ ⇌ Ca²⁺ + Mg²⁺ + 2HCO₃⁻
110+ 1.0 , // Microcline: KAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + K⁺ + 3SiO₂(aq)
111+ 1.0 // Albite: NaAlSi₃O₈(s) + 4H⁺ ⇌ Al³⁺ + Na⁺ + 3SiO₂(aq)
109112};
110113
111114}
@@ -118,4 +121,4 @@ constexpr forgeSystemType forgeSystem( forge::soichMatrix, forge::equilibriumCon
118121
119122}
120123
121- }
124+ }
0 commit comments