Skip to content

Conversation

@SebastianM-C
Copy link
Member

@SebastianM-C SebastianM-C commented Sep 22, 2025

Move Ipopt-specific options from solve() to IpoptOptimizer struct fields.
Options are now set via the struct constructor or additional_options dict,
while common interface args (reltol, maxiters, maxtime, verbose) remain
in solve().

BREAKING CHANGES:

  • Ipopt options must now be passed to IpoptOptimizer() constructor instead of solve().
  • The callback implementation now caches u (current state), z_L, z_U (for lower/upper bounds) and g, lambda (for constraints), so if the historical values for these are needed, these values must be copied!

Co-authored-by: Claude claude@anthropic.com

Checklist

  • Appropriate tests were added
  • Any code changes were done in a way that does not break public API
  • All documentation related to code changes were updated
  • The new code follows the
    contributor guidelines, in particular the SciML Style Guide and
    COLPRAC.
  • Any new documentation only uses public API

Additional context

Add any other context about the problem here.

SebastianM-C and others added 3 commits September 22, 2025 22:50
…ic options

Move Ipopt-specific options from solve() to IpoptOptimizer struct fields.
Options are now set via the struct constructor or additional_options dict,
while common interface args (reltol, maxiters, maxtime, verbose) remain
in solve().

BREAKING CHANGE: Ipopt options must now be passed to IpoptOptimizer()  constructor instead of solve().

Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude <claude@anthropic.com>
@SebastianM-C SebastianM-C changed the title IpoptOptimizer now stores solver specific options IpoptOptimizer now stores solver specific options and the callbacks are faster Sep 22, 2025
…erate

Note that this breaking change as one needs to copy the vectors if their historical values are needed.
@ChrisRackauckas ChrisRackauckas merged commit 8c0f4c3 into SciML:master Sep 22, 2025
45 of 71 checks passed
@SebastianM-C SebastianM-C deleted the smc/ipopt2 branch September 23, 2025 11:04
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.

2 participants