add an adapter to the qubitmodelmultibath

This commit is contained in:
Valentin Boettcher 2022-11-26 02:52:15 +01:00
parent 329a586836
commit 37f426fcdf
No known key found for this signature in database
GPG key ID: E034E12B7AF56ACE
2 changed files with 19 additions and 3 deletions

View file

@ -37,7 +37,7 @@ class Model(ABC):
__base_version__: int = 1 __base_version__: int = 1
"""The version of the model base.""" """The version of the model base."""
__version__: int = 1 __version__: Union[int, list[int]] = 1
""" """
The version of the model implementation. It is increased for The version of the model implementation. It is increased for
breaking changes. breaking changes.

View file

@ -36,7 +36,7 @@ class OttoEngine(Model):
All attributes can be changed after initialization. All attributes can be changed after initialization.
""" """
__version__: int = 2 __version__: list[int] = [1, QubitModelMutliBath.__version__]
δ: list[SupportsFloat] = field(default_factory=lambda: [0.1] * 2) δ: list[SupportsFloat] = field(default_factory=lambda: [0.1] * 2)
"""The bath coupling factors.""" """The bath coupling factors."""
@ -229,7 +229,23 @@ class OttoEngine(Model):
def qubit_model(self) -> QubitModelMutliBath: def qubit_model(self) -> QubitModelMutliBath:
"""Returns the underlying Qubit model.""" """Returns the underlying Qubit model."""
return QubitModelMutliBath() return QubitModelMutliBath(
δ=self.δ,
ω_c=self.ω_c,
ω_s=self.ω_s,
t=self.t,
ψ_0=self.ψ_0,
description=f"The qubit model underlying the otto cycle with description: {self.description}.",
truncation_scheme="simplex",
k_max=self.k_max,
bcf_terms=self.bcf_terms,
driving_process_tolerances=self.driving_process_tolerances,
thermal_process_tolerances=self.thermal_process_tolerances,
T=self.T,
L=self.L,
H=self.H,
therm_methods=self.therm_methods,
)
def normalize_hamiltonian(hamiltonian: np.ndarray) -> np.ndarray: def normalize_hamiltonian(hamiltonian: np.ndarray) -> np.ndarray: