spin_pulse.environment.experimental_environment

Description of the noisy environment associated to a hardware.

Classes

ExperimentalEnvironment

Contain a quantum experimental environment with configurable noise models.

Module Contents

class spin_pulse.environment.experimental_environment.ExperimentalEnvironment(hardware_specs, noise_type=NoiseType.PINK, T2S=100.0, TJS=None, duration=2**10, only_idle=False, segment_duration=2**10, seed=None)[source]

Contain a quantum experimental environment with configurable noise models.

- hardware_specs

HardwareSpecs class, that defines the hardware settings.

Type:

class

- noise_type

Type of noise to simulate. Must be “pink”, “white”, or “quasistatic”.

Type:

NoiseType

- T2S

Characteristic time of individual qubits.

Type:

float

- TJS

Characteristic time of coupled two-qubit system at maximal J coupling without noise on the qubit’s frequency.

Type:

float or None

- duration

Total duration of the simulation.

Type:

int

- segment_duration

Duration of each noise segment; used to partition the time trace.

Type:

int

- only_idle

Flag to apply noise only to idle qubits.

Type:

bool

- time_traces

List of time traces for each qubit.

Type:

list[float]

- time_traces_coupling

List of time traces for coupling noise for each pair of qubits (if TJS is set).

Type:

list[float]

- seed

seed integer for random number generation. If not specified, no seed used.

Type:

int or None

Initialize the ExperimentalEnvironment with specified noise characteristics and simulation parameters.

Parameters:
  • hardware_specs (class) – HardwareSpecs class, that defines the hardware settings.

  • noise_type (NoiseType) – Type of noise to simulate. Must be “pink”, “white”, or “quasistatic”.

  • T2S (float) – Characteristic time of individual qubits.

  • TJS (float or None) – Characteristic time of coupled two-qubit system at maximal J coupling with no noise on the qubit’s frequency.

  • duration (int) – Total duration of the simulation.

  • only_idle (bool) – Flag to apply noise only to idle qubits.

  • segment_duration (int) – Duration of each noise segment; used to partition the time trace.

  • seed (int or None) – seed integer for random number generation. If not specified, no seed used.

Raises:

ValueError – If an invalid noise_type is provided.

noise_generator: type[spin_pulse.environment.noise.WhiteNoiseTimeTrace] | type[spin_pulse.environment.noise.QuasistaticNoiseTimeTrace] | type[spin_pulse.environment.noise.PinkNoiseTimeTrace][source]
hardware_specs: spin_pulse.transpilation.hardware_specs.HardwareSpecs[source]
noise_type: spin_pulse.environment.noise.NoiseType[source]
T2S: float = 100.0[source]
TJS: float | None = None[source]
duration: int = 1024[source]
segment_duration: int = 1024[source]
seed: int | None = None[source]
only_idle = False[source]
generate_time_traces()[source]

Generate noise time traces for each qubit’s frequency and J coupling to each pair of qubits if TJS is defined.

Behavior:

For each qubit, instantiate a noise generator using the selected noise_type. The generator uses T2S, duration, and segment_duration to produce a time trace. If TJS is provided, generate additional time traces for J coupling noise for each pair of qubits.

Effects:

Populate self.time_traces with one noise trace per qubit. If TJS is set, populate self.time_traces_coupling with one trace per pair of qubits (n-1 traces for n qubits).