@@ -503,7 +503,31 @@ def hamiltonian(
503
503
waveform_runtime : str = "interpret" ,
504
504
cache_matrices : bool = False ,
505
505
) -> List [BloqadeEmulation ]:
506
+ """
507
+ Generates a list of BloqadeEmulation objects which contain the Hamiltonian of your program.
508
+
509
+ If you have a variable(s) in your program you have assigned multiple values via `batch_assign()`
510
+ there will be multiple `BloqadeEmulation` objects, one for each value. On the other hand
511
+ if the program only assumes a singular value per each variable, there will only be
512
+ one `BloqadeEmulation` object but it will still be encapsulated in a list.
513
+
514
+
515
+ Args:
516
+ *args (LiteralType): If your program has a variable that was declared as run-time assignable
517
+ via `.args` you may pass a value to it here. If there are multiple
518
+ variables declared via `.args` the order in which you assign values to those variables
519
+ through this argument should follow the order in which the declaration occurred.
520
+ blockade_radius (float): The radius in which atoms blockade eachother. Default value is 0.0 micrometers.
521
+ use_hyperfine (bool): Should the Hamiltonian account for hyperfine levels. Default value is False.
522
+ waveform_runtime (str): Specify which runtime to use for waveforms. If "numba" is specify the waveform
523
+ is compiled, otherwise it is interpreted via the "interpret" argument. Defaults to "interpret".
524
+ cache_matrices (bool): Speed up Hamiltonian generation by reusing data (when possible) from previously generated Hamiltonians.
525
+ Default value is False.
526
+
527
+ Returns:
528
+ List[BloqadeEmulation]
506
529
530
+ """
507
531
ir_iter = self ._generate_ir (
508
532
args , blockade_radius , waveform_runtime , use_hyperfine
509
533
)
0 commit comments