laboneq_applications.qpu_types.twpa

Traveling Wave Parametric Amplifier (TWPA), parameters and operations.

TWPA

Bases: QuantumElement

A class for Traveling Wave Parametric Amplifiers.

PARAMETERS_TYPE = TWPAParameters class-attribute instance-attribute

REQUIRED_SIGNALS = ('acquire', 'measure') class-attribute instance-attribute

calibration()

Generate calibration from the parameters and attached signal lines.

Returns:

Name Type Description
calibration Calibration

Prefilled calibration object from TWPA parameters.

readout_parameters()

Return the measure line and the readout parameters.

Returns:

Name Type Description
line str

The measure line of the qubit.

params dict

The readout parameters.

TWPAOperations

Bases: QuantumOperations

Operations for TWPA.

QUBIT_TYPES = TWPA class-attribute instance-attribute

set_pump_cancellation(twpa, cancellation_attenuation, cancellation_phaseshift, cancellation, calibration=None)

Sets the pump cancellation of the given twpa.

Parameters:

Name Type Description Default
twpa TWPA

The parametric amplifier to set the pump cancellation of.

required
cancellation_attenuation float | SweepParameter

The attenuation to set in dB.

required
cancellation_phaseshift float | SweepParameter

The phase shift to set in degrees.

required
cancellation bool

If True, the cancellation is on and the cancellation source is internal. If False, the cancellation is off and the cancellation source is switched to external for cross-talk reduction.

required
calibration Calibration | None

The experiment calibration to update (see the note below). By default, the calibration from the currently active experiment context is used. If no experiment context is active, for example when using @qubit_experiment(context=False), the calibration object may be passed explicitly.

None

Raises:

Type Description
RuntimeError

If there is an attempt to call set_pump_cancellation more than once on the same signal.

set_pump_frequency(twpa, frequency, calibration=None)

Sets the pump frequency of the given twpa.

Parameters:

Name Type Description Default
twpa TWPA

The parametric amplifier to set the pump frequency of.

required
frequency float | SweepParameter

The frequency to set in Hz.

required
calibration Calibration | None

The experiment calibration to update (see the note below). By default, the calibration from the currently active experiment context is used. If no experiment context is active, for example when using @qubit_experiment(context=False), the calibration object may be passed explicitly.

None

Raises:

Type Description
RuntimeError

If there is an attempt to call set_pump_frequency more than once on the same signal.

set_pump_power(twpa, power, calibration=None)

Sets the pump power of the given twpa.

Parameters:

Name Type Description Default
twpa TWPA

The parametric amplifier to set the pump power of.

required
power float | SweepParameter

The power to set in dBm.

required
calibration Calibration | None

The experiment calibration to update (see the note below). By default, the calibration from the currently active experiment context is used. If no experiment context is active, for example when using @qubit_experiment(context=False), the calibration object may be passed explicitly.

None

Raises:

Type Description
RuntimeError

If there is an attempt to call set_pump_power more than once on the same signal.

set_readout_amplitude(twpa, amplitude, *, calibration=None)

Sets the readout amplitude of the measure line.

Parameters:

Name Type Description Default
twpa TWPA

The twpa associated with the measure line.

required
amplitude float | SweepParameter

The amplitude to set for the measure line in units from 0 (no power) to 1 (full scale).

required
calibration Calibration | None

The experiment calibration to update (see the note below). By default, the calibration from the currently active experiment context is used. If no experiment context is active, for example when using @qubit_experiment(context=False), the calibration object may be passed explicitly.

None

Raises:

Type Description
RuntimeError

If there is an attempt to call set_readout_amplitude more than once on the same signal. See notes below for details.

Notes

Currently set_readout_amplitude is implemented by setting the amplitude of the measure line signal in the experiment calibration. This has two important consequences:

  • Each experiment may only set one amplitude per readout line, although this may be a parameter sweep.

  • The set readout amplitude or sweep applies for the whole experiment regardless of where in the experiment the amplitude is set.

This will be improved in a future release.

set_readout_frequency(twpa, frequency, *, rf=True)

Sets the frequency of the given readout line.

Parameters:

Name Type Description Default
twpa TWPA

The parametric amplifier to set the readout frequency of.

required
frequency float | SweepParameter

The frequency to set in Hz. By default the frequency specified is the RF frequency. The oscillator frequency may be set directly instead by passing rf=False.

required
rf bool

If True, set the RF frequency of the transition. If False, set the oscillator frequency directly instead. The default is to set the RF frequency.

True

Raises:

Type Description
RuntimeError

If there is an attempt to call set_frequency more than once on the same signal. See notes below for details.

Notes

Currently set_frequency is implemented by setting the appropriate oscillator frequencies in the experiment calibration. This has two important consequences:

  • Each experiment may only set one frequency per signal line, although this may be a parameter sweep.

  • The set frequency or sweep applies for the whole experiment regardless of where in the experiment the frequency is set.

This will be improved in a future release.

twpa_acquire(twpa, handle)

Perform an acquisition on the twpa.

The acquire operation performs only an acquisition. If you wish to play a readout pulse and perform an acquisition, use the measure operation.

Parameters:

Name Type Description Default
handle str

The handle to store the acquisition results in.

required
twpa TWPA

The twpa to acquire the signal from.

required

twpa_delay(twpa, time)

Add a delay on the twpa signals.

Parameters:

Name Type Description Default
twpa TWPA

The qubit to delay on.

required
time float

The duration of the delay in seconds.

required

twpa_measure(twpa, handle, readout_pulse=None)

Performs a readout measurement on the given twpa.

Parameters:

Name Type Description Default
twpa TWPA

The twpa to perform the readout measurement on.

required
handle str

The handle to store the acquisition results in.

required
readout_pulse dict | None

A dictionary of overrides for the readout pulse parameters.

The dictionary may contain sweep parameters for the pulse parameters other than function.

If the function parameter is different to the one specified for the qubit, then this override dictionary completely replaces the existing pulse parameters.

Otherwise the values override or extend the existing ones.

None

TWPAParameters

Bases: QuantumParameters

Parameters for the TWPA.

alc_on: bool = True class-attribute instance-attribute

cancellation_attenuation: float | None = None class-attribute instance-attribute

cancellation_on: bool = False class-attribute instance-attribute

cancellation_phase: float | None = None class-attribute instance-attribute

cancellation_source: CancellationSource | None = CancellationSource.EXTERNAL class-attribute instance-attribute

electric_delay: float | None = 0 class-attribute instance-attribute

probe_frequency: float | None = None class-attribute instance-attribute

probe_on: bool = False class-attribute instance-attribute

probe_power: float | None = None class-attribute instance-attribute

pump_filter_on: bool = True class-attribute instance-attribute

pump_frequency: float | None = None class-attribute instance-attribute

pump_on: bool = True class-attribute instance-attribute

pump_power: float | None = None class-attribute instance-attribute

readout_amplitude: float | None = 0.5 class-attribute instance-attribute

readout_frequency: float | None property

Readout baseband frequency.

readout_integration_delay: float | None = 2e-08 class-attribute instance-attribute

readout_length: float | None = 5e-06 class-attribute instance-attribute

readout_lo_frequency: float = None class-attribute instance-attribute

readout_pulse: dict = attrs.field(factory=lambda: {'function': 'const'}) class-attribute instance-attribute

readout_range_in: float | None = 10 class-attribute instance-attribute

readout_range_out: float | None = 5 class-attribute instance-attribute

voltage_bias: float | None = 0 class-attribute instance-attribute

demo_platform(n_twpas)

Return a demo TWPA QPU with the specified number of TWPAS.

The returned setup consists of:

  • 1 SHFPPC
  • 1 SHFQA/SHFQC

The maximum number of ParamAmplifiers is 4 (which is the number of measure lines on the SHFQA).

The TWPAs share a single multiplexed readout line.

Parameters:

Name Type Description Default
n_twpas int

Number of TWPAS to include in the QPU.

required

Returns:

Type Description
QuantumPlatform

The QPU.