-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ensure constraints are satisfied #3081
Comments
Just as an example, in the large tokamak regression test the constraint residuals are five orders of magnitude larger than the convergence parameter:
In this run the error tolerance for VMCON is The convergence parameter is given in the Crane report: It would be good to output a table of all the terms in the convergence equation in a separate |
Separate issuesThis is related to my work on ensuring that the inequality constraints are completely satisfied (zero tolerance), whilst the equality constraints are allowed some tolerance (as in the current convergence criterion). The PR for this will be created shortly on the The optional output of all terms in a However, the main point in this issue as I understand it is the possibility that a solution may be "converged" according to the original convergence criterion whilst having significantly large equality constraint residuals (as Michael reports above, "five orders of magnitude difference"). This is due to the Lagrange multipliers Small Lagrange multipliersAt the solution, the Lagrange multipliers In the convergence criterion, So, a small Effect of original convergence criterionUsing Potential drawbackWhilst I think this is clever, if I'm not mistaken I think there is a drawback to this approach: Michael, forgive me if I've just caught up with you. Possible solutionTaking on board Michael's original suggestion of a separate I therefore agree with Michael that an equality constraint tolerance (perhaps for each equality constraint individually, as per other solvers) should be added to the existing convergence criterion to ensure a certain level of equality constraint residuals is respected, irrespective of the Lagrange multipliers. This would also address the problem in the "potential drawback" section too, I believe. Summary
|
Sounds good. I would advise doing the zero-tolerance inequality check and the equality constraint check separately and testing each time since I have no idea what the zero-tolerance inequality check will do. |
In the past we found that VMCON was reporting that it had converged but the constraints were not accurately satisfied, although we never understood why. To fix this we added code to ensure that the constraints were satisfied before VMCON exited.
The line that actually checks for convergence:
(original branch)
Proposed solution
It might help to add this additional convergence test to pyvmcon. One could also add a new line to the input code to allow
sqsumsq_tol
andtol
to be input separately.@jonmaddock @timothy-nunn
The text was updated successfully, but these errors were encountered: