From 3043a5d8723c5e67ff4ad2c86899574922b7b306 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Tue, 24 Nov 2015 13:31:45 -0500 Subject: [PATCH] Fix indexing error in ImplicitSurfChem::eval This method was not working in the case where there was more than one surface phase, since 'loc' was always set to zero. --- src/kinetics/ImplicitSurfChem.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/kinetics/ImplicitSurfChem.cpp b/src/kinetics/ImplicitSurfChem.cpp index db233c244..8f8d02c6f 100644 --- a/src/kinetics/ImplicitSurfChem.cpp +++ b/src/kinetics/ImplicitSurfChem.cpp @@ -155,13 +155,12 @@ void ImplicitSurfChem::eval(doublereal time, doublereal* y, { updateState(y); // synchronize the surface state(s) with y doublereal rs0, sum; - size_t loc, kstart; + size_t loc = 0, kstart; for (size_t n = 0; n < m_nsurf; n++) { rs0 = 1.0/m_surf[n]->siteDensity(); m_vecKinPtrs[n]->getNetProductionRates(DATA_PTR(m_work)); kstart = m_vecKinPtrs[n]->kineticsSpeciesIndex(0,m_surfindex[n]); sum = 0.0; - loc = 0; for (size_t k = 1; k < m_nsp[n]; k++) { ydot[k + loc] = m_work[kstart + k] * rs0 * m_surf[n]->size(k); sum -= ydot[k];