Skip to content

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
def __init__(
    self,
    parent: Optional["Builder"] = None,
) -> None:
    self.__parent__ = parent

__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
def __bloqade_ir__(self):
    """
    Generate the intermediate representation (IR) for the Hyperfine level coupling.

    Args:
        None

    Returns:
        IR: An intermediate representation of the Hyperfine level coupling sequence.

    Raises:
        None

    Note:
        This method is used internally by the Bloqade framework.
    """
    from bloqade.analog.ir.control.sequence import hyperfine

    return hyperfine

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
def __init__(
    self,
    parent: Optional["Builder"] = None,
) -> None:
    self.__parent__ = parent

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

[Detuning][bloqade.builder.field.Detuning]: A program node representing the detuning field.

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
def __init__(
    self,
    parent: Optional["Builder"] = None,
) -> None:
    self.__parent__ = parent

__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
def __bloqade_ir__(self):
    """
    Generate the intermediate representation (IR) for the Rydberg level coupling.

    Args:
        None

    Returns:
        IR: An intermediate representation of the Rydberg level coupling sequence.

    Raises:
        None

    Note:
        This method is used internally by the Bloqade framework.
    """
    from bloqade.analog.ir.control.sequence import rydberg

    return rydberg