Skip to content

System found in Perturbative Diagonalization for Time-Dependent Strong Interactions: 10.1103/PhysRevApplied.18.024009

# Objects for defining the Hamiltonian
from sympt import *
import sympy as sp
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}\)

Eff_Frame = EffectiveFrame(H=H0, V=V1, subspaces=[Spin], verbose = False)

Standard Schrieffer-Wolff transformation

Eff_Frame.solve(max_order=2, method="SW")
H_eff = Eff_Frame.get_H()
# 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()
\[\displaystyle - \frac{|{g_p}|^{2} \left(\omega_{+} + \omega_{-}\right) \left(- \omega_{p}^{2} \cos{\left(2 \omega_{p} t + 2 \phi_{p} \right)} - \omega_{p}^{2} - i \omega_{p} \omega_{+} \sin{\left(2 \omega_{p} t + 2 \phi_{p} \right)} + i \omega_{p} \omega_{-} \sin{\left(2 \omega_{p} t + 2 \phi_{p} \right)} + \omega_{+} \omega_{-} \cos{\left(2 \omega_{p} t + 2 \phi_{p} \right)} + \omega_{+} \omega_{-}\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*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()
\[\displaystyle - \frac{|{g_p}|^{2} \left(\omega_{+} + \omega_{-}\right) \left(- \omega_{p}^{2} \cos{\left(2 \omega_{p} t + 2 \phi_{p} \right)} - \omega_{p}^{2} - i \omega_{p} \omega_{+} \sin{\left(2 \omega_{p} t + 2 \phi_{p} \right)} + i \omega_{p} \omega_{-} \sin{\left(2 \omega_{p} t + 2 \phi_{p} \right)} + \omega_{+} \omega_{-} \cos{\left(2 \omega_{p} t + 2 \phi_{p} \right)} + \omega_{+} \omega_{-}\right)}{\left(- \omega_{p} + \omega_{+}\right) \left(- \omega_{p} + \omega_{-}\right) \left(\omega_{p} + \omega_{+}\right) \left(\omega_{p} + \omega_{-}\right)}\]

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.


References