GCS: Return a zero sized reduced Jacobian if only driven constraints present

=============================================================================

The reduced Jacobian defaults to the size of the full Jacobian, where driven constraints
and parameters are not considered to build the reduced Jacobian and thus empty rows remain.

This is generally not a problem as QR decomposition ignores this rows, except in case where
only driven constraints exist. In such a case no QR decomposition is necessary, and in fact
relying on the size of the QR decomposition leads to the incorrect result that the sketch
is fully constraint, when the opposite is true.

This commit resizes an effectively empty reduced Jacobian to avoid this issue.

Fixes the problem that a line with a single reference constraint is shown as fully constraint.
This commit is contained in:
Abdullah Tahiri
2020-12-26 17:16:24 +01:00
committed by abdullahtahiriyo
parent 67e5f9c3e9
commit c2ab51314d

View File

@@ -3822,6 +3822,9 @@ void System::makeReducedJacobian(Eigen::MatrixXd &J,
jacobianconstraintmap[jacobianconstraintcount-1] = allcount-1;
}
}
if(jacobianconstraintcount == 0) // only driven constraints
J.resize(0,0);
}
int System::diagnose(Algorithm alg)