System found in Enhanced perturbative continuous unitary transformations: 10.1103/PhysRevB.86.125113
Setup
# ---------------- Defining the symbols ------------------
# Order 0
omega = RDSymbol('omega', order=0, positive=True, real=True)
omega_tilde = RDSymbol(r'\tilde{\omega}', order=0, positive=True, real=True)
epsilon_0 = RDSymbol(r'varepsilon_0', order=0, positive=True, real=True)
epsilon_tilde = RDSymbol(r'\tilde{\varepsilon}', order=0, positive=True, real=True)
U = RDSymbol('U', order=0, positive=True, real=True)
# Order 1
x = RDSymbol('x', order=1, positive=True, real=True)
# ----------------- Defining the basis -------------------
# Boson basis resonator: Infinite bosonic Hilbert space
b = BosonOp('b')
bd = Dagger(b)
# -------------- Defining the Hamiltonian ----------------
# Unperturbed Hamiltonian H0
H0 = epsilon_0 + omega * bd * b
# Perturbed block diagonal Hamiltonian
H1 = x * (omega_tilde * bd * b + U * bd * bd * b * b + epsilon_tilde)
# Block diagonal Hamiltonian
H = H0 + H1
display(H)
# Interaction Hamiltonian V
V = x * (bd**4 + b**4)
display(V)
\(\displaystyle \omega {b^\dagger} b + \varepsilon_{0} + x \left(U {b^\dagger}^{2} b^{2} + \tilde{\omega} {b^\dagger} b + \tilde{\varepsilon}\right)\)
\(\displaystyle x \left({b^\dagger}^{4} + b^{4}\right)\)
[32mThe EffectiveFrame object has been initialized successfully.[0m
Standard Schrieffer-Wolff Transformation
# Calculate the effective model using the Schrieffer-Wolff transformation up to the second order
Eff_frame.solve(max_order=3, method="SW")
# Obtaining the result in the dict_operator form
H_eff_SWT = Eff_frame.get_H(return_form='dict_operator')
Computing the effective Hamiltonian: 100%|████████| 3/3 [00:00<00:00, 3.23it/s]
[32mThe Hamiltonian has been solved successfully. Please use the get_H method to get the result in the desired form.[0m
Converting to dictionary of operator form: 100%|█| 4/4 [00:00<00:00, 14993.04it/
\(\displaystyle {b^\dagger} b : \frac{42 U x^{3}}{\omega^{2}} + \frac{14 \tilde{\omega} x^{3}}{\omega^{2}}\)
\(\displaystyle 1 : \frac{18 U x^{3}}{\omega^{2}} + \frac{6 \tilde{\omega} x^{3}}{\omega^{2}}\)
\(\displaystyle {b^\dagger} b {b^\dagger} b : \frac{68 U x^{3}}{\omega^{2}} + \frac{6 \tilde{\omega} x^{3}}{\omega^{2}}\)
\(\displaystyle {b^\dagger} b {b^\dagger} b {b^\dagger} b : \frac{12 U x^{3}}{\omega^{2}} + \frac{4 \tilde{\omega} x^{3}}{\omega^{2}}\)
\(\displaystyle {b^\dagger} b {b^\dagger} b {b^\dagger} b {b^\dagger} b : \frac{10 U x^{3}}{\omega^{2}}\)
\(\displaystyle b^{8} : - \frac{U x^{3}}{\omega^{2}}\)
\(\displaystyle {b^\dagger}^{8} : - \frac{U x^{3}}{\omega^{2}}\)
ACE
# Deffining the mask
mask = Block(inf=b**8)
# Calculate the effective model using the Mask routine up to the second order
Eff_frame.solve(max_order=3, method="ACE", mask=mask)
H_eff_Mask = Eff_frame.get_H(return_form='dict_operator')
[32mThe perturbative interaction will be added to the full Hamiltonian[0m
Computing the effective Hamiltonian: 100%|███████| 3/3 [00:00<00:00, 799.02it/s]
[32mThe Hamiltonian has been solved successfully. Please use the get_H method to get the result in the desired form.[0m
Converting to dictionary of operator form: 100%|█| 2/2 [00:00<00:00, 21183.35it/
\(\displaystyle {b^\dagger} b : - U x + \tilde{\omega} x\)
\(\displaystyle 1 : \tilde{\varepsilon} x\)
\(\displaystyle {b^\dagger} b {b^\dagger} b : U x\)
\(\displaystyle {b^\dagger}^{4} : x\)
\(\displaystyle b^{4} : x\)
Full-diagonalization
# Calculate the effective model using the Full Diagonalization routine up to the second order
Eff_frame.solve(max_order=3, method="FD")
H_eff_FD = Eff_frame.get_H(return_form='dict_operator')
[32mThe perturbative interaction will be added to the full Hamiltonian[0m
Computing the effective Hamiltonian: 100%|████████| 3/3 [00:00<00:00, 4.62it/s]
[32mThe Hamiltonian has been solved successfully. Please use the get_H method to get the result in the desired form.[0m
Converting to dictionary of operator form: 100%|█| 4/4 [00:00<00:00, 20919.22it/
\(\displaystyle {b^\dagger} b : \frac{42 U x^{3}}{\omega^{2}} + \frac{14 \tilde{\omega} x^{3}}{\omega^{2}}\)
\(\displaystyle 1 : \frac{18 U x^{3}}{\omega^{2}} + \frac{6 \tilde{\omega} x^{3}}{\omega^{2}}\)
\(\displaystyle {b^\dagger} b {b^\dagger} b : \frac{68 U x^{3}}{\omega^{2}} + \frac{6 \tilde{\omega} x^{3}}{\omega^{2}}\)
\(\displaystyle {b^\dagger} b {b^\dagger} b {b^\dagger} b : \frac{12 U x^{3}}{\omega^{2}} + \frac{4 \tilde{\omega} x^{3}}{\omega^{2}}\)
\(\displaystyle {b^\dagger} b {b^\dagger} b {b^\dagger} b {b^\dagger} b : \frac{10 U x^{3}}{\omega^{2}}\)
License
SymPT is licensed under the MIT License. See the LICENSE
file for details.
Citation
If you use SymPT in your research, please cite the following paper:
BibTeX Entry:
@misc{diotallevi2024symptcomprehensivetoolautomating,
title={SymPT: a comprehensive tool for automating effective Hamiltonian derivations},
author={Giovanni Francesco Diotallevi and Leander Reascos and Mónica Benito},
year={2024},
eprint={2412.10240},
archivePrefix={arXiv},
primaryClass={quant-ph},
url={https://arxiv.org/abs/2412.10240},
}
APA Citation:
Diotallevi, G. F., Reascos, L., & Benito, M. (2024). SymPT: a comprehensive tool for automating effective Hamiltonian derivations. arXiv preprint arXiv:2412.10240.
IEEE Citation:
G. F. Diotallevi, L. Reascos, and M. Benito, "SymPT: a comprehensive tool for automating effective Hamiltonian derivations," arXiv preprint arXiv:2412.10240, 2024.