|
Quandary
|
Core type definitions and enumerations for Quandary quantum optimal control. More...
#include <map>#include <optional>#include <string>#include <vector>

Go to the source code of this file.
Macros | |
| #define | M_PI 3.14159265358979323846 |
| #define | SQR(x) (x)*(x) |
Enumerations | |
| enum class | DecoherenceType { NONE , DECAY , DEPHASE , BOTH } |
| Available Lindblad operator types for open quantum systems, or NONE for closed quantum systems. More... | |
| enum class | InitialConditionType { FROMFILE , PRODUCT_STATE , ENSEMBLE , DIAGONAL , BASIS , THREESTATES , NPLUSONE , PERFORMANCE } |
| Available types of initial conditions that are propagated through the quantum dynamics. More... | |
| enum class | TargetType { NONE , GATE , STATE } |
| Types of optimization targets for quantum control. More... | |
| enum class | ObjectiveType { JFROBENIUS , JTRACE , JMEASURE } |
| Types of objective functions for quantum control optimization. More... | |
| enum class | LinearSolverType { GMRES , NEUMANN } |
| Available types for solving linear systems at each time step. More... | |
| enum class | RunType { SIMULATION , GRADIENT , OPTIMIZATION , EVALCONTROLS , NONE } |
| Types of execution modes. More... | |
| enum class | ControlType { NONE , BSPLINE , BSPLINEAMP , BSPLINE0 } |
| Types of control parameterizations. More... | |
| enum class | ControlInitializationType { CONSTANT , RANDOM , FILE } |
| Types of control initializations. More... | |
| enum class | TimeStepperType { IMR , IMR4 , IMR8 , EE } |
| Types of time-stepping methods for evolving quantum states. More... | |
| enum class | GateType { NONE , XGATE , YGATE , ZGATE , HADAMARD , CNOT , SWAP , SWAP_0Q , CQNOT , QFT , FILE } |
| Types of quantum gates used in quantum control. More... | |
| enum class | OutputType { EXPECTED_ENERGY , EXPECTED_ENERGY_COMPOSITE , POPULATION , POPULATION_COMPOSITE , FULLSTATE } |
| Types of output files to be written. More... | |
Variables | |
| const std::map< std::string, DecoherenceType > | DECOHERENCE_TYPE_MAP |
| const std::map< std::string, InitialConditionType > | INITCOND_TYPE_MAP |
| const std::map< std::string, TargetType > | TARGET_TYPE_MAP |
| const std::map< std::string, ObjectiveType > | OBJECTIVE_TYPE_MAP |
| const std::map< std::string, LinearSolverType > | LINEAR_SOLVER_TYPE_MAP |
| const std::map< std::string, RunType > | RUN_TYPE_MAP |
| const std::map< std::string, ControlType > | CONTROL_TYPE_MAP |
| const std::map< std::string, ControlInitializationType > | CONTROL_INITIALIZATION_TYPE_MAP |
| const std::map< std::string, TimeStepperType > | TIME_STEPPER_TYPE_MAP |
| const std::map< std::string, GateType > | GATE_TYPE_MAP |
| const std::map< std::string, OutputType > | OUTPUT_TYPE_MAP |
Core type definitions and enumerations for Quandary quantum optimal control.
This file contains fundamental type definitions, enumeration classes, and constants used throughout the Quandary quantum optimal control framework. It defines solver types, target specifications, objective functions, and control parameterizations.
| #define M_PI 3.14159265358979323846 |
| #define SQR | ( | x | ) | (x)*(x) |
|
strong |
|
strong |
Types of control parameterizations.
Defines how control pulses are parameterized for optimization and simulation.
|
strong |
Available Lindblad operator types for open quantum systems, or NONE for closed quantum systems.
For open quantum systems, this defines the types of dissipation and decoherence operators that can be applied to the quantum system in Lindblad master equation.
| Enumerator | |
|---|---|
| NONE | No Lindblad operators (closed system) |
| DECAY | Decay operators only. |
| DEPHASE | Dephasing operators only. |
| BOTH | Both decay and dephasing operators. |
|
strong |
Types of quantum gates used in quantum control.
| Enumerator | |
|---|---|
| NONE | No gate. |
| XGATE | X gate (Pauli-X) |
| YGATE | Y gate (Pauli-Y) |
| ZGATE | Z gate (Pauli-Z) |
| HADAMARD | Hadamard gate. |
| CNOT | CNOT gate. |
| SWAP | SWAP gate. |
| SWAP_0Q | Multi-qubit SWAP gate with 0 qubit. |
| CQNOT | Multi-qubit CQNOT gate. |
| QFT | QFT gate. |
| FILE | Gate defined in a file. |
|
strong |
Available types of initial conditions that are propagated through the quantum dynamics.
Defines how the initial quantum state is specified and prepared for simulation or optimization.
|
strong |
|
strong |
Types of objective functions for quantum control optimization.
Defines different metrics for measuring the quality of quantum control.
|
strong |
|
strong |
Types of execution modes.
Defines what type of computation should be performed.
|
strong |
Types of optimization targets for quantum control.
Defines the target quantum state or operation for optimization.
| Enumerator | |
|---|---|
| NONE | No target specified (no optimization) |
| GATE | Gate optimization: \(\rho_{\text{target}} = V\rho(0) V^\dagger\) for V either read from file or chosen from default set of gates. |
| STATE | State preparation: Either read from file, or \(\rho_{\text{target}} = e_m e_m^\dagger\) for some integer \(m\). |
|
strong |
Types of time-stepping methods for evolving quantum states.
Defines the numerical methods used to evolve quantum states in time.
| Enumerator | |
|---|---|
| IMR | Implicit Midpoint Rule (2nd order) |
| IMR4 | Implicit Midpoint Rule with 4th order extrapolation. |
| IMR8 | Implicit Midpoint Rule with 8th order extrapolation. |
| EE | Explicit Euler (1st order) |
| const std::map<std::string, ControlInitializationType> CONTROL_INITIALIZATION_TYPE_MAP |
| const std::map<std::string, ControlType> CONTROL_TYPE_MAP |
| const std::map<std::string, DecoherenceType> DECOHERENCE_TYPE_MAP |
| const std::map<std::string, GateType> GATE_TYPE_MAP |
| const std::map<std::string, InitialConditionType> INITCOND_TYPE_MAP |
| const std::map<std::string, LinearSolverType> LINEAR_SOLVER_TYPE_MAP |
| const std::map<std::string, ObjectiveType> OBJECTIVE_TYPE_MAP |
| const std::map<std::string, OutputType> OUTPUT_TYPE_MAP |
| const std::map<std::string, RunType> RUN_TYPE_MAP |
| const std::map<std::string, TargetType> TARGET_TYPE_MAP |
| const std::map<std::string, TimeStepperType> TIME_STEPPER_TYPE_MAP |