@@ -50,6 +50,31 @@ constexpr CArrayWrapper<double, 21, 25> stoichMatrix =
5050 { 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
5151 };
5252
53+ constexpr CArrayWrapper<double , 21 , 20 > stoichMatrixNosolid =
54+ { // OH- CO2(aq) CO3-- Mg2OH+++ Mg4(OH)++++ MgOH+ Mg2CO3++ MgCO3(aq) MgHCO3+ Mg(H3SiO4)2 MgH2SiO4 MgH3SiO4+ H2SiO4-- H3SiO4- H4(H2SiO4)---- H6(H2SiO4)-- H+ HCO3- Mg++ SiO2(aq)
55+ { -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 }, // OH- + H+ = H2O
56+ { 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 }, // CO2(aq) + H2O = HCO3- + H+
57+ { 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 1 , 0 , 0 }, // CO3-- + H+ = HCO3-
58+ { 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 2 , 0 }, // Mg2OH+++ + H+ = 2Mg++ + H2O
59+ { 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -4 , 0 , 4 , 0 }, // Mg4(OH)++++ + 4H+ = 4Mg++ + 4H2O
60+ { 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 1 , 0 }, // MgOH+ + H+ = Mg++ + H2O
61+ { 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 1 , 2 , 0 }, // Mg2CO3++ + H+ = 2Mg++ + HCO3-
62+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 1 , 1 , 0 }, // MgCO3 + H+ = Mg++ + HCO3-
63+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 }, // MgHCO3+ = Mg++ + HCO3-
64+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , -2 , 0 , 1 , 1 }, // Mg(H3SiO4)2 + 2H+ = Mg++ + SiO2(aq) + 4H2O
65+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , -2 , 0 , 1 , 1 }, // MgH2SiO4 + 2H+ = Mg++ + SiO2(aq) + 2H2O
66+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , -1 , 0 , 1 , 1 }, // MgH3SiO4+ + H+ = Mg++ + SiO2(aq) + 2H2O
67+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , -2 , 0 , 0 , 1 }, // H2SiO4-- + 2H+ = SiO2(aq) + 2H2O
68+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , -1 , 0 , 0 , 1 }, // H3SiO4- + H+ = SiO2(aq) + 2H2O
69+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , -4 , 0 , 0 , 4 }, // H4(H2SiO4)---- + 4H+ = 4SiO2(aq) + 8H2O
70+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , -2 , 0 , 0 , 4 }, // H6(H2SiO4)-- + 2H+ = 4SiO2 + 8H2O
71+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -4 , 0 , 2 , 1 }, // Mg2SiO4 + 4H+ = 2Mg++ + SiO2(aq) + 2H2O
72+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 1 , 1 , 0 }, // MgCO3 + H+ = Mg++ + HCO3-
73+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 }, // SiO2 = SiO2(aq)
74+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -6 , 0 , 3 , 2 }, // Mg3Si2O5(OH)4 + 6H+ = 3Mg++ + 2SiO2(aq) + 5H2O
75+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -2 , 0 , 1 , 0 } // Mg(OH)2 + 2H+ = Mg++ + 2H2O
76+ };
77+
5378// 2Mg2SiO4 + 3H2O → Mg3Si2O5(OH)4 + Mg(OH)2 Serpentinization reaction
5479
5580constexpr CArrayWrapper<double , 21 > equilibriumConstants =
@@ -155,11 +180,11 @@ constexpr CArrayWrapper<int, 21> mobileSpeciesFlag =
155180
156181 using ultramaficSystemAllKineticType = reactionsSystems::MixedReactionsParameters< double , int , int , 25 , 21 , 0 >;
157182 using ultramaficSystemAllEquilibriumType = reactionsSystems::MixedReactionsParameters< double , int , int , 25 , 21 , 21 >;
158- using ultramaficSystemType = reactionsSystems::MixedReactionsParameters< double , int , int , 25 , 21 , 16 >;
183+ using ultramaficSystemType = reactionsSystems::MixedReactionsParameters< double , int , int , 20 , 21 , 16 >;
159184
160185 constexpr ultramaficSystemAllKineticType ultramaficSystemAllKinetic ( ultramafics::stoichMatrix, ultramafics::equilibriumConstants, ultramafics::forwardRates, ultramafics::reverseRates, ultramafics::mobileSpeciesFlag );
161186 constexpr ultramaficSystemAllEquilibriumType ultramaficSystemAllEquilibrium ( ultramafics::stoichMatrix, ultramafics::equilibriumConstants, ultramafics::forwardRates, ultramafics::reverseRates, ultramafics::mobileSpeciesFlag );
162- constexpr ultramaficSystemType ultramaficSystem ( ultramafics::stoichMatrix , ultramafics::equilibriumConstants, ultramafics::forwardRates, ultramafics::reverseRates, ultramafics::mobileSpeciesFlag );
187+ constexpr ultramaficSystemType ultramaficSystem ( ultramafics::stoichMatrixNosolid , ultramafics::equilibriumConstants, ultramafics::forwardRates, ultramafics::reverseRates, ultramafics::mobileSpeciesFlag );
163188
164189// *****UNCRUSTIFY-ON******
165190} // namespace geochemistry
0 commit comments