qilisdk 0.1.6__py3-none-any.whl → 0.1.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. qilisdk/analog/__init__.py +1 -2
  2. qilisdk/analog/hamiltonian.py +1 -68
  3. qilisdk/analog/schedule.py +288 -313
  4. qilisdk/backends/backend.py +5 -1
  5. qilisdk/backends/cuda_backend.py +9 -5
  6. qilisdk/backends/qutip_backend.py +23 -12
  7. qilisdk/core/__init__.py +4 -0
  8. qilisdk/core/interpolator.py +406 -0
  9. qilisdk/core/parameterizable.py +66 -10
  10. qilisdk/core/variables.py +150 -7
  11. qilisdk/digital/circuit.py +1 -0
  12. qilisdk/digital/circuit_transpiler.py +46 -0
  13. qilisdk/digital/circuit_transpiler_passes/__init__.py +18 -0
  14. qilisdk/digital/circuit_transpiler_passes/circuit_transpiler_pass.py +36 -0
  15. qilisdk/digital/circuit_transpiler_passes/decompose_multi_controlled_gates_pass.py +216 -0
  16. qilisdk/digital/circuit_transpiler_passes/numeric_helpers.py +82 -0
  17. qilisdk/digital/gates.py +12 -2
  18. qilisdk/{speqtrum/experiments → experiments}/__init__.py +13 -2
  19. qilisdk/{speqtrum/experiments → experiments}/experiment_functional.py +90 -2
  20. qilisdk/{speqtrum/experiments → experiments}/experiment_result.py +16 -0
  21. qilisdk/functionals/sampling.py +8 -1
  22. qilisdk/functionals/time_evolution.py +6 -2
  23. qilisdk/functionals/variational_program.py +58 -0
  24. qilisdk/speqtrum/speqtrum.py +360 -130
  25. qilisdk/speqtrum/speqtrum_models.py +108 -19
  26. qilisdk/utils/openfermion/__init__.py +38 -0
  27. qilisdk/{core/algorithm.py → utils/openfermion/__init__.pyi} +2 -3
  28. qilisdk/utils/openfermion/openfermion.py +45 -0
  29. qilisdk/utils/visualization/schedule_renderers.py +16 -8
  30. {qilisdk-0.1.6.dist-info → qilisdk-0.1.7.dist-info}/METADATA +74 -24
  31. {qilisdk-0.1.6.dist-info → qilisdk-0.1.7.dist-info}/RECORD +33 -26
  32. {qilisdk-0.1.6.dist-info → qilisdk-0.1.7.dist-info}/WHEEL +1 -1
  33. qilisdk/analog/linear_schedule.py +0 -121
  34. {qilisdk-0.1.6.dist-info → qilisdk-0.1.7.dist-info}/licenses/LICENCE +0 -0
@@ -6,41 +6,48 @@ qilisdk/logging_config.yaml,sha256=DxsAJBPr1o54pjtYRnzMHuDbrr8hv4ruym8rLRmUKEk,3
6
6
  qilisdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  qilisdk/settings.py,sha256=PtiO3iInoBIBLTO_t6D5iWN5a3FuqO4DXyPKmpnph-A,2827
8
8
  qilisdk/yaml.py,sha256=UcildGIQq1vMmjKLgFAbd-tN5nwYHlAUi6cs_8r8_As,8050
9
- qilisdk/analog/__init__.py,sha256=HZecq1CdbZ9ilgxeXcuNQDYv0qYUqi-Mvta-WZPoGT4,862
9
+ qilisdk/analog/__init__.py,sha256=VKy42hUP__jaQcaAhNU0Wai08r1UzjwsysLBF0uN10g,800
10
10
  qilisdk/analog/exceptions.py,sha256=oYRJD00ICs9M6hezXPv7C7Ug6amcbbGDeP-1o1GkECc,717
11
- qilisdk/analog/hamiltonian.py,sha256=nPAgGiT4Vocqr7vnW53s8XmvV-HaPSeE2RWL18Ywwqo,39988
12
- qilisdk/analog/linear_schedule.py,sha256=t2AqSgaj5_Ly2C6hRIX9uRcdtMwmJJjBe2QQ5rsQ5qM,4842
13
- qilisdk/analog/schedule.py,sha256=Sbe5cUL-FNWwwpKCRP3wV1TabJQTFknlJhgrWQzl9mU,22847
11
+ qilisdk/analog/hamiltonian.py,sha256=tybXon1-DnfDK0YwhNwhipsemsaIyUbcObHkYXUaOys,37129
12
+ qilisdk/analog/schedule.py,sha256=9HCHV7-w2QF6DK8BUfizWJN8srwBQeneI--yVqfwuV4,20063
14
13
  qilisdk/backends/__init__.py,sha256=QHJ99ub4WPMmSMEs_Zdx3yF6d7K9uBapKp0FgvZ12L8,1666
15
14
  qilisdk/backends/__init__.pyi,sha256=JP6QY7BqO0LuN7NPAWU0ebBwfcKEJ5w5p4xHa5GNKhA,752
16
- qilisdk/backends/backend.py,sha256=G0duQuO6Cf9en36eiFunLpmWNKmtQJzN4RuMxV8sp6w,5241
17
- qilisdk/backends/cuda_backend.py,sha256=JdeDd7GKe4BNzEKcCA1JlTGVfsUapMzkYfKcZmrTQ1c,17082
18
- qilisdk/backends/qutip_backend.py,sha256=5dybvbUEqPEMoIYSHuzeLRib0qY0-zbs7gATLNwVHl0,18760
19
- qilisdk/core/__init__.py,sha256=etcRx1P5YrIAEqkfRuZ8RuF0AFxLFgwM6VTUcBiev9o,1405
20
- qilisdk/core/algorithm.py,sha256=RgXo5rhl0yON6M77hRI82fmtflwkwUS7ADZPUZw_pQE,682
15
+ qilisdk/backends/backend.py,sha256=wHbQQfaiLfjp2hWPN8besfkBbm0iAeDK6uIeNIu_bTo,5397
16
+ qilisdk/backends/cuda_backend.py,sha256=oQRbT56XdhAvB44Q2uOgFuCIbJwu0AbKd55-NiPcmeY,17368
17
+ qilisdk/backends/qutip_backend.py,sha256=tO1X31mwNJguDc00EkS8c7F1nNV9xSygii9ooV_47JE,19477
18
+ qilisdk/core/__init__.py,sha256=lb-PD21HztYO3_354pFwJ79GbC8f2uyiIXgl7RJ0zVQ,1453
21
19
  qilisdk/core/exceptions.py,sha256=f72N4SRj-oUkHVKVV_Drj6oinTJODNM0LxdFn6AHuBE,1034
20
+ qilisdk/core/interpolator.py,sha256=jSZ04KSdgD-btwSyX7aaKYa77_F1x7qaWPcdyizCA48,17494
22
21
  qilisdk/core/model.py,sha256=ty1vnMzBWDQYwc7lJnVAW62THs2y2er0J-p1W48MJVQ,41569
23
- qilisdk/core/parameterizable.py,sha256=hdibs--MFKn7Sy3CuFbn7Bk2ozPe0206jAuXfyMQdNY,2575
22
+ qilisdk/core/parameterizable.py,sha256=pc35JtU8fpyXv-oCCYXSPOPBLbCNqgXupwZuHvBFfh0,5392
24
23
  qilisdk/core/qtensor.py,sha256=_Ru3qaxntjyIkP_mWxr7I8oVgJddi2eQizUwWXwnRUQ,26014
25
24
  qilisdk/core/result.py,sha256=EUCWebtdeBwGjhVCBgStuEVmx-U1WR0ZOX7ALAnLrmI,700
26
- qilisdk/core/variables.py,sha256=urJ9wcdpnIZVOOCsAqiJbng33EBVCSvREApxhtN44TE,72659
25
+ qilisdk/core/variables.py,sha256=SEEgaAm-0XssaeO9JRHKtRdcOqO5NKR7y2qpLOTLHAo,77647
27
26
  qilisdk/cost_functions/__init__.py,sha256=tKoEm4eVb8oTGGhj25nM2YQE73CRXaLgLyfipa2I70s,760
28
27
  qilisdk/cost_functions/cost_function.py,sha256=7Ap_tpUEJXrJAzAJ1QyrPT_Nmqv2dzkUyYPL6TpdqY8,2850
29
28
  qilisdk/cost_functions/model_cost_function.py,sha256=93ui_yO8vpoZ22Ro9W9E9rkHVYrFoSzMipU6Op7wWr0,5705
30
29
  qilisdk/cost_functions/observable_cost_function.py,sha256=PalzTjRaXdeU69fcvPBsAnf_MNcJni_dwXUXchmA1Lo,4184
31
30
  qilisdk/digital/__init__.py,sha256=qmE0VTKdD9ILlx6ClhBjvOXbpD0nr3uavG-l3VSh69c,989
32
31
  qilisdk/digital/ansatz.py,sha256=r2g0hISPhXpTIgvqQgeu9tZ9OO3mQ7h_Cq9tlMZDruQ,7999
33
- qilisdk/digital/circuit.py,sha256=Pq-kTuD9iS7LpcBoNLgRvRBub_ccTkahHO_XieysEkk,6907
32
+ qilisdk/digital/circuit.py,sha256=YM2iBaGL6GdoHt23_c5hYss9nRc-pTZSesII916juhc,6947
33
+ qilisdk/digital/circuit_transpiler.py,sha256=pbqB2QETyclmd_ZexsD8a-3mTKj97jJ5XVGgcgi8y2g,2060
34
34
  qilisdk/digital/exceptions.py,sha256=dtMN9yjX_qRWJ5iFfNTHWVwKB7BrrSecvjB4D0KeoEA,1292
35
- qilisdk/digital/gates.py,sha256=oQbrH9HQoVgnH8cMtI24rMM3oTJEsP8yCS6QgRuB_54,33644
35
+ qilisdk/digital/gates.py,sha256=l7HkGxWX59dkTqlbBIrGwim4z0pEIUuZfTKHTXaGUp8,34068
36
+ qilisdk/digital/circuit_transpiler_passes/__init__.py,sha256=nH_z1rTH3UNOAbKeFFF8LedaRk06W_2gXHDeUr23500,807
37
+ qilisdk/digital/circuit_transpiler_passes/circuit_transpiler_pass.py,sha256=bMj0duwgLYHj4jKZAx-YyW9zx5ViyVsJFeCHNZS0Yz8,1182
38
+ qilisdk/digital/circuit_transpiler_passes/decompose_multi_controlled_gates_pass.py,sha256=mWcPmdsvuM5K1mwWkvGFp0625nlSrPtaQ9zHuWS2i4M,7180
39
+ qilisdk/digital/circuit_transpiler_passes/numeric_helpers.py,sha256=sd6WAzPBWJCTrA08KGhU3gbo2zjrsCq_rxjAX9W4Bhw,2412
40
+ qilisdk/experiments/__init__.py,sha256=I2djCoersUrA5UnoPtbifSgpIryxfDqdztQLAT48e90,1168
41
+ qilisdk/experiments/experiment_functional.py,sha256=ZWnSHCu7Ihn2bJf4VRoT8UbKqp3C1trlaonMRE6UE8s,7532
42
+ qilisdk/experiments/experiment_result.py,sha256=WYQ1h0F4GhyiAycppgkdeLUod3klcLy9WJueF5-bsEY,8637
36
43
  qilisdk/functionals/__init__.py,sha256=1Yrk8SyJ98yNYm658HeyaPFaNdMBH96PPlv6oEGGwpM,1037
37
44
  qilisdk/functionals/functional.py,sha256=21JFxoBXhHm4FkeBzLXlQOU2jEB2DcTXOKp9Zq0ve98,1445
38
45
  qilisdk/functionals/functional_result.py,sha256=NZwgV5m90wdo__Q6ILL-VoWyBU5tiAbEqBzb3zJ-4eU,741
39
- qilisdk/functionals/sampling.py,sha256=pwmwo6VsIuEEXTKujKEeHjO-YaAw0PMNgSuyvVPsSdM,3264
46
+ qilisdk/functionals/sampling.py,sha256=g7jD_4QXiN8-6XQKqJoutvE6OiuCqCq2gIGYfzjq7s4,3558
40
47
  qilisdk/functionals/sampling_result.py,sha256=tUXOHJOtznGyWsHK4MLtP1bTSdD6zppbT2K2lcQFkyo,3411
41
- qilisdk/functionals/time_evolution.py,sha256=7fXLhaz2n63dVuh4AQwimzZnD8A58oIUz18vcE3kWqU,4149
48
+ qilisdk/functionals/time_evolution.py,sha256=OrtYJCPatfGXtpal2AEt-nMzSCFQg8UqCf5v0A1X7dM,4364
42
49
  qilisdk/functionals/time_evolution_result.py,sha256=l53aBACRWPzOaVPJ86DgiHRTXK4cVcxlKcD91cY_KNY,3491
43
- qilisdk/functionals/variational_program.py,sha256=wD5oHYBMUGRNCn-SFjTHE6r0oqd5y3KxQ8dkgbANS94,3029
50
+ qilisdk/functionals/variational_program.py,sha256=PeBk1gyAzCd3e04VmH936HpeB2Y1PTjCuCB7YEJsRqU,6126
44
51
  qilisdk/functionals/variational_program_result.py,sha256=Dii9D1BnUpfsBfgN60eFVp7Qhsr2mIFSbUtM5Q4KZeI,2657
45
52
  qilisdk/optimizers/__init__.py,sha256=v3pLS__wnVRCiz83y8-gUjRuW-BoAGXFpd6HUmLodgY,663
46
53
  qilisdk/optimizers/optimizer.py,sha256=GT9ziwPJ2ZjckOeeoyc07O3XyaVsRmUnVxN0UXNaO7Y,1570
@@ -49,21 +56,21 @@ qilisdk/optimizers/scipy_optimizer.py,sha256=JquRPvpWJ6ccpzxlo9HKV66cz4kYwEXEPe3
49
56
  qilisdk/speqtrum/__init__.py,sha256=kGBrSF949ppWDRsnWuIt61WqBcb6qIQaJ9gRZrnMdo4,1700
50
57
  qilisdk/speqtrum/__init__.pyi,sha256=2_3FiMTnJe0rUuK-arKd4JuIt3tJ9ci-a8ipgMdOSSo,728
51
58
  qilisdk/speqtrum/keyring.py,sha256=zPYSAqq9A0hfjWdchTCy9oZi72HPFvtxDoblHDvpjhA,1898
52
- qilisdk/speqtrum/speqtrum.py,sha256=eqbEea5eNJr1aDPlJMuUUB35FnQIjQp-pWsspGrce3s,23101
53
- qilisdk/speqtrum/speqtrum_models.py,sha256=GHLG8ZJRva04vR7XpSyoX_Stgb4wUEfRlFVWzpQWOlA,17335
54
- qilisdk/speqtrum/experiments/__init__.py,sha256=FlXV-8SR8VMRKMxbgj3sa8kHcueTsw6NT9j0zm6Tk_U,955
55
- qilisdk/speqtrum/experiments/experiment_functional.py,sha256=0yuuDZJzI2OaHsKmbQrkXeK4Ih2PQilKLuwqdXZxdC4,4363
56
- qilisdk/speqtrum/experiments/experiment_result.py,sha256=O398vInFShp4n8YvUSfit1kgNCnlSZ9F07xHipxRHkc,8201
59
+ qilisdk/speqtrum/speqtrum.py,sha256=s-JrUrpYvG8wV976SrzO85oHXbPLftlvYa-q3o3hg_k,32037
60
+ qilisdk/speqtrum/speqtrum_models.py,sha256=uaASy1gWAGu3XEDVB33ZPCJgVKiT-3ox6c6LUQt4ZsY,20987
57
61
  qilisdk/utils/__init__.py,sha256=LDSTo7NstSbHMvvqvx7ZLxh0HFTEXg1O_B76SyEEHk8,588
58
62
  qilisdk/utils/openqasm2.py,sha256=IMHT3BRbpS4giKg5JCZ4tt6BpD7eDEJMALrW7w1RvPw,8322
59
63
  qilisdk/utils/serialization.py,sha256=_SmxxbshMtSozCHdzi_Y_3YZ7-KNjsrlfgkBtJ3mAjw,3870
64
+ qilisdk/utils/openfermion/__init__.py,sha256=bFSfbvRIVkM4n02g4sfEg_NHSrNSJWuU0H_oI3yPWDQ,1480
65
+ qilisdk/utils/openfermion/__init__.pyi,sha256=d-KapuuD9ciD7R-ZLNqyQ7FSidqO_pFA5wakdFIEA-8,725
66
+ qilisdk/utils/openfermion/openfermion.py,sha256=IcKy73s-VWMKbOMxXLAUwitVh3O5GOqILoKrYbTfklk,1464
60
67
  qilisdk/utils/visualization/PlusJakartaSans-SemiBold.ttf,sha256=kcACUvAhK3AgdI7-50kwPyG0xdtAodY9-UhPbw2NtTk,94844
61
68
  qilisdk/utils/visualization/__init__.py,sha256=p3OTMwM2eF5_LZW0-kYU8IqcEyQySxjDKnqDfCw3dpg,769
62
69
  qilisdk/utils/visualization/circuit_renderers.py,sha256=20X--lgQdwmu08pvuekdebOI01hRHknl0Z8ct4OVWOU,29908
63
- qilisdk/utils/visualization/schedule_renderers.py,sha256=59Dmf7MEbtS_tLZJqJIfO7pk3h_BkUUf988WL45jTp4,6108
70
+ qilisdk/utils/visualization/schedule_renderers.py,sha256=bMfEOEQhWcwfp8J6uebWAnYxy8PP7eiZhahL-i5Rh4A,6284
64
71
  qilisdk/utils/visualization/style.py,sha256=l50u4UGCbU0r_BBuij35M4sTrmYh_e0m1IgRY-DjfH8,7288
65
72
  qilisdk/utils/visualization/themes.py,sha256=uganZjDx742bmGVG73UU6Lde5XXjlDNfVNEa9y_icBw,2346
66
- qilisdk-0.1.6.dist-info/METADATA,sha256=4Kghfw4RuX-cNf9IcZBlDIb1WYkY8-pBsBosQ7heInw,19377
67
- qilisdk-0.1.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
68
- qilisdk-0.1.6.dist-info/licenses/LICENCE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
69
- qilisdk-0.1.6.dist-info/RECORD,,
73
+ qilisdk-0.1.7.dist-info/METADATA,sha256=GqgYhVRAjFO0lWufXYiu7VjWOj8Dhu8d_5s-Zpc9X_s,21152
74
+ qilisdk-0.1.7.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
75
+ qilisdk-0.1.7.dist-info/licenses/LICENCE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
76
+ qilisdk-0.1.7.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.27.0
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,121 +0,0 @@
1
- # Copyright 2025 Qilimanjaro Quantum Tech
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
- from __future__ import annotations
15
-
16
- from qilisdk.analog.hamiltonian import Hamiltonian
17
- from qilisdk.analog.schedule import Schedule
18
- from qilisdk.core.variables import Number, Parameter, Term
19
- from qilisdk.yaml import yaml
20
-
21
-
22
- @yaml.register_class
23
- class LinearSchedule(Schedule):
24
- """
25
- Schedule implementation that linearly interpolates coefficients between defined time steps.
26
-
27
- Example:
28
- .. code-block:: python
29
-
30
- from qilisdk.analog.hamiltonian import Hamiltonian, Z
31
- from qilisdk.analog.linear_schedule import LinearSchedule
32
-
33
- h = 2 * Z(0)
34
- schedule = LinearSchedule(T=4.0, dt=1.0, hamiltonians={"hz": h})
35
- schedule.add_schedule_step(0, {"hz": 0.0})
36
- schedule.add_schedule_step(4, {"hz": 1.0})
37
- assert schedule.get_coefficient(2.0, "hz") == 0.5
38
- """
39
-
40
- def get_coefficient_expression(self, time_step: float, hamiltonian_key: str) -> Number | Term | Parameter:
41
- """
42
- Return the symbolic coefficient for a Hamiltonian at an arbitrary time step.
43
-
44
- Args:
45
- time_step (float): The time at which to evaluate the coefficient.
46
- hamiltonian_key (str): Label of the Hamiltonian inside the schedule.
47
-
48
- Returns:
49
- Number | Term: The (possibly symbolic) coefficient associated with ``hamiltonian_key``.
50
-
51
- Raises:
52
- ValueError: If something unexpected happens during coefficient retrieval.
53
- """
54
- t = time_step / self.dt
55
- t_idx = int(t)
56
-
57
- if t_idx in self._schedule and hamiltonian_key in self._schedule[t_idx]:
58
- return self._schedule[t_idx][hamiltonian_key]
59
-
60
- # search backwards
61
- prev_idx, prev_expr = None, None
62
- for i in range(t_idx, -1, -1):
63
- if i in self._schedule and hamiltonian_key in self._schedule[i]:
64
- prev_idx = i
65
- prev_expr = self._schedule[i][hamiltonian_key]
66
- break
67
-
68
- # search forwards
69
- next_idx, next_expr = None, None
70
- for i in range(t_idx + 1, int(self.T / self.dt) + 1):
71
- if i in self._schedule and hamiltonian_key in self._schedule[i]:
72
- next_idx = i
73
- next_expr = self._schedule[i][hamiltonian_key]
74
- break
75
-
76
- # cases
77
- if prev_expr is None and next_expr is None:
78
- return 0
79
- if prev_expr is None and next_expr is not None:
80
- return next_expr
81
- if next_expr is None and prev_expr is not None:
82
- return prev_expr
83
-
84
- # linear interpolation (keeps expressions if they are Terms/Parameters)
85
- if next_idx is None or prev_idx is None or prev_expr is None or next_expr is None:
86
- raise ValueError("Something unexpected happened while retrieving the coefficient.")
87
- alpha: float = (t - prev_idx) / (next_idx - prev_idx)
88
- e1 = next_expr * alpha
89
- e2 = prev_expr * (1 - alpha)
90
- return e1 + e2
91
-
92
- def get_coefficient(self, time_step: float, hamiltonian_key: str) -> Number:
93
- """
94
- Return the numeric coefficient for a Hamiltonian at ``time_step``.
95
-
96
- Args:
97
- time_step (float): Time at which to evaluate the coefficient.
98
- hamiltonian_key (str): Label of the Hamiltonian.
99
-
100
- Returns:
101
- Number: Evaluated coefficient value.
102
- """
103
- time_step = float(time_step)
104
- val = self.get_coefficient_expression(time_step=time_step, hamiltonian_key=hamiltonian_key)
105
- return val.evaluate({}) if isinstance(val, Term) else (val.evaluate() if isinstance(val, Parameter) else val)
106
-
107
- def __getitem__(self, time_step: int) -> Hamiltonian:
108
- """
109
- Retrieve the interpolated Hamiltonian at the specified discrete time step.
110
-
111
- Args:
112
- time_step (int): Discrete index to evaluate (converted internally to ``time_step * dt``).
113
-
114
- Returns:
115
- Hamiltonian: Hamiltonian with coefficients interpolated at the requested time step.
116
- """
117
- ham = Hamiltonian()
118
- for ham_label in self._hamiltonians:
119
- coeff = self.get_coefficient(time_step * self.dt, ham_label)
120
- ham += coeff * self._hamiltonians[ham_label]
121
- return ham.get_static_hamiltonian()