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.
- qilisdk/analog/__init__.py +1 -2
- qilisdk/analog/hamiltonian.py +1 -68
- qilisdk/analog/schedule.py +288 -313
- qilisdk/backends/backend.py +5 -1
- qilisdk/backends/cuda_backend.py +9 -5
- qilisdk/backends/qutip_backend.py +23 -12
- qilisdk/core/__init__.py +4 -0
- qilisdk/core/interpolator.py +406 -0
- qilisdk/core/parameterizable.py +66 -10
- qilisdk/core/variables.py +150 -7
- qilisdk/digital/circuit.py +1 -0
- qilisdk/digital/circuit_transpiler.py +46 -0
- qilisdk/digital/circuit_transpiler_passes/__init__.py +18 -0
- qilisdk/digital/circuit_transpiler_passes/circuit_transpiler_pass.py +36 -0
- qilisdk/digital/circuit_transpiler_passes/decompose_multi_controlled_gates_pass.py +216 -0
- qilisdk/digital/circuit_transpiler_passes/numeric_helpers.py +82 -0
- qilisdk/digital/gates.py +12 -2
- qilisdk/{speqtrum/experiments → experiments}/__init__.py +13 -2
- qilisdk/{speqtrum/experiments → experiments}/experiment_functional.py +90 -2
- qilisdk/{speqtrum/experiments → experiments}/experiment_result.py +16 -0
- qilisdk/functionals/sampling.py +8 -1
- qilisdk/functionals/time_evolution.py +6 -2
- qilisdk/functionals/variational_program.py +58 -0
- qilisdk/speqtrum/speqtrum.py +360 -130
- qilisdk/speqtrum/speqtrum_models.py +108 -19
- qilisdk/utils/openfermion/__init__.py +38 -0
- qilisdk/{core/algorithm.py → utils/openfermion/__init__.pyi} +2 -3
- qilisdk/utils/openfermion/openfermion.py +45 -0
- qilisdk/utils/visualization/schedule_renderers.py +16 -8
- {qilisdk-0.1.6.dist-info → qilisdk-0.1.7.dist-info}/METADATA +74 -24
- {qilisdk-0.1.6.dist-info → qilisdk-0.1.7.dist-info}/RECORD +33 -26
- {qilisdk-0.1.6.dist-info → qilisdk-0.1.7.dist-info}/WHEEL +1 -1
- qilisdk/analog/linear_schedule.py +0 -121
- {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=
|
|
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=
|
|
12
|
-
qilisdk/analog/
|
|
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=
|
|
17
|
-
qilisdk/backends/cuda_backend.py,sha256=
|
|
18
|
-
qilisdk/backends/qutip_backend.py,sha256=
|
|
19
|
-
qilisdk/core/__init__.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
53
|
-
qilisdk/speqtrum/speqtrum_models.py,sha256=
|
|
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=
|
|
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.
|
|
67
|
-
qilisdk-0.1.
|
|
68
|
-
qilisdk-0.1.
|
|
69
|
-
qilisdk-0.1.
|
|
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,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()
|
|
File without changes
|