Skip to content

Commit 0a2b5dc

Browse files
committed
Implement mixed ultramafic system with serpentinization rxn
1 parent fbccdf2 commit 0a2b5dc

File tree

1 file changed

+112
-0
lines changed

1 file changed

+112
-0
lines changed

src/reactions/bulkGeneric/ParametersPredefined.hpp

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)