Skip to content

bloqade.cirq_utils.noise.model.GeminiOneZoneNoiseModel

← Module overview

classGeminiOneZoneNoiseModelsource

bloqade.cirq_utils.noise.model.GeminiOneZoneNoiseModel

Bases: GeminiNoiseModelABC

A Cirq-compatible noise model for a one-zone implementation of the Gemini architecture.

Signature
class GeminiOneZoneNoiseModel(check_input_circuit: bool = True, scaling_factor: float = 1.0, cz_paired_correlated_rates: np.ndarray | None = None, cz_paired_error_probabilities: dict | None = None, parallelize_circuit: bool = False, *, local_px: float = 0.0004102, local_py: float = 0.0004102, local_pz: float = 0.0004112, local_loss_prob: float = 0.0, local_unaddressed_px: float = 2e-07, local_unaddressed_py: float = 2e-07, local_unaddressed_pz: float = 1.2e-06, local_unaddressed_loss_prob: float = 0.0, global_px: float = 6.5e-05, global_py: float = 6.5e-05, global_pz: float = 6.5e-05, global_loss_prob: float = 0.0, cz_paired_gate_px: float = 0.0006549, cz_paired_gate_py: float = 0.0006549, cz_paired_gate_pz: float = 0.003184, cz_gate_loss_prob: float = 0.0, cz_unpaired_gate_px: float = 0.0005149, cz_unpaired_gate_py: float = 0.0005149, cz_unpaired_gate_pz: float = 0.002185, cz_unpaired_loss_prob: float = 0.0, mover_px: float = 0.000806, mover_py: float = 0.000806, mover_pz: float = 0.002458, move_loss_prob: float = 0.0, sitter_px: float = 0.0003066, sitter_py: float = 0.0003066, sitter_pz: float = 0.0004639, sit_loss_prob: float = 0.0)

This model introduces custom asymmetric depolarizing noise for both single- and two-qubit gates depending on whether operations are global, local, or part of a CZ interaction. Since the model assumes all atoms are in the entangling zone, errors are applied that stem from application of Rydberg error, even for qubits not actively involved in a gate operation.

Note, that the noise applied to entangling pairs is correlated.

Parameters

NameTypeDefaultDescription
check_input_circuitboolTrue
scaling_factorfloat1.0
cz_paired_correlated_ratesnp.ndarray | NoneNone
cz_paired_error_probabilitiesdict | NoneNone
parallelize_circuitboolFalse
local_pxfloat0.0004102
local_pyfloat0.0004102
local_pzfloat0.0004112
local_loss_probfloat0.0
local_unaddressed_pxfloat2e-07
local_unaddressed_pyfloat2e-07
local_unaddressed_pzfloat1.2e-06
local_unaddressed_loss_probfloat0.0
global_pxfloat6.5e-05
global_pyfloat6.5e-05
global_pzfloat6.5e-05
global_loss_probfloat0.0
cz_paired_gate_pxfloat0.0006549
cz_paired_gate_pyfloat0.0006549
cz_paired_gate_pzfloat0.003184
cz_gate_loss_probfloat0.0
cz_unpaired_gate_pxfloat0.0005149
cz_unpaired_gate_pyfloat0.0005149
cz_unpaired_gate_pzfloat0.002185
cz_unpaired_loss_probfloat0.0
mover_pxfloat0.000806
mover_pyfloat0.000806
mover_pzfloat0.002458
move_loss_probfloat0.0
sitter_pxfloat0.0003066
sitter_pyfloat0.0003066
sitter_pzfloat0.0004639
sit_loss_probfloat0.0

Attributes

NameTypeDefaultDescription
parallelize_circuitboolFalse

methodnoisy_momentsource

bloqade.cirq_utils.noise.model.GeminiOneZoneNoiseModel.noisy_moment

def noisy_moment(moment, system_qubits)

Return noisy operations for one moment in the one-zone model.

Parameters

NameTypeDescription
moment—
system_qubits—
source

methodnoisy_momentssource

bloqade.cirq_utils.noise.model.GeminiOneZoneNoiseModel.noisy_moments

Signature
def noisy_moments(moments: Iterable[cirq.Moment], system_qubits: Sequence[cirq.Qid]) -> Sequence[cirq.OP_TREE]

Adds possibly stateful noise to a series of moments.

Parameters

NameTypeDescription
momentsIterable[cirq.Moment]The moments to add noise to.
system_qubitsSequence[cirq.Qid]A list of all qubits in the system.

Returns

(Sequence[cirq.OP_TREE], Sequence[cirq.OP_TREE])A sequence of OP_TREEEs, with the k'th tree corresponding to the noisy operations for the k'th moment.

source