From 76284e8fdd467d58a907b7d8535dd45a6d7b1eb9 Mon Sep 17 00:00:00 2001 From: Jack Champagne Date: Fri, 28 Feb 2025 02:52:31 -0500 Subject: [PATCH] use harmoniqs org url --- LICENSE | 2 +- README.md | 16 +++---- docs/make.jl | 4 +- docs/src/index.md | 103 ---------------------------------------------- 4 files changed, 11 insertions(+), 114 deletions(-) delete mode 100644 docs/src/index.md diff --git a/LICENSE b/LICENSE index 54423fe3..c7def4e5 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 Aaron Trowbridge +Copyright (c) 2025 Aaron Trowbridge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index afc11074..a94632b8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
- + Piccolo.jl
@@ -11,10 +11,10 @@ Documentation
- + Stable - + Dev @@ -24,11 +24,11 @@ Build Status
-
- Build Status + + Build Status - - Coverage + + Coverage @@ -65,7 +65,7 @@ \nonumber & \mathbf{g}(\mathbf{Z}) \le 0 \end{aligned} ``` -where $\mathbf{Z}$ is a trajectory containing states and controls, from [NamedTrajectories.jl](https://github.com/kestrelquantum/NamedTrajectories.jl). +where $\mathbf{Z}$ is a trajectory containing states and controls, from [NamedTrajectories.jl](https://github.com/harmoniqs/NamedTrajectories.jl). ### Problem Templates diff --git a/docs/make.jl b/docs/make.jl index 5c0612b4..54cde02f 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -28,7 +28,7 @@ pages = [ format = Documenter.HTML(; prettyurls=get(ENV, "CI", "false") == "true", - canonical="https://kestrelquantum.github.io/QuantumCollocation.jl", + canonical="https://docs.harmoniqs.co/QuantumCollocation.jl", edit_link="main", assets=String[], mathengine = MathJax3(Dict( @@ -68,6 +68,6 @@ makedocs(; ) deploydocs(; - repo="github.com/kestrelquantum/QuantumCollocation.jl.git", + repo="github.com/harmoniqs/QuantumCollocation.jl.git", devbranch="main", ) diff --git a/docs/src/index.md b/docs/src/index.md deleted file mode 100644 index a2ae85ba..00000000 --- a/docs/src/index.md +++ /dev/null @@ -1,103 +0,0 @@ -```@raw html -
- - - Piccolo.jl - - -
-
-
Documentation
-
Build Status
-
Support
-
-
-
- - Stable - - - arXiv - -
-
- - Build Status - - - Coverage - -
-
- - Unitary Fund - -
-
-
- - Quickly set up and solve problem templates for quantum optimal control. -
- -
-``` - -# QuantumCollocation.jl - -**QuantumCollocation.jl** sets up and solves *quantum control problems* as nonlinear programs (NLPs). In this context, a generic quantum control problem looks like -```math -\begin{aligned} - \arg \min_{\mathbf{Z}}\quad & J(\mathbf{Z}) \\ - \nonumber \text{s.t.}\qquad & \mathbf{f}(\mathbf{Z}) = 0 \\ - \nonumber & \mathbf{g}(\mathbf{Z}) \le 0 -\end{aligned} -``` -where $\mathbf{Z}$ is a trajectory containing states and controls, from [NamedTrajectories.jl](https://github.com/kestrelquantum/NamedTrajectories.jl). - -### Problem Templates - -*Problem Templates* are reusable design patterns for setting up and solving common quantum control problems. - -For example, a *UnitarySmoothPulseProblem* is tasked with generating a *pulse* sequence $a_{1:T-1}$ in orderd to minimize infidelity, subject to constraints from the Schroedinger equation, -```math - \begin{aligned} - \arg \min_{\mathbf{Z}}\quad & |1 - \mathcal{F}(U_T, U_\text{goal})| \\ - \nonumber \text{s.t.} - \qquad & U_{t+1} = \exp\{- i H(a_t) \Delta t_t \} U_t, \quad \forall\, t \\ - \end{aligned} -``` -while a *UnitaryMinimumTimeProblem* minimizes time and constrains fidelity, -```math - \begin{aligned} - \arg \min_{\mathbf{Z}}\quad & \sum_{t=1}^T \Delta t_t \\ - \qquad & U_{t+1} = \exp\{- i H(a_t) \Delta t_t \} U_t, \quad \forall\, t \\ - \nonumber & \mathcal{F}(U_T, U_\text{goal}) \ge 0.9999 - \end{aligned} -``` - -In each case, the dynamics between *knot points* $(U_t, a_t)$ and $(U_{t+1}, a_{t+1})$ are enforced as constraints on the states, which are free variables in the solver; this optimization framework is called *direct collocation*. For details of our implementation please see our award-winning IEEE QCE 2023 paper, [Direct Collocation for Quantum Optimal Control](https://arxiv.org/abs/2305.03261). If you use QuantumCollocation.jl in your work, please cite :raised_hands:! - -Problem templates give the user the ability to add other constraints and objective functions to this problem and solve it efficiently using [Ipopt.jl](https://github.com/jump-dev/Ipopt.jl) and [MathOptInterface.jl](https://github.com/jump-dev/MathOptInterface.jl) under the hood. - -## Installation - -This package is registered! To install, enter the Julia REPL, type `]` to enter pkg mode, and then run: -```julia -pkg> add QuantumCollocation -``` - -## Example - -### Single Qubit Hadamard Gate -```Julia -using QuantumCollocation - -T = 50 -Δt = 0.2 -system = QuantumSystem([PAULIS[:X], PAULIS[:Y]]) -U_goal = GATES.H - -# Hadamard Gate -prob = UnitarySmoothPulseProblem(system, U_goal, T, Δt) -solve!(prob, max_iter=100) -```