Source code for quantify_scheduler.operations.shared_native_library
# Repository: https://gitlab.com/quantify-os/quantify-scheduler
# Licensed according to the LICENCE file on the main branch
"""Module containing shared native operations."""
from .operation import Operation
[docs]
class SpectroscopyOperation(Operation):
"""
Spectroscopy operation to find energy between computational basis states.
Spectroscopy operations can be supported by various qubit types, but not all of
them. They are typically translated into a spectroscopy pulse by the quantum
device. The frequency is taken from a clock of the device element.
Parameters
----------
qubit
The target qubit.
"""
def __init__(
self,
qubit: str,
**device_overrides,
) -> None:
super().__init__(name=f"Spectroscopy operation {qubit}")
self.data.update(
{
"gate_info": {
"unitary": None,
"plot_func": "quantify_scheduler.schedules._visualization"
".circuit_diagram.pulse_modulated",
"tex": r"Spectroscopy operation",
"qubits": [qubit],
"operation_type": "spectroscopy_operation",
"device_overrides": device_overrides,
},
}
)
self._update()
def __str__(self) -> str:
gate_info = self.data["gate_info"]
qubit = gate_info["qubits"][0]
return f'{self.__class__.__name__}(qubit="{qubit}")'