1515
1616namespace hpcReact
1717{
18- namespace MomMasBenchmark
18+ namespace MoMasBenchmark
1919{
2020// *****UNCRUSTIFY-OFF******
2121
22- using simpleSystemType = reactionsSystems::MixedReactionsParameters< double , int , int , 12 , 7 , 7 >;
22+ using easyCaseType = reactionsSystems::MixedReactionsParameters< double , int , int , 12 , 7 , 7 >;
23+ using mediumCaseType = reactionsSystems::MixedReactionsParameters< double , int , int , 14 , 10 , 9 >;
2324
24- constexpr simpleSystemType simpleSystemParams =
25+ constexpr easyCaseType easyCaseParams =
2526{
2627 // Stoichiometric matrix [7 rows × 12 columns]
2728 // Columns 0–6 are secondary species (must be -1 on the diagonal)
@@ -30,7 +31,7 @@ namespace MomMasBenchmark
3031 // C1 C2 C3 C4 C5 CS1 CS2 | X1 X2 X3 X4 S
3132 { -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 }, // C1 = -X2
3233 { 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 }, // C2 = X2 + X3
33- { 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 1 , 0 }, // C3 = X2 + X4
34+ { 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 1 , 0 }, // C3 = - X2 + X4
3435 { 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , -4 , 1 , 3 , 0 }, // C4 = -4X2 + X3 + 3X4
3536 { 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 4 , 3 , 1 , 0 }, // C5 = 4X2 + 3X3 + X4
3637 { 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 3 , 1 , 0 , 1 }, // CS1 = 3X2 + X3 + S
@@ -39,9 +40,9 @@ namespace MomMasBenchmark
3940
4041 // Equilibrium constants K
4142 {
42- 1.0e12 , // C1 + X2 = ??
43+ 1.0e12 , // C1 + X2 = inf
4344 1.0 , // C2 = X2 + X3
44- 1.0 , // C3 = X2 + X4
45+ 1.0 , // C3 = - X2 + X4
4546 1.0e1 , // C4 + 4X2 = X3 + 3X4
4647 1.0e-35 , // C5 = 4X2 + 3X3 + X4
4748 1.0e-6 , // CS1 = 3X2 + X3 + S
@@ -52,7 +53,7 @@ namespace MomMasBenchmark
5253 {
5354 0.0 , // C1 = -X2
5455 0.0 , // C2 = X2 + X3
55- 0.0 , // C3 = X2 + X4
56+ 0.0 , // C3 = - X2 + X4
5657 0.0 , // C4 = -4X2 + X3 + 3X4
5758 0.0 , // C5 = 4X2 + 3X3 + X4
5859 0.0 , // CS1 = 3X2 + X3 + S
@@ -63,7 +64,7 @@ namespace MomMasBenchmark
6364 {
6465 0.0 , // C1 = -X2
6566 0.0 , // C2 = X2 + X3
66- 0.0 , // C3 = X2 + X4
67+ 0.0 , // C3 = - X2 + X4
6768 0.0 , // C4 = -4X2 + X3 + 3X4
6869 0.0 , // C5 = 4X2 + 3X3 + X4
6970 0.0 , // CS1 = 3X2 + X3 + S
@@ -81,6 +82,81 @@ namespace MomMasBenchmark
8182 }
8283};
8384
85+ constexpr mediumCaseType mediumCaseParams =
86+ {
87+ // Stoichiometric matrix [10 rows × 14 columns]
88+ // Columns 0–8 are secondary species (must be -1 on the diagonal)
89+ // Columns 9–13 are primary species: {X1, X2, X3, X4, S}
90+ {
91+ // C1 C2 C3 C4 C5 C6 C7 CS1 CS2 | X1 X2 X3 X4 S
92+ { -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 }, // C1 = -X2
93+ { 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 }, // C2 = X2 + X3
94+ { 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 1 , 0 }, // C3 = -X2 + X4
95+ { 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , -4 , 1 , 3 , 0 }, // C4 = -4X2 + X3 + 3X4
96+ { 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 4 , 3 , 1 , 0 }, // C5 = 4X2 + 3X3 + X4
97+ { 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , 0 , 10 , 3 , 0 , 0 }, // C6 = 10X2 + 3X3
98+ { 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 0 , -8 , 0 , 2 , 0 }, // C7 = -8X2 + 2X4
99+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , 0 , 3 , 1 , 0 , 1 }, // CS1 = 3X2 + X3 + S
100+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 , -3 , 0 , 1 , 2 }, // CS2 = -3X2 + X4 + 2S
101+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -3 , 0 , 1 , 0 }, // Cc = -3X2 + X4 (kinetic)
102+ },
103+
104+ // Equilibrium constants K
105+ {
106+ 1.0e12 , // C1 + X2 = inf
107+ 1.0 , // C2 = X2 + X3
108+ 1.0 , // C3 = -X2 + X4
109+ 1.0e1 , // C4 + 4X2 = X3 + 3X4
110+ 1.0e-35 , // C5 = 4X2 + 3X3 + X4
111+ 1.0e-32 , // C6 = 10X2 + 3X3
112+ 1.0e4 , // C7 + 8X2 = 2X4
113+ 1.0e-6 , // CS1 = 3X2 + X3 + S
114+ 1.0e1 , // CS2 + 3X2 = X4 + 2S
115+ 5 // Cc + 3X2 = X4 (kinetic)
116+ },
117+
118+ // Forward rate constants
119+ {
120+ 0.0 , // C1 = -X2
121+ 0.0 , // C2 = X2 + X3
122+ 0.0 , // C3 = -X2 + X4
123+ 0.0 , // C4 = -4X2 + X3 + 3X4
124+ 0.0 , // C5 = 4X2 + 3X3 + X4
125+ 0.0 , // C6 = 10X2 + 3X3
126+ 0.0 , // C7 = -8X2 + 2X4
127+ 0.0 , // CS1 = 3X2 + X3 + S
128+ 0.0 , // CS2 = -3X2 + X4 + 2S
129+ 10.0 // Cc = -3X2 + X4 (kinetic)
130+ },
131+
132+ // Reverse rate constants
133+ {
134+ 0.0 , // C1 = -X2
135+ 0.0 , // C2 = X2 + X3
136+ 0.0 , // C3 = -X2 + X4
137+ 0.0 , // C4 = -4X2 + X3 + 3X4
138+ 0.0 , // C5 = 4X2 + 3X3 + X4
139+ 0.0 , // C6 = 10X2 + 3X3
140+ 0.0 , // C7 = -8X2 + 2X4
141+ 0.0 , // CS1 = 3X2 + X3 + S
142+ 0.0 , // CS2 = -3X2 + X4 + 2S
143+ 2.0 // Cc = -3X2 + X4 (kinetic)
144+ },
145+
146+ // Flag of mobile secondary species
147+ { 1 , // C1 = -X2
148+ 1 , // C2 = X2 + X3
149+ 1 , // C3 = -X2 + X4
150+ 1 , // C4 = -4X2 + X3 + 3X4
151+ 1 , // C5 = 4X2 + 3X3 + X4
152+ 1 , // C6 = 10X2 + 3X3
153+ 1 , // C7 = -8X2 + 2X4
154+ 0 , // CS1 = 3X2 + X3 + S
155+ 0 , // CS2 = -3X2 + X4 + 2S
156+ 1 // Cc = -3X2 + X4 (kinetic)
157+ }
158+ };
159+
84160// *****UNCRUSTIFY-ON******
85- } // namespace MomMasBenchmark
161+ } // namespace MoMasBenchmark
86162} // namespace hpcReact
0 commit comments