Ipopt install path + smoke test for LivePulsePlotCallback (0.2a)#245
Open
Rchari1 wants to merge 1 commit into
Open
Ipopt install path + smoke test for LivePulsePlotCallback (0.2a)#245Rchari1 wants to merge 1 commit into
Rchari1 wants to merge 1 commit into
Conversation
…PlotCallback Companion to DirectTrajOpt.jl 0.2a (the Ipopt `intermediate_callback` field). `LivePulsePlotCallback` already subtypes `AbstractIntermediateCallback`, so once DTO's Ipopt backend accepts an `intermediate_callback`, the SAME callback object installs on an Ipopt solve exactly as it does on MadNLP. - live_callbacks.jl docstring: add the `IpoptOptions(intermediate_callback=cb)` install path alongside the existing MadNLP one; note Ipopt needs no RelaxBound-style treatment (full primal always available). - PiccoloMakieExt: add an end-to-end @testitem that attaches LivePulsePlotCallback to an Ipopt SmoothPulseProblem solve and asserts per-iter iter_<N>.png frames are emitted through the callback. Requires DirectTrajOpt with the Ipopt intermediate_callback field (the pin `DirectTrajOpt = "0.9.5"` admits the forthcoming patch release). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Companion to DirectTrajOpt.jl#114 for harmoniqs/amicode#19 (Phase 0′, task 0.2a).
LivePulsePlotCallbackalready subtypesDirectTrajOpt.AbstractIntermediateCallback, so once DTO's Ipopt backend accepts anintermediate_callback(DTO#114), the same callback object installs on an Ipopt solve exactly as it does on MadNLP. This PR documents + tests that path.Change
src/visualizations/live_callbacks.jl— docstring now shows theIpoptOptions(intermediate_callback = cb)install path alongside the existing MadNLP one, and notes Ipopt needs noRelaxBound-style treatment (full primal always available).ext/PiccoloMakieExt.jl— new end-to-end@testitemthat attachesLivePulsePlotCallbackto an IpoptSmoothPulseProblemsolve and asserts per-iteriter_<N>.pngframes are emitted through the callback.No mechanism code changes —
LivePulsePlotCallbackalready reconstructs the trajectory from the primal each iter; this PR proves the Ipopt install path works and pins it with a test.Validation (gpu-dev-v2)
Ran the new smoke test against this branch with DTO#114 dev-coupled: Piccolo tests passed — the Ipopt solve emits per-iter PNGs through
LivePulsePlotCallbackend-to-end.Dependency
Needs DirectTrajOpt with the Ipopt
intermediate_callbackfield (DTO#114). The pinDirectTrajOpt = "0.9.5"already admits the forthcoming patch release (v0.9.7); CI here goes green once that release is registered.🤖 Generated with Claude Code