Coupling
Hyperfine
Hyperfine(parent: Optional[Builder] = None)
Bases: LevelCoupling
flowchart TD
bloqade.analog.builder.coupling.Hyperfine[Hyperfine]
bloqade.analog.builder.coupling.LevelCoupling[LevelCoupling]
bloqade.analog.builder.base.Builder[Builder]
bloqade.analog.builder.parse.trait.Parse[Parse]
bloqade.analog.builder.parse.trait.ParseRegister[ParseRegister]
bloqade.analog.builder.parse.trait.ParseSequence[ParseSequence]
bloqade.analog.builder.parse.trait.ParseCircuit[ParseCircuit]
bloqade.analog.builder.parse.trait.ParseRoutine[ParseRoutine]
bloqade.analog.builder.parse.trait.Show[Show]
bloqade.analog.builder.coupling.LevelCoupling --> bloqade.analog.builder.coupling.Hyperfine
bloqade.analog.builder.base.Builder --> bloqade.analog.builder.coupling.LevelCoupling
bloqade.analog.builder.parse.trait.Parse --> bloqade.analog.builder.base.Builder
bloqade.analog.builder.parse.trait.ParseRegister --> bloqade.analog.builder.parse.trait.Parse
bloqade.analog.builder.parse.trait.ParseSequence --> bloqade.analog.builder.parse.trait.Parse
bloqade.analog.builder.parse.trait.ParseCircuit --> bloqade.analog.builder.parse.trait.Parse
bloqade.analog.builder.parse.trait.ParseRoutine --> bloqade.analog.builder.parse.trait.Parse
bloqade.analog.builder.parse.trait.Show --> bloqade.analog.builder.base.Builder
click bloqade.analog.builder.coupling.Hyperfine href "" "bloqade.analog.builder.coupling.Hyperfine"
click bloqade.analog.builder.coupling.LevelCoupling href "" "bloqade.analog.builder.coupling.LevelCoupling"
click bloqade.analog.builder.base.Builder href "" "bloqade.analog.builder.base.Builder"
click bloqade.analog.builder.parse.trait.Parse href "" "bloqade.analog.builder.parse.trait.Parse"
click bloqade.analog.builder.parse.trait.ParseRegister href "" "bloqade.analog.builder.parse.trait.ParseRegister"
click bloqade.analog.builder.parse.trait.ParseSequence href "" "bloqade.analog.builder.parse.trait.ParseSequence"
click bloqade.analog.builder.parse.trait.ParseCircuit href "" "bloqade.analog.builder.parse.trait.ParseCircuit"
click bloqade.analog.builder.parse.trait.ParseRoutine href "" "bloqade.analog.builder.parse.trait.ParseRoutine"
click bloqade.analog.builder.parse.trait.Show href "" "bloqade.analog.builder.parse.trait.Show"
This node represents level coupling between hyperfine states.
Examples:
- To reach the node from the start node:
>>> node = bloqade.start.hyperfine
>>> type(node)
<class 'bloqade.builder.coupling.Hyperfine'>
- Hyperfine level coupling has 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 .venv/lib/python3.12/site-packages/bloqade/analog/builder/base.py
10 11 12 13 14 | |
__bloqade_ir__
__bloqade_ir__()
Generate the intermediate representation (IR) for the Hyperfine level coupling.
Returns:
| Name | Type | Description |
|---|---|---|
IR |
An intermediate representation of the Hyperfine level coupling sequence. |
Note
This method is used internally by the Bloqade framework.
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/builder/coupling.py
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | |
LevelCoupling
LevelCoupling(parent: Optional[Builder] = None)
Bases: Builder
flowchart TD
bloqade.analog.builder.coupling.LevelCoupling[LevelCoupling]
bloqade.analog.builder.base.Builder[Builder]
bloqade.analog.builder.parse.trait.Parse[Parse]
bloqade.analog.builder.parse.trait.ParseRegister[ParseRegister]
bloqade.analog.builder.parse.trait.ParseSequence[ParseSequence]
bloqade.analog.builder.parse.trait.ParseCircuit[ParseCircuit]
bloqade.analog.builder.parse.trait.ParseRoutine[ParseRoutine]
bloqade.analog.builder.parse.trait.Show[Show]
bloqade.analog.builder.base.Builder --> bloqade.analog.builder.coupling.LevelCoupling
bloqade.analog.builder.parse.trait.Parse --> bloqade.analog.builder.base.Builder
bloqade.analog.builder.parse.trait.ParseRegister --> bloqade.analog.builder.parse.trait.Parse
bloqade.analog.builder.parse.trait.ParseSequence --> bloqade.analog.builder.parse.trait.Parse
bloqade.analog.builder.parse.trait.ParseCircuit --> bloqade.analog.builder.parse.trait.Parse
bloqade.analog.builder.parse.trait.ParseRoutine --> bloqade.analog.builder.parse.trait.Parse
bloqade.analog.builder.parse.trait.Show --> bloqade.analog.builder.base.Builder
click bloqade.analog.builder.coupling.LevelCoupling href "" "bloqade.analog.builder.coupling.LevelCoupling"
click bloqade.analog.builder.base.Builder href "" "bloqade.analog.builder.base.Builder"
click bloqade.analog.builder.parse.trait.Parse href "" "bloqade.analog.builder.parse.trait.Parse"
click bloqade.analog.builder.parse.trait.ParseRegister href "" "bloqade.analog.builder.parse.trait.ParseRegister"
click bloqade.analog.builder.parse.trait.ParseSequence href "" "bloqade.analog.builder.parse.trait.ParseSequence"
click bloqade.analog.builder.parse.trait.ParseCircuit href "" "bloqade.analog.builder.parse.trait.ParseCircuit"
click bloqade.analog.builder.parse.trait.ParseRoutine href "" "bloqade.analog.builder.parse.trait.ParseRoutine"
click bloqade.analog.builder.parse.trait.Show href "" "bloqade.analog.builder.parse.trait.Show"
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/builder/base.py
10 11 12 13 14 | |
detuning
property
detuning: Detuning
Specify the [Detuning][bloqade.builder.field.Detuning] [Field][bloqade.builder.field.Field] of your program.
You will be able to specify the spatial modulation afterwards.
Returns:
| Type | Description |
|---|---|
Detuning
|
[ |
Note
The detuning specifies how off-resonant the laser being applied to the atoms is from the atomic energy transition, driven by the Rabi frequency.
Example:
from bloqade import start
geometry = start.add_position((0,0))
coupling = geometry.rydberg
coupling.detuning
- Next Possible Steps You may continue building your program via:
- [
uniform][bloqade.builder.field.Detuning.uniform]: To address all atoms in the field - [
location(locations, scales)][bloqade.builder.field.Detuning.location]: To address atoms at specific locations via indices - [
scale(coeffs)][bloqade.builder.field.Detuning.scale]: To address all atoms with an individual scale factor
rabi
property
rabi: Rabi
Specify the complex-valued [Rabi][bloqade.builder.field.Rabi]
field of your program.
The Rabi field is composed of a real-valued Amplitude and Phase field.
Returns:
| Name | Type | Description |
|---|---|---|
Rabi |
Rabi
|
A program node representing the Rabi field. |
Note
Next possible steps to build your program are
creating the RabiAmplitude field and RabiPhase field of the field:
- ...rabi.amplitude: To create the Rabi amplitude field
- ...rabi.phase: To create the Rabi phase field
Rydberg
Rydberg(parent: Optional[Builder] = None)
Bases: LevelCoupling
flowchart TD
bloqade.analog.builder.coupling.Rydberg[Rydberg]
bloqade.analog.builder.coupling.LevelCoupling[LevelCoupling]
bloqade.analog.builder.base.Builder[Builder]
bloqade.analog.builder.parse.trait.Parse[Parse]
bloqade.analog.builder.parse.trait.ParseRegister[ParseRegister]
bloqade.analog.builder.parse.trait.ParseSequence[ParseSequence]
bloqade.analog.builder.parse.trait.ParseCircuit[ParseCircuit]
bloqade.analog.builder.parse.trait.ParseRoutine[ParseRoutine]
bloqade.analog.builder.parse.trait.Show[Show]
bloqade.analog.builder.coupling.LevelCoupling --> bloqade.analog.builder.coupling.Rydberg
bloqade.analog.builder.base.Builder --> bloqade.analog.builder.coupling.LevelCoupling
bloqade.analog.builder.parse.trait.Parse --> bloqade.analog.builder.base.Builder
bloqade.analog.builder.parse.trait.ParseRegister --> bloqade.analog.builder.parse.trait.Parse
bloqade.analog.builder.parse.trait.ParseSequence --> bloqade.analog.builder.parse.trait.Parse
bloqade.analog.builder.parse.trait.ParseCircuit --> bloqade.analog.builder.parse.trait.Parse
bloqade.analog.builder.parse.trait.ParseRoutine --> bloqade.analog.builder.parse.trait.Parse
bloqade.analog.builder.parse.trait.Show --> bloqade.analog.builder.base.Builder
click bloqade.analog.builder.coupling.Rydberg href "" "bloqade.analog.builder.coupling.Rydberg"
click bloqade.analog.builder.coupling.LevelCoupling href "" "bloqade.analog.builder.coupling.LevelCoupling"
click bloqade.analog.builder.base.Builder href "" "bloqade.analog.builder.base.Builder"
click bloqade.analog.builder.parse.trait.Parse href "" "bloqade.analog.builder.parse.trait.Parse"
click bloqade.analog.builder.parse.trait.ParseRegister href "" "bloqade.analog.builder.parse.trait.ParseRegister"
click bloqade.analog.builder.parse.trait.ParseSequence href "" "bloqade.analog.builder.parse.trait.ParseSequence"
click bloqade.analog.builder.parse.trait.ParseCircuit href "" "bloqade.analog.builder.parse.trait.ParseCircuit"
click bloqade.analog.builder.parse.trait.ParseRoutine href "" "bloqade.analog.builder.parse.trait.ParseRoutine"
click bloqade.analog.builder.parse.trait.Show href "" "bloqade.analog.builder.parse.trait.Show"
This node represents level coupling of the 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 has 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
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/builder/base.py
10 11 12 13 14 | |
__bloqade_ir__
__bloqade_ir__()
Generate the intermediate representation (IR) for the Rydberg level coupling.
Returns:
| Name | Type | Description |
|---|---|---|
IR |
An intermediate representation of the Rydberg level coupling sequence. |
Note
This method is used internally by the Bloqade framework.
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/builder/coupling.py
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | |