qat.model.device module

class AcquirePulseChannel(**data)

Bases: PulseChannel

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

acquire: CalibratableAcquire
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class CalibratableAcquire(**data)

Bases: NoExtraFieldsModel

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

delay: CalibratablePositiveFloat
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

sync: bool
use_weights: bool
weights: list[float, complex]
width: CalibratablePositiveFloat
class CalibratablePulse(**data)

Bases: NoExtraFieldsModel

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

amp: float
amp_setup: float
drag: float
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

phase: float
rise: float
waveform_type: WaveformType
width: CalibratablePositiveFloat
class Component(**data)

Bases: NoExtraFieldsModel

Base class for any logical object which can act as a target of a quantum action - a Qubit or various channels for a simple example.

Parameters:

uuid – The unique string representation of the component.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

property is_calibrated
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

uuid: str
class CrossResonanceCancellationPulseChannel(**data)

Bases: PulseChannel

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

auxiliary_qubit: QubitId
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class CrossResonancePulseChannel(**data)

Bases: PulseChannel

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

auxiliary_qubit: QubitId
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

zx_pi_4_pulse: CalibratablePulse
class DrivePulseChannel(**data)

Bases: PulseChannel

The pulse channel that drives the qubit from |0> -> |1>.

Parameters:

pulse – Calibratable parameters for the X(pi/2) drive pulse.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pulse: CalibratablePulse
class FreqShiftPulseChannel(**data)

Bases: PulseChannel

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class MeasureAcquirePulseChannel(**data)

Bases: MeasurePulseChannel, AcquirePulseChannel

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class MeasurePulseChannel(**data)

Bases: PulseChannel

The pulse channel that measures the quantum state of the resonator.

Parameters:

pulse – Calibratable parameters for the measure pulse.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pulse: CalibratablePulse
class PhysicalBaseband(**data)

Bases: Component

Models the Local Oscillator (LO) used with a mixer to change the frequency of a carrier signal.

Parameters:
  • frequency – The frequency of the LO.

  • if_frequency – The intermediate frequency (IF) resulting from mixing the baseband with the carrier signal.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

frequency: CalibratablePositiveFloat
if_frequency: CalibratablePositiveFloat
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class PhysicalChannel(**data)

Bases: Component

Models a physical channel that can carry one or multiple pulses.

Attributes:

baseband: The physical baseband.

sample_time: The rate at which the pulse is sampled. block_size: The number of samples within a single block. bias: The bias in voltages V_I / V_Q for the I and Q components.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

baseband: PhysicalBaseband
bias: float | complex
block_size: Optional[int]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

sample_time: CalibratablePositiveFloat
class PulseChannel(**data)

Bases: Component

Models a pulse channel on a particular device.

Parameters:
  • physical_channel – Physical channel that carries the pulse.

  • frequency – Frequency of the pulse.

  • imbalance – Ratio between I and Q AC voltage that is sent out of the FPGA.

  • phase_iq_offset – Phase offset between the I and Q plane for AC voltage that is send out the FPGA.

  • scale – Scale factor for mapping the voltage of the pulse to frequencies.

  • fixed_if – Flag which determines if the intermediate frequency is fixed.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

fixed_if: bool
frequency: CalibratablePositiveFloat
imbalance: float | complex
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

phase_iq_offset: float | complex
property pulse_type
scale: float | complex
class PulseChannelSet(**data)

Bases: NoExtraFieldsModel

Encapsulates a set of pulse channels.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

property is_calibrated
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pulse_channel_with_id(id_)
class Qubit(**data)

Bases: Component

Models a superconducting qubit on a chip, and holds all information relating to it.

Parameters:
  • physical_channel – The physical channel that carries the pulses to the physical qubit.

  • pulse_channels – The pulse channels for controlling the qubit.

  • resonator – The measure device of the qubit.

  • pulse – Calibrated parameters for the X(pi/2) pulse.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

property acquire_pulse_channel
property all_pulse_channels
property cross_resonance_cancellation_pulse_channels
property cross_resonance_pulse_channels
discriminator: float
property drive_pulse_channel
property freq_shift_pulse_channel
mean_z_map_args: list[float]
property measure_pulse_channel
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

physical_channel: PhysicalChannel
pulse_channels: QubitPulseChannels
resonator: Resonator
property second_state_pulse_channel
class QubitPulseChannels(**data)

Bases: PulseChannelSet

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

property all_pulse_channels
cross_resonance_cancellation_channels: FrozenDict[QubitId, CrossResonanceCancellationPulseChannel]
cross_resonance_channels: FrozenDict[QubitId, CrossResonancePulseChannel]
drive: DrivePulseChannel
freq_shift: FreqShiftPulseChannel
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pulse_channel_with_id(id_)
second_state: SecondStatePulseChannel
classmethod validate_channels_qubit_mapping(channels)
validate_cross_resonance_pulse_channels()
class Resonator(**data)

Bases: Component

Models a resonator on a chip. Can be connected to multiple qubits.

Parameters:
  • physical_channel – The physical channel that carries the pulses to the physical resonator.

  • pulse_channels – The pulse channels for controlling the resonator.

  • measure_pulse – Calibrated parameters for the measure pulse on the resonator.

  • acquire – Calibrated parameters for the acquire instruction.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

property acquire_pulse_channel
property all_pulse_channels
property measure_pulse_channel
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

physical_channel: PhysicalChannel
pulse_channels: ResonatorPulseChannels
class ResonatorPulseChannels(**data)

Bases: PulseChannelSet

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

acquire: AcquirePulseChannel
property all_pulse_channels
measure: MeasurePulseChannel
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class SecondStatePulseChannel(**data)

Bases: PulseChannel

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].