spin_element#

The module contains definitions related to spin qubit elements.

Module Contents#

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 Senseor connected to a tank circuit to perform

class PortsChargeSensor(parent: qcodes.instrument.base.InstrumentBase, name: str, *, gate: str | None = None, readout: str | None = None)[source]#

Bases: qcodes.instrument.InstrumentChannel

Submodule containing the ports.

gate[source]#

Name of the element’s ohmic gate port.

readout[source]#

Name of the element’s readout port.

class PortsSpin(parent: qcodes.instrument.base.InstrumentBase, name: str, *, microwave: str | None = None, gate: str | None = None, readout: str | None = None)[source]#

Bases: PortsChargeSensor

Submodule containing the ports.

microwave[source]#

Name of the element’s microwave port.

class ClocksFrequenciesSensor(parent: qcodes.instrument.base.InstrumentBase, name: str, *, readout: float = math.nan)[source]#

Bases: qcodes.instrument.InstrumentChannel

Submodule containing the clock frequencies specifying the transitions to address.

readout[source]#

Frequency of the ro clock.

class ClocksFrequenciesSpin(parent: qcodes.instrument.base.InstrumentBase, name: str, *, f_larmor: float = math.nan, readout: float = math.nan)[source]#

Bases: ClocksFrequenciesSensor

Submodule containing the clock frequencies specifying the transitions to address.

f_larmor[source]#

Larmor frequency for the spin device element

class RxyGaussian(parent: qcodes.instrument.base.InstrumentBase, name: str, *, amp180: float = math.nan, duration: float = 2e-08, reference_magnitude_dBm: float = math.nan, reference_magnitude_V: float = math.nan, reference_magnitude_A: float = math.nan)[source]#

Bases: qcodes.instrument.InstrumentChannel

Submodule containing parameters for performing an Rxy operation.

The Rxy operation uses a Gaussian pulse.

amp180[source]#

Amplitude required to perform a $pi$ pulse.

duration[source]#

Duration of the control pulse.

class DispersiveMeasurementSpin(parent: qcodes.instrument.base.InstrumentBase, name: str, *, gate_pulse_amp: float = 0, **kwargs)[source]#

Bases: quantify_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[source]#

Amplitude of the gate pulse.

class BasicSpinElement(name: str, **kwargs: Any)[source]#

Bases: quantify_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 quantify_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.

reset: quantify_scheduler.device_under_test.transmon_element.IdlingReset[source]#

Submodule IdlingReset.

rxy: RxyGaussian[source]#

Submodule RxyGaussian.

measure: DispersiveMeasurementSpin[source]#

Submodule DispersiveMeasurementSpin.

pulse_compensation: quantify_scheduler.device_under_test.transmon_element.PulseCompensationModule[source]#

Submodule PulseCompensationModule.

ports: PortsSpin[source]#

Submodule PortsSpin.

clock_freqs: ClocksFrequenciesSpin[source]#

Submodule ClocksFrequenciesSpin.

_generate_config() dict[str, dict[str, quantify_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() quantify_scheduler.backends.graph_compilation.DeviceCompilationConfig[source]#

Generate a valid device config.

The config will be used for the quantify-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: str, **kwargs: Any)[source]#

Bases: quantify_scheduler.device_under_test.device_element.DeviceElement

A device element representing a Charge Senseor connected to a tank circuit to perform dispersive readoud.

Examples

Sensor parameters can be set through submodule attributes

from quantify_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.

measure: DispersiveMeasurementSpin[source]#

Submodule DispersiveMeasurementSpin.

pulse_compensation: quantify_scheduler.device_under_test.transmon_element.PulseCompensationModule[source]#

Submodule PulseCompensationModule.

ports: PortsChargeSensor[source]#

Submodule PortsSpin.

clock_freqs: ClocksFrequenciesSensor[source]#

Submodule ClocksFrequenciesSpin.

_generate_config() dict[str, dict[str, quantify_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() quantify_scheduler.backends.graph_compilation.DeviceCompilationConfig[source]#

Generate a valid device config.

The config will be used for the quantify-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.