Skip to content
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

Feature: Ipopt callbacks #157

Merged
merged 22 commits into from
Nov 12, 2024
Merged

Feature: Ipopt callbacks #157

merged 22 commits into from
Nov 12, 2024

Conversation

jack-champagne
Copy link
Member

@jack-champagne jack-champagne commented Sep 25, 2024

Referenced the following during implementation:
https://github.com/jump-dev/Ipopt.jl/tree/4c156461ef1fda3c9f015520197afda4e8ca3e26?tab=readme-ov-file#solver-specific-callbacks
https://coin-or.github.io/Ipopt/IpStdCInterface_8h.html#ab86b55545fa3e0232a0e646409e0e82b

Add basic functionality, need to add:

  • test
  • docs
  • example

using internal callbacks, here are the primal variables as Ipopt optimizes. This was generated via saving the plots on the "Callback can get internal history" test

animation

Add basic functionality, need to add test, docs, and example
@aarontrowbridge
Copy link
Member

could we add this gif to the docs somewhere

src/callbacks.jl Outdated Show resolved Hide resolved
Comment on lines +120 to +134
function smooth_quantum_state_problem(; return_system::Bool=false)
T = 50
Δt = 0.2
sys = QuantumSystem(0.1 * PAULIS[:Z], [PAULIS[:X], PAULIS[:Y]])
ψ_init = ComplexF64[1.0, 0.0]
ψ_target = ComplexF64[0.0, 1.0]
prob = QuantumStateSmoothPulseProblem(
sys, ψ_init, ψ_target, T, Δt;
ipopt_options=IpoptOptions(print_level=1),
piccolo_options=PiccoloOptions(verbose=false)
)
if return_system
return prob, sys
else
return prob
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andgoldschmidt andgoldschmidt merged commit 75ef19c into main Nov 12, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants