Skip to content

Atomic

The atomic interface expresses quantum information experiments in terms of light-matter interactions.

System

The system describes the properties of the trapped-ion quantum device.

Ion

An ion is described by its set of electronic energy levels. Each energy level has its associated quantum numbers:

  • Principal quantum number
  • Spin angular momentum, \(S\)
  • Orbital angular momentum, \(L\)
  • Spin-orbital angular momentum, \(J = S + L\)
  • Nuclear angular momentum, \(I\)
  • Spin-orbital-nuclear angular momentum, \(F = J + I\)
  • Magnetization, \(m_F\)
  • Energy, \(E\)

with the set of electronic energy levels, we assign two states to be the qubit states.

Manipulating the qubit states involves driving transitions between the qubit states of the ions, either directly or indirectly.

Example

Definiition of an Ion for \(^{171}\mathrm{Yb}^+\):

downstate = Level(
    principal=6,
    spin=1/2,
    orbital=0,
    nuclear=1/2,
    spin_orbital=1/2,
    spin_orbital_nuclear=0,
    spin_orbital_nuclear_magnetization=0,
    energy=0,
)
upstate = Level(
    principal=6,
    spin=1/2,
    orbital=0,
    nuclear=1/2,
    spin_orbital=1/2,
    spin_orbital_nuclear=1,
    spin_orbital_nuclear_magnetization=0,
    energy=2*pi*12.643e9,
)
estate = Level(
    principal=5,
    spin=1/2,
    orbital=1,
    nuclear=1/2,
    spin_orbital=1/2,
    spin_orbital_nuclear=0,
    spin_orbital_nuclear_magnetization=0,
    energy=2*pi*811.52e12,
)

Yb171 = Ion(
    mass=171,
    charge=1,
    position=[0,0,0],
    levels=[
        downstate,
        upstate,
        estate,
    ],
    transitions=[
        Transition(
            level1=downstate,
            level2=upstate,
            einsteinA=...,
        ),
        Transition(
            level1=downstate,
            level2=estate,
            einsteinA=...,
        ),
        Transition(
            level1=estate,
            level2=upstate,
            einsteinA=...,
        ),
    ],
)

Phonon

In the trapped-ion system the system exhibits collective phonon modes, which are bosonic degrees of freedom.

These phonon modes are characterized by:

  • Energy (eigenfrequency)
  • Profile of the collective phonon mode in terms of the ions' motion (eigenvector)

Example

Definition of the set of phonon modes for a trapped-ion system with a single ion:

COM_x = Phonon(
    energy=2*pi*5e6,
    eigenvector=[1,0,0]
)
COM_y = Phonon(
    energy=2*pi*5e6,
    eigenvector=[0,1,0]
)
COM_z = Phonon(
    energy=2*pi*1e6,
    eigenvector=[0,0,1]
)

Other

Not Implemented

The system is further described by a list of experimental parameters that require calibration to determine, e.g.:

  • Maximum laser power
  • Laser lock frequency
  • etc.

These parameters will in the future be included in the System.

The System will be retrieved from a calibration database to determine the current state of the system and the status of all calibrations required to run quantum experiments.

Pulse Program

The pulse program for a quantum experiment is described by a Protocol. The protocol defines the list of optical channels in the experiment and the real-time scheduling of pulses of the optical channels in order to perform the quantum experiment.

Optical Channel

An optical channel is described by a Beam with the following parameters:

  • Transition of the ion for which to reference the Beam to.
  • Rabi frequency to drive the referenced transition with.
  • Detuning from the resonance of the referenced transition.
  • Phase of the beam relative to the clock of the ion.
  • Polarization of the beam.
  • Wavevector of the beam.
  • Target ion addressed by the beam.

Example

Beam used to drive a microwave Rabi oscillation in the X-axis:

microwave_beam = Beam(
    transition=Transition(level1=downstate,level2=upstate,...),
    rabi= 2*pi*1e6,
    detuning=0,
    phase=0,
    polarization=...
    wavevector=...
    target=0
)

Note

The following parameters may be specified with the math interface:

  • Rabi frequency
  • Detuning
  • Phase

Pulse

A pulse turns on an optical channel for a duration of time.

Example

Pulse that drives a microwave Rabi oscillation in the X-axis for a duration \(T\):

microwave_pulse = Pulse(
    beam=microwave_beam,
    duration=T,
)

Composition of Protocols

The pulse program for a quantum experiment is usually more complex than a pulse of a single beam. This is handled with SequentialProtocol and ParallelProtocol.

Sequential protocol applies a set of pulses or subprotocols sequentially in time.

Example

The following protocol is for a Rabi flop and a measurement:

microwave_beam = Beam(
    transition=Transition(level1=downstate,level2=upstate,...),
    rabi= 2*pi*1e6,
    detuning=0,
    phase=0,
    polarization=...
    wavevector=...
    target=0
)

detection_beam = Beam(
    transition=Transition(level1=upstate,level2=estate,...),
    rabi= 2*pi*1e6,
    detuning=0,
    phase=0,
    polarization=...
    wavevector=...
    target=0
)

protocol = SequentialProtocol(
    sequence=[
        Pulse(beam=raman1_beam,duration=T),
        Pulse(beam=raman2_beam,duration=100e-6)
        ]
    )

Sequential protocol applies a set of pulses or subprotocols parallel in time.

Example

The following protocol is for a two-photon Raman transition:

raman1_beam = Beam(
    transition=Transition(level1=downstate,level2=estate,...),
    rabi= 2*pi*1e6,
    detuning=2*pi*1e9,
    phase=0,
    polarization=...
    wavevector=...
    target=0
)
raman2_beam = Beam(
    transition=Transition(level1=upstate,level2=estate,...),
    rabi= 2*pi*1e6,
    detuning=2*pi*1e9,
    phase=0,
    polarization=...
    wavevector=...
    target=0
)

protocol = ParallelProtocol(
    sequence=[
        Pulse(beam=raman1_beam,duration=T),
        Pulse(beam=raman2_beam,duration=T)
        ]
    )