Skip to content

Conversation

@aarontrowbridge
Copy link
Member

@aarontrowbridge aarontrowbridge commented Oct 23, 2025

This pull request introduces several important updates to the documentation and codebase, primarily to standardize the interface for constructing quantum systems, clarify documentation, and improve usability for new users. The main changes include requiring explicit specification of T_max and drive_bounds when constructing quantum systems, updating documentation and examples to reflect this, adding a new quickstart guide, and simplifying the direct_sum logic for combining systems.

Documentation and Usability Improvements:

  • Added a comprehensive quickstart.jl guide to help new users install and use the package, including examples for creating quantum systems, simulating evolution, and plotting results.
  • Updated the documentation and examples throughout the codebase to require explicit T_max (maximum time) and drive_bounds (control bounds) when constructing QuantumSystem and related types, ensuring consistency and clarity for users [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13].
  • Improved project documentation structure by adding the quickstart page to the navigation and updating dependencies and compatibility in docs/Project.toml [1] [2] [3].

API and Codebase Changes:

  • Refactored the direct_sum function for QuantumSystem objects to require explicit T_max and drive_bounds, simplifying parameter handling and ensuring the resulting system's controls are well-defined [1] [2].
  • Updated utility functions such as get_drift and get_drives to use the new explicit control and time interface, improving consistency and future extensibility [1] [2].
  • Temporarily disabled inclusion of time-dependent quantum systems pending refactoring, to maintain codebase stability.

These changes collectively improve the clarity, reliability, and usability of the package for both new and existing users.

References: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22]This pull request introduces significant improvements to the quantum system API and documentation, standardizing the construction of QuantumSystem and CompositeQuantumSystem objects. The main changes require explicit specification of control bounds and maximum time for all quantum systems, refactor the Hamiltonian function signatures to consistently use control vectors and time arguments, and enhance the composite system constructors and documentation. These updates improve clarity, usability, and correctness throughout the codebase and documentation.

API Standardization and Refactoring

  • All QuantumSystem and OpenQuantumSystem constructors now require explicit T_max (maximum time) and drive_bounds (control bounds) arguments, both in code and documentation examples. This change affects all usages and test cases. [1] [2] [3] [4] [5] [6] [7]
  • The Hamiltonian function signature is standardized to H(u, t), where u is the control vector and t is time, replacing the previous H(a) or H(a, ...) forms. This applies to both code and documentation. [1] [2] [3] [4]

Composite System Improvements

  • The CompositeQuantumSystem type and its constructors are refactored and documented. The new constructors support coupling drift, coupling drives, or both, and require explicit T_max and drive_bounds. Documentation now includes clear field descriptions and usage examples. [1] [2] [3] [4]
  • The composite system API now automatically lifts subsystem Hamiltonians to the full Hilbert space and appends subsystem drives to coupling drives. [1] [2]

Direct Sum API Update

  • The direct_sum function for QuantumSystem objects is updated to require T_max and drive_bounds, and its documentation is improved with examples. The test suite is updated to match the new constructor requirements. [1] [2] [3]

Other Technical Fixes

  • All usages of get_drift and get_drives are updated to use the new Hamiltonian function signature and control vector conventions. [1] [2]

These changes collectively make the quantum system API more robust, explicit, and easier to use for both simple and composite systems.

…time-dependent Hamiltonians and additional parameters. Update rollout functions to accommodate new system definitions. Introduce new test cases for system creation and variational rollouts.
…move time-dependent quantum systems implementation and adjust related examples. Enhance quickstart guide with comprehensive usage instructions.
@aarontrowbridge aarontrowbridge merged commit 3720eef into main Oct 26, 2025
5 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