From 2dfa43ffa79ebe7968ce6d478d3f109047bcbe0a 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 3e05f8ee9..267ba4b26 100644 --- a/src/kinetics/ImplicitSurfChem.cpp +++ b/src/kinetics/ImplicitSurfChem.cpp @@ -150,13 +150,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(m_work.data()); 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];