append_default_dd_sequence

append_default_dd_sequence(model, nuclear_spin_name, angle, dd_duration, n_pulses=None, resonance_order=1, electron_spin_name='e', mw_driving_field_name='MW_x', verbose=False)

Add a dynamical-decoupling (DD) controlled nuclear gate.

Implements an electron-π-pulse controlled nuclear rotation. Unlike append_default_ddrf_sequence(), the nucleus is not driven directly: a train of N electron \(\pi\) pulses, spaced to resonate with the nuclear precession, makes a controlled rotation whose angle grows with N.

Because control comes purely from the inter-pulse spacing, the gate is spectrally selective only to the extent that nuclear spins are resolved in frequency; nearby or strongly-coupled spins are co-rotated. It also requires a non-zero perpendicular hyperfine component on the target nucleus.

Unlike append_default_ddrf_sequence(), whose rotation axis is set by the RF phase (a free parameter), the bare-DD rotation axis is fixed by the hyperfine geometry and cannot be chosen; matching this gate to a DDRF gate means setting the DDRF phase to this axis. The pulse count N is a multiple of 4 (a whole number of XY-4 blocks), so the achieved angle is quantised.

Parameters:
  • model (Model) – Model to update.

  • nuclear_spin_name (str) – Target nuclear spin.

  • angle (float) – Requested controlled-rotation angle (the two electron branches rotate by \(\pm\) angle). The pulse count N is chosen to approximate it; the achieved angle is reported when verbose.

  • dd_duration (float) – Duration of each electron \(\pi\) pulse (µs).

  • n_pulses (int | None) – If given, use this many electron pulses (rounded to the nearest multiple of 4) instead of solving for angle.

  • resonance_order (int) – Which resonance of the pulse spacing to use, from 1 (a larger order gives a longer, more selective gate).

  • electron_spin_name (str) – Electron spin driven by the DD pulses.

  • mw_driving_field_name (str) – Microwave driving field used for the pulses.

  • verbose (bool) – If True, log the resonance, pulse count and achieved angle.

Return type:

Model

Returns:

Updated model.

Raises:

SimphonyError – If the target nucleus has no perpendicular hyperfine component (no conditional axis tilt, so no DD gate is possible).