Skip to content

Releases: harmoniqs/DirectTrajOpt.jl

v0.9.7

Choose a tag to compare

@github-actions github-actions released this 01 Jul 09:43
134c3ac

DirectTrajOpt v0.9.7

Diff since v0.9.6

Changes

  • Ipopt solver backend now supports AbstractIntermediateCallback via a new IpoptOptions.intermediate_callback field, matching existing MadNLP support.
  • Added GlobalLinearConstraint for linear relations/bounds on a global block, with infeasible-row detection and sparsity preservation.
  • Added a KnotHVP trait/field to the objectives API, threaded through constructors.

Merged pull requests:

  • chore(deps): bump julia-actions/cache from 2 to 3 (#105) (@dependabot[bot])
  • chore(deps): bump actions/upload-artifact from 4 to 7 (#106) (@dependabot[bot])
  • chore(deps): bump codecov/codecov-action from 6 to 7 (#107) (@dependabot[bot])
  • chore(deps): bump julia-actions/setup-julia from 2 to 3 (#108) (@dependabot[bot])
  • feat: GlobalLinearConstraint — linear relations/bounds on a global block (#111) (@krish-suresh)
  • Wire AbstractIntermediateCallback into the Ipopt backend (0.2a) (#114) (@Rchari1)
  • KnotHVP trait, field, added to DTO API; threaded through constructors (#115) (@gennadiryan)
  • Revert "KnotHVP trait, field, added to DTO API; threaded through constructors" (#116) (@gennadiryan)
  • Merge remote-tracking branch 'origin/main' into feat/matrix-free-obj-constr (fixing clobbered workflow updates) (#117) (@gennadiryan)
  • chore: bump version to 0.9.7 (#118) (@jack-champagne)

Closed issues:

  • Add a KnotHVP capability interface: objectives can declare a matrix-free per-knot HVP (#113)

v0.9.6

Choose a tag to compare

@github-actions github-actions released this 10 Jun 05:13
0c47f87

DirectTrajOpt v0.9.6

Diff since v0.9.5

Changes

  • No functional or API changes to the solver — maintenance release covering benchmarking and documentation infrastructure.

Added

  • CI benchmark suites (Ipopt vs MadNLP): full-solve timing, evaluator micro-benchmarks, memory scaling, an allocation profile, and a convergence suite — each publishing a live gh-pages dashboard on tagged releases.
  • A documented Benchmarks page in the docs.

Merged pull requests:

v0.9.5

Choose a tag to compare

@github-actions github-actions released this 26 May 19:50
c1c5398

DirectTrajOpt v0.9.5

Diff since v0.9.4

Changes

  • Added solver-agnostic AbstractIntermediateCallback abstract type for per-iteration hooks during a solve.
  • MadNLPOptions now accepts intermediate_callback (subtype of AbstractIntermediateCallback or MadNLP.AbstractUserCallback) and fixed_variable_treatment fields.
  • Reduced per-iteration allocations during NLP objective/jacobian/hessian assembly via trajectory datavec caching.

Merged pull requests:

v0.9.4

Choose a tag to compare

@github-actions github-actions released this 14 May 20:53
db61d81

DirectTrajOpt v0.9.4

Diff since v0.9.3

Changes

  • Solver: bumped Ipopt diverging_iterates_tol default from 1e8 to 1e20, matching Ipopt's native default. Avoids false-positive "Iterates diverging" exits on smooth-pulse NLPs whose unscaled second derivatives legitimately reach O(1e8).
  • Compat: NamedTrajectories 0.9 is now supported alongside 0.8.

Merged pull requests:

v0.9.3

Choose a tag to compare

@github-actions github-actions released this 01 May 01:38
1eb4d98

DirectTrajOpt v0.9.3

Diff since v0.9.2

Added

  • fix_global_variable!(constraints, name, value) — companion to fix_trajectory_variable! for pinning time-invariant global variables. Removes any existing BoundsConstraint/EqualityConstraint on the same global to avoid MOI conflicts (an EqualTo set cannot coexist with GreaterThan/LessThan on the same variable). Accepts AbstractVector{<:Real}.

Merged pull requests:

v0.9.2

Choose a tag to compare

@github-actions github-actions released this 29 Apr 07:23
5184e00

DirectTrajOpt v0.9.2

Diff since v0.9.1

Merged pull requests:

  • Version bump to v0.9.2; add back in previously removed support for SciMLBase v2 (#81) (@gennadiryan)

v0.9.1

Choose a tag to compare

@github-actions github-actions released this 29 Apr 06:47
a661dc0

DirectTrajOpt v0.9.1

Diff since v0.9.0

Merged pull requests:

  • Bump codecov/codecov-action from 5 to 6 (#65) (@dependabot[bot])
  • benchmarks: Initial DirectTrajOpt benchmark suite (Ipopt vs MadNLP) (#67) (@jack-champagne)
  • Bump julia-actions/setup-julia from 2 to 3 (#72) (@dependabot[bot])
  • Add MadNLP pass-through fields (linear_solver, array_type, etc.) (#74) (@jack-champagne)
  • CompatHelper: bump compat for OrdinaryDiffEqTsit5 to 2, (keep existing compat) (#77) (@github-actions[bot])
  • feat: add fix_global_variable! helper for integrator-agnostic global pinning (#78) (@aarontrowbridge)
  • Version bump v0.9.1 (#80) (@gennadiryan)

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 20 Apr 08:36
0d8309c

DirectTrajOpt v0.9.0

Diff since v0.8.11

Changes

  • solve! now dispatches on AbstractSolverOptions rather than concrete IpoptOptions, allowing multiple solver backends behind a single interface.
  • Solver module restructured: evaluator.jl and constraint utilities moved from the Ipopt-specific extension into the core Solvers submodule and shared between solvers.
  • Default solver options type (_DefaultSolverOptions) is now settable at load time; defaults to IpoptOptions with Ipopt reexported as before.

Added

  • MadNLP support via package extension (MadNLPSolverExt), loaded automatically when MadNLP is present. MadNLP is now a [weakdeps], not a hard dependency.
  • MadNLPOptions struct, accessible from the top-level DirectTrajOpt module without loading the extension.
  • Passthrough for MadNLP-specific solver kwargs (kkt_system, linear_solver, etc.), enabling GPU solves.
  • New public exports: AbstractOptimizer, DefaultSolverOptions, _solve, _solve_with_kwargs.
  • solve!(prob; options=MadNLPOptions(), kwargs...) public API for solving with MadNLP.
  • Cross-solver comparison tests (test/compare_solvers.jl).

Breaking changes

  • Ipopt is no longer the only supported solver. DirectTrajOpt has departed from its Ipopt-only design — solver choice is now pluggable via AbstractSolverOptions, with MadNLP shipping as the first additional backend and a candidate to eventually replace Ipopt as the default.
  • solve! now dispatches on AbstractSolverOptions rather than concrete IpoptOptions. Custom solver integrations that relied on the old concrete-type signature need adjustment to the new _solve!(prob, options::YourOptions; kwargs...) dispatch pattern.

Merged pull requests:

v0.8.11

Choose a tag to compare

@github-actions github-actions released this 17 Apr 19:21
2c981a9

DirectTrajOpt v0.8.11

Diff since v0.8.10

Changes

  • Extended EqualityConstraint to support pinning individual trajectory variables at specific timesteps
  • Added fix_trajectory_variable! helper for fixing trajectory variables during optimization

Merged pull requests:

v0.8.10

Choose a tag to compare

@github-actions github-actions released this 08 Apr 22:28
aa411bf

DirectTrajOpt v0.8.10

Diff since v0.8.9

Changes

  • Fix argument order for time-dependent bilinear integrator constructor and docstring

Merged pull requests: