Source code for qblox_scheduler.operations.spin_library
# Repository: https://gitlab.com/qblox/packages/software/qblox-scheduler
# Licensed according to the LICENSE file on the main branch
#
# Copyright 2020-2025, Quantify Consortium
# Copyright 2025, Qblox B.V.
"""Spin qubit specific operations for use with the qblox_scheduler."""
from __future__ import annotations
from .operation import Operation
[docs]
class SpinInit(Operation):
"""
Initialize a spin qubit system.
Parameters
----------
qC
The control device element.
qT
The target device element
device_overrides
Device level parameters that override device configuration values
when compiling from circuit to device level.
"""
def __init__(self, qC: str, qT: str, **device_overrides) -> None:
device_element_control, device_element_target = qC, qT
super().__init__(name=f"SpinInit ({device_element_control}, {device_element_target})")
self.data.update(
{
"name": self.name,
"gate_info": {
"unitary": None,
"plot_func": "qblox_scheduler.schedules._visualization."
+ "circuit_diagram.reset",
"tex": r"SpinInit",
"device_elements": [device_element_control, device_element_target],
"operation_type": "SpinInit",
"device_overrides": device_overrides,
},
}
)
self.update()
def __str__(self) -> str:
device_elements = (f"'{x}'" for x in self.data["gate_info"]["device_elements"])
return f"{self.__class__.__name__}({','.join(device_elements)})"