Skip to content

Fix parameterized sparse constraint Jacobians in Ipopt - #1291

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/fix-ipopt-live-parameter-dispatch
Jul 31, 2026
Merged

Fix parameterized sparse constraint Jacobians in Ipopt#1291
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/fix-ipopt-live-parameter-dispatch

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Summary

Fix OptimizationIpopt.eval_constraint_jacobian to pass the live cache parameter only when the instantiated cons_j closure accepts it. OptimizationBase sparse instantiation captures parameters for a supplied cons_j, yielding a two-argument closure.

This fixes the clean-master BoundaryValueDiffEqMIRK SciMLStructures/Ipopt failure without changing BoundaryValueDiffEq or #577.

Baseline trace

  • BoundaryValueDiffEq clean master (219b5021), Julia 1.12, current resolver: the MIRK Core test errors in OptimizationIpopt.eval_constraint_jacobian because a two-argument instantiated cons_j is called with (J, x, p).
  • A/B source check using the same constrained sparse-Jacobian problem and current resolver: parent 3b0cff7a3 of be6fbd279 passes; the current evaluator path fails pre-fix; this branch passes.

Tests

  • OPTIMIZATION_TEST_GROUP=Core julia +1.12 --project=lib/OptimizationIpopt -e "using Pkg; Pkg.develop(path = \"lib/OptimizationBase\"); Pkg.test()"
    • 127 passed, 1 pre-existing broken, 0 failures/errors
  • Runic --check --diff --quiet
  • git diff --check

Ignore until reviewed by @ChrisRackauckas.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 31, 2026 18:22
@ChrisRackauckas
ChrisRackauckas merged commit 06a10aa into SciML:master Jul 31, 2026
48 of 51 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.

2 participants