Skip to content

Bravais

BoundedBravais

BoundedBravais(parent: Optional[Builder] = None)

Bases: AtomArrangement


              flowchart TD
              bloqade.analog.ir.location.bravais.BoundedBravais[BoundedBravais]
              bloqade.analog.ir.location.location.AtomArrangement[AtomArrangement]
              bloqade.analog.builder.start.ProgramStart[ProgramStart]
              bloqade.analog.builder.drive.Drive[Drive]
              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.ir.location.location.AtomArrangement --> bloqade.analog.ir.location.bravais.BoundedBravais
                                bloqade.analog.builder.start.ProgramStart --> bloqade.analog.ir.location.location.AtomArrangement
                                bloqade.analog.builder.drive.Drive --> bloqade.analog.builder.start.ProgramStart
                
                bloqade.analog.builder.base.Builder --> bloqade.analog.builder.start.ProgramStart
                                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.ir.location.bravais.BoundedBravais href "" "bloqade.analog.ir.location.bravais.BoundedBravais"
              click bloqade.analog.ir.location.location.AtomArrangement href "" "bloqade.analog.ir.location.location.AtomArrangement"
              click bloqade.analog.builder.start.ProgramStart href "" "bloqade.analog.builder.start.ProgramStart"
              click bloqade.analog.builder.drive.Drive href "" "bloqade.analog.builder.drive.Drive"
              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

__match_args__ class-attribute instance-attribute

__match_args__ = ('shape', 'lattice_spacing')

Base classe for Bravais lattices [AtomArrangement][bloqade.ir.location.base.AtomArrangement].

  • [Square][bloqade.ir.location.bravais.Square]
  • [Chain][bloqade.ir.location.bravais.Chain]
  • [Honeycomb][bloqade.ir.location.bravais.Honeycomb]
  • [Triangular][bloqade.ir.location.bravais.Triangular]
  • [Lieb][bloqade.ir.location.bravais.Lieb]
  • [Kagome][bloqade.ir.location.bravais.Kagome]
  • [Rectangular][bloqade.ir.location.bravais.Rectangular]

n_atoms cached property

n_atoms: int

number of atoms (filled sites) in the register.

n_dims property

n_dims

dimension of the lattice

Returns:

Name Type Description
int

dimension of the lattice

n_sites property

n_sites: int

number of sites in the register.

n_vacant property

n_vacant: int

number of vacant sites in the register.

coordinates

coordinates(index: List[int]) -> NDArray

calculate the coordinates of a cell in the lattice given the cell index.

Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/location/bravais.py
113
114
115
116
117
118
119
120
121
122
@beartype
def coordinates(self, index: List[int]) -> NDArray:
    """calculate the coordinates of a cell in the lattice
    given the cell index.
    """
    # damn! this is like stone age broadcasting
    vectors = np.array(self.cell_vectors())
    index = np.array(index)
    pos = np.sum(vectors.T * index, axis=1)
    return pos + np.array(self.cell_atoms())

enumerate

enumerate() -> Generator[LocationInfo, None, None]

enumerate all locations in the register.

Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/location/bravais.py
124
125
126
127
128
def enumerate(self) -> Generator[LocationInfo, None, None]:
    for index in itertools.product(*[range(n) for n in self.shape]):
        for pos in self.coordinates(list(index)):
            position = tuple(self.lattice_spacing * pos)
            yield LocationInfo.create(position, True)

scale

scale(factor: ScalarType) -> BoundedBravais

Scale the current location with a factor.

(x,y) -> factor*(x,y)

Parameters:

Name Type Description Default
factor str | Real | Decimal | Scalar

scale factor

required

Returns:

Name Type Description
BoundedBravais BoundedBravais

The lattice with the scaled locations

Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/location/bravais.py
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
@beartype
def scale(self, factor: ScalarType) -> "BoundedBravais":
    """Scale the current location with a factor.

    (x,y) -> factor*(x,y)

    Args:
        factor (str | Real | Decimal | Scalar): scale factor

    Returns:
        BoundedBravais: The lattice with the scaled locations
    """
    factor = cast(factor)
    obj = self.__new__(type(self))
    for f in fields(self):
        if f.name == "lattice_spacing":
            obj.lattice_spacing = factor * self.lattice_spacing
        else:
            setattr(obj, f.name, getattr(self, f.name))
    return obj

Chain

Chain(
    L: int,
    *,
    lattice_spacing: ScalarType = 1.0,
    vertical_chain: bool = False
)

Bases: BoundedBravais


              flowchart TD
              bloqade.analog.ir.location.bravais.Chain[Chain]
              bloqade.analog.ir.location.bravais.BoundedBravais[BoundedBravais]
              bloqade.analog.ir.location.location.AtomArrangement[AtomArrangement]
              bloqade.analog.builder.start.ProgramStart[ProgramStart]
              bloqade.analog.builder.drive.Drive[Drive]
              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.ir.location.bravais.BoundedBravais --> bloqade.analog.ir.location.bravais.Chain
                                bloqade.analog.ir.location.location.AtomArrangement --> bloqade.analog.ir.location.bravais.BoundedBravais
                                bloqade.analog.builder.start.ProgramStart --> bloqade.analog.ir.location.location.AtomArrangement
                                bloqade.analog.builder.drive.Drive --> bloqade.analog.builder.start.ProgramStart
                
                bloqade.analog.builder.base.Builder --> bloqade.analog.builder.start.ProgramStart
                                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.ir.location.bravais.Chain href "" "bloqade.analog.ir.location.bravais.Chain"
              click bloqade.analog.ir.location.bravais.BoundedBravais href "" "bloqade.analog.ir.location.bravais.BoundedBravais"
              click bloqade.analog.ir.location.location.AtomArrangement href "" "bloqade.analog.ir.location.location.AtomArrangement"
              click bloqade.analog.builder.start.ProgramStart href "" "bloqade.analog.builder.start.ProgramStart"
              click bloqade.analog.builder.drive.Drive href "" "bloqade.analog.builder.drive.Drive"
              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"
            

Chain lattice.

  • 1D lattice
  • primitive (cell) vector(s)
    • a1 = (1,0).
  • unit cell (1 atom(s))
    • loc (0,0)

Parameters:

Name Type Description Default
L int

number of sites in the chain

required
lattice_spacing (Scalar, Real)

lattice spacing. Defaults to 1.0.

1.0
  • Possible Next: continue with . to see possible next step in auto-prompt supported setting (IPython, IDE ...)
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/location/bravais.py
183
184
185
186
187
188
189
190
@beartype
def __init__(
    self, L: int, *, lattice_spacing: ScalarType = 1.0, vertical_chain: bool = False
):
    self.L = L
    self.lattice_spacing = cast(lattice_spacing)
    self.vertical_chain = vertical_chain
    super().__init__()

Honeycomb

Honeycomb(
    L1: int,
    L2: Optional[int] = None,
    *,
    lattice_spacing: ScalarType = 1.0
)

Bases: BoundedBravais


              flowchart TD
              bloqade.analog.ir.location.bravais.Honeycomb[Honeycomb]
              bloqade.analog.ir.location.bravais.BoundedBravais[BoundedBravais]
              bloqade.analog.ir.location.location.AtomArrangement[AtomArrangement]
              bloqade.analog.builder.start.ProgramStart[ProgramStart]
              bloqade.analog.builder.drive.Drive[Drive]
              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.ir.location.bravais.BoundedBravais --> bloqade.analog.ir.location.bravais.Honeycomb
                                bloqade.analog.ir.location.location.AtomArrangement --> bloqade.analog.ir.location.bravais.BoundedBravais
                                bloqade.analog.builder.start.ProgramStart --> bloqade.analog.ir.location.location.AtomArrangement
                                bloqade.analog.builder.drive.Drive --> bloqade.analog.builder.start.ProgramStart
                
                bloqade.analog.builder.base.Builder --> bloqade.analog.builder.start.ProgramStart
                                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.ir.location.bravais.Honeycomb href "" "bloqade.analog.ir.location.bravais.Honeycomb"
              click bloqade.analog.ir.location.bravais.BoundedBravais href "" "bloqade.analog.ir.location.bravais.BoundedBravais"
              click bloqade.analog.ir.location.location.AtomArrangement href "" "bloqade.analog.ir.location.location.AtomArrangement"
              click bloqade.analog.builder.start.ProgramStart href "" "bloqade.analog.builder.start.ProgramStart"
              click bloqade.analog.builder.drive.Drive href "" "bloqade.analog.builder.drive.Drive"
              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"
            

Honeycomb lattice.

  • 2D lattice
  • primitive (cell) vector(s)
    • a1 = (1, 0)
    • a2 = (1/2, sqrt(3)/2)
  • unit cell (2 atom(s))
    • loc1 (0, 0)
    • loc2 (1/2, 1/(2*sqrt(3))

Parameters:

Name Type Description Default
L1 int

number of unit cells in linear direction. n_atoms = L1 * L1 * 2.

required
L2 Optional[int]

number of unit cells in direction a2. n_atoms = L1 * L2 * 2, default is L1.

None
lattice_spacing (Scalar, Real)

lattice spacing. Defaults to 1.0.

1.0
  • Possible Next: continue with . to see possible next step in auto-prompt supported setting (IPython, IDE ...)
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/location/bravais.py
420
421
422
423
424
425
426
427
428
429
430
431
@beartype
def __init__(
    self, L1: int, L2: Optional[int] = None, *, lattice_spacing: ScalarType = 1.0
):
    if L2 is None:
        L2 = L1

    self.L1 = L1
    self.L2 = L2
    self.lattice_spacing = cast(lattice_spacing)

    super().__init__()

Kagome

Kagome(
    L1: int,
    L2: Optional[int] = None,
    *,
    lattice_spacing: ScalarType = 1.0
)

Bases: BoundedBravais


              flowchart TD
              bloqade.analog.ir.location.bravais.Kagome[Kagome]
              bloqade.analog.ir.location.bravais.BoundedBravais[BoundedBravais]
              bloqade.analog.ir.location.location.AtomArrangement[AtomArrangement]
              bloqade.analog.builder.start.ProgramStart[ProgramStart]
              bloqade.analog.builder.drive.Drive[Drive]
              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.ir.location.bravais.BoundedBravais --> bloqade.analog.ir.location.bravais.Kagome
                                bloqade.analog.ir.location.location.AtomArrangement --> bloqade.analog.ir.location.bravais.BoundedBravais
                                bloqade.analog.builder.start.ProgramStart --> bloqade.analog.ir.location.location.AtomArrangement
                                bloqade.analog.builder.drive.Drive --> bloqade.analog.builder.start.ProgramStart
                
                bloqade.analog.builder.base.Builder --> bloqade.analog.builder.start.ProgramStart
                                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.ir.location.bravais.Kagome href "" "bloqade.analog.ir.location.bravais.Kagome"
              click bloqade.analog.ir.location.bravais.BoundedBravais href "" "bloqade.analog.ir.location.bravais.BoundedBravais"
              click bloqade.analog.ir.location.location.AtomArrangement href "" "bloqade.analog.ir.location.location.AtomArrangement"
              click bloqade.analog.builder.start.ProgramStart href "" "bloqade.analog.builder.start.ProgramStart"
              click bloqade.analog.builder.drive.Drive href "" "bloqade.analog.builder.drive.Drive"
              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"
            

Kagome lattice.

  • 2D lattice
  • primitive (cell) vector(s)
    • a1 = (1, 0)
    • a2 = (1/2, sqrt(3)/2)
  • unit cell (3 atom(s))
    • loc1 (0, 0)
    • loc2 (0.5, 0)
    • loc3 (0.25 ,0.25sqrt(3))

Parameters:

Name Type Description Default
L1 int

number of sites in linear direction. n_atoms = 3 * L1 * L1.

required
L2 Optional[int]

number of unit cells along a2 direction, n_atoms = 3 * L1 * L2, default is L1.

None
lattice_spacing (Scalar, Real)

lattice spacing. Defaults to 1.0.

1.0
  • Possible Next: continue with . to see possible next step in auto-prompt supported setting (IPython, IDE ...)
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/location/bravais.py
589
590
591
592
593
594
595
596
597
598
599
@beartype
def __init__(
    self, L1: int, L2: Optional[int] = None, *, lattice_spacing: ScalarType = 1.0
):
    if L2 is None:
        L2 = L1

    self.L1 = L1
    self.L2 = L2
    self.lattice_spacing = cast(lattice_spacing)
    super().__init__()

Lieb

Lieb(
    L1: int,
    L2: Optional[int] = None,
    *,
    lattice_spacing: ScalarType = 1.0
)

Bases: BoundedBravais


              flowchart TD
              bloqade.analog.ir.location.bravais.Lieb[Lieb]
              bloqade.analog.ir.location.bravais.BoundedBravais[BoundedBravais]
              bloqade.analog.ir.location.location.AtomArrangement[AtomArrangement]
              bloqade.analog.builder.start.ProgramStart[ProgramStart]
              bloqade.analog.builder.drive.Drive[Drive]
              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.ir.location.bravais.BoundedBravais --> bloqade.analog.ir.location.bravais.Lieb
                                bloqade.analog.ir.location.location.AtomArrangement --> bloqade.analog.ir.location.bravais.BoundedBravais
                                bloqade.analog.builder.start.ProgramStart --> bloqade.analog.ir.location.location.AtomArrangement
                                bloqade.analog.builder.drive.Drive --> bloqade.analog.builder.start.ProgramStart
                
                bloqade.analog.builder.base.Builder --> bloqade.analog.builder.start.ProgramStart
                                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.ir.location.bravais.Lieb href "" "bloqade.analog.ir.location.bravais.Lieb"
              click bloqade.analog.ir.location.bravais.BoundedBravais href "" "bloqade.analog.ir.location.bravais.BoundedBravais"
              click bloqade.analog.ir.location.location.AtomArrangement href "" "bloqade.analog.ir.location.location.AtomArrangement"
              click bloqade.analog.builder.start.ProgramStart href "" "bloqade.analog.builder.start.ProgramStart"
              click bloqade.analog.builder.drive.Drive href "" "bloqade.analog.builder.drive.Drive"
              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"
            

Lieb lattice.

  • 2D lattice
  • primitive (cell) vector(s)
    • a1 = (1, 0)
    • a2 = (0, 1)
  • unit cell (3 atom(s))
    • loc1 (0, 0)
    • loc2 (0.5, 0)
    • loc3 (0 ,0.5)

Parameters:

Name Type Description Default
L1 int

number of unit cells in linear direction. n_atoms = 3* L1 * L1.

required
L2 Optional[int]

number of unit cells along a2 direction, n_atoms = 3 * L1 * L2, default is L1.

None
lattice_spacing (Scalar, Real)

lattice spacing. Defaults to 1.0.

1.0
  • Possible Next: continue with . to see possible next step in auto-prompt supported setting (IPython, IDE ...)
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/location/bravais.py
534
535
536
537
538
539
540
541
542
@beartype
def __init__(
    self, L1: int, L2: Optional[int] = None, *, lattice_spacing: ScalarType = 1.0
):
    if L2 is None:
        L2 = L1
    self.L1 = L1
    self.L2 = L2
    self.lattice_spacing = cast(lattice_spacing)

Rectangular

Rectangular(
    width: int,
    height: int,
    *,
    lattice_spacing_x: ScalarType = 1.0,
    lattice_spacing_y: ScalarType = 1.0
)

Bases: BoundedBravais


              flowchart TD
              bloqade.analog.ir.location.bravais.Rectangular[Rectangular]
              bloqade.analog.ir.location.bravais.BoundedBravais[BoundedBravais]
              bloqade.analog.ir.location.location.AtomArrangement[AtomArrangement]
              bloqade.analog.builder.start.ProgramStart[ProgramStart]
              bloqade.analog.builder.drive.Drive[Drive]
              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.ir.location.bravais.BoundedBravais --> bloqade.analog.ir.location.bravais.Rectangular
                                bloqade.analog.ir.location.location.AtomArrangement --> bloqade.analog.ir.location.bravais.BoundedBravais
                                bloqade.analog.builder.start.ProgramStart --> bloqade.analog.ir.location.location.AtomArrangement
                                bloqade.analog.builder.drive.Drive --> bloqade.analog.builder.start.ProgramStart
                
                bloqade.analog.builder.base.Builder --> bloqade.analog.builder.start.ProgramStart
                                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.ir.location.bravais.Rectangular href "" "bloqade.analog.ir.location.bravais.Rectangular"
              click bloqade.analog.ir.location.bravais.BoundedBravais href "" "bloqade.analog.ir.location.bravais.BoundedBravais"
              click bloqade.analog.ir.location.location.AtomArrangement href "" "bloqade.analog.ir.location.location.AtomArrangement"
              click bloqade.analog.builder.start.ProgramStart href "" "bloqade.analog.builder.start.ProgramStart"
              click bloqade.analog.builder.drive.Drive href "" "bloqade.analog.builder.drive.Drive"
              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"
            

Rectangular lattice.

  • 2D lattice
  • primitive (cell) vector(s)
    • a1 = (1,0)
    • a2 = (0,1)
  • unit cell (1 atom(s))
    • loc (0,0)

Parameters:

Name Type Description Default
width int

number of sites in x direction.

required
height int

number of sites in y direction.

required
lattice_spacing_x (Scalar, Real)

lattice spacing. Defaults to 1.0.

1.0
lattice_spacing_y (Scalar, Real)

lattice spacing in y direction. optional.

1.0
  • Possible Next: continue with . to see possible next step in auto-prompt supported setting (IPython, IDE ...)
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/location/bravais.py
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
@beartype
def __init__(
    self,
    width: int,
    height: int,
    *,
    lattice_spacing_x: ScalarType = 1.0,
    lattice_spacing_y: ScalarType = 1.0,
):
    self.width = width
    self.height = height
    self.lattice_spacing_x = cast(lattice_spacing_x)
    self.lattice_spacing_y = (
        cast(lattice_spacing_y)
        if lattice_spacing_y is not None
        else self.lattice_spacing_x
    )

    super().__init__()

Square

Square(
    L1: int,
    L2: Optional[int] = None,
    *,
    lattice_spacing: ScalarType = 1.0
)

Bases: BoundedBravais


              flowchart TD
              bloqade.analog.ir.location.bravais.Square[Square]
              bloqade.analog.ir.location.bravais.BoundedBravais[BoundedBravais]
              bloqade.analog.ir.location.location.AtomArrangement[AtomArrangement]
              bloqade.analog.builder.start.ProgramStart[ProgramStart]
              bloqade.analog.builder.drive.Drive[Drive]
              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.ir.location.bravais.BoundedBravais --> bloqade.analog.ir.location.bravais.Square
                                bloqade.analog.ir.location.location.AtomArrangement --> bloqade.analog.ir.location.bravais.BoundedBravais
                                bloqade.analog.builder.start.ProgramStart --> bloqade.analog.ir.location.location.AtomArrangement
                                bloqade.analog.builder.drive.Drive --> bloqade.analog.builder.start.ProgramStart
                
                bloqade.analog.builder.base.Builder --> bloqade.analog.builder.start.ProgramStart
                                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.ir.location.bravais.Square href "" "bloqade.analog.ir.location.bravais.Square"
              click bloqade.analog.ir.location.bravais.BoundedBravais href "" "bloqade.analog.ir.location.bravais.BoundedBravais"
              click bloqade.analog.ir.location.location.AtomArrangement href "" "bloqade.analog.ir.location.location.AtomArrangement"
              click bloqade.analog.builder.start.ProgramStart href "" "bloqade.analog.builder.start.ProgramStart"
              click bloqade.analog.builder.drive.Drive href "" "bloqade.analog.builder.drive.Drive"
              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"
            

Square lattice.

  • 2D lattice
  • primitive (cell) vector(s)
    • a1 = (1,0)
    • a2 = (0,1)
  • unit cell (1 atom(s))
    • loc (0,0)

Parameters:

Name Type Description Default
L1 int

number of sites in linear direction. n_atoms = L1 * L1.

required
L2 Optional[int]

number of sites in direction a2. n_atoms = L1 * L2, default is L1

None
lattice_spacing (Scalar, Real)

lattice spacing. Defaults to 1.0.

1.0
  • Possible Next: continue with . to see possible next step in auto-prompt supported setting (IPython, IDE ...)
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/location/bravais.py
240
241
242
243
244
245
246
247
248
249
@beartype
def __init__(
    self, L1: int, L2: Optional[int] = None, *, lattice_spacing: ScalarType = 1.0
):
    if L2 is None:
        L2 = L1
    self.L1 = L1
    self.L2 = L2
    self.lattice_spacing = cast(lattice_spacing)
    super().__init__()

Triangular

Triangular(
    L1: int,
    L2: Optional[int] = None,
    *,
    lattice_spacing: ScalarType = 1.0
)

Bases: BoundedBravais


              flowchart TD
              bloqade.analog.ir.location.bravais.Triangular[Triangular]
              bloqade.analog.ir.location.bravais.BoundedBravais[BoundedBravais]
              bloqade.analog.ir.location.location.AtomArrangement[AtomArrangement]
              bloqade.analog.builder.start.ProgramStart[ProgramStart]
              bloqade.analog.builder.drive.Drive[Drive]
              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.ir.location.bravais.BoundedBravais --> bloqade.analog.ir.location.bravais.Triangular
                                bloqade.analog.ir.location.location.AtomArrangement --> bloqade.analog.ir.location.bravais.BoundedBravais
                                bloqade.analog.builder.start.ProgramStart --> bloqade.analog.ir.location.location.AtomArrangement
                                bloqade.analog.builder.drive.Drive --> bloqade.analog.builder.start.ProgramStart
                
                bloqade.analog.builder.base.Builder --> bloqade.analog.builder.start.ProgramStart
                                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.ir.location.bravais.Triangular href "" "bloqade.analog.ir.location.bravais.Triangular"
              click bloqade.analog.ir.location.bravais.BoundedBravais href "" "bloqade.analog.ir.location.bravais.BoundedBravais"
              click bloqade.analog.ir.location.location.AtomArrangement href "" "bloqade.analog.ir.location.location.AtomArrangement"
              click bloqade.analog.builder.start.ProgramStart href "" "bloqade.analog.builder.start.ProgramStart"
              click bloqade.analog.builder.drive.Drive href "" "bloqade.analog.builder.drive.Drive"
              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"
            

Triangular lattice.

  • 2D lattice
  • primitive (cell) vector(s)
    • a1 = (1, 0)
    • a2 = (1/2, sqrt(3)/2)
  • unit cell (1 atom(s))
    • loc (0, 0)

Parameters:

Name Type Description Default
L int

number of sites in linear direction. n_atoms = L * L.

required
L2 Optional[int]

number of sites along a2 direction, n_atoms = L1 * L2, default is L1.

None
lattice_spacing (Scalar, Real)

lattice spacing. Defaults to 1.0.

1.0
  • Possible Next: continue with . to see possible next step in auto-prompt supported setting (IPython, IDE ...)
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/location/bravais.py
477
478
479
480
481
482
483
484
485
486
487
@beartype
def __init__(
    self, L1: int, L2: Optional[int] = None, *, lattice_spacing: ScalarType = 1.0
):
    if L2 is None:
        L2 = L1
    self.L1 = L1
    self.L2 = L2
    self.lattice_spacing = cast(lattice_spacing)

    super().__init__()