transmon_element#

The module contains definitions related to transmon elements.

Module Contents#

Classes#

Ports

Submodule containing the ports.

ClocksFrequencies

Submodule containing the clock frequencies specifying the transitions to address.

IdlingReset

Submodule containing parameters for doing a reset by idling.

RxyDRAG

Submodule containing parameters for performing an Rxy operation.

PulseCompensationModule

Submodule containing parameters for performing a PulseCompensation operation.

DispersiveMeasurement

Submodule containing parameters to perform a measurement.

ReferenceMagnitude

Submodule which describes an amplitude / power reference level.

BasicTransmonElement

A device element representing a single fixed-frequency transmon qubit.

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

Bases: qcodes.instrument.InstrumentChannel

Submodule containing the ports.

microwave[source]#

Name of the element’s microwave port.

flux[source]#

Name of the element’s flux port.

readout[source]#

Name of the element’s readout port.

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

Bases: qcodes.instrument.InstrumentChannel

Submodule containing the clock frequencies specifying the transitions to address.

f01[source]#

Frequency of the 01 clock

f12[source]#

Frequency of the 12 clock

readout[source]#

Frequency of the ro clock.

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

Bases: qcodes.instrument.InstrumentChannel

Submodule containing parameters for doing a reset by idling.

duration[source]#

Duration of the passive qubit reset (initialization by relaxation).

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

Bases: qcodes.instrument.InstrumentChannel

Submodule containing parameters for performing an Rxy operation.

The Rxy operation uses a DRAG pulse.

amp180[source]#

Amplitude required to perform a $pi$ pulse.

motzoi[source]#

Ratio between the Gaussian Derivative (D) and Gaussian (G) components of the DRAG pulse.

duration[source]#

Duration of the control pulse.

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

Bases: qcodes.instrument.InstrumentChannel

Submodule containing parameters for performing a PulseCompensation operation.

max_compensation_amp[source]#

Maximum amplitude for the pulse compensation.

time_grid[source]#

Time grid for the duration of the compensating pulse.

sampling_rate[source]#

Sampling rate of the pulses.

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

Bases: qcodes.instrument.InstrumentChannel

Submodule containing parameters to perform a measurement.

The measurement that is performed is using dispersive_measurement_transmon().

pulse_type[source]#

Envelope function that defines the shape of the readout pulse prior to modulation.

pulse_amp[source]#

Amplitude of the readout pulse.

pulse_duration[source]#

Duration of the readout pulse.

acq_channel[source]#

Acquisition channel of to this device element.

acq_delay[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.

integration_time[source]#

Integration time for the readout acquisition.

reset_clock_phase[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[source]#

The weights for the I path. Used when specifying the "NumericalSeparatedWeightedIntegration" or the "NumericalWeightedIntegration" acquisition protocol.

acq_weights_b[source]#

The weights for the Q path. Used when specifying the "NumericalSeparatedWeightedIntegration" or the "NumericalWeightedIntegration" acquisition protocol.

acq_weights_sampling_rate[source]#

The sample rate of the weights arrays, in Hertz. Used when specifying the "NumericalSeparatedWeightedIntegration" or the "NumericalWeightedIntegration" acquisition protocol.

acq_weight_type[source]#
acq_rotation[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[source]#

The threshold value against which the rotated and integrated result is compared against. For more details see ThresholdedAcquisition.

num_points[source]#

Number of data points to be acquired during the measurement.

This parameter defines how many discrete data points will be collected in the course of a single measurement sequence.

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

Bases: qcodes.instrument.InstrumentChannel

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

dBm[source]#
V[source]#
A[source]#
_set_parameter(value: float, parameter: str) None[source]#

Set the value of one of the unit parameters.

All the other unit parameters are set to nan.

get_val_unit() tuple[float, str][source]#

Get the value of the amplitude reference and its unit, if one is defined.

If a value is defined for more than one unit, raise an exception.

Returns:

  • value – The value of the amplitude reference

  • unit – The unit in which this value is specified

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

Bases: quantify_scheduler.device_under_test.device_element.DeviceElement

A 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 quantify_scheduler import BasicTransmonElement

qubit = BasicTransmonElement("q3")

qubit.rxy.amp180(0.1)
qubit.measure.pulse_amp(0.25)
qubit.measure.pulse_duration(300e-9)
qubit.measure.acq_delay(430e-9)
qubit.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]#

Submodule IdlingReset.

rxy: RxyDRAG[source]#

Submodule RxyDRAG.

measure: DispersiveMeasurement[source]#

Submodule DispersiveMeasurement.

pulse_compensation: PulseCompensationModule[source]#

Submodule PulseCompensationModule.

ports: Ports[source]#

Submodule Ports.

clock_freqs: ClocksFrequencies[source]#

Submodule ClocksFrequencies.

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