transmon_element ================ .. py:module:: quantify_scheduler.device_under_test.transmon_element .. autoapi-nested-parse:: The module contains definitions related to transmon elements. Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: quantify_scheduler.device_under_test.transmon_element.Ports quantify_scheduler.device_under_test.transmon_element.ClocksFrequencies quantify_scheduler.device_under_test.transmon_element.IdlingReset quantify_scheduler.device_under_test.transmon_element.RxyDRAG quantify_scheduler.device_under_test.transmon_element.PulseCompensationModule quantify_scheduler.device_under_test.transmon_element.DispersiveMeasurement quantify_scheduler.device_under_test.transmon_element.ReferenceMagnitude quantify_scheduler.device_under_test.transmon_element.BasicTransmonElement .. py:class:: Ports(parent: qcodes.instrument.base.InstrumentBase, name: str, **kwargs: float) Bases: :py:obj:`qcodes.instrument.InstrumentChannel` Submodule containing the ports. .. py:attribute:: microwave Name of the element's microwave port. .. py:attribute:: flux Name of the element's flux port. .. py:attribute:: readout Name of the element's readout port. .. py:class:: ClocksFrequencies(parent: qcodes.instrument.base.InstrumentBase, name: str, **kwargs: float) Bases: :py:obj:`qcodes.instrument.InstrumentChannel` Submodule containing the clock frequencies specifying the transitions to address. .. py:attribute:: f01 Frequency of the 01 clock .. py:attribute:: f12 Frequency of the 12 clock .. py:attribute:: readout Frequency of the ro clock. .. py:class:: IdlingReset(parent: qcodes.instrument.base.InstrumentBase, name: str, **kwargs: float) Bases: :py:obj:`qcodes.instrument.InstrumentChannel` Submodule containing parameters for doing a reset by idling. .. py:attribute:: duration Duration of the passive qubit reset (initialization by relaxation). .. py:class:: RxyDRAG(parent: qcodes.instrument.base.InstrumentBase, name: str, **kwargs: float) Bases: :py:obj:`qcodes.instrument.InstrumentChannel` Submodule containing parameters for performing an Rxy operation. The Rxy operation uses a DRAG pulse. .. py:attribute:: amp180 Amplitude required to perform a $\pi$ pulse. .. py:attribute:: motzoi Ratio between the Gaussian Derivative (D) and Gaussian (G) components of the DRAG pulse. .. py:attribute:: duration Duration of the control pulse. .. py:class:: PulseCompensationModule(parent: qcodes.instrument.base.InstrumentBase, name: str, **kwargs: float) Bases: :py:obj:`qcodes.instrument.InstrumentChannel` Submodule containing parameters for performing a PulseCompensation operation. .. py:attribute:: max_compensation_amp Maximum amplitude for the pulse compensation. .. py:attribute:: time_grid Time grid for the duration of the compensating pulse. .. py:attribute:: sampling_rate Sampling rate of the pulses. .. py:class:: DispersiveMeasurement(parent: qcodes.instrument.base.InstrumentBase, name: str, **kwargs: float) Bases: :py:obj:`qcodes.instrument.InstrumentChannel` Submodule containing parameters to perform a measurement. The measurement that is performed is using :func:`~quantify_scheduler.operations.measurement_factories.dispersive_measurement_transmon`. .. py:attribute:: pulse_type Envelope function that defines the shape of the readout pulse prior to modulation. .. py:attribute:: pulse_amp Amplitude of the readout pulse. .. py:attribute:: pulse_duration Duration of the readout pulse. .. py:attribute:: acq_channel Acquisition channel of to this device element. .. py:attribute:: acq_delay 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. .. py:attribute:: integration_time Integration time for the readout acquisition. .. py:attribute:: reset_clock_phase The phase of the measurement clock will be reset by the control hardware at the start of each measurement if ``reset_clock_phase=True``. .. py:attribute:: acq_weights_a The weights for the I path. Used when specifying the ``"NumericalSeparatedWeightedIntegration"`` or the ``"NumericalWeightedIntegration"`` acquisition protocol. .. py:attribute:: acq_weights_b The weights for the Q path. Used when specifying the ``"NumericalSeparatedWeightedIntegration"`` or the ``"NumericalWeightedIntegration"`` acquisition protocol. .. py:attribute:: acq_weights_sampling_rate The sample rate of the weights arrays, in Hertz. Used when specifying the ``"NumericalSeparatedWeightedIntegration"`` or the ``"NumericalWeightedIntegration"`` acquisition protocol. .. py:attribute:: acq_weight_type .. py:attribute:: acq_rotation The phase rotation in degrees required to perform thresholded acquisition. Note that rotation is performed before the threshold. For more details see :class:`~quantify_scheduler.operations.acquisition_library.ThresholdedAcquisition`. .. py:attribute:: acq_threshold The threshold value against which the rotated and integrated result is compared against. For more details see :class:`~quantify_scheduler.operations.acquisition_library.ThresholdedAcquisition`. .. py:attribute:: num_points 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. .. py:class:: ReferenceMagnitude(parent: qcodes.instrument.base.InstrumentBase, name: str, **kwargs: float) Bases: :py:obj:`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. .. py:attribute:: dBm .. py:attribute:: V .. py:attribute:: A .. py:method:: _set_parameter(value: float, parameter: str) -> None Set the value of one of the unit parameters. All the other unit parameters are set to nan. .. py:method:: get_val_unit() -> tuple[float, str] 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 .. py:class:: BasicTransmonElement(name: str, **kwargs) Bases: :py:obj:`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. .. admonition:: Examples Qubit parameters can be set through submodule attributes .. jupyter-execute:: 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) ... :param name: The name of the transmon element. :param 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. .. py:attribute:: reset :type: IdlingReset Submodule :class:`~.IdlingReset`. .. py:attribute:: rxy :type: RxyDRAG Submodule :class:`~.RxyDRAG`. .. py:attribute:: measure :type: DispersiveMeasurement Submodule :class:`~.DispersiveMeasurement`. .. py:attribute:: pulse_compensation :type: PulseCompensationModule Submodule :class:`~.PulseCompensationModule`. .. py:attribute:: ports :type: Ports Submodule :class:`~.Ports`. .. py:attribute:: clock_freqs :type: ClocksFrequencies Submodule :class:`~.ClocksFrequencies`. .. py:method:: _generate_config() -> dict[str, dict[str, quantify_scheduler.backends.graph_compilation.OperationCompilationConfig]] 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. .. py:method:: generate_device_config() -> quantify_scheduler.backends.graph_compilation.DeviceCompilationConfig Generate a valid device config. The config will be used for the quantify-scheduler making use of the :func:`~.circuit_to_device.compile_circuit_to_device_with_config_validation` function. This enables the settings of this qubit to be used in isolation. .. note: This config is only valid for single qubit experiments.