Skip shared dofs for contact constraints
PiperOrigin-RevId: 884455239 Change-Id: I7ee36a13c28be88e12380b4790f150ad62f268c1
This commit is contained in:
committed by
Copybara-Service
parent
eca5758bf9
commit
bb38a34869
@@ -980,7 +980,8 @@ static void mjd_flexInterp_kernel(const mjModel* m, mjData* d, mjtFlexOp op,
|
||||
int chain_nnz = mj_bodyChain(m, bodyid[i], chain_colind);
|
||||
|
||||
// compute sparse Jacobian for this node (3 rows)
|
||||
mj_jacSparse(m, d, blk_jac, NULL, xpos+3*i, bodyid[i], chain_nnz, chain_colind);
|
||||
mj_jacSparse(m, d, blk_jac, NULL, xpos+3*i, bodyid[i], chain_nnz, chain_colind,
|
||||
/*flg_skipcommon=*/0);
|
||||
|
||||
// copy to sparse structure
|
||||
for (int r=0; r<3; r++) {
|
||||
@@ -1488,7 +1489,8 @@ void mjd_ellipsoidFluid(const mjModel* m, mjData* d, int bodyid) {
|
||||
|
||||
// get geom global Jacobian: rotation then translation
|
||||
if (mj_isSparse(m)) {
|
||||
mj_jacSparse(m, d, J+3*nnz, J, d->geom_xpos+3*geomid, m->geom_bodyid[geomid], nnz, colind);
|
||||
mj_jacSparse(m, d, J+3*nnz, J, d->geom_xpos+3*geomid, m->geom_bodyid[geomid], nnz, colind,
|
||||
/*flg_skipcommon=*/0);
|
||||
} else {
|
||||
mj_jacGeom(m, d, J+3*nv, J, geomid);
|
||||
}
|
||||
@@ -1574,7 +1576,7 @@ void mjd_inertiaBoxFluid(const mjModel* m, mjData* d, int i) {
|
||||
nnz = mj_bodyChain(m, i, colind);
|
||||
|
||||
// get sparse jacBodyCom
|
||||
mj_jacSparse(m, d, J+3*nnz, J, d->xipos+3*i, i, nnz, colind);
|
||||
mj_jacSparse(m, d, J+3*nnz, J, d->xipos+3*i, i, nnz, colind, /*flg_skipcommon=*/0);
|
||||
|
||||
// prepare rownnz, rowadr, colind for all 6 rows
|
||||
rownnz[0] = nnz;
|
||||
|
||||
Reference in New Issue
Block a user