From cadf3bdedda88d088afbe5a7658cfb94fb65a332 Mon Sep 17 00:00:00 2001 From: Alessio Quaglino Date: Thu, 16 Jul 2026 07:34:20 -0700 Subject: [PATCH] Add changelog entry for effective metric flex elasticity. Add a changelog entry documenting that flex elasticity (stretch, bending, interpolation stiffness) is now integrated implicitly inside the CG constraint solver via an effective metric, replacing the previous post-hoc CG correction. PiperOrigin-RevId: 948963146 Change-Id: Id9c2a2920aabd0776f630b2f3a1ab30a214d9bf2 --- doc/changelog.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/changelog.rst b/doc/changelog.rst index 40113e4b..71604777 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -57,6 +57,13 @@ General ``nu = sum(ctrlnum)`` and ``nout = sum(outnum)`` dimension ``mjData.ctrl`` and ``mjData.actuator_force``, respectively, ``nactuator`` is the number of actuators. For existing actuators ``ctrnum = outnum = 1``, so ``nactuator == nu == nout`` and existing code is unaffected. +- Flex elasticity (stretch, bending, interpolation stiffness) is now integrated implicitly inside the CG constraint + solver via an *effective metric*: the mass matrix is augmented with the stiffness Hessian, + so contact and elastic forces are solved against one consistent metric. This replaces the previous post-hoc CG + correction, which modified ``qacc`` after the constraint solve. The gate is ``solver="CG"`` with an implicit + integrator and flex stiffness present; Newton and PGS are unaffected. Bending-only models pay zero per-step + factorization cost (the factor is precomputed in :ref:`mj_setConst`). Inverse dynamics + (:ref:`mj_inverse`) is now discrete-consistent with forward dynamics for gated models. .. admonition:: Breaking API changes :class: attention