Skip to content

CZ leakage amplification calibration nodes (33a / 33b)#531

Merged
Deepakkhurrana merged 12 commits into
mainfrom
feature/leakage_calibration
Jun 29, 2026
Merged

CZ leakage amplification calibration nodes (33a / 33b)#531
Deepakkhurrana merged 12 commits into
mainfrom
feature/leakage_calibration

Conversation

@Deepakkhurrana

Copy link
Copy Markdown
Contributor

Summary

Adds two CZ coupler-amplitude calibration nodes that tune coupler_flux_pulse.amplitude by sweeping amplitude against repeated CZ cycles and selecting the value that best preserves |11⟩.

Why

CZ calibration on tunable-coupler pairs needs a dedicated step to tune coupler_flux_pulse.amplitude so repeated CZ gates preserve |11⟩ instead of leaking population out of the computational subspace. Until now, the CZ chain jumped from conditional-phase nodes (32a/32b) straight to virtual-Z phase compensation (33), with no node targeting coupler amplitude via leakage / |11⟩ preservation.

What

Introduces shared calibration_utils/cz_leakage_amp for analysis, plotting, and parameters. Renames the existing phase-compensation node to 34 so leakage calibration occupies 33.

  • 33a — Standard leakage error amplification: prepare |11⟩, repeat CZ for n = 1…N, measure P(11).
  • 33b — PALEA protocol (Marxer et al., arXiv:2508.16437): after each CZ, undo virtual-Z phases, apply DD (EF π on high-frequency / leakage qubit, g–e π on low-frequency qubit), restore phases; sweep even n = 2, 4, ….
    Both nodes share the same dataset schema, analysis pipeline, and plots.

Shared utilities (calibration_utils/cz_leakage_amp)

  • parameters.py — Amp sweep, number_of_operations, GEF readout flag
  • analysis.pyprocess_raw_dataset (amp_full coord), fit_raw_data, FitResults
  • plotting.py — P(11) heatmaps and mean P(11) vs coupler flux with optimal-amplitude markers on the pair grid
    Uses QubitRoles and verify_moving_qubit (with repair_routing=True) for flux-pulse routing consistency.

PALEA-specific (33b)

  • Precomputes cz_phase_shifts_map: maps phase_shift_control / phase_shift_target onto high/low qubits by frequency (without assuming control = high).
  • Undoes and reapplies CZ virtual-Z around the DD layer so PALEA sits in a phase-neutral sandwich.

Nodes reorganization

  • 33_cz_phase_compensation.py34_cz_phase_compensation.py (leakage calibration inserted before phase compensation).
  • Graph 99 and README.md updated

@Deepakkhurrana Deepakkhurrana requested review from HuanQM and paulQM June 17, 2026 16:37

@paulQM paulQM left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@HuanQM HuanQM left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small comments on unused code.

@Deepakkhurrana

Copy link
Copy Markdown
Contributor Author

@HuanQM the requested changes have been addressed.

@Deepakkhurrana Deepakkhurrana merged commit d55f8eb into main Jun 29, 2026
1 check passed
@Deepakkhurrana Deepakkhurrana deleted the feature/leakage_calibration branch June 29, 2026 10:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants