diff --git a/doc/changelog.rst b/doc/changelog.rst index 1bc8c409..8c2207f5 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -2,6 +2,16 @@ Changelog ========= +Upcoming version (not yet released) +----------------------------------- + +Bug fixes +^^^^^^^^^ + +- Fixed bug in the handling of ellipsoid-based fluid model forces in the new implicitfast integrator. If using the + (as-yet undocumented) ellipsoid-based fluid model, please use a different integrator until the next release. + + Version 2.3.3 (March 20, 2023) ------------------------------ diff --git a/src/engine/engine_derivative.c b/src/engine/engine_derivative.c index b5762acb..12523e2e 100644 --- a/src/engine/engine_derivative.c +++ b/src/engine/engine_derivative.c @@ -1210,10 +1210,10 @@ void mjd_ellipsoidFluid(const mjModel* m, mjData* d, int bodyid) { // make B symmetric if integrator is IMPLICITFAST if (m->opt.integrator == mjINT_IMPLICITFAST) { for (int i=0; i<5; i++) { - for (j=i+1; j<6; j++) { - mjtNum tmp = 0.5 * (B[6 * i + j] + B[6 * j + i]); - B[6 * i + j] = tmp; - B[6 * j + i] = tmp; + for (int k=i+1; k<6; k++) { + mjtNum tmp = 0.5 * (B[6 * i + k] + B[6 * k + i]); + B[6 * i + k] = tmp; + B[6 * k + i] = tmp; } } }