Hello,

I believe that for fix rigid, the DOF computation in two dimensions is incorrect. For each rigid body, 2N-3 degrees should be subtracted.

something like this in the code:

int n = 0;

if (domain->dimension == 3) {

for (int ibody = 0; ibody < nbody; ibody++) {

if (nall[ibody] > 2) n += 3*nall[ibody] - 6;

else if (nall[ibody] == 2) n++;

}

} else if (domain->dimension == 2) {

for (int ibody = 0; ibody < nbody; ibody++) n += 2*nall[ibody] - 3;

}

Alternatively, this can be corrected by a compute_modify.

Yours,

Tony