Skip to content

Commit 498e95f

Browse files
authored
Merge pull request opensim-org#3261 from opensim-org/smooth_bhargava_muscle_indexing
Fix incorrect indexing of muscle-level metabolics arrays in `Bhargava2004SmoothedMuscleMetabolics`
2 parents a3bc36e + b51b391 commit 498e95f

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

OpenSim/Simulation/Model/Bhargava2004SmoothedMuscleMetabolics.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -350,11 +350,10 @@ void Bhargava2004SmoothedMuscleMetabolics::calcMetabolicRate(
350350
activationHeatRate = maintenanceHeatRate = shorteningHeatRate =
351351
mechanicalWorkRate = 0;
352352

353-
int i = 0;
354353
for (const auto& muscleIndex : m_muscleIndices) {
355354

356-
const auto& muscleParameter =
357-
get_muscle_parameters(muscleIndex.second);
355+
const auto& index = muscleIndex.second;
356+
const auto& muscleParameter = get_muscle_parameters(index);
358357
const auto& muscle = muscleParameter.getMuscle();
359358

360359
const double maximalIsometricForce = muscle.getMaxIsometricForce();
@@ -526,13 +525,11 @@ void Bhargava2004SmoothedMuscleMetabolics::calcMetabolicRate(
526525
// --------------------------------
527526
double Edot = totalHeatRate + mechanicalWorkRate;
528527

529-
totalRatesForMuscles[i] = Edot;
530-
activationRatesForMuscles[i] = activationHeatRate;
531-
maintenanceRatesForMuscles[i] = maintenanceHeatRate;
532-
shorteningRatesForMuscles[i] = shorteningHeatRate;
533-
mechanicalWorkRatesForMuscles[i] = mechanicalWorkRate;
534-
535-
++i;
528+
totalRatesForMuscles[index] = Edot;
529+
activationRatesForMuscles[index] = activationHeatRate;
530+
maintenanceRatesForMuscles[index] = maintenanceHeatRate;
531+
shorteningRatesForMuscles[index] = shorteningHeatRate;
532+
mechanicalWorkRatesForMuscles[index] = mechanicalWorkRate;
536533
}
537534
}
538535

0 commit comments

Comments
 (0)