Implement multi-cell finite element method for interpolated flexes.
This change introduces a `flex_cellcount` field to `mjModel` to specify the number of cells in each dimension for interpolated flexes. The stiffness computation, passive force calculation, and Jacobian derivatives are updated to operate on a per-cell basis, significantly improving performance by localizing computations to the nodes within each cell. PiperOrigin-RevId: 901216393 Change-Id: Ic23132e609de11e71bb7fef8d1f139daad2ec264
This commit is contained in:
committed by
Copybara-Service
parent
8415dff307
commit
6c7ed66781
@@ -1442,6 +1442,16 @@ instead to specify shear and volumetric stiffnesses separately using the `Poisso
|
||||
<https://en.wikipedia.org/wiki/Poisson%27s_ratio>`__ of the material. For more details, see the `Saint Venant-Kirchhoff
|
||||
<https://en.wikipedia.org/wiki/Hyperelastic_material#Saint_Venant%E2%80%93Kirchhoff_model>`__ hyperelastic model.
|
||||
|
||||
**Parametrization types**.
|
||||
|
||||
While the default behavior of :el:`flexcomp` produces a "full" flex where every node corresponds to a MuJoCo body, it
|
||||
also supports specialized :ref:`parametrizations<body-flexcomp-dof>` for volumetric objects: **trilinear** and
|
||||
**quadratic**. Instead of directly simulating all nodes, these options define a background grid of cells. The positions
|
||||
of the interior vertices are computed by interpolating the positions of the cell corners. Trilinear flexes use 8-node
|
||||
hexahedral cells with linear interpolation along each axis, while quadratic flexes use 27-node cells with quadratic
|
||||
interpolation, allowing for curved deformation modes. These grid-based parametrizations require fewer degrees of freedom
|
||||
than full flexes and can result in significantly faster simulation times, especially for large volumetric soft bodies.
|
||||
|
||||
**Creation and visualization**.
|
||||
|
||||
.. code-block:: xml
|
||||
|
||||
Reference in New Issue
Block a user