qblox_scheduler.device_under_test.transmon_element#
The module contains definitions related to transmon elements.
Classes#
Submodule containing the ports. |
|
Submodule containing the clock frequencies specifying the transitions to address. |
|
Submodule containing parameters for doing a reset by idling. |
|
Submodule containing parameters for performing an Rxy operation. |
|
Submodule containing parameters for performing a PulseCompensation operation. |
|
Submodule containing parameters to perform a measurement. |
|
Submodule which describes an amplitude / power reference level. |
|
A device element representing a single fixed-frequency transmon qubit. |
Module Contents#
- class Ports(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleSubmodule containing the ports.
- class ClocksFrequencies(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleSubmodule containing the clock frequencies specifying the transitions to address.
- class IdlingReset(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleSubmodule containing parameters for doing a reset by idling.
- class RxyDRAG(name: str, parent: qblox_scheduler.device_under_test.device_element.DeviceElement | None = None, *, reference_magnitude_dBm: float = math.nan, reference_magnitude_V: float = math.nan, reference_magnitude_A: float = math.nan, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleSubmodule containing parameters for performing an Rxy operation.
The Rxy operation uses a DRAG pulse.
- beta: float = None[source]#
Ratio between the Gaussian Derivative (D) and Gaussian (G) components of the DRAG pulse.
- reference_magnitude: ReferenceMagnitude | None = None[source]#
- class PulseCompensationModule(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleSubmodule containing parameters for performing a PulseCompensation operation.
- class DispersiveMeasurement(name: str, parent: qblox_scheduler.device_under_test.device_element.DeviceElement | None = None, *, reference_magnitude_dBm: float = math.nan, reference_magnitude_V: float = math.nan, reference_magnitude_A: float = math.nan, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleSubmodule containing parameters to perform a measurement.
The measurement that is performed is using
dispersive_measurement_transmon().- pulse_type: Literal['SquarePulse'] = None[source]#
Envelope function that defines the shape of the readout pulse prior to modulation.
- acq_channel: collections.abc.Hashable = None[source]#
Acquisition channel of to this device element.
- acq_delay: float = None[source]#
Delay between the start of the readout pulse and the start of the acquisition. Note that some hardware backends do not support starting a pulse and the acquisition in the same clock cycle making 0 delay an invalid value.
- reset_clock_phase: bool = None[source]#
The phase of the measurement clock will be reset by the control hardware at the start of each measurement if
reset_clock_phase=True.
- acq_weights_a: qblox_scheduler.structure.types.NDArray | None = None[source]#
The weights for the I path. Used when specifying the
"NumericalSeparatedWeightedIntegration"or the"NumericalWeightedIntegration"acquisition protocol.
- acq_weights_b: qblox_scheduler.structure.types.NDArray | None = None[source]#
The weights for the Q path. Used when specifying the
"NumericalSeparatedWeightedIntegration"or the"NumericalWeightedIntegration"acquisition protocol.
- acq_weights_sampling_rate: float = None[source]#
The sample rate of the weights arrays, in Hertz. Used when specifying the
"NumericalSeparatedWeightedIntegration"or the"NumericalWeightedIntegration"acquisition protocol.
- acq_rotation: float = None[source]#
The phase rotation in degrees required to perform thresholded acquisition. Note that rotation is performed before the threshold. For more details see
ThresholdedAcquisition.
- acq_threshold: float = None[source]#
The threshold value against which the rotated and integrated result is compared against. For more details see
ThresholdedAcquisition.
- class ReferenceMagnitude(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleSubmodule which describes an amplitude / power reference level.
The reference level is with respect to which pulse amplitudes are defined. This can be specified in units of “V”, “dBm” or “A”.
Only one unit parameter may have a defined value at a time. If we call the set method for any given unit parameter, all other unit parameters will be automatically set to nan.
- class BasicTransmonElement(/, name, **data: Any)[source]#
Bases:
qblox_scheduler.device_under_test.device_element.DeviceElementA device element representing a single fixed-frequency transmon qubit.
The qubit is coupled to a readout resonator.
Examples
Qubit parameters can be set through submodule attributes
from qblox_scheduler import BasicTransmonElement device_element = BasicTransmonElement("q3") device_element.rxy.amp180 = 0.1 device_element.measure.pulse_amp = 0.25 device_element.measure.pulse_duration = 300e-9 device_element.measure.acq_delay = 430e-9 device_element.measure.integration_time = 1e-6 ...
Ellipsis
- Parameters:
name – The name of the transmon element.
kwargs – Can be used to pass submodule initialization data by using submodule name as keyword and as argument a dictionary containing the submodule parameter names and their value.
- reset: IdlingReset[source]#
- measure: DispersiveMeasurement[source]#
- pulse_compensation: PulseCompensationModule[source]#
- clock_freqs: ClocksFrequencies[source]#
- _generate_config() dict[str, dict[str, qblox_scheduler.backends.graph_compilation.OperationCompilationConfig]][source]#
Generate part of the device configuration specific to a single qubit.
This method is intended to be used when this object is part of a device object containing multiple elements.
- generate_device_config() qblox_scheduler.backends.graph_compilation.DeviceCompilationConfig[source]#
Generate a valid device config.
The config will be used for the qblox-scheduler making use of the
compile_circuit_to_device_with_config_validation()function.This enables the settings of this device element to be used in isolation.