Skip to content

Commit 71bde44

Browse files
committed
corrected a few indices in the loop to match the order in ParametersPredefined
1 parent f85dac1 commit 71bde44

File tree

1 file changed

+26
-21
lines changed

1 file changed

+26
-21
lines changed

src/reactions/bulkGeneric/MixedEquilibriumKineticReactions_impl.hpp

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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 >
140143
template< 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

Comments
 (0)