extract API for solver

This commit is contained in:
Val Erastov 2015-07-21 17:19:14 -07:00
parent 34a723d685
commit b977c18a9d
3 changed files with 7 additions and 6 deletions

View file

@ -262,7 +262,8 @@ TCAD.parametric.prepare = function(constrs, locked, aux, alg) {
}
}
var systemSolver = {
system : sys,
diagnose : function() {return TCAD.parametric.diagnose(sys)},
error : function() {return sys.error()},
solveSystem : solve,
updateLock : function(values) {
for (var i = 0; i < values.length; ++i) {

View file

@ -60,7 +60,7 @@ TCAD.TWO.ParametricManager.prototype._add = function(constr) {
TCAD.TWO.ParametricManager.prototype.checkRedundancy = function (subSystem, constr) {
var solver = this.prepareForSubSystem([], subSystem);
if (TCAD.parametric.diagnose(solver.system).conflict) {
if (solver.diagnose().conflict) {
alert("Most likely this "+constr.NAME + " constraint is CONFLICTING!")
}
};

View file

@ -6,16 +6,16 @@ TCAD.test.cases.roundRect = function() {
var ep = APP.viewer.findById(28);
var pm = APP.viewer.parametricManager;
_assertEqD(0.00002047865, pm.prepare([]).solvers[0].system.error(), 1e-12);
_assertEqD(0.00002047865, pm.prepare([]).solvers[0].error(), 1e-12);
ep.x += 30;
var solver = pm.prepare([]).solvers[0];
_assertEqD(60, solver.system.error(), 0.01);
_assertEqD(60, solver.error(), 0.01);
var status = solver.solve(true);
_assertEqD(0.000005, solver.system.error(), 1e-8);
_assertEqD(0.000005, solver.error(), 1e-8);
_assertEq(12, status.evalCount);
_assertEq(1, status.returnCode);
var status = solver.solve(false);
_assertEqD(1.4575007867279055e-10, solver.system.error(), 1e-12);
_assertEqD(1.4575007867279055e-10, solver.error(), 1e-12);
_assertEq(20, status.evalCount);
_assertEq(1, status.returnCode);
};