Skip to content
Pasqal Documentation

SimConfig

class pulser_simulation.SimConfig(noise=(), runs=15, samples_per_run=5, temperature=50.0, laser_waist=175.0, amp_sigma=0.05, eta=0.005, epsilon=0.01, epsilon_prime=0.05, relaxation_rate=0.01, dephasing_rate=0.05, hyperfine_dephasing_rate=0.001, depolarizing_rate=0.05, eff_noise_rates=<factory>, eff_noise_opers=<factory>, solver_options=None)

Bases: object

Specifies a simulation’s configuration.

Note

Being a frozen dataclass, the configuration chosen upon instantiation cannot be changed later on.

Parameters:
  • noise (Literal['leakage', 'doppler', 'amplitude', 'SPAM', 'dephasing', 'relaxation', 'depolarizing', 'eff_noise'] | tuple[Literal['leakage', 'doppler', 'amplitude', 'SPAM', 'dephasing', 'relaxation', 'depolarizing', 'eff_noise'], ...], default: ()) –

    Types of noises to be used in the simulation. You may specify just one, or a tuple of the allowed noise types:

    • ”leakage”: Adds an error state ‘x’ to the computational basis, that can interact with the other states via an effective noise channel (which must be defined).

    • ”relaxation”: Relaxation from the Rydberg to the ground state.

    • ”dephasing”: Random phase (Z) flip.

    • ”depolarizing”: Quantum noise where the state (rho) is turned into a mixed state I/2 at a rate gamma (in rad/µs).

    • ”eff_noise”: General effective noise channel defined by the set of collapse operators eff_noise_opers and the corresponding rates eff_noise_rates (in rad/µs).

    • ”doppler”: Local atom detuning due to finite speed of the atoms and Doppler effect with respect to laser frequency.

    • ”amplitude”: Gaussian damping due to finite laser waist

    • ”SPAM”: SPAM errors. Defined by eta, epsilon and epsilon_prime.

  • eta (float, default: 0.005) – Probability of each atom to be badly prepared.

  • epsilon (float, default: 0.01) – Probability of false positives.

  • epsilon_prime (float, default: 0.05) – Probability of false negatives.

  • runs (int, default: 15) – Number of runs needed : each run draws a new random noise.

  • samples_per_run (int, default: 5) – Number of samples per noisy run. Useful for cutting down on computing time, but unrealistic.

  • temperature (float, default: 50.0) – Temperature, set in µK, of the Rydberg array. Also sets the standard deviation of the speed of the atoms.

  • laser_waist (float, default: 175.0) – Waist of the gaussian laser, set in µm, in global pulses.

  • amp_sigma (float, default: 0.05) – Dictates the fluctuations in amplitude as a standard deviation of a normal distribution centered in 1.

  • solver_options (dict[str, Any] | None, default: None) – Options for the qutip solver.

Attributes

amp_sigma

dephasing_rate

depolarizing_rate

doppler_sigma

Standard deviation for Doppler shifting due to thermal motion.

epsilon

epsilon_prime

eta

hyperfine_dephasing_rate

laser_waist

noise

relaxation_rate

runs

samples_per_run

solver_options

spam_dict

A dictionary combining the SPAM error parameters.

supported_noises

Return the noises implemented on pulser.

temperature

with_leakage

Whether or not 'leakage' is included in the noise types.

eff_noise_rates

eff_noise_opers

Methods

from_noise_model

Creates a SimConfig from a NoiseModel.

to_noise_model

Creates a NoiseModel from the SimConfig.

Signatures

classmethod from_noise_model(noise_model)

Creates a SimConfig from a NoiseModel.

Return type:

TypeVar(T, bound= SimConfig)

to_noise_model()

Creates a NoiseModel from the SimConfig.

Return type:

NoiseModel

property doppler_sigma: float

Standard deviation for Doppler shifting due to thermal motion.

property spam_dict: dict[str, float]

A dictionary combining the SPAM error parameters.

property supported_noises: dict

Return the noises implemented on pulser.

property with_leakage: bool

Whether or not ‘leakage’ is included in the noise types.