Coupling
Hyperfine ¶
Bases: LevelCoupling
This node represent level coupling between hyperfine state.
Examples:
- To reach the node from the start node:
>>> node = bloqade.start.hyperfine
>>> type(node)
<class 'bloqade.builder.coupling.Hyperfine'>
- Hyperfine level coupling have two reachable field nodes:
- detuning term (See also [`Detuning`][bloqade.builder.field.Detuning])
- rabi term (See also [`Rabi`][bloqade.builder.field.Rabi])
>>> hyp_detune = bloqade.start.hyperfine.detuning
>>> hyp_rabi = bloqade.start.hyperfine.rabi
Source code in src/bloqade/builder/base.py
LevelCoupling ¶
Bases: Builder
Source code in src/bloqade/builder/base.py
detuning property
¶
Specify the Detuning
Field
of your program. You will be able to specify the spatial modulation afterwards.
Returns:
Type | Description |
---|---|
Detuning |
|
Background and Context
In the Many-Body Rydberg Hamiltonian:
The detuning is specified by the term \(\Delta_j(t)\) and specifies how off-resonant the laser being applied to the atoms is from the atomic energy transition, which is driven by the Rabi frequency \(\Omega_j(t)\).
The detuning is described by a field, which is the summation of one or more drives, with the drive being the sum of a waveform and spatial modulation:
Note that the spatial modulation \(C_{j}\) scales how much of the detuning waveform is experienced by the atom at site \(j\). You can specify the scaling that all atoms feel to be identical (global detuning) or you can specify different scaling for different atoms (local detuning).
Examples
Alternatively you may start with building your Rabi field and then reach the ability to build your detuning like so:Applications
Potential Pitfalls
Bloqade allows you to build a field for the Detuning in the form of:
Where your field can contain multiple drives.
In reality the hardware only supports the following configuration:
Where \(\Delta_{1}(t)\) is your global detuning (establishable via uniform
) and \(\Delta_{2}(t)\) is your local detuning waveform with the spatial modulation \(c_{i}\) establishable via location
or scale
.
Next Possible Steps¶
You may continue building your program via:
uniform
: To address all atoms in the fieldlocation(locations, scales)
: To address atoms at specific locations via indicesscale(coeffs)
: To address all atoms with an individual scale factor
rabi property
¶
Specify the complex-valued Rabi
field of your program.
The Rabi field is composed of a real-valued Amplitude and Phase field.
- Next possible steps to build your program are creating the
RabiAmplitude
field andRabiPhase
field of the field:...rabi.amplitude
: To create the Rabi amplitude field...rabi.phase
: To create the Rabi phase field
Rydberg ¶
Bases: LevelCoupling
This node represent level coupling of rydberg state.
Examples:
- To reach the node from the start node:
>>> node = bloqade.start.rydberg
>>> type(node)
<class 'bloqade.builder.coupling.Rydberg'>
- Rydberg level coupling have two reachable field nodes:
- detuning term (See also [`Detuning`][bloqade.builder.field.Detuning])
- rabi term (See also [`Rabi`][bloqade.builder.field.Rabi])
>>> ryd_detune = bloqade.start.rydberg.detuning
>>> ryd_rabi = bloqade.start.rydberg.rabi