@@ -40,18 +40,18 @@ MixedEquilibriumKineticReactions< REAL_TYPE,
4040 ARRAY_1D & aggregateSpeciesRates,
4141 ARRAY_2D & dAggregateSpeciesRates_dLogPrimarySpeciesConcentrations )
4242 {
43- constexpr IntType numSpecies = PARAMS_DATA::numSpecies ();
44- constexpr IntType numSecondarySpecies = PARAMS_DATA::numReactions ();
45- constexpr IntType numPrimarySpecies = PARAMS_DATA::numPrimarySpecies ();
46-
43+ // constexpr IntType numSpecies = PARAMS_DATA::numSpecies();
44+ // constexpr IntType numSecondarySpecies = PARAMS_DATA::numReactions();
45+ // constexpr IntType numPrimarySpecies = PARAMS_DATA::numPrimarySpecies();
46+
4747 // 1. Compute new aggregate species from primary species
4848 calculateAggregatePrimaryConcentrationsWrtLogC< REAL_TYPE,
4949 INT_TYPE,
5050 INDEX_TYPE >( params,
5151 logPrimarySpeciesConcentrations,
5252 logSecondarySpeciesConcentrations,
5353 aggregatePrimarySpeciesConcentrations,
54- dAggregatePrimarySpeciesConcentrationsDerivatives_dLogPrimarySpeciesConcentrations );
54+ dAggregatePrimarySpeciesConcentrations_dLogPrimarySpeciesConcentrations );
5555
5656 // 2. Compute the reaction rates for all kinetic reactions
5757 computeReactionRates ( temperature,
@@ -79,6 +79,7 @@ MixedEquilibriumKineticReactions< REAL_TYPE,
7979 bool LOGE_CONCENTRATION >
8080 template < typename PARAMS_DATA,
8181 typename ARRAY_1D_TO_CONST,
82+ typename ARRAY_1D_TO_CONST2,
8283 typename ARRAY_1D,
8384 typename ARRAY_2D >
8485 HPCREACT_HOST_DEVICE inline void
@@ -89,9 +90,9 @@ MixedEquilibriumKineticReactions< REAL_TYPE,
8990 >::computeReactionRates_impl( RealType const & temperature,
9091 PARAMS_DATA const & params,
9192 ARRAY_1D_TO_CONST const & logPrimarySpeciesConcentrations,
92- ARRAY_1D_TO_CONST const & logSecondarySpeciesConcentrations,
93+ ARRAY_1D_TO_CONST2 const & logSecondarySpeciesConcentrations,
9394 ARRAY_1D & reactionRates,
94- ARRAY_2D & dReactionRates_dPrimarySpeciesConcentrations )
95+ ARRAY_2D & dReactionRates_dLogPrimarySpeciesConcentrations )
9596
9697 {
9798 constexpr IntType numSpecies = PARAMS_DATA::numSpecies ();
@@ -100,18 +101,19 @@ MixedEquilibriumKineticReactions< REAL_TYPE,
100101 constexpr IntType numKineticReactions = PARAMS_DATA::numKineticReactions ();
101102
102103 RealType logSpeciesConcentration[numSpecies] {};
103- for ( IntType i = 0 ; i < numPrimarySpecies ; ++i )
104+ for ( IntType i = 0 ; i < numSecondarySpecies ; ++i )
104105 {
105- logSpeciesConcentration[i] = logPrimarySpeciesConcentrations [i];
106+ logSpeciesConcentration[i] = logSecondarySpeciesConcentrations [i];
106107 }
107- for ( IntType i = 0 ; i < numSecondarySpecies ; ++i )
108+ for ( IntType i = 0 ; i < numPrimarySpecies ; ++i )
108109 {
109- logSpeciesConcentration[i+numPrimarySpecies ] = logSecondarySpeciesConcentrations [i];
110+ logSpeciesConcentration[i+numSecondarySpecies ] = logPrimarySpeciesConcentrations [i];
110111 }
111112
112113 CArrayWrapper< RealType, numKineticReactions, numSpecies > reactionRatesDerivatives;
114+
113115 kineticReactions::computeReactionRates ( temperature,
114- params,
116+ params. kineticReactionsParameters () ,
115117 logSpeciesConcentration,
116118 reactionRates,
117119 reactionRatesDerivatives );
@@ -120,15 +122,16 @@ MixedEquilibriumKineticReactions< REAL_TYPE,
120122 for ( IntType i = 0 ; i < numKineticReactions; ++i )
121123 {
122124 for ( IntType j = 0 ; j < numPrimarySpecies; ++j )
123- {
124- dReactionRates_dLogPrimarySpeciesConcentrations ( i, j ) = reactionRatesDerivatives ( i, j );
125+ {
126+ dReactionRates_dLogPrimarySpeciesConcentrations ( i, j ) = reactionRatesDerivatives ( i, j + numSecondarySpecies );
127+
125128 for ( IntType k = 0 ; k < numSecondarySpecies; ++k )
126129 {
127- RealType const dLogSecondarySpeciesConcentrations_dLogPrimarySpeciesConcentration = params.stoichiometricMatrix ( k, j+ numSecondarySpecies );
130+ RealType const dLogSecondarySpeciesConcentrations_dLogPrimarySpeciesConcentrations = params.stoichiometricMatrix ( k, j + numSecondarySpecies );
128131
129132 dReactionRates_dLogPrimarySpeciesConcentrations ( i, j ) +=
130- reactionRatesDerivatives ( i, numPrimarySpecies + k ) * dLogSecondarySpeciesConcentrations_dLogPrimarySpeciesConcentrations ( k, j ) ;
131- }
133+ reactionRatesDerivatives ( i, k ) * dLogSecondarySpeciesConcentrations_dLogPrimarySpeciesConcentrations;
134+ }
132135 }
133136 }
134137 }
@@ -139,6 +142,7 @@ template< typename REAL_TYPE,
139142 bool LOGE_CONCENTRATION >
140143template < typename PARAMS_DATA,
141144 typename ARRAY_1D_TO_CONST,
145+ typename ARRAY_1D_TO_CONST2,
142146 typename ARRAY_2D_TO_CONST,
143147 typename ARRAY_1D,
144148 typename ARRAY_2D,
@@ -150,12 +154,13 @@ MixedEquilibriumKineticReactions< REAL_TYPE,
150154 LOGE_CONCENTRATION
151155 >::computeAggregateSpeciesRates_impl( PARAMS_DATA const & params,
152156 ARRAY_1D_TO_CONST const & speciesConcentration,
153- ARRAY_1D_TO_CONST const & reactionRates,
157+ ARRAY_1D_TO_CONST2 const & reactionRates,
154158 ARRAY_2D_TO_CONST const & reactionRatesDerivatives,
155159 ARRAY_1D & aggregatesRates,
156160 ARRAY_2D & aggregatesRatesDerivatives )
157161 {
158- constexpr IntType numSpecies = PARAMS_DATA::numSpecies ();
162+ GEOS_UNUSED_VAR ( speciesConcentration );
163+ // constexpr IntType numSpecies = PARAMS_DATA::numSpecies();
159164 constexpr IntType numSecondarySpecies = PARAMS_DATA::numSecondarySpecies ();
160165 constexpr IntType numKineticReactions = PARAMS_DATA::numKineticReactions ();
161166 constexpr IntType numPrimarySpecies = PARAMS_DATA::numPrimarySpecies ();
@@ -167,12 +172,12 @@ MixedEquilibriumKineticReactions< REAL_TYPE,
167172 {
168173 for ( IntType j = 0 ; j < numPrimarySpecies; ++j )
169174 {
170- speciesRatesDerivatives ( i, j ) = 0.0 ;
175+ aggregatesRatesDerivatives ( i, j ) = 0.0 ;
171176 }
172177 }
173178 for ( IntType r=0 ; r<numKineticReactions; ++r )
174179 {
175- RealType const s_ir = params.stoichiometricMatrix ( r, i );
180+ RealType const s_ir = params.kineticReactionsParameters (). stoichiometricMatrix ( r, i+numSecondarySpecies );
176181 aggregatesRates[i] += s_ir * reactionRates[r];
177182 if constexpr ( CALCULATE_DERIVATIVES )
178183 {
0 commit comments