Skip to content

feat: drive Hessian, per-drive du bounds, generalized free-phase, FunctionPulse#126

Closed
aarontrowbridge wants to merge 2 commits intomainfrom
objectives-and-templates
Closed

feat: drive Hessian, per-drive du bounds, generalized free-phase, FunctionPulse#126
aarontrowbridge wants to merge 2 commits intomainfrom
objectives-and-templates

Conversation

@aarontrowbridge
Copy link
Copy Markdown
Member

Summary

  • Add drive_coeff_hess for second-order sensitivity equations (exact Hessian in SplineIntegrator)
  • Parametrize LinearDrive/NonlinearDrive on H type to support structured operators (e.g. AbstractDynamicsOperator)
  • Add drive_matrix/drive_dim accessors and _ensure_matrix conversion layer
  • Add per-drive du_bounds vector in SplinePulseProblem (takes precedence over scalar du_bound)
  • Generalize free-phase rotation from qubit-only Z to number-operator e^{iθn̂} (supports multi-level subsystems like transmon⊗cavity)
  • Add initial_phases kwarg to SmoothPulseProblem and SplinePulseProblem
  • Add FunctionPulse for analytic pulse rollouts without discretization
  • Add free-phase FinalCoherentKetFidelityConstraint for MinimumTimeProblem with MultiKetTrajectory
  • Add Δt_bounds and subsystem_levels kwargs to MinimumTimeProblem
  • Rename trajqtraj in trajectory callable methods for consistency
  • Add pulse_plots.jl visualization module (plot_pulse, plot_pulse_IQ, plot_pulse_phases)

Test plan

  • CI passes

🤖 Generated with Claude Code

aarontrowbridge and others added 2 commits March 19, 2026 10:40
…ds, and FunctionPulse

- Add drive_coeff_hess for second-order sensitivity (exact Hessian in SplineIntegrator)
- Parametrize LinearDrive/NonlinearDrive on H type for structured operators
- Add drive_matrix/drive_dim accessors, per-drive du_bounds in SplinePulseProblem
- Generalize free-phase from qubit-only Z to number-operator rotation e^{iθn̂}
- Add FunctionPulse for analytic pulse rollouts, initial_phases kwarg
- Add free-phase FinalCoherentKetFidelityConstraint for MinimumTimeProblem
- Rename traj→qtraj in trajectory callables for consistency
- Add pulse_plots.jl visualization module
Bump version to 1.7.0. Type-parametrize drives and QuantumSystem for
structured operators, add Hessian support to NonlinearDrive, per-drive
du_bounds in SplinePulseProblem, initial_phases in free-phase templates,
and free-phase support in MinimumTimeProblem. Format all files.
@jack-champagne
Copy link
Copy Markdown
Member

merged in as of #128. Released in Piccolo v1.7.0

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