16#define M_PI 3.14159265358979323846
TargetType
Types of optimization targets for quantum control.
Definition defs.hpp:78
@ GATE
Gate optimization: for V either read from file or chosen from default set of gates.
@ STATE
State preparation: Either read from file, or for some integer .
@ NONE
No target specified (no optimization)
RunType
Types of execution modes.
Definition defs.hpp:128
@ SIMULATION
Runs one simulation to compute the objective function (forward)
@ GRADIENT
Runs a simulation followed by the adjoint for gradient computation (forward & backward)
@ NONE
Don't run anything.
@ OPTIMIZATION
Runs optimization iterations.
@ EVALCONTROLS
Only evaluates the current control pulses (no simulation)
DecoherenceType
Available Lindblad operator types for open quantum systems, or NONE for closed quantum systems.
Definition defs.hpp:31
@ BOTH
Both decay and dephasing operators.
@ DEPHASE
Dephasing operators only.
@ NONE
No Lindblad operators (closed system)
@ DECAY
Decay operators only.
const std::map< std::string, OutputType > OUTPUT_TYPE_MAP
Definition defs.hpp:239
ObjectiveType
Types of objective functions for quantum control optimization.
Definition defs.hpp:95
@ JMEASURE
Pure state measurement: for observable .
@ JFROBENIUS
Weighted Frobenius norm: , where = purity of .
@ JTRACE
Weighted Hilbert-Schmidt overlap: , where = purity of .
OutputType
Types of output files to be written.
Definition defs.hpp:231
@ EXPECTED_ENERGY_COMPOSITE
Expected energy composite.
@ POPULATION_COMPOSITE
Population composite.
@ EXPECTED_ENERGY
Expected energy.
const std::map< std::string, GateType > GATE_TYPE_MAP
Definition defs.hpp:214
ControlType
Types of control parameterizations.
Definition defs.hpp:149
@ BSPLINE
Control pulses are parameterized with 2nd order BSpline basis functions with carrier waves.
@ BSPLINE0
Control pulses are parameterized with Zeroth order Bspline (piece-wise constant)
@ BSPLINEAMP
Paramerizes only the amplitudes of the control pulse with 2nd order BSpline basis functions.
InitialConditionType
Available types of initial conditions that are propagated through the quantum dynamics.
Definition defs.hpp:51
@ PERFORMANCE
Performance test configuration.
@ THREESTATES
Three-state system.
@ ENSEMBLE
Ensemble of states.
@ FROMFILE
Read initial condition from file.
@ NPLUSONE
N+1 state system.
@ PRODUCT_STATE
Product state initial condition.
@ DIAGONAL
Diagonal density matrix.
GateType
Types of quantum gates used in quantum control.
Definition defs.hpp:200
@ CQNOT
Multi-qubit CQNOT gate.
@ SWAP_0Q
Multi-qubit SWAP gate with 0 qubit.
@ FILE
Gate defined in a file.
const std::map< std::string, InitialConditionType > INITCOND_TYPE_MAP
Definition defs.hpp:62
ControlInitializationType
Types of control initializations.
Definition defs.hpp:166
const std::map< std::string, DecoherenceType > DECOHERENCE_TYPE_MAP
Definition defs.hpp:38
TimeStepperType
Types of time-stepping methods for evolving quantum states.
Definition defs.hpp:183
@ IMR4
Implicit Midpoint Rule with 4th order extrapolation.
@ IMR
Implicit Midpoint Rule (2nd order)
@ EE
Explicit Euler (1st order)
@ IMR8
Implicit Midpoint Rule with 8th order extrapolation.
const std::map< std::string, TimeStepperType > TIME_STEPPER_TYPE_MAP
Definition defs.hpp:190
LinearSolverType
Available types for solving linear systems at each time step.
Definition defs.hpp:113
@ NEUMANN
Uses Neuman power iterations.
@ GMRES
Uses Petsc's GMRES solver (default)
const std::map< std::string, TargetType > TARGET_TYPE_MAP
Definition defs.hpp:84
const std::map< std::string, ControlType > CONTROL_TYPE_MAP
Definition defs.hpp:156
const std::map< std::string, ObjectiveType > OBJECTIVE_TYPE_MAP
Definition defs.hpp:101
const std::map< std::string, RunType > RUN_TYPE_MAP
Definition defs.hpp:136
const std::map< std::string, ControlInitializationType > CONTROL_INITIALIZATION_TYPE_MAP
Definition defs.hpp:172
const std::map< std::string, LinearSolverType > LINEAR_SOLVER_TYPE_MAP
Definition defs.hpp:118