Skip to content

Conversation

@aarontrowbridge
Copy link
Member

This pull request adds detailed timing and verbose logging to several core routines in the trajectory optimization and solver setup, improving debuggability and performance profiling. It also refactors the way NamedTrajectory objects are constructed to better handle global components. The most important changes are grouped below:

Verbose Logging and Timing for Debugging and Profiling

  • Added timing and verbose print statements throughout the IpoptEvaluator construction process in src/solvers/ipopt_solver/evaluator.jl, including for Jacobian and Hessian structure assembly, objective evaluation, and linear index map creation. This helps track performance bottlenecks and provides detailed feedback when verbose=true. [1] [2]
  • Added timing and verbose output to the optimizer and variable initialization process in get_optimizer_and_variables in src/solvers/ipopt_solver/solver.jl, reporting the time spent on each major step such as evaluator creation, constraint extraction, block data building, and variable setup.
  • Extended verbose logging and timing to the Hessian structure computation for composite objectives in hessian_structure in src/objectives/_objectives.jl, printing the time taken for each sub-objective when verbose=true.

Trajectory Data Handling Improvements

  • Refactored the construction of NamedTrajectory in DirectTrajOptProblem in src/problems.jl to more robustly extract and handle both component and global component data, improving support for trajectories with global variables.

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