Skip to content

Commit dca972c

Browse files
committed
Merge pull request #68 from Fe-r-oz/Glossary
Closes #66
2 parents 869b1c9 + c925270 commit dca972c

File tree

7 files changed

+153
-148
lines changed

7 files changed

+153
-148
lines changed

docs/generate_api.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ open(outfile, "w") do out
140140
end
141141

142142

143-
local_submodules = [:Functionals, :PulseParametrizations, :Workflows]
143+
local_submodules = [:Functionals, :PulseParameterizations, :Workflows]
144144

145145
local_module_api_id(mod) = replace("$mod", "." => "") * "LocalAPI"
146146

docs/src/examples/index.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
## Krotov-specific examples
44

5-
* [Optimization of a State-to-State Transfer in a Two-Level-System](https://juliaquantumcontrol.github.io/Krotov.jl/stable/examples/simple_state_to_state/)
6-
* [Optimization of a Dissipative Quantum Gate](https://juliaquantumcontrol.github.io/Krotov.jl/stable/examples/rho_3states/)
7-
* [Pulse Parametrization](https://juliaquantumcontrol.github.io/Krotov.jl/stable/examples/state_to_state_parametrizations/)
8-
* [Optimization for a perfect entangler](https://juliaquantumcontrol.github.io/Krotov.jl/stable/examples/perfect_entanglers/)
5+
* [Optimization of a State-to-State Transfer in a Two-Level-System](https://juliaquantumcontrol.github.io/QuantumControlExamples.jl/stable/examples/simple_state_to_state/#Optimization-of-a-State-to-State-Transfer-in-a-Two-Level-System)
6+
* [Optimization of a Dissipative Quantum Gate](https://juliaquantumcontrol.github.io/QuantumControlExamples.jl/stable/examples/rho_3states/#Optimization-of-a-Dissipative-Quantum-Gate)
7+
* [Pulse Parameterization](https://juliaquantumcontrol.github.io/QuantumControlExamples.jl/stable/tutorials/krotov_pulse_parameterization/)
8+
* [Optimization for a perfect entangler](https://juliaquantumcontrol.github.io/QuantumControlExamples.jl/stable/examples/perfect_entanglers/#Optimizing-for-a-general-perfect-entangler)
99

1010
## GRAPE-specific examples
1111

12-
* [Optimization of a State-to-State Transfer in a Two-Level-System](https://juliaquantumcontrol.github.io/GRAPE.jl/stable/examples/simple_state_to_state/)
13-
* [Optimization for a perfect entangler](https://juliaquantumcontrol.github.io/GRAPE.jl/stable/examples/perfect_entanglers/)
12+
* [Optimization of a State-to-State Transfer in a Two-Level-System](https://juliaquantumcontrol.github.io/QuantumControlExamples.jl/stable/examples/simple_state_to_state/#Optimization-of-a-State-to-State-Transfer-in-a-Two-Level-System)
13+
* [Optimization for a perfect entangler](https://juliaquantumcontrol.github.io/QuantumControlExamples.jl/stable/examples/perfect_entanglers/#Optimizing-for-a-general-perfect-entangler)

docs/src/glossary.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ A function that corresponds directly to some kind of *physical* drive (laser amp
6969
The time-dependent coefficient ``a_l(t)`` for the [Control Operator](@ref) in Eq. (G2). A control amplitude may depend on on or more control functions, as well as have an explicit time dependency. Some conceptual examples for control amplitudes and how they may depend on a [Control Function](@ref) are the following:
7070

7171
* Non-linear coupling of a control field to the operator, e.g., the quadratic coupling of the laser field to a Stark shift operator
72-
* [Pulse Parametrization](@ref) as a way to enforce bounds on a [Control Field](@ref)
72+
* [Pulse Parameterization](@ref) as a way to enforce bounds on a [Control Field](@ref)
7373
* Transfer functions, e.g., to model the response of an electronic device to the optimal control field ``ϵ(t)``.
7474
* Noise in the amplitude of the control function
7575
* Non-controllable aspects of the control amplitude, e.g. a "guided" control amplitude ``a_l(t) = R(t) + ϵ_l(t)`` or a non-controllable envelope ``S(t)`` in ``a_l(t) = S(t) ϵ(t)`` that ensures switch-on- and switch-off in a CRAB pulse `ϵ(t)`.
@@ -81,22 +81,22 @@ In [Qiskit Dynamics](https://qiskit.org/documentation/dynamics/index.html), the
8181

8282
##### Control Parameters
8383

84-
Non-time-dependent parameters that a [Control Function](@ref) depends on, ``ϵ(t) = ϵ(\{u_n\}, t)``. One common parametrization of a control field is as a [Pulse](@ref), where the control parameters are the amplitude of the field at discrete points of a time grid. Parametrization as a "pulse" is implicit in Krotov's method and standard GRAPE.
84+
Non-time-dependent parameters that a [Control Function](@ref) depends on, ``ϵ(t) = ϵ(\{u_n\}, t)``. One common parameterization of a control field is as a [Pulse](@ref), where the control parameters are the amplitude of the field at discrete points of a time grid. Parameterization as a "pulse" is implicit in Krotov's method and standard GRAPE.
8585

8686
More generally, the control parameters could also be spectral coefficients (CRAB) or simple parameters for an analytic pulse shape (e.g., position, width, and amplitude of a Gaussian shape). All optimal control methods find optimized control fields by varying the control parameters.
8787

8888
----
8989

9090
##### Pulse
9191

92-
(aka "control pulse") A control field discretized to a time grid, usually on the midpoints of the time grid, in a piecewise-constant approximation. Stored as a vector of floating point values. The parametrization of a control field as a "pulse" is implicit for Krotov's method and standard GRAPE. One might think of these methods to optimize the control fields *directly*, but a conceptually cleaner understanding is to think of the discretized "pulse" as a vector of control parameters for the time-continuous control field.
92+
(aka "control pulse") A control field discretized to a time grid, usually on the midpoints of the time grid, in a piecewise-constant approximation. Stored as a vector of floating point values. The parameterization of a control field as a "pulse" is implicit for Krotov's method and standard GRAPE. One might think of these methods to optimize the control fields *directly*, but a conceptually cleaner understanding is to think of the discretized "pulse" as a vector of control parameters for the time-continuous control field.
9393

9494

9595
----
9696

97-
##### Pulse Parametrization
97+
##### Pulse Parameterization
9898

99-
A special case of a [Control Amplitude)(@ref) where ``a(t) = a(ϵ(t))`` at every point in time. The purpose of this is to constrain the amplitude of the control amplitude ``a(t)``. See e.g. [`QuantumControl.PulseParametrizations.SquareParametrization`](@ref), where ``a(t) = ϵ^2(t)`` to ensure that ``a(t)`` is positive. Since Krotov's method inherently has no constraints on the optimized control fields, pulse parameterization is a method of imposing constraints on the amplitude in this context.
99+
A special case of a [Control Amplitude](@ref) where ``a(t) = a(ϵ(t))`` at every point in time. The purpose of this is to constrain the amplitude of the control amplitude ``a(t)``. See e.g. [`QuantumControl.PulseParameterizations.SquareParameterization`](@ref), where ``a(t) = ϵ^2(t)`` to ensure that ``a(t)`` is positive. Since Krotov's method inherently has no constraints on the optimized control fields, pulse parameterization is a method of imposing constraints on the amplitude in this context.
100100

101101
----
102102

@@ -121,4 +121,4 @@ The derivative of the optimization functional with respect to *all* [Control Par
121121

122122
!!! note
123123

124-
The above nomenclature does not consistently extend throughout the quantum control literature: the terms "control"/"control term"/"control Hamiltonian", and "control"/"control field"/"control function"/"control pulse"/"pulse" are generally somewhat ambiguous. In particular, the distinction between "control field" and "pulse" (as a parametrization of the control field in terms of amplitudes on a time grid) here is somewhat artifcial and borrowed from the [Krotov Python package](https://qucontrol.github.io/krotov). However, the terminology defined in this glossary is consistently applied within the `JuliaQuantumControl` organization, both in the documentation and in the names of members and methods.
124+
The above nomenclature does not consistently extend throughout the quantum control literature: the terms "control"/"control term"/"control Hamiltonian", and "control"/"control field"/"control function"/"control pulse"/"pulse" are generally somewhat ambiguous. In particular, the distinction between "control field" and "pulse" (as a parameterization of the control field in terms of amplitudes on a time grid) here is somewhat artifcial and borrowed from the [Krotov Python package](https://qucontrol.github.io/krotov). However, the terminology defined in this glossary is consistently applied within the `JuliaQuantumControl` organization, both in the documentation and in the names of members and methods.

src/QuantumControl.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ include("workflows.jl") # submodule Workflows
6666
using .Workflows: run_or_load, @optimize_or_load, save_optimization, load_optimization
6767
export run_or_load, @optimize_or_load, save_optimization, load_optimization
6868

69-
include("pulse_parametrizations.jl") # submodule PulseParametrizations
69+
include("pulse_parameterizations.jl") # submodule PulseParameterizations
7070

7171
include("functionals.jl") # submodule Functionals
7272

0 commit comments

Comments
 (0)