Reword error messages that are displayed when a group fails to solve.
The current messages accurately reflect what happens to the system of equations that represents the sketch, but can be quite confusing to users that only think in terms of the constraints. We use "unsolvable" and not "impossible" because while most of the cases that result in this error message will indeed stem from mutually exclusive sets of constraints, it is still possible that there is some solution that our solver is unable to find using numeric methods.
This commit is contained in:
parent
30d9bb0479
commit
55cde18c5a
@ -220,7 +220,7 @@ default: dbp("bad constraint type %d", sc->type); return;
|
|||||||
ssys->result = SLVS_RESULT_DIDNT_CONVERGE;
|
ssys->result = SLVS_RESULT_DIDNT_CONVERGE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case System::SINGULAR_JACOBIAN:
|
case System::REDUNDANT:
|
||||||
ssys->result = SLVS_RESULT_INCONSISTENT;
|
ssys->result = SLVS_RESULT_INCONSISTENT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -435,7 +435,7 @@ public:
|
|||||||
enum {
|
enum {
|
||||||
SOLVED_OKAY = 0,
|
SOLVED_OKAY = 0,
|
||||||
DIDNT_CONVERGE = 10,
|
DIDNT_CONVERGE = 10,
|
||||||
SINGULAR_JACOBIAN = 11,
|
REDUNDANT = 11,
|
||||||
TOO_MANY_UNKNOWNS = 20
|
TOO_MANY_UNKNOWNS = 20
|
||||||
};
|
};
|
||||||
int Solve(Group *g, int *dof, List<hConstraint> *bad,
|
int Solve(Group *g, int *dof, List<hConstraint> *bad,
|
||||||
|
@ -453,7 +453,7 @@ int System::Solve(Group *g, int *dof, List<hConstraint> *bad,
|
|||||||
if(andFindBad) {
|
if(andFindBad) {
|
||||||
FindWhichToRemoveToFixJacobian(g, bad);
|
FindWhichToRemoveToFixJacobian(g, bad);
|
||||||
}
|
}
|
||||||
return System::SINGULAR_JACOBIAN;
|
return System::REDUNDANT;
|
||||||
}
|
}
|
||||||
// This is not the full Jacobian, but any substitutions or single-eq
|
// This is not the full Jacobian, but any substitutions or single-eq
|
||||||
// solves removed one equation and one unknown, therefore no effect
|
// solves removed one equation and one unknown, therefore no effect
|
||||||
|
@ -471,12 +471,12 @@ void TextWindow::ShowGroupSolveInfo(void) {
|
|||||||
Printf(true, "%FtGROUP %E%s", g->DescriptionString().c_str());
|
Printf(true, "%FtGROUP %E%s", g->DescriptionString().c_str());
|
||||||
switch(g->solved.how) {
|
switch(g->solved.how) {
|
||||||
case System::DIDNT_CONVERGE:
|
case System::DIDNT_CONVERGE:
|
||||||
Printf(true, "%FxSOLVE FAILED!%Fd no convergence");
|
Printf(true, "%FxSOLVE FAILED!%Fd unsolvable constraints");
|
||||||
Printf(true, "the following constraints are unsatisfied");
|
Printf(true, "the following constraints are unsatisfied");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case System::SINGULAR_JACOBIAN:
|
case System::REDUNDANT:
|
||||||
Printf(true, "%FxSOLVE FAILED!%Fd inconsistent system");
|
Printf(true, "%FxSOLVE FAILED!%Fd redundant constraints");
|
||||||
Printf(true, "remove any one of these to fix it");
|
Printf(true, "remove any one of these to fix it");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user