qblox_scheduler.device_under_test.spin_element#

The module contains definitions related to spin qubit elements.

Classes#

PortsChargeSensor

Submodule containing the ports.

PortsSpin

Submodule containing the ports.

ClocksFrequenciesSensor

Submodule containing the clock frequencies specifying the transitions to address.

ClocksFrequenciesSpin

Submodule containing the clock frequencies specifying the transitions to address.

RxyGaussian

Submodule containing parameters for performing an Rxy operation.

DispersiveMeasurementSpin

Submodule containing parameters to perform a measurement.

BasicSpinElement

A device element representing a Loss-DiVincenzo Spin qubit.

ChargeSensor

A device element representing a Charge Sensor connected to a tank circuit to perform

Module Contents#

class PortsChargeSensor(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#

Bases: qblox_scheduler.structure.model.SchedulerSubmodule

Submodule containing the ports.

gate: str = ''[source]#

Name of the element’s ohmic gate port.

readout: str = ''[source]#

Name of the element’s readout port.

_fill_defaults() None[source]#
class PortsSpin(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#

Bases: PortsChargeSensor

Submodule containing the ports.

microwave: str = ''[source]#

Name of the element’s microwave port.

_fill_defaults() None[source]#
class ClocksFrequenciesSensor(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#

Bases: qblox_scheduler.structure.model.SchedulerSubmodule

Submodule containing the clock frequencies specifying the transitions to address.

readout: float = None[source]#

Frequency of the ro clock.

class ClocksFrequenciesSpin(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#

Bases: ClocksFrequenciesSensor

Submodule containing the clock frequencies specifying the transitions to address.

f_larmor: float = None[source]#

Larmor frequency for the spin device element

class RxyGaussian(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.SchedulerSubmodule

Submodule containing parameters for performing an Rxy operation.

The Rxy operation uses a Gaussian pulse.

reference_magnitude[source]#
amp180: float = None[source]#

Amplitude required to perform a $pi$ pulse.

duration: float = None[source]#

Duration of the control pulse.

class DispersiveMeasurementSpin(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.device_under_test.transmon_element.DispersiveMeasurement

Submodule containing parameters to perform a measurement.

The measurement that is performed is using dispersive_measurement_spin().

gate_pulse_amp: float = None[source]#

Amplitude of the gate pulse.

integration_time: float = None[source]#

Integration time for the readout acquisition.

class BasicSpinElement(/, name, **data: Any)[source]#

Bases: qblox_scheduler.device_under_test.device_element.DeviceElement

A device element representing a Loss-DiVincenzo Spin qubit. The element refers to the intrinsic spin-1/2 degree of freedom of individual electrons/holes trapped in quantum dots. The charge of the particle is coupled to a resonator.

Examples

Qubit parameters can be set through submodule attributes

from qblox_scheduler import BasicSpinElement

device_element = BasicSpinElement("q1")

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 spin 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.

element_type: Literal['BasicSpinElement'] = 'BasicSpinElement'[source]#
reset: qblox_scheduler.device_under_test.transmon_element.IdlingReset[source]#
rxy: RxyGaussian[source]#
measure: DispersiveMeasurementSpin[source]#
pulse_compensation: qblox_scheduler.device_under_test.transmon_element.PulseCompensationModule[source]#
ports: PortsSpin[source]#
clock_freqs: ClocksFrequenciesSpin[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 trapped in a quantum dot. A resonator to perform dispersive readout is attached to the gate to perform charge sensing.

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 qubit to be used in isolation.

class ChargeSensor(/, name, **data: Any)[source]#

Bases: qblox_scheduler.device_under_test.device_element.DeviceElement

A device element representing a Charge Sensor connected to a tank circuit to perform dispersive readout.

Examples

Sensor parameters can be set through submodule attributes

from qblox_scheduler import ChargeSensor

sensor = ChargeSensor("s1")

sensor.measure.pulse_amp = 0.25
sensor.measure.pulse_duration = 300e-9
sensor.measure.acq_delay = 430e-9
sensor.measure.integration_time = 1e-6
...
Ellipsis
Parameters:
  • name – The name of the spin 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.

element_type: Literal['ChargeSensor'] = 'ChargeSensor'[source]#
measure: DispersiveMeasurementSpin[source]#
pulse_compensation: qblox_scheduler.device_under_test.transmon_element.PulseCompensationModule[source]#
ports: PortsChargeSensor[source]#
clock_freqs: ClocksFrequenciesSensor[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 qubit to be used in isolation.