Add reduced sparse dof-dof matrix structures to mjData.

PiperOrigin-RevId: 670919263
Change-Id: I3592de802ae84648d97230115c2e9c3437424968
This commit is contained in:
Yuval Tassa
2024-09-04 04:22:43 -07:00
committed by Copybara-Service
parent 42eb669e4e
commit 3437361bfb
14 changed files with 265 additions and 201 deletions
+62 -29
View File
@@ -1158,16 +1158,21 @@ STRUCTS: Mapping[str, StructDecl] = dict([
type=ValueType(name='int'),
doc='number of non-zeros in sparse inertia matrix',
),
StructFieldDecl(
name='nD',
type=ValueType(name='int'),
doc='number of non-zeros in sparse dof-dof matrix',
),
StructFieldDecl(
name='nB',
type=ValueType(name='int'),
doc='number of non-zeros in sparse body-dof matrix',
),
StructFieldDecl(
name='nC',
type=ValueType(name='int'),
doc='number of non-zeros in sparse reduced dof-dof matrix',
),
StructFieldDecl(
name='nD',
type=ValueType(name='int'),
doc='number of non-zeros in sparse dof-dof matrix',
),
StructFieldDecl(
name='ntree',
type=ValueType(name='int'),
@@ -4845,26 +4850,75 @@ STRUCTS: Mapping[str, StructDecl] = dict([
),
doc='1/diag(D) of modified M (nv x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='B_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='body-dof: non-zeros in each row (nbody x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='B_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='body-dof: address of each row in B_colind (nbody x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='B_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='body-dof: column indices of non-zeros (nB x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='C_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='reduced dof-dof: non-zeros in each row (nv x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='C_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='reduced dof-dof: address of each row in C_colind (nv x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='C_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='reduced dof-dof: column indices of non-zeros (nC x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='mapM2C',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='index mapping from M to C (nC x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='D_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='non-zeros in each row (nv x 1)', # pylint: disable=line-too-long
doc='dof-dof: non-zeros in each row (nv x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='D_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of each row in D_colind (nv x 1)', # pylint: disable=line-too-long
doc='dof-dof: address of each row in D_colind (nv x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='D_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='column indices of non-zeros (nD x 1)', # pylint: disable=line-too-long
doc='dof-dof: column indices of non-zeros (nD x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='mapM2D',
@@ -4880,27 +4934,6 @@ STRUCTS: Mapping[str, StructDecl] = dict([
),
doc='index mapping from D to M (nM x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='B_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='non-zeros in each row (nbody x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='B_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of each row in B_colind (nbody x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='B_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='column indices of non-zeros (nB x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='qDeriv',
type=PointerType(