@@ -144,6 +144,118 @@ constexpr CArrayWrapper<double, 11> reverseRates =
144144 constexpr carbonateSystemAllEquilibriumType carbonateSystemAllEquilibrium ( stoichMatrix, equilibriumConstants, forwardRates, reverseRates );
145145 constexpr carbonateSystemType carbonateSystem ( stoichMatrix, equilibriumConstants, forwardRates, reverseRates );
146146
147+ // ################################## Ultramafic rxn set ##################################
148+
149+ // using ultramaficSystemAllKineticType = MixedReactionsParameters< double, int, int, 25, 21, 0 >;
150+ // using ultramaficSystemAllEquilibriumType = MixedReactionsParameters< double, int, int, 25, 21, 21 >;
151+ using ultramaficSystemType = MixedReactionsParameters< double , int , int , 25 , 21 , 16 >;
152+
153+ constexpr CArrayWrapper<double , 21 , 25 > stoichMatrix =
154+ { // OH- CO2(aq) CO3-- Mg2OH+++ Mg4(OH)++++ MgOH+ Mg2CO3++ MgCO3(aq) MgHCO3+ Mg(H3SiO4)2 MgH2SiO4 MgH3SiO4+ H2SiO4-- H3SiO4- H4(H2SiO4)---- H6(H2SiO4)-- Mg2SiO4 MgCO3 SiO2 Mg3Si2O5(OH)4 Mg(OH)2 H+ HCO3- Mg++ SiO2(aq)
155+ { -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 }, // OH- + H+ = H2O
156+ { 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 }, // CO2(aq) + H2O = HCO3- + H+
157+ { 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 0 0 }, // CO3-- + H+ = HCO3-
158+ { 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 2 0 }, // Mg2OH+++ + H+ = 2Mg++ + H2O
159+ { 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4 0 4 0 }, // Mg4(OH)++++ + 4H+ = 4Mg++ + 4H2O
160+ { 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 1 0 }, // MgOH+ + H+ = Mg++ + H2O
161+ { 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 2 0 }, // Mg2CO3++ + H+ = 2Mg++ + HCO3-
162+ { 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 1 0 }, // MgCO3 + H+ = Mg++ + HCO3-
163+ { 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 }, // MgHCO3+ = Mg++ + HCO3-
164+ { 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 -2 0 1 1 }, // Mg(H3SiO4)2 + 2H+ = Mg++ + SiO2(aq) + 4H2O
165+ { 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 -2 0 1 1 }, // MgH2SiO4 + 2H+ = Mg++ + SiO2(aq) + 2H2O
166+ { 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 1 1 }, // MgH3SiO4+ + H+ = Mg++ + SiO2(aq) + 2H2O
167+ { 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 -2 0 0 1 }, // H2SiO4-- + 2H+ = SiO2(aq) + 2H2O
168+ { 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 1 }, // H3SiO4- + H+ = SiO2(aq) + 2H2O
169+ { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 -4 0 0 4 }, // H4(H2SiO4)---- + 4H+ = 4SiO2(aq) + 8H2O
170+ { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 -2 0 0 4 }, // H6(H2SiO4)-- + 2H+ = 4SiO2 + 8H2O
171+ { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 -4 0 2 1 }, // Mg2SiO4 + 4H+ = 2Mg++ + SiO2(aq) + 2H2O
172+ { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 -1 1 1 0 }, // MgCO3 + H+ = Mg++ + HCO3-
173+ { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 1 }, // SiO2 = SiO2(aq)
174+ { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 -6 0 3 2 }, // Mg3Si2O5(OH)4 + 6H+ = 3Mg++ + 2SiO2(aq) + 5H2O
175+ { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -2 0 1 0 } // Mg(OH)2 + 2H+ = Mg++ + 2H2O
176+ };
177+
178+ // 2Mg2SiO4 + 3H2O → Mg3Si2O5(OH)4 + Mg(OH)2 Serpentinization reaction
179+
180+ constexpr CArrayWrapper<double , 21 > equilibriumConstants =
181+ {
182+ 9.89E+13 , // OH- + H+ = H2O
183+ 4.42E-07 , // CO2(aq) + H2O = HCO3- + H+
184+ 2.23E+10 , // CO3-- + H+ = HCO3-
185+ 2.32E+13 , // Mg2OH+++ + H+ = 2Mg++ + H2O
186+ 4.47E+39 , // Mg4(OH)++++ + 4H+ = 4Mg++ + 4H2O
187+ 6.18E+11 , // MgOH+ + H+ = Mg++ + H2O
188+ 7.66E+06 , // Mg2CO3++ + H+ = 2Mg++ + HCO3-
189+ 2.67E+07 , // MgCO3 + H+ = Mg++ + HCO3-
190+ 9.77E-02 , // MgHCO3+ = Mg++ + HCO3-
191+ 3.45E+14 , // Mg(H3SiO4)2 + 2H+ = Mg++ + SiO2(aq) + 4H2O
192+ 9.49E+16 , // MgH2SiO4 + 2H+ = Mg++ + SiO2(aq) + 2H2O
193+ 1.96E+08 , // MgH3SiO4+ + H+ = Mg++ + SiO2(aq) + 2H2O
194+ 8.08E+22 , // H2SiO4-- + 2H+ = SiO2(aq) + 2H2O
195+ 6.44E+09 , // H3SiO4- + H+ = SiO2(aq) + 2H2O
196+ 5.39E+35 , // H4(H2SiO4)---- + 4H+ = 4SiO2(aq) + 8H2O
197+ 2.72E+13 , // H6(H2SiO4)-- + 2H+ = 4SiO2 + 8H2O
198+ 1.40E+28 , // Mg2SiO4 + 4H+ = 2Mg++ + SiO2(aq) + 2H2O
199+ 2.73E+02 , // MgCO3 + H+ = Mg++ + HCO3-
200+ 1.93E-03 , // SiO2 = SiO2(aq)
201+ 3.54E+31 , // Mg3Si2O5(OH)4 + 6H+ = 3Mg++ + 2SiO2(aq) + 5H2O
202+ 2.75E+16 // Mg(OH)2 + 2H+ = Mg++ + 2H2O
203+ };
204+
205+ constexpr CArrayWrapper<double , 21 > forwardRates =
206+ {
207+ 1.00E+10 , // OH- + H+ = H2O
208+ 1.00E+10 , // CO2(aq) + H2O = HCO3- + H+
209+ 1.00E+10 , // CO3-- + H+ = HCO3-
210+ 1.00E+10 , // Mg2OH+++ + H+ = 2Mg++ + H2O
211+ 1.00E+10 , // Mg4(OH)++++ + 4H+ = 4Mg++ + 4H2O
212+ 1.00E+10 , // MgOH+ + H+ = Mg++ + H2O
213+ 1.00E+10 , // Mg2CO3++ + H+ = 2Mg++ + HCO3-
214+ 1.00E+10 , // MgCO3 + H+ = Mg++ + HCO3-
215+ 1.00E+10 , // MgHCO3+ = Mg++ + HCO3-
216+ 1.00E+10 , // Mg(H3SiO4)2 + 2H+ = Mg++ + SiO2(aq) + 4H2O
217+ 1.00E+10 , // MgH2SiO4 + 2H+ = Mg++ + SiO2(aq) + 2H2O
218+ 1.00E+10 , // MgH3SiO4+ + H+ = Mg++ + SiO2(aq) + 2H2O
219+ 1.00E+10 , // H2SiO4-- + 2H+ = SiO2(aq) + 2H2O
220+ 1.00E+10 , // H3SiO4- + H+ = SiO2(aq) + 2H2O
221+ 1.00E+10 , // H4(H2SiO4)---- + 4H+ = 4SiO2(aq) + 8H2O
222+ 1.00E+10 , // H6(H2SiO4)-- + 2H+ = 4SiO2 + 8H2O
223+ 2.29E-11 , // Mg2SiO4 + 4H+ = 2Mg++ + SiO2(aq) + 2H2O
224+ 4.57E-10 , // MgCO3 + H+ = Mg++ + HCO3-
225+ 1.70E-13 , // SiO2 = SiO2(aq)
226+ 1.00E-12 , // Mg3Si2O5(OH)4 + 6H+ = 3Mg++ + 2SiO2(aq) + 5H2O
227+ 5.75E-09 // Mg(OH)2 + 2H+ = Mg++ + 2H2O
228+ };
229+
230+ constexpr CArrayWrapper<double , 21 > reverseRates =
231+ {
232+ 1.00E+10 , // OH- + H+ = H2O
233+ 1.00E+10 , // CO2(aq) + H2O = HCO3- + H+
234+ 1.00E+10 , // CO3-- + H+ = HCO3-
235+ 1.00E+10 , // Mg2OH+++ + H+ = 2Mg++ + H2O
236+ 1.00E+10 , // Mg4(OH)++++ + 4H+ = 4Mg++ + 4H2O
237+ 1.00E+10 , // MgOH+ + H+ = Mg++ + H2O
238+ 1.00E+10 , // Mg2CO3++ + H+ = 2Mg++ + HCO3-
239+ 1.00E+10 , // MgCO3 + H+ = Mg++ + HCO3-
240+ 1.00E+10 , // MgHCO3+ = Mg++ + HCO3-
241+ 1.00E+10 , // Mg(H3SiO4)2 + 2H+ = Mg++ + SiO2(aq) + 4H2O
242+ 1.00E+10 , // MgH2SiO4 + 2H+ = Mg++ + SiO2(aq) + 2H2O
243+ 1.00E+10 , // MgH3SiO4+ + H+ = Mg++ + SiO2(aq) + 2H2O
244+ 1.00E+10 , // H2SiO4-- + 2H+ = SiO2(aq) + 2H2O
245+ 1.00E+10 , // H3SiO4- + H+ = SiO2(aq) + 2H2O
246+ 1.00E+10 , // H4(H2SiO4)---- + 4H+ = 4SiO2(aq) + 8H2O
247+ 1.00E+10 , // H6(H2SiO4)-- + 2H+ = 4SiO2 + 8H2O
248+ 1.65E-39 , // Mg2SiO4 + 4H+ = 2Mg++ + SiO2(aq) + 2H2O
249+ 1.67E-12 , // MgCO3 + H+ = Mg++ + HCO3-
250+ 8.78E-11 , // SiO2 = SiO2(aq)
251+ 2.83E-44 , // Mg3Si2O5(OH)4 + 6H+ = 3Mg++ + 2SiO2(aq) + 5H2O
252+ 2.10E-25 // Mg(OH)2 + 2H+ = Mg++ + 2H2O
253+ };
254+
255+ // constexpr ultramaficSystemAllKineticType ultramaficSystemAllKinetic( stoichMatrix, equilibriumConstants, forwardRates, reverseRates );
256+ // constexpr ultramaficSystemAllEquilibriumType ultramaficSystemAllEquilibrium( stoichMatrix, equilibriumConstants, forwardRates, reverseRates );
257+ constexpr ultramaficSystemType ultramaficSystem ( stoichMatrix, equilibriumConstants, forwardRates, reverseRates );
258+
147259// *****UNCRUSTIFY-ON******
148260} // namespace bulkGeneric
149261} // namespace hpcReact
0 commit comments