System found in Perturbative Diagonalization for Time-Dependent Strong Interactions: 10.1103/PhysRevApplied.18.024009
omega_q = RDSymbol('omega_q', real=True, positive=True)
omega_a = RDSymbol('omega_a', real=True, positive=True)
abs_g_p = RDSymbol('|{g_p}|', real=True, positive=True, order=1)
phi_p = RDSymbol('phi_p', real=True)
gp = abs_g_p * sp.exp(-sp.I * phi_p)
omega_p = RDSymbol('omega_p', real=True, positive=True)
Spin = RDBasis('sigma', 2)
s0, sx, sy, sz = Spin.basis
a = BosonOp('a')
ad = Dagger(a)
H0 = - omega_q * sz / 2 + omega_a * (ad * a + sp.Rational(1, 2))
V1 = (gp * sp.exp(-sp.I * omega_p * t) + sp.conjugate(gp) * sp.exp(sp.I * omega_p * t)) * (a + ad) * sx
display_dict({
sp.Symbol('H_0'): H0,
sp.Symbol('V_1'): V1,
})
\(\displaystyle H_{0} : \omega_a \left(\frac{1}{2} + {a^\dagger} a\right) - \frac{\omega_{q} \sigma_{3}}{2}\)
\(\displaystyle V_{1} : \left(|{g_p}| e^{i \phi_{p}} e^{i \omega_{p} t} + |{g_p}| e^{- i \phi_{p}} e^{- i \omega_{p} t}\right) \left({a^\dagger} + a\right) \sigma_{1}\)
Standard Schrieffer-Wolff transformation
# Corrections to the Hamiltonian for each order
H0, H2 = [H_correction for H_correction in Eff_Frame.corrections.values()]
Reconstructing results obtained in the paper mentioned in top cell
# variables found in the paper
xi_plus = gp / (omega_q + omega_a - omega_p) * sp.exp(-I* omega_p * t) + sp.conjugate(gp) / (omega_q + omega_a + omega_p) * sp.exp(I* omega_p * t)
xi_minus = gp / (omega_q - omega_a + omega_p) * sp.exp(-I* omega_p * t) + sp.conjugate(gp) / (omega_q - omega_a - omega_p) * sp.exp(I* omega_p * t)
gt = gp * sp.exp(-I* omega_p * t) + sp.conjugate(gp) * sp.exp(I* omega_p * t)
Identity
omega_plus = sp.Symbol('omega_+', real=True, positive=True)
omega_minus = sp.Symbol('omega_-', real=True, positive=True)
# Term obtained in the paper
sp.expand_complex((sp.Rational(1,2) * gt * (sp.re(xi_minus) - sp.re(xi_plus))).expand()).trigsimp().subs({
omega_q + omega_a : omega_plus,
omega_q - omega_a : omega_minus,
hbar:1
}).subs(omega_q**2 - omega_a**2, (omega_plus * omega_minus)).subs({
omega_a : sp.Rational(1,2) * (omega_plus - omega_minus),
omega_q : sp.Rational(1,2) * (omega_plus + omega_minus),
}).expand().cancel().factor()
\(\displaystyle \frac{2 |{g_p}|^{2} \left(\omega_{p}^{2} + \omega_{+} \omega_{-}\right) \left(\omega_{+} - \omega_{-}\right) \cos^{2}{\left(\omega_{p} t + \phi_{p} \right)}}{\left(- \omega_{p} + \omega_{+}\right) \left(- \omega_{p} + \omega_{-}\right) \left(\omega_{p} + \omega_{+}\right) \left(\omega_{p} + \omega_{-}\right)}\)
# Term obtained with SymPT
sp.expand_complex(sp.factor_terms(group_by_operators(H2)[1]).expand().factor()).trigsimp().subs(hbar, 1).subs(sp.cos((2*(omega_p*t + phi_p)).factor()) + 1, 2*sp.cos(omega_p*t + phi_p)**2).subs({
omega_q + omega_a : omega_plus,
omega_q - omega_a : omega_minus,
hbar:1
}).subs(omega_q**2 - omega_a**2, (omega_plus*omega_minus)).subs({
omega_a : sp.Rational(1,2) * (omega_plus - omega_minus),
omega_q : sp.Rational(1,2) * (omega_plus + omega_minus),
}).expand().cancel().factor()
\(\displaystyle \frac{2 |{g_p}|^{2} \left(\omega_{p}^{2} + \omega_{+} \omega_{-}\right) \left(\omega_{+} - \omega_{-}\right) \cos^{2}{\left(\omega_{p} t + \phi_{p} \right)}}{\left(- \omega_{p} + \omega_{+}\right) \left(- \omega_{p} + \omega_{-}\right) \left(\omega_{p} + \omega_{+}\right) \left(\omega_{p} + \omega_{-}\right)}\)
\(\sigma_z a^\dagger a\)
# Term obtained in the paper
sp.expand_complex(-gt * (sp.re(xi_minus) + sp.re(xi_plus))).expand().trigsimp().expand().factor().trigsimp().subs(hbar, 1).subs(sp.cos((2*(omega_p*t + phi_p)).factor()) + 1, 2*sp.cos(omega_p*t + phi_p)**2).subs({
omega_q + omega_a : omega_plus,
omega_q - omega_a : omega_minus,
hbar:1
}).subs(omega_q**2 - omega_a**2, (omega_plus*omega_minus)).subs({
omega_a : sp.Rational(1,2) * (omega_plus - omega_minus),
omega_q : sp.Rational(1,2) * (omega_plus + omega_minus),
}).expand().cancel().factor()
\(\displaystyle - \frac{4 |{g_p}|^{2} \left(- \omega_{p}^{2} + \omega_{+} \omega_{-}\right) \left(\omega_{+} + \omega_{-}\right) \cos^{2}{\left(\omega_{p} t + \phi_{p} \right)}}{\left(- \omega_{p} + \omega_{+}\right) \left(- \omega_{p} + \omega_{-}\right) \left(\omega_{p} + \omega_{+}\right) \left(\omega_{p} + \omega_{-}\right)}\)
# Term obtained with SymPT
sp.expand_complex(sp.factor_terms(group_by_operators(H2)[sz*ad*a])).expand().factor().trigsimp().subs(hbar, 1).subs({
omega_q + omega_a : omega_plus,
omega_q - omega_a : omega_minus,
hbar:1
}).subs(omega_q**2 - omega_a**2, (omega_plus*omega_minus)).subs({
omega_a : sp.Rational(1,2) * (omega_plus - omega_minus),
omega_q : sp.Rational(1,2) * (omega_plus + omega_minus),
}).expand().cancel().factor()
\(\displaystyle - \frac{2 |{g_p}|^{2} \left(- \omega_{p}^{2} + \omega_{+} \omega_{-}\right) \left(\omega_{+} + \omega_{-}\right) \left(\cos{\left(2 \omega_{p} t + 2 \phi_{p} \right)} + 1\right)}{\left(- \omega_{p} + \omega_{+}\right) \left(- \omega_{p} + \omega_{-}\right) \left(\omega_{p} + \omega_{+}\right) \left(\omega_{p} + \omega_{-}\right)}\)
\(a^2 \sigma_z\)
# Term obtained in the paper
sp.expand_complex(-sp.Rational(1,2) * gt * ((sp.conjugate(xi_minus) + sp.conjugate(xi_plus)))).expand().trigsimp().subs({
omega_q + omega_a : omega_plus,
omega_q - omega_a : omega_minus,
hbar:1
}).subs(omega_q**2 - omega_a**2, (omega_plus*omega_minus)).subs({
omega_a : sp.Rational(1,2) * (omega_plus - omega_minus),
omega_q : sp.Rational(1,2) * (omega_plus + omega_minus),
}).expand().cancel().factor()
# Term obtained with SymPT
sp.expand_complex(sp.factor_terms(group_by_operators(H2)[sz*a**2]).expand().factor().simplify()).trigsimp().subs(hbar, 1).subs({
omega_q + omega_a : omega_plus,
omega_q - omega_a : omega_minus,
hbar:1
}).subs(omega_q**2 - omega_a**2, (omega_plus*omega_minus)).subs({
omega_a : sp.Rational(1,2) * (omega_plus - omega_minus),
omega_q : sp.Rational(1,2) * (omega_plus + omega_minus),
}).expand().cancel().factor()
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.