spin_pulse.transpilation.hardware_specs

Description of the hardware to simulate circuit execution.

Classes

Shape

Enumeration of pulse envelope shapes.

HardwareSpecs

Defines the hardware specifications for a spin qubit device model.

Module Contents

class spin_pulse.transpilation.hardware_specs.Shape(*args, **kwds)[source]

Bases: enum.Enum

Enumeration of pulse envelope shapes.

This enum defines the functional form of the pulse envelope used for control operations in spin-qubit pulse sequences.

GAUSSIAN = 'gaussian'[source]

Gaussian-shaped pulse envelope.

SQUARE = 'square'[source]

Square (rectangular) pulse envelope.

class spin_pulse.transpilation.hardware_specs.HardwareSpecs(num_qubits, B_field, delta, J_coupling, rotation_shape, ramp_duration=1, coeff_duration=5, dynamical_decoupling=None, optim=0)[source]

Defines the hardware specifications for a spin qubit device model.

This class stores all physical and control parameters required to build pulse instructions, generate rotation gates, and configure backend-level compilation. It also defines the available couplings, supported gate set, and optional dynamical decoupling strategy. The specifications in this object determine how qubit operations and timing constraints are modeled throughout the simulation workflow.

- rotation_generator

Class used to generate rotation instructions based on the selected pulse shape.

Type:

RotationInstruction

- num_qubits

Number of qubits in the device model.

Type:

int

- J_coupling

Maximum coupling strength between adjacent qubits.

Type:

float

- fields

Dictionary mapping interaction types (“x”, “y”, “z”, “Heisenberg”) to their corresponding field strengths.

Type:

dict

- rotation_shape

Shape of the pulses used for qubit control.

Type:

Shape

- coeff_duration

Duration coefficient for Gaussian pulses when applicable.

Type:

int

- ramp_duration

Duration of the ramp used in square pulses.

Type:

int

- first_pass

Preset first-stage Qiskit pass manager.

Type:

PassManager

- second_pass

Additional optimization pass manager.

Type:

PassManager

- dynamical_decoupling

Optional dynamical decoupling sequence applied to idle qubits.

Type:

DynamicalDecoupling | None

Initialize the HardwareSpecs object that defines the hardware specifications.

Parameters:
  • num_qubits (int) – Number of qubits considered.

  • B_field (float) – Maximal magnetic field strength.

  • delta (float) – Maximal energy difference between two qubits.

  • J_coupling (float) – Maximal coupling strength between two qubit.

  • rotation_shape (Shape) – Pulse shape used for qubit manipulation.

  • ramp_duration (int, optional) – Duration of the pulse ramp for square pulse. Default is 1.

  • coeff_duration (int, optional) – Duration coefficient for Gaussian pulses. Default is 5.

  • dynamical_decoupling (DynamicalDecoupling, optional) – If not None, defines the dynamical decoupling sequence to be applied to Idle qubits.

  • optim (int)

rotation_generator: type[spin_pulse.transpilation.instructions.RotationInstruction][source]
num_qubits: int[source]
J_coupling: float[source]
fields: dict[str, float][source]
rotation_shape: Shape[source]
ramp_duration: int = 1[source]
first_pass[source]
second_pass[source]
dynamical_decoupling: spin_pulse.transpilation.dynamical_decoupling.DynamicalDecoupling | None = None[source]
gate_transpile(circ)[source]

Transpile a quantum circuit into an ISA circuit using hardware specifications.

Parameters:

circ (qiskit.QuantumCircuit) – The quantum circuit to be converted.

Returns:

The ISA quantum circuit composed of spin qubit native gates.

Return type:

qiskit.QuantumCircuit